我正在使用spring-boot-starter-actuator
来获取localhost/metrics
端点。
现在我也想使用dropwizard.metrics
和metrics-servlets
依赖。在他们的网页(https://dropwizard.github.io/metrics/3.1.0/getting-started/)上,据说这是一个带有某种管理菜单的AdminServet
指标,healt,threaddump和ping将被创建。
但我没有看到那个servlet。我是否可能必须在spring-boot中明确注册?
我必须显式实例化servlet并提供servlet映射路径,如下所示:
@Bean
public ServletRegistrationBean servletRegistrationBean(){
return new ServletRegistrationBean(new AdminServlet(),"/metrics/admin/*");
}
如果有人使用的是5.0.0版本,则需要执行以下步骤才能使其正常工作:
@Inject
private ServletContext servletContext;
@Inject
private MetricRegistry metricRegistry;
@Inject
private HealthCheckRegistry healthCheckRegistry;
@Bean
public ServletRegistrationBean<Servlet> servletRegistrationBean(){
servletContext.setAttribute(MetricsServlet.METRICS_REGISTRY,
metricRegistry);
servletContext.setAttribute(HealthCheckServlet.HEALTH_CHECK_REGISTRY,
healthCheckRegistry);
return new ServletRegistrationBean<>(new AdminServlet(), "/metrics/*");
}