如何将自定义指标添加到Dropwizard在管理端口(8081)上提供的默认内容?除了添加健康检查外,我无法在文档中找到任何内容。我非常喜欢从MongoDB中检索一些统计信息,并且宁愿使用8081上的管理资源,而不是在端口8080上创建自定义指标页面。向Dropwizard添加其他指标
10
A
回答
5
Dropwizard使用Metrics库来评估其所有指标。公制的getting started section拥有您开始添加自己所需的一切。
4
这里是一个例子。 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();
}
2
我没有测试它,但也许这将有助于:
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();
如果你建立你自己的套接字监听器,然后就可以看到这条线每XXX秒传入:
test.prefix.nameOfCounter.count 5 1411562372
1
如果你希望你的指标,显示了使用Dropwizard项目中包含的度量servlet,您必须使用Servlet使用的相同MetricRegistry对象,并将度量注册到其中。
您可以在应用程序中从环境中获取正确的MetricRegistry实例;或者从启动期间传递给它的initilaize方法的Bootstrap对象。
Dropwizard文档未能提及MetricRegistry的范围及其包含的对象。这意味着你只需创建你自己的MetricRegistry。这对于独立的“入门”应用程序来说工作得很好,但该文档是关于将度量标准添加到现有的Dropwizard应用程序,而不是新的独立应用程序。
相关问题
- 1. 向JMX添加指标
- 2. 向记事本中的其他行添加指定文本++
- 3. dropwizard指标和API时机
- 4. 向JIRA报告添加其他列
- 5. 向arraylist添加其他信息
- 6. 向haskell类型添加其他信息
- 7. 向Liferay添加其他语言属性
- 8. 向ExtJS5 Grid Panel添加其他属性
- 9. 向WooCommerce布局添加其他内容?
- 10. 向其他元素添加元素
- 11. 向JQGrid添加其他参数
- 12. 如何向类添加其他属性?
- 13. 向区域添加其他信息。 iBeacons
- 14. 向CountVectorizer矩阵添加其他功能
- 15. 向图表添加其他数据点
- 16. VB.NET:向类添加其他功能
- 17. 向Java Collection添加其他逻辑
- 18. 向SqlMembershipProvider添加其他安全问题
- 19. 向数组添加其他数据
- 20. 如何向DataGridRowGroupHeader添加其他数据?
- 21. 如何向标准XAML元素添加其他属性?
- 22. 在指令定义中的其他指令内添加指令
- 23. xcode - 无法添加其他c标志
- 24. Fancybox:添加标题和其他东西
- 25. 如何在Dropwizard中注册其他ConfigurationSourceProviders?
- 26. Dropwizard视图:添加ViewBundle
- 27. geochart:向其添加html注释或其他任何其他替代图表
- 28. AngularJS指令添加其他指令不起作用
- 29. Dropwizard指标可以与Scalatra集成吗?
- 30. 要获得使用DropWizard指标JVM的
我了解如何创建度量标准,但仍不确定如何将它们添加到Dropwizard在8081上提供的度量标准。 – johncowie 2013-03-26 14:22:07
只有在您创建度量标准并开始使用度量标准后才会发生这种情况。 – 2013-03-27 02:30:25
啊,我明白了。很好,谢谢。 – johncowie 2013-03-27 10:33:42