監(jiān)控指標收集展現(xiàn)工具的研究和思考

概述

我想分享兩部分內(nèi)容:

  1. 互聯(lián)網(wǎng)上用到的指標收集展現(xiàn)工具丙曙,參考借鑒
  2. 互聯(lián)網(wǎng)監(jiān)控平臺設(shè)計時的結(jié)構(gòu)層处铛,范圍層殴瘦,表現(xiàn)層的有益參考

指標收集展示工具

思維導(dǎo)圖

Paste_Image.png

這套工具分為三部分:

  1. 探針采集工具一喘,每個探針都安裝在各個客戶端沾谜,定時采集數(shù)據(jù).網(wǎng)上常用的有用Statsd和collected采集數(shù)據(jù)敛惊。
  2. 時間序列數(shù)據(jù)庫,有OpenTSDB,InfluxDB渊鞋,采集后的數(shù)據(jù)傳輸?shù)綍r間序列數(shù)據(jù)庫
  3. 展現(xiàn)端,有Grafanna和Highcharts。

三個環(huán)節(jié)是連環(huán)相扣的瞧挤,先有探針采集工具采集數(shù)據(jù)锡宋,而后時間序列數(shù)據(jù)庫存儲數(shù)據(jù),最后展現(xiàn)端展現(xiàn)各個指標圖特恬。


Paste_Image.png

核心概念

  1. Metric(監(jiān)控項,指標): 指標是表示一個向監(jiān)控平臺發(fā)送的按時間排序的數(shù)據(jù)點集合执俩,您可以按時間序列來檢索關(guān)于這些數(shù)據(jù)點的統(tǒng)計數(shù)據(jù)。指標作為監(jiān)控的變量癌刽,指標數(shù)據(jù)代表該變量隨時間變化的值役首。例如,云服務(wù)器的 CPU 利用率是一個指標显拜,云數(shù)據(jù)庫的空間占用率則是另一個指標衡奥。
    指標數(shù)據(jù)可以來自任何產(chǎn)品、應(yīng)用程序或業(yè)務(wù)远荠。例如矮固,指標可以是云服務(wù)器的CPU利用率或是用戶業(yè)務(wù)的進程延時。指標通過名稱譬淳、命名空間以及一個或多個維度進行唯一定義档址。每個數(shù)據(jù)點都有一個時間戳和一個度量單位(可選)盹兢。對云監(jiān)控存儲的指標數(shù)據(jù)發(fā)起請求時,返回的數(shù)據(jù)流通過命名空間辰晕、指標名稱和維度進行識別蛤迎。
  2. 命名空間: 命名空間是指標的容器。不同命名空間中的指標彼此獨立含友,因此來自不同應(yīng)用程序的指標不會被錯誤地聚合到一起替裆。
  3. 維度: 維度是對監(jiān)控對象進行唯一標識的 Key/Value 對,指標在確定維度值后才有意義窘问。維度有助于設(shè)計統(tǒng)計數(shù)據(jù)聚合結(jié)構(gòu)辆童。例:機器IP、進程名proc_name惠赫,兩個維度值確定后把鉴,即可確定一個監(jiān)控對象:監(jiān)控對象A(IP=1.1.1.1&proc_name=test)。您需要在將云產(chǎn)品指標數(shù)據(jù)放入監(jiān)控平臺時指定相應(yīng)維度(系統(tǒng)預(yù)設(shè)的指標均已預(yù)設(shè)了相應(yīng)的維度)儿咱,在檢索時使用沒有定義的維度會出現(xiàn)錯誤庭砍。
  4. 時間戳: 在監(jiān)控平臺中每個指標數(shù)據(jù)點必須有一個時間標記,表示此原始數(shù)據(jù)采集的時間混埠。在請求中使用的時間戳必須為 dateTime 對象怠缸,并包含完整的日期及小時、分鐘和秒钳宪,例如:2000-01-31 23:59:59
  5. 單位 單位是指標原始數(shù)據(jù)的度量單位揭北,應(yīng)用程序根據(jù)數(shù)據(jù)單位得到有用的語法信息。例如吏颖,CVM的外網(wǎng)出方向帶寬指標的單位是Mbps搔体,因為網(wǎng)絡(luò)帶寬常以兆比特每秒(Mbps)來衡量當前網(wǎng)絡(luò)速度。下方列表提供了一些常見單位:
    秒(時間單位)
    Byte(字節(jié)半醉,常表示數(shù)據(jù)大小疚俱。 1 Byte=8 bit )
    bit(比特,數(shù)據(jù)的最小單位缩多。)
    %(百分比)
    次(計數(shù)單位)
    Bps(每秒字節(jié)數(shù))
    bps(每秒比特數(shù))
  6. 時間段: 時間段是監(jiān)控統(tǒng)計數(shù)據(jù)的間隔時間長度计螺,每個時間戳數(shù)據(jù)代表在指定時間段內(nèi)對收集的所有數(shù)據(jù)進行聚合的結(jié)果。盡管時間段以秒表示瞧壮,但是時間段的最小粒度為一分鐘。因此匙握,您指定的時間段值應(yīng)為 60 的倍數(shù)咆槽。例如,要指定六分鐘的時間段圈纺,應(yīng)該使用值 360秦忿。
