当前位置:首页 > 科技  > 软件

Go 语言开发的基于指标的监控系统 Prometheus

来源: 责编: 时间:2023-11-06 08:54:16 433观看
导读01 介绍Go 语言开发的基于指标的监控系统 Prometheus,主要采用拉取方式收集监控数据,通过 Pushgateway 也可以采用推送方式收集监控数据。关于 Prometheus 的客户端库和 PromQL 的使用,是 Go 开发者重点需要掌握的部分。

01 介绍

Go 语言开发的基于指标的监控系统 Prometheus,主要采用拉取方式收集监控数据,通过 Pushgateway 也可以采用推送方式收集监控数据。TIV28资讯网——每日最新资讯28at.com

关于 Prometheus 的客户端库和 PromQL 的使用,是 Go 开发者重点需要掌握的部分。TIV28资讯网——每日最新资讯28at.com

本文我们介绍通过使用 Prometheus 官方提供的 golang 客户端库,使用 Counter 数据类型记录 HTTP 接口的调用量。TIV28资讯网——每日最新资讯28at.com

02 安装、启动 Prometheus server

Prometheus server 可以直接使用二进制文件的方式安装,在 Prometheus 官网[1]下载二进制文件,示例:TIV28资讯网——每日最新资讯28at.com

  1. 下载二进制文件。
  2. 解压缩二进制文件。
  3. 启动 Prometheus server。
cd ~/Downloadwget https://github.com/prometheus/prometheus/releases/download/v2.48.0-rc.2/prometheus-2.48.0-rc.2.darwin-amd64.tar.gztar zxvf prometheus-2.48.0-rc.2.darwin-amd64.tar.gzcd prometheus-2.48.0-rc.2.darwin-amd64lltotal 472152-rw-r--r--@ 1 frank  staff      11357 10 13 00:41 LICENSE-rw-r--r--@ 1 frank  staff       3773 10 13 00:41 NOTICEdrwxr-xr-x@ 4 frank  staff        128 10 13 00:41 console_librariesdrwxr-xr-x@ 9 frank  staff        288 10 13 00:41 consoles-rwxr-xr-x@ 1 frank  staff  123733776 10 13 00:09 prometheus-rw-r--r--@ 1 frank  staff        934 10 13 00:41 prometheus.yml-rwxr-xr-x@ 1 frank  staff  117982832 10 13 00:11 promtool./prometheus --config.file=prometheus.yaml

启动 Prometheus server 后,可以在浏览器访问 http://localhost:9090/graph,查看 Prometheus 提供的可视化控制面板,也可以使用 Grafana。TIV28资讯网——每日最新资讯28at.com

03 Golang 客户端库

安装并成功启动 Prometheus server 后,我们就可以通过 Prometheus 官方提供的 Golang 客户端库在我们的 Go 项目代码埋点。TIV28资讯网——每日最新资讯28at.com

Prometheus client 支持 4 种数据类型,分别是 Counter、Gauge、Histogram 和 Summary。TIV28资讯网——每日最新资讯28at.com

本文我们以 Counter 数据类型为例,介绍如何在 Go 项目中使用 Prometheus go client 库的函数埋点。TIV28资讯网——每日最新资讯28at.com

所谓埋点,就是在我们的 Go 项目中,导入 github.com/prometheus/client_golang/prometheus,调用库函数,记录监控数据。TIV28资讯网——每日最新资讯28at.com

示例代码:TIV28资讯网——每日最新资讯28at.com

package promimport "github.com/prometheus/client_golang/prometheus"var ( labelNames     = []string{"service", "code", "path", "method"} RequestCounter = prometheus.NewCounterVec(  prometheus.CounterOpts{   Name: "http_request_count_total",   Help: "Total number of HTTP requests made.",  }, labelNames, ))func init() { prometheus.MustRegister(RequestCounter)}

阅读上面这段代码,我们调用 prometheus.NewCounterVec(),记录 HTTP 接口的调用量。TIV28资讯网——每日最新资讯28at.com

我们为 HTTP 接口定义 4 个标签,分别是 service,code,path,method。TIV28资讯网——每日最新资讯28at.com

然后通过 /metrics 接口,让 Prometheus server 拉取数据。TIV28资讯网——每日最新资讯28at.com

