將Logstore中的日志字段轉(zhuǎn)換MetricStore中的度量指標(biāo)
本文中含有需要您注意的重要提示信息,忽略該信息可能對(duì)您的業(yè)務(wù)造成影響,請(qǐng)務(wù)必仔細(xì)閱讀。
如果您需要監(jiān)控日志庫(Logstore)的日志中某字段的指標(biāo)變化趨勢(shì),可以使用數(shù)據(jù)加工函數(shù)e_to_metric將日志字段轉(zhuǎn)換為時(shí)序庫(MetricStore)中的度量指標(biāo)(Metric),然后通過時(shí)序庫查看該指標(biāo)的變化趨勢(shì)。本文以Nginx訪問日志為例介紹操作步驟。
背景信息
應(yīng)用程序的運(yùn)行數(shù)據(jù),主要有Log、Trace和Metric這三大類數(shù)據(jù)。Log是離散的事件,Trace可以認(rèn)為是帶請(qǐng)求追蹤的事件,Metric是帶統(tǒng)計(jì)量的事件。Log、Trace、Metric本質(zhì)上都是事件,滿足事件存儲(chǔ)的系統(tǒng)都可以用來存儲(chǔ)這三類數(shù)據(jù)。日志服務(wù)提供兩種存儲(chǔ):
Logstore
日志服務(wù)中Log的采集、存儲(chǔ)和查詢單元。更多信息,請(qǐng)參見日志庫(Logstore)。
MetricStore
日志服務(wù)中Metric的采集、存儲(chǔ)和查詢單元。日志服務(wù)MetricStore針對(duì)Metric做了大量優(yōu)化,提供PromQL查詢能力,支持Prometheus協(xié)議。更多信息,請(qǐng)參見時(shí)序庫(MetricStore)。
很多應(yīng)用的Log數(shù)據(jù)往往比Metric全面,Metric可以認(rèn)為是特定格式的Log,因此在日志服務(wù)中可以將Log轉(zhuǎn)換為Metric。常見的Log轉(zhuǎn)Metric的方法如下:
使用日志服務(wù)的定時(shí)SQL功能聚合日志產(chǎn)生指標(biāo)。更多信息,請(qǐng)參見從Logstore到MetricStore。
使用數(shù)據(jù)加工e_to_metric函數(shù)將Logstore中的日志字段轉(zhuǎn)換為時(shí)序數(shù)據(jù)的Metric。
場(chǎng)景描述
某企業(yè)在華東1(杭州)地域創(chuàng)建了名為nginx-demo
的Logstore,用于存儲(chǔ)Nginx服務(wù)的訪問日志。
該企業(yè)需要監(jiān)控后端服務(wù)器(Host)的每次請(qǐng)求耗時(shí)request_time
和響應(yīng)耗時(shí)upstream_response_time
變化情況,并通過儀表盤展示變化趨勢(shì)。為實(shí)現(xiàn)需求,您需要將Logstore中request_time
和upstream_response_time
字段轉(zhuǎn)換為Metric,并加上Host標(biāo)簽。
body_bytes_sent:1750
host:www.example.com
http_referer:www.guide.example.com
http_user_agent:Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; it-it) AppleWebKit/533.20.25 (KHTML, like Gecko) Version/5.0.4 Safari/533.20.27
http_x_forwarded_for:203.0.113.10
remote_addr:203.0.113.10
remote_user:p288
request_length:13741
request_method:GET
request_time:71
request_uri:/request/path-1/file-1
status:200
time_local:11/Aug/2021:06:52:27
upstream_response_time:0.66
前提條件
已采集到日志數(shù)據(jù)。更多信息,請(qǐng)參見數(shù)據(jù)采集。
步驟一:創(chuàng)建時(shí)序庫
創(chuàng)建名稱為service-metric
的時(shí)序庫,用于保存數(shù)據(jù)加工后的時(shí)序數(shù)據(jù)。
在Project列表區(qū)域,單擊目標(biāo)Project。
在
頁簽中,單擊+圖標(biāo)。在創(chuàng)建MetricStore面板,配置如下參數(shù),單擊確定。
參數(shù)
說明
MetricStore名稱
MetricStore名稱在其所屬Project內(nèi)必須唯一,創(chuàng)建后不能修改。
數(shù)據(jù)保存時(shí)間
日志服務(wù)采集的時(shí)序數(shù)據(jù)在MetricStore中的保存時(shí)間。
選擇數(shù)據(jù)保存模式為限定天數(shù)保存,并按需設(shè)置數(shù)據(jù)保存時(shí)間。單位為天,取值范圍:1~3000。
警告當(dāng)日志保存時(shí)間達(dá)到您所設(shè)置的保存時(shí)間后,日志將被刪除。
縮短數(shù)據(jù)保存時(shí)間后,日志服務(wù)將在1小時(shí)內(nèi)刪除所有已超過保存時(shí)間的數(shù)據(jù)。但日志服務(wù)控制臺(tái)首頁的用量明細(xì)將于次日更新。例如您原本的數(shù)據(jù)保存時(shí)間為5天,現(xiàn)修改為1天,則日志服務(wù)將在1小時(shí)內(nèi)刪除前4天的日志。
選擇數(shù)據(jù)保存模式為永久保存時(shí),日志服務(wù)將永久保存采集到的時(shí)序數(shù)據(jù)。
說明通過SDK方式獲取數(shù)據(jù)保存時(shí)間時(shí),如果對(duì)應(yīng)值為3650則表示永久保存。
Shard數(shù)目
日志服務(wù)使用Shard讀寫數(shù)據(jù)。一個(gè)Shard提供的寫入能力為5 MB/s、500次/s,讀取能力為10 MB/s、100次/s。每個(gè)MetricStore中最多創(chuàng)建10個(gè)Shard,每個(gè)Project中最多創(chuàng)建200個(gè)Shard。更多信息,請(qǐng)參見分區(qū)(Shard)。
自動(dòng)分裂Shard
打開自動(dòng)分裂Shard開關(guān)后,如果您寫入的數(shù)據(jù)量超過已有Shard服務(wù)能力,日志服務(wù)會(huì)自動(dòng)根據(jù)數(shù)據(jù)量增加Shard數(shù)量。更多信息,請(qǐng)參見管理Shard。
最大分裂數(shù)
打開自動(dòng)分裂shard開關(guān)后,最多支持自動(dòng)分裂至256個(gè)readwrite狀態(tài)的Shard。
步驟二:創(chuàng)建數(shù)據(jù)加工任務(wù)
使用e_to_metric函數(shù)創(chuàng)建數(shù)據(jù)加工任務(wù),將加工結(jié)果輸出到步驟一中創(chuàng)建的時(shí)序庫。
在數(shù)據(jù)加工頁面右上角,選擇數(shù)據(jù)的時(shí)間范圍,確保頁面下方原始日志頁簽中有目標(biāo)日志。
在編輯框中,輸入數(shù)據(jù)加工語句。將Logstore中的
request_time
和upstream_response_time
字段轉(zhuǎn)換為Metric,將host
字段重命名為hostname
后作為新增的labels字段。e_to_metric( names=[("request_time", "RequestTime"), ("upstream_response_time", "ResponseTime")], labels=[("host", "hostname")], )
單擊預(yù)覽數(shù)據(jù),查看加工結(jié)果頁簽。
創(chuàng)建數(shù)據(jù)加工任務(wù)。
單擊保存數(shù)據(jù)加工。
在創(chuàng)建數(shù)據(jù)加工任務(wù)面板,配置如下信息,然后單擊確定。更多參數(shù)說明,請(qǐng)參見創(chuàng)建數(shù)據(jù)加工任務(wù)。
參數(shù)
說明
任務(wù)名稱、顯示名稱
任務(wù)名稱唯一。顯示名稱由用戶自定義,例如log2metric。
授權(quán)方式
選擇默認(rèn)角色讀取源Logstore數(shù)據(jù)。
存儲(chǔ)目標(biāo)
目標(biāo)名稱
存儲(chǔ)目標(biāo)的名稱。例如log2metric。
目標(biāo)Region
選擇目標(biāo)Project所在地域。例如華東1(杭州)。
目標(biāo)Project
用于存儲(chǔ)數(shù)據(jù)加工結(jié)果的目標(biāo)Project名稱。
目標(biāo)庫
用于存儲(chǔ)數(shù)據(jù)加工結(jié)果的目標(biāo)MetricStore名稱。例如service-metric。
授權(quán)方式
選擇默認(rèn)角色將數(shù)據(jù)加工結(jié)果寫入目標(biāo)時(shí)序庫service-metric。
加工范圍
時(shí)間范圍
時(shí)間范圍選擇所有。
查看數(shù)據(jù)加工任務(wù)的進(jìn)度。
步驟三:查詢時(shí)序數(shù)據(jù)
在左側(cè)導(dǎo)航欄,選擇
,然后選擇目標(biāo)時(shí)序庫。在頁面右上角,單擊15分鐘(相對(duì)),設(shè)置查詢和分析的時(shí)間范圍。
說明查詢和分析結(jié)果相對(duì)于指定的時(shí)間范圍,有1min以內(nèi)的誤差。
單擊預(yù)覽原始數(shù)據(jù),然后在右側(cè)面板選擇時(shí)間范圍,查看目標(biāo)日志是否上傳成功。
通過如下方式輸入查詢和分析語句。查詢時(shí)序數(shù)據(jù)的具體步驟,請(qǐng)參見查詢和分析時(shí)序數(shù)據(jù)。
直接輸入PromQL語句,單擊立即執(zhí)行。
日志服務(wù)支持添加多個(gè)查詢和分析操作以及在時(shí)序圖中疊加展示多個(gè)查詢和分析結(jié)果。
在Metrics探索框中,單擊目標(biāo)監(jiān)控項(xiàng)對(duì)應(yīng)的圖標(biāo),日志服務(wù)將自動(dòng)生成查詢和分析語句。
您也可以在Metrics探索框中,單擊目標(biāo)監(jiān)控項(xiàng)對(duì)應(yīng)的繼續(xù)探索,設(shè)置標(biāo)簽值。日志服務(wù)將根據(jù)您的設(shè)置,自動(dòng)生成查詢和分析語句。具體操作,請(qǐng)參見指標(biāo)探索。
每個(gè)Host的請(qǐng)求時(shí)間RequestTime變化趨勢(shì)
每個(gè)Host的響應(yīng)時(shí)間ReponseTime變化趨勢(shì)