使用HTTP API地址對(duì)接Grafana或自建應(yīng)用中接入Prometheus數(shù)據(jù)
可觀測(cè)監(jiān)控 Prometheus 版提供了HTTP API地址,以便您在自建的Grafana中接入Prometheus監(jiān)控?cái)?shù)據(jù),或在二次開發(fā)過程中通過Prometheus API獲取監(jiān)控?cái)?shù)據(jù)。
前提條件
已接入Prometheus,具體操作,請(qǐng)參見:
步驟一:獲取HTTP API地址
登錄ARMS控制臺(tái)。
在左側(cè)導(dǎo)航欄選擇 ,進(jìn)入可觀測(cè)監(jiān)控 Prometheus 版的實(shí)例列表頁(yè)面。
在頁(yè)面頂部菜單欄選擇Prometheus實(shí)例所在的地域,并在目標(biāo)集群右側(cè)的操作列單擊設(shè)置。
在設(shè)置頁(yè)簽上,根據(jù)需求復(fù)制公網(wǎng)或內(nèi)網(wǎng)的HTTP API地址。
說明如果是云服務(wù)類型的Prometheus實(shí)例,請(qǐng)根據(jù)接入云服務(wù)的產(chǎn)品類型選擇對(duì)應(yīng)的HTTP API地址。
可選:如果您需要提高Grafana數(shù)據(jù)讀取的安全性,可以單擊生成token,獲取Prometheus實(shí)例的鑒權(quán)Token。
重要生成Token后,在Grafana中添加數(shù)據(jù)源時(shí)必須配置Token,否則無法讀取Prometheus的監(jiān)控?cái)?shù)據(jù)。
步驟二:接入自建Grafana
配置Grafana數(shù)據(jù)源。
以管理員賬號(hào)登錄本地Grafana系統(tǒng)。
單擊頁(yè)面左上角的圖標(biāo)。
在左側(cè)導(dǎo)航欄中選擇
。說明僅管理員可以看到此菜單。
在Data Sources頁(yè)簽上單擊+ Add new data source。
在Add data source頁(yè)面上單擊Prometheus。
在Settings頁(yè)簽的Name字段中輸入自定義的名稱,在Prometheus server URL字段中粘貼上文步驟一:獲取HTTP API地址中獲得的HTTP API地址。
可選:單擊+ Add header,在Custom HTTP Headers區(qū)域單擊+Add header,設(shè)置Header為Authorization,設(shè)置Value為步驟一:獲取HTTP API地址中獲取的鑒權(quán)Token。
單擊頁(yè)簽底部的Save & Test。
驗(yàn)證結(jié)果。
登錄本地Grafana系統(tǒng)。
單擊頁(yè)面左上角的圖標(biāo),然后在左側(cè)導(dǎo)航欄中單擊Dashboards,
單擊Dashboards頁(yè)面右側(cè)的New,然后在下拉菜單中單擊New dashboard。
單擊+ Add visualization,
在Select data source頁(yè)面選擇您創(chuàng)建的數(shù)據(jù)源。
在Edit Panel頁(yè)面的Query頁(yè)簽下的A區(qū)域的Metrics字段和Label filters字段中輸入指標(biāo)名稱和值,單擊Run queries進(jìn)行查詢。
如果能顯示出相應(yīng)指標(biāo)的圖表,則說明操作成功。否則請(qǐng)檢查填寫的接口地址或Token是否正確,以及數(shù)據(jù)源是否有Prometheus的監(jiān)控?cái)?shù)據(jù)。
步驟三:獲取Prometheus監(jiān)控?cái)?shù)據(jù)
調(diào)用Prometheus監(jiān)控?cái)?shù)據(jù)的請(qǐng)求示例如下。更多使用HTTP API獲取Prometheus監(jiān)控?cái)?shù)據(jù)的操作,請(qǐng)參見開源版Prometheus HTTP API。
GET {HTTP API}/api/v1/query
Accept: application/json
Content-Type: application/json
Authorization: {Token}
{
"query":"arms_prometheus_target_interval_length_seconds_sum",
"time":"1635302655",
"timeout":"1000"
}
{HTTP API}
和{Token}
請(qǐng)?zhí)鎿Q為上文步驟一:獲取HTTP API地址中獲取的HTTP API和鑒權(quán)Token。
返回示例:
{
"status": "success",
"data": {
"resultType": "vector",
"result": [
{
"metric": {
"__name__": "arms_prometheus_target_interval_length_seconds_sum",
"instance": "localhost:9335",
"interval": "15s",
"job": "_arms-prom/kubelet/1"
},
"value": [
1635302655,
"146655.24420603***"
]
},
{
"metric": {
"__name__": "arms_prometheus_target_interval_length_seconds_sum",
"instance": "localhost:9335",
"interval": "30s",
"job": "_arms-prom/kubelet/1"
},
"value": [
1635302655,
"879810.747346***"
]
},
{
"metric": {
"__name__": "arms_prometheus_target_interval_length_seconds_sum",
"instance": "localhost:9335",
"interval": "20s",
"job": "_arms-prom/kubelet/1"
},
"value": [
1635302655,
"73320.13578499***"
]
}
]
}