go-carbon・carbon-relay-ngのモニタリング項目メモ

 

go-carbon

carbon-relay-ng は Graphite/Carbon に相当するもので、違いなどの詳細は 

GitHub - go-graphite/go-carbon をみてください。

 

carbon-relay-ng

carbon-relay-ng は Graphite の carbon-relay-py  に相当するもので、違いなどの詳細は GitHub - grafana/carbon-relay-ng をみてください。

 

go-carbon・carbon-relay-ngを用いたデータ集計を日々運用していく上で、エラー等の状態を検知するために、個人的に「このあたりをモニタリングすると良さそう」と思っている項目のメモです。使い方次第では、他にもあるかもしれません。

 

go-carbon 項目

go-carbonモニタリングに使う項目は、起動後1分は値がnullになるものので、起動後はスキップにするのがおすすめ。(起動してから1分間隔で送信:このあたり

TCP受信数

carbon.agents.【go-carbonのインスタンス名】.tcp.metricsReceived

TCP接続エラー数

carbon.agents.【go-carbonのインスタンス名】.tcp.errors

③ キャッシュ個数

carbon.agents.【go-carbonのインスタンス名】.cache.metrics

④ キャッシュサイズ

carbon.agents.【go-carbonのインスタンス名】.cache.size

⑤ キャッシュオーバーフロー

carbon.agents.【go-carbonのインスタンス名】.cache.overflow

go-carbon は、キャッシュの許容範囲を超えた場合、ディスクに書き込まれない分が喪失する。

この時点より早く検知したい場合は、cache.maxSizeの●%のcahce.size(④キャッシュサイズ)を監視しておくと良さそう。

 

carbon-relay-ng 項目

① 送信数

service_is_carbon-relay-ng.instance_is_【carbon-relay-ngのインスタンス名】.mtype_is_counter.unit_is_Metric.direction_is_in

② メトリック欠落エラー系

carbon-relay-ng/conn.go at b0c8921812d428c3370f3de932f73c038ecf3e94 · grafana/carbon-relay-ng · GitHub のあたりの項目で必要なもの

例:
service_is_carbon-relay-ng.instance_is_【carbon-relay-ngのインスタンス名】.mtype_is_counter.dest_is_【送信先】.unit_is_Metric.action_is_drop.reason_is_bad_pickle

③ 送信エラー系

carbon-relay-ng/destination.go at b0c8921812d428c3370f3de932f73c038ecf3e94 · grafana/carbon-relay-ng · GitHub のあたりの項目で必要なもの

例:
service_is_carbon-relay-ng.instance_is_【carbon-relay-ngのインスタンス名】.mtype_is_counter.dest_is_【送信先】.unit_is_Metric.action_is_drop.reason_is_slow_spool

④ Aggregator 破棄数

Aggregator で、設定した wait時間を過ぎて投入されたデータは破棄されます。

service_is_carbon-relay-ng.instance_is_【carbon-relay-ngのインスタンス名】.mtype_is_counter.module_is_aggregator.unit_is_Metric.what_is_TooOld

破棄された個数を検知したいときはこれをモニタリングすると良さそうです。

個数は把握できるものの、取りこぼしたメトリックの内容が把握できないので、別途ログ出力するようにも試みました。こちらは下記の記事に書きました。