《微服務(wù)設(shè)計(jì)》讀書筆記(八)

微服務(wù)的監(jiān)控的原則:監(jiān)控小的服務(wù)沽一,然后聚合起來(lái)看整體

1. 單一服務(wù)盖溺,單一服務(wù)器

1) 監(jiān)控主機(jī)的CPU、內(nèi)存等信息铣缠『嬷觯可以使用Nagios或者New Relic

2) 查看服務(wù)器本身的日志昆禽,何時(shí)何地發(fā)生了什么事情

3) 監(jiān)控應(yīng)用程序本身,最低限度是監(jiān)控服務(wù)的響應(yīng)時(shí)間

2. 單一服務(wù)蝇庭,多個(gè)服務(wù)器

1) 既要查看所有主機(jī)的數(shù)據(jù)醉鳖,還要查看單個(gè)主機(jī)的數(shù)據(jù)。換句話說(shuō)哮内,即要數(shù)據(jù)聚合起來(lái)盗棵,又想深入分析每臺(tái)主機(jī)‰狗洌可以使用Nagios

2) 查看服務(wù)器的日志漾根,需要用到分布式日志收集和分析工具,比如ELK鲫竞。

3) 在負(fù)載均衡器里監(jiān)控響應(yīng)時(shí)間辐怕,另外,對(duì)負(fù)載均衡器本身也要監(jiān)控从绘,比如它的行為是否正常等寄疏。

4) 在負(fù)載均衡器里監(jiān)控服務(wù)的健康狀況

3. 多個(gè)服務(wù),多個(gè)服務(wù)器

從日志到應(yīng)用程序指標(biāo)僵井,集中收集和聚合盡可能多的數(shù)據(jù)

4. 多個(gè)服務(wù)的指標(biāo)跟蹤

秘訣:收集系統(tǒng)指標(biāo)足夠長(zhǎng)的時(shí)間陕截,直到清晰的模式浮現(xiàn)

1) 能夠方便從新的主機(jī)收集指標(biāo)

2) 能夠看到整個(gè)系統(tǒng)聚合后的指標(biāo)(例如,平均CPU負(fù)載)

3) 給定的一些服務(wù)實(shí)例聚合后的指標(biāo)

4) 單個(gè)服務(wù)實(shí)例的指標(biāo)

Graphite可以很容易實(shí)現(xiàn)上述要求:

1) 提供一個(gè)非常簡(jiǎn)單的API批什,允許實(shí)時(shí)發(fā)送指標(biāo)數(shù)據(jù)給它

2) 通過(guò)查看這些指標(biāo)生成的圖標(biāo)和其他展示方式來(lái)了解當(dāng)前的情況

3) 通過(guò)有效的配置农曲,可以減少舊指標(biāo)的精度,以確保容量不會(huì)太大驻债。例如:最近十分鐘乳规,每隔10秒記錄一次主機(jī)CPU的指標(biāo);過(guò)去的一天合呐,以分鐘為單位對(duì)數(shù)據(jù)進(jìn)行聚合暮的;過(guò)去的幾年,以30分鐘為單位進(jìn)行聚合

4) 可以跨樣本做聚合淌实,或者深入到某個(gè)部分冻辩,這樣就可以查看整個(gè)系統(tǒng)、一組服務(wù)或者單獨(dú)實(shí)例的響應(yīng)時(shí)間拆祈。

了解趨勢(shì)也可以幫組我們做容量規(guī)劃恨闪,確保恰好有足夠的基礎(chǔ)設(shè)施來(lái)滿足需求。

5. 服務(wù)指標(biāo)

1) 公開服務(wù)的基本指標(biāo)(系統(tǒng)指標(biāo))放坏,如響應(yīng)時(shí)間和錯(cuò)誤率等

2) 公開服務(wù)的應(yīng)用相關(guān)的指標(biāo)(應(yīng)用程序級(jí)指標(biāo))凛剥,如過(guò)往訂單的次數(shù),過(guò)去一天賺的錢數(shù)

