如何在 helm chart 中使用 postgres-exporter 的 --extend.query-path 参数?
How to use --extend.query-path paramether of postgres-exporter in helm chart?
我们有 metrics.yaml
文件需要作为参数传递给 postgres-exporter。如何添加它并使其在图表中使用,如下所示:https://github.com/helm/charts/blob/master/stable/prometheus-postgres-exporter/Chart.yaml ?
可以在values.yaml中设置,如果可以的话,如何设置?
我已经按照helm chart例子设置好了:
customMetrics:
pg_database:
query: "SELECT d.datname AS name, CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT') THEN pg_catalog.pg_database_size(d.datname) ELSE 0 END AS size_bytes FROM pg_catalog.pg_database d where datname not in ('template0', 'template1', 'postgres')"
metrics:
- name:
usage: "LABEL"
description: "Name of the database"
- size_bytes:
usage: "GAUGE"
description: "Size of the database in bytes"
一切都部署良好,但导出器未返回此指标
image:
registry: docker.io
repository: bitnami/postgres-exporter
tag: 0.10.0-debian-10-r27
日志显示获取指标没有问题,没有错误,异常:
ts=2021-08-13T12:04:39.850Z caller=log.go:168 level=info msg="Listening on address" address=:9187
level=info ts=2021-08-13T12:04:39.850Z caller=tls_config.go:191 msg="TLS is disabled." http2=false
ts=2021-08-13T12:04:40.973Z caller=log.go:168 level=info msg="Established new database connection" fingerprint=127.0.0.1:5432
ts=2021-08-13T12:04:40.998Z caller=log.go:168 level=debug msg="Querying PostgreSQL version" server=127.0.0.1:5432
ts=2021-08-13T12:04:41.007Z caller=log.go:168 level=info msg="Semantic version changed" server=127.0.0.1:5432 from=0.0.0 to=11.12.0
ts=2021-08-13T12:04:41.007Z caller=log.go:168 level=debug msg="Column is being forced to discard due to version incompatibility" column=flush_location
ts=2021-08-13T12:04:41.007Z caller=log.go:168 level=debug msg="Column is being forced to discard due to version incompatibility" column=procpid
ts=2021-08-13T12:04:41.007Z caller=log.go:168 level=debug msg="Column is being forced to discard due to version incompatibility" column=write_location
ts=2021-08-13T12:04:41.007Z caller=log.go:168 level=debug msg="Column is being forced to discard due to version incompatibility" column=pg_xlog_location_diff
ts=2021-08-13T12:04:41.007Z caller=log.go:168 level=debug msg="Column is being forced to discard due to version incompatibility" column=sent_location
ts=2021-08-13T12:04:41.007Z caller=log.go:168 level=debug msg="Column is being forced to discard due to version incompatibility" column=replay_location
ts=2021-08-13T12:04:41.007Z caller=log.go:168 level=debug msg="Querying pg_setting view" server=127.0.0.1:5432
ts=2021-08-13T12:04:41.022Z caller=log.go:168 level=debug msg="Querying namespace" namespace=pg_locks
ts=2021-08-13T12:04:41.040Z caller=log.go:168 level=debug msg="Querying namespace" namespace=pg_stat_replication
ts=2021-08-13T12:04:41.050Z caller=log.go:168 level=debug msg="Querying namespace" namespace=pg_replication_slots
ts=2021-08-13T12:04:41.052Z caller=log.go:168 level=debug msg="Querying namespace" namespace=pg_stat_archiver
ts=2021-08-13T12:04:41.067Z caller=log.go:168 level=debug msg="Querying namespace" namespace=pg_stat_activity
ts=2021-08-13T12:04:41.072Z caller=log.go:168 level=debug msg="Querying namespace" namespace=pg_stat_bgwriter
ts=2021-08-13T12:04:41.073Z caller=log.go:168 level=debug msg="Querying namespace" namespace=pg_stat_database
ts=2021-08-13T12:04:41.074Z caller=log.go:168 level=debug msg="Querying namespace" namespace=pg_stat_database_conflicts
ts=2021-08-13T12:04:49.847Z caller=log.go:168 level=debug msg="Querying PostgreSQL version" server=127.0.0.1:5432
在日志中我没有看到 pg_database 查询。
原因是在 customMetrics:
之前的额外 space 中没有注释。它应该与
中的image
处于同一级别
image:
registry: docker.io
repository: bitnami/postgres-exporter
tag: 0.10.0-debian-10-r27
pullPolicy: IfNotPresent
问题是错误的位置也得到了正确验证。
我们有 metrics.yaml
文件需要作为参数传递给 postgres-exporter。如何添加它并使其在图表中使用,如下所示:https://github.com/helm/charts/blob/master/stable/prometheus-postgres-exporter/Chart.yaml ?
可以在values.yaml中设置,如果可以的话,如何设置?
我已经按照helm chart例子设置好了:
customMetrics:
pg_database:
query: "SELECT d.datname AS name, CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT') THEN pg_catalog.pg_database_size(d.datname) ELSE 0 END AS size_bytes FROM pg_catalog.pg_database d where datname not in ('template0', 'template1', 'postgres')"
metrics:
- name:
usage: "LABEL"
description: "Name of the database"
- size_bytes:
usage: "GAUGE"
description: "Size of the database in bytes"
一切都部署良好,但导出器未返回此指标
image:
registry: docker.io
repository: bitnami/postgres-exporter
tag: 0.10.0-debian-10-r27
日志显示获取指标没有问题,没有错误,异常:
ts=2021-08-13T12:04:39.850Z caller=log.go:168 level=info msg="Listening on address" address=:9187
level=info ts=2021-08-13T12:04:39.850Z caller=tls_config.go:191 msg="TLS is disabled." http2=false
ts=2021-08-13T12:04:40.973Z caller=log.go:168 level=info msg="Established new database connection" fingerprint=127.0.0.1:5432
ts=2021-08-13T12:04:40.998Z caller=log.go:168 level=debug msg="Querying PostgreSQL version" server=127.0.0.1:5432
ts=2021-08-13T12:04:41.007Z caller=log.go:168 level=info msg="Semantic version changed" server=127.0.0.1:5432 from=0.0.0 to=11.12.0
ts=2021-08-13T12:04:41.007Z caller=log.go:168 level=debug msg="Column is being forced to discard due to version incompatibility" column=flush_location
ts=2021-08-13T12:04:41.007Z caller=log.go:168 level=debug msg="Column is being forced to discard due to version incompatibility" column=procpid
ts=2021-08-13T12:04:41.007Z caller=log.go:168 level=debug msg="Column is being forced to discard due to version incompatibility" column=write_location
ts=2021-08-13T12:04:41.007Z caller=log.go:168 level=debug msg="Column is being forced to discard due to version incompatibility" column=pg_xlog_location_diff
ts=2021-08-13T12:04:41.007Z caller=log.go:168 level=debug msg="Column is being forced to discard due to version incompatibility" column=sent_location
ts=2021-08-13T12:04:41.007Z caller=log.go:168 level=debug msg="Column is being forced to discard due to version incompatibility" column=replay_location
ts=2021-08-13T12:04:41.007Z caller=log.go:168 level=debug msg="Querying pg_setting view" server=127.0.0.1:5432
ts=2021-08-13T12:04:41.022Z caller=log.go:168 level=debug msg="Querying namespace" namespace=pg_locks
ts=2021-08-13T12:04:41.040Z caller=log.go:168 level=debug msg="Querying namespace" namespace=pg_stat_replication
ts=2021-08-13T12:04:41.050Z caller=log.go:168 level=debug msg="Querying namespace" namespace=pg_replication_slots
ts=2021-08-13T12:04:41.052Z caller=log.go:168 level=debug msg="Querying namespace" namespace=pg_stat_archiver
ts=2021-08-13T12:04:41.067Z caller=log.go:168 level=debug msg="Querying namespace" namespace=pg_stat_activity
ts=2021-08-13T12:04:41.072Z caller=log.go:168 level=debug msg="Querying namespace" namespace=pg_stat_bgwriter
ts=2021-08-13T12:04:41.073Z caller=log.go:168 level=debug msg="Querying namespace" namespace=pg_stat_database
ts=2021-08-13T12:04:41.074Z caller=log.go:168 level=debug msg="Querying namespace" namespace=pg_stat_database_conflicts
ts=2021-08-13T12:04:49.847Z caller=log.go:168 level=debug msg="Querying PostgreSQL version" server=127.0.0.1:5432
在日志中我没有看到 pg_database 查询。
原因是在 customMetrics:
之前的额外 space 中没有注释。它应该与
image
处于同一级别
image:
registry: docker.io
repository: bitnami/postgres-exporter
tag: 0.10.0-debian-10-r27
pullPolicy: IfNotPresent
问题是错误的位置也得到了正确验证。