Как мне добавить добавление настраиваемых показателей в материал по умолчанию, который Dropwizard предоставляет на порт администратора (8081)? Я не могу найти ничего в документации, кроме добавления проверок работоспособности. Я бы очень хотел включить некоторые статистические данные, извлеченные из MongoDB, и скорее сохранил бы его с ресурсами администратора на 8081, чем создать страницу пользовательских показателей на порту 8080.Добавление дополнительных показателей в Dropwizard
ответ
Dropwizard использует библиотеку Metrics для всех своих показателей. Metric's getting started section имеет все необходимое, чтобы начать добавлять свои собственные.
Вот пример. Каждая метрика в этом экземпляре jvm отображается через JMX. Вы также можете регистрировать метрических репортеров, которые будут делать то, что нравится дампу всех метрик, чтобы регистрироваться на интервале или отправлять графит с интервалом.
//this creates or returns the metrics, basically every metric is only created once and registered in a registry
private final Timer timerCanMakeHold =
Metrics.newTimer(MyClass.class, "METRICNAME", TimeUnit.MILLISECONDS, TimeUnit.SECONDS);
final TimerContext timerContex = timerCanMakeHold.time();
try{
doSomeWork()//this is what you are timing
}finally{
timerContex.stop();
}
Я не проверял, но, возможно, это могло бы помочь:
final Graphite graphite = new Graphite(new InetSocketAddress("graphite.url.example", 2003));
MetricRegistry metrics = new MetricRegistry();
GraphiteReporter reporter = GraphiteReporter.forRegistry(metrics)
.convertRatesTo(TimeUnit.SECONDS)
.convertDurationsTo(TimeUnit.MILLISECONDS)
.build(graphite);
reporter.start(1, TimeUnit.SECONDS);
Counter counter = metrics.counter("nameOfCounter");
counter.inc();
Для плюща вы должны добавить к вашей ivy.xml:
<dependency org="io.dropwizard" name="dropwizard-metrics" rev="0.7.1"/>
<dependency org="io.dropwizard" name="dropwizard-metrics-graphite" rev="0.7.1"/>
Если вы положили это в ваш config.yml,
metrics:
reporters:
- type: console
timeZone: UTC
output: stdout
durationUnit: milliseconds
rateUnit: seconds
frequency: 120 seconds
- type: graphite
host: localhost
port: 9090
prefix: test.prefix
вы можете al так зовут MetricsFactory в методе выполнения:
MetricRegistry metrics = new MetricRegistry();
MetricsFactory mfac = configuration.getMetricsFactory();
mfac.configure(environment.lifecycle(), metrics);
Counter counter = metrics.counter("nameOfCounter");
counter.inc();
counter.inc();
counter.inc();
counter.inc();
counter.inc();
Если построить собственные сокеты слушателя, то вы можете увидеть эту линию, поступающей через каждые ххе секунды:
test.prefix.nameOfCounter.count 5 1411562372
Если вы хотите, чтобы ваши показатели, чтобы показать с сервлетом метрик, который включен в ваш проект Dropwizard, вы должны использовать тот же объект MetricRegistry, что и сервлет, и регистрировать в нем свои показатели.
Вы можете получить правильный экземпляр MetricRegistry из среды в приложении; или из объекта Bootstrap, который передается методу initilaize во время запуска.
В документации Dropwizard не упоминается область действия MetricRegistry и объектов, которые она содержит. Это означает, что вы просто создаете свой собственный MetricRegistry. Это будет отлично работать для самостоятельного приложения «начать работу», но документ посвящен добавлению показателей к существующему приложению Dropwizard, а не к новому автономному приложению.
- 1. Добавление последовательности показателей Haskell
- 2. Расширение DataSourcePublicMetrics для получения дополнительных показателей
- 3. Настройка DropWizard для обслуживания показателей в приложении HTTP-коннектор
- 4. добавление настраиваемых показателей для подсчета
- 5. Соответствующий шаблон проектирования для отслеживания показателей с помощью Dropwizard
- 6. DropWizard @ValidationMethod добавление свойства json
- 7. Экспорт показателей в весенний ботинок
- 8. Добавление более двух показателей в Google Analytics
- 9. добавление дополнительных файлов треков
- 10. добавление дополнительных параметров функции
- 11. Добавление дополнительных красных
- 12. Rails.cache.fetch добавление дополнительных значений
- 13. String.replace добавление дополнительных символов
- 14. Добавление дополнительных Петли
- 15. Добавление дополнительных кнопок
- 16. добавление дополнительных полей в запрос
- 17. Добавление дополнительных элементов в словарь
- 18. Добавление дополнительных фильтров в запрос
- 19. Добавление дополнительных данных в переменную
- 20. Добавление дополнительных JPanel в JPanel
- 21. Добавление дополнительных контейнеров в container.viewport
- 22. Добавление дополнительных полей в CreateUserWizard
- 23. Добавление дополнительных настроек в $ _ENV
- 24. Добавление дополнительных покупок в приложении
- 25. Добавление дополнительных разделов в NSFetchedResultsController
- 26. Добавление дополнительных +++ в мою переменную $
- 27. file_get_contents добавление дополнительных/\ slashes
- 28. Добавление дополнительных строк
- 29. Добавление фильтра после сопоставления в dropwizard
- 30. Добавление класса инвалидов на основе сопоставления показателей
Я понимаю, как создавать метрики, но все еще не уверен, как добавить их к метрикам, которые Dropwizard поставляет на 8081. – johncowie
Это произойдет только после того, как вы создадите метрику и начнете ее использовать. –
Ах, я вижу. Отлично, спасибо. – johncowie