Açıklaması şöyle. Micrometer kütüphanesi aracılığıyla metric üretir.
Şöyle yaparız.
Detayları görmek için şöyle yaparız.
Spring Boot Actuator provides dependency management and auto-configuration for Micrometer, an application metrics facade that supports numerous monitoring systems.
Açıklaması şöyle. Yani aslında Micrometer bir nevi SLF4J gibi düşünülebilir.
Both Quarkus and Spring use the Micrometer metrics library for collecting metrics. Micrometer provides a vendor-neutral interface for registering dimensional metrics and metric types, such as counters, gauges, timers, and distribution summaries. These core types are an abstraction layer that can be adapted and delegated to specific implementations, such as Prometheus.
The Quarkus Micrometer extension automatically times all HTTP server requests. Other Quarkus extensions also automatically add their own metrics collections. Applications can add their own custom metrics as well. Quarkus will automatically export the metrics on the /q/metrics endpoint. In Spring, Micrometer is supported by the Spring Boot Actuator starter if the Micrometer libraries are included on the application's classpath.
Çıktı Çeşitler
Şöyledir. Yani çok fazla çeşit ve formatta çıktı verebiliyor
AtlasAWS CloudWatchDatadogDynatraceElasticGraphiteInfluxInstanaJMXNew RelicOpenTelemetry ProtocolPrometheusStatsD
DataDog Formatı
Metrics endpoint istenirse DataDog formatında çıktı da verebilir. DataDog yazısına taşıdım
Prometheus Formatı
Metrics endpoint istenirse Prometheus formatında çıktısı da verebilir. Prometheus Endpoint yazısına taşıdım
Etkinleştirmek
Etkinleştirmek için şöyle yaparız
management.endpoint.metrics.enabled = true
management.endpoints.web.exposure.include = metrics
tags alanı
Prometheus için tag belirtir. Açıklaması şöyle
management.metrics.tags.application - we may monitor multiple applications on our Grafana dashboard, so we need to distinguish one application from another
Örnek
Şöyle yaparız
spring:
application:
name: [SERVICE_NAME]
...
management:
endpoint:
health:
show-details: always
endpoints:
web:
exposure:
include: "*"
metrics:
tags:
application: ${spring.application.name}
Örnek
http://localhost:8080/actuator/metrics
Çıktı olarak şunu alırız. Burada toplanan tüm metriklerin isimleri var{ "names": [
"jvm.threads.states",
"process.files.max",
"jvm.memory.used",
"jvm.gc.memory.promoted",
"jvm.memory.max",
"system.load.average.1m",
...
]
}
Eğer kullanılan diğer kütüphaneler de Micrometer metric üretiyorsa onları da görürüz.
Hikari ve Tomcat metric üretir. Şöyle yaparız
curl -s http://localhost:8080/actuator/metrics | jq
{
"names": [
"hikaricp.connections",
"hikaricp.connections.acquire",
"hikaricp.connections.active",
"hikaricp.connections.creation",
"hikaricp.connections.idle",
"hikaricp.connections.max",
"hikaricp.connections.min",
"hikaricp.connections.pending",
"hikaricp.connections.timeout",
"hikaricp.connections.usage",
"http.server.requests",
"jdbc.connections.active",
"jdbc.connections.idle",
"jdbc.connections.max",
"jdbc.connections.min",
"spring.data.repository.invocations",
"tomcat.sessions.active.current",
"tomcat.sessions.active.max",
"tomcat.sessions.alive.max",
"tomcat.sessions.created",
"tomcat.sessions.expired",
"tomcat.sessions.rejected"
]
}
Örnek - Tek Metric Değerini Görmek
Şöyle yaparız
curl -s http://localhost:8080/actuator/metrics/hikaricp.connections.active | jq
{
"name": "hikaricp.connections.active",
"description": "Active connections",
"baseUnit": null,
"measurements": [
{
"statistic": "VALUE",
"value": 4
}
],
"availableTags": [
{
"tag": "pool",
"values": [
"HikariPool-1"
]
}
]
}
Örnek - Tek Metric Değerini Görmek
Şöyle yaparız
http://localhost:8080/actuator/metrics/cache.size
Örnek - Tek Metric Değerini Görmek
http://localhost:8080/actuator/metrics/system.cpu.count
Örnek - Tek Metric Değerini Görmek
Hiç yorum yok:
Yorum Gönder