首页 > 解决方案 > Prometheus Java 客户端:导出基于字符串的指标

问题描述

我目前正在尝试为 Minecraft 编写一个导出器,以在我们的 Grafana 仪表板中显示一些指标。虽然大多数 Metrics 与 Metric Types Counter 和 Gauge 配合得很好,但我找不到任何关于如何将字符串导出为 Metrics 的文档。我需要那些来导出位置数据,这样我们就可以对我们的玩家来自哪里有一个概览,这样我们就可以将本地化重点放在这些区域上。我无法在官方文档中找到任何相关内容,也无法在 Github 存储库中找到任何可以帮助我的内容。

任何人都可以帮助我吗?

向掠夺者致以亲切的问候

标签: javaprometheusgrafanaprometheus-java

解决方案


指标总是数字的。但是您可以使用标签来导出字符串值,这通常用于导出构建或版本信息。例如

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
...

如果您不想在软件中对区域进行硬编码,则应将玩家的位置导出到数据库中,然后根据原始数据进行统计。


推荐阅读