【问题标题】:File descriptor usage in Spring Boot with Micrometer (and Elastic)Spring Boot 中的文件描述符使用与 Micrometer(和 Elastic)
【发布时间】:2021-08-13 07:04:03
【问题描述】:

在各种网站/博客文章中,宣传说通过使用带有 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 应用程序似乎有泄漏),但我没有找到指标。

我尝试了两件事:

“文件描述符使用”是否有特殊名称?还是我需要添加一个特殊的依赖才能启用它?

谢谢

====== 更新

正如@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 上运行时我应该拥有它。但这些是我在 Elastic / Kibana 中为 process 获得的唯一指标:

【问题讨论】:

  • docker容器中运行的是什么版本的java?
  • java版本为11
  • 哪个发行版?采用OoenJDK?甲骨文?
  • # java --version openjdk 11.0.1 2018-10-16 OpenJDK Runtime Environment 18.9 (build 11.0.1+13) OpenJDK 64-Bit Server VM 18.9 (build 11.0.1+13, mixed模式)
  • 一切似乎都井井有条。此时,我建议使用 WSL 尝试在您的工作站上调试它,或者在 docker 中本地运行它并尝试连接调试器

标签: spring-boot elasticsearch micrometer spring-micrometer elastic-apm


【解决方案1】:

在查看代码时,似乎只有在 unix 操作系统上运行时才会绑定这些仪表。

如果您在 Windows 上对此进行测试,我怀疑您不会看到文件描述符指标。

【讨论】:

  • 感谢您的指点。我已经相应地更新了我的问题
猜你喜欢
  • 1970-01-01
  • 2017-08-20
  • 1970-01-01
  • 2014-04-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多