[Pitaya Demo解读笔记]4.cluster_metrics demo

254 阅读1分钟

项目目录:examples/demo/custom_metrics

这个示例程序提供了 README 文档

这个例子在代码层面没什么特别好说的,主要是演示了监控指标如何使用

运行

本例中需要读取配置,直接使用 go run main.go 的形式会出现路径错误,需要先 build 然后运行:

 go build .
 ./custom_metrics.exe

按照文档说的,跑一下命令行:

 > pitaya-cli
 Pitaya REPL Client
 >>> connect localhost:3250
 Using json client
 connected!
 >>> request room.room.setcounter {"value": 1.0, "tag1": "value1", "tag2": "value2"}
 >>> sv->{"Code":200}
 >>> request room.room.setgauge1 {"value": 1.0, "tag1": "value1"}
 >>> sv->{"Code":200}
 >>> request room.room.setgauge2 {"value": 1.0, "tag2": "value2"}
 >>> sv->{"Code":200}
 >>> request room.room.setsummary {"value": 1.0, "tag1": "value1"}
 >>> sv->{"Code":200}

我这里是 windows,没有 curl 工具,直接在浏览器上看一下 localhost:9090/metrics

image-20231016145850527.png

代码分析

main 中读取 yaml 配置,并根据配置数据创建 builder,生成 app

 cfg := viper.New()
 cfg.AddConfigPath(".")
 cfg.SetConfigName("config")

在 yaml 配置里指定了 prometheus 监控系统的相关信息

代码上不详细看了,大概解释一下:

Pitaya 提供了对 prometheus 直接采集的支持,默认开放端口 9090,在普罗米修斯服务器上配置 targets,服务器通过 /metrics 获取相关监控数据。

可以修改 yaml 文件,手动指定监听端口:

 pitaya:
     metrics:
         prometheus:
             enable: true
             port: 9091
     ...

Prometheus 文章推荐

官方文档有点难啃,可以看这个入门一下:

Introduction - prometheus-book (gitbook.io)