GCP Stackdriverロギングから特定の期間における特定のログメッセージの発生数をカウントすることはできますか? 「この期間中にこのイベントが発生した回数」という質問に答えるため。基本的に私は下のグラフの曲線の積分が欲しいです。
これは移動ウィンドウである必要はありません。今回は、1回限りのタスクです。高度なログクエリのカウントアグリゲーターなども、それが利用可能であれば機能します。
クエリは次のようになります。
(resource.type="container"
logName="projects/xyz-142842/logs/drs"
"Publish Message for updated entity"
) AND (timestamp>="2018-04-25T06:20:53Z" timestamp<="2018-04-26T06:20:53Z")
これには複数の方法がありますが、実際に機能していて、状況に当てはまるものは次の2つです。
ログベースのメトリック を使用します。たとえば、特定のエラーメッセージを含むログエントリの数を記録したり、ログエントリで報告された待ち時間情報を抽出したりできます。
Stackdriver Loggingのログベースの指標は、カウンタまたは分布の2つの指標タイプのいずれかになります。 [...]カウンターメトリックは、高度なログフィルターに一致するログエントリの数をカウントします。 [...]分布メトリクスは、フィルターに一致するログエントリからの数値データを蓄積します。
ドキュメントを確認して、この機能がユースケースを完全にカバーしていることを確認することをお勧めします。
ログをBig queryにエクスポートする 、ログを取得したら、groupby
、select
などの従来のツールと、BigQueryが提供するすべてのツールを利用できます君は。
ここ ログをエクスポートする方法とBigQueryを使用して監査ログを分析する方法に関する非常に最小限のステップガイドを見つけることができますが、オンラインで多くのリソースを見つけることができると確信しています。
製品とアプローチは実際には異なります。BigQueryはより柔軟ですが、構成して適切に使用するためにはさらに複雑です。 3番目に良い方法を見つけたら、それらの情報で質問を更新してください。
もう1つのオプションがあります。 Stackdriver Monitoring API( https://cloud.google.com/monitoring/api/v3/ )を使用してカスタム指標を読み取り、必要な集計を使用してスクリプトで処理できます。
python-を使用している場合は、gcloud python library https://github.com/GoogleCloudPlatform/google-cloud- python/tree/master/monitoring これは非常にシンプルなスクリプトであり、計算結果をbigqueryテーブルにストリーミングして、ダッシュボードで使用できます