指標主要分三種
  • 應(yīng)用監(jiān)控指標如:可用性麦射、異常、吞吐量灯谣、響應(yīng)時間潜秋、當前等待筆數(shù)、資源占用率胎许、請求量峻呛、日志大小、性能辜窑、隊列深度钩述、線程數(shù)、服務(wù)調(diào)用次數(shù)穆碎、訪問量牙勘、服務(wù)可用性等。
  • 業(yè)務(wù)監(jiān)控指標如大額流水所禀、流水區(qū)域方面、流水明細、請求筆數(shù)色徘、響應(yīng)時間恭金、響應(yīng)筆數(shù)等。
  • 系統(tǒng)監(jiān)控指標如:CPU負載贺氓、內(nèi)存負載蔚叨、磁盤負載、網(wǎng)絡(luò)IO辙培、磁盤IO蔑水、tcp連接數(shù)、進程數(shù)等扬蕊。
    從采集方式來說通巢蟊穑可以分為接口采集、客戶端agent采集尾抑、通過網(wǎng)絡(luò)協(xié)議主動抓刃浮(http、snmp等)
    常用的系統(tǒng)監(jiān)控指標

逐項介紹

statsd

StatsD 就是一個簡單的網(wǎng)絡(luò)守護進程再愈,基于 Node.js 平臺榜苫,通過 UDP 或者 TCP 方式偵聽各種統(tǒng)計信息,包括計數(shù)器和定時器翎冲,并發(fā)送聚合信息到后端服務(wù)垂睬,如 Graphite。
它基于兩大功能:計數(shù)和計時。普遍及支持多種語言——有基于 Ruby驹饺,Python, Java, erlang, Node, Scala, Go, haskell 等幾乎所有語言的客戶端钳枕。
說重點,statsd主要用于應(yīng)用程序的指標監(jiān)控赏壹,它致力于收集從你代碼中發(fā)送出去的本地性能指標鱼炒。基于個性化需求蝌借,可以通過 Statsd 收集任何想要的數(shù)據(jù)
StatsD的更詳細內(nèi)容

collectd

collectd也是一個簡單的守護進程昔瞧,用來收集系統(tǒng)性能數(shù)據(jù)和提供各種存儲方式來存儲不同值的機制,通過插件,更靈活的收集指標**
collectd官網(wǎng)
collectd收集的系統(tǒng)指標

influxDB

InfluxDB 是一個開源分布式時序骨望、事件和指標數(shù)據(jù)庫硬爆。使用 Go 語言編寫,無需外部依賴擎鸠。其設(shè)計目標是實現(xiàn)分布式和水平伸縮擴展缀磕。
它有三大特性:

  1. Time Series (時間序列):你可以使用與時間有關(guān)的相關(guān)函數(shù)(如最大,最小劣光,求和等)
  2. Metrics(度量):你可以實時對大量數(shù)據(jù)進行計算
  3. Eevents(事件):它支持任意的事件數(shù)據(jù)

