我建议使用健康检查功能从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 –