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