2014-11-06 26 views
8

Bir web sunucusundan özel metrikler toplamak için Graphite + Statsd (Python istemcisiyle) kullanıyorum: başarılı işlemler için bir sayaç. Sayacın stats.transactions.count olduğunu ve stats.transactions.rate adresinde bir hız/her/saniye metriği olduğunu varsayalım.Son 60 dakikadaki işlemler x'den azsa, Seyren in Grafit ile nasıl uyarılır?

Ben de bir monitör + uyarısı sistemi ve Grafit başarıyla çekti metrik olarak kurulum Seyren ettik. Şimdi Son 60 dakika içindeki başarılı işlemlerin sayısı belirli bir minimum'dan daha azsa, Seyren'de bir uyarı ayarlamak istiyorum.

metrik ve Grafit fonksiyonu kullanmalıyım ?summarize(metric, '1h') ile denedim, ancak bu, Grafit saatin başlangıç ​​saatini ölçmeye başladığında bana her saat bir uyarı veriyor.

Seyren ayrıca, eğer bu yardımcı oluyorsa, Graphite'ın from ve until parametrelerini belirtmesine izin verdiğini unutmayın.

cevap

14

Bu durumun üstesinden gelmek için from/until'u desteklemek üzere Seyren kodunu ekledim.

saattir sayısı altında 50 düşerse, aşağıdaki yapılandırma bir uyarı arttırmalıdır ve bir hata aşağıda 25.

  • Hedef düşerse: Yukarıda (nonNegativeDerivative (stats.transactions.count), "1 saat", "toplam", doğru)
  • kaynaktan: -1 H
  • için: [boşluk]
  • uyar: 50 (yumuşak az)
  • hatası: 25 (sert az)

bu her dakika çalışır Not, yani "son saat" kayan bir ölçektir. Ayrıca özetlemek fonksiyonu için üçüncü boolean parametre true o yanlışlıkla yarım kova almak yerine, tam 1 saatlik kepçe 1 saat önce başlayarak destekleneceği anlamına gelir From onun 1h kova hizalamak için söylüyorum unutmayın. (Grafit yeni versiyonları otomatik olarak yapmak olabilir.)

Kilometre değişebilir. Sayaç sunucu yeniden başlatıldığında 0'a geri döndüğünde bu yaklaşımla ilgili sorunlar yaşadım. Ama benim durumumda dropwizard metrikleri + grafit kullanıyorum, statsd + grafite değil, bu yüzden bu problemi yaşayamayabilirsiniz.

bu yaklaşım sizin için çalışan varsa bana bildirin!

+3

Teşekkürler! Benzer bir sonuç elde etmek için integral (transformNull (stats.transactions.count, 0)) fom -1h [blank] kullanıyorum. Belki de Seyren belgelerine bazı örnekler verebiliriz? – dukebody