ログ集計を使用してフィールドごとにログをグループ化する

ログ集計を使用して問題を特定します。グループでログレコードを集計し、分析を実行して、関連するログの平均、合計、その他の統計を確認します。

集計では、関連するデータを 1 つのフィールドごとにグループ化し、他のフィールドで統計計算を実行します。ログレコードを集計することは、関連するログの平均、合計、およびその他の統計を表示することにより、問題を視覚化するのに役立ちます。

たとえば、サービスのパフォーマンスについて詳しく調べるために、ログ テーブルを参照しているとします。各サービスの応答時間に懸念がある場合は、ログレコードをサービス URL ごとにグループ化し、集計を使用して平均応答時間を計算できます。この集計は、応答が遅いサービスの特定に役立ちます。

レスポンスタイムの悪いサービスを特定したら、そのサービスのログレコードを掘り下げて、問題の詳細を理解することができます。

ログ記録を集計する

アグリゲーションを行うには、以下の手順に従います:

  1. 集計コントロールバーを見つけます。Log Observer Connect には、デフォルトの集計はありません。Log Observer はデフォルトで [Group by: severity] に設定されます。このデフォルトは、次の集計制御設定に対応しています。

    • COUNT

    • All(*)

    • Group by: 重大度

  2. グループ化するフィールドを変更するには、[Group by] テキストボックスにフィールド名を入力し、Enter を押します。集計制御バーには次の機能もあります。

    • テキストボックスをクリックすると、Log Observerは、ログ記録で利用可能なすべてのフィールドを含むドロップダウンリストを表示します。

    • テキストボックスは自動検索を行います。フィールドを検索するには、その名前を入力します。

    • リスト内のフィールドを選択するには、その名前をクリックします。

    • グループ化のためにフィールドを検索する場合、一度に表示できるのは 50 個のフィールドのみです。入力を続けると、選択できるフィールドのより具体的なリストが表示されます。

  3. 各グループに適用する計算を変更するには、以下の手順に従ってください:

    1. 計算制御から統計のタイプを選択します。たとえば、平均値を計算するには、[AVG] を選択します。

    2. 計算フィールド コントロール テキスト ボックスにフィールド名を入力して、統計のフィールドを選択します。テキストボックスは自動検索するので、一致するフィールド名を見つけるために入力を開始します。

  4. 集計を実行するには、Apply をクリックします。

グループ化または計算にフィールドを使用する場合、タイムラインのヒストグラムとログのテーブルに表示される結果には、そのフィールドを含むログのみが含まれます。ログはグループ化したフィールドによって暗黙的にフィルタリングされるため、使用したフィールドを含まないログによって計算が影響を受けないことが保証されます。

例1:サービス名で重大度を集計して問題を特定する

潜在的な問題を発見する方法の 1 つは、重大なエラーを多数生成しているサービスを見つけることです。これらのサービスを見つけるには、ログレコードをサービス名でグループ化し、すべてのレコードをカウントします。問題のあるサービスは、severity 値が [ERROR] であるレコードが多数あるグループとして表示されます。

このアグリゲーションを適用するには、以下の手順に従います:

  1. 計算コントロールを使って、COUNT を選択し、計算タイプを設定します。

  2. 計算フィールドコントロールを使用して、計算フィールドを All(*) に設定します。

  3. Group by テキストボックスを使って、グループ化するフィールドを service.name に設定します。

  4. Apply をクリックします。タイムラインヒストグラムには、すべてのサービス別のログの数が積み上げ縦棒グラフとして表示され、重大度ごとに異なる色で表示されます。ヒストグラムの凡例では、それぞれの重大度の色を区別します。

例2: リクエストパスごとにレスポンスタイムを集計して問題を特定する

想定よりも長いサービス応答は、サービスまたはそれが実行されるホストの他の部分に問題があることを示している可能性があります。想定よりも遅い時間で応答しているサービスを特定するには、http.req.path(各サービスを一意に識別するフィールド)を使用してログイベントをグループ化します。各グループについて、応答時間フィールド http.resp.took_ms の平均を計算します。

このアグリゲーションを適用するには、以下の手順に従います:

  1. 計算コントロールを使って、計算タイプを AVG に設定します。

  2. 計算フィールドコントロールを使用して、フィールドを次のように設定します。 http.resp.took_ms

  3. Group by テキストボックスを使って、グループ化するフィールドを http.req.path に設定します。

  4. Apply をクリックします。タイムラインヒストグラムは、各サービスの平均応答時間を表示します。