很多平臺(tái)都存在一些庫(kù)來(lái)幫助服務(wù)發(fā)送指標(biāo)到一個(gè)標(biāo)準(zhǔn)系統(tǒng)轻姿。Codahale的Metrics庫(kù)犁珠,運(yùn)作在JVM上,可以計(jì)數(shù)互亮、計(jì)時(shí)或計(jì)量犁享,支持帶時(shí)間限制的指標(biāo),還可以把數(shù)據(jù)發(fā)送到Graphite 和其它匯總報(bào)告系統(tǒng)中豹休。

6. 語(yǔ)義監(jiān)控

使用合成事務(wù)來(lái)確保系統(tǒng)行為在語(yǔ)義上的正確性炊昆。

語(yǔ)義監(jiān)控比使用低層次指標(biāo)的告警更能表明系統(tǒng)的問(wèn)題,然而語(yǔ)義監(jiān)控也并不能取代低層次的監(jiān)控威根,那些細(xì)節(jié)有助于我們了解什么語(yǔ)義監(jiān)控會(huì)報(bào)告問(wèn)題凤巨。

實(shí)現(xiàn)語(yǔ)義監(jiān)控:服務(wù)/系統(tǒng)的端到端測(cè)試都是實(shí)現(xiàn)語(yǔ)義監(jiān)控所需的。另外洛搀,我們的系統(tǒng)也已經(jīng)開放了測(cè)試和查看結(jié)果所需要的鉤子(hook)

7. 關(guān)聯(lián)標(biāo)識(shí)

一個(gè)服務(wù)調(diào)用最終會(huì)觸發(fā)多個(gè)下游的服務(wù)調(diào)用敢茁,更為復(fù)雜的初始請(qǐng)求有可能生成一個(gè)下游的調(diào)用鏈,并且以異步的方式處理觸發(fā)的事件留美。如何跟蹤彰檬?

一個(gè)非常有用的方法是使用關(guān)聯(lián)標(biāo)識(shí)(ID):在觸發(fā)第一個(gè)調(diào)用時(shí),生成一個(gè)GUID谎砾,然后把它傳遞給所有的后續(xù)調(diào)用逢倍。類似日志級(jí)別和日期,我們也可以把關(guān)聯(lián)標(biāo)識(shí)以結(jié)構(gòu)化的方式寫入日志景图。使用合適的日志聚合工具较雕,就能夠?qū)κ录谙到y(tǒng)中觸發(fā)的所用調(diào)用進(jìn)行跟蹤。

建議:創(chuàng)建一個(gè)內(nèi)部客戶端庫(kù)來(lái)標(biāo)準(zhǔn)化這樣的工作挚币,并確保這個(gè)庫(kù)是輕量的并且不依賴提供的任何特定服務(wù)亮蒋。

8. 級(jí)聯(lián)

監(jiān)控系統(tǒng)之間的集成點(diǎn)非常關(guān)鍵

1) 每個(gè)服務(wù)的實(shí)例都應(yīng)該追蹤和顯示其下游服務(wù)的健康狀態(tài),從數(shù)據(jù)庫(kù)到其它合作服務(wù)忘晤。

2) 了解下游服務(wù)調(diào)用的響應(yīng)時(shí)間宛蚓,并檢測(cè)是否有錯(cuò)誤

3) 匯總這些信息,得到一個(gè)整合的畫面

建議:使用庫(kù)實(shí)現(xiàn)一個(gè)斷路器網(wǎng)絡(luò)調(diào)用设塔,以更加優(yōu)雅地處理級(jí)聯(lián)故障和功能降級(jí)

9. 標(biāo)準(zhǔn)化

監(jiān)控這個(gè)領(lǐng)域的標(biāo)準(zhǔn)化至關(guān)重要:服務(wù)之間的多個(gè)接口凄吏,可以用很多不同的方式合作來(lái)提供功能,需要以全局的視角來(lái)規(guī)劃闰蛔。

1) 標(biāo)準(zhǔn)格式來(lái)記錄日志

2) 把所有的指標(biāo)放到一個(gè)地方

3) 為度量提供一個(gè)標(biāo)準(zhǔn)名稱的列表

4) 使用工具在標(biāo)準(zhǔn)化方面提供幫助

