Prometheus Java 客户端:导出基于字符串的指标
Posted
技术标签:
【中文标题】Prometheus Java 客户端:导出基于字符串的指标【英文标题】:Prometheus Java Client : Export String based Metrics 【发布时间】:2021-04-27 05:03:51 【问题描述】:我目前正在尝试为 Minecraft 编写一个导出器,以在我们的 Grafana 仪表板中显示一些指标。虽然大多数 Metrics 与 Metric Types Counter 和 Gauge 配合得很好,但我找不到任何关于如何将字符串导出为 Metrics 的文档。我需要这些来导出位置数据,这样我们就可以对我们的玩家来自哪里有一个概览,这样我们就可以将本地化重点放在这些区域上。我无法在官方文档中找到任何相关内容,也无法在 Github 存储库中找到任何可以帮助我的内容。
有人可以帮我吗?
致以诚挚的问候 盗贼
【问题讨论】:
【参考方案1】:指标始终是数字。但是您可以使用标签来导出字符串值,这通常用于导出构建或版本信息。例如
version_infoversion="1.23", builtOn="Windows", built_by="myUserName" gitTag="version_1.0" = 1
这样您就可以在 Grafana 中显示当前正在运行的版本。
但是(!!!)Prometheus 并非旨在处理大量标签组合。 Prometheus 为每个唯一的标签值组合创建一个新文件。这意味着如果每个玩家有一个指标,那么您将为每个玩家创建一个文件。 (而且你还需要计算每个 Region 的玩家数量)
您可以做的是在您的软件中定义区域并为每个区域导出一个计量器,表示从该区域登录的玩家数量:
player_countregion="Europe" 234
player_countregion="North America" 567
...
如果您不想在软件中对区域进行硬编码,则应将玩家的位置导出到数据库中,然后根据原始数据进行统计。
【讨论】:
以上是关于Prometheus Java 客户端:导出基于字符串的指标的主要内容,如果未能解决你的问题,请参考以下文章
用于 json 值的 Prometheus python 导出器
将自定义标签注入 Java 客户端的默认 jmx Prometheus 指标
使用 sbt-native-packager 通过 JavaServerAppPackaging 检测 prometheus 导出器