基于阿里云日志服务快速打造简版业务监控看板
前言
最近老黃一直在弄雙11相關(guān)的東西,所以博客和github都沒怎么更新,這期間在公司也弄了不少東西。
下面就簡單分享一下最近做的業(yè)務(wù)監(jiān)控相關(guān)的內(nèi)容吧。
先來說一下背景。
某業(yè)務(wù)在雙11第一波大促的時候因為沒有提供實時的業(yè)務(wù)看板,總結(jié)會的時候技術(shù)同事被相關(guān)領(lǐng)導(dǎo)和業(yè)務(wù)人員投訴,說是沒辦法清晰的了解到當(dāng)時的情況,不能及時有效的調(diào)整對應(yīng)的策略。
事后老黃了解到,那個業(yè)務(wù)是比較老的業(yè)務(wù)了,資源比較緊張,不敢去實時懟數(shù)據(jù)庫(單點),怕數(shù)據(jù)庫掛了,業(yè)務(wù)就全涼了。
為了避免尷尬的現(xiàn)狀,不想再一次挨批,只能搞呀。
分析現(xiàn)狀
3個應(yīng)用,.NET Framework的項目,都是windows服務(wù)器,沒有容器化。
離雙11只有幾天,不能改動太大,而且還要應(yīng)對業(yè)務(wù)部門新的需求。
當(dāng)時能想到的方案
業(yè)務(wù)埋點,接入prometheus,結(jié)合grafana
業(yè)務(wù)發(fā)MQ,消費數(shù)據(jù)到ES,前端做個面板
業(yè)務(wù)埋點,接入日志服務(wù),結(jié)合儀盤表
大致分析
方案1,業(yè)務(wù)團隊對prometheus幾乎是0認(rèn)知,了解相關(guān)概念都要花不少時間,pass
方案2,MQ目前用的是騰訊云的CMQ,被坑過2次了,也不能很好的hold住ES,pass
方案3,有按內(nèi)部規(guī)范打日志,業(yè)務(wù)方只要在關(guān)鍵地方加一行對應(yīng)的日志,然后交由logtail去采集,上傳到日志服務(wù)
所以在這三種方案中,老黃還是選了方案三。
首先日志服務(wù)在內(nèi)部各個系統(tǒng)都已經(jīng)接入過了,也算是團隊里面比較熟悉的了,其次是不會影響主業(yè)務(wù),只在關(guān)鍵地方埋點,加日志。
雖說對業(yè)務(wù)代碼有侵入性,但無疑是現(xiàn)階段的一個最優(yōu)解。
整體實現(xiàn)邏輯如下。
業(yè)務(wù)埋點
業(yè)務(wù)埋點,其實是一個非常簡單,也是最為重要的一步。
我們有對應(yīng)的日志幫助類,所以這里要處理的只是日志的內(nèi)容。
SerilogHelper.Info($"[field1]?[field2]?[field3]",?"metrics_name");老黃這里給的約定是,字段內(nèi)容放在[]里面,每個字段要用空格隔開。
然后就會把日志落盤到具體的某個目錄,等著被Logtail采集到日志服務(wù)了。
當(dāng)然這里有遇到一個問題,就是日志文件的格式,之前指定的是UTF-8,結(jié)果生成的文件是 UTF-8 with bom格式的。
這個會導(dǎo)致第一行日志不能被正確解析,所以要特別注意。
數(shù)據(jù)接入與展示
代碼層面在上面一步已經(jīng)搞定了,下面要做的就是日志的接入了。
根據(jù)業(yè)務(wù)場景,目前是一個應(yīng)用一個指標(biāo),所以要建立三個日志庫,按需選擇存儲時間,默認(rèn)是永久。
建好日志庫后要接入數(shù)據(jù)源,這里老黃選的是正則-文本日志。
然后就是一堆常規(guī)配置了。
最重要的是Logtail配置這一步。
日志路徑,就是程序日志輸出的路徑,這樣logtail才會去設(shè)置的路徑采集。
正則是一個比較重要的內(nèi)容,logtail會根據(jù)這個正則去解析日志,提取成一個個的字段,這樣會比較方便后面的查詢。
接下來是查詢分析的配置了。
這里就是要把統(tǒng)計的字段指定一下,還有一個是關(guān)掉全文索引,因為這種場景下,開全文索引意義不大,浪費錢。
到這一步,我們就可以把數(shù)據(jù)采集上來了。
最后要做的就是查詢結(jié)果了。只要會簡單的sql,用日志服務(wù)做統(tǒng)計肯定是不成問題的,難度相對比較低。
下面是具體的效果。
打碼比較多,將就一下。
由于控制臺上面提供了自動刷新和全屏的功能,所以掛面板出來的時候就可以省去人工的干預(yù)了。
總結(jié)
周一晚上被投訴,周二上午出方案,周二下午開搞,周三出結(jié)果,這一波操作真的是猛如虎。
不得不說,阿里云的日志服務(wù)確實是簡化了很多繁瑣的操作,解決了這一次問題的痛點。
但是抽取日志的方式還有待完善,有點別扭。
總結(jié)
以上是生活随笔為你收集整理的基于阿里云日志服务快速打造简版业务监控看板的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 集赞有礼!进击吧! Blazor !第六
- 下一篇: 使用 Xunit.DependencyI