Cloud Monitoringは取得したメトリクスデータを、あらかじめ定められた期間だけ保持します。保持期間はメトリクスの種類によって異なります。詳細は データ保持ポリシー をご確認ください。Googleはこの期間を随時更新しているため、定期的にページを見直すことをおすすめします。
保持期間を過ぎると、Cloud Monitoringは期限切れのデータポイントを削除します。時系列内のすべてのポイントが期限切れになると、その時系列自体も削除されます。削除された時系列はCloud Monitoringのチャートにも、Monitoring APIの結果にも表示されなくなります。
要するに、データポイントは6週間後に削除されるということです。しかし、分析やトラブルシューティングの観点では、その期間を超えても掘り下げたい貴重なデータであることも少なくありません。現状では、大量のモニタリングデータを他の分析システムへ手軽にエクスポートする方法は用意されていません。
そこで朗報です。Cloud Monitoringの生データをBigQueryのテーブルへエクスポートし、後から分析できるようにするオープンソースプロジェクトを公開しました!
プロジェクトはこちら: https://github.com/doitintl/gcp-monitoring-metric-exporter
Google Cloud Metric Exporterのアーキテクチャ
例として、Google Cloud Dataflowのシステムラグメトリクス(dataflow.googleapis.com/job/system_lag)をBigQueryのテーブルへエクスポートしてみましょう。
このデータは、現在Cloud Monitoring上で以下のように確認できます。
これをBigQueryへエクスポートすれば、より長期間データを保持しながら、集計や分析を適切に行えるようになります。
始め方はこちら: https://github.com/doitintl/gcp-monitoring-metric-exporter
Filterには必ず有効なフィルター式を設定してください。今回のケースでは、次のようになります。
‘metric.type = "dataflow.googleapis.com/job/system_lag"’
フィルターの外側はシングルクォート(‘)、内側はダブルクォート(")で囲む点にご注意ください。
対象のBigQueryデータセット配下でGCP Monitoring Metric Exporterを実行すると、エクスポートジョブ名のテーブルが新たに作成され、メトリクスのデータポイントが書き込まれます。以降もGCP Monitoring Metric Exporterが継続的にデータをエクスポートし、テーブルを更新していきます。
メトリクスデータがBigQueryに揃えば、実績あるBigQueryの各種機能を活用して、データの探索・分析・関係者との共有がスムーズに行えます。さらに重要なのは、データ保持期間を気にせず、必要な期間だけデータを保管できる点です。
ぜひこのリソースを同僚やSNSのフォロワーにも共有してください。フィードバックやご提案もお気軽にお寄せください。
お読みいただきありがとうございました! 最新情報は DoiT Engineering Blog 、 DoiT LinkedInチャンネル 、 DoiT Twitterチャンネル で発信しています。採用情報は https://careers.doit-intl.com をご覧ください。