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), которыми вы можете управлять через конфигурацию или выделенные маркеры аннотаций.


Читайте также:


Комментарии

Популярные сообщения из этого блога

Методы класса Object в Java

Как получить текущий timestamp в Java

Основные опции JVM для повышения производительности и отладки