線上質(zhì)量監(jiān)控:資源監(jiān)控儀表盤Grafana

image.png

官方是解釋Grafana

Grafana是用于可視化大型測(cè)量數(shù)據(jù)的開(kāi)源程序,他提供了強(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ù)源的特性。

image.png

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最基本的展示單位。

image.png

每個(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)控制面板展示不同的圖表。

image.png

Dashboard 儀表盤

儀表盤是Grafana里面最重要的展示部分。

儀表盤可以視為一組一個(gè)或多個(gè)面板組成的一個(gè)集合,來(lái)展示各種各樣的面板。

儀表盤還可以使用 模板 來(lái)允許用戶交互式的選擇數(shù)據(jù)來(lái)展示。

image.png

儀表盤也可以通過(guò) 注釋 來(lái)標(biāo)記出各種各樣的事件。

image.png

儀表盤也支持通過(guò)多種不同的方式來(lái)共享,支持通過(guò)鏈接的方式共享或者導(dǎo)出JSON等格式的文件。

Alerting 警報(bào)

以可視方式定義最重要指標(biāo)的警報(bào)規(guī)則。Grafana將不斷評(píng)估它們并發(fā)送通知。


image.png

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寫的程序,它開(kāi)放一個(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)
image.png

導(dǎo)入成功后,你將看到監(jiān)控頁(yè)面,大功告成!?。?/p>

image.png

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)開(kāi)發(fā)人員可輕松添加支持其他服務(wù)的擴(kuò)展。

[存儲(chǔ)數(shù)據(jù)]

InfluxDB是一個(gè)開(kāi)源數(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 開(kāi)發(fā)的前端工具,用于訪問(wèn)InfluxDB,自定義報(bào)表、顯示圖表等。

面板(Dashboard)用別人寫好面板直接導(dǎo)入
image
image

然后從別人編輯好面板復(fù)制https://grafana.com/dashboards/928ID到上面

image

3).最后看到一切都o(jì)k的圖表,是不是很happy。

第一張:

image

第二張:

image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容