當您需要頻繁查看某一查詢和分析語句的結果時,可以將該查詢和分析語句另存新檔快速查詢。快速查詢是Log Service提供的用於儲存查詢和分析操作的功能。您可通過儲存的歷史操作,快速執行查詢和分析操作。
前提條件
已建立索引。具體操作,請參見建立索引。
建立快速查詢
在Project列表地區,單擊目標Project。

在頁簽中,單擊目標Logstore。

輸入查詢和分析語句,然後單擊最近15分鐘,設定查詢和分析的時間範圍。
更多資訊,請參見步驟一:配置索引。
單擊頁面右上方的
表徵圖。
在快速查詢詳情面板中,配置快速查詢名稱。
單擊確定。
建立快速查詢後,您在LogStore查詢和分析頁面,單擊輸入框前面的
表徵圖,然後單擊目標快速查詢名稱即可使用。
修改快速查詢
在左側導覽列中,選擇。
在快速查詢列表中,單擊目標快速查詢。
輸入新的查詢和分析語句,然後單擊
。單擊頁面右上方的
表徵圖。在快速查詢詳情面板中,修改快速查詢相關資訊,單擊確定。
擷取快速查詢ID
建立快速查詢後,您可以使用快速查詢ID將快速查詢頁面嵌入到自建Web頁面。具體操作,請參見配置控制台內嵌參數。
在左側導覽列中,選擇。
在快速查詢列表中,單擊目標快速查詢。
在URL中擷取快速查詢ID。

通過 URL 參數動態傳遞快速查詢變數
當您將Log Service控制台通過 iframe 嵌入到自建 Web 頁面,或需要從外部系統跳轉到快速查詢頁面時,可以通過在 URL 中附加參數,動態替換快速查詢語句中的變數預留位置,實現查詢內容的動態注入。
前提條件
已建立快速查詢,並在查詢語句中使用了 Token 變數(即
${變數名}格式的預留位置)。快速查詢已開啟 Token 功能(tokenQuery 模式)。
Token 變數的配置方式:在快速查詢語句中,將需要動態替換的值寫成 ${變數名} 形式,例如 * | WHERE status = ${testParam}。
快速查詢頁面的標準 URL 格式如下:
/lognext/project/{ProjectName}/savedsearch/{SavedSearchName}在此 URL 後附加查詢參數,即可實現動態變數注入和過濾條件疊加。URL 參數說明如下:
當查詢參數中包含特殊字元時,請進行URL編碼後傳入。
參數名 | 類型 | 是否必須 | 說明 |
| JSON 數組字串 | 否 | 直接傳入變數值,用於替換查詢語句中的 |
| JSON 數組字串 | 否 | 從上遊(如儀錶盤 drilldown)繼承的變數值,格式與 |
| 字串 | 否 | 直接追加的過濾條件,會以 AND 方式追加到查詢語句最前面 |
token 參數
token 是一個 JSON 數組,每個元素為 { "key": "變數名", "value": "替換值" } 的對象。格式如下:
[{"key": "變數名1", "value": "值1"}, {"key": "變數名2", "value": "值2"}]樣本:假設快速查詢 my-search 的查詢語句為 * | WHERE status = ${testParam},通過以下 URL 傳遞參數後,查詢語句將被替換為 * | WHERE status = '200':
/lognext/project/my-project/savedsearch/my-search?token=[{"key":"testParam","value":"200"}]
tokenInherit 參數
tokenInherit 與 token 格式相同,通常由儀錶盤的 drilldown 跳轉自動附帶,用於將儀錶盤中選中的變數值繼承到快速查詢中。當 token 和 tokenInherit 同時存在時,token 中的變數優先順序更高,相同 key 以 token 為準。
filters 參數
filters 是一個過濾條件字串,會直接以 AND 方式追加到查詢語句最前面。樣本:
/lognext/project/my-project/savedsearch/my-search?filters=level%3D"ERROR"最終執行的查詢語句為:
(level="ERROR") AND <原始查詢語句>參數優先順序與疊加順序
當多個參數同時存在時,查詢語句的構建順序如下:
以快速查詢的原始語句為基礎;
若存在
token或tokenInherit,對語句中的${變數名}預留位置進行替換;若存在
filters,將該過濾條件以 AND 追加到最前面。
完整樣本
Project 名稱為 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 中動態構造:
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)。變數名(key)須與快速查詢語句中定義的 Token 變數名完全一致(區分大小寫)。
若快速查詢未開啟 Token 功能(
tokenQuery為空白),token和tokenInherit參數將不生效,查詢語句不會被替換。filters無論快速查詢是否開啟 Token 功能,均可正常使用。
刪除快速查詢
在左側導覽列中,選擇。在快速查詢列表中,滑鼠懸浮在目標快速查詢上,單擊
,然後單擊刪除。
