Я использую prometheus и grafana для мониторинга некоторых серверов. Одна из представленных мною метрик называется recent_tables
, которая содержит количество ресурсов, которые были записаны в таблицы sql за последние 15 минут (машины автоматически отправляют в sql). Его ярлыки table
, job
и status_code
. У меня также есть метрика online_assets
, которая показывает количество активов, находящихся в сети. Его ярлыки - cluster_id
, db_host
и job
.
Я пытаюсь сделать предупреждение, когда ‹90% онлайн-ресурсов в последнее время были записаны в таблицы sql. Прежде чем написать предупреждение, я пытаюсь получить панель в графане, чтобы заполнить данные и, в конечном итоге, передать это выражению в alertmanager. Следующие запросы не работают, и я не понимаю, почему:
recent_tables < online_assets * 0.9
sum(recent_tables) by (table) < online_assets * 0.9
Однако следующий запрос работает:
sum(recent_tables{table="<table>"}) - sum(online_assets)
Я не хочу создавать оповещения для каждой таблицы (это возможно с помощью функции ansible), но я хотел бы понять, есть ли способ получить несколько векторов из одного и того же запроса.
live_assets{cluster_id="east", db_host="pgserver1", job="live_asset_count"} 2000
. Recent_tables имеет ярлыки job, status_code и table. Бывший;recent_tables{table="user_accounts", status_code=200, job="recent_user_accounts"} 1500
- person py_guy_5   schedule 16.09.2019ON()
). И если на одной стороне больше элементов, вы должны указать это с помощьюgroup_left
илиgroup_right
. - person Michael Doubez   schedule 16.09.2019sum(recent_tables) by (table) - ignoring(table) group_left() sum(live_assets) * 0.9 < 0
. Я уверен, что это можно упростить, но пока этого достаточно. Мне не хватало того факта, что показатели с неровными ярлыками нельзя было объединить. Спасибо! - person py_guy_5   schedule 18.09.2019