2016-12-13 1 views
1

내 응용 프로그램에는 모든 국가에 대한 웹 소켓 핑 시간, 국가 당 하나의 막대 그래프에 대한 히스토그램 설정이 있습니다. Grafana에서 나는이 완벽하게 잘 작동 다음 쿼리Prometheus 히스토그램 및 NaN 값이 포함 된 평균 집합

rate(country_ping_sum{country=~"AU|NZ|CA|GB|US",instance="$instance"}[15m])/rate(country_ping_count{country=~"AU|NZ|CA|GB|US",instance="$instance"}[15m]) 

를 통해 가장 관심있어 여러 나라의 평균 핑 시간의 그래프를 가지고있다. 나는 각 국가에 대한 그래프를 얻는다. 이제는 같은 그래프에 다른 모든 국가의 평균을 합하여 하나의 그래프로 추가하고 싶습니다.

avg(rate(country_ping_sum{country!~"AU|NZ|CA|GB|US",instance="$instance"}[15m])/rate(country_ping_count{country!~"AU|NZ|CA|GB|US",instance="$instance"}[15m])) 

이것은 실패합니다. Prometheus 콘솔의 Prometheus 쿼리에서 쿼리를 실행하면 NaN 값을 얻게됩니다. 같은 쿼리를 사용하여 avg() 함수를 제거하면 모든 일치하는 국가 목록을 얻고 일부는 값을 가지며 일부는 NaN을가집니다. 많은 국가들이 합계와 계수 모두 0의 비율을 가지고 있습니다. 분명히 0으로 나누는 부분은 해당 국가의 NaN에 해당합니다.

내 질문에 어떻게 avg() 전달하기 전에 NaN 값을 필터링 할 수 있습니까?

답변

4

평균적인 평균을 취하는 경우가 일반적으로 올바르지 않습니다.

ratesum을 수행 한 다음 나누어 전반적인 평균값을 얻으십시오.

+0

그랬습니다! 브라이언 빠른 응답 주셔서 감사합니다! – Brent