HTMLd aygıtlarında çalışan JS uygulamalarını günlüğe kaydedebilmem için statsd / graphite ayarlamak istiyorum (örn. İçerdiği LAN ortamında değil ve büyük olasılıkla doğrudan denetlemediğim büyük miktarda veri ile).
Kısıtlarım:
- giriş noktası HTTP konuşmalıdır: Bu, basit bir HTTP-UDP-istatistikd proxy'si tarafından çözülür (örn. github'da httpstatsd)
- tek bir sunucunun başarısızlığına direnmelidir (Murphy kanunları ile savaşmak için :)
- yatay olarak ölçeklenebilir olmalıdır: web ölçeği, bebek! :)
- mimari mümkün olduğunca basit (ve ucuz) tutulmalıdır
- sunucularım sanal makineler
- veri dosyaları bir dosyalama cihazında saklanacaktır (NFS ile)
- Tcp / udp donanım yük dengeleyicilerim var
Kısacası, veri yolu: [istemci] - (http) -> [http2statsd] - (udp) -> [statsd] - (tcp) -> [grafit] - (nfs) -> [dosyalayıcı]
Bulgularım şu ana kadar:
- http2statsd bölümünü ölçeklendirmek kolaydır (vatansız cinler)
- statsd parçasının ölçeklendirilmesi kolay görünmüyor (sanırım toplam, avg, min, maks ... gibi toplu veriler için grafitte tutarsız değerler elde ediyorum). HTTP arka plan programı anahtarları parçalamak için tutarlı karma yapmadığı sürece. Belki bir fikir ... (ama sonra HA sorusu var)
- grafit parçasının ölçeklendirilmesi parçalama (karbon-röle kullanılarak) ile yapılabilir (ancak bu HA sorusunu da çözmez). Açıkçası birkaç fısıltı örneği aynı NFS dosyasını yazmamalıdır.
- Disk denetleme parçasının ölçeklendirilmesi sorunun bir parçası değildir (ancak daha az IO, daha iyi :)
- sadece paylaşılan NFS verilerini okudukları için webapp'ı ölçeklendirmek (test etmedim de) açık görünüyor
Yani sağlam bir istatistik / grafit dağıtımı için paylaşmak için deneyimleri ve en iyi uygulamaları olup olmadığını merak ediyordum?