Как рассчитать процент по метке для метрик датчика? - PullRequest
0 голосов
/ 26 апреля 2020

Я экспортирую некоторые метрики о запущенных задачах, доступные данные включают текущее количество задач по их статусу и очереди:

# TYPE gauge
tasks{queue="high", status="queued"} 2.0
tasks{queue="high", status="started"} 1.0
tasks{queue="high", status="successful"} 5.0
tasks{queue="high", status="failed"} 1.0

tasks{queue="low", status="queued"} 1.0
tasks{queue="low", status="started"} 2.0
tasks{queue="low", status="successful"} 3.0
tasks{queue="low", status="failed"} 2.0

Эти числа регулярно меняются, когда задачи добавляются или срок их действия истекает из базы данных, например, число задач failed будет go увеличиваться и уменьшаться в зависимости от задач в базе данных на момент сбора данных.

У меня нет способа получить общее количество количество задач, так что это все данные, которые у меня есть, я хочу рассчитать процент задач по их метке status и создать график этого значения, используя Графана .

Как процент должен быть рассчитан?

Что я пробовал до сих пор:

Получить процент всех успешных задач:

( sum(tasks{status="successful"}) / sum(tasks) ) * 100

Получить процент успешных задач по очередь:

( sum(tasks{status="finished"}) by (queue) / sum(tasks) by (queue) ) * 100

Как я могу получить этот процент по времени? Например, при установке диапазона времени в Графана ? Я могу использовать переменную $__range, но как мне сделать расчет?

У меня есть другие данные, где у меня есть count метрики, и я делаю следующее:

sum(increase(tasks_total{status="success"}[$__range])) /
sum(increase(tasks_total{status="started"}[$__range]))

Но это подсчеты, и эти вычисления не применимы к калибровочным метрикам.

...