如何用spring-boot显示Dropwizard Metrics Servlet?

问题描述 投票:7回答:2

我正在使用spring-boot-starter-actuator来获取localhost/metrics端点。

现在我也想使用dropwizard.metricsmetrics-servlets依赖。在他们的网页(https://dropwizard.github.io/metrics/3.1.0/getting-started/)上,据说这是一个带有某种管理菜单的AdminServet指标,healt,threaddump和ping将被创建。

但我没有看到那个servlet。我是否可能必须在spring-boot中明确注册?

java spring spring-boot metrics dropwizard
2个回答
5
投票

我必须显式实例化servlet并提供servlet映射路径,如下所示:

@Bean
public ServletRegistrationBean servletRegistrationBean(){
    return new ServletRegistrationBean(new AdminServlet(),"/metrics/admin/*");
}

1
投票

如果有人使用的是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/*");
}

资料来源:https://stackoverflow.com/a/41382649/1047418

© www.soinside.com 2019 - 2024. All rights reserved.