変数は、構文 ${{変数名|デフォルト値}} または ${{変数名|デフォルト値|プレフィックス}} を使用して、クエリパラメーターのプレースホルダーを動的に調整します。これらの変数を設定することで、クエリ分析文を直接変更することなく、チャートまたはダッシュボード全体をフィルターできます。このトピックでは、ダッシュボード全体と個々のチャートをフィルターする方法について説明します。
ダッシュボードにフィルターを追加してデータをフィルターする
フィルタータイプ
各チャートには、クエリ文のクエリ分析結果が表示されます。フィルターを追加して、ダッシュボード上のすべてのチャートの検索条件を変更したり、プレースホルダー変数を置き換えたりして、ダッシュボード上のデータをフィルターします。Simple Log Service (SLS) は、次のタイプのフィルターを提供します。
フィルター (Filter) タイプ: このタイプのフィルターは、ログフィールドのキーと値のペアをフィルター条件として使用します。フィルター (Filter) タイプのフィルターは、指定されたクエリ文の結果から、指定された
key-valueペアを含む、または含まないログを検索します。たとえば、フィルター (Filter) タイプのフィルターを追加して、動的リスト項目を使用して各リクエストメソッドのページビュー (PV) 数をクエリします。変数置換 (Variable Replacement) タイプ: このタイプのフィルターは、変数をフィルター条件として使用します。変数置換 (Variable Replacement) タイプのフィルターを追加する前に、ダッシュボード上の関連チャートのクエリ文に変数を指定する必要があります。フィルターを追加すると、チャートのクエリ文内の変数が、その変数に指定した値に置き換えられます。たとえば、10 秒、60 秒、または 600 秒あたりの PV 数をクエリします。
メトリックフィルター (Metric Filter) タイプ: このタイプのフィルターは、メトリックのラベルと値をフィルター条件として使用します。メトリックを収集した後、メトリックフィルター (Metric Filter) タイプのフィルターを追加します。複数のフィルター条件を追加できます。フィルター条件は、論理 AND を使用して評価されます。
フィルター (Filter) タイプ
変数置換 (Variable Replacement) タイプのフィルターを追加する
メトリックフィルター (Metric Filter) タイプ
変数置換の設定を構成してチャート上のデータをフィルターする
チャートの [変数置換] の設定を構成します。設定を構成すると、SLS はチャートの右上隅にフィルターを追加します。フィルターを使用して、チャート上のデータをフィルターします。次のセクションでは、テーブル内のさまざまな時間範囲内の PV 数をクエリするために実行する必要がある操作について説明します。
1. 変数置換の設定を構成する
[チャートの編集] ページの左側で、変数を指定するクエリ時間範囲、Logstore、およびクエリ文を構成します。
次のクエリ文を実行して、さまざまな時間範囲内の PV 数をクエリします。
${{date|60}}は、変数名がdateで、変数のデフォルト値が 60 であることを指定します。* | select __time__ - __time__ % ${{date | 60}} as time, COUNT(*) as pv, avg(request_time) as duration, request_method GROUP BY time, request_method order by time limit 1000
変数置換の設定を構成する
[チャートの編集] ページの右側で、[チャートタイプ] セクションの [Table Pro] を選択し、[変数置換] セクションで を選択します。

[変数置換] ダイアログボックスで、[変数キー] パラメーターを data に、[表示名] パラメーターを time に、[変数値] パラメーターの下の [表示名] パラメーターを min と hour に、[置換値] パラメーターを 60 と 3600 に設定します。

