【发布时间】:2021-02-05 12:02:00
【问题描述】:
使用:
Kubernetes: 1.18.8
Helm: 3.3.4
Datadog DaemonSet agent: 7.23.0
Datadog cluster-agent: 1.9.0
Azure Database for PostgreSQL 11.x (i.e. external postgres-service)
我正在将 Datadog 部署为 DaemonSet,并使用here 提供的说明将集群代理启用到 Kubernetes 集群。
helm install my-kubernetes -f values.yaml --set datadog.apiKey=<DATADOG_API_KEY> datadog/datadog --set targetSystem=linux
我正在使用指定的 values.yaml 文件配置 Datadog。
我想做一些自定义指标,特别是使用以前称为 postgres.yaml 的集成。我已经尝试按照在here 找到的values.yaml 模板中指定的方式执行此操作,就像这样(将其放在集群代理中,因为这些是集群范围的指标):
# clusterAgent.confd -- Provide additional cluster check configurations
## Each key will become a file in /conf.d
## ref: https://docs.datadoghq.com/agent/autodiscovery/
confd:
postgres.yaml: |-
init_config:
instances:
- host: my-postgres-host.com
port: 5432
username: my-user
password: some-password
dbname: some-database
ssl: True
tags:
- some_tag
custom_queries:
- metric_prefix: some.prefix
query: SELECT COUNT(*) FROM bla WHERE timestamp > NOW() - INTERVAL '1 hour';
columns:
- name: countLastHour
type: count
根据文档,我可以确认使用 |- 前缀确实会在节点上的路径 /etc/datadog-agent/conf.d/postgres.yaml 中创建一个文件,我希望它会在该位置创建一个文件。该文件正确包含块中的所有内容,即以init_config:...开头
现在,在启动节点时,我在日志中看到了这一点(调试):
'/conf.d/postgres.yaml' -> '/etc/datadog-agent/conf.d/postgres.yaml' /conf.d/..2020_10_22_10_22_27.239825358 -> /etc/datadog-agent/conf.d/..2020_10_22_10_22_27.239825358 '/conf.d/..2020_10_22_10_22_27.239825358/postgres.yaml' -> '/etc/datadog-agent/conf.d/..2020_10_22_10_22_27.239825358/postgres.yaml'
2020-10-22 10:22:29 UTC |集群 |调试 | (pkg/autodiscovery/providers/file.go:196 在 collectEntry) |成立 文件中的有效配置:/etc/datadog-agent/conf.d/postgres.yaml
2020-10-22 10:22:29 UTC |集群 |调试 | (getChecks 中的 pkg/collector/scheduler.go:154)|无法加载支票 来自配置“postgres”的实例:核心检查加载器:检查 postgres 在目录中找不到
2020-10-22 10:22:29 UTC |集群 |错误 | (GetChecksFromConfigs 中的 pkg/collector/scheduler.go:201)| 无法 加载检查:无法从配置“postgres”加载任何检查
文档 here 指出,代理 v7.x 中的 postgres yaml 内容实际上应该在 /etc/datadog-agent/conf.d/postgres.d/conf.yaml 中,而不是在 /etc/datadog-agent/conf.d/postgres.yaml 中。无法在配置键中创建子文件夹/使用正斜杠(在内部,文件是使用 ConfigMap 创建的)。
我什至不确定问题是 yaml 文件路径还是缺少核心集成。所以我的主要任务是:如何在我的设置中正确启用 Datadog postgres-integration?
【问题讨论】:
-
我认为你需要的是
advancedConfd而不是confd。这样,您的 postgres(以及任何其他自定义配置 YAML)都在/etc/datadog-agent/conf.d/postgres.d/下创建