Ну как вообще так можно было сделать?
Пилил дашборд графаны, в котором помимо привычных данных(CPU usage, memory, workers, queries etc) отображается ещё и данные напрямую из trino.
Прям внутри графаны SQL запрос.
SELECT
date_format(started, '%H:%i:%s') as time,
date_diff('second', started, last_heartbeat) as duration_seconds,
state,
query
FROM system.runtime.queries
WHERE (state = 'RUNNING' AND date_diff('second', started, last_heartbeat) > 10)
OR (state = 'FINISHED' AND date_diff('second', started, last_heartbeat) > 10)
ORDER BY duration_seconds DESC
LIMIT 15
И он строит таблицу с временем, длительности запросов, статусом и квери(обрезано на скрине).
Таким образом можно отслеживать подвисшие запросы или неоптимизированные (например join 1000*1000*1000 от мастеров fatality-гениалити).
Потом это трансформирую графаной и вывожу.
Получил алерт - побежал в графану - увидел детальную инфу.
Как можно допускать такие ошибки?
Что такое 1.83 минуты? Что такое 2.95 минут?
Как это интерпретировать?
Стыдоба, инженер-олень🤦♂️.
#trino #grafana

