Spring Boot Actuator: метрики
Spring Boot Actuator обеспечивает управление зависимостями и автоматическую настройку для Micrometer, фасада метрик приложения, который поддерживает многочисленные системы мониторинга, включая:
- AppOptics
- Atlas
- Datadog
- Dynatrace
- Elastic
- Ganglia
- Graphite
- Humio
- Influx
- JMX
- KairosDB
- New Relic
- Prometheus
- SignalFx
- Simple (простые, хранящиеся в памяти)
- StatsD
- Wavefront
Spring Boot автоматически настраивает составной MeterRegistry и добавляет реестр в составной для каждой из поддерживаемых реализаций, которые он находит в пути к классам. Зависимость от micrometer-registry-{system} в вашем пути к классам среды выполнения достаточна для Spring Boot для настройки реестра.
Большинство реестров имеют общие черты. Например, вы можете отключить определенный реестр, даже если реализация реестра Micrometer находится на пути к классам. Например, чтобы отключить Datadog:
management.metrics.export.datadog.enabled=false
Spring Boot также добавит все автоматически настроенные реестры в глобальный статический составной реестр класса Metrics, если вы явно не запретите ему:
management.metrics.use-global-registry=false
Вы можете зарегистрировать любое количество компонентов MeterRegistryCustomizer для дальнейшей настройки реестра, например применения общих тегов, до регистрации любых счетчиков в реестре:
@Bean
MeterRegistryCustomizer<MeterRegistry> metricsCommonTags() {
return registry -> registry.config().commonTags("region", "us-east-1");
}
Вы можете применить настройки к конкретным реализациям реестра, более подробно описав общий тип:
@Bean
MeterRegistryCustomizer<GraphiteMeterRegistry> graphiteMetricsNamingConvention() {
return registry -> registry.config().namingConvention(MY_CUSTOM_CONVENTION);
}
С этой настройкой вы можете добавить MeterRegistry в свои компоненты и зарегистрировать метрики:
@Component
public class SampleBean {
private final Counter counter;
public SampleBean(MeterRegistry registry) {
this.counter = registry.counter("received.messages");
}
public void handleMessage(String message) {
this.counter.increment();
// реализация обработки сообщения
}
}
Spring Boot также настраивает встроенные инструменты (то есть реализации MeterBinder), которыми вы можете управлять через конфигурацию или выделенные маркеры аннотаций.
Читайте также:
- Spring Boot Actuator: информация о работоспособности (health endpoint)
- Spring Boot Actuator: информация о приложении (info endpoint)
- Spring Boot Actuator: мониторинг и управление по HTTP
Комментарии
Отправить комментарий