Log Service掃描(Scan)功能支援免配置索引進行目標欄位的掃描,用於查詢和分析相關日誌。掃描功能包含掃描查詢和掃描分析,本文介紹掃描功能的相關操作和樣本。
前提條件
操作步驟
在Project列表地區,單擊目標Project。
在頁簽中,單擊目標Logstore。
在輸入框中,輸入掃描語句。
掃描語句格式為
查詢語句 | SPL語句或查詢語句 | set session mode=scan; 分析語句(標準SQL)。在頁面右上方設定掃描的時間範圍。
您可以設定相對時間、整點時間和自訂時間。 此處設定的掃描時間最小粒度為分鐘。
自動掃描
自動掃描和翻頁功能僅適用於掃描查詢操作。
執行一次掃描查詢操作後,如果提示本次未掃描得到結果,您可以單擊
表徵圖,使系統自動掃描查詢日誌,直到返回符合掃描條件的日誌或掃描次數達到20次。
在自動掃描對話方塊中,將展示自動掃描的進展。
每條掃描記錄包含掃描次序、當前掃描結果數、掃描進度百分比、處理時間戳記及掃描狀態(如掃描完成, 無結果)。
翻頁說明
當您執行一次翻頁操作時,Log Service會對應執行一次掃描查詢操作,用於保證掃描結果的連續性。
每次預設最多掃描100,000條日誌,在翻頁過程中,可能出現某頁中顯示的日誌數量少於每頁顯示對應的數量,但仍支援向後翻頁。即表示當前查詢的100,000條日誌中,滿足掃描條件的日誌數量少於每頁顯示對應的數量。
例如日誌總數為200,000條,每頁支援顯示20條,當您執行一次掃描操作後,只返回15條且向後翻頁功能可用,此時說明前100,000條日誌中只有15條日誌滿足掃描條件。您可以執行翻頁操作,Log Service會自動在後100,000條日誌中,執行第二次掃描操作,並返回合格日誌。
樣本
通過掃描功能查詢請求狀態為成功的請求對應的日誌。
掃描語句
* | where Status='Success'掃描結果
查詢結果以 Scan 模式返回,掃描資料量 56.74 KiB,掃描進度 4.19%。長條圖按時間展示日誌分布,原始日誌記錄包含 AlertStatus(值為 inactive)、Condition(值為
Count:__count__ > 0; Condition:inflow > 27)等警示欄位。
通過掃描功能查詢一個檔案在一個時間點對應的日誌。
掃描語句
* | where file = 'file:Android' | where time ='[2024-04-24T10:07:27.427014479]'掃描結果
掃描模式下共掃描資料量 375.46 KiB,返回 2 條匹配日誌,時間分別為 2024-04-24 10:38:13 和 2024-04-24 10:38:00,file 欄位值為
/var/log/nginx/test.log。
通過掃描功能計算各個請求狀態對應的請求數量。
掃描語句
說明掃描分析功能,需要在SQL前面加上
set session mode=scan;,表示使用掃描模式* | set session mode=scan; SELECT Status, count(*) AS PV GROUP BY Status掃描結果
掃描結果顯示共掃描 470 行、資料量 1.29 MiB,查詢結果表格中 Status 為 Success,PV 為 470。
API調用
您可以通過GetLogs介面使用掃描功能。更多資訊,請參見查詢日誌庫日誌。
如果您要使用掃描功能,需要在query參數的分析語句中添加set session mode=scan;,表示開啟掃描功能,例如* | set session mode=scan; select count(*) as pv。