go-zero docker-compose 搭建課件服務(wù)(七):prometheus+grafana服務(wù)監(jiān)控

0、轉(zhuǎn)載

go-zero docker-compose 搭建課件服務(wù)(七):prometheus+grafana服務(wù)監(jiān)控

0.1源碼地址

https://github.com/liuyuede123/go-zero-courseware

1古拴、什么是prometheus

Prometheus是一個(gè)開源的系統(tǒng)監(jiān)控和警報(bào)工具包。自2012年啟動(dòng)以來枯冈,許多公司和組織都采用了Prometheus伦连,該項(xiàng)目擁有非常活躍的開發(fā)人員和用戶社區(qū)磕洪。它現(xiàn)在是一個(gè)獨(dú)立的開源項(xiàng)目搅吁,獨(dú)立于任何公司進(jìn)行維護(hù)威创。Prometheus于2016年加入云原生計(jì)算基金會(huì)落午,成為繼Kubernetes之后的第二個(gè)托管項(xiàng)目。

特性:

  • 一個(gè)多維數(shù)據(jù)模型那婉,包含由指標(biāo)名稱和鍵/值對(duì)(Tag)標(biāo)識(shí)的時(shí)間序列數(shù)據(jù)
  • PromQL是一種靈活的查詢語音板甘,用于查詢并利用這些維度數(shù)據(jù)
  • 不依賴分布式存儲(chǔ),單個(gè)服務(wù)器節(jié)點(diǎn)是自治的
  • 時(shí)間序列收集是通過HTTP上的pull模型進(jìn)行的(支持Pull)
  • 推送時(shí)間序列是通過一個(gè)中間網(wǎng)關(guān)來支持的(也支持Push)
  • 目標(biāo)是通過服務(wù)發(fā)現(xiàn)或靜態(tài)配置發(fā)現(xiàn)的
  • 多種模式的圖形和儀表盤支持

2详炬、什么是grafana

grafana是用于可視化大型測(cè)量數(shù)據(jù)的開源程序盐类,他提供了強(qiáng)大和優(yōu)雅的方式去創(chuàng)建、共享呛谜、瀏覽數(shù)據(jù)在跳。dashboard中顯示了你不同metric數(shù)據(jù)源中的數(shù)據(jù)。

Grafana是一個(gè)開源的隐岛,擁有豐富dashboard和圖表編輯的指標(biāo)分析平臺(tái)猫妙,和Kibana不同的是Grafana專注于時(shí)序類圖表分析,而且支持多種數(shù)據(jù)源聚凹,如Prometheus割坠、Graphite、InfluxDB妒牙、Elasticsearch彼哼、Mysql、K8s湘今、Zabbix等敢朱。

3、prometheus部署

根目錄下增加prometheus的Dockerfile

FROM bitnami/prometheus:latest

LABEL maintainer="liuyuede123 <liufutianoppo@163.com>"

增加prometheus配置

# my global config
global:
  scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.
  # scrape_timeout is set to the global default (10s).

# Alertmanager configuration
alerting:
  alertmanagers:
    - static_configs:
        - targets:
          # - alertmanager:9093

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
# - "first_rules.yml"
# - "second_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'file_ds'
    file_sd_configs:
      - files:
          - targets.json
[
  {
    "targets": ["user-api:9081"],
    "labels": {
      "job": "user-api",
      "app": "user-api",
      "env": "test",
      "instance": "user-api:8300"
    }
  },
  {
    "targets": ["user-rpc:9091"],
    "labels": {
      "job": "user-rpc",
      "app": "user-rpc",
      "env": "test",
      "instance": "user-api:9300"
    }
  },
  {
    "targets": ["courseware-api:9082"],
    "labels": {
      "job": "courseware-api",
      "app": "courseware-api",
      "env": "test",
      "instance": "courseware-api:8400"
    }
  },
  {
    "targets": ["courseware-rpc:9092"],
    "labels": {
      "job": "courseware-rpc",
      "app": "courseware-rpc",
      "env": "test",
      "instance": "courseware-rpc:9400"
    }
  }
]

文件結(jié)構(gòu)如下

prometheus
├── Dockerfile
├── prometheus.yml
└── target.json

docker-compose中增加prometheus配置摩瞎,默認(rèn)9090端口

...

prometheus:
  build:
    context: ./prometheus
  environment:
    - TZ=Asia/Shanghai
  privileged: true
  volumes:
    - ./prometheus/prometheus.yml:/opt/bitnami/prometheus/conf/prometheus.yml  # 將 prometheus 配置文件掛載到容器里
    - ./prometheus/target.json:/opt/bitnami/prometheus/conf/targets.json  # 將 prometheus 配置文件掛載到容器里
  ports:
    - "9090:9090"                     # 設(shè)置容器9090端口映射指定宿主機(jī)端口拴签,用于宿主機(jī)訪問可視化web
  networks:
    - backend
  restart: always


user-api配置中增加

