演示服务

img

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

首先准备 golang 环境:

☸ ➜ wget https://golang.org/dl/go1.16.3.linux-amd64.tar.gz 
# 如果github无法克隆,可以使用该地址:https://gitee.com/lvzhenjiang/prometheus_demo_service.git 进行克隆!
☸ ➜ 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 version go version go1.16.3 linux/amd64 

然后 clone 代码构建:

# 首先clone代码(建议使用ssh模式,你懂的~) 
☸ ➜ git clone https://github.com/cnych/prometheus_demo_service 
☸ ➜ cd prometheus_demo_service 
# 配置 GOPROXY 代理 
☸ ➜ export GOPROXY=https://goproxy.cn 
# 构建 
☸ ➜ env GOOS=linux GOARCH=amd64 go build -o prometheus_demo_service 

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

☸ ➜ ps -aux |grep demo 
root      12035  8.1  0.5 850844 22828 pts/0    Sl   18:05   0:20 ./prometheus_demo_service --listen-address=:10000
root      12058  8.2  0.5 908440 22192 pts/0    Sl   18:05   0:20 ./prometheus_demo_service --listen-address=:10001
root      12080  8.2  0.4 842904 16840 pts/0    Sl   18:05   0:20 ./prometheus_demo_service --listen-address=:10002
prometheus.yml

上面 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
    scrape_timeout: 10s
    static_configs:
      - targets:
          - demo-service-0:10000
          - demo-service-1:10001
          - demo-service-2:10002

这里我们将 3 个服务配置到名为 demo 的抓取任务中,为了看上去更加清晰,这里我们使用 demo-service- 来代替服务地址,直接在 Prometheus 所在节点的 /etc/hosts 文件中添加上对应服务的映射:

☸ ➜ cat /etc/hosts
192.168.99.11 demo-service-0
192.168.99.11 demo-service-1
192.168.99.11 demo-service-2

img

配置完成后直接启动 Prometheus 服务即可(可以参考前面的安装配置章节):

☸ ➜ ./prometheus 

启动后可以在 /targets 页面查看是否在正确抓取监控指标:

img

该演示服务模拟了一些用于我们测试的监控指标,包括:

  • 暴露请求计数和响应时间(以 path、method 和响应状态码为标签 key)的 HTTP API 服务
  • 一个定期的批处理任务,它暴露了最后一次成功运行的时间戳和处理的字节数
  • 有关 CPU 数量及其使用情况的综合指标
  • 有关内存使用情况的综合指标
  • 有关磁盘总大小及其使用情况的综合指标
  • 其他指标......

我们将在后面查询各个指标时了解更多关于它们的信息。

posted @ 2023-04-08 10:28  吕振江  阅读(4)  评论(0)    收藏  举报
浏览器标题切换
浏览器标题切换end