概述
所有可以向Prometheus提供監(jiān)控樣本數(shù)據(jù)的程序都可以被稱為一個Exporter.而Exporter的一個實例稱為target,如圖下所示,
Prometheus通過輪詢的方式定期從這些target中獲取樣本數(shù)據(jù):
這里Prometheus是通過pull(拉取的方式)從Target中獲取樣本數(shù)據(jù)
安裝好Exporter后會暴露一個/metrics的HTTP服務(wù),通過Prometheus添加配置Prometheus就可以采集到這個/metrics里面的所有監(jiān)控樣本數(shù)據(jù)
- targets: ['node_exporter:9100'] 會自動帶上/metrics
Exporter的來源
從exporter的來源上來講,一共分倆類:
社區(qū)提供的
社區(qū)提供 (prometheus.io/docs/instru…)
Prometheus社區(qū)提供了豐富的Exporter實現(xiàn),涵蓋了從基礎(chǔ)設(shè)施,中間件一級網(wǎng)絡(luò)等各個方面的監(jiān)控功能.這些Exporter可以實現(xiàn)大部分通用的監(jiān)控需求.下表列舉一些社區(qū)中常用的Exporter:
| 使用范圍 | 常用的Exporter |
|---|---|
| 數(shù)據(jù)庫 | MySQL Exporter,RedisExporter,MongDB Exporter,MSSQL Exporter等 |
| 硬件 | Apcupsd Exporter,IoT Edison Exporter,IPMI Exporter等 |
| 消息隊列 | Kafka Exporter,RabbitMQ Exporter,NSQ Exporter等 |
| 存儲 | Ceph Exporter,Gluster Exporter,HDFS Exporter,等 |
| HTTP服務(wù) | Apache Exporter,HAProxy Exporter,Nginx Exporter等 |
| API服務(wù) | AWS Exporter,Docker Cloud Exporter,Docker Hub Exporter,GitHub Exporter等 |
| 日志 | Flue Exporter,Grok Exporter等 |
| 監(jiān)控系統(tǒng) | Collectd Exporter,Graphite Exporter,InfluxDB Exporter,Nagios Exporter等 |
| 其他 | Blockbox Exporter,JIRA Exporter,Jenkins Exporter,Confluence Exporter等 |
用戶自定義
除了直接使用社區(qū)提供的Exporter程序意外,用戶還可以基于Prometheus提供的Client Library創(chuàng)建自己的Exporter程序,目前Prometheus社區(qū)官方提供了對以下編程語言的支持:Go,java,Python,Ruby.同事還有第三方實現(xiàn)的如:Bash,C++,Common Lisp,Erlang,Haskeel,Lua,Node.js,PHP,Rust等.
Exporter類型
通常來說可以將Exporter分為倆類
直接采集型 這類Exporter直接內(nèi)置了相應(yīng)的應(yīng)用程序,用于向Prometheus直接提供Target數(shù)據(jù)支持.這樣設(shè)計的好處是,可以更好的監(jiān)控各自系統(tǒng)的內(nèi)部運行狀態(tài),同時也適合更多自定義監(jiān)控指標(biāo)的項目實施.例如k8s 等.他們均內(nèi)置了用于Prometheus提供監(jiān)控數(shù)據(jù)的端點.
間接采集型 原始監(jiān)控目標(biāo)并不直接支持Prometheus,需要我們使用Prometheus提供的Client Library編寫該監(jiān)控目標(biāo)的監(jiān)控采集程序,用戶可以將該程序獨立運行,去獲取指定的各類監(jiān)控數(shù)據(jù)值.例如,由于Linux操作系統(tǒng)自身并不能直接支持Prometheus.用戶無法從操作系統(tǒng)層面上直接提供對Prometheus的支持,因此單獨安裝Node Exporter,還有數(shù)據(jù)庫或網(wǎng)站HTTP應(yīng)用類等Exporter.
Exporter規(guī)范
所有的Exporter程序都需要按照Prometheus的規(guī)范,返回監(jiān)控的樣本數(shù)據(jù).以Node Exporter為例,當(dāng)訪問/metrics結(jié)尾地址時會返回一下內(nèi)容:
go_gc_duration_seconds{quantile="0"} 4.029e-05 go_gc_duration_seconds{quantile="0.25"} 5.2092e-05 go_gc_duration_seconds{quantile="0.5"} 6.3091e-05 go_gc_duration_seconds{quantile="0.75"} 8.9905e-05 go_gc_duration_seconds{quantile="1"} 0.000300032 go_gc_duration_seconds_sum 2.6172319120000003 go_gc_duration_seconds_count 36170 go_goroutines 9 go_info{version="go1.19.3"} 1 go_memstats_alloc_bytes 2.19788e+06
以#開頭的行通常都是注釋內(nèi)容,這些樣本數(shù)據(jù)集合說明如下:
以#HELP開始的行,表示metric的幫助與說明注釋,可以包含當(dāng)前監(jiān)控指標(biāo)名稱和對應(yīng)的說明信息.
以#TYPE開始的行,表示定義metric類型,可以包含當(dāng)前監(jiān)控指標(biāo)名稱和類型,類型有Counter,Gauge....
非#開頭的行,就是監(jiān)控樣本數(shù)據(jù)
樣本數(shù)據(jù)如何存儲Prometheus的庫中
go_memstats_alloc_bytes 2.19788e+06
go_memstats_alloc_bytes{instance="localhost:9090", job="prometheus"} timestamp(時間戳) value(樣本值)
鏈接:https://juejin.cn/post/7315240062651023401
審核編輯:劉清
-
JAVA
+關(guān)注
關(guān)注
20文章
2993瀏覽量
115278 -
HTTP
+關(guān)注
關(guān)注
0文章
530瀏覽量
34617 -
數(shù)據(jù)存儲
+關(guān)注
關(guān)注
5文章
1008瀏覽量
52290 -
C++語言
+關(guān)注
關(guān)注
0文章
147瀏覽量
7503
原文標(biāo)題:Prometheus實戰(zhàn)篇:什么是Exporter
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
小七免殺論壇vip 2013源碼免殺培訓(xùn)課程
prometheus做監(jiān)控服務(wù)的整個流程介紹
【電子書】《HELLO FPGA》- 項目實戰(zhàn)篇
如何開發(fā)符合AUTOSAR規(guī)范的電機(jī)控制器軟件
觸摸按鍵控制LED學(xué)習(xí)筆記
《HarmonyOS原子化服務(wù)卡片原理與實戰(zhàn)》清華大學(xué)出版社李洋著
筆記本無線上網(wǎng)之實戰(zhàn)篇
HELLO FPGA項目實戰(zhàn)篇的PDF電子書免費下載
【單片機(jī)】實戰(zhàn)篇:Keil+Proteus數(shù)碼管計數(shù)99
INTEL FPGA學(xué)習(xí)筆記
prometheus下載安裝教程
基于Prometheus開源的完整監(jiān)控解決方案

Prometheus實戰(zhàn)篇:Exporter知識概述
評論