すべてのプロダクト
Search
ドキュメントセンター

Simple Log Service:変数を使用してクエリ文のパラメーターを動的に変更する

最終更新日:Nov 11, 2024

各グラフは、1つ以上のクエリステートメントのクエリおよび分析結果を表示します。 クエリ文の変数は、クエリ文のパラメーターを動的に変更するために使用できるプレースホルダーです。 クエリステートメントで変数を指定すると、クエリステートメントを変更する必要なく、グラフまたはダッシュボード上のデータをフィルタリングできます。 変数インタラクションの発生を併用することもできます。 たとえば、Open Logstoreインタラクションの発生を設定するときに変数を追加できます。 次に、関連するダッシュボードの値をクリックして、指定したLogstoreを開くことができます。 Logstoreでは、クエリログへの変数置換後に取得されたクエリステートメントが実行されます。

シナリオ

変数は ${{ 変数名 | デフォルト値}} 形式です。 たとえば、methodという名前のフィールドにPUTPOSTGETDELETEなどの複数の値があり、デフォルト値がPUTの場合、そのフィールドを ${{ method | PUT}} 変数として指定できます。 変数のみを使用することも、インタラクションの発生と一緒に使用することもできます。

占位符变量

グラフまたはダッシュボードでのデータのフィルタリング

クエリステートメントのフィールドを変数として指定した後、クエリステートメントを変更することなく、クエリステートメントまたは関連するダッシュボードを使用するグラフのデータをフィルタリングできます。

インタラクションの発生とともに変数を使用

image

たとえば、リクエストステータスを表示するグラフのOpen Logstoreインタラクションの発生を設定するときに、変数を追加できます。 グラフの値200をクリックすると、指定したLogstoreに移動します。 HTTPステータス200が返されたリクエストのログを表示できます。

設定例

ダッシュボードでのデータのフィルタリング

変数置換タイプのフィルターをダッシュボードに追加し、ダッシュボードに、フィルターに指定された変数がクエリ文に含まれているグラフが含まれている場合、システムは自動的にグラフのクエリ文の変数をフィルターに選択した値に置換します。 変数設定は、クエリ文にダッシュボード上の変数が含まれるすべてのグラフに適用されます。

  • 変数置換タイプのフィルターの追加: NGINXアクセスログがSimple Log Serviceに収集された後、Simple Log Serviceでクエリステートメントを実行して、1分あたりのページビュー数 (PV) をクエリできます。 詳細については、「変数置換タイプのフィルターの追加」をご参照ください。 10秒、60秒、または600秒ごとにPVの数をクエリする場合は、クエリステートメントを複数回変更する必要があります。 操作を簡単にするために、変数置換タイプのフィルターを追加できます。

チャート上のデータのフィルタリング

[一般的な設定] タブで変数置換の設定を行うと、Simple Log Serviceは関連チャートの左上隅にフィルターを追加します。 フィルタードロップダウンリストから値を選択できます。 値を選択すると、Simple Log Serviceは、グラフのクエリステートメント内の変数を、選択した値が示す変数値に自動的に置き換え、クエリおよび分析操作を実行します。

  1. 次のクエリステートメントで、値60${{ date | 60}} 変数に変更します。

    * | select __time__ - __time__ % 60 as time, COUNT(*) as pv, avg(request_time) as duration, request_method GROUP BY time, request_method order by time limit 1000
  2. [一般設定] タブで変数置換の設定を行います。

    image

    変数キーを日付に設定し、変数キーの下の表示名を時間に設定します。 変数値の下の表示名をminおよびhourに設定し、置換値をminの場合は60、時間の場合は3600に設定します。

    变量替换

    設定を構成すると、グラフの左上隅にフィルターが表示されます。 フィルタードロップダウンリストから値を選択した場合、Simple Log Serviceは選択した値に基づいてクエリおよび分析操作を実行します。 たとえば、時間を選択した場合、Simple Log Serviceは次のクエリステートメントを実行します。

    * | SELECT __time__ - __time__ %3600 AS time, COUNT(*) AS pv, approx_distinct(remote_addr) AS uv GROUP BY time ORDER BY time LIMIT 10000

    变量替换

インタラクションの発生とともに変数を使用する

ダッシュボードの値をクリックしてインタラクションの発生をトリガーすると、システムは指定された変数を値に置き換え、変数の置き換え後に取得されたクエリ文を実行してダッシュボードのグラフを更新します。

ダッシュボードのインタラクションの発生を設定して、ドリルダウン分析を実行できます。 詳細については、「インタラクションの発生」をご参照ください。 次の例では、NGINXアクセスログが使用されています。

  • 例1: ダッシュボードの円グラフでHTTPステータスコード200に対応する部分をクリックすると、関連するLogstoreに移動し、HTTPステータスコード200が返されるリクエストのログを表示できます。 Logstoreのクエリ時間範囲は、ダッシュボードのクエリ時間範囲と同じです。

  • 例2: NGINXアクセスログを格納するwebsite_logという名前のLogstoreと、RequestMethodとdestination_drilldownという名前の2つのダッシュボードを使用してインタラクションの発生を設定した後、RequestMethodダッシュボードでリクエストメソッドをクリックしてdestination_drilldownダッシュボードにアクセスできます。 次に、destination_drilldownダッシュボードでPVのトレンドを表示できます。