perfmetrics

소프트웨어 스크린 샷:
perfmetrics
소프트웨어 정보:
버전: 0.9.5
업로드 날짜: 20 Feb 15
개발자: Shane Hathaway
라이센스: 무료
인기: 4

Rating: nan/5 (Total Votes: 0)

.

perfmetrics 파이썬 라이브러리와 애플리케이션 & NBSP에 소프트웨어 성능 메트릭을 추가 할 수있는 간단한 방법을 제공, 사용 perfmetrics 프로덕션 응용 프로그램의 진정한 병목 현상을 찾을 수 있습니다.
perfmetrics 패키지는 다시 흑연의 클라이언트 (특히, 탄소 데몬)입니다 엣시에 의해 Statsd 데몬의 클라이언트입니다. perfmetrics 패키지 Statsd에 UDP 패킷을 전송하기 때문에, perfmetrics 응용 프로그램과 약간의 CPU 오버 헤드로 더 I / O 지연을 추가하지 않습니다. 그것은 스레드 (동기) 또는 이벤트 기반 (비동기) 소프트웨어에 동일하게 작업 할 수 있습니다.
용법
Statsd에 통계를 타이밍을 보내고 호출되어야하는 기능과 방법을 포장 @metric과 @metricmethod의 장식을 사용합니다. 라이브러리 기능을 포함, 병목 수있는 함수 또는 메소드에 데코레이터를 추가합니다.
샘플 :
perfmetrics에서 메트릭 가져
perfmetrics 수입 metricmethod에서
@metric
데프하여 myFunction () :
& NBSP; "" "비용이 많이들 수 있습니다 뭔가를 수행합니다" ""
클래스 MyClass의 (객체) :
& NBSP; @metricmethod
& NBSP; 데프 MyMethod라는 (자기) :
& NBSP; "" "다른 가능성 고가의 일을 할" ""
다음 방법 Statsd에 연결하는 perfmetrics을 말한다. (당신이 할 때까지, 데코레이터 영향을주지 않습니다.) 이상적으로, 시동시 구성 파일에서 Statsd URI를 읽어야 응용 프로그램,하지만 아래의 예는 하드 코딩 된 URI는 단순화를 위해 사용
perfmetrics 수입 set_statsd_client에서
set_statsd_client ( 'statsd : // localhost를 : 8125')
xrange (1000)에서 난 용 :
& NBSP;하여 myFunction ()
합니다. & nbsp; MyClass의 () MyMethod라는 ()
당신이 그 코드를 실행하면, 그러나 포트 8125. 2000 UDP 패킷을 발생합니다 당신은 이미 흑연과 Statsd를 설치하지 않는 한, 그 모든 패킷은 무시하고 삭제됩니다. 떨어 뜨리면 좋은 일이 : 프로덕션 응용 프로그램이 실패하거나 성능 모니터링 시스템이 정지되거나 작동하지 않습니다해서 느리게하고 싶지 않아요.
설치 흑연과 Statsd 수신 및 통계를 그래프로합니다. 를 설치하는 한 가지 좋은 방법은 루트 액세스하지 않고 사용자 지정 위치에 흑연과 Statsd를 설치 GitHub의에서 graphite_buildout 예입니다.
스레딩
대부분의 프로그램은 하나의 글로벌 Statsd 서버에 모든 스레드에서 메트릭을 보낼 수 있지만, 일부 프로그램은 각 스레드에 대해 다른 Statsd 서버를 사용하도록해야합니다. 당신은 단지 글로벌 Statsd 서버가 필요한 경우, 응용 프로그램 시작시 set_statsd_client 함수를 사용합니다. 각 스레드에 대해 다른 Statsd 서버를 사용해야하는 경우, 각 스레드에 statsd_client_stack 객체를 사용합니다. 푸시, 팝, 명확한 방법을 사용합니다.
흑연 팁
흑연 저장 다중 해상도 시계열 각 메트릭. 48시간 31 일 1 시간 해상도, 5 년간 일일 해결을위한 샘플 graphite_buildout 저장 십초 해상도. 세밀한 값에서 조잡한 값을 생성하기 위해, 흑연 각 시간 범위에 대한 평균값 (평균)을 계산한다.
흑연은 암시 적으로 평균 값을 계산하기 때문에, 흑연에서 카운터를 치료하는 가장 합리적인 방법은 값 "초당 히트"로한다. 그런 식으로, 그래프는 상관없이 사용하는 해상도 수준의 정확한 결과를 얻을 수 있습니다.
두 번째는 불행한 결과를 초래 당 안타 그러나, 카운터를 치료. 어떤 메트릭이 1 초에 1000 히트 스파이크를 보는 경우에, 적어도 구초 0으로 떨어지는 흑연 메트릭 10 초마다 수신하고, 스파이크가 보인다 때문에, 그 메트릭 흑연 차트는, (100)의 스파이크가 아니라 1000을 보여줄 것이다 10 초 동안 초당 100 안타와 같은 흑연.
당신이 당신의 그래프 1000 안타보다는 초당 100 안타를 표시 할 경우, 10 초 이상의 해상도를 사용하여 흑연 hitcount () 함수를 적용합니다. hitcount 기능은 원시 히트 수를 대략적인 초당 값을 변환합니다. 그렇지 않으면 흑연이 히트 카운트의 평균을 계산하고 혼란 그래프를 만들어, 결과 그래프에서 적어도 하나의 픽셀 너비로 표현 될 정도로 큰 해상도 값을 제공해야합니다.
그것은 일반적으로 그 기본은 아니지만 0으로 흑연에 null 값을 치료하는 데 의미가 있습니다; 기본적으로, 흑연가 null 값에 대한 것도 그립니다 없습니다. 각 그래프의 해당 옵션을 설정할 수 있습니다.
참조 문서
장식
@metric
& NBSP; 알립니다 Statsd이 함수가 호출 될 때마다 UDP를 사용하여. 전화 수와 타이밍 정보를 모두 전송합니다. Statsd로 전송 메트릭의 이름은 <모듈>. <함수 이름>.
@metricmethod
& NBSP;처럼의 @metric하지만 Statsd 메트릭의 이름은 <클래스 모듈>는 <클래스 이름> <메소드 이름>...
미터 (STAT = 없음, 속도 = 1, 방법 = 거짓, 계산 = 사실, 타이밍 = 참)
& NBSP; 옵션을 장식 또는 컨텍스트 매니저.
& NBSP; 통계는 보낼 메트릭의 이름입니다; 함수 나 메소드의 이름을 사용할 수 없음으로 설정합니다. 요금은 무작위로 선택하여 Statsd에 전송 된 패킷의 수를 줄일 수; 예를 들어, 패킷의 10 분을 보낼 0.1로 설정. 방법 매개 변수가 참이면, 이름은 기본적 메트릭 방법의 클래스 이름보다는 모듈 이름에 기초한다. False로 카운트를 설정하면 Statsd로 전송 카운터 통계를 사용하지 않습니다. False로 타이밍을 설정하면 Statsd로 전송 타이밍 통계를 사용하지 않습니다.
& NBSP; 장식으로 샘플 사용 :
& NBSP; @Metric ( 'frequent_func', 속도 = 0.1, 타이밍 = 거짓)
& NBSP; DEF frequent_func () :
& NBSP는; "" "" "자주 빨리 뭔가를 수행하고"
& NBSP; 컨텍스트 매니저로 샘플 사용 :
& NBSP는; DEF) (do_something :
& NBSP; 메트릭 ( 'doing_something') :
& NBSP; 패스
& NBSP; perfmetrics 너무 자주 패킷을 전송하는 경우, UDP 패킷이 손실 될 수 있고 응용 프로그램 성능이 영향을받을 수있다. 사용자는 패킷의 개수와 옵션 대신 metricmethod 메트릭 또는 메트릭과 장식을 사용하여 CPU 오버 헤드를 줄일 수있다. 장식의 예는 위의 샘플 속도 및 정적 메트릭 이름을 사용합니다. 또한 타이밍 정보의 수집을 비활성화합니다.
& NBSP; 컨텍스트 매니저로 미터를 사용하는 경우, 당신은 통계 매개 변수를 제공해야 또는 아무것도 기록되지 않습니다.
함수
statsd_client ()
& NBSP; 현재 구성된 StatsdClient를 돌려줍니다. 하나, 또는 없음이있는 경우 글로벌 클라이언트가 하나 인 경우, 또는 스레드 로컬 클라이언트를 돌려줍니다.
set_statsd_client (client_or_uri)
& NBSP; 글로벌 StatsdClient를 설정합니다. // URI, 또는 없음 : client_or_uri는 StatsdClient, statsd 될 수 있습니다.
statsd_client_from_uri (URI)
& NBSP는, URI에서 StatsdClient을 만듭니다. 일반적인 URI는 statsd됩니다 : // localhost를 : 8125. 지원 옵션 쿼리 매개 변수는 접두사와 gauge_suffix 있습니다. 기본 접두사는 비어 있고 기본 gauge_suffix은 gauge_suffix에 대한 자세한 내용은 StatsdClient 설명서를 참조하십시오 ..입니다.
StatsdClient 방법
파이썬 코드는 먼저 statsd_client () 메소드를 사용하여 현재 StatsdClient을 받고하여 사용자 지정 메트릭을 보낼 수 있습니다. 어떤 클라이언트가 구성되어 있지 않은 경우 None을 반환한다) (즉 statsd_client을합니다.
아래의 방법 중 대부분은 옵션 속도와 버피 매개 변수가 있습니다. 1보다 작은 값으로 설정 될 때 레이트 파라미터는, 패킷의 임의의 샘플이 아닌 모든 패킷을 보낼 StatsdClient시킨다. 버피 파라미터가리스트 인 경우는 StatsdClient BUF리스트 패킷 내용을 추가하기보다는 가능한 단일 패킷에서 여러 업데이트를 보낼 수있어, 패킷을 전송. UDP 패킷의 크기가 제한된다 (한도는 네트워크에 따라 차이가 있지만 1000 바이트 일반적으로 좋은 생각입니다) 및 추가 바이트가 자동으로 무시됩니다 있음을 알아 두셔야합니다.
타이밍 (없음 =하지 버피 합계, 값, 속도 = 1)
& NBSP; 기록 타이밍 정보를 제공합니다. 합계는 기록 할 수있는 메트릭의 이름이고 값은 밀리 초 단위로 타이밍 측정입니다. 그래서 타이밍 메트릭 카운터 또는 게이지보다 더 많은 디스크 공간을 취할 수 Statsd 각 타이밍 메트릭에 대한 몇 가지 데이터 포인트를 유지합니다.
게이지 (없음 =하지 버피 합계, 값, 접미사 = 없음, 속도 = 1)
& NBSP; 게이지 값을 업데이트합니다. STAT는 기록 메트릭의 이름과 값은 새로운 게이지 값이다. 게이지는 풀 크기와 같은 영구 값을 나타냅니다. 다른 종종 기계 충돌에서 게이지, 접미사는 일반적으로 이름을 측정하기 위해 적용되기 때문이다. 접미사 매개 변수 (빈 문자열 포함) 문자열 인 경우에는 기본 게이지 접미사를 무시합니다.
증분 (없음 =하지 버피 통계, 계산 = 1, 속도 = 1)
& NBSP; 카운트하여 카운터를 증가. Statsd 모든 카운터 값은 일반적으로 10 초마다 발생하는 흑연하기 위해 통계를 보내는 모든 시간을 클리어합니다. 당신이 지속적 값을해야하는 경우는 카운터 대신 게이지를 사용하는 것이 더 적절할 수있다.
DECR (없음 =하지 버피 합계, 1 = 계산 속도 = 1)
& NBSP; 카운트로 감소 카운터.
sendbuf는 (BUF)
& NBSP는; Statsd에 버피 목록의 내용을 보내기

이 릴리스의 새로운 기능 :

는 선택 피라미드 트윈과 Statsd 클라이언트를 설정하는 유사한 WSGI 필터 응용 프로그램을 추가했습니다. 각 요청에 대해.

이 버전 0.9.4의 새로운 기능 :

이 감소 샘플 레이트의 사용을 최적화.

이 버전 0.9.2의 새로운 기능 :

이 메트릭은 이제 장식 또는 컨텍스트 매니저 중 하나를 사용할 수있다.
더 제임스 SOCOL의 StatsClient처럼 StatsdClient의 서명을했다.

이 요구 사항 :

이 파이썬

유사한 소프트웨어

개발자의 기타 소프트웨어 Shane Hathaway

slowlog
slowlog

20 Feb 15

oauth2sample
oauth2sample

14 Apr 15

Yasso
Yasso

14 Apr 15

코멘트 perfmetrics

댓글을 찾을 수 없습니다
코멘트를 추가
이미지를 켜십시오!