Telegraf를 사용한 Grafana의 요청 시간 히스토그램

이것은 백엔드 호출 시간을 분석하는 데 유용한 멋진 도구에 대한 글입니다. 에 설명된 백엔드 호출 및 모니터링 설정을 수행하는 코드입니다.

Grafana 패널은 선 그래프를 그릴 수 있을 뿐만 아니라 다음도 수행할 수 있습니다.
  • 메트릭의 마지막 판독값 표시
  • 메트릭 값 표 표시
  • 막대 그래프 표시
  • 히트맵 표시(시간 경과에 따른 히스토그램)

  • 히트맵은 백엔드 응답 시간의 분포를 빠르게 이해하는 데 유용합니다. 대부분의 요청이 50msec 미만에 완료되는 경우가 있을 수 있지만 일부 요청은 느리고 >500msec에 완료됩니다. 평균 요청 시간에는 이 정보가 표시되지 않습니다. 이전 예에서는 평균만 플로팅했습니다.

    요청 실행 시간을 위한 히트매트를 쉽게 추가할 수 있습니다.



    새 패널을 추가하고 측정 세부 정보를 선택하고 오른쪽 열에서 접을 수 있는 "시각화"에서 "히트맵"을 선택해야 합니다.
    10초마다 새로운 브릭 세트가 패널에 나타납니다. 브릭 색상은 해당 버킷에 속하는 측정값의 양을 나타냅니다(예: 10msec - 20msec 범위에 5가 속하므로 브릭은 분홍색임). 고정된 버킷 크기를 설정하거나 버킷 수를 수정하거나 기본값이 마법처럼 작동하도록 합니다.

    Telegraf가 모든 메트릭 데이터를 InfluxDB로 보내는 경우 실제 히트맵입니다. Telegraf는 메트릭 보고 트래픽을 줄이기 위해 짧은 시간(10초) 동안 계산된 집계 값(최소, 평균, 최대)만 데이터베이스로 보내도록 구성되는 경우가 많습니다. 이렇게 집계된 값을 기반으로 하는 히트맵은 실제 히트맵이 아닙니다.

    Telegraf 구성(histogram aggregate)에서 구성full Telegraf config with histogram aggregator이 가능합니다.

    [[aggregators.histogram]]
      period = "30s"
      drop_original = false
      reset = true
      cumulative = false
    
      [[aggregators.histogram.config]]
        buckets = [1.0, 10.0, 12.0, 14.0, 16.0, 18.0, 20.0, 30.0, 40.0]
        measurement_name = "aiohttp-request-exec-time"
        fields = ["value"]
    


    버킷 값이 30초마다 새로 계산되도록 reset=truecumulative=false를 설정했습니다. 값 범위(buckets)를 수동으로 설정하고 올바른 값measurement_name을 지정해야 합니다. fields를 지정하지 않으면 모든 측정 필드에 대해 히스토그램 버킷이 계산됩니다. 버킷 값이 InfluxDB에 표시되는 방식은 다음과 같습니다.


    버킷에 해당하는 요청 실행 시간의 양은 "value_bucket"필드 이름으로 저장되며, "gt"("초과") 및 "le"("작거나 같음")은 태그로 표시되는 버킷 에지 값입니다. .

    "막대 게이지"패널 시각화 유형을 사용하여 이러한 값을 플롯해 보겠습니다.



    2개의 별도 패널을 만들어 보겠습니다. 하나는 python.org 통계용이고 다른 하나는 mozilla.org용입니다(쿼리 편집에서 'where domain = python.org' 추가).

    이제 python.org와 mozilla.org의 마지막 30초 요청 실행 시간 분포를 한 눈에 비교할 수 있습니다.

    좋은 웹페이지 즐겨찾기