测量时间指标高于阈值

问题描述 投票:0回答:1

我有一个Minecraft服务器mc_player_online指标。如果玩家在线,则显示1,否则显示0

我可以用图表来显示有多少玩家在线。

Graph showing player count over the course of 2 days

我想计算Minecraft服务器上播放器的播放时间。输出可以制成表格以显示“ Player Steve的播放时间= 2d 3h 45m”。

我如何计算玩家在线的时间?

我还想计算服务器的利用率。因此,如果服务器的运行时间是从12:00到13:00,并且10个玩家在12:00同时登录并玩到12:10,则利用率应为10分钟(而不是10 * 10分钟)。

如何计算指标(mc_player_online)超过阈值(0)多长时间?

prometheus
1个回答
0
投票

[我假设mc_player_online是每个玩家的指标(以玩家的名字作为标签)。

精度低:您显示的图表仅表示玩家在线时的情况。如果您想一次查看球员人数,则表达式为:

sum(mc_player_online)

要计算玩家花在Minicraft上的时间,您只能在表示为最后N <unit of time>(过去7天,1个月...)的滑动窗口上进行操作。以上周播放的时间(以秒为单位(7天为604800秒))为例,它将是:

avg_over_time(mc_player_online[7d]) * 604800

您可以使用Grafana中的表格显示来显示漂亮的图像。如果要永远积累,就必须有recording rule并让Prometheus进行录音。

[利用率的计算类似于用户花费的时间的计算,但当至少一个用户在线时(使用bool修饰符,表达式为1):

sum(mc_player_online) > bool 0

这(过去一个小时内:)>

avg_over_time((sum(mc_player_online) > bool 0)[1h:]) * 86400

注意,此表达式需要支持subqueryversion >= 2.7)的Prometheus版本。如果您的Prometheus年龄较大,则可以使用记录规则。

© www.soinside.com 2019 - 2024. All rights reserved.