Java 如何使用jetty和spring boot收集和获取连接池统计信息?
我正在用嵌入式Jetty服务器开发简单的Spring Boot web应用程序 我想了解一些关于连接池使用情况的统计信息(例如,线程数、平均请求时间、平均队列等待时间、队列大小等)Java 如何使用jetty和spring boot收集和获取连接池统计信息?,java,spring-boot,jetty,connection-pooling,embedded-jetty,Java,Spring Boot,Jetty,Connection Pooling,Embedded Jetty,我正在用嵌入式Jetty服务器开发简单的Spring Boot web应用程序 我想了解一些关于连接池使用情况的统计信息(例如,线程数、平均请求时间、平均队列等待时间、队列大小等) 我意识到Spring Boot使用QueuedThreadPool配置Jetty,它几乎没有基本指标。是否有更复杂的bean或模块指定用于在Spring Boot中收集统计数据?如何启用它?您看过弹簧启动执行器吗? 它为您提供了一些生产准备功能,如健康端点和度量端点。 只要看一下文档就知道有一个收集统计数据的Moni
我意识到Spring Boot使用
QueuedThreadPool
配置Jetty,它几乎没有基本指标。是否有更复杂的bean或模块指定用于在Spring Boot中收集统计数据?如何启用它?您看过弹簧启动执行器吗?
它为您提供了一些生产准备功能,如健康端点和度量端点。
只要看一下文档就知道有一个收集统计数据的MonitoredQueuedThreadPool实现。下面的代码启用它并通过JMX公开:
@Bean
public JettyEmbeddedServletContainerFactory jettyEmbeddedServletContainerFactory(@Value("${server.port:8080}") final String port) {
JettyEmbeddedServletContainerFactory factory = new JettyEmbeddedServletContainerFactory(Integer.valueOf(port));
//enable thread pool with stats
factory.setThreadPool(new MonitoredQueuedThreadPool());
//enable JMX
factory.addServerCustomizers(server -> {
MBeanContainer mbContainer=new MBeanContainer(ManagementFactory.getPlatformMBeanServer());
server.addEventListener(mbContainer);
server.addBean(mbContainer);
server.addBean(Log.getLog());
});
return factory;
}
JMX bean在节点下公开:
它提供了以下指标:
默认的
QueuedThreadPool
也具有相同的JMX属性/统计信息。