添加POM依賴:
<!-- spring-boot-監控--><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId></dependency><dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency>
application.yml中指定監控的HTTP端口(如果不指定,則使用和Server相同的端口);指定去掉某項的檢查(比如不監控health.mail):
server: port: 8083management: port: 8083 security: enabled: false #
監控和管理端點
端點名 | 描述 |
---|---|
autoconfig | 所有自動配置信息( positiveMatches :運行的, negativeMatches 未運行組件) |
auditevents | 審計事件 |
beans | 所有Bean的信息 |
configprops | 所有配置屬性 |
dump | 線程狀態信息 |
env | 當前環境信息 |
health | 應用健康狀況 |
info | 當前應用信息 |
metrics | 應用的各項指標 |
mappings | 應用@RequestMapping映射路徑 |
shutdown | 關閉當前應用(默認關閉) |
trace | 追蹤信息(最新的http請求) |
heapdump | 下載內存快照 |
http://localhost:8083/info 讀取配置文件application.properties的 info.*屬性
在InfoProperties 讀取
application.properties :
info.app.version=v1.2.0info.app.name=abc
在GitProperties 獲取git.properties 的信息
info.app.version=v1.2.0info.app.name=abc#遠程關閉開啟endpoints.shutdown.enabled=true #訪問:http://localhost:8083/shutdown 關閉服務
metrics
{mem: 573549, //內存大小mem.free: 388198, //內存剩余大小processors: 4, //處理器數量instance.uptime: 338426,uptime: 345091,systemload.average: -1,heap.committed: 489984,heap.init: 131072,heap.used: 101785,heap: 1842688,nonheap.committed: 85056,nonheap.init: 2496,nonheap.used: 83566,nonheap: 0,threads.peak: 46,threads.daemon: 36,threads.totalStarted: 72,threads: 39, //線程classes: 12109,classes.loaded: 12109, //加載的類classes.unloaded: 0, //沒加載的類gc.ps_scavenge.count: 10,gc.ps_scavenge.time: 103,gc.ps_marksweep.count: 3,gc.ps_marksweep.time: 219,httpsessions.max: -1,httpsessions.active: 0,gauge.response.mappings: 3,gauge.response.autoconfig: 4,gauge.response.trace: 167,counter.status.200.mappings: 1,counter.status.200.autoconfig: 2,counter.status.200.trace: 1}
自定義配置說明:
#關閉metrics功能endpoints.metrics.enabled=false#開啟shutdown遠程關閉功能endpoints.shutdown.enabled=true#設置beansIdendpoints.beans.id=mybean#設置beans路徑endpoints.beans.path=/bean#關閉beans 功能endpoints.beans.enabled=false#關閉所有的endpoints.enabled=false #開啟單個beans功能endpoints.beans.enabled=true#所有訪問添加根目錄management.context-path=/manage?management.port=8181
org.springframework.boot.actuate.health 包下對于所有的健康狀態檢查例如:RedisHealthIndicator ,當有redis的starter 時候就會檢查
{ status: "DOWN", //狀態 diskSpace: { status: "UP", total: 395243941888, free: 367246643200, threshold: 10485760 }, rabbit: { status: "DOWN", error: "org.springframework.amqp.AmqpConnectException: java.net.ConnectException: Connection refused: connect" }, redis: { status: "UP", version: "4.0.9" }, db: { status: "UP", database: "MySQL", hello: 1 }}
自定義health
•自定義健康狀態指示器
•1、編寫一個指示器 實現 HealthIndicator 接口
•2、指示器的名字 xxxxHealthIndicator
•3、加入容器中
import org.springframework.boot.actuate.health.Health;import org.springframework.boot.actuate.health.HealthIndicator;import org.springframework.stereotype.Component;@Componentpublic class MyAppHealthIndicator implements HealthIndicator {? @Override public Health health() {? //自定義的檢查方法 //Health.up().build()代表健康 return Health.down().withDetail("msg","服務異常").build(); }}
總結
以上所述是小編給大家介紹的spring boot starter actuator(健康監控)配置和使用教程,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VeVb武林網網站的支持!
新聞熱點
疑難解答
圖片精選