Monitoring:Apache ShenYu API Gateway
monitor ShenYu running status(JVM-related), include request response and other related metrics.
Pre-monitoring operations
Enable metrics plugin in ShenYu, expose it's prometheus metrics endpoint。
Refer ShenYu Document
Two Steps Mainly:
- add metrics plugin dependency in gateway's pom.xml. - <dependency>
 <groupId>org.apache.shenyu</groupId>
 <artifactId>shenyu-spring-boot-starter-plugin-metrics</artifactId>
 <version>${project.version}</version>
 </dependency>
- modify this config in shenyu gateway yaml. - shenyu:
 metrics:
 enabled: false #false is close, true is open
 name : prometheus
 host: 127.0.0.1
 port: 8090
 jmxConfig:
 props:
 jvm_enabled: true #enable jvm monitoring
Finally, restart the access gateway metrics endpoint http://ip:8090 to respond to prometheus format data.
Configuration parameters
| Parameter name | Parameter help description | 
|---|---|
| Monitoring Host | The peer IPV4, IPV6 or domain name to be monitored. Note ⚠️Without protocol header (eg: https://, http://). | 
| Monitoring name | The name that identifies this monitoring, and the name needs to be unique. | 
| Port | The port provided by the gateway Metric interface, the default is 8090. | 
| Timeout | HTTP request response timeout | 
| Acquisition Interval | Interval time for monitoring periodic data collection, in seconds, the minimum interval that can be set is 30 seconds | 
| Whether to detect | Whether to detect and check the availability of monitoring before adding monitoring, and the operation of adding and modifying will continue after the detection is successful | 
| Description Remarks | More remark information to identify and describe this monitoring, users can remark information here | 
Collect metrics
Index collection: shenyu_request_total
| Metric Name | Metric Unit | Metric Help Description | 
|---|---|---|
| value | None | Collect all requests from ShenYu gateway | 
Metric collection: shenyu_request_throw_created
| Metric Name | Metric Unit | Metric Help Description | 
|---|---|---|
| value | None | Collect the number of abnormal requests from ShenYu Gateway | 
Metric collection: process_cpu_seconds_total
| Metric Name | Metric Unit | Metric Help Description | 
|---|---|---|
| value | none | total user and system CPU elapsed seconds | 
Metric collection: process_open_fds
| Metric Name | Metric Unit | Metric Help Description | 
|---|---|---|
| value | none | number of open file descriptors | 
Metric collection: process_max_fds
| Metric Name | Metric Unit | Metric Help Description | 
|---|---|---|
| value | none | maximum number of open file descriptors | 
Metric collection: jvm_info
| Metric Name | Metric Unit | Metric Help Description | 
|---|---|---|
| runtime | none | JVM version information | 
| vendor | none | JVM version information | 
| version | None | JVM version information | 
Metric collection: jvm_memory_bytes_used
| Metric Name | Metric Unit | Metric Help Description | 
|---|---|---|
| area | None | JVM memory area | 
| value | MB | used size of the given JVM memory region | 
Metric collection: jvm_memory_pool_bytes_used
| Metric Name | Metric Unit | Metric Help Description | 
|---|---|---|
| pool | None | JVM memory pool | 
| value | MB | used size of the given JVM memory pool | 
Metric collection: jvm_memory_pool_bytes_committed
| Metric Name | Metric Unit | Metric Help Description | 
|---|---|---|
| pool | None | JVM memory pool | 
| value | MB | The committed size of the given JVM memory pool | 
Metric collection: jvm_memory_pool_bytes_max
| Metric Name | Metric Unit | Metric Help Description | 
|---|---|---|
| pool | None | JVM memory pool | 
| value | MB | The maximum size of the memory pool for the given JVM | 
Metric collection: jvm_threads_state
| Metric Name | Metric Unit | Metric Help Description | 
|---|---|---|
| state | none | thread state | 
| value | None | The number of threads corresponding to the thread state |