Graphite は、拡張性の高いリアルタイム グラフ システムおよびエンタープライズ レベルの監視ツールです。リアルタイムのウェブサイト情報の収集と統計を行うために使用され、さまざまなウェブサイトサービスの稼働状況情報を収集できます。
誰がグラファイトを使用すべきですか?
長期にわたって数値を追跡したい人。時間の経過とともに変化する可能性のある数値があり、その値を時間の経過とともにグラフ化したい場合は、Graphite がニーズに適している可能性があります。
具体的には、Graphite は数値時系列データを処理するように設計されています。たとえば、株価は時間の経過とともに変化する数値であるため、Graphite は株価をグラフ化するのに最適です。数個のデータ ポイントであっても、何千ものサーバーからの数十のパフォーマンス メトリクスであっても、Graphite が最適です。おまけに、これらの名前を事前に知っておく必要はありません (そのような巨大な構成を維持したいと思う人がいるでしょうか?)。メトリクス名、タイムスタンプ、値を送信するだけで、残りは Graphite が処理します。
Graphite はどの程度拡張性がありますか?
CPU の観点から見ると、Graphite はフロントエンドとバックエンドの両方で水平にスケールします。つまり、マシンを追加するだけでスループットが向上します。また、フォールト トレラントでもあります。つまり、バックエンド マシンが失われた場合でも (そのマシンがメモリにキャッシュした内容に関係なく) 最小限のデータ損失が発生し、負荷を処理するのに十分な残存容量がある場合にはシステムが中断されることはありません。
I/O の観点から見ると、負荷がかかると、Graphite はさまざまなファイルに対して多数の小さな I/O 操作を非常に迅速に実行します。これは、RRD 上に構築された多くのツール (drraw、Cacti、Centreon など) が動作するのと同様に、Graphite に送信されたさまざまなメトリクスがそれぞれ独自のデータベース ファイルに保存されるためです。実際、Graphite は根本的な制限が発生して新しいストレージ エンジンが必要になるまで、当初はストレージに RRD を使用していました。
大容量 (毎分更新される数千の異なるメトリクス) には、適切な RAID アレイや SSD がほとんど必要です。ディスクが発生する多数の小規模な書き込み (データ ポイントあたりわずか数バイト) に対応できない場合、ほとんどの標準ディスクは、 small)、Graphite のバックエンドの受信データはキャッシュされます。これが発生すると、Graphite のデータベース エンジンは、Carbon が複数のデータ ポイントを一度に書き込むことができるようにすることで、書き込み可能になるまで余分なデータをメモリにキャッシュする代わりに全体のスループットを向上させます。
Graphite は、これらの機能を大幅に変更する可能性がある代替ストレージ バックエンドもサポートしています。
チャートはどの程度リアルタイムですか?
とてもリアルタイムです。負荷が高い場合でも、時間間隔あたりの受信メトリクスの数がストレージ システムが I/O 操作を実行できる速度よりはるかに大きく、大量のデータ ポイントがストレージ パイプラインにキャッシュされている場合 (前の質問の説明を参照) )、Graphite は引き続きリアルタイム グラフを描画できます。秘訣は、Graphite Web アプリがグラフ描画リクエストを受け取ると、ディスクおよび事前保存キャッシュ (複数のバックエンド サーバーがある場合、キャッシュは分散される可能性があります) からデータを取得し、2 つのデータ ソースを結合することです。組み合わせてリアルタイムグラフを作成します。
すでに Graphite を使用しているのは誰ですか?
Graphite は Orbitz によって内部開発され、アプリケーション メトリック、データベース メトリック、売上などを含むさまざまな主要な運用データを視覚化するために使用されます。この記事の執筆時点では、Orbitz の実稼働システムは、高速 SAN 上の 2 台の niagra-2 Sun サーバーで実行され、1 分あたり約 160,000 の異なるメトリクスを処理できます。
グラファイトって何で書かれてるの?
Graphite Web アプリは Django Web フレームワーク上に構築されており、ExtJS JavaScript GUI ツールキットを使用します。グラフィックのレンダリングは、Cairo グラフィック ライブラリを使用して行われます。バックエンドとデータベースは純粋な Python で書かれています。
Graphite を作成して保守するのは誰ですか?
グラファイトはもともと Orbitz の Chris Davis によって開発されました。 Orbitz は長年にわたってオープンソース コミュニティに参加しており、他にも多数の社内開発製品をリリースしてきました。
Graphite は現在、Graphite-Project GitHub 組織のボランティア チームによって開発されています。