infludDB的下載:

wget https://dl.influxdata.com/influxdb/releases/influxdb_1.2.0_amd64.deb
sudo dpkg -i influxdb_1.2.0_amd64.deb

influxDB的更多內(nèi)容
做的比較詳細的幫助手冊

Grafana

Grafana是純 Javascript 開發(fā)的前端工具袜蚕,用于訪問 InfluxDB,自定義報表绢涡、顯示圖表等牲剃。

  • grafana是用于可視化大型測量數(shù)據(jù)的開源程序,他提供了強大和優(yōu)雅的方式去創(chuàng)建雄可、共享凿傅、瀏覽數(shù)據(jù)。dashboard中顯示了你不同metric數(shù)據(jù)源中的數(shù)據(jù)数苫。
  • grafana最常用于因特網(wǎng)基礎(chǔ)設(shè)施和應(yīng)用分析聪舒,但在其他領(lǐng)域也有機會用到,比如:工業(yè)傳感器虐急、家庭自動化箱残、過程控制等等。
  • grafana有熱插拔控制面板和可擴展的數(shù)據(jù)源止吁,目前已經(jīng)支持Graphite被辑、InfluxDB、OpenTSDB敬惦、Elasticsearch盼理。

Grafana圖例

Paste_Image.png
Paste_Image.png

Grafana官網(wǎng)
Grafana安裝詳細例子

還需要研究的
  1. 怎么在Grafana上二次開發(fā),漢化等
  2. 是否適應(yīng)我們的業(yè)務(wù)需求

Highcharts

Highcharts 是一個用純JavaScript編寫的一個圖表庫俄删。
Highcharts 能夠很簡單便捷的在web網(wǎng)站或是web應(yīng)用程序添加有交互性的圖表
目前阿里的監(jiān)控平臺GoldenEyes前端圖標展現(xiàn)是用Highcharts榜揖。
目前Highcharts用于商業(yè)用途要收費
HIghcharts支持監(jiān)控平臺的各種圖例勾哩。
HighCharts 特性

  • 兼容性 - 支持所有主流瀏覽器和移動平臺(android、iOS等)举哟。
  • 多設(shè)備 - 支持多種設(shè)備,如手持設(shè)備 iPhone/iPad迅矛、平板等妨猩。
  • 免費使用 - 開源免費。
  • 輕量 - highcharts.js 內(nèi)核庫大小只有 35KB 左右秽褒。
  • 配置簡單 - 使用 json 格式配置
  • 動態(tài) - 可以在圖表生成后修改壶硅。
  • 多維 - 支持多維圖表
  • 配置提示工具 - 鼠標移動到圖表的某一點上有提示信息。
  • 時間軸 - 可以精確到毫秒销斟。
  • 導(dǎo)出 - 表格可導(dǎo)出為 PDF/ PNG/ JPG / SVG 格式
  • 輸出 - 網(wǎng)頁輸出圖表庐椒。
  • 可變焦 - 選中圖表部分放大,近距離觀察圖表蚂踊;
  • 外部數(shù)據(jù) - 從服務(wù)器載入動態(tài)數(shù)據(jù)约谈。
  • 文字旋轉(zhuǎn) - 支持在任意方向的標簽旋轉(zhuǎn)。
    HighCharts官網(wǎng)

監(jiān)控常用圖標展現(xiàn)

圖表展現(xiàn):支持折線圖犁钟、面積圖棱诱、熱力圖、餅圖涝动、表格迈勋。
a. 折線圖:按時間序列展示監(jiān)控數(shù)據(jù)〈姿冢可以添加多個監(jiān)控項靡菇。

折線圖

b. 面積圖:按時間序列顯示監(jiān)控數(shù)據(jù),可以添加多個監(jiān)控項米愿。
面積圖

