Go服务监控搭建入门 | 教程

本文介绍了如何使用Prometheus和Grafana搭建Go服务的监控系统。从架构简介、准备镜像、服务编排到Grafana监控面板配置,详细讲解了每个步骤,包括编写Go服务的示例代码、Dockerfile和docker-compose配置。最后,通过Grafana创建了Go服务的监控面板,展示了如何监控goroutine、线程、内存等关键指标。
摘要由CSDN通过智能技术生成

前言

一直以来都想知道现在「Go服务监控」是如何搭建和工作的,于是最近就抽了点时间去学习下这服务监控的搭建过程。

我选用的技术栈是「prometheus + grafana」。

架构简介

整体的简易架构如下:

  • Grafana:作为UI,提供了丰富的监控面板。

  • Prometheus:Prometheus是一个监控&时序数据库。

  • 需要被监控的服务:需要被监控的服务按照标准提供一个metrics接口,Prometheus会去通过暴露的这个接口拉取数据。Go已经有封装好的包github.com/prometheus/client_golang/prometheus,我们直接采用就可以了。

准备镜像

选取Prometheus镜像,如下:

docker pull bitnami/prometheus:2.26.0
docker run -d -p 9090:9090 bitnami/prometheus:2.26.0

选取Grafana镜像,如下:

docker pull bitnami/grafana:7.5.4
docker run -d -p 3000:3000 bitnami/grafana:7.5.4

Go服务demo代码镜像:

首先我们选用现有封装好的代码包,如下:

// 选用现有的prometheus包
go get github.com/prometheus/client_golang/prometheus
go get github.com/prometheus/client_golang/prometheus/promauto
go get github.com/prometheus/client_golang/prometheus/promhttp

demo代码如下:

package main

import (
	"net/http"

	"github.com/prometheus/client_golang/prometheus/promhttp"
)

func main() {
	// 对外提供/metrics接口
	http.Handle("/metrics", promhttp.Handler())
	http.ListenAndServe(":2112", nil)
}

启动Go服务,curl请求接口:

curl http://localhost:2112/metrics

获取到监控指标数据如下:

# HELP go_gc_
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值