我开发了一些http服务器,它以这种格式返回了一些指标
Some_Metrics{host="server01", key_="system.cpu.util.usage"} 3
Some_Metrics{host="server01", key_="vfs.fs.size[/data,free]"} 7016763392
Some_Metrics{host="server01", key_="system.uname"} Linux server01 4.1.12-94.3.9.el7uek.x86_64 #2 SMP Fri Jul 24 03:09:40 PDT 2017 x86_64
Some_Metrics{host="server02", key_="system.cpu.util.usage"} 2
Some_Metrics{host="server02", key_="vfs.fs.size[/data,free]"} 6016763392
Some_Metrics{host="server02", key_="system.uname"} Linux server02 4.1.12-94.3.9.el7uek.x86_64 #2 SMP Fri Jul 24 01:09:40 PDT 2017 x86_64
在普罗米修斯的prometheus.yml 我添加了部分
- job_name: some_metrics
metrics_path: /metrics
static_configs:
- targets: ['server01:8001']
params:
collect[]:
- textfile
重启Prometheus服务器。
在日志模块中启动了工作。
在我尝试在普罗米修斯找到新指标之后,但我没有找到......
使用此请求:
http://server01:9090/api/v1/query_range?query={host=%22server01%22}&start=1513629658.0&end=1513633258.0&step=60
http://server01:9090/api/v1/query_range?query=some_metrics&start=1513629658.0&end=1513633258.0&step=60
为什么我没有制定新指标?怎么解决这个问题?
答案 0 :(得分:0)
错误no token found
表示解析服务的指标输出时出错。
我对此并不确定,但我认为您只能提供数字作为值,但您的uname系列会发布一个字符串:
Some_Metrics{host="server02", key_="system.uname"} Linux server02 4.1.12-94.3.9.el7uek.x86_64 #2 SMP Fri Jul 24 01:09:40 PDT 2017 x86_64
提供此信息的常用方法是将其放入标签:
Some_Metrics{host="server02", key_="system.uname", uname="Linux server02 4.1.12-94.3.9.el7uek.x86_64 #2 SMP Fri Jul 24 01:09:40 PDT 2017 x86_64"}
此外,您似乎正在自己编写指标数据。如果是这样,您还应该看看这些文档:
修改:您还可以使用promtool验证指标。如果必须安装,可以直接安装:
go install github.com/prometheus/prometheus/cmd/promtool
否则它应该是您的普罗米修斯发行版的一部分。
你必须通过stdin传递它,如下所示:
$ promtool check metrics < so47876976
error while linting: text format parsing error in line 3: expected float as value, got "Linux"
或者使用curl直接验证端点:
$ curl server01:8001/metrics | promtool check metrics
这不应该抛出任何错误。如果此命令成功并且抓取仍然不起作用,则存在其他问题。