web-dev-qa-db-ja.com

指定された時間内のGCPログエントリの数をカウントします

GCP Stackdriverロギングから特定の期間における特定のログメッセージの発生数をカウントすることはできますか? 「この期間中にこのイベントが発生した回数」という質問に答えるため。基本的に私は下のグラフの曲線の積分が欲しいです。

これは移動ウィンドウである必要はありません。今回は、1回限りのタスクです。高度なログクエリのカウントアグリゲーターなども、それが利用可能であれば機能します。

Example log based metric chart in stack driver

クエリは次のようになります。

(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")

上記のグラフのログベースのメトリックは次のようになります: Log based metrig with Type=Counter and Units=1

私のダッシュボードは次のように設定されています: Dashboard with aggregation sum

11

私は積み重ねられたバーを構築することになりました。

正しいズームレベルで、発生回数を簡単にまとめることができます。グラフ(積分)から直接カウントを取得することは素晴らしい機能でしたが、これは今のところ機能します。

Stacked bar diagram with Aggregation: sum and Aligner: sum

3

これには複数の方法がありますが、実際に機能していて、状況に当てはまるものは次の2つです。

  • ログベースのメトリック を使用します。たとえば、特定のエラーメッセージを含むログエントリの数を記録したり、ログエントリで報告された待ち時間情報を抽出したりできます。

    Stackdriver Loggingのログベースの指標は、カウンタまたは分布の2つの指標タイプのいずれかになります。 [...]カウンターメトリックは、高度なログフィルターに一致するログエントリの数をカウントします。 [...]分布メトリクスは、フィルターに一致するログエントリからの数値データを蓄積します。

    ドキュメントを確認して、この機能がユースケースを完全にカバーしていることを確認することをお勧めします。

  • ログをBig queryにエクスポートする 、ログを取得したら、groupbyselectなどの従来のツールと、BigQueryが提供するすべてのツールを利用できます君は。

    ここ ログをエクスポートする方法とBigQueryを使用して監査ログを分析する方法に関する非常に最小限のステップガイドを見つけることができますが、オンラインで多くのリソースを見つけることができると確信しています。


製品とアプローチは実際には異なります。BigQueryはより柔軟ですが、構成して適切に使用するためにはさらに複雑です。 3番目に良い方法を見つけたら、それらの情報で質問を更新してください。

2
GalloCedrone

もう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テーブルにストリーミングして、ダッシュボードで使用できます

0