Найти разницу между текущим временем и последним сбоем в grafana?

#sql #postgresql #grafana

#sql #postgresql #grafana

Вопрос:

У меня создана панель мониторинга, где я могу получить время последнего сбоя с помощью таких условий, как (total_failed<>0), но это дает мне вывод как время, например, 10:20, но мне нужно, чтобы вывод был сгенерирован в виде «последний сбой 30 минут назад» путем вычисления (текущего времени- время сбоя) так что. Я могу показать это на панели мониторинга. Запрос задан —

     SELECT
  end_time AS "time",
  
  (total_failed::integer)
FROM job
where
  total_failed<>'0'
GROUP BY end_time,total_failed
 

Дайте мне знать, если кто-нибудь может помочь мне написать этот sql или представление этой панели мониторинга.

Комментарии:

1. Ваш код, безусловно, похож на Postgres, и если это так, то, пожалуйста, удалите другие несовместимые теги базы данных.

2. Конечно, сделано, но можете ли вы помочь мне найти решение

Ответ №1:

Возможно, эта комбинация age extract и CTE — это то, что вам нужно:

 WITH data AS (
    SELECT age(clock_timestamp(), end_time) AS ago,
           total_failed::integer AS fail_count
    FROM job
    WHERE ...
)
SELECT extract(minutes FROM ago)
            60 * extract(hours FROM ago) AS minutes_passed,
       fail_count
FROM data;