同じクエリと分析文を頻繁に実行する場合は、クイック検索として保存できます。この機能を使用すると、これらの文をすばやく再実行できます。
前提条件
インデックスが作成されていること。詳細については、「インデックスの作成」をご参照ください。
クイック検索の作成
Simple Log Service コンソールにログインします。
[プロジェクト] セクションで、目的のプロジェクトをクリックします。

タブで、目的の Logstore をクリックします。

検索ボックスにクエリ文を入力し、[過去 15 分] をクリックしてクエリの時間範囲を指定します。
詳細については、「ステップ 1: インデックスの設定」をご参照ください。
-
ページの右上隅にある
アイコンをクリックします。これは、[検索と分析] ページの右上隅にあるツールバーの [クイック検索に追加] (星) アイコンです。
-
保存された検索の詳細 ペインで、クイック検索名 を設定します。
-
OK をクリックします。
クイック検索を作成した後、Logstore の [検索と分析] ページから実行できます。入力ボックスの前にある
アイコンをクリックし、目的のクイック検索の名前をクリックします。
クイック検索の変更
-
左側のナビゲーションウィンドウで、を選択します。
[クイック検索] リストで、目的のクイック検索をクリックします。
新しいクエリと分析文を入力し、
アイコンをクリックします。ページの右上隅にある
アイコンをクリックします。-
保存された検索の詳細 ペインで、クイック検索情報を変更し、OK をクリックします。
クイック検索 ID の取得
クイック検索を作成した後、そのクイック検索 ID を使用して、クイック検索ページをカスタム Web ページに埋め込むことができます。詳細については、「コンソール埋め込みパラメーターの設定」をご参照ください。
-
左側のナビゲーションウィンドウで、 を選択します。
[クイック検索] リストで、目的のクイック検索をクリックします。
-
ブラウザのアドレスバーの URL から、クイック検索 ID を取得します。
Log Service コンソールのアドレスバーの URL は、
https://sls.console.alibabacloud.com/lognext/project/{ProjectName}/savedsearch/{savedSearchID}?slsRegion={region}の形式です。/savedsearch/と?slsRegion=の間のフィールドがクイック検索 ID です。
URL パラメーターを使用した変数の受け渡し
Log Service コンソールを iframe に埋め込む場合や、外部システムからクイック検索ページにリンクする場合、URL パラメーターを追加して、クイック検索のクエリ文内の変数プレースホルダーを動的に置き換えることができます。
前提条件
-
クエリ文に
${variable_name}のような変数プレースホルダーを含むクイック検索があること。 -
クイック検索でトークン機能 (tokenQuery モード) が有効になっていること。
変数を定義するには、クエリ文内で動的に置き換えたい値に対して ${variable_name} 形式を使用します。例: * | WHERE status = ${testParam}。
クイック検索ページの標準 URL は次のとおりです。
/lognext/project/{ProjectName}/savedsearch/{savedSearchName}
この URL にクエリパラメーターを追加して、変数の値を渡したり、フィルター条件を追加したりできます。次の表に、利用可能なパラメーターを示します。
特殊文字を含むクエリパラメーターは URL エンコードしてください。
|
パラメーター |
タイプ |
必須 |
説明 |
|
|
JSON 配列文字列 |
いいえ |
クエリ文内の |
|
|
JSON 配列文字列 |
いいえ |
ダッシュボードのドリルダウンなど、アップストリームソースから変数の値を継承します。フォーマットは |
|
|
文字列 |
いいえ |
AND 演算子を使用して、クエリ文の先頭にフィルター条件を追加します。 |
token パラメーター
token パラメーターは JSON 配列で、各要素は {"key": "variable_name", "value": "replacement_value"} 形式のオブジェクトです。
[{"key": "variable_name1", "value": "value1"}, {"key": "variable_name2", "value": "value2"}]
例:クイック検索 my-search のクエリ文が * | WHERE status = ${testParam} であるとします。次の URL を使用してパラメーターを渡すと、クエリ文は * | WHERE status = '200' に置き換えられます。
/lognext/project/my-project/savedsearch/my-search?token=[{"key":"testParam","value":"200"}]
tokenInherit パラメーター
tokenInherit は token と同じフォーマットです。通常、ダッシュボードからのドリルダウン時に自動的に渡され、クイック検索がダッシュボードから選択された変数の値を継承できるようにします。token と tokenInherit の両方が存在する場合、token 内の変数がより高い優先度を持ちます。同じキーを持つ変数については、token の値が使用されます。
filters パラメーター
filters パラメーターは、AND 演算子を使用してクエリ文の先頭にフィルター条件を追加します。例:
/lognext/project/my-project/savedsearch/my-search?filters=level%3D"ERROR"
結果として得られるクエリ文は次のとおりです。
(level="ERROR") AND <Original query statement>
パラメーターの優先度と適用順序
複数のパラメーターが存在する場合、Log Service は次の順序で最終的なクエリ文を構築します。
-
システムは、クイック検索の元の文から開始します。
-
tokenまたはtokenInheritパラメーターが存在する場合、Log Service は文中の${variable_name}プレースホルダーを置き換えます。 -
filtersパラメーターが存在する場合、Log Service は AND 演算子を使用してフィルター条件を文の先頭に追加します。
完全な例
プロジェクト名が my-project、クイック検索名が error-query、クエリ文が * | WHERE status = ${statusCode} AND host = ${hostName} であるとします。パラメーター statusCode=500 と hostName=web-server-01 を渡し、フィルター条件 level="ERROR" を追加する必要があります。URL は次のように構築されます。
/lognext/project/my-project/savedsearch/error-query?token=[{"key":"statusCode","value":"500"},{"key":"hostName","value":"web-server-01"}]&filters=level%3D"ERROR"
結果として得られるクエリ文は次のとおりです。
(level="ERROR") AND * | WHERE status = '500' AND host = 'web-server-01'
iframe でのパラメーターの使用
iframe を使用してクイック検索ページをカスタム Web ページに埋め込む場合、iframe の src URL を構築する際にパラメーターを動的に連結できます。
<iframe
src="/lognext/project/my-project/savedsearch/error-query?token=[{"key":"statusCode","value":"500"}]"
width="100%"
height="800px"
frameborder="0"
/>
または、JavaScript で URL を動的に構築することもできます。
const params = encodeURIComponent(JSON.stringify([
{ key: 'statusCode', value: '500' },
{ key: 'hostName', value: 'web-server-01' }
]))
const iframeSrc = `/lognext/project/my-project/savedsearch/error-query?token=${params}`
document.getElementById('sls-iframe').src = iframeSrc
注意事項
-
tokenパラメーターの値は JSON 配列であり、URL 内で URL エンコード (encodeURIComponent) する必要があります。 -
変数名 (キー) は、クイック検索の文で定義されたトークン変数名と完全に一致する必要があります。名前は大文字と小文字を区別します。
-
クイック検索でトークン機能が有効になっていない場合 (
tokenQueryパラメーターが空の場合)、tokenおよびtokenInheritパラメーターは効果がなく、クエリ文は置き換えられません。 -
filtersは、クイック検索でトークン機能が有効になっているかどうかに関係なく機能します。
クイック検索の削除
左側のナビゲーションウィンドウで、 を選択します。クイック検索のリストで、目的のクイック検索にカーソルを合わせ、
アイコンをクリックしてから、削除 をクリックします。