无法在 Prometheus 中找到指标

Can't found Metrics in Prometheus

我开发了一些 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 服务器。

在日志模块中开始工作。

在我试图在 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

为什么我没有找到新指标?如何解决这个问题?

错误 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

否则它应该是您的 Prometheus 发行版的一部分。

你必须通过 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

这应该不会引发任何错误。如果此命令成功但抓取仍然不起作用,则存在不同的问题。