ダッシュボード上の例外の根本原因を特定するために、インタラクションイベントを使用して、Logstore のクエリ、トレース分析、別のダッシュボードを開くなどのクイックドリルダウン分析を実行します。このトピックでは、サポートされているインタラクションイベントのタイプと、ダッシュボードでの設定方法について説明します。
仕組み

ダッシュボード上の問題を調査するには、インタラクションイベントを使用して迅速なドリルダウン分析を行います。たとえば、Logstore を開く、ダッシュボードを開く、保存された検索を開く、カスタム HTTP URL を作成する、トレース詳細を開く、またはフルスタック可観測性トレース詳細を開くことができます。
この例では、Nginx アクセスログを使用します。ステータスが 200 の円グラフセクションをクリックすると、対応する Logstore にリダイレクトされ、そのステータスのログをクエリできます。クエリでは、ダッシュボードと同じ時間範囲が使用されます。
リクエストステータスの円グラフを追加:クエリ時間範囲、Logstore、およびクエリ文を設定します。
リクエストステータスの円グラフにインタラクションイベントを追加:ダッシュボード上の
pvフィールドのインタラクションイベントを [Logstoreを開く] に設定します。次に、変数を使用してクエリ文のパラメータを動的に変更する${{status}}変数を追加して、ダッシュボードから選択されたステータスに基づいて Logstore のログをクエリします。
Simple Log Service は、以下のインタラクションイベントをサポートしています。設定手順については、このトピックの最後を参照してください。
Logstoreを開く
ダッシュボードを開く
カスタムHTTP URL
保存された検索
操作手順
例 1: Logstoreを開くイベント
1. リクエストステータス分布グラフの追加
1.1 ダッシュボードの追加
Simple Log Service コンソールにログインし、ターゲットプロジェクトを選択します。[ダッシュボード] > [ダッシュボード] ページで、「リクエストステータス分布グラフ」という名前のダッシュボードを作成します。
右上隅の [+] アイコンをクリックし、ドロップダウンメニューから [ダッシュボードを追加] を選択します。
1.2 グラフの追加
グラフを追加するには、新しいチャートを追加する をクリックします。
グラフを設定して保存します。
左側のペインで、クエリ時間範囲、Logstore、およびクエリ文を設定します。
右側のペインで、グラフの種類、カテゴリ、値列を設定します。ページ上部の適用をクリックしてグラフをプレビューし、次に OK をクリックして保存します。
* | select count(1) as pv ,status group by status
2. インタラクションイベントの追加
設定後、ダッシュボード上の 200 などのステータスコードをクリックすると、Logstore にリダイレクトされ、status が 200 のログをクエリできます。Logstore でのクエリ時間範囲は、ダッシュボードの時間範囲と一致します。
2.1 フィールドへのインタラクションイベント追加
右側のペインの インタラクションの発生 タブで 設定の追加 をクリックし、ドロップダウンリストからフィールドを選択します。
たとえば、[A > pv] を選択します。
イベントの追加 をクリックし、ドロップダウンリストから Logstore を開く を選択して、ダイアログボックスで Logstore と動的変数を設定します。
Logstore はクエリの宛先です。時間範囲はクエリ期間を定義し、フィルター文は実行するクエリを定義します。
ダイアログボックスでは、[カスタム名] を指定し、
[nginx-dashboard]などのプロジェクトを選択し、オプションで [新しいウィンドウで開く] スイッチを切り替えます。
2.2 グラフとダッシュボードの保存
「チャートの編集」ページの右上隅で、OK をクリックします。
ダッシュボード編集ページの右上隅で、保存をクリックします。
2.3 インタラクションイベントの検証
チャートでステータス 200 のデータポイントをクリックし、次に Logstore を開く をクリックします。クエリ文が status: 200、クエリ時間が 一昨日 に設定され、ダッシュボードで選択した時間範囲と一致するログストアにリダイレクトされます。
例 2: ダッシュボードを開くイベント
この例では、「website_log」という名前の Logstore に収集された NGINX アクセスログを使用します。[RequestMethod] と [destination_drilldown] という 2 つのダッシュボードを作成し、それらの間にインタラクションを設定します。
[RequestMethod] ダッシュボードで、リクエストメソッドを分類するテーブルを追加し、[destination_drilldown] ダッシュボードを開くインタラクションイベントを設定します。
[destination_drilldown] ダッシュボードで、時間経過に伴う PV トレンドを示す折れ線グラフを追加します。
設定が完了すると、[RequestMethod] ダッシュボード上のリクエストメソッドをクリックして [destination_drilldown] ダッシュボードに移動し、対応する PV トレンドを表示できます。
[destination_drilldown] ダッシュボードで、時間経過に伴う PV トレンドを示す折れ線グラフを追加します。
クエリ文は次のとおりです。ここで、
${{method|PUT}}は変数です。詳細については、「ダッシュボードへのグラフの追加」をご参照ください。request_method: ${{method|PUT}} | SELECT __time__ - __time__ %60 AS time, COUNT(1) AS PV GROUP BY time ORDER BY time[RequestMethod] ダッシュボードで、リクエストメソッドを分類するテーブルを追加し、インタラクションイベントを設定します。
クエリ文は次のとおりです。詳細については、「ダッシュボードへのグラフの追加」をご参照ください。
データソースとして [website_log] を選択し、クエリ文
*|SELECT request_method, COUNT(1) AS count GROUP BY request_method ORDER BY count DESC LIMIT 10を入力し、[インタラクションイベント] タブでrequest_methodフィールドに [ダッシュボードを開く] アクションを追加します。設定例:
ダッシュボードの選択 を destination_drilldown に設定します。
Dynamic Variable Name を method に設定し、request_method 列を選択します。
インタラクションイベントタイプとして [ダッシュボードを開く] を選択し、[変数の継承] スイッチを有効にします。
結果を検証します。
RequestMethod ダッシュボードのテーブルで GET をクリックし、次に ダッシュボードを開く をクリックすると、destination_drilldown ダッシュボードにリダイレクトされます。
[destination_drilldown] ダッシュボードには、GET リクエストの時間経過に伴う PV トレンドが表示されます。
