项目目录: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
代码分析
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 文章推荐
官方文档有点难啃,可以看这个入门一下: