我试图在用Dropwizard实现的Java Web应用程序中添加一个/metrics
端点,以便可以被Prometheus抓取。
我的第一种方法是使用simpleclient_dropwizard提供的DropwizardExports
收集器并像这样注册它:
Collector dropwizardExports = new DropwizardExports(environment.metrics());
CollectorRegistry.defaultRegistry.register(dropwizardExports);
environment.admin()
.addServlet("metrics", new MetricsServlet(CollectorRegistry.defaultRegistry))
.addMapping("/metrics");
这很好用,但是我们特定的Prometheus配置需要一些特定的导出器,例如名为http_requests_total
的计数器(顺便说一句,我知道这个名称的选择不是很好)。
更具体地说,我希望使用与Mojolicious Prometheus Plugin相同的指标。
为此,访问Jetty提供的指标似乎是合理的,例如io_dropwizard_jetty_MutableServletContextHandler_requests_count
。如何将其各自的名称更改为上下文中需要的名称?
因此,第一个问题是:是否有可能以某种方式聚合和/或重命名DropWizard提供的指标?
如果没有,实现我自己的Prometheus指标的最佳方法是什么?实现自定义收集器(也许继承自DropwizardExports
?
我首先需要DropwizardExports
吗?