2017-10-19 11 views
0

python-prometheus lib를 사용하여 API 상태를 계측하려고합니다. 나는 documentation의 지시에 따라 API 응답 시간에 대한 프로 메테우스의 히스토그램을 사용하고 내가 미리 설정된의 히스토그램을 기대하고있는 code의 버킷 팅 논리를 통해 갔다 측정prometheus_python 계측 - 히스토그램의 버켓 화

예상되는 동작

의 HTTP 수출을하고 있었다 응답 시간의 양동이. 1, 3, 5 또는 1보다 작거나 같은 1, 3, 5, 10 Inf (10s보다 큰) 버킷을 정의했습니다.

요청이 2 초일 경우, 3s 버킷의 빈도는 1이고 다른 버킷은 0입니다.

def observe(self, amount): 
     '''Observe the given amount.''' 
     self._sum.inc(amount) 
     for i, bound in enumerate(self._upper_bounds): 
      if amount <= bound: 
       self._buckets[i].inc(1) 
       break 

를 버킷에

코드 조각 나는 휴식이 버킷 팅이 예를 들어 한 번만 발생 보장합니다 생각합니다.

응답 시간 :

이전

enter image description here

우리가 후반을 뺄 수 있다면 3.1s했다 샘플 요청에 대한

enter image description here

후 전후의 총액,

5s, 10s 및 inf 버킷도 업데이트되고 있습니다. 버킷> = 3.1s가 업데이트되는 위치와 방법을 찾으려고합니다.

기타 세부 사항 :

파이썬 - 프로 메테우스는 멀티 프로세스 모드에서 사용되는

버전 정보 :

  1. 파이썬 - 2.7
  2. prometheus_client [파이썬] - 0.0.21

답변

0

le은보다 작거나 같음을 나타냅니다. 기대 한 행동이다. histogram_quantile 함수가이 함수를 자동으로 처리하므로이 구현 세부 사항에 대해 걱정할 필요가 없습니다.

이렇게하면 히스토그램에 너무 많은 양의 버킷이있는 경우이를 처리 측에 안전하게 놓을 수 있습니다.

+0

@ brian-brazil에 감사드립니다. 코드를 자세히 살펴보면 각 항목이 한 번만 버킷으로 표시되는 것처럼 보입니다. 코드 스 니펫으로 질문을 업데이트하겠습니다. –

+0

동작이 "le"이므로 예상대로 작동하는 것으로 알고 있습니다. 나는 그 코드가 어떤 코드인지에 관해서 궁금하다. 내가 강조하고있는 것은 버킷 하나만 채우는 것입니다. –

+0

박람회 코드를보십시오. –