Пытаюсь интегрировать показатели Coda Hale в spring boot, не отображая показатели в /metrics

#spring-boot #codahale-metrics

#spring-boot #codahale-метрики

Вопрос:

Я следил за указанием, что добавление библиотеки coda hale metrics в classpath автоматически приведет к автоматической настройке показателей.

Это работает, я получаю введенный компонент MetricRegistry.

Однако, как мне представить эти новые показатели в конечной точке / metrics?

Спасибо!

Ответ №1:

Есть некоторая магия интеграции, выполняемаяhttp://www.ryantenney.com/metrics-spring / это передает показатели codahale в /health конечную точку привода.

С учетом этой зависимости,

 compile 'com.ryantenney.metrics:metrics-spring:3.0.0-RC2'
  

вы можете «Включить Metrics» в конфигурации вашего приложения

 @EnableMetrics
public class ApplicationConfiguration {
    ...
  

Это позволяет вам приурочивать каждый запрос к @timed аннотации:

 @Timed
@RequestMapping(method=RequestMethod.GET)
public @ResponseBody
Foo foo() {
    ...
  

и перенести другие ваши взаимодействия с MetricRegistry aggregate в конечную точку actuator /health .

Я собрал пример приложения, которое реализует эту интеграцию:

https://github.com/benschw/consul-cluster-puppet/tree/master/demo

и написал более подробное руководство здесь: http://txt.fliglio.com/2014/10/spring-boot-actuator /

Комментарии:

1. На самом деле Spring Boot также добавляет показатели Codahale к конечной точке /metrics самостоятельно, начиная с 1.2.0 (см. MetricRegistryMetricReader ).

Ответ №2:

Это не так, как это должно работать. В Codahale есть некоторые типы показателей, которые не сопоставляются с типами Spring Boot, поэтому предполагается, что вы будете использовать собственные API Codahale для создания отчетов, как только начнете собирать показатели таким образом. Boot на этом этапе предоставляет только абстракцию сервиса для датчика и счетчика.

ОБНОВЛЕНИЕ: Spring Boot также добавляет показатели Codahale в конечную точку /metrics начиная с 1.2.0 (см. MetricRegistryMetricReader ).

Комментарии:

1. но что, по-видимому, означает это предложение в документации spring boot? Это намекает на то, что существует некоторый уровень интеграции. «Пользователи могут создавать показатели Coda Hale, добавляя к именам своих показателей соответствующий тип (например, гистограмма.*, метр.*)».

2. Это означает, что показатели типа histogram и meter (собственные типы Codahale) могут быть созданы путем добавления к сервисам Spring Boot metrics. Мы можем немного уточнить документы, если вы хотите внести предложение.

3. Насколько я понял документацию, вы можете внедрить GaugeService и CounterService. Таким образом, вы можете создавать показатели этих типов. Но как вы можете «добавить» к службам показателей spring boot. Я с трудом могу представить, что вы добавляете гистограмму с помощью GaugeService?

4. Почему бы и нет? Вы просто отправляете измерение с именем в «histogram. *» (семантически gauge лучше, чем counter, но я думаю, что оба работают). Это то, что написано в документах (по общему признанию, возможно, недостаточно четко).

5. отлично! Спасибо. Документы могли бы быть немного более четкими, я согласен.

Ответ №3:

Я обновляю гистограмму показателей с помощью spring-boot следующим образом:

         gauge.submit("histogram."   name   ".millis", durationMillis);