c. 熱力圖:顯示監(jiān)控項的實時數(shù)據(jù)厦凤。用于展示多個實例指定監(jiān)控項的實時監(jiān)控數(shù)據(jù)分布與對比。例如展示多個實例CPU使用率的水位分布情況吗货。只能添加一個監(jiān)控項泳唠。
熱力圖

d. 餅圖:顯示監(jiān)控項的實時數(shù)據(jù)。常用于數(shù)據(jù)的對比宙搬”啃龋可以添加多個監(jiān)控項。
餅圖

e. 表格:實時顯示監(jiān)控項數(shù)據(jù)值由大到小的排序勇垛。例如ECS分組中所有機器CPU使用率從大到小的排序脖母。只能添加一個監(jiān)控項。
表格

詳情參考阿里云幫助文檔

互聯(lián)網(wǎng)平臺參考設(shè)計

平臺導(dǎo)航參考

監(jiān)控導(dǎo)航目前有兩種方式:
1.一個大平臺闲孤,做成多個小應(yīng)用(app)谆级,用戶登錄后烤礁,先選擇應(yīng)用后進入:

Paste_Image.png
Paste_Image.png
  1. 分成二級三級導(dǎo)航,用戶進入后肥照,有個首頁概覽脚仔,后登錄各二級頁面做詳細操作
Paste_Image.png
Paste_Image.png
側(cè)邊導(dǎo)航欄只展現(xiàn)具體應(yīng)用導(dǎo)航

OneApm的結(jié)構(gòu)層思維導(dǎo)圖

CloudInsight結(jié)構(gòu)層
平臺

平臺列表則會列出已經(jīng)監(jiān)控的平臺。



點擊后可以看平臺詳細舆绎,平臺操作系統(tǒng)及平臺服務(wù)的詳細指標

Paste_Image.png
儀表盤

儀表盤是支持增刪改鲤脏,支持客戶定制,支持客戶收藏和分享
儀表盤是 Cloudinsight 查看性能指標吕朵,以及平臺負載情況猎醇,和平臺服務(wù)的運行情況的主要形式。
儀表盤的設(shè)計思路是:


儀表盤針對采集到的性能指標努溃,進行處理后硫嘶,提供可視化方式進行展現(xiàn)。儀表盤按照操作類型可分為:
自定義儀表盤
平臺服務(wù)儀表盤
自定義數(shù)據(jù)儀表盤
Metric查詢:

OneAPM的指標圖標

支持圖表分享也是一個亮點
直接分享可以查看的URL梧税,您可以拷貝并通過郵件發(fā)送給需要查看數(shù)據(jù)的其他人
iframe的版本沦疾,您可以將其粘貼至自己的代碼中,嵌入到自己的系統(tǒng)中
通過手機掃描二維碼贡蓖,通過手機分享給其他人

Paste_Image.png

其他平臺有益參考

騰訊云

騰訊云做的產(chǎn)品和我們類似曹鸠,特別是監(jiān)控平臺,容器服務(wù)斥铺,彈性伸縮彻桃,大數(shù)據(jù)與AI方面都可以做很多參考。
騰訊云幫助文檔

阿里云

阿里云也一樣
阿里云幫助文檔
阿里云監(jiān)控平臺的DashBoard設(shè)計:
展示多個實例的監(jiān)控數(shù)據(jù)走勢
例如您的一個應(yīng)用部署在多臺ECS實例上晾蜘,可以將部署了相同應(yīng)用的多臺ECS實例監(jiān)控信息添加在同一張監(jiān)控圖表中邻眷,查看相關(guān)多臺機器的監(jiān)控數(shù)據(jù)變化趨勢。 例如在一張圖表中同時展示ECS多個實例各自的CPU使用率的時間序走勢剔交。

多cpu

展示多個監(jiān)控項的數(shù)據(jù)對比
例如在一張圖表中展示ECS同一個實例的CPU使用率肆饶、內(nèi)存使用率、磁盤使用率等多個指標岖常。
多指標

展示機器的資源消耗排序
例如您有20臺機器驯镊,通過表格展示可以查看20臺機器的CPU使用率從大到小的排序〗甙埃快速了解資源消耗情況板惑,更合理的使用資源,減少不必要的花費偎快。
表格

