首页 > 其他分享 >go语言学习-配置简单的exporter

go语言学习-配置简单的exporter

时间:2023-03-09 23:31:55浏览次数:56  
标签:exporter http 语言 8090 ping pingCounter 指标 prometheus go

参考promethues文档,构建简单的exporter

​https://prometheus.io/docs/tutorials/instrumenting_http_server_in_go/​

编写简单的http服务端

在本机上用go编写一个服务端 ,访问127.0.0.1:8090/ping,服务器将会响应pong

package main

import (
"fmt"
"net/http"
)

//路由函数
func ping(w http.ResponseWriter, req *http.Request) {
fmt.Fprintf(w, "pong")
}

func main() {
//数据路由
http.HandleFunc("/ping", ping)
//监听端口
http.ListenAndServe(":8090", nil)
}

运行后,网页访问,如下输出

go语言学习-配置简单的exporter_服务器

增加指标并注册

现在让我们向服务器添加一个指标,该指标将检测向 ping 端点发出的请求数,计数器指标类型适用于此,因为我们知道请求计数不会下降,只会增加。

整体实例代码如下:

package main

import (
"fmt"
"net/http"
"github.com/prometheus/client_golang/prometheus" //prometheues官方库
"github.com/prometheus/client_golang/prometheus/promhttp"
)

//创建prometheus计数器
var pingCounter = prometheus.NewCounter(
prometheus.CounterOpts{
Name: "ping_request_count",
Help: "No of request handled by Ping handler",
},
)
//更新 ping 处理程序以使用 pingCounter.Inc() 增加计数器的计数。
func ping(w http.ResponseWriter, req *http.Request) {
pingCounter.Inc()
fmt.Fprintf(w, "pong")
}
//然后将计数器注册到默认寄存器并公开指标。
func main() {
//MustRegister 函数将 pingCounter 注册到默认 Register。
//为了公开指标,Go Prometheus 客户端库提供了 promhttp 包。舞会。Handler() 提供了一个 http。
//公开在默认寄存器中注册的指标的处理程序。
prometheus.MustRegister(pingCounter)
http.HandleFunc("/ping", ping)
http.Handle("/metrics", promhttp.Handler())
http.ListenAndServe(":8090", nil)
}

运行代码,此时访问http://127.0.0.1:8090/metrics,就能看到提供的metric指标

go语言学习-配置简单的exporter_服务端_02

此时,只要在prometheus的server端,在prometheus.yml配置文件中,添加如下配置,就能完成监控

global:
scrape_interval: 15s

scrape_configs:
- job_name: prometheus
static_configs:
- targets: ["localhost:9090"]
- job_name: simple_server
static_configs:
- targets: ["localhost:8090"]

运行prometheus,重新加载配置

prometheus --config.file=prometheus.yml

go语言学习-配置简单的exporter_服务端_03

检查prometheus

登录,检查是否已经监控

go语言学习-配置简单的exporter_github_04

tagerts已经存在

查询对应指标

go语言学习-配置简单的exporter_服务端_05

go语言学习-配置简单的exporter_服务器_06

至此,基本的最简单的exporter就完成了

标签:exporter,http,语言,8090,ping,pingCounter,指标,prometheus,go
From: https://blog.51cto.com/u_11555417/6111415

相关文章