Время измерения metri c выше порога - PullRequest
0 голосов
/ 02 февраля 2020

У меня есть метри c для моего сервера Minecraft, mc_player_online. Он показывает 1, если игрок онлайн, или 0 в противном случае.

Я могу построить график, чтобы показать, сколько игроков было в сети.

Graph showing player count over the course of 2 days

Я хочу рассчитать время игры игрока на сервере Minecraft. Выходные данные могут быть сведены в таблицу, чтобы показать "Игровое время игрока Стива = 2d 3 ч 45 м".

Как рассчитать, сколько времени игрок в сети?

Я также хотел бы рассчитать коэффициент использования. сервера. Таким образом, если сервер работает с 12:00 до 13:00, и 10 игроков одновременно входят в систему в 12:00 и играют до 12:10, тогда загрузка должна составлять 10 минут (не 10 * 10 минут).

Как рассчитать, как долго метри c (mc_player_online) превышает пороговое значение (0)?

1 Ответ

1 голос
/ 03 февраля 2020

Полагаю, mc_player_online - это показатель c на игрока (с именем игрока в качестве метки).

Небольшая точность: показанный вами график показывает только то, что игрок онлайн. Если вы хотите видеть количество игроков одновременно, выражение будет иметь вид:

sum(mc_player_online)

Чтобы рассчитать время, которое игрок тратит на Minicraft, вы можете сделать это только на скользящем окне, выраженном как последний N <unit of time> (последние 7 дней, 1 месяц ...). Если взять в качестве примера время, прошедшее за последнюю неделю в секундах (7 дней - 604800 с), оно будет равно:

avg_over_time(mc_player_online[7d]) * 604800

Вы можете иметь хороший дисплей, используя отображение таблицы в Grafana. Если вы хотите накапливать вечность, вам нужно иметь правило записи и позволить Прометею делать запись.

Расчет использования аналогичен вычислению времени, потраченного пользователем, но с выражением, равным 1, когда хотя бы один пользователь подключен к сети (с использованием модификатора bool):

sum(mc_player_online) > bool 0

Это становится (за последний час):

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

Обратите внимание, что для этого выражения требуется версия Prometheus, поддерживающая подзапрос (version >= 2.7). Если ваш Прометей старше, вы можете обойтись правилами записи.

...