應用沒有監控,沒有畫板,一切指標都沒有。在這個Growth Hack逐漸成爲主流的時代,不弄個Dashboard把系統壓力、QPS、CPU、內存、日活啥的可視化,你好意思出來混嗎……
-
<dependency>
-
<groupId>org.springframework.boot</groupId>
-
<artifactId>spring-boot-starter-actuator</artifactId>
-
</dependency>
監控端點
[td]
端點(Spring Boot 2.x)
|
描述
|
HTTP方法
|
是否敏感
|
端點(Spring Boot 1.x)
|
conditions | 顯示自動配置的信息 | GET | 是 | autoconfig |
beans | 顯示應用程序上下文所有的Spring bean | GET | 是 | beans |
configprops | 顯示所有@ConfigurationProperties 的配置屬性列表 |
GET | 是 | configprops |
dump | 顯示線程活動的快照 | GET | 是 | dump |
env | 顯示環境變量,包括系統環境變量 以及應用環境變量 |
GET | 是 | env |
health | 顯示應用程序的健康指標,值由 HealthIndicator的實現類提供;結果有UP、 DOWN、OUTOFSERVICE、UNKNOWN ,如需查看看詳情,需配置: management.endpoint.health.show-details |
GET | 否 | health |
info | 顯示應用的信息,可使用 info.*屬性自定義info端點公開的數據 | GET | 否 | info |
mappings | 顯示所有的URL路徑 | GET | 是 | mappings |
metrics | 顯示應用的度量標準信息 | GET | 是 | metrics |
測試1:/health端點
-
{"status":"UP"}
測試2:/health端點展示詳情
-
management:
-
endpoint:
-
health:
-
# 是否展示健康檢查詳情
-
show-details: always
-
{
-
"status": "UP",
-
"details": {
-
"db": {
-
"status": "UP",
-
"details": {
-
"database": "H2",
-
"hello": 1
-
}
-
},
-
"diskSpace": {
-
"status": "UP",
-
"details": {
-
"total": 250790436864,
-
"free": 43443773440,
-
"threshold": 10485760
-
}
-
}
-
}
-
}
測試3:暴露敏感路徑
-
management:
-
endpoints:
-
web:
-
exposure:
-
# 暴露metrics端點,如需暴露多個,用,分隔;如需暴露所有端點,用'*'
-
include: metrics
-
{
-
"names": ["jvm.memory.max", "http.server.requests", "jdbc.connections.active", "process.files.max", "jvm.gc.memory.promoted", "tomcat.cache.hit", "system.load.average.1m", "tomcat.cache.access", "jvm.memory.used", "jvm.gc.max.data.size", "jdbc.connections.max", "jdbc.connections.min", "jvm.gc.pause", "jvm.memory.committed", "system.cpu.count", "logback.events", "tomcat.global.sent", "jvm.buffer.memory.used", "tomcat.sessions.created", "jvm.threads.daemon", "system.cpu.usage", "jvm.gc.memory.allocated", "tomcat.global.request.max", "hikaricp.connections.idle", "hikaricp.connections.pending", "tomcat.global.request", "tomcat.sessions.expired", "hikaricp.connections", "jvm.threads.live", "jvm.threads.peak", "tomcat.global.received", "hikaricp.connections.active", "hikaricp.connections.creation", "process.uptime", "tomcat.sessions.rejected", "process.cpu.usage", "tomcat.threads.config.max", "jvm.classes.loaded", "hikaricp.connections.max", "hikaricp.connections.min", "jvm.classes.unloaded", "tomcat.global.error", "tomcat.sessions.active.current", "tomcat.sessions.alive.max", "jvm.gc.live.data.size", "tomcat.servlet.request.max", "hikaricp.connections.usage", "tomcat.threads.current", "tomcat.servlet.request", "hikaricp.connections.timeout", "process.files.open", "jvm.buffer.count", "jvm.buffer.total.capacity", "tomcat.sessions.active.max", "hikaricp.connections.acquire", "tomcat.threads.busy", "process.start.time", "tomcat.servlet.error"]
-
}
-
{
-
"name": "jvm.memory.max",
-
"description": "The maximum amount of memory in bytes that can be used for memory management",
-
"baseUnit": "bytes",
-
"measurements": [{
-
"statistic": "VALUE",
-
"value": 5.597298687E9
-
}],
-
"availableTags": [{
-
"tag": "area",
-
"values": ["heap", "nonheap"]
-
}, {
-
"tag": "id",
-
"values": ["Compressed Class Space", "PS Survivor Space", "PS Old Gen", "Metaspace", "PS Eden Space", "Code Cache"]
-
}
TIPS
-
management:
-
endpoints:
-
web:
-
exposure:
-
include: '*'
拓展閱讀
說明
-
由於Actuator本身是Spring Boot中的組件,並不是本套教程的重點(其實筆者本不想寫這一節,但後面又會持續用這些端點,並且Spring Cloud在這些端點的基礎上還做了一些增加,所以還是有必要介紹一下),因此本節只是對Actuator進行了比較簡單的介紹,讀者可自行挖掘Actuator的其他能力。也可持續關注本公衆號,本系列完成後,筆者將會扒開Actuator的底褲,深度介紹Spring Boot監控的那些事兒。
配套代碼
-
https://github.com/eacdy/spring-cloud-study/tree/master/2018-Finchley/microservice-simple-provider-user
-
https://github.com/eacdy/spring-cloud-study/tree/master/2018-Finchley/microservice-simple-consumer-movie
-
https://gitee.com/itmuch/spring-cloud-study/tree/master/2018-Finchley/microservice-simple-provider-user
-
https://gitee.com/itmuch/spring-cloud-study/tree/master/2018-Finchley/microservice-simple-consumer-movie
更多免費技術資料可關注:annalin1203