ログベースの指標の実例
Google Cloud Japan Team
※この投稿は米国時間 2023 年 2 月 9 日に、Google Cloud blog に投稿されたものの抄訳です。
Google Cloud オペレーション スイートは、さまざまなサービスにわたって数百もの指標をサポートしています。こうした公開されている事前定義された指標のほかにも、アプリケーションからいつでもカスタム指標を報告できます。さまざまな組織から寄せられるよくある要望の一つに、アプリケーション ログでテキストのパターンを探し、それに関するデータを報告するというものがあります。例として、完了した注文をアプリケーションが追跡していて、アプリケーション ログに記録されたメッセージの一つが「注文が完了しました」であったとします。ログにおける「注文が完了しました」の発生をすべて追跡し、それをカウントして、それを指標として公開し、さらにそのカウントに基づいて可視化またはアラートを生成できるとしたらどうでしょう。
このブログ投稿では、カスタム ログ メッセージを出力するサンプル アプリケーション(Cloud Run アプリケーション)を取り上げ、それを使用して次のことを行います。
カスタム ログ メッセージの発生回数をカウントできるログベースの指標を定義します。
Google Cloud Monitoring のカスタム ダッシュボードを介して指標を可視化します。
ログベースのアラートを定義して、その指標の値がしきい値を上回っているか下回っている場合に通知するようにします。
次のツールを使用してデモを実施します。
サンプル アプリケーションを生成して Cloud Run にデプロイするための Cloud Code の VS Code 拡張機能
サンプル アプリケーションによって生成されたログを調べ、特定のテキスト メッセージをログベースの指標に変換する Logging Explorer
作成したログベースの指標を可視化する Cloud Monitoring ダッシュボード
ログベースの指標に基づいてアラートを作成する Cloud Monitoring ログベース アラート
では、始めましょう。
サンプル アプリケーション
Cloud Code の VS 拡張機能で作成できるサンプル アプリケーションの一つを使用します。目標は、アプリケーションをシンプルに保ち、ログベースの指標を理解するというタスクに集中することです。
このタスクを開始するには、いくつかの前提条件があります。
Google Cloud アカウント、課金を有効にした Google Cloud プロジェクトを持っている。
Cloud Shell に精通している。
サンプル アプリケーションを Cloud Run にデプロイする手順は次のとおりです。
ウェブの Google Cloud コンソールからログインし、Cloud Shell を起動します。[エディタ] をクリックして、VS Code ベースのエディタに移動します。
Cloud Code 拡張機能を使用して新しいアプリケーションを作成しました。Cloud Run アプリケーションを選択し、優先言語として Java を選択し、フォルダ(my-logbased-metrics-app)を選択してアプリケーションを生成しました。
これは単純な Java Spring ベースのアプリケーションです。あとは指標に変換するカスタム ログ メッセージを追加するだけです。
Java Spring アプリケーションの一部として生成されたメインのコントローラ ファイルにカスタム ログ メッセージを追加します。Cloud Shell エディタから次のファイルにアクセスします。src/main/java/cloudcode/helloworld/web/HelloWorldController.java
スクリーンショットでハイライト表示されている次の行を追加します。
これで、このアプリケーションを Cloud Run にデプロイする準備が整いました。
アプリケーションを Cloud Run にデプロイする
以下の手順に沿って操作してください。
Cloud Shell エディタで、Cloud Code 拡張機能のリンクをクリックします。これをクリックすると、以下に示すように、実行できるさまざまなアクションが表示されます。今回は [Deploy to Cloud Run] をクリックします。
これにより、API(まだ有効にしていない場合)や承認などを有効にするためのさまざまなプロンプトが表示されます。デフォルトのままにして進むと、Cloud Run サービスの詳細を示す画面が表示されます。ここではデフォルトのままにして、[Deploy] ボタンをクリックします。
Cloud Run サービスの URL(形式は https://[TAG---]SERVICE_IDENTIFIER.run.app)にアクセスすると、次のようなデモ アプリケーションのホームページが表示されます。
ログを確認する
ホーム URL (「/」) にアクセスしたときに呼び出される「home page visited」というログ メッセージをコントローラに追加したことを思い出してください。これにより、理想的にはログにメッセージが生成されるため、Logging Explorer を使用してこのメッセージを調べることができるはずです。
先ほど作成した Cloud Run サービスにアクセスしたときに表示されるホームページを更新して、そのようなメッセージをシミュレートすることをおすすめします。
ログ エクスプローラで、次のスニペットを [クエリ] ウィンドウに貼り付け、[クエリを実行] ボタンをクリックします。これにより、探している特定のメッセージ、すなわち「home page visited」をフィルタリングでき、以下のような結果が表示されるはずです。
ログ エクスプローラにおける「Home Page Visited」のログ
ログベースの指標を作成する
ログベースの指標を作成するには、以下に示すように [指標を作成] ボタンをクリックします。これによりオプション ダイアログが表示されます。このダイアログでは、以下を選択する必要があります。
発生回数のカウントのみに関心があるため、これはカウンタ指標です。
名前フィールドに、「home_page_visits」のような名前を入力します。
指標を可視化し、アラートを作成する(オプション)
上の指標の右端にあるその他アイコンをクリックし、以下に示すように、メニューから [Metrics Explorer で表示する] を選択します。
これにより、以下に示すように、サンプルグラフに定義したカスタム指標が表示されます。
ブラウザを使用して、上でデプロイした Cloud Run サービス URL(形式は https://[TAG---]SERVICE_IDENTIFIER.run.app)にアクセスし、データをシミュレートして、グラフのデータを入力します。そのデータがログの取り込み / フィルタリングからこのグラフに到達するまで 1 分待ちます。[Save Chart] ボタンをクリックしてこのグラフを保存し、以下のように新しいダッシュボードを作成します。
これにより、カスタム ダッシュボードが作成され、このデータが表示されるときにモニタリングできるようになります。
この値に関するアラートを作成するには、上のグラフのその他アイコンをクリックして、[Convert to alert chart] を選択するだけです。これにより、特定のしきい値をモニタリングするための画面とオプションが表示され、値がそれを上回っているか下回っている場合は、通知を出すことができます。アラートと通知を作成するには、ドキュメントをご確認ください。
ユースケースにログベースの指標を適用する
ここで確認した例は、ログベースの指標を作成するプロセスを示すものでしたが、これはカスタム指標に基づくいくつかの実際のシナリオにも利用できます。
こうしたシナリオには次のようなものがあります。
「ERROR : <残りのメッセージ>」で始まるエラー メッセージをログに記録するレガシー アプリケーション。ログベースの指標を使用して、このパターンを特定し、エラーの数を追跡できます。
特定のトランザクション期間をログに記録するウェブ アプリケーション。たとえば、「追加オペレーションに 100 ミリ秒かかりました」などのメッセージを記録します。正規表現を使用して期間を抽出し、前述したカウンタ指標の代わりにディストリビューション ベースのログ指標を作成できます。これは、さまざまなパーセンタイルにわたる応答時間を可視化するのに役立ちます。
注: SQL を使用してログを検索および分析する強力な方法を探している場合は、Log Analytics をご覧ください。Log Analytics では、使い慣れた SQL クエリを介して強力な検索式(ここで言及した正規表現のシナリオを含む)を使用して、ログを調査、分析できます。
このガイドが、ログ メッセージに基づいてログベースのカスタム指標を設定するプロセスの理解に役立てば幸いです。Google Cloud サービスは相互に連携し、ログの調査や、ログベースの指標への変換、Cloud Monitoring のカスタム ダッシュボードを介した可視化など、さまざまなニーズに対応しています。
関連情報
- デベロッパー アドボケイト Romin Irani