PromQL 演示服务

网友投稿 488 2022-11-30

PromQL 演示服务

PromQL 演示服务

演示服务

为了尽可能详细地给大家演示 PromQL 指标查询,这里我们将 Fork 一个开源的 Prometheus 演示服务来进行查询,这样可以让我们更加灵活地对指标数据进行控制,项目仓库地址:​​Go 语言开发的服务,我们可以自己构建应用。

首先准备 golang 环境:

☸ ➜ wget ➜ rm -rf /usr/local/go && tar -C /usr/local -xzf go1.16.3.linux-amd64.tar.gz# 配置环境变量,可以将下面命令添加到 /etc/profile 中☸ ➜ export PATH=$PATH:/usr/local/go/bin# 执行go命令验证☸ ➜ go versiongo version go1.16.3 linux/amd64

然后 clone 代码构建:开始准备构建项目

# 首先clone代码(建议使用ssh模式,你懂的~)☸ ➜ git clone ➜ cd prometheus_demo_service# 配置 GOPROXY 代理☸ ➜ export GOPROXY=构建☸ ➜ env GOOS=linux GOARCH=amd64 go build -o prometheus_demo_service //进行编译[root@master prometheus_demo_service]# lsapi.go client.go crossbuild.sh Dockerfile go.sum intermittent_metric.go memory.gobatch.go cpu.go disk.go go.mod holiday.go main.go prometheus_demo_service这是编译打包出来的二进制程序,可以直接启动监听的端口是8080 [root@master prometheus_demo_service]# ./prometheus_demo_service [root@master ~]# netstat -tpln | grep 8080tcp6 0 0 :::8080 :::* LISTEN 20916/./prometheus_

# HELP demo_api_The current number of API HTTP requests in progress.# TYPE demo_api_gaugedemo_api_1# HELP demo_api_request_duration_seconds A histogram of the API HTTP request durations in seconds.# TYPE demo_api_request_duration_seconds histogramdemo_api_request_duration_seconds_bucket{method="GET",path="/api/bar",status="200",le="0.0001"} 0demo_api_request_duration_seconds_bucket{method="GET",path="/api/bar",status="200",le="0.00015000000000000001"} 0demo_api_request_duration_seconds_bucket{method="GET",path="/api/bar",status="200",le="0.00022500000000000002"} 0demo_api_request_duration_seconds_bucket{method="GET",path="/api/bar",status="200",le="0.0003375"} 0demo_api_request_duration_seconds_bucket{method="GET",path="/api/bar",status="200",le="0.00050625"} 0demo_api_request_duration_seconds_bucket{method="GET",path="/api/bar",status="200",le="0.000759375"} 0demo_api_request_duration_seconds_bucket{method="GET",path="/api/bar",status="200",le="0.0011390624999999999"} 0demo_api_request_duration_seconds_bucket{method="GET",path="/api/bar",status="200",le="0.0017085937499999998"} 0demo_api_request_duration_seconds_bucket{method="GET",path="/api/bar",status="200",le="0.0025628906249999996"} 0demo_api_request_duration_seconds_bucket{method="GET",path="/api/bar",status="200",le="0.0038443359374999994"} 0demo_api_request_duration_seconds_bucket{method="GET",path="/api/bar",status="200",le="0.00576650390625"} 0demo_api_request_duration_seconds_bucket{method="GET",path="/api/bar",status="200",le="0.008649755859375"} 0demo_api_request_duration_seconds_bucket{method="GET",path="/api/bar",status="200",le="0.0129746337890625"} 22demo_api_request_duration_seconds_bucket{method="GET",path="/api/bar",status="200",le="0.01946195068359375"} 600demo_api_request_duration_seconds_bucket{method="GET",path="/api/bar",status="200",le="0.029192926025390625"} 612demo_api_request_duration_seconds_bucket{method="GET",path="/api/bar",status="200",le="0.043789389038085935"} 660

构建完成后启动 3 个服务,分别监听 10000、10001、10002 端口:

[root@master ~]# netstat -tpln | grep 1000tcp6 0 0 :::10000 :::* LISTEN 26720/./prometheus_ tcp6 0 0 :::10001 :::* LISTEN 27270/./prometheus_ tcp6 0 0 :::10002 :::* LISTEN 27326/./prometheus_ [root@master prometheus_demo_service]# nohup ./prometheus_demo_service --listen-address=:10000 &[1] 26720[root@master prometheus_demo_service]# nohup: ignoring input and appending output to ?.ohup.out?[root@master prometheus_demo_service]# nohup ./prometheus_demo_service --listen-address=:10001 &[2] 27270[root@master prometheus_demo_service]# nohup: ignoring input and appending output to ?.ohup.out?[root@master prometheus_demo_service]# [root@master prometheus_demo_service]# nohup ./prometheus_demo_service --listen-address=:10002 &[3] 27326

上面 3 个服务都在 ​​/metrics​​ 端点暴露了一些指标数据,我们可以把这 3 个服务配置到 Prometheus 抓取任务中,这样后续就可以使用这几个服务来进行 PromQL 查询说明了。

完整的 ​​prometheus.yml​​ 配置文件如下所示:

global: scrape_interval: 5s # 抓取频率scrape_configs: - job_name: "prometheus" static_configs: - targets: ["localhost:9090"] # 配置demo抓取任务 - job_name: demo scrape_interval: 15s //会覆盖global的全局配置 scrape_timeout: 10s static_configs: - targets: - demo-service-0:10000 - demo-service-1:10001 - demo-service-2:10002

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Kubelet clusterDNS参数
下一篇:PromQL 标签过滤时间序列
相关文章

 发表评论

暂时没有评论,来抢沙发吧~