10. 考慮受眾

監(jiān)控收集的數(shù)據(jù)會(huì)觸發(fā)一些事件痕钢,有些數(shù)據(jù)會(huì)觸發(fā)支持團(tuán)隊(duì)立即采取行動(dòng)。

需要考慮一下因素:

1) 現(xiàn)在需要知道什么

2) 之后想要什么

3) 如何消費(fèi)數(shù)據(jù)

11. 未來(lái):指標(biāo)聚合

同一化各種指標(biāo)聚合方式序六,例如任连,以同樣的方式處理運(yùn)營(yíng)指標(biāo)和業(yè)務(wù)指標(biāo)。從專門只做一件事的系統(tǒng)轉(zhuǎn)向通用事件處理系統(tǒng)例诀。不再為不同類型的指標(biāo)提供專門的工具鏈随抠,而是提供伸縮性很好的更為通用的事件路由系統(tǒng)裁着。

Riemann:事件服務(wù)器,允許高級(jí)的聚合和事件路由拱她,該工具可以作為上述解決方案的一部分

Suro:Netflix的數(shù)據(jù)流水線二驰,明確可以處理兩種數(shù)據(jù):用戶行為的相關(guān)指標(biāo)和更多的運(yùn)營(yíng)數(shù)據(jù)。然后這些數(shù)據(jù)可以被分發(fā)到不同的系統(tǒng)中秉沼,像Storm的實(shí)時(shí)分析桶雀、離線批處理的Hadoop或日志分析的Kibana

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市唬复,隨后出現(xiàn)的幾起案子矗积,更是在濱河造成了極大的恐慌,老刑警劉巖敞咧,帶你破解...
    沈念sama閱讀 217,907評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件棘捣,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡妄均,警方通過(guò)查閱死者的電腦和手機(jī)柱锹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)丰包,“玉大人禁熏,你說(shuō)我怎么就攤上這事∫乇耄” “怎么了瞧毙?”我有些...
    開封第一講書人閱讀 164,298評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)寄症。 經(jīng)常有香客問(wèn)我宙彪,道長(zhǎng),這世上最難降的妖魔是什么有巧? 我笑而不...
    開封第一講書人閱讀 58,586評(píng)論 1 293
  • 正文 為了忘掉前任释漆,我火速辦了婚禮,結(jié)果婚禮上篮迎,老公的妹妹穿的比我還像新娘男图。我一直安慰自己,他們只是感情好甜橱,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評(píng)論 6 392
  • 文/花漫 我一把揭開白布逊笆。 她就那樣靜靜地躺著,像睡著了一般岂傲。 火紅的嫁衣襯著肌膚如雪难裆。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,488評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音乃戈,去河邊找鬼褂痰。 笑死,一個(gè)胖子當(dāng)著我的面吹牛偏化,可吹牛的內(nèi)容都是我干的脐恩。 我是一名探鬼主播,決...
    沈念sama閱讀 40,275評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼侦讨,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了苟翻?” 一聲冷哼從身側(cè)響起韵卤,我...
    開封第一講書人閱讀 39,176評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎崇猫,沒(méi)想到半個(gè)月后沈条,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,619評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡诅炉,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評(píng)論 3 336
  • 正文 我和宋清朗相戀三年蜡歹,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片涕烧。...
    茶點(diǎn)故事閱讀 39,932評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡月而,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出议纯,到底是詐尸還是另有隱情父款,我是刑警寧澤,帶...
    沈念sama閱讀 35,655評(píng)論 5 346
  • 正文 年R本政府宣布瞻凤,位于F島的核電站憨攒,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏阀参。R本人自食惡果不足惜肝集,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評(píng)論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蛛壳。 院中可真熱鬧杏瞻,春花似錦、人聲如沸炕吸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)赫模。三九已至树肃,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間瀑罗,已是汗流浹背胸嘴。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工雏掠, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人劣像。 一個(gè)月前我還...
    沈念sama閱讀 48,095評(píng)論 3 370
  • 正文 我出身青樓乡话,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親耳奕。 傳聞我的和親對(duì)象是個(gè)殘疾皇子绑青,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容