prometheus 如何将 com.alibaba.druid 监控集成进来


要将 `com.alibaba.druid` 的监控数据集成到 Prometheus 中,可以通过以下步骤实现: 1. 暴露 Druid 监控指标 Druid 内置了监控统计功能,需在配置中启用并暴露 JMX 或 HTTP 端点: ```java // Spring Boot 配置示例 @Configuration public class DruidConfig { @Bean public ServletRegistrationBean<StatViewServlet> druidStatViewServlet() { ServletRegistrationBean<StatViewServlet> bean = new ServletRegistrationBean<>(new StatViewServlet(), "/druid/*"); // 允许访问的IP(可选) bean.addInitParameter("allow", "127.0.0.1"); return bean; } @Bean public FilterRegistrationBean<WebStatFilter> druidWebStatFilter() { FilterRegistrationBean<WebStatFilter> bean = new FilterRegistrationBean<>(new WebStatFilter()); bean.addUrlPatterns("/*"); bean.addInitParameter("exclusions", "*.js,*.css,/druid/*"); return bean; } } ``` 2. 通过 JMX 或 HTTP 采集指标 方案一:JMX Exporter 1. 下载 [JMX Exporter](https://github.com/prometheus/jmx_exporter): ```bash wget https://repo1.maven.org/maven2/io/prometheus/jmx/jmx_prometheus_javaagent/0.17.0/jmx_prometheus_javaagent-0.17.0.jar ``` 2. 创建配置文件 `druid_jmx_config.yml`: ```yaml lowercaseOutputName: true rules: - pattern: 'com.alibaba.druid<.*>(.*)' ``` 3. 启动应用时加载 Java Agent: ```bash java -javaagent:./jmx_prometheus_javaagent-0.17.0.jar=9090:./druid_jmx_config.yml -jar your-app.jar ``` 方案二:自定义 HTTP 端点 若 Druid 的 HTTP 监控页面(如 `/druid/index.html`)已启用,可通过 Prometheus 的 [Blackbox Exporter](https://github.com/prometheus/blackbox_exporter) 或自定义 Exporter 抓取数据。 3. Prometheus 配置 在 `prometheus.yml` 中添加抓取目标: ```yaml scrape_configs: - job_name: 'druid' static_configs: - targets: ['your-app-host:9090'] # JMX Exporter 暴露的端口 ``` 4. 验证数据 访问 Prometheus 的 `http://localhost:9090/targets` 确认状态为 UP,然后在 Graph 页面查询 `druid_` 开头的指标。 --- 注意事项: 1. JMX 性能开销:高频采集可能影响应用性能,建议调整抓取间隔(如 `scrape_interval: 30s`)。 2. 指标命名冲突:Druid 的 JMX 指标可能与其他组件冲突,需在 `druid_jmx_config.yml` 中规范命名。 3. 安全限制:确保 `/druid/*` 端点仅限内网访问,避免敏感信息泄露。 [2025-07-18 16:34:52 | AI写代码神器 | 744点数解答]
- prometheus 如何将 com.alibaba.druid 监控集成进来(488点数解答 | 2024-03-11 16:58:16)522
- prometheus 如何将 com.alibaba.druid 监控集成进来 (744点数解答 | 2025-07-18 16:34:52)87
- 如何以注册的方式,把 com.alibaba.druid 监控集成到 prometheus 中(484点数解答 | 2024-03-11 16:48:10)234
- mysql 报错:failed to obtain jdbc connection; nested exceptionis com.alibaba.druid.pool.getconnectiontimeoutexception:(348点数解答 | 2024-01-12 14:42:02)548
- cause: org.springframework.jdbc.cannotgetjdbcconnectionexception: failed to obtain jdbc connection; nested exception is com.alibaba.druid.pool.getconnectiontimeoutexception: wait millis 6045, active 25, maxactive 700, creating 1, createelapsemillis 29424,(406点数解答 | 2024-03-06 11:24:40)261
- cause: org.springframework.jdbc.cannotgetjdbcconnectionexception: failed to obtain jdbc connection; nested exception is com.alibaba.druid.pool.getconnectiontimeoutexception: wait millis 6045, active 25, maxactive 700, creating 1, createelapsemillis 29424,(365点数解答 | 2024-03-06 11:26:40)270
- cause: org.springframework.jdbc.cannotgetjdbcconnectionexception: failed to obtain jdbc connection; nested exception is com.alibaba.druid.pool.getconnectiontimeoutexception: wait millis 6045, active 25, maxactive 700, creating 1, createelapsemillis 29 中文回答(279点数解答 | 2024-03-06 11:26:54)266
- slave: # 从数据源开关/默认关闭 enabled: true type: com.alibaba.druid.pool.druiddatasource driver-class-name: com.microsoft.sqlserver.jdbc.sqlserverdriver url: jdbc:sqlserver://192.168.1.200:1433;database=waterdangerdb;selectmethod=cursor;encrypt=false;trustservercertificate=true username: sa password: jakj1! 我是这样写的 目标服务器是sql server 2008 这个改不了 我在本地使用连接是没问题的 但是用mavan打成jar包放到服务器上 就连接不上了(222点数解答 | 2024-09-05 10:16:03)200
- 作为**工程师,请试着比较一下黑盒**、白盒**、单元**、集成**、系统**、验收**的区别与联系?(424点数解答 | 2023-11-09 18:24:11)211
- 作为**工程师,集成**通常都有哪些策略?(306点数解答 | 2023-11-09 18:24:19)188
- 作为**工程师,monkey 如何将**报告记录在本地 ?(351点数解答 | 2023-11-09 18:28:23)232
- springboot ffmpeg maven 集成 mp4转rtsp 异步(2230点数解答 | 2024-05-08 14:53:55)232