時序型數據集(StoreView) 支持時序庫(Metricstore)聯合查詢。本文介紹如何利用PromQL語句在StoreView中進行數據查詢、StoreView如何對接Grafana以及如何使用API接口獲取StoreView信息。
使用前提
已創建Project和MetricStore。具體操作,請參見管理Project和管理MetricStore。
關聯時序庫(Metricstore)創建時序數據集(StoreView)
1. 創建時序型數據集
登錄日志服務控制臺,在Project列表,單擊打開目標Project。
在左側導航欄選擇
,進入數據集頁面后單擊創建時序型數據集。在創建數據集面板,參考下圖,輸入Storeview名稱,并添加關聯的Metricstore,然后單擊確定。
重要時序數據集(Storeview) 支持多Store聯合查詢分析能力,為保證查詢分析結果正確性,有以下兩個建議:
不建議將存在重復時間線的Metricstore關聯在同一個StoreView中。
不建議將多個數據量龐大(例如,時序庫的Shard已大于64)的Metricstore關聯在一起執行計算。
2. 使用PromQL語句查詢數據集
時序型數據集(Storeview)中關聯多個Metricstore后,查詢分析結果將展示跨多個時序庫的計算處理結果。
時序型數據集(Storeview)不支持使用SQL和預定義處理。支持直接在查詢框中輸入PromQL語句,后端計算引擎會自行完成跨多個時序庫的計算處理。
時序型數據集(StoreView)對接Grafana
安裝Grafana后登錄Grafana。在左側導航欄,選擇 。
在Data Sources頁簽,單擊Add data source。然后選擇Prometheus,單擊Select。
在Settings頁簽中,請參考如下說明配置數據源。
參數
說明
Name
請您自定義一個數據源的名稱,例如Prometheus-1。
HTTP
URL:日志服務StoreView的URL,格式為https://{project}.{sls-endpoint}/prometheus/{project}/{storeview}。其中{sls-endpoint}為Project所在地域的Endpoint,{project}和{storeview}為您已創建的日志服務的Project和StoreView,請根據實際值替換。例如:https://sls-prometheus-test.cn-hangzhou.log.aliyuncs.com/prometheus/sls-prometheus-test/test。
說明為保證傳輸安全性,請務必設置為
https
。Whitelisted Cookies:添加訪問白名單,可選。
Auth
打開Basic auth開關。
Basic Auth Details
User為阿里云賬號AccessKeyID。
Password為阿里云賬號AccessKeySecret。
建議您使用僅具備指定Project只讀權限的RAM用戶賬號,詳情請參見指定Project只讀授權策略。
單擊Save & Test。
StoreView HTTP API接口
概述
日志服務提供多個用于查詢時序型數據集(StoreView)的API,這些API兼容Prometheus開源協議。Prometheus所提供的接口都在/api/v1目錄下,StoreView相關的API同樣遵循此規則,其完整的URL為https://{project}.{sls-endpoint}/prometheus/{project}/{storeview}/api/v1/。
變量 | 是否必填 | 說明 |
{project} | 是 | 日志服務Project名稱,更多信息,請參見管理Project。 |
{sls-endpoint} | 是 | Project所在地域的Endpoint。 |
{storeview} | 是 | 創建的StoreView。 |
時序指標查詢API
Instant Queries API
Instant Queries API用于查詢指定時間點的指標數據。
GET https://{project}.{sls-endpoint}/prometheus/{project}/{storeview}/api/v1/query
POST https://{project}.{sls-endpoint}/prometheus/{project}/{storeview}/api/v1/query
參數說明如下表所示。
變量 | 是否必填 | 說明 |
query | 是 | 具體的PromQL語句。更多信息,請參見PromQL語法。 |
time | 否 | 執行查詢的時間點,Unix時間戳格式,精確到秒。默認為最新時間。 |
timeout | 否 | 執行查詢的超時時間,單位:秒。 同時支持1s、2m、3h、4d等用法。更多信息,請參見Time Durations。 |
lookback-delta | 否 | 可用于自定義設置query.lookback-delta這項flag參數值,僅對當次Query有效,該值需遵循Time Durations用法,更多信息,請參見Time Durations。此參數表示PromQL計算中尋點過程的最大回溯區間,SLS時序庫中該值默認為"3m"。 |
Range Queries API
Range Queries API用于查詢指定時間范圍內多個時間點的指標數據。
GET https://{project}.{sls-endpoint}/prometheus/{project}/{storeview}/api/v1/query_range
POST https://{project}.{sls-endpoint}/prometheus/{project}/{storeview}/api/v1/query_range
參數說明如下表所示。
變量 | 是否必填 | 說明 |
query | 是 | 具體的PromQL語句。更多信息,請參見PromQL語法。 |
start | 否 | 查詢的起始時間點,Unix時間戳格式,精確到秒。 |
end | 否 | 查詢的截止時間點,Unix時間戳格式,精確到秒。 |
step | 否 | 執行查詢的間隔時間,單位:秒。 同時支持1s、2m、3h、4d等用法。更多信息,請參見Time Durations。 |
timeout | 否 | 執行查詢的超時時間,單位:秒。 同時支持1s、2m、3h、4d等用法。更多信息,請參見Time Durations。 |
lookback-delta | 否 | 可用于自定義設置query.lookback-delta這項flag參數值,僅對當次Query有效,該值需遵循Time Durations用法,更多信息,請參見Time Durations。此參數表示PromQL計算中尋點過程的最大回溯區間,SLS時序庫中該值默認為"3m"。 |
配置示例,請參考時序指標查詢API。
元數據查詢API
Query Series API
Query Series API用于查詢指定時間段內特定條件下的所有StoreView以及該StoreView下所有的Label數值對。
GET https://{project}.{sls-endpoint}/prometheus/{project}/{storeview}/api/v1/series
POST https://{project}.{sls-endpoint}/prometheus/{project}/{storeview}/api/v1/series
參數說明如下表所示。
變量 | 是否必填 | 說明 |
match[] | 是 | 篩選條件,例如up{instance="demo.*"}。 您可以設置一個或多個值。 |
start | 否 | 查詢的起始時間點,Unix時間戳格式,精確到秒。 默認為當前時間的5分鐘之前。 |
end | 否 | 查詢的截止時間點,Unix時間戳格式,精確到秒。 默認為當前時間。 重要 如果start和end參數都是自定義的,該API也只支持查詢end時間點之前5分鐘的數據,即查詢 (end - 5 minute, end) 區間內的數據。 |
Query Label Names API
查詢指定時間段內特定條件下所有的LabelName。
GET https://{project}.{sls-endpoint}/prometheus/{project}/{storeview}/api/v1/labels
POST https://{project}.{sls-endpoint}/prometheus/{project}/{storeview}/api/v1/labels
參數說明如下表所示。
變量 | 是否必填 | 說明 |
match[] | 是 | 篩選條件,例如up{instance="demo.*"}。 您可以設置零個、一個或多個值。 |
start | 否 | 查詢區間的起始時間點,Unix時間戳格式,精確到秒。 默認為當前時間的5分鐘之前。 |
end | 否 | 查詢區間的截止時間點,Unix時間戳格式,精確到秒。 默認為當前時間。 重要 如果start和end參數都是自定義的,該API也只支持查詢end時間點之前5分鐘的數據,即查詢 (end - 5 minute, end) 區間內的數據。 |
Query Label Values API
Query Label Values API用于查詢指定時間段內特定條件以及特定LabelName下所有的LabelValue信息。
該接口URL中的<label_name>需替換為具體的LabelName。
GET https://{project}.{sls-endpoint}/prometheus/{project}/{storeview}/api/v1/label/<label_name>/values
參數說明如下表所示。
變量 | 是否必填 | 說明 |
match[] | 是 | 篩選條件,例如up{instance="demo.*"}。 您可以設置一個或多個值。 |
start | 否 | 查詢的起始時間點,Unix時間戳格式,精確到秒。 默認為當前時間的5分鐘之前。 |
end | 否 | 查詢區間的截止時間點,Unix時間戳格式,精確到秒。 默認為當前時間。 重要 如果start和end參數都是自定義的,該API也只支持查詢end時間點之前5分鐘的數據,即查詢 (end - 5 minute, end) 區間內的數據。 |
配置示例,請參考元數據查詢API。
相關文檔
時序數據的查詢和分析語法,請參見時序數據查詢和分析簡介。
日志服務提供多個用于查詢時序指標或寫入指標數據到MetricStore的API,詳細信息請參見MetricStore HTTP API詳情。