Попытка интегрировать Coda Hale Metrics в весеннюю загрузку, не видя метрики в / metrics

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

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

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

Спасибо!


person Luis Muñiz    schedule 04.07.2014    source источник


Ответы (3)


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

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

person Dave Syer    schedule 04.07.2014
comment
но что это предложение должно означать в документации по весенней загрузке? Это намекает на то, что существует некоторый уровень интеграции. Пользователи могут создавать метрики Coda Hale, добавляя к именам метрик префикс соответствующего типа (например, гистограмма.*, метр.*). - person Luis Muñiz; 04.07.2014
comment
Это означает, что метрики типа гистограммы и измерителя (собственные типы Codahale) могут быть созданы путем добавления к службам метрик Spring Boot. Мы можем немного уточнить документы, если вы хотите внести предложение. - person Dave Syer; 04.07.2014
comment
Насколько я понял из документации, вы можете внедрить GaugeService и CounterService. Таким образом, вы можете создавать метрики этих типов. Но как вы можете добавить сервисы метрик весенней загрузки. С трудом представляю, что вы добавляете гистограмму с помощью GaugeService? - person Luis Muñiz; 04.07.2014
comment
Почему бы и нет? Вы просто отправляете измерение с именем в гистограмме.* (датчик лучше, чем счетчик семантически, но я думаю, что оба варианта работают). Это то, что написано в документах (правда, возможно, недостаточно ясно). - person Dave Syer; 04.07.2014
comment
Ок, отлично! Спасибо. Документы могут быть немного более явными, я согласен. - person Luis Muñiz; 05.07.2014
comment
Я также думаю, что документация требует некоторого разъяснения (или примера) по этому вопросу. - person airborn; 16.02.2015
comment
Зачем нужен префикс? Есть ли у него какая-то семантика? Насколько я понимаю, это возможно и без префикса, и Spring-Boot по-прежнему будет экспортировать данные в конечную точку /metrics. - person Kevin Wittek; 25.03.2015
comment
Префикс является сигналом для Spring Boot отправить метрику в Codahale, поэтому да, он необходим, если вы хотите, чтобы это произошло. - person Dave Syer; 25.03.2015

http://www.ryantenney.com/metrics-spring/ творит некоторую магию интеграции. который передает метрики codahale в конечную точку привода /health.

С включенной этой зависимостью

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

вы можете "enableMetrics" в конфигурации вашего приложения

@EnableMetrics
public class ApplicationConfiguration {
    ...

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

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

и чтобы ваши другие взаимодействия с MetricRegistry объединялись в конечную точку привода /health.

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

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

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

person ben schwartz    schedule 23.10.2014
comment
На самом деле Spring Boot также самостоятельно добавляет метрики Codahale в конечную точку /metrics, начиная с версии 1.2.0 (см. MetricRegistryMetricReader). - person Dave Syer; 16.02.2015

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

        gauge.submit("histogram." + name + ".millis", durationMillis);
person David Roussel    schedule 04.07.2014