官方是解釋Grafana
Grafana是用于可視化大型測(cè)量數(shù)據(jù)的開源程序,他提供了強(qiáng)大和優(yōu)雅的方式去創(chuàng)建、共享躲惰、瀏覽數(shù)據(jù)。dashboard中顯示了你不同metric數(shù)據(jù)源中的數(shù)據(jù)变抽。
Grafana最常用于因特網(wǎng)基礎(chǔ)設(shè)施和應(yīng)用分析础拨,但在其他領(lǐng)域也有機(jī)會(huì)用到,比如:工業(yè)傳感器绍载、家庭自動(dòng)化诡宗、過(guò)程控制等等。
Grafana有熱插拔控制面板和可擴(kuò)展的數(shù)據(jù)源击儡,目前已經(jīng)支持Graphite塔沃、InfluxDB、OpenTSDB阳谍、Elasticsearch等等40多種數(shù)據(jù)庫(kù)類型蛀柴。
Grafana非常類似Kibana,也是對(duì)后端的數(shù)據(jù)進(jìn)行實(shí)時(shí)展示矫夯,但是有不同與Kibana鸽疾。
不過(guò)在日常使用中Kibana是跟著Logstash、ElasticSearch等組件一起使用做日志展示训貌、索引制肮、分析的冒窍,Kibana專注于可視化ElasticSearch里面的數(shù)據(jù),而且生態(tài)圈沒(méi)有Grafana好豺鼻。
Grafana一般是和一些時(shí)間序列數(shù)據(jù)庫(kù)進(jìn)行配合來(lái)展示數(shù)據(jù)的综液,例如:Graphite、OpenTSDB儒飒、InfluxDB等意乓。有著豐富的插件可以選擇和進(jìn)行定制。
Data Source 數(shù)據(jù)源
Grafana支持多種不同的時(shí)序數(shù)據(jù)庫(kù)數(shù)據(jù)源约素,Grafana對(duì)每種數(shù)據(jù)源提供不同的查詢方法届良,而且能很好的支持每種數(shù)據(jù)源的特性。
Grafana官方支持以下幾種數(shù)據(jù)源:
Graphite圣猎、InfluxDB士葫、OpenTSDB、Prometheus送悔、Elasticsearch慢显、CloudWatch
可以將多個(gè)數(shù)據(jù)源的數(shù)據(jù)合并到一個(gè)單獨(dú)的儀表板上,也每個(gè)面板都綁定到特定數(shù)據(jù)源欠啤。
Organization 組織
Grafana為了支持多種部署模式支持多組織荚藻,包括使用一個(gè)單一的Grafana實(shí)例為多個(gè)潛在的不受信任的組織提供的服務(wù)。
在許多情況下洁段,Grafana將部署一個(gè)單一的組織应狱。
每個(gè)組織可以有一個(gè)或多個(gè)數(shù)據(jù)源。
所有的儀表板是由一個(gè)特定的組織擁有的祠丝。
User 用戶
用戶在Grafana與賬戶是一個(gè)概念疾呻。
一個(gè)用戶可以屬于一個(gè)或多個(gè)組織,可以通過(guò)角色來(lái)分配不同的權(quán)限写半。
Grafana支持多種用戶認(rèn)證的方式岸蜗。
Row 行
行是Grafana在儀表盤界面的邏輯分區(qū)器,用于將多個(gè)面板連接在一起叠蝇。
行一般是12個(gè)單位寬度璃岳。
單位寬度是Grafana為了支持不同分辨率的屏幕所采取的一種策略,這樣Grafana可以在不同分辨率的顯示器上擁有良好的展示效果悔捶。
Panel 面板
面板是Grafana最基本的展示單位铃慷。
每個(gè)面板提供一個(gè)查詢編輯器(依賴于面板中選擇的數(shù)據(jù)源),允許您利用查詢編輯器來(lái)編輯出一個(gè)完美的展示圖像炎功。
面板提供各種各樣的樣式和格式選項(xiàng)枚冗,而且支持拖拽來(lái)在儀表盤上重排缓溅,并且可以調(diào)整大小蛇损。
目前有四個(gè)面板類型:圖像,狀態(tài),面板列表淤齐,表格 等類型股囊,而且也支持文本類型。
面板(或整個(gè)儀表板)可以以多種方式輕松共享更啄,既可以通過(guò)鏈接分享稚疹,也可以導(dǎo)出JSON等文本文件。
Query Editor 語(yǔ)句管理
Query Editor 顧名思義祭务,就是語(yǔ)句管理内狗,每個(gè)面板都提供一個(gè)Query Editor,我們可以通過(guò)編寫語(yǔ)句來(lái)控制面板展示不同的圖表义锥。
Dashboard 儀表盤
儀表盤是Grafana里面最重要的展示部分柳沙。
儀表盤可以視為一組一個(gè)或多個(gè)面板組成的一個(gè)集合,來(lái)展示各種各樣的面板拌倍。
儀表盤還可以使用 模板 來(lái)允許用戶交互式的選擇數(shù)據(jù)來(lái)展示赂鲤。
儀表盤也可以通過(guò) 注釋 來(lái)標(biāo)記出各種各樣的事件。
儀表盤也支持通過(guò)多種不同的方式來(lái)共享柱恤,支持通過(guò)鏈接的方式共享或者導(dǎo)出JSON等格式的文件数初。
Alerting 警報(bào)
以可視方式定義最重要指標(biāo)的警報(bào)規(guī)則。Grafana將不斷評(píng)估它們并發(fā)送通知梗顺。
Notifications 通知
當(dāng)警報(bào)更改狀態(tài)時(shí)泡孩,它會(huì)發(fā)送通知。接收電子郵件通知或從Slack寺谤,PagerDuty珍德,VictorOps,OpsGenie或通過(guò)webhook獲取矗漾。
Grafana實(shí)戰(zhàn)舉例
JMeter 實(shí)時(shí)監(jiān)控儀表板配置 (Grafana + InfluxDB)
在服務(wù)器上跑 JMeter 做壓測(cè)的話锈候,給工具本身也配上實(shí)時(shí)監(jiān)控是必須的,命令行輸出能提供的信息太少敞贡。
JMeter的 Backend Listener 支持 Graphite 和 InfluxDB泵琳,這里選擇 InfluxDB 做時(shí)序數(shù)據(jù)庫(kù),支持類似 SQL 的查詢語(yǔ)法是最大的優(yōu)點(diǎn)誊役。另外在 JMeter 3.2+ 里配置起來(lái)也比 Graphite 方便太多获列。(缺點(diǎn)是官網(wǎng)文檔都沒(méi)更新,要自己查存儲(chǔ)的字段蛔垢,猜它有什么用)
Grafana 能配出非常漂亮的監(jiān)控儀表板击孩,就是配的過(guò)程非常痛苦,不做非常詳細(xì)的筆記的話過(guò)幾天又忘光了鹏漆,于是有了這篇東西巩梢。
【前提】
- 采集器:JMeter 3.2+创泄,Backend Listener 里選擇
InfluxdbBackendListenerClient
- 數(shù)據(jù)源:InfluxDB 1.4+
- 面板:Grafana 4.6+
- 已添加好數(shù)據(jù)源
- 新建面板,添加 3 行
【注意】
吞吐率和響應(yīng)時(shí)間圖表只計(jì)算成功的請(qǐng)求(失敗的通常沒(méi)意義括蝠,超時(shí)失敗的能在表格里看到數(shù)量)鞠抑,結(jié)果可能會(huì)跟JMeter里看到的有出入。
【效果】
已經(jīng)上傳到 Grafana 官網(wǎng)忌警,可以從以下地址下載JSON文件搁拙,或通過(guò)ID 4026
直接導(dǎo)入:https://grafana.com/dashboards/4026
JMeter Backend Listener 參考配置:
Prometheus+Grafana搭建監(jiān)控系統(tǒng)
基本概念
Prometheus
時(shí)間序列化數(shù)據(jù)庫(kù),我的理解就是將數(shù)據(jù)打上標(biāo)簽法绵,以時(shí)間維度存儲(chǔ)箕速。后面有機(jī)會(huì)在深入研究。
Grafana
Prometheus中存儲(chǔ)的數(shù)據(jù)朋譬,通過(guò)Grafana很優(yōu)美的展現(xiàn)出來(lái)弧满。
配置exporter來(lái)導(dǎo)入數(shù)據(jù)
prometheus可以理解為一個(gè)數(shù)據(jù)庫(kù)+數(shù)據(jù)抓取工具,工具從各處抓來(lái)統(tǒng)一的數(shù)據(jù)此熬,放入prometheus這一個(gè)時(shí)間序列數(shù)據(jù)庫(kù)中庭呜。那如何保證各處的數(shù)據(jù)格式是統(tǒng)一的呢?就是通過(guò)這個(gè)exporter犀忱。exporter也是用GO寫的程序募谎,它開放一個(gè)http接口,對(duì)外提供格式化的數(shù)據(jù)阴汇。所以在不同的環(huán)境下数冬,需要編寫不同的exporter。好在已經(jīng)有很多寫好的exporter搀庶,我們可以直接使用拐纱,(https://github.com/prometheus這里可以找到很多exporter)
添加一個(gè)數(shù)據(jù)源,將Grafana和Prometheus關(guān)聯(lián)起來(lái)
導(dǎo)入成功后哥倔,你將看到監(jiān)控頁(yè)面秸架,大功告成!E剌铩东抹!
Grafana + Influxdb + Telegraf性能監(jiān)控平臺(tái)
[收集數(shù)據(jù)]
Telegraf 是一個(gè)用 Go 編寫的代理程序,可收集系統(tǒng)和服務(wù)的統(tǒng)計(jì)數(shù)據(jù)沃测,并寫入到 InfluxDB 數(shù)據(jù)庫(kù)缭黔。
Telegraf 具有內(nèi)存占用小的特點(diǎn),通過(guò)插件系統(tǒng)開發(fā)人員可輕松添加支持其他服務(wù)的擴(kuò)展蒂破。
[存儲(chǔ)數(shù)據(jù)]
InfluxDB是一個(gè)開源數(shù)據(jù)庫(kù)別名時(shí)序數(shù)據(jù)庫(kù)馏谨,針對(duì)時(shí)間序列數(shù)據(jù)的快速,高可用性存儲(chǔ)和檢索進(jìn)行了優(yōu)化附迷。 InfluxDB非常適合運(yùn)營(yíng)監(jiān)控惧互,應(yīng)用指標(biāo)和實(shí)時(shí)分析哎媚。
[展示數(shù)據(jù)]
Grafana 是純 Javascript 開發(fā)的前端工具,用于訪問(wèn)InfluxDB壹哺,自定義報(bào)表抄伍、顯示圖表等艘刚。
面板(Dashboard)用別人寫好面板直接導(dǎo)入
然后從別人編輯好面板復(fù)制https://grafana.com/dashboards/928ID到上面
3).最后看到一切都o(jì)k的圖表管宵,是不是很happy。
第一張:
第二張: