我将 Prometheus 监控添加到我的服务中。
java -server -Xms512m -Xmx512m -XX:SurvivorRatio=8 -javaagent:${base_dir}/jmx_exporter/jmx_prometheus_javaagent-0.11.0.jar=7030:${base_dir}/jmx_exporter/exporter_config.yml -jar ${base_dir}/my-service.jar --spring.profiles.active=test
exporter_config.yml
--- username: password:
rules: - pattern: ".*"
服务运行一段时间后开始报错。
Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is com.alibaba.druid.pool.GetConnectionTimeoutException: wait millis 2000, active 20, maxActive 20
关闭监控并恢复正常。
在添加监控之前,我确认我的服务是正常的。
你能帮我一个忙吗?
最佳答案
由于某种原因,连接池似乎已耗尽。您可以通过配置 DruidStatInterceptor
来监控 Druid 连接池(您的堆栈跟踪表明您正在使用阿里巴巴 Druid 连接池),如所述 here 。值得检查是否发生任何连接泄漏。
关于java - prometheus占用JDBC连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54345006/