GetLogs__日誌庫相關接口_API-Reference_日誌服務-阿裏雲
GetLogs接口查詢指定Project下某個Logstore中日誌數據。還可以通過指定相關參數僅查詢符合指定條件的日誌數據。
當日誌寫入到Logstore中,日誌服務的查詢接口(GetHistograms和GetLogs)能夠查到該日誌的延時因寫入日誌類型不同而異。日誌服務按日誌時間戳把日誌分為如下兩類:
- 實時數據:日誌中時間點為服務器當前時間點(-180秒,900秒],例如日誌時間為UTC 2014-09-25 12:03:00,服務器收到時UTC 2014-09-25 12:05:00,則該日誌被作為實時數據處理,一般出現在正常場景下。
- 曆史數據:日誌中時間點為服務器當前時間點[-7 x 86400秒, -180秒),例如日誌時間為UTC 2014-09-25 12:00:00,服務器收到時UTC 2014-09-25 12:05:00,則該日誌被作為曆史數據處理,一般出現在補數據場景下。
其中實時數據寫入至可查詢的延時為1分鍾。
請求語法
GET /logstores/<logstorename>?type=histogram&topic=<logtopic>&from=<starttime>&to=<endtime>&query=<querystring>&line=<linenum>&offset=<startindex>&reverse=<ture|false> HTTP/1.1
Authorization: <AuthorizationString>
Date: <GMT Date>
Host: <Project Endpoint>
x-log-bodyrawsize: 0
x-log-apiversion: 0.6.0
x-log-signaturemethod: hmac-sha1
請求參數
名稱 | 類型 | 必選 | 描述 |
---|---|---|---|
logstorename | 字符串 | 是 | 需要查詢日誌的Logstore名稱。 |
type | 字符串 | 是 | 查詢Logstore數據的類型,在GetLogs接口中該參數必須為"log"。 |
from | 整型 | 是 | 查詢開始時間點(精度為秒,從1970-1-1 00:00:00 UTC計算起的秒數)。 |
to | 整型 | 是 | 查詢結束時間點(精度為秒,從1970-1-1 00:00:00 UTC計算起的秒數)。 |
topic | 字符串 | 否 | 查詢日誌主題。 |
query | 字符串 | 否 | 查詢表達式。關於查詢表達式的詳細語法請參考查詢語法。 |
line | 整型 | 否 | 請求返回的最大日誌條數。取值範圍0~100,默認值為100。 |
offset | 整型 | 否 | 請求返回日誌的起始點。取值範圍0或正整數,默認值0。 |
reverse | 布爾型 | 否 | 是否按日誌時間戳逆序返回日誌。true表示逆序,false表示順序,默認值為false。 |
請求頭
GetLogs接口無特有請求頭,關於日誌服務API的公共請求頭請參考公共請求頭。
響應頭
GetLogs接口無特有響應頭,關於日誌服務API的公共響應頭請參考公共響應頭。
響應元素
GetLogs請求成功,其響應Body會包括查詢命中的日誌數據。當需要查詢的日誌數據量非常大的時候,該接口的響應結果可能並不完整,所以響應元素中有專門成員表示請求返回結果是否完整。具體響應元素格式如下:
名稱 | 類型 | 描述 |
---|---|---|
progress | 字符串 | 查詢結果的狀態。可以有Incomplete和Complete兩個選值,表示本次是否完整。 |
count | 整型 | 當前查詢結果的日誌總數 |
logs | 數組 | 當前查詢結果的日誌原始數據,具體結構見下麵描述 |
上表中的logs數組中的每個元素結構如下:
名稱 | 類型 | 描述 |
---|---|---|
__time__ | 整型 | 日誌的時間戳(精度為秒,從1970-1-1 00:00:00 UTC計算起的秒數)。 |
__source__ | 字符串 | 日誌的來源,有寫入日誌時指定。 |
[content] | Key-Value對 | 日誌原始內容,以Key-value對的形式組織。 |
細節描述
- 該接口中由請求參數from和to定義的時間區間遵循“左閉右開”原則,即該時間區間包括區間開始時間點,但不包括區間結束時間點。如果from和to的值相同,則為無效區間,函數直接返回錯誤。
- 如上所述,該接口一次調用必須要在限定時間內返回結果,每次查詢隻能掃描指定條數的日誌量。如果一次請求需要處理的數據量非常大的時候,該請求會返回不完整的結果(並在返回結果中的progress成員標示是否完整)。如此同時,服務端會緩存15分鍾內的查詢結果。當查詢請求的結果有部分被緩存命中,則服務端會在這次請求中繼續掃描未被緩存命中的日誌數據。為了減少用戶合並多次查詢結果的工作量,服務端會把緩存命中的查詢結果與本次查詢新命中的結果合並返回給用戶。因此日誌服務可以讓用戶通過以相同參數反複調用該接口來獲取最終完整結果。因為用戶查詢涉及的日誌數據量變化非常大,日誌服務API無法預測需要調用多少次該接口而獲取完整結果。所以需要用戶通過檢查每次請求的返回結果中progress成員狀態值來確定是否需要繼續。需要注意的是,每次重複調用該接口都會重新消耗相同數量的查詢CU。
特有錯誤碼
GetLogs接口除了可能返回日誌服務API的通用錯誤碼,還可能返回如下特有錯誤碼:
HTTP狀態碼(Status Code) | 錯誤碼(Error Code) | 錯誤消息(Error Message) | 描述(Description) |
---|---|---|---|
404 | LogStoreNotExist | logstore {Name} not exist. | 日誌庫(Logstore)不存在。 |
400 | InvalidTimeRange | request time range is invalid. | 請求的時間區間無效。 |
400 | InvalidQueryString | query string is invalided | 請求的查詢字符串無效。 |
400 | InvalidOffset | offset is invalided | 請求的offset參數無效。 |
400 | InvalidLine | line is invalided | 請求的line參數無效。 |
400 | InvalidReverse | Reverse value is invalid | Reverse參數的值無效。 |
上表錯誤消息中{name}表示該部分會被具體的Logstore Name來替換。
示例
以杭州Region內名為big-game的Project為例,查詢該Project內名為app_log的Logstore中,主題為groupA的日誌數據。查詢區間為2014-09-01 00:00:00到2014-09-01 22:00:00,查詢關鍵字是"error",且從時間區間頭開始查詢,最多返回20條日誌數據。
請求示例:
GET /logstores/app_log?type=log&topic=groupA&from=1409529600&to=1409608800&query=error&line=20&offset=0 HTTP/1.1
Authorization: <AuthorizationString>
Date: Wed, 3 Sept. 2014 08:33:46 GMT
Host: big-game.cn-hangzhou.log.aliyuncs.com
x-log-bodyrawsize: 0
x-log-apiversion: 0.4.0
x-log-signaturemethod: hmac-sha1
響應示例:
HTTP/1.1 200 OK
Content-MD5: 36F9F7F0339BEAF571581AF1B0AAAFB5
Content-Type: application/json
Content-Length: 269
Date: Wed, 3 Sept. 2014 08:33:47 GMT
x-log-requestid: efag01234-12341-15432f
{
"progress": "Complete",
"count": 2,
"logs": [
{
"__time__": 1409529660,
"__source__": "10.237.0.17",
"Key1": "error",
"Key2": "Value2"
},
{
"__time__": 1409529680,
"__source__": "10.237.0.18",
"Key3": "error",
"Key4": "Value4"
}
]
}
在這個響應示例中,"progress"成員狀態為“Complete”,表明整個日誌查詢已經完成,返回結果為完整結果。在這次請求中共查詢到2條符合條件的日誌,且日誌數據在“logs”成員中。如果響應結果中的“progress”成員狀態為“Incomplete”,則需要重複相同請求以獲得完整結果。
最後更新:2016-11-23 16:04:02
上一篇:
RetryShipperTask__日誌庫相關接口_API-Reference_日誌服務-阿裏雲
下一篇:
GetHistograms__日誌庫相關接口_API-Reference_日誌服務-阿裏雲
在華韓國創新中心,舉辦第四屆 K-Demo Day China@阿裏雲總決賽
購買流程__購買指導_消息服務-阿裏雲
SSH 登錄時出現如下錯誤:Disconnected:No supported authentication methods available__遠程登錄 (SSH)_Linux操作運維問題_雲服務器 ECS-阿裏雲
RAM中可授權的專有網絡資源類型__借助RAM實現子賬號對主賬號的VPC資源訪問_API參考_專有網絡 VPC-阿裏雲
解析記錄數量限製__附錄_API文檔_雲解析-阿裏雲
使用方法__開發者工具_容器服務-阿裏雲
創建函數__數據庫開發_用戶指南(RDBMS)_數據管理-阿裏雲
服務保障__產品簡介_雲數據庫 RDS 版-阿裏雲
PageRank__示例程序_圖模型_大數據計算服務-阿裏雲
PutBucketACL__關於Bucket的操作_API 參考_對象存儲 OSS-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