將Prometheus數(shù)據(jù)投遞至大數(shù)據(jù)計(jì)算服務(wù)MaxCompute
當(dāng)您需要將某個(gè)Prometheus實(shí)例的數(shù)據(jù)導(dǎo)出,進(jìn)行自定義業(yè)務(wù)處理時(shí),可以使用Prometheus數(shù)據(jù)投遞功能,將Prometheus實(shí)例數(shù)據(jù)投遞至大數(shù)據(jù)計(jì)算服務(wù)MaxCompute處理。MaxCompute能幫助您結(jié)合其他的數(shù)據(jù)源執(zhí)行大數(shù)據(jù)計(jì)算服務(wù),加工后用于報(bào)表分析等。
前提條件
已接入Prometheus實(shí)例,具體操作,請(qǐng)參見(jiàn):
已部署投遞目標(biāo)云消息隊(duì)列Kafka版,并創(chuàng)建Topic等資源。具體操作,請(qǐng)參見(jiàn)概述。
已開(kāi)通函數(shù)計(jì)算 FC(Function Compute)服務(wù)。具體操作,請(qǐng)參見(jiàn)開(kāi)通函數(shù)計(jì)算服務(wù)。
已開(kāi)通事件總線EventBridge服務(wù)。具體操作,請(qǐng)參見(jiàn)開(kāi)通事件總線EventBridge并授權(quán)。
注意事項(xiàng)
選擇專有網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)投遞時(shí),如果Prometheus實(shí)例所在VPC與目標(biāo)VPC不在同一個(gè),您需要保證目標(biāo)VPC內(nèi)的vSwitch的IP已加入Prometheus實(shí)例的白名單中,否則會(huì)導(dǎo)致網(wǎng)絡(luò)不通。vSwitch的網(wǎng)段信息可以在專有網(wǎng)絡(luò)控制臺(tái)的交換機(jī)詳情頁(yè)面獲取。
支持?jǐn)?shù)據(jù)投遞的數(shù)據(jù)源列表。
實(shí)例類型
說(shuō)明
Prometheus for 云服務(wù)
除cloud-product-prometheus名稱開(kāi)頭的免費(fèi)實(shí)例
Prometheus for 容器服務(wù)
無(wú)
Prometheus for 應(yīng)用監(jiān)控
無(wú)
Prometheus for Flink Serverless
無(wú)
Prometheus for Kubernetes
無(wú)
通用
除通過(guò)OpenTelemetry地址上報(bào)上來(lái)的數(shù)據(jù)
費(fèi)用說(shuō)明
數(shù)據(jù)投遞至MaxCompute時(shí)將創(chuàng)建函數(shù)計(jì)算 FC(Function Compute)服務(wù),服務(wù)名前綴為{task_name}_SINK_FC_TO_MAXCOMPUTE
,由函數(shù)計(jì)算 FC(Function Compute)將數(shù)據(jù)寫入MaxCompute中,因此將收取函數(shù)計(jì)算服務(wù)費(fèi)用。數(shù)據(jù)會(huì)攢批后發(fā)送給函數(shù)計(jì)算 FC(Function Compute),因此調(diào)用函數(shù)計(jì)算 FC(Function Compute)次數(shù)越少,產(chǎn)生的相關(guān)費(fèi)用越少。您可以登錄函數(shù)計(jì)算控制臺(tái)查看當(dāng)前FC資源狀態(tài)。
步驟一:準(zhǔn)備MaxCompute資源
根據(jù)MaxCompute文檔,任意選擇一種方式連接至MaxCompute項(xiàng)目。具體操作,請(qǐng)參見(jiàn)選擇連接工具。
確定表結(jié)構(gòu):設(shè)置表結(jié)構(gòu)的列名與Prometheus數(shù)據(jù)標(biāo)簽名保持一致。若表的列名找不到對(duì)應(yīng)的標(biāo)簽值,那么該列會(huì)被寫入NULL值。當(dāng)存在多種指標(biāo)數(shù)據(jù)時(shí),表列名應(yīng)該是這些指標(biāo)標(biāo)簽名的并集。
假設(shè)您導(dǎo)出的指標(biāo)為以下的兩種:
{
"__name__": "metric1",
"cluster_id": "***",
"host": "***",
"node_id": "***",
"job": "***",
"value": 347.51300048828125,
"timestamp": 1703211584056
}
{
"__name__": "metric2",
"cluster_id": "***",
"job": "***",
"instance": "****",
"cpu": "1",
"value": 1.0,
"timestamp": 1703211584056
}
您需要在MaxCompute中根據(jù)下面的例子創(chuàng)建SQL表。具體操作,請(qǐng)參見(jiàn)使用SQL分析。
CREATE TABLE metric (
__name__ VARCHAR(50) NOT NULL,
cluster_id VARCHAR(50),
host VARCHAR(50),
node_id VARCHAR(50),
job VARCHAR(50),
instance VARCHAR(50),
cpu VARCHAR(50),
value DOUBLE,
timestamp BIGINT
);
至少存在以下字段:__name__
、value
和timestamp
,它們是Prometheus數(shù)據(jù)的基本標(biāo)簽。建議您根據(jù)業(yè)務(wù)需要構(gòu)造表結(jié)構(gòu),并設(shè)置足量字段作為標(biāo)簽映射。若您丟失關(guān)鍵標(biāo)簽,表將收到大量重復(fù)的數(shù)據(jù)。
步驟二:創(chuàng)建投遞任務(wù)
登錄ARMS控制臺(tái)。
在左側(cè)導(dǎo)航欄選擇
,進(jìn)入可觀測(cè)監(jiān)控Prometheus版的數(shù)據(jù)投遞頁(yè)面。在數(shù)據(jù)投遞頁(yè)面,單擊頂部菜單欄選擇目標(biāo)地域,然后單擊新建任務(wù)。
在對(duì)話框中輸入任務(wù)名稱和任務(wù)描述后,單擊確定。
在任務(wù)編輯頁(yè)面,配置數(shù)據(jù)源和投遞目標(biāo)。
單擊+ 添加數(shù)據(jù)源,配置以下參數(shù),然后單擊確定。
配置項(xiàng)
說(shuō)明
示例
Prometheus實(shí)例
被投遞的Prometheus數(shù)據(jù)源。
c78cb8273c02*****
數(shù)據(jù)過(guò)濾
設(shè)置需要過(guò)濾的指標(biāo)標(biāo)簽,支持正則表達(dá)式。多個(gè)條件需要換行,條件需要同時(shí)滿足,才會(huì)投遞。
__name__=AliyunEcs_CPUUtilization|AliyunEcs_memory_usedutilization regionId=cn-hangzhou id=i-2ze0mxp.*
單擊添加目標(biāo),選擇目標(biāo)類型為云原生大數(shù)據(jù)計(jì)算服務(wù) MaxCompute,請(qǐng)按照表單所需填寫其余信息,然后單擊確定。
配置完成后,在任務(wù)編輯頁(yè)面,單擊確定,然后單擊保存創(chuàng)建投遞任務(wù)。
步驟三:驗(yàn)證數(shù)據(jù)被投遞至MaxCompute
在SQL代碼編輯框,輸入以下SQL語(yǔ)句查詢metric表中的數(shù)據(jù),單擊運(yùn)行,在結(jié)果頁(yè)簽查看執(zhí)行結(jié)果。
select * from metric limit 20;