Как настроить продолжительность шага LoggingMeterRegistry в Spring Boot 2.x?

Я пытаюсь настроить LoggingMeterRegistry для регистрации показателей для моего приложения Spring Boot 2.1.6. Я хочу, чтобы метрики регистрировались каждый час.

В моем application.yml я настроил следующее

management:
  metrics:
    export:
      logging:
        enabled: true
        step: 60m

Но в журналах я вижу, что метрики регистрируются каждую минуту. Я также пробовал другой вариант для ключа свойства, например.

management.metrics.export.logging:
  enabled: true
  step: 60m

Я также пробовал различные форматы для строки продолжительности, например. 1h, PT60M, но безуспешно. Показатели регистрируются с интервалом в 1 минуту.

Я смотрел код здесь StepDurationConverterTest и здесь StepDurationConverter, который преобразует строку длительности шага в объект Duration и выглядит так, как будто оба формата 60m и 1h должны Работа.

Любые идеи, почему я не могу изменить интервал регистрации?


person golfradio    schedule 26.08.2019    source источник
comment
Этот шаг должен сработать. Вы пытались поставить точку останова в LoggingMeterRegistry, чтобы увидеть, читается ли она в вашем свойстве?   -  person checketts    schedule 28.08.2019


Ответы (1)


Я думаю, проблема здесь в том, что нет пакета org.springframework.boot.actuate.autoconfigure.metrics.export.logging, как для других MeterRegistry (например, org.springframework.boot.actuate.autoconfigure.metrics.export.jmx).

Т.е. нет автоматической настройки свойств в Spring Boot. Вероятно, это потому, что LoggingMeterRegistry помечен как @Incubating

Вам нужно вручную настроить LoggingMeterRegistry как bean-компонент и создать свои собственные @ConfigurationProperties LoggingProperties и LoggingPropertiesConfigAdapter, чтобы заставить это работать. Или просто жестко запрограммируйте период шага, который вы хотите.

person David Geary    schedule 28.01.2020