シニア・ソフトウェア・エンジニア、Allen Fung氏
ShareThis では、アプリケーションのモニタリングに Graphite を使用しています。これはGraphiteの典型的なグラフです。
これは、あるアプリケーションが時間の経過とともに消費した「1分あたりのイベント」を示すものです。ご覧の通り、月曜日の午後の数時間はレコードが全く消費されていません。リリースマーカーと上のグラフを組み合わせることで、悪いリリースのために消費が止まったことがわかります。この様子は以下の通りです。
リリースマーカーを実装していると、マーカーの名前は任意の値ではいけないことがわかりました。その代わりに、".count "をサフィックスにする必要があります。これは、「.count$」のxFilesFactorはデフォルトでゼロに設定されていますが、他のパターンではそうではないためです。メトリックにゼロ以外のxFilesFactorが設定されている場合、その値は過去24時間分しか表示されないことが保証されています。xFilesFactorは、以下のファイルで設定できます。
/opt/graphite/conf/storage-aggregation.confになります。
以下は、オートデプロイでリリースマーカーを生成するために使用した実際のコマンドです。
echo release_marker.$APPLICATION.$HOST.count 1 `date +%s` | nc -w 2 graphite.ops.sharethis.com 2003
上記のコマンドは、指定された時間にメトリックの値を数字の1に設定します。メトリックを単に表示しようとしても、その値が小さすぎるため、何も見えません。メトリックを表示するためには、drawAsInfinite関数にメトリックを渡す必要があります。これにより、メートル法の0ではない各データポイントが、垂直の線として表示されます。