我建議使用健康檢查功能從Metrics。您可以設置一些類,擴展HealthCheck
類並實施check()
方法。這些運行狀況檢查實現將是Spring自己管理的bean,並可以自動連接Spring bean並驗證它們。然後配置HealthCheckServlet
以監視應用程序狀態。還檢查metrics-spring項目。它將使Spring和Metrics集成更簡單。
如果您使用的是Java Spring配置你可能有一個衡量標準配置這樣的擴展MetricsConfigurerAdapter
從指標彈簧
@Configuration
@EnableMetrics
public class MetricsConfig extends MetricsConfigurerAdapter { }
然後@Import(value = {MetricsConfig.class})
你的Spring配置。
您還需要並執行ServletContextListener
來連接HealthCheckServlet
和Spring。這HealthCheckContextListener
應添加到您的web.xml
public class HealthCheckContextListener extends
HealthCheckServlet.ContextListener implements ServletContextListener {
private WebApplicationContext context;
public HealthCheckContextListener(WebApplicationContext context) {
this.context = context;
}
public HealthCheckContextListener() {}
@Override
public void contextInitialized(ServletContextEvent event) {
this.context = WebApplicationContextUtils.getRequiredWebApplicationContext(event.getServletContext());
event.getServletContext().setAttribute(HealthCheckServlet.HEALTH_CHECK_REGISTRY,
context.getBean(HealthCheckRegistry.class));
}
@Override
protected HealthCheckRegistry getHealthCheckRegistry() {
return (HealthCheckRegistry) context.getBean(HealthCheckRegistry.class);
}
}
這是非常有趣的,但WebApplicationContextUtils.getRequiredWebApplicationContext只有當春天的ContextLoaderListener是網絡工程.xml,對吧? – GabrielBR
是的,'ContextLoaderListener'應該在'web中定義。xml'或設置爲實現'WebApplicationInitializer'的類中的監聽器如果您在沒有'web.xml的Servlet 3.0環境中運行Spring接口 – dimchez
「..擴展HealthCheck類和實現..」中的鏈接指的是HealthCheckServlet但應該是http://metrics.dropwizard.io/3.2.1/apidocs/com/codahale/metrics/health/HealthCheck.html –