...
Prometheus:
  Host: 0.0.0.0
  Port: 9081
  Path: /metrics
 

user-rpc配置中增加

...
Prometheus:
  Host: 0.0.0.0
  Port: 9091
  Path: /metrics

courseware-api配置中增加

...
Prometheus:
  Host: 0.0.0.0
  Port: 9082
  Path: /metrics

courseware-rpc配置中增加

Prometheus:
  Host: 0.0.0.0
  Port: 9092
  Path: /metrics

刪除容器和鏡像重新生成構(gòu)建容器docker-compose up -d --build

瀏覽器中訪問http://localhost:9090/到prometheus后臺(tái)查看是否生效

訪問http://localhost:9090/targets?search=可以看到,4個(gè)服務(wù)的metrics都進(jìn)來了

[圖片上傳失敗...(image-6c3070-1666052299927)]

請(qǐng)求用戶詳情接口旗们,然后訪問下http://localhost:9090/graph蚓哩,搜索欄中輸入{app="user-api"},會(huì)看到

[圖片上傳失敗...(image-683994-1666052299927)]

4上渴、部署grafana

新建grafana文件夾岸梨,并創(chuàng)建Dockerfile

FROM grafana/grafana:latest

LABEL maintainer="liuyuede123 <liufutianoppo@163.com>"

docker-compose中新增grafana服務(wù)

 ... 
  
  grafana:
    build:
      context: ./grafana
    environment:
      - TZ=Asia/Shanghai
    privileged: true
    ports:
      - "3000:3000"
    networks:
      - backend
    restart: always

刪除容器和鏡像重新生成構(gòu)建容器docker-compose up -d --build

訪問http://localhost:3000/,默認(rèn)賬號(hào)admin驰贷,密碼admin

點(diǎn)擊設(shè)置新增數(shù)據(jù)源

[圖片上傳失敗...(image-ba738-1666052299927)]

[圖片上傳失敗...(image-7770b4-1666052299927)]

新增看板

[圖片上傳失敗...(image-c241c3-1666052299927)]

[圖片上傳失敗...(image-e0b032-1666052299927)]

數(shù)據(jù)源選擇prometheus統(tǒng)計(jì)user-api qps然后點(diǎn)擊保存

[圖片上傳失敗...(image-a845ed-1666052299927)]

[圖片上傳失敗...(image-d4026f-1666052299927)]

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市洛巢,隨后出現(xiàn)的幾起案子括袒,更是在濱河造成了極大的恐慌,老刑警劉巖稿茉,帶你破解...
    沈念sama閱讀 222,627評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件锹锰,死亡現(xiàn)場離奇詭異芥炭,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)恃慧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,180評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門园蝠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人痢士,你說我怎么就攤上這事彪薛。” “怎么了怠蹂?”我有些...
    開封第一講書人閱讀 169,346評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵善延,是天一觀的道長。 經(jīng)常有香客問我城侧,道長易遣,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,097評(píng)論 1 300
  • 正文 為了忘掉前任嫌佑,我火速辦了婚禮豆茫,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘屋摇。我一直安慰自己揩魂,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,100評(píng)論 6 398
  • 文/花漫 我一把揭開白布摊册。 她就那樣靜靜地躺著肤京,像睡著了一般。 火紅的嫁衣襯著肌膚如雪茅特。 梳的紋絲不亂的頭發(fā)上忘分,一...
    開封第一講書人閱讀 52,696評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音白修,去河邊找鬼妒峦。 笑死,一個(gè)胖子當(dāng)著我的面吹牛兵睛,可吹牛的內(nèi)容都是我干的肯骇。 我是一名探鬼主播,決...
    沈念sama閱讀 41,165評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼祖很,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼笛丙!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起假颇,我...
    開封第一講書人閱讀 40,108評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤胚鸯,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后笨鸡,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體姜钳,經(jīng)...
    沈念sama閱讀 46,646評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡坦冠,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,709評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了哥桥。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片辙浑。...
    茶點(diǎn)故事閱讀 40,861評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖拟糕,靈堂內(nèi)的尸體忽然破棺而出判呕,到底是詐尸還是另有隱情,我是刑警寧澤已卸,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布佛玄,位于F島的核電站,受9級(jí)特大地震影響累澡,放射性物質(zhì)發(fā)生泄漏梦抢。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,196評(píng)論 3 336
  • 文/蒙蒙 一愧哟、第九天 我趴在偏房一處隱蔽的房頂上張望奥吩。 院中可真熱鬧,春花似錦蕊梧、人聲如沸霞赫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,698評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽端衰。三九已至,卻和暖如春甘改,著一層夾襖步出監(jiān)牢的瞬間旅东,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,804評(píng)論 1 274
  • 我被黑心中介騙來泰國打工十艾, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留抵代,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,287評(píng)論 3 379
  • 正文 我出身青樓忘嫉,卻偏偏與公主長得像荤牍,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子庆冕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,860評(píng)論 2 361

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