查詢指定Project下某個Logstore中的日誌資料。
介面說明
介面說明
Log Service支援建立定時 SQL 任務。具體操作,請參見建立定時 SQL 任務。
請求文法中 Host 由 Project 名稱和Log Service Endpoint 構成,您需要在 Host 中指定 Project。
已建立並擷取 AccessKey。更多資訊,請參見存取金鑰。
阿里雲帳號 AccessKey 擁有所有 API 的存取權限,風險很高。強烈建議您建立並使用 RAM 使用者進行 API 訪問或日常營運。RAM 使用者需具備動作記錄服務資源的許可權。具體操作,請參見建立 RAM 使用者及授權。
-
已明確您查詢日誌所屬的 Project 名稱、所屬地區、Logstore 名稱等。如何查詢,請參見管理 Project和管理 Logstore。
-
Log Service查詢日誌時存在使用限制。請設計合理查詢與分析語句、設定合理查詢區間等。更多資訊,請參見查詢日誌使用限制和分析日誌使用限制。
-
查詢日誌前,已配置索引。具體操作,請參見建立索引。
-
當查詢涉及的日誌數量變化非常大時,Log Service API 無法預測需要調用多少次該介面來擷取完整結果。所以需要您查看每次請求返回結果中的 x-log-progress 狀態值,根據狀態值來確定是否需要重複調用該介面來擷取最終完整結果。每次重複調用該介面都會重新消耗相同數量的查詢 CU。
-
當日誌寫入到 Logstore 中,Log Service的查詢介面(GetHistograms 和 GetLogs)能夠查到該日誌的延時因寫入日誌類型不同而異。Log Service按日誌時間戳記把日誌分為如下兩類:
即時資料:日誌中時間點為伺服器目前時間點(-180 秒,900 秒]。例如,日誌時間為 UTC 2014-09-25 12:03:00,伺服器收到時為 UTC 2014-09-25 12:05:00,則該日誌被作為即時資料處理,一般出現在正常情境下。
歷史資料:日誌中時間點為伺服器目前時間點[-7*86400 秒,-180 秒)。例如,日誌時間為 UTC 2014-09-25 12:00:00,伺服器收到時為 UTC 2014-09-25 12:05:00,則該日誌被作為歷史資料處理,一般出現在補資料情境下。 其中,即時資料寫入至可查詢的延時為 3 秒左右。
Log Service將日誌時間(欄位名稱為__time__)和伺服器收到時間(欄位名稱為__tag__:receive_time)做差,若其差值位於(-180 秒,900 秒]範圍,則為即時資料,若其差位於[-7x86400 秒,-180 秒),則為歷史資料。
Log Service提供 Java 和 Python SDK 的 GetLogs 查詢使用樣本。更多資訊,請參見Java GetLogs 使用樣本和Python GetLogs 使用樣本。
鑒權資源
下表列出了 API 對應的授權資訊。您可以在 RAM 權限原則語句的 Action 元素中添加該資訊,用於為 RAM 使用者或 RAM 角色授予調用此 API 的許可權。
| 動作(Action) | 授權策略中的資源描述方式(Resource) |
log:GetLogStoreLogs | acs:log:{#regionId}:{#accountId}:project/{#ProjectName}/logstore/{#LogstoreName} |
調試
您可以在OpenAPI Explorer中直接運行該介面,免去您計算簽名的困擾。運行成功後,OpenAPI Explorer可以自動產生SDK程式碼範例。
調試
授權資訊
請求文法
GET /logstores/{logstore}?type=log HTTP/1.1
路徑參數
|
名稱 |
類型 |
必填 |
描述 |
樣本值 |
| logstore |
string |
是 |
查詢 Logstore 中的資料。 |
example-logstore |
請求參數
|
名稱 |
類型 |
必填 |
描述 |
樣本值 |
| project |
string |
是 |
Project 名稱。 |
ali-test-project |
| from |
integer |
是 |
查詢開始時間點。該時間是指寫入日誌資料時指定的日誌時間。
說明
如果您要確保不漏查資料,請將查詢時間對齊到分鐘層級。如果您在分析語句中設定了時間範圍,則查詢分析時以該時間範圍為準。 如果您需要精確到秒,需要在分析語句中指定時間時,使用from_unixtime 函數或to_unixtime 函數轉換下時間格式。例如:
|
1627268185 |
| to |
integer |
是 |
查詢結束時間點。該時間是指寫入日誌資料時指定的日誌時間。
說明
如果您要確保不漏查資料,請將查詢時間對齊到分鐘層級。如果您在分析語句中設定了時間範圍,則查詢分析時以該時間範圍為準。 如果您需要精確到秒,需要在分析語句中指定時間時,使用from_unixtime 函數或to_unixtime 函數轉換下時間格式。例如:
|
1627269085 |
| query |
string |
否 |
查詢語句或者分析語句。更多資訊,請參見查詢概述和分析概述。
在 query 參數的分析語句中加上 說明
當 query 參數中有分析語句(SQL 陳述式)時,該介面的 line 參數和 offset 參數無效,建議設定該介面的參數為 0,需通過 SQL 陳述式的 LIMIT 文法實現翻頁。更多資訊,請參見分頁顯示查詢分析結果。 |
status: 401 | SELECT remote_addr,COUNT(*) as pv GROUP by remote_addr ORDER by pv desc limit 5 |
| topic |
string |
否 |
日誌主題。預設值為空白字串。更多資訊,請參見日誌主題(Topic)。 |
topic |
| line |
integer |
否 |
僅當 query 參數為查詢語句時,該參數有效,表示請求返回的最大日誌條數。最小值為 0,最大值為 100,預設值為 100。分頁查詢請參見分頁顯示查詢分析結果。 |
100 |
| offset |
integer |
否 |
僅當 query 參數為查詢語句時,該參數有效,表示查詢開始行。預設值為 0。分頁查詢請參見分頁顯示查詢分析結果。 |
0 |
| reverse |
boolean |
否 |
用於指定返回結果是否按日誌時間戳記降序返回日誌,精確到分鐘層級。
重要
|
false |
| powerSql |
boolean |
否 |
是否使用 SQL 獨享版。更多資訊,請參見開啟 SQL 獨享版。
除通過 powerSql 參數配置 SQL 獨享版外,您還可以使用 query 參數。 |
false |
返回參數
|
名稱 |
類型 |
描述 |
樣本值 |
|
array |
日誌數組 Logs。其每個元素就是一條 Log。 |
||
|
object |
日誌數組 Logs,其每個元素就是一條 Log。 |
[{'remote_addr': '198.51.XXX.XXX', 'pv': '1', '__source__': '', '__time__': '1649902984'}, {'remote_addr': '198.51.XXX.XXX', 'pv': '1', '__source__': '', '__time__': '1649902984'}, {'remote_addr': '198.51.XXX.XXX', 'pv': '1', '__source__': '', '__time__': '1649902984'}, {'remote_addr': '198.51.XXX.XXX', 'pv': '1', '__source__': '', '__time__': '1649902984'}, {'remote_addr': '198.51.100.XXX', 'pv': '1', '__source__': '', '__time__': '1649902984'}] |
樣本
正常返回樣本
JSON格式
[
{
"test": "test",
"test2": 1
}
]
錯誤碼
訪問錯誤中心查看更多錯誤碼。
變更歷史
更多資訊,參考變更詳情。