[チャートの編集] ページの右上隅にある [OK] をクリックします。次に、ダッシュボードページの右上隅にある [保存] をクリックします。[ダッシュボードの保存] ダイアログボックスで、[OK] をクリックします。
2. チャート上のデータをフィルターする
設定を構成すると、チャートの左上隅にフィルターが表示されます。フィルターのドロップダウンリストから値を選択すると、SLS は選択した値に基づいてクエリと分析操作を実行します。たとえば、[hour] を選択すると、SLS は次のクエリ文を実行します。
(*)| select __time__ - __time__ % 3600 as time, COUNT(*) as pv, avg(request_time) as duration, request_method GROUP BY time, request_method order by time limit 1000 
変数と対話発生を併用する
チャートの [対話発生] を構成するときに、変数を指定することもできます。チャート上の値をクリックして対話発生をトリガーすると、システムは指定された変数をその値で自動的に置き換えます。これにより、データのクエリと分析が容易になります。詳細については、「構成例」をご参照ください。

変数の高度な使用 (プレフィックスの使用)
ダッシュボードまたはチャートをフィルターするときに、プレフィックス付きの ${{variable_name|default_value|prefix}} 構文を使用することもできます。
変数の値を設定しない場合、クエリはデフォルト値を使用します。
変数の値を設定した場合、クエリ文はプレフィックスと変数の値を組み合わせます。
ダッシュボードのフィルター: HTTP メソッド (http_method) のフィルタリング
変数の説明
変数フォーマット:
${{method_filter|http_method in ('GET','POST')|http_method =}}クエリ文:
(*)|select status, count(1) as err_count where ${{method_filter|request_method in ('GET','POST')|request_method =}} and status>=400 group by status変数が設定されていない場合: デフォルトでは、クエリは GET または POST リクエストのステータスコードが 400 以上のエラーの分布を分析します。クエリ文は次のとおりです。
(*)|select status, count(1) as err_count where request_method in ('GET','POST') and status>=400 group by status変数が
'DELETE'に設定されている場合: クエリはDELETEメソッドのエラーステータスを分析するように切り替わります。クエリ文は次のとおりです。(*)| select status, count(1) as err_count where request_method ='DELETE' and status>=400 group by status
手順
チャートの構成: 左側のパネルで、時間範囲を設定し、logstore を選択し、変数を含むクエリ文を入力します。右側のパネルで、[テーブル] を選択します。ページ上部の [適用] をクリックしてチャートをプレビューします。次に、[OK] をクリックしてチャートを保存します。

変数フィルターの構成: [フィルター] パネルで、次の図に示すように、
method_filter変数のドロップダウンリストに値を追加します。
ダッシュボードのフィルター: フィルターをクリックして
DELETEを選択します。ダッシュボードには、(*)| select status, count(1) as err_count where request_method ='DELETE' and status>=400 group by statusのクエリ文に基づいた統計が表示されます。
チャートのフィルター: リクエスト時間 (request_time) のしきい値フィルタリング
変数の説明
変数フォーマット:
${{slow_query|request_time>50|request_time>}}クエリ文:
(*)| select request_uri, avg(request_time) as avg_time where ${{slow_query|request_time>50|request_time>}} group by request_uri order by avg_time desc変数が設定されていない場合: デフォルトでは、クエリはリクエスト時間が 50 ms を超える API をフィルターし、平均リクエスト時間の降順でソートします。クエリ文は次のとおりです。
(*)| select request_uri, avg(request_time) as avg_time where request_time>50 group by request_uri order by avg_time desc変数が
1000 msに設定されている場合: クエリは、1,000 ms を超える低速 API を分析するように調整されます。クエリ文は次のとおりです:(*)| select request_uri, avg(request_time) as avg_time where request_time>1000 group by request_uri order by avg_time desc
手順
チャートの構成: [チャートの編集] ページの左側のパネルで、時間範囲を設定し、logstore を選択し、変数を含むクエリ文を入力します。

変数置換の構成: [チャートの編集] ページの右側のパネルで、[変数置換] をクリックします。[変数置換] ダイアログボックスで、次の図に示すように、
slow_query変数のドロップダウンリストに値を追加します。
チャートのフィルター: チャートの左上隅にあるフィルターボックスをクリックします。
1000 msを選択すると、チャートには(*)| select request_uri, avg(request_time) as avg_time where request_time>1000 group by request_uri order by avg_time descのクエリ文に基づいた統計が表示されます。






