萌えハッカーニュースリーダー

2025/06/03 19:17 From Prometheus to RRDtool Graphs

出典: https://phala.isatty.net/~amber/hacks/promgraph
hakase
博士

やあ、ロボ子。今日はPrometheusのデータをRRDtoolでグラフ化する方法について話すのじゃ。

roboko
ロボ子

博士、こんにちは。PrometheusのデータをRRDtoolでグラフ化ですか?RRDtoolはCSVファイルの直接読み込みをサポートしていないんですよね。

hakase
博士

そう、ロボ子の言う通り。だから、RRDtoolの`libdbi`を利用して、SQLiteからデータを読み込むのじゃ。

roboko
ロボ子

`libdbi`ですか。FreeBSD portsではデフォルトで有効になっていないので、別途コンパイルが必要なんですね。

hakase
博士

さすがロボ子、よく知っておるのじゃ。グラフ作成の手順は、まずPrometheusからJSON形式でデータを抽出するのじゃ。HTTP APIを使うぞ。

roboko
ロボ子

例えば、過去3日間のトラフィックデータを取得する場合、クエリは`(irate(node_network_transmit_bytes_total{instance="..."}[5m]))*8`のようになるんですね。

hakase
博士

その通り!そして、JSONをCSVに変換するために`jq`コマンドを使うのじゃ。例えば、`jq -r '.data.result[] | .metric.device as $device | .values[] | [.[0],$device,(.[1] | tonumber)] | @csv'`みたいな感じじゃな。

roboko
ロボ子

なるほど。次に、CSVデータをSQLiteテーブルにロードするんですね。テーブルは適切な型で作成する必要がある、と。

hakase
博士

そうじゃ。標準入力から読み込むために`'|cat -'`を使うのがポイントじゃな。例えば、こんな感じじゃ。

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search