GRPC: 如何在 gRPC 服務(wù)中加入 Prometheus 監(jiān)控?

      網(wǎng)友投稿 662 2025-04-04

      介紹

      本文將介紹如何在 gRPC 微服務(wù)中,加入 prometheus 監(jiān)控。

      gRPC 函數(shù)的自動(dòng)監(jiān)控,將會(huì)在后續(xù)的文章中介紹,這里我們只介紹如何在 gRPC 代碼中,實(shí)現(xiàn) prometheus 監(jiān)控。

      我們將會(huì)使用 rk-boot 來啟動(dòng) gRPC 服務(wù)。

      我們將會(huì)使用 rk-prom 來啟動(dòng) prometheus 客戶端。

      GRPC: 如何在 gRPC 服務(wù)中加入 Prometheus 監(jiān)控?

      安裝

      go get github.com/rookie-ninja/rk-boot

      快速開始

      詳細(xì)文檔可參考:

      官方文檔

      或者,Github

      1.創(chuàng)建 boot.yaml

      --- grpc: - name: greeter # Name of grpc entry port: 8080 # Port of grpc entry enabled: true # Enable grpc entry prom: enabled: true # Enable prometheus client # path: "metrics" # Default value is "metrics", set path as needed.

      2.創(chuàng)建 main.go

      package main import ( "context" "github.com/rookie-ninja/rk-boot" ) // Application entrance. func main() { // Create a new boot instance. boot := rkboot.NewBoot() // Bootstrap boot.Bootstrap(context.Background()) // Wait for shutdown sig boot.WaitForShutdownSig(context.Background()) }

      3.啟動(dòng) main.go

      $ go run main.go

      4.驗(yàn)證

      訪問:http://localhost:8080/metrics

      Prometheus 客戶端中添加監(jiān)控

      我們需要先了解 Prometheus 中的如下概念。

      1.在 main.go 中添加監(jiān)控項(xiàng)

      package main import ( "context" "github.com/rookie-ninja/rk-boot" "github.com/rookie-ninja/rk-prom" ) // Application entrance. func main() { // Create a new boot instance. boot := rkboot.NewBoot() // Bootstrap boot.Bootstrap(context.Background()) // Create a metrics set into prometheus.Registerer set := rkprom.NewMetricsSet("rk", "demo", boot.GetGrpcEntry("greeter").GwEntry.PromEntry.Registerer) // Register counter, gauge, histogram, summary set.RegisterCounter("my_counter", "label") set.RegisterGauge("my_gauge", "label") set.RegisterHistogram("my_histogram", []float64{}, "label") set.RegisterSummary("my_summary", rkprom.SummaryObjectives, "label") // Increase counter, gauge, histogram, summary with label value set.GetCounterWithValues("my_counter", "value").Inc() set.GetGaugeWithValues("my_gauge", "value").Add(1.0) set.GetHistogramWithValues("my_histogram", "value").Observe(0.1) set.GetSummaryWithValues("my_summary", "value").Observe(0.1) // Wait for shutdown sig boot.WaitForShutdownSig(context.Background()) }

      2.啟動(dòng) main.go

      $ go run main.go

      3.驗(yàn)證

      訪問:http://localhost:8080/metrics

      推送到 prometheus pushgateway

      接下來,我們看一下,如何讓 gRPC 服務(wù),自動(dòng)把監(jiān)控?cái)?shù)據(jù)推送到遠(yuǎn)程 Pushgateway 中。

      1.boot.yaml 中啟動(dòng) pusher

      --- grpc: - name: greeter # Name of grpc entry port: 8080 # Port of grpc entry enabled: true # Enable grpc entry prom: enabled: true # Enable prometheus client pusher: enabled : true # Enable backend job push metrics to remote pushgateway jobName: "demo" # Name of current push job remoteAddress: "localhost:9091" # Remote address of pushgateway intervalMs: 2000 # Push interval in milliseconds # basicAuth: "user:pass" # Basic auth of pushgateway # cert: # ref: "ref" # Cert reference defined in CertEntry. Please see advanced user guide for details.

      2.在本地啟動(dòng) pushgateway

      我們使用 docker 啟動(dòng) pushgateway

      $ docker run prom/pushgateway -p 9091:9091

      3.啟動(dòng) main.go

      $ go run main.go

      4.驗(yàn)證

      訪問:http://localhost:8080/metrics

      Docker

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。

      上一篇:excel表頭斜線字排版怎么做(excel怎么制作表格斜線表頭)
      下一篇:excel表格里怎么設(shè)置單元格顏色
      相關(guān)文章
      日韩精品亚洲专区在线影视| 亚洲av无码日韩av无码网站冲| 亚洲AV无码国产精品永久一区| 亚洲一级视频在线观看| 亚洲色图视频在线观看| 91亚洲va在线天线va天堂va国产| 亚洲国产一二三精品无码| 久久亚洲国产精品五月天婷| 国产啪亚洲国产精品无码| 亚洲一区二区精品视频| 在线亚洲人成电影网站色www| 在线a亚洲v天堂网2019无码| 国产AV无码专区亚洲AV手机麻豆| 亚洲一区视频在线播放| 亚洲综合色区在线观看| 中文字幕日韩亚洲| 国产精品亚洲A∨天堂不卡 | 亚洲成AV人片高潮喷水| 亚洲人成网站色7799| 亚洲AV无码专区亚洲AV桃| 亚洲国产精品无码久久| 亚洲午夜久久久精品影院| 亚洲精品tv久久久久久久久| 亚洲日韩在线观看| 亚洲国产一区视频| 国产亚洲精品AA片在线观看不加载| 日本中文一区二区三区亚洲| 亚洲av无码无线在线观看 | 亚洲色偷偷偷鲁综合| 久久精品国产亚洲av麻| 亚洲乱码国产一区三区| 亚洲永久无码3D动漫一区| 国产亚洲情侣一区二区无码AV| 亚洲人成网站在线观看青青| 亚洲第一区在线观看| 亚洲精品一级无码中文字幕| 亚洲AV无码片一区二区三区 | 亚洲免费日韩无码系列| 亚洲午夜日韩高清一区| 亚洲伊人久久综合中文成人网| 欧美激情综合亚洲一二区|