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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了go语言学习-配置简单的exporter相关的知识,希望对你有一定的参考价值。

参考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_github_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_服务器_04

tagerts已经存在

查询对应指标

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

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

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

以上是关于go语言学习-配置简单的exporter的主要内容,如果未能解决你的问题,请参考以下文章

hadoop_exporter

golang 环境变量配置

go环境变量配置 (GOROOT和GOPATH)

Go语言-配置管理神器viper

GolangStudy-001-环境配置

Go开发环境配置