perfmetrics

Yazılım ekran görüntüsü:
perfmetrics
Yazılım detaylar:
Versiyon: 0.9.5
Qayıt: 20 Feb 15
Geliştirici: Shane Hathaway
Lisans: Ücretsiz
Popülerlik: 4

Rating: nan/5 (Total Votes: 0)

.

perfmetrics Python kütüphaneleri ve uygulama & nbsp yazılım performans ölçümlerini eklemek için basit bir yol sağlar Kullanımı; perfmetrics üretim uygulamasında gerçek darboğazları bulmak için.
perfmetrics paket sırayla Grafit bir istemci (özellikle, Karbon daemon) 'dir Etsy tarafından Statsd daemon, bir istemci. Perfmetrics paketi Statsd UDP paketleri gönderir Çünkü, perfmetrics uygulamaları ve az CPU yükü hiçbir I / O gecikmeleri ekler. Bu dişli (senkron) ya da olay-güdümlü (asenkron) yazılım eşit derecede iyi çalışabilir.
Kullanım
Statsd istatistiklerini zamanlama göndermek ve aramak gerekir fonksiyonları ve yöntemleri sarmak içinmetric vemetricmethod dekoratörler kullanın. Kütüphane işlevleri de dahil olmak üzere, bir darboğaz olabilir herhangi bir fonksiyon veya yöntem dekoratörler ekleyin.
Örnek:
perfmetrics metrik içe
perfmetrics ithalat metricmethod gelen
metric
def myfunction ():
& Nbsp; "" "pahalı olabilir bir şey yapın" ""
class Sınıfım (object):
& Nbsp;metricmethod
& Nbsp; def MyMethod (öz):
& Nbsp; "" "diğer bazı muhtemelen pahalı bir şey yapın" ""
Sonraki, nasıl Statsd bağlanmak için perfmetrics söyle. (Yapmanız kadar, dekoratörler hiçbir etkisi yoktur.) İdeal olarak, başlangıç ​​sırasında bir yapılandırma dosyasından Statsd URI okumalısınız uygulama, ancak aşağıda örnek bir kodlanmış URI basitlik için kullanır:
perfmetrics ithalat set_statsd_client gelen
set_statsd_client ('statsd: // localhost: 8125')
xrange (1000) 'de i için:
& Nbsp; myfunction ()
& Nbsp;. Sınıfım () MyMethod ()
Eğer bu kodu çalıştırırsanız, bu, Ancak port 8125. 2000 UDP paketlerini ateş edecek zaten Grafit ve Statsd yüklü değilse, bu paketlerin tüm ihmal ve atılır. Damlama iyi bir şey: Eğer üretim uygulaması başarısız veya performans izleme sistemi durdurulmuş veya çalışmıyor sırf yavaşlatmak istemiyorum.
Install Grafit ve Statsd almak ve ölçümlerin grafiğini için. Bunları yüklemek için iyi bir yolu root erişimi olmayan özel bir konuma Grafit ve Statsd yükler github en graphite_buildout örnektir.
Threading
En program tek bir küresel Statsd sunucusuna herhangi bir iş parçacığı ölçümleri göndermek ederken, bazı programlar her iş parçacığı için farklı bir Statsd sunucusu kullanmanız gerekir. Sadece küresel Statsd sunucusu gerekiyorsa, uygulama başlangıçta set_statsd_client işlevini kullanın. Her iş parçacığı için farklı bir Statsd sunucusu kullanmanız gerekiyorsa, her iş parçacığı statsd_client_stack nesnesini kullanın. Itme, pop ve net yöntemleri kullanın.
Grafit İpuçları
Grafit mağazaları birden çözünürlükte bir zaman serisi olarak her metrik. 48 saat, 31 gün boyunca 1 saat çözünürlüğü ve 5 yıl için 1 gün çözümü için örnek graphite_buildout mağazaları 10 saniye çözünürlük. Ince taneli değerden bir kaba taneli değer üretmek için, Grafit, her zaman dilimi için ortalama değeri (ortalama) hesaplar.
Grafit dolaylı ortalama değerleri hesaplar Çünkü, Grafit sayaçları tedavisi için en mantıklı yolu, değeri bir "saniyede hit" olduğu gibi. Bu şekilde, bir grafik olursa olsun kullandığı çözünürlük seviyesi doğru sonuçlar üretebilir.
İkinci talihsiz sonuçları vardır başı vurur gibi Ancak, sayaçlar tedavisi. Bazı metrik bir saniyede 1000 hit başak görürse, o zaman en az 9 saniye sıfır düşer Grafit ölçümleri her 10 saniyede alır ve başak görünüyor çünkü, o metrik için Grafit grafik, 100 bir artış değil, 1000 gösterecektir 10 saniyelik bir süre boyunca saniyede 100 hit gibi Grafit.
Eğer grafik 1000 hit ziyade saniyede 100 hit göstermek istiyorsanız, 10 saniye veya daha fazla bir çözünürlük kullanarak, Grafit hitcount () işlevini uygulayın. hitcount işlevi ham hit sayıları yaklaştığı saniyede değerlerini dönüştürür. Aksi Grafit hit sayım ortalamaları hesaplamak ve kafa karıştırıcı bir grafik üretecek, ortaya çıkan grafiğin en az bir piksel genişliği ile temsil edilecek kadar büyük bir çözünürlük değeri sağlamak için emin olun.
Genellikle varsayılan olmasa, sıfır olarak Grafit null değerleri tedavi mantıklı; Varsayılan olarak, Grafit null değerler için hiçbir şey çizer. Her grafik için bu seçeneği açabilirsiniz.
Referans Belgeler
Dekoratörler
metric
& Nbsp; bildirir Statsd işlevi denir, her zaman UDP kullanarak. Çağrı sayıları ve zamanlama bilgilerini hem de gönderir. Statsd gönderilen bir metrik adını . .
metricmethod
& Nbsp; gibimetric, ancak Statsd metrik adı olan ...
Metrik (istatistik = Yok, oranı = 1, yöntem = false, saymak = true, zamanlama = true)
& Nbsp; seçenekleri ile bir dekoratör ya da bağlam yöneticisi.
& Nbsp; istatistik göndermek için metrik adıdır; işlevin veya yöntemin adı kullanmak Yok olarak ayarlayın. oranı rastgele örnek seçerek Statsd gönderilen paketlerin sayısını azaltmak sağlar; Örneğin, paketlerin onda birini göndermek için 0.1 olarak ayarlayın. Yöntem parametresi true ise, varsayılan metrik ad yöntemin sınıf ismi yerine modül adı dayanmaktadır. Yanlış sayımı ayarlanması Statsd gönderilen sayaç istatistiklerini devre dışı bırakır. False zamanlama ayarı Statsd gönderilen zamanlama istatistiklerini devre dışı bırakır.
& Nbsp; bir dekoratör olarak örnek kullanım:
& Nbsp;Metric ('frequent_func', oranı = 0.1, zamanlama = False)
& Nbsp; def frequent_func ():
& Nbsp; "" "" "sık sık hızlı bir şey yapın ve"
& Nbsp; bir bağlam yöneticisi olarak örnek kullanımı:
& Nbsp; def) (do_something:
& Nbsp; Metrik ile ('doing_something'):
& Nbsp; geçiş
& Nbsp; perfmetrics çok sık paketleri gönderirse, UDP paketleri kaybolabilir ve uygulama performansı etkilenebilir. Sen paketlerin sayısını ve seçenekler yerine metrik veya metricmethod ile Metrik dekoratör kullanarak CPU yükü azaltabilir. dekoratör Yukarıdaki örnek bir örnek hızını ve statik metrik adını kullanır. Ayrıca zamanlama bilgileri toplama devre dışı bırakır.
& Nbsp; bir bağlam yöneticisi olarak Metrik kullanırken, istatistik parametresini sağlamanız gerekir ya da hiçbir şey kaydedilecektir.
Fonksiyonlar
statsd_client ()
& Nbsp; şu anda yapılandırılmış StatsdClient dön. Bir, ya da hiçbiri varsa küresel müşteri var biridir, ya da eğer iş parçacığı yerel istemci döndürür.
set_statsd_client (client_or_uri)
& Nbsp; küresel StatsdClient ayarlayın. // URI, ya da Yok: client_or_uri bir StatsdClient, bir statsd olabilir.
statsd_client_from_uri (uri)
& Nbsp; URI bir StatsdClient oluşturun. Tipik bir tanım statsd edilir: // localhost: 8125. Desteklenen isteğe bağlı sorgu parametreleri önek ve gauge_suffix vardır. Varsayılan önek boş ve varsayılan gauge_suffix gauge_suffix hakkında daha fazla bilgi için StatsdClient belgelerine bakın .. olduğunu.
StatsdClient Yöntemleri
Python kodu ilk statsd_client () yöntemini kullanarak geçerli StatsdClient alarak özel ölçümlerini gönderebilirsiniz. Hiçbir istemci yapılandırılmış ise Yoktur döner) (o statsd_client unutmayın.
Aşağıdaki yöntemlerden en opsiyonel hızı ve tampon parametreleri var. Bir değerinden daha 1 olarak ayarlandığında oranı parametresi, paketlerin rastgele bir örnek ziyade her paket göndermek için StatsdClient neden olur. Buf parametre listesi ise, StatsdClient tampon listesine paket içeriğini ekler yerine mümkün, tek bir paket içinde birden fazla güncellemeleri göndermek için yapım, paket göndermek. UDP paketlerinin büyüklüğü sınırlıdır (sınır ağı göre değişir, ancak 1000 bayt genellikle iyi bir tahmin olduğunu) ve herhangi bir ekstra bayt sessizce göz ardı edilecek unutmayın.
Zamanlama (Yoktur = buf stat değeri, oranı = 1)
& Nbsp; Tutanak zamanlama bilgileri. , stat kaydetmek için metrik adı ve değeri milisaniye zamanlama ölçümüdür. Böylece zamanlama metrik sayaçları veya göstergeleri daha fazla disk alanı alabilir, Statsd her zamanlama metrik için çeşitli veri noktalarını korur unutmayın.
göstergesi (Yoktur = buf stat değeri, eki = Yok, oranı = 1)
& Nbsp; ölçü değerini güncelleyin. , stat kaydetmek için metrik adı ve değeri yeni ayar değeridir. Bir ölçer gibi bir havuz boyutu olarak kalıcı bir değeri temsil eder. Farklı genellikle makineler çatışma göstergeleri, bir eki genellikle isimleri ölçmek için uygulanır çünkü. Sonek parametresi (boş bir dize dahil) bir dize ise, varsayılan ayar eki geçersiz kılar.
artırım (Yoktur = buf stat sayısı = 1, oranı = 1)
& Nbsp; sayımına göre bir sayaç arttırır. Statsd tüm sayaç değerlerini genellikle her 10 saniyede bir olur ki, Grafit için ölçümleri gönderir her zaman temizler unutmayın. Eğer kalıcı bir değer gerekiyorsa, bir sayacın yerine göstergesi kullanmak daha uygun olabilir.
DECR (Yoktur = buf stat, 1 = saymak oranı = 1)
& Nbsp; sayımına göre Azaltma bir sayaç.
sendbuf (tampon)
& Nbsp; Statsd için tampon listesinin içeriğini gönder

Bu sürümdeki yeni nedir:

  • isteğe bağlı Piramit eklendi. ara ve her istek için Statsd istemcisi kurar benzer WSGI filtre uygulaması.

sürüm 0.9.4 yeni nedir:.

  • azaltılmış numune oranlarının kullanılması

nedir sürüm 0.9.2 Yeni:

  • Metrik şimdi ya bir dekoratör olarak kullanılabilir veya Bir içerik yöneticisi.
  • Daha James Socol en StatsClient gibi StatsdClient imzasını yapılmıştır.

Gereksinimler :

  • Python

Benzer yazılım

InterMapper
InterMapper

17 Feb 15

Placid
Placid

3 Jun 15

jWatchdog
jWatchdog

20 Feb 15

ScreenSpy
ScreenSpy

3 Jun 15

Geliştirici Diğer yazılım Shane Hathaway

slowlog
slowlog

20 Feb 15

Yasso
Yasso

14 Apr 15

repoze.pgtextindex
repoze.pgtextindex

20 Feb 15

oauth2sample
oauth2sample

14 Apr 15

Yorumlar perfmetrics

Yorum Bulunamadı
Yorum eklemek
Görüntülerde açın!