展示多個實例的監(jiān)控數(shù)據(jù)實時分布
例如通過熱力圖冯乘,展示一組ECS實例的CPU使用率分布情況,知曉每臺機器的CPU使用率和其他機器相比晒夹,處于什么水平裆馒。點擊色塊姊氓,可以查看該機器一段時間內(nèi)的監(jiān)控數(shù)據(jù)走勢。
heatmap

展示多個實例某一監(jiān)控項的聚合數(shù)據(jù)
例如在一張圖表中查看ECS多個實例的CPU使用率的平均聚合值喷好,從而了解整體的CPU使用率水位翔横,判斷是否各個實例資源使用不均。
圖片

全景盯屏展示
Dashboard支持全屏展示和自動刷新绒窑,可以將您的各類產(chǎn)品指標添加到監(jiān)控大盤后在運維大屏上全屏展示棕孙。
全屏

監(jiān)控大盤參數(shù)說明


時間選擇

選擇時間范圍:點擊監(jiān)控大盤頁面上方的時間選擇按鈕,可以快速選擇大盤中圖表展示的監(jiān)控數(shù)據(jù)時間范圍些膨。時間選擇的作用范圍是會是監(jiān)控大盤的全部圖表。

自動刷新:開啟“自動刷新”按鈕后钦铺,當您選擇查詢“1小時”订雾、“3小時”、“6小時”的查詢時間跨度時矛洞,可開啟自動刷新功能洼哎,每分鐘刷新一次。

監(jiān)控項的單位展示在圖表名稱的括號內(nèi)沼本。
鼠標跟隨顯示所有圖表相同時間的監(jiān)控值抽兆。

百度云

百度云也可以參考,特別是智慧引擎辫红,AI,大數(shù)據(jù)分析這塊
百度云幫助文檔

小米開源的監(jiān)控平臺

小米開源的監(jiān)控平臺,做的很不錯澎胡。
open-falcon的目標是做最開放巢株、最好用的互聯(lián)網(wǎng)企業(yè)級監(jiān)控產(chǎn)品困檩。
小米糟趾,京東,美團,趕集都是基于這個平臺深度定制。
目前我還沒時間深入研究。
小米open-falcon

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末例获,一起剝皮案震驚了整個濱河市怎茫,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖斧散,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件煎源,死亡現(xiàn)場離奇詭異原献,居然都是意外死亡,警方通過查閱死者的電腦和手機鄙陡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來躏啰,“玉大人给僵,你說我怎么就攤上這事。” “怎么了蒿辙?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長滨巴。 經(jīng)常有香客問我泰偿,道長,這世上最難降的妖魔是什么蜈垮? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任耗跛,我火速辦了婚禮,結(jié)果婚禮上攒发,老公的妹妹穿的比我還像新娘调塌。我一直安慰自己,他們只是感情好惠猿,可當我...
    茶點故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布羔砾。 她就那樣靜靜地躺著,像睡著了一般偶妖。 火紅的嫁衣襯著肌膚如雪姜凄。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天趾访,我揣著相機與錄音态秧,去河邊找鬼。 笑死腹缩,一個胖子當著我的面吹牛屿聋,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播藏鹊,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼润讥,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了盘寡?” 一聲冷哼從身側(cè)響起楚殿,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后脆粥,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體砌溺,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年变隔,在試婚紗的時候發(fā)現(xiàn)自己被綠了规伐。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡匣缘,死狀恐怖猖闪,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情肌厨,我是刑警寧澤培慌,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布,位于F島的核電站柑爸,受9級特大地震影響吵护,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜表鳍,卻給世界環(huán)境...
    茶點故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一馅而、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧譬圣,春花似錦用爪、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽诸衔。三九已至盯漂,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間笨农,已是汗流浹背就缆。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留谒亦,地道東北人续镇。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓螟凭,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子聊记,可洞房花燭夜當晚...
    茶點故事閱讀 45,512評論 2 359

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