? Spring Boot 依賴與配置
Maven 依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>io.micrometer</groupId>
<artifactId>micrometer-registry-prometheus</artifactId>
<version>1.1.4</version>
</dependency>
Actuator 配置
management.endpoints.web.exposure.include=prometheus
? Metrics
查看度量數據
curl http://127.0.0.1:8080/actuator/prometheus
詳細說明
# 最大文件處理數量
process_files_max_files 10240.0
# Tomcat 當前活躍 session 數量
tomcat_sessions_active_current_sessions 0.0
# Tomcat session 最大存活時間
tomcat_sessions_alive_max_seconds 0.0
# 預估的池中緩沖區(qū)的總容量
jvm_buffer_total_capacity_bytes{id="direct",} 81920.0
jvm_buffer_total_capacity_bytes{id="mapped",} 0.0
# 當前守護進程的線程數量
jvm_threads_daemon_threads 23.0
# 全局最長一次請求的時間
tomcat_global_request_max_seconds{name="http-nio-8080",} 10.007
# HELP tomcat_sessions_active_max_sessions
# 最大活躍 session 數量
tomcat_sessions_active_max_sessions 0.0
# CPU 利用率
system_cpu_usage 0.2865671641791045
# 預估 Java 虛擬機用于此緩沖池的內存
jvm_buffer_memory_used_bytes{id="direct",} 81920.0
jvm_buffer_memory_used_bytes{id="mapped",} 0.0
# 當前在 Java 虛擬機中加載的類的數量
jvm_classes_loaded_classes 7910.0
# 為 Java 虛擬機提交的內存量(以字節(jié)為單位)
jvm_memory_committed_bytes{area="heap",id="PS Survivor Space",} 1.6252928E7
jvm_memory_committed_bytes{area="heap",id="PS Old Gen",} 1.53092096E8
jvm_memory_committed_bytes{area="heap",id="PS Eden Space",} 1.77733632E8
jvm_memory_committed_bytes{area="nonheap",id="Metaspace",} 4.1680896E7
jvm_memory_committed_bytes{area="nonheap",id="Code Cache",} 9502720.0
jvm_memory_committed_bytes{area="nonheap",id="Compressed Class Space",} 5767168.0
# 當前線程數,包括守護進程和非守護進程的線程
jvm_threads_live_threads 27.0
# 配置的 Tomcat 的最大線程數
tomcat_threads_config_max_threads{name="http-nio-8080",} 200.0
# HELP tomcat_global_received_bytes_total
# Tomcat 接收到的數據量
tomcat_global_received_bytes_total{name="http-nio-8080",} 270.0
# Tomcat 發(fā)送的數據量
tomcat_global_sent_bytes_total{name="http-nio-8080",} 97342.0
# Tomcat 當前的線程數
tomcat_threads_current_threads{name="http-nio-8080",} 10.0
# Tomcat 創(chuàng)建的 session 數
tomcat_sessions_created_sessions_total 0.0
# 在一段時間內乳规,排隊到可用處理器的可運行實體數量和可用處理器上運行的可運行實體數量的總和的平均值
system_load_average_1m 5.51953125
# 過期的 session 數量
tomcat_sessions_expired_sessions_total 0.0
# 預估的池中的緩沖區(qū)數量
jvm_buffer_count_buffers{id="direct",} 10.0
jvm_buffer_count_buffers{id="mapped",} 0.0
# JVM 內存使用量
jvm_memory_used_bytes{area="heap",id="PS Survivor Space",} 0.0
jvm_memory_used_bytes{area="heap",id="PS Old Gen",} 2.1793344E7
jvm_memory_used_bytes{area="heap",id="PS Eden Space",} 1.62746832E8
jvm_memory_used_bytes{area="nonheap",id="Metaspace",} 3.9070768E7
jvm_memory_used_bytes{area="nonheap",id="Code Cache",} 9491136.0
jvm_memory_used_bytes{area="nonheap",id="Compressed Class Space",} 5289304.0
# Java 虛擬機的正常運行時間
process_uptime_seconds 1771.052
# 增加一個 GC 到下一個 GC 之后年輕代內存池的大小增加
jvm_gc_memory_allocated_bytes_total 8.3400336E7
# GC暫停耗時
jvm_gc_pause_seconds_count{action="end of major GC",cause="Metadata GC Threshold",} 1.0
jvm_gc_pause_seconds_sum{action="end of major GC",cause="Metadata GC Threshold",} 0.057
jvm_gc_pause_seconds_count{action="end of minor GC",cause="Metadata GC Threshold",} 1.0
jvm_gc_pause_seconds_sum{action="end of minor GC",cause="Metadata GC Threshold",} 0.014
# HELP jvm_gc_pause_seconds_max Time spent in GC pause
# TYPE jvm_gc_pause_seconds_max gauge
jvm_gc_pause_seconds_max{action="end of major GC",cause="Metadata GC Threshold",} 0.0
jvm_gc_pause_seconds_max{action="end of minor GC",cause="Metadata GC Threshold",} 0.0
# 被拒絕的 session 總數
tomcat_sessions_rejected_sessions_total 0.0
# Full GC 后的老年代內存池的大小
jvm_gc_live_data_size_bytes 2.1793344E7
# Tomcat 繁忙線程數
tomcat_threads_busy_threads{name="http-nio-8080",} 1.0
# 自 Java 虛擬機啟動或峰值重置以來的最高活動線程數
jvm_threads_peak_threads 39.0
# 當前具有 NEW 狀態(tài)的線程數
jvm_threads_states_threads{state="runnable",} 10.0
jvm_threads_states_threads{state="blocked",} 0.0
jvm_threads_states_threads{state="waiting",} 14.0
jvm_threads_states_threads{state="timed-waiting",} 3.0
jvm_threads_states_threads{state="new",} 0.0
jvm_threads_states_threads{state="terminated",} 0.0
# 老年代內存池的最大大小
jvm_gc_max_data_size_bytes 2.863661056E9
# 某個接口的請求數量和請求總時間
http_server_requests_seconds_count{exception="None",method="GET",outcome="SUCCESS",status="200",uri="/actuator/prometheus",} 10.0
http_server_requests_seconds_sum{exception="None",method="GET",outcome="SUCCESS",status="200",uri="/actuator/prometheus",} 0.146934156
# HELP http_server_requests_seconds_max
# TYPE http_server_requests_seconds_max gauge
http_server_requests_seconds_max{exception="None",method="GET",outcome="SUCCESS",status="200",uri="/actuator/prometheus",} 0.0
http_server_requests_seconds_max{exception="None",method="GET",outcome="SUCCESS",status="200",uri="/api/sleep",} 0.0
# GC之前到GC之后的老年代內存池大小的正增加計數
jvm_gc_memory_promoted_bytes_total 1.0939928E7
# 日志按級別計數
logback_events_total{level="warn",} 0.0
logback_events_total{level="debug",} 0.0
logback_events_total{level="error",} 0.0
logback_events_total{level="trace",} 0.0
logback_events_total{level="info",} 17.0
# 啟動時間
process_start_time_seconds 1.556439756232E9
# 打開文件描述符的數量
process_files_open_files 101.0
# 異常數量
tomcat_global_error_total{name="http-nio-8080",} 0.0
# 可用于內存管理的最大內存量(以字節(jié)為單位)
jvm_memory_max_bytes{area="heap",id="PS Survivor Space",} 1.6252928E7
jvm_memory_max_bytes{area="heap",id="PS Old Gen",} 2.863661056E9
jvm_memory_max_bytes{area="heap",id="PS Eden Space",} 1.395130368E9
jvm_memory_max_bytes{area="nonheap",id="Metaspace",} -1.0
jvm_memory_max_bytes{area="nonheap",id="Code Cache",} 2.5165824E8
jvm_memory_max_bytes{area="nonheap",id="Compressed Class Space",} 1.073741824E9
# 最近的 CPU 利用率
process_cpu_usage 0.002344795186641643
# 自 Java 虛擬機開始執(zhí)行以來卸載的類總數
jvm_classes_unloaded_classes_total 1.0
# CPU 核數
system_cpu_count 4.0
# 全局請求總數和總耗時
tomcat_global_request_seconds_count{name="http-nio-8080",} 15.0
tomcat_global_request_seconds_sum{name="http-nio-8080",} 14.239
Prometheus 數據結構
<metric name>{<label name>=<label value>, ...} value
Prometheus Metrics Value
Prometheus 度量值:float64形葬,示例: 1.556439756232E9 = 1556439756.232