curl http://localhost:8080/metrics// ...# HELP http_request_count_total Total number of HTTP requests made.# TYPE http_request_count_total counterhttp_request_count_total{code="200",method="GET",path="/metrics",service="example-service"} 3http_request_count_total{code="200",method="GET",path="/ping",service="example-service"} 2// ...

04 修改配置文件

接下来,我们需要修改 YAML 格式的配置文件 prometheus.yaml,添加一个 job。TIV28资讯网——每日最新资讯28at.com

scrape_configs:  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.  - job_name: "prometheus"    # metrics_path defaults to '/metrics'    # scheme defaults to 'http'.    static_configs:      - targets: ["localhost:9090"]  # Example service  - job_name: "example-service"    static_configs:      - targets: ["localhost:8080"]

阅读上面这段代码,我们在 prometheus.yaml 的 scrape_configs 部分,添加一个 job。TIV28资讯网——每日最新资讯28at.com

然后重启 Prometheus server,使修改后的配置文件生效。TIV28资讯网——每日最新资讯28at.com

05 总结

本文我们通过示例,介绍怎么使用 Prometheus 监控 Go 项目,读者朋友们可以参照文章,动手操作一遍。TIV28资讯网——每日最新资讯28at.com

感兴趣的读者朋友们,阅读 Prometheus golang client[2] 官方文档,了解更多。TIV28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-17179-0.htmlGo 语言开发的基于指标的监控系统 Prometheus

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: Ydata_Profiling:自动生成数据探索报告的Python库

下一篇: ListUtils技巧大全:提升你的Java列表操作效率

标签:
  • 热门焦点
  • 从 Pulsar Client 的原理到它的监控面板

    背景前段时间业务团队偶尔会碰到一些 Pulsar 使用的问题,比如消息阻塞不消费了、生产者消息发送缓慢等各种问题。虽然我们有个监控页面可以根据 topic 维度查看他的发送状态,
  • 如何正确使用:Has和:Nth-Last-Child

    我们可以用CSS检查,以了解一组元素的数量是否小于或等于一个数字。例如,一个拥有三个或更多子项的grid。你可能会想,为什么需要这样做呢?在某些情况下,一个组件或一个布局可能会
  • 分享六款相见恨晚的PPT模版网站, 祝你做出精美的PPT!

    1、OfficePLUSOfficePLUS网站旨在为全球Office用户提供丰富的高品质原创PPT模板、实用文档、数据图表及个性化定制服务。优点:OfficePLUS是微软官方网站,囊括PPT模板、Word模
  • 只需五步,使用start.spring.io快速入门Spring编程

    步骤1打开https://start.spring.io/,按照屏幕截图中的内容创建项目,添加 Spring Web 依赖项,并单击“生成”按钮下载 .zip 文件,为下一步做准备。请在进入步骤2之前进行解压。图
  • JVM优化:实战OutOfMemoryError异常

    一、Java堆溢出堆内存中主要存放对象、数组等,只要不断地创建这些对象,并且保证 GC Roots 到对象之间有可达路径来避免垃 圾收集回收机制清除这些对象,当这些对象所占空间超过
  • 大厂卷向扁平化

    来源:新熵作者丨南枝 编辑丨月见大厂职级不香了。俗话说,兵无常势,水无常形,互联网企业调整职级体系并不稀奇。7月13日,淘宝天猫集团启动了近年来最大的人力制度改革,目前已形成一
  • OPPO K11采用全方位护眼屏:三大护眼能力减轻视觉疲劳

    日前OPPO官方宣布,全新的OPPO K11将于7月25日正式发布,将主打旗舰影像,和同档位竞品相比,其最大的卖点就是将配备索尼IMX890主摄,堪称是2000档位影像表
  • 苹果140W USB-C充电器:采用氮化镓技术

    据10 月 30 日 9to5 Mac 消息报道,当苹果推出新的 MacBook Pro 2021 时,该公司还推出了新的 140W USB-C 充电器,附赠在 MacBook Pro 16 英寸机型的盒子里,也支
  • AI艺术欣赏体验会在上海梅赛德斯奔驰中心音乐俱乐部上演

    光影交错的镜像世界,虚实幻化的视觉奇观,虚拟偶像与真人共同主持,这些场景都出现在2019世界人工智能大会的舞台上。8月29日至31日,“AI艺术欣赏体验会”在上海
Top