HTMLデバイスで実行されているJSアプリをログに記録できるようにstatsd/graphiteを設定したいと思います(つまり、含まれているLAN環境ではなく、直接制御できない大量の受信データがある可能性があります)。
私の制約:
つまり、データパス:[client]-(http)-> [http2statsd]-(udp)-> [statsd]-(tcp)-> [graphite]-(nfs)-> [filer]
これまでの私の発見:
だから私は誰かがしっかりしたstatsd/graphiteの展開のために共有する経験とベストプラクティスを持っているかどうか疑問に思いましたか?
コンシステントハッシュを使用したstatsdプロキシがあります。これにより、それぞれが独自のメトリック名のセットを使用する複数のstatsdアグリゲーター間でstatsdトラフィックを分散できます。これはアーキテクチャの重要なスケーラビリティ要素であり、statsdプロセスをスケーリングできます。
グラファイトもトリッキーですが、無限のスケールを必要とせず、サービスまたはその他の静的パラメーターによって細かいシャーディングを実行できることを願っています。
最も難しい部分はwebappのスケーリングであり、それは最も重いグラフクエリが何であるかに大きく依存します。ただし、最も難しいグラフのデータをいつでも事前に集計して、ほとんどの負荷を取り除くことができます。
私はこのすべての苦痛を避けるためにかなり長い間HostedGraphiteを使用してきました、これらの人はCarbon用に独自のRiakバックエンドを実装し、そこですべてのスケーリングを行いました。