在各种网站/博客文章中,宣传通过使用带有 Micrometer 的 Spring Boot,我们可以立即获得大量监控指标,包括文件描述符的使用情况。
例如在https://spring.io/blog/2018/03/16/micrometer-spring-boot-2-s-new-application-metrics-collector上:
Spring Boot 2 为您自动配置了很多指标,包括: 数据源利用率,包括:
...
HikariCP 池指标
RabbitMQ 连接工厂
文件描述符使用
Logback:记录每个级别记录到Logback的事件数
...
我看到了大部分指标,但现在我对“文件描述符使用”感兴趣(因为我的 Spring Boot 2.5 应用程序似乎有泄漏),但我没有找到指标。
我尝试了两件事:
- 在本地(在 Windows 上),使用 JMX 连接器,并使用 Jconsole 浏览指标
- 一旦部署(在 Docker 映像中,基于 Ubuntu-java),结合 Elastic APM 代理,如https://www.elastic.co/guide/en/apm/agent/java/current/metrics.html#中所述指标-千分尺-弹簧-引导
“文件描述符使用”是否有特殊名称?还是我需要添加一个特殊的依赖才能启用它?
谢谢
======更新
正如@checketts 正确指出的那样,从源代码看来,该指标仅在 Unix 系统上可用(请参阅https://github.com/micrometer-metrics/micrometer/blob/67c41db552cac463e44cd45545e5a7b8f3513f1b/micrometer-core/src/main /java/io/micrometer/core/instrument/binder/system/FileDescriptorMetrics.java)。我们在那里看到该指标将记录在process.files
因此,我在 Windows 本地没有它可能是正常的。但是当它在 Docker 上运行时我应该拥有它。但这些是我process
在 Elastic / Kibana 中获得的唯一指标: