prometheus + grafna 監(jiān)控

前提

項目重要技術(shù)棧主要是Spring cloud 2.x + docker

現(xiàn)狀

項目中使用到Spring boot admin 迎变,zipkin范咨,以及http上報等形式收集數(shù)據(jù)氛谜,mysql持久化必要數(shù)據(jù)君账,在superset上連接數(shù)據(jù)源,以圖表的形式展示數(shù)據(jù)

改進(jìn)目標(biāo)

目前有多個緯度瞎饲,不同的監(jiān)控平臺口叙,需要登陸多個地址去查看不同的數(shù)據(jù),稍顯繁瑣企软,并且數(shù)據(jù)統(tǒng)計形式比較亂庐扫,查看也不方便,希望有一個統(tǒng)一的監(jiān)控平臺

選型

最后選擇Prometheus和Grafna
監(jiān)控產(chǎn)品有很多仗哨,比如Prometheus形庭,Graphite,InfluxDB厌漂,OpenTSDB等有很多時間序列數(shù)據(jù)庫萨醒。有興趣可以去官網(wǎng)看下Prometheus和其他產(chǎn)品的對比。

快速搭建過程

這個僅僅是一個快速上手的描述苇倡,如果有需要請按照官方文檔說下進(jìn)行按需配置富纸。

  1. 項目中改動:
    引入Jar包,最新版本可以去maven倉庫尋找
<dependency>
      <groupId>io.micrometer</groupId>
      <artifactId>micrometer-registry-prometheus</artifactId>
      <version>1.0.8</version>
    </dependency>
  </dependencies>

yml文件中添加配置:

management:
  security:
    enabled: false
  endpoints:
    web:
      exposure:
        include: '*'

ps:這個改動是因為Spring boot 2.x 默認(rèn)只暴露info和health接口囤踩,需要暴露出其他接口。(*是圖測試省事晓褪,如果服務(wù)暴露公網(wǎng)的情況堵漱,自己酌情暴露需要的服務(wù),一般情況下是不需要暴露公網(wǎng)的)
這兩步過后涣仿,啟動服務(wù)勤庐,就會采集一些監(jiān)控信息,并且通過http://localhost:8080/actuator/prometheus進(jìn)行暴露出來好港,可以看到metric數(shù)據(jù)愉镰。原理就是prometheus定時去掃描配置文件中配置的targets,獲取metric然后存入prometheus中钧汹。

  1. docker啟動prometheus+grafna
    編寫prometheus.xml的簡單配置文件丈探,配置項有很多,詳情參考官方文檔:
global:
  scrape_interval:     5s
  evaluation_interval: 5s
scrape_configs:
  - job_name: 'metric_job'
    metrics_path: '/actuator/prometheus'
    static_configs:
    - targets: ['localhost:8080'] #Provide your ip and Do not give localhost as we are running the Prometheus in docker
      labels:
        application: demo-service

ps:注意事項
在docker環(huán)境下拔莱,promethus 配置job掃描機(jī)器和 grafna配置數(shù)據(jù)源都需要使用真實IP碗降。上面targets是寫死的機(jī)器IP和端口,這個為了靈活性最好配置成類似consul注冊中心的形式塘秦,prometheus支持主流的配置中心遗锣,請移步文檔查看。還有生產(chǎn)中請不要單機(jī)運行嗤形,查看文檔如何集群部署。

  1. 編寫docker-compose文件
version: '3'

services:
  prometheus:
    image: prom/prometheus
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
    ports:
      - 9090:9090
  grafana:
    image: grafana/grafana
    ports:
      - 3000:3000
    depends_on:
      - prometheus
  1. 啟動docker容器
docker-compose up -d

啟動完成后校驗一下:
prometheus訪問:http://localhost:9090
grafna 訪問:http://localhost:3000

grafna配置監(jiān)控項

主要配置監(jiān)控內(nèi)容:

  1. Basic
    應(yīng)用啟動時間弧圆,運行時長赋兵,cpu使用率,內(nèi)存使用率等


    image.png
  2. JVM
    Eden搔预,Survivor霹期,Old,MetaData 等Space拯田,classload數(shù)历造,線程數(shù),gc數(shù)船庇,gc停頓時長等信息


    image.png
  3. Http
    Http請求數(shù)吭产,Http響應(yīng)時長,各個狀態(tài)碼等請求數(shù)鸭轮,請求速率(QPS)等


    image.png
  4. Log
    各種級別log等數(shù)量臣淤,主要關(guān)注error和warn~

  5. 其他
    根據(jù)actuator/prometheus接口的收集的內(nèi)容,結(jié)合prometheus提供的各種函數(shù)窃爷,可以根據(jù)需求顯示自己想要的監(jiān)控信息邑蒋。
    ps: 重點P辗洹!医吊!理清自己的需求钱慢,需要監(jiān)控那些信息,熟悉prometheus的各種使用方式和函數(shù)卿堂。官方文檔~束莫!
    比如:

topk(5, sum(rate(http_requests_total[$__range])) by (instance))

比如$__range == 1m,統(tǒng)計instance這個實例1m內(nèi)請求速率等top5

  1. 統(tǒng)計機(jī)器信息
    通過在本地安裝node_exporter這個go服務(wù),可以收集本地機(jī)器的監(jiān)控信息御吞。具體信息詳情查看官方文檔
配置grafna等小技巧(官方文檔中有):
  1. 配置變量
    在dashboard等setting中配置麦箍,下圖配置都prometheus都兩個變量,application 和 instance陶珠,instance根據(jù)application來獲取的挟裂,很方便靈活


    image.png

    使用變量,通過$variable來使用


    image.png

    最后是使用效果揍诽,根據(jù)配置的變量诀蓉,選擇變量,下面的dashboard會相應(yīng)的變動暑脆。
    image.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末渠啤,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子添吗,更是在濱河造成了極大的恐慌沥曹,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件碟联,死亡現(xiàn)場離奇詭異妓美,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)鲤孵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進(jìn)店門壶栋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人普监,你說我怎么就攤上這事贵试。” “怎么了凯正?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵毙玻,是天一觀的道長。 經(jīng)常有香客問我漆际,道長淆珊,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任奸汇,我火速辦了婚禮施符,結(jié)果婚禮上往声,老公的妹妹穿的比我還像新娘。我一直安慰自己戳吝,他們只是感情好浩销,可當(dāng)我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著听哭,像睡著了一般慢洋。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上陆盘,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天普筹,我揣著相機(jī)與錄音,去河邊找鬼隘马。 笑死太防,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的酸员。 我是一名探鬼主播蜒车,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼幔嗦!你這毒婦竟也來了酿愧?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤邀泉,失蹤者是張志新(化名)和其女友劉穎嬉挡,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體汇恤,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡棘伴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了屁置。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡仁连,死狀恐怖蓝角,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情饭冬,我是刑警寧澤使鹅,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站昌抠,受9級特大地震影響患朱,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜炊苫,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一裁厅、第九天 我趴在偏房一處隱蔽的房頂上張望冰沙。 院中可真熱鬧,春花似錦执虹、人聲如沸拓挥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽侥啤。三九已至,卻和暖如春茬故,著一層夾襖步出監(jiān)牢的瞬間盖灸,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工磺芭, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留赁炎,地道東北人。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓徘跪,卻偏偏與公主長得像甘邀,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子垮庐,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,077評論 2 355

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