programing

Grafana에 대해 SQL 쿼리로 선택한 시간 간격을 기반으로 동적으로 가동 시간 계산

lastcode 2023. 8. 20. 11:12
반응형

Grafana에 대해 SQL 쿼리로 선택한 시간 간격을 기반으로 동적으로 가동 시간 계산

시간(15분 간격) 대비 SQL(mariaDB)에 저장된 데이터가 있습니다.이제 이 데이터는 엔티티의 성능을 결정합니다. 즉, 이 데이터는 초당 15분 간격 내에서 0부터 900까지의 모든 값을 취할 수 있는 문제가 있습니다.이제 모든 시간 간격 기간에 대해 그룹화하고 영향을 받은 총 초를 쉽게 플롯할 수 있습니다.

Parameter_health Database에 두 개의 테이블이 포함되어 있습니다.

  1. parameter_detail 테이블에는 매개 변수에 대한 고정 데이터 정보가 포함되어 있습니다.
  2. parameter_uasvalue 테이블에는 해당 매개 변수에 대한 시간에 대해 15분 간격으로 사용할 수 없는 초(UAS)가 포함되어 있습니다.

주어진 간격 동안 총 UAS에 대해 각 값으로 막대 그래프를 그리기 위해 Grafana에서 사용되는 쿼리는 완벽하게 작동합니다 ---

SELECT 
   parameter_detail.system, 
   parameter_detail.parameter_label, 
   sum(parameter_uasvalue.uas) as 'Total UAS'
FROM parameter_health.parameter_uasvalue 
left join parameter_health.parameter_detail on 
     parameter_detail.id=parameter_uasvalue.id
WHERE $__timeFilter(parameter_uasvalue.time) 
  and parameter_uasvalue.uas != '-1' and parameter_uasvalue.uas !=' 0' 
GROUP BY parameter_detail.system, parameter_detail.parameter_label

이제 이 값(총 UAS)을 사용하여 $_time인 매개 변수의 가동 시간을 계산하는 방법은 무엇입니까?필터(그라파나에서 선택) - 'Total UAS'를 $_time으로 나눈 값필터 * 100

하지만 변동 $_time을 기반으로 동적으로 작동하도록 이 쿼리를 어떻게 수정할 수 있는지 잘 모르겠습니다.해당 파라미터의 가동 시간 %를 필터링 및 계산하여 시간 범위가 0 ~ 4시간(아래 데이터의 경우)인 경우와 같이 막대 그래프에 플롯되도록 합니다. 그러면 총 초수는 14400초(각각 15분의 16개 간격)이고 현재 총 UAS는 3230입니다.따라서 가동 시간은 ((14400 - 3230)/14400)*100입니다.

문제는 __timeFilter 변수를 사용하여 동적으로 계산하는 방법입니다.

이드 시간을 uas
모수-고유값1 15/11/2021 0:00 0
모수-고유값1 15/11/2021 0:15 100
모수-고유값1 15/11/2021 0:30 900
모수-고유값1 15/11/2021 0:45 30
모수-고유값1 15/11/2021 1:00 0
모수-고유값1 15/11/2021 1:15 0
모수-고유값1 15/11/2021 1:30 400
모수-고유값1 15/11/2021 1:45 900
모수-고유값1 15/11/2021 2:00 0
모수-고유값1 15/11/2021 2:15 0
모수-고유값1 15/11/2021 2:30 0
모수-고유값1 15/11/2021 2:45 400
모수-고유값1 15/11/2021 3:00 500
모수-고유값1 15/11/2021 3:15 0
모수-고유값1 15/11/2021 3:30 0
모수-고유값1 15/11/2021 3:45 0
모수-고유값1 15/11/2021 4:00 0

언급URL : https://stackoverflow.com/questions/70121913/calculate-uptime-dynamically-based-on-time-interval-chosen-with-sql-query-for-gr

반응형