postgresql Postgres Exporter无法解析我的自定义查询.yaml文件

mi7gmzs6  于 2023-06-22  发布在  PostgreSQL
关注(0)|答案(1)|浏览(275)

我无助地试图让我的postgres exporter运行,但徒劳。在运行我的postgres容器,然后运行我的postgres exporter容器如下:

terminal1%docker network create --subnet=192.168.1.0/24 --gateway=192.168.1.1 prometheus-net

terminal1%docker run --network=prometheus-net -p 5432:5432 -e POSTGRES_PASSWORD=password postgres

terminal2%docker run \
  --net=prometheus-net \
  -p 9187:9187 \
  -v /Users/johndoe/queries.yaml:/etc/postgres-exporter/queries.yaml \
  -e DATA_SOURCE_NAME="postgresql://postgres:password@192.168.1.2:5432/postgres?sslmode=disable" \
  quay.io/prometheuscommunity/postgres-exporter \
  --extend.query-path=/etc/postgres-exporter/queries.yaml

terminal3%cat /Users/johndoe/queries.yaml
custom_queries:
  - name: user_count
    help: "Total number of users"
    query: "SELECT COUNT(*) FROM users"
    metrics:
      - user_count:
          usage: "GAUGE"
          description: "Total number of users"

所以当我:terminal3%curl http://localhost:9187/metrics时,我在terminal2中得到这个错误:caller=postgres_exporter.go:674 level=error msg="Failed to reload user queries" path=/etc/postgres-exporter/queries.yaml err="yaml: unmarshal errors:\n line 2: cannot unmarshal !!seq into main.UserQuery"
我仔细检查了表users是否存在于模式postgres中,是的。导出器和postgres服务器之间的连接似乎也没有问题。我只是不知道为什么我的.yaml文件不能被解析。

66bbxpm5

66bbxpm51#

我的queries.yaml的语法有问题。正确的语法应该如下所示:

table_users_count:
  query: |
   SELECT
     COUNT(*) user_count
   FROM
     users
  metrics:
    - user_count:
        usage: "GAUGE"
        description: "Total number of users"

相关问题