Datadog —— 免运维的一体化 SaaS 可观测平台(指标 / APM / 日志 / Monitor / Dashboard)

运维监控软件手册 07-商业与云监控 22.7 KB 原文

Datadog —— 免运维的一体化 SaaS 可观测平台(指标 / APM / 日志 / Monitor / Dashboard)

分类:07 商业与云监控 适用:混合云、多云、容器与微服务;从几台主机到上万主机,需要指标 + 链路 + 日志统一关联且不愿自建存储 一句话:装一个 Agent 即可把主机、应用、日志、链路送到 Datadog 云端,用 Monitor 与 Dashboard 统一告警与可视化 官方:https://www.datadoghq.com/ · 文档 https://docs.datadoghq.com/ 授权:商业 SaaS,按用量计费(主机 / 容器 / 日志 GB / 索引事件 / 自定义指标 / APM 主机与 span);提供免费试用与最多 5 台主机的免费版(1 天指标保留)。价格与免费额度以官方定价页为准

1. 它解决什么问题

自建监控要分别维护采集、时序库、日志管道、APM、告警与可视化,组件多、升级与扩容成本高。Datadog 把这些收敛为一个托管平台:

  • 一个 Agent 同时采集主机指标、容器、日志、APM trace、进程与网络数据,1000+ 官方 Integration 开箱即用。
  • 指标 / 链路 / 日志通过统一 Tag(env、service、version)自动关联,排障时可从一条慢 trace 直接下钻到日志与主机指标。
  • Monitor 统一做阈值、异常、组合告警与 On-call 通知;Dashboard / Notebook / SLO 免运维。
  • 适合:无专职监控平台团队、多云混合部署、需要快速覆盖 APM/RUM/安全的团队。不适合:数据严禁出境、要求完全可控存储、成本极度敏感的超大规模场景。

2. 核心概念与架构

2.1 术语表

术语 含义
Datadog Agent 部署在主机 / 容器 / K8s 的采集进程,含 core agent、trace-agent、process-agent、logs-agent
Intake Datadog 云端接收端点,按 DD_SITE 分流(US1/EU/US3/US5/AP1 等地域,以官方文档为准)
Metric / Custom Metric 内置指标与用户自定义指标;自定义指标按「指标名 + tag 组合」计费
DogStatsD Agent 内置 StatsD 兼容的本地 UDP/Unix Socket 指标聚合器(默认 UDP 8125)
APM / Trace / Span 分布式链路,应用经 ddtrace SDK 或 Single Step Instrumentation 上报(trace-agent 8126)
Logs 日志采集、Processing Pipeline、Index 与 Flex Storage(摄入与索引分别计费)
Monitor 告警规则,含 query、阈值、evaluation delay、通知消息与 renotify
Dashboard 可版本化的 JSON 看板,支持 Template Variable 与 Widget
Tag / Unified Service Tagging env / service / version 统一标签,是跨信号关联的基础
Integration 官方采集插件,配置放 conf.d/<name>.d/conf.yaml
Cluster Agent / Datadog Operator K8s 场景的集群级采集与 CRD 化管理
High-watermark billing 主机类按每小时计数,月末取低 99% 小时读数的最高值计费(剔除 1% 尖峰)

2.2 组件与数据流

 主机/容器/K8s              本地 Agent                     Datadog SaaS(Intake)        消费层
 ┌──────────────┐  ┌──────────────────────────────┐  ┌──────────────────┐  ┌────────────────┐
 │应用 /metrics │─▶│ core agent(checks/集成)       │─▶│ Metrics Intake   │─▶│ 时序存储       │
 │应用日志 stdout│─▶│ logs-agent(pipeline)          │─▶│ Logs Intake      │─▶│ 索引/Flex      │
 │ddtrace SDK   │─▶│ trace-agent(8126)             │─▶│ APM Intake       │─▶│ Trace/Service  │
 │业务埋点      │─▶│ DogStatsD(8125/UDP,聚合)      │─▶│ Metrics Intake   │  │ Map            │
 │K8s API       │◀─│ Cluster Agent/Autodiscovery   │  └────────┬─────────┘  └────────────────┘
 └──────────────┘  └──────────────────────────────┘           ▼
      HTTPS/443(仅出站)                              ┌────────────────────────────────┐
                                                    │ Monitor(求值query)→通知/On-call │
                                                    │ Dashboard / APM / Logs / SLO   │
                                                    └────────────────────────────────┘

Agent → Intake → 指标/APM/日志 → Monitor 链路:① 主机安装 Agent 并配置 api_key 与 site → ② core agent 定时跑 Integration/checks、logs-agent tail 日志、trace-agent 收 span、DogStatsD 聚合本地自定义指标 → ③ Agent 批量压缩后经 HTTPS 发到对应 DD_SITE 的 Intake(无需入站端口,只需出站 443)→ ④ 云端按数据类型落指标时序库 / APM / 日志索引 → ⑤ Monitor 对指标或日志查询按周期求值,超阈值进入 ALERT 状态并通过 @... 通知语法发 Slack / 邮件 / PagerDuty / Webhook → ⑥ Dashboard、Service Map、Log Explorer 统一消费带 Tag 的数据。

数据出境提示:Agent 主动把数据发送到所选地域的 SaaS,以官方站点与合规文档为准,境内业务需评估数据出境与等保要求。

3. 安装与部署

3.1 环境准备

项 要求
账号 / 密钥 注册 Datadog 组织,取得 API Key(Agent 上报)与 Application Key(调用 API);Organization Settings → API Keys
站点 DD_SITE 决定 Intake 与控制台地域(datadoghq.com、datadoghq.eu 等),以官方站点文档为准
主机 支持主流 Linux / Windows / macOS;Agent 7 为当前主线(具体版本以官方最新稳定版为准)
权限 Linux 需 root/sudo;容器需挂载 docker.sock;K8s 需能创建 DaemonSet、ClusterRole、Secret
网络 出站 HTTPS 443 到 Intake 与 install.datadoghq.com;如走代理配 DD_PROXY_HTTPS / proxy
资源 Agent 通常 100~300MB 内存起,容器/K8s 规模越大越高(以官方容量建议为准)
时间 主机需 NTP 同步,时间漂移会导致指标与 trace 被丢弃

3.2 多种安装方式

A. Linux 一键脚本(官方标准方式)/ B. 容器 / C. K8s / D. 包管理器

DD_AGENT_MAJOR_VERSION=7 DD_API_KEY=<DD_API_KEY> DD_SITE="datadoghq.com" \
  bash -c "$(curl -L https://install.datadoghq.com/scripts/install_script.sh)"
# B. Docker(tag 以官方最新稳定版为准)
docker run -d --name datadog-agent -e DD_API_KEY=<DD_API_KEY> -e DD_SITE="datadoghq.com" \
  -e DD_APM_ENABLED=true -e DD_LOGS_ENABLED=true -e DD_CONTAINER_EXCLUDE="name:datadog-agent" \
  -v /var/run/docker.sock:/var/run/docker.sock:ro -v /proc/:/host/proc/:ro \
  -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro gcr.io/datadoghq/agent:7
# C. K8s Helm(或用 Datadog Operator 的 DatadogAgent CRD,以官方文档为准)
helm repo add datadog https://helm.datadoghq.com && helm repo update
helm install <RELEASE> datadog/datadog -n datadog --create-namespace \
  --set datadog.apiKey=<DD_API_KEY> --set datadog.site=datadoghq.com \
  --set datadog.logs.enabled=true --set datadog.apm.enabled=true \
  --set clusterAgent.enabled=true -f values.yaml

D. 包管理器 / 配置管理:官方提供 RPM/DEB 仓库、Ansible / Chef / Puppet / SaltStack 模块与 Windows MSI;从 Integrations → Agent 选平台会生成带密钥的安装命令,以官方安装页为准。

⚠️ API Key 属敏感凭据,禁止写入公开 Git 仓库;K8s 用 Secret 引用,不放 values.yaml 明文。

3.3 首次启动与验证

sudo datadog-agent status                     # 汇总:Collector / DogStatsD / Logs / APM 健康
sudo datadog-agent check <INTEGRATION>        # 单集成自检(如 cpu、disk、http_check)
sudo datadog-agent configcheck                # 校验 conf.d 配置
sudo systemctl status datadog-agent
sudo tail -f /var/log/datadog/agent.log       # Linux 日志路径

控制台验证:Infrastructure → Host Map 几分钟内出现主机;Metrics → Explorer 搜 system.cpu.idle;APM → Services 出现已埋点服务;Logs → Explorer 有日志流。也可用 sudo datadog-agent flare 打包诊断信息发给官方支持(⚠️ 会上传本地配置与日志,发送前确认脱敏)。

4. 配置文件详解

4.1 datadog.yaml / 告警规则关键项

配置项 作用 建议
api_key / site 上报凭据与 Intake 地域 Secret / 环境变量注入,勿明文
hostname / tags 主机标识与全局标签 配 env:<ENV>、team:<TEAM>
logs_enabled / logs_config 启用日志采集与容器日志 true
apm_config.enabled 启用 trace-agent(8126) true
process_config / process_config.enabled 进程与容器实时数据 按需
dogstatsd_port / dogstatsd_socket DogStatsD UDP 端口 / UDS 路径 8125
use_dogstatsd / dogstatsd_metrics_stats_enable 开关与统计 true
proxy.https / proxy.no_proxy 出站代理 内网环境必配
logs_config.use_compression / logs_config.compression_level 上传压缩 true
conf.d/<integration>.d/conf.yaml 单个 Integration 实例配置(instances / init_config / logs) 见 §5.2
Monitor query / thresholds 告警查询表达式与阈值 avg(last_5m):... > 0.9
Monitor message / tags / notify_no_data 通知文案、标签、无数据告警 用 @... 指定渠道
Monitor renotify_interval / evaluation_delay 重复通知间隔 / 数据延迟容忍 按需

4.2 完整可运行最小 datadog.yaml

# /etc/datadog-agent/datadog.yaml —— 主机最小可用基线
api_key: <DD_API_KEY>
site: datadoghq.com                 # 以官方站点文档为准
hostname: <HOSTNAME>
tags: ["env:prod", "team:ops", "service:checkout"]
logs_enabled: true
apm_config: {enabled: true}
process_config: {enabled: "true"}  # 官方示例常用字符串值,以官方文档为准
dogstatsd_port: 8125
dogstatsd_metrics_stats_enable: true
use_dogstatsd: true
logs_config: {use_compression: true}
# proxy: {https: "http://<PROXY_HOST>:<PROXY_PORT>"}
sudo datadog-agent configcheck && sudo systemctl restart datadog-agent && sudo datadog-agent status | head -40

4.3 Integration / 告警规则配置示例

# /etc/datadog-agent/conf.d/http_check.d/conf.yaml
init_config:
instances:
  - name: checkout-health
    url: http://127.0.0.1:8080/health
    timeout: 2
    tags: ["env:prod", "service:checkout"]
logs:
  - {type: file, path: /var/log/checkout/*.log, source: python, service: checkout}
    log_processing_rules: [{type: multi_line, name: new_log_start_with_date, pattern: \d{4}-\d{2}-\d{2}}]

Monitor 规则(API JSON)见 §5.3;avg(last_5m) 为时间窗口聚合,critical/warning 分级,notify_no_data 与 no_data_timeframe 处理数据断流。

5. 核心使用方法

5.1 Agent / CLI 常用命令(22 条)

sudo datadog-agent status                                   # 1 总体健康
sudo datadog-agent check <INTEGRATION>                      # 2 单集成自检
sudo datadog-agent check <INTEGRATION> --check-rate         # 3 带速率自检
sudo datadog-agent configcheck                              # 4 校验 conf.d 配置
sudo datadog-agent config                                   # 5 打印运行时配置
sudo datadog-agent version                                  # 6 查看版本
sudo datadog-agent hostname                                 # 7 查看解析出的主机名
sudo datadog-agent flare --email <MAIL> --case-id <ID>      # 8 ⚠️ 打包诊断信息上传支持
sudo datadog-agent stop / start / restart                   # 9 进程控制
sudo systemctl start|stop|restart|status datadog-agent      # 10 systemd 服务管理
sudo -u dd-agent -- datadog-agent check <INTEGRATION>       # 11 以 Agent 用户身份自检
sudo datadog-agent stream-logs                              # 12 实时查看 logs-agent 状态
sudo datadog-agent stream-event-platform                    # 13 事件平台流
sudo datadog-agent diagnose                                 # 14 自动诊断(版本支持以官方文档为准)
sudo datadog-agent integration install -t <INTEGRATION>==<VERSION>  # 15 安装社区集成
sudo datadog-agent integration remove -t <INTEGRATION>     # 16 卸载集成
sudo datadog-agent integration freeze                       # 17 列出已装集成版本
sudo datadog-agent secret                                   # 18 查看 secrets 后端解析
sudo tail -f /var/log/datadog/agent.log                     # 19 主日志
sudo tail -f /var/log/datadog/trace-agent.log               # 20 trace-agent 日志
sudo ls /etc/datadog-agent/conf.d/                          # 21 已启用集成目录
docker logs -f datadog-agent                                # 22 容器方式查看日志

5.2 DogStatsD 与指标 / 日志 API

# DogStatsD 本地 UDP 上报(metric:value|type|@rate|#tag:v)
echo "checkout.order.count:1|c|#env:prod,service:checkout" | nc -u -w0 127.0.0.1 8125
echo "checkout.latency:123|h|#env:prod" | nc -u -w0 127.0.0.1 8125
echo "checkout.gauge:42|g|#env:prod" | nc -u -w0 127.0.0.1 8125
python -c "from datadog import initialize, statsd; initialize(); statsd.increment('checkout.order.count', tags=['env:prod'])"

# Metrics v2 API(提交自定义指标,端点以官方 API 文档为准)
curl -s -X POST "https://api.<DD_SITE>/api/v2/series" \
  -H "Content-Type: application/json" -H "DD-API-KEY: <DD_API_KEY>" \
  -d '{"series":[{"metric":"checkout.latency","type":1,"points":[{"timestamp":<EPOCH_SEC>,"value":123}],"tags":["env:prod","service:checkout"]}]}' | jq

# 查询指标(v1 query,时间窗为 Unix 秒)
curl -s -G "https://api.<DD_SITE>/api/v1/query" \
  -H "DD-API-KEY: <DD_API_KEY>" -H "DD-APPLICATION-KEY: <DD_APP_KEY>" \
  --data-urlencode "query=avg:system.cpu.user{env:prod}" \
  --data-urlencode "from=<FROM_EPOCH>" --data-urlencode "to=<TO_EPOCH>" | jq

5.3 Monitor API(完整 JSON)

curl -s -X POST "https://api.<DD_SITE>/api/v1/monitor" \
  -H "Content-Type: application/json" -H "DD-API-KEY: <DD_API_KEY>" -H "DD-APPLICATION-KEY: <DD_APP_KEY>" \
  -d '{"name":"[prod] 主机 CPU 使用率过高","type":"metric alert",
       "query":"avg(last_5m):avg:system.cpu.user{env:prod} by {host} > 0.9",
       "message":"CPU 超过 90%,请检查 {{host.name}}。\n @slack-ops-oncall @webhook-dingtalk @pagerduty",
       "tags":["env:prod","team:ops"],
       "options":{"thresholds":{"critical":0.9,"warning":0.8},"notify_no_data":true,
                  "no_data_timeframe":10,"renotify_interval":60,"evaluation_delay":60,
                  "include_tags":true,"new_group_delay":60},"priority":1}' | jq '.id, .name'
# 其余操作(路径与参数以官方 API 文档为准)
curl -s "https://api.<DD_SITE>/api/v1/monitor/<MONITOR_ID>" -H "DD-API-KEY: <DD_API_KEY>" -H "DD-APPLICATION-KEY: <DD_APP_KEY>" | jq
curl -s -X PUT "https://api.<DD_SITE>/api/v1/monitor/<MONITOR_ID>" -H "Content-Type: application/json" \
  -H "DD-API-KEY: <DD_API_KEY>" -H "DD-APPLICATION-KEY: <DD_APP_KEY>" -d '{"options":{"thresholds":{"critical":0.95}}}' | jq
curl -s -X DELETE "https://api.<DD_SITE>/api/v1/monitor/<MONITOR_ID>" -H "DD-API-KEY: <DD_API_KEY>" -H "DD-APPLICATION-KEY: <DD_APP_KEY>" | jq

5.4 Dashboard JSON(完整可运行)

{
  "title": "Checkout 服务概览", "description": "指标 + 日志关联看板", "layout_type": "ordered",
  "widgets": [
    {"definition": {"type": "timeseries", "title": "请求速率(按 service)",
      "requests": [{"q": "sum:trace.http.request.hits{env:prod,service:checkout} by {service}.as_rate()", "display_type": "line"}]},
     "layout": {"x": 0, "y": 0, "width": 6, "height": 3}},
    {"definition": {"type": "query_value", "title": "P99 延迟(ms)",
      "requests": [{"q": "p99:trace.http.request.duration{env:prod,service:checkout}"}]},
     "layout": {"x": 6, "y": 0, "width": 3, "height": 3}},
    {"definition": {"type": "log_stream", "title": "错误日志", "query": "service:checkout status:error",
      "columns": ["timestamp", "host", "service", "message"]},
     "layout": {"x": 0, "y": 3, "width": 9, "height": 4}}
  ],
  "template_variables": [{"name": "env", "prefix": "env", "default": "prod"}],
  "notify_list": [], "reflow_type": "auto"
}
curl -s -X POST "https://api.<DD_SITE>/api/v1/dashboard" \
  -H "Content-Type: application/json" -H "DD-API-KEY: <DD_API_KEY>" -H "DD-APPLICATION-KEY: <DD_APP_KEY>" \
  -d @dashboard.json | jq '.id, .url'

5.5 查询语言与 Web UI

  • 指标查询:avg:system.cpu.user{env:prod} by {host};支持 .as_rate()、rollup(sum, 60)、top()、anomalies()、forecast() 等函数(以官方 Querying 文档为准)。
  • 日志查询:service:checkout status:error @http.status_code:500,用 Facets 与 Pipeline 做结构化。
  • APM 查询:service:checkout env:prod resource_name:POST /order,Trace Explorer 看 Span 与 Service Map。
  • Web UI 入口:Metrics Explorer、APM → Services、Logs → Explorer、Monitors → Manage、Dashboards → Dashboard List、Integrations。

6. 告警与通知

Monitor 类型:metric / log / APM / anomaly / composite / event / service check / process / SLO 等。通知通过 message 里的 @... 语法路由:@slack-<CHANNEL>、@email-<ADDR>、@pagerduty-<SERVICE>、@webhook-<NAME>(可指向企业微信 / 钉钉 / 内部平台 / 云函数回调)、@opsgenie-*。

{
  "name": "5xx 错误率告警", "type": "log alert",
  "query": "logs(\"service:checkout status:error\").index(\"*\").rollup(\"count\").last(\"5m\") > 50",
  "message": "5xx 激增,请排查 {{service}}。 @slack-ops-oncall @webhook-dingtalk-oncall",
  "options": {"thresholds": {"critical": 50, "warning": 20}, "notify_no_data": false,
              "renotify_interval": 30, "enable_logs_sample": true,
              "groupby_fields": ["service"], "notification_preset_name": "hide_handles"},
  "tags": ["env:prod", "team:ops"]
}

静默 / 升级 / 降噪:Downtime 按 scope 屏蔽维护窗口;Monitors → Manage 可 Mute;renotify_interval 控制重复通知、evaluation_delay 容忍数据延迟、new_group_delay 抑制新分组抖动;升级用多条 Monitor(warning→critical)或 Notification Rules + On-call Escalation Policy。

# Downtime(路径与字段以官方 API 文档为准)
curl -s -X POST "https://api.<DD_SITE>/api/v2/downtime" \
  -H "Content-Type: application/json" -H "DD-API-KEY: <DD_API_KEY>" -H "DD-APPLICATION-KEY: <DD_APP_KEY>" \
  -d '{"data":{"attributes":{"message":"发布窗口静默","monitor_identifier":{"monitor_tags":["env:prod"]},"scope":"env:prod","schedule":{"start":"<RFC3339_START>","end":"<RFC3339_END>"}},"type":"downtime"}}' | jq
curl -s -X DELETE "https://api.<DD_SITE>/api/v1/downtime/<DOWNTIME_ID>" -H "DD-API-KEY: <DD_API_KEY>" -H "DD-APPLICATION-KEY: <DD_APP_KEY>"  # ⚠️ 提前取消静默

7. 实战场景

场景 A:给一个新部署的业务暴露 /metrics 并接入(含 APM)

目标:checkout 服务的 Prometheus 格式 /metrics 与 trace 进入 Datadog,打统一 Tag。

# conf.d/openmetrics.d/conf.yaml —— 或 K8s 用 Autodiscovery 注解(以官方文档为准)
init_config:
instances:
  - openmetrics_endpoint: http://127.0.0.1:8080/metrics
    namespace: checkout
    metrics: [".*"]
    tags: ["env:prod", "service:checkout", "version:<VERSION>"]
sudo systemctl restart datadog-agent
sudo datadog-agent check openmetrics
# 应用侧启用 ddtrace(Python 示例)
DD_SERVICE=checkout DD_ENV=prod DD_VERSION=<VERSION> ddtrace-run python app.py

验证:Metrics Explorer 搜 checkout.;APM → Services 出现 checkout;sudo datadog-agent status 中 openmetrics check 无 ERROR。回滚:删除该 conf.yaml 并 sudo systemctl restart datadog-agent;停止 ddtrace-run 即停止上报。

场景 B:CPU 高告警 + 多通道通知

目标:为 prod 主机创建 CPU Monitor 并接 Slack、钉钉 Webhook。

# 使用 §5.3 的 JSON,替换 query 为 system.cpu.user,message 加 @slack-ops-oncall @webhook-dingtalk-oncall
curl -s -X POST "https://api.<DD_SITE>/api/v1/monitor" \
  -H "Content-Type: application/json" -H "DD-API-KEY: <DD_API_KEY>" -H "DD-APPLICATION-KEY: <DD_APP_KEY>" \
  -d @cpu-monitor.json | jq '.id'

验证:Monitors → Manage 看到该 Monitor 为 OK/ALERT;触发压测 stress --cpu 4 --timeout 300 后 Slack 收到消息;curl .../api/v1/monitor/<ID> 查状态。回滚:curl -X DELETE .../api/v1/monitor/<ID>(⚠️ 会删除历史告警配置,先导出 JSON 备份)。

场景 C:日志接入并控制索引成本

目标:只索引 error 日志,其余走 Flex Storage / 归档以降本。

# conf.d/python.d/conf.yaml 的 logs 段 + 云端 Log Index(控制台配置,以官方文档为准)
logs:
  - {type: file, path: /var/log/checkout/*.log, source: python, service: checkout}
sudo datadog-agent restart && sudo datadog-agent stream-logs | head -20
# 控制台:Logs → Configuration → Indexes,设 filter "status:error" 专用索引,其余进低费存储

验证:Logs Explorer 能检索 service:checkout status:error;Usage → Logs 账单中索引事件数下降。回滚:恢复默认 Index 过滤器,或删除 logs 段并重启 Agent;⚠️ 已摄入日志不可撤回,注意计费周期。

8. 日常运维与故障排查

8.1 服务管理、日志路径与健康检查

sudo systemctl status|start|stop|restart datadog-agent
sudo datadog-agent status | head -60
sudo datadog-agent configcheck ; sudo datadog-agent diagnose
sudo tail -f /var/log/datadog/agent.log /var/log/datadog/trace-agent.log /var/log/datadog/process-agent.log
sudo ls -l /etc/datadog-agent/conf.d/ ; docker logs -f datadog-agent

日志路径(Linux):/var/log/datadog/;配置:/etc/datadog-agent/datadog.yaml 与 conf.d/;K8s 用 kubectl -n datadog logs daemonset/<RELEASE>-datadog;健康检查以 datadog-agent status 输出各组件 Running 为准。

8.2 故障「现象 → 原因 → 处置」表

现象 原因 处置
Host Map 不出现主机 API Key 错 / DD_SITE 与账号地域不符 / 出站 443 被拦 datadog-agent status 看 API 校验;核对密钥与站点;配 proxy
指标断断续续 主机 NTP 漂移 同步时间(chrony/ntp),检查 datadog-agent status 时间告警
Integration 报 ERROR conf.d 配置字段错 / 目标不可达 datadog-agent check <NAME> 看堆栈,configcheck 校验
日志收不到 logs_enabled: false / 文件权限 / 容器未挂卷 开 logs_enabled,确认 dd-agent 用户可读与 volume 挂载
APM 无 trace apm_config.enabled 未开 / SDK 连错 8126 / 采样率过低 开 APM、统一 DD_AGENT_HOST 与 DD_TRACE_AGENT_PORT,查 trace-agent 日志
Dashboard 空白 Tag 不匹配 / 时间窗无数据 / 指标名错 在 Metrics Explorer 先验证 metric{tag} 有数据
Monitor 一直 No Data query 的 tag 写错 / Agent 停了 / evaluation_delay 过小 校正 query,配 notify_no_data + no_data_timeframe
账单异常暴涨 高基数自定义指标 / 日志全量索引 / 容器超配额 删高基数字段、加索引过滤器、用 Usage 与 Metrics without Limits 管控

9. 性能、容量与高可用

维度 建议
Agent 资源 按节点密度给 requests/limits;datadog-agent status 看内存与 forwarder 队列积压
抓取规模 Integration 的 min_collection_interval 别盲目调小;K8s 用 Cluster Agent 降 API 压力
自定义指标 控制 tag 基数,user_id/request_id 会直接推高 custom metric 账单
日志成本 摄入(按 GB)与索引(按事件/保留期)分开计费;只索引需检索的日志,其余走 Flex Storage / 归档
保留与降采样 指标保留期随套餐(免费版 1 天、Pro 15 个月等,以官方定价页为准);用 rollup 与 retention filter 控量
高可用 Agent 本机单点但 SaaS 端多副本托管;关键主机配监控 Agent 自身的进程 check 与 process_config
成本与配额 主机类按 high-watermark(低 99% 小时峰值)计费;用 Usage Explorer、Budget、Metrics without Limits 与日志 Ingestion Controls 控费

10. 安全加固、备份与升级

  • 密钥管理:API Key 只用于 Agent 上报,Application Key 单独授权且按最小权限;用 Secret / Vault / K8s Secret 注入,禁止硬编码到镜像或 Git;定期轮换并在 Organization Settings 禁用旧 Key。
  • 最小权限:Application Key 配 RBAC/角色限制到需要的 Monitor/Dashboard 范围;Agent 容器只读挂载 /proc、/sys 与 docker.sock。
  • TLS / 网络:Intake 强制 HTTPS 443;内网走 proxy.https,用 DD_PROXY_HTTPS 与 no_proxy;开启日志脱敏(Sensitive Data Scanner)与 logs_config 的 scrubber 规则。
  • 配置即代码:datadog.yaml、Integration conf、Monitor/Dashboard JSON 全部入库,用 Terraform Provider 或 API 脚本幂等下发(GitOps 备份)。
  • 升级顺序:先在预发主机升到目标 Agent 大版本(以官方最新稳定版为准)→ datadog-agent status 验证 → 灰度生产 → 失败 sudo datadog-agent stop + 安装旧版本回滚;K8s 用 Helm helm upgrade/helm rollback <REVISION>,注意 CRD 与 Operator 版本兼容。

11. 常见坑

# 现象 原因 解决
1 装完看不到主机 DD_SITE 与账号地域不一致 用控制台安装页生成的命令,确认站点
2 数据延迟 / 被丢弃 主机时间不同步 部署 NTP/chrony 并校验
3 自定义指标账单暴涨 把 user_id/pod_name 等高基数当 tag 去高基数字段,配 Metrics without Limits
4 日志费远超预期 ⚠️ 摄入与索引分别计费,默认全量索引 只索引必要日志,其余走 Flex Storage / 归档
5 自动扩缩容后账单跳涨 high-watermark 按低 99% 小时峰值计费,持续高峰不豁免 用混合月/小时方案与 Budgets 预算告警
6 容器超配额另计费 Pro/Enterprise 每主机含固定容器数(以官方定价页为准) 评估节点密度,选合适套餐或控制容器数
7 APM 服务不出现 未启用 apm_config 或 SDK 未连到 8126 开 APM,统一 DD_AGENT_HOST / DD_SERVICE / DD_ENV
8 Monitor 反复误报 未设 evaluation_delay / for 等价的窗口 调大窗口与 new_group_delay,用 anomaly monitor
9 用错 API Key 调 API 报 403 API Key 只用于上报,改数据需 Application Key 调用 /api/* 同时带 DD-API-KEY 与 DD-APPLICATION-KEY
10 flare 泄露内部配置 ⚠️ 会把本地配置与日志打包上传 发送前脱敏,限定接收方
11 代理环境指标发不出去 / 删 Monitor 找不回 只配 http 未配 https、漏 no_proxy;⚠️ API DELETE 不可撤销 配 proxy.https 与 DD_PROXY_HTTPS;删前先 GET 导出 JSON 备份

12. 速查表

项 值 / 命令
官网 / 文档 https://www.datadoghq.com/ · https://docs.datadoghq.com/
定价页 https://www.datadoghq.com/pricing/ · https://docs.datadoghq.com/account_management/billing/pricing/
Agent 安装脚本 https://install.datadoghq.com/scripts/install_script.sh(SSI 用 install_script_agent7.sh)
主配置 /etc/datadog-agent/datadog.yaml
集成配置目录 /etc/datadog-agent/conf.d/<name>.d/conf.yaml
日志路径 /var/log/datadog/agent.log、trace-agent.log、process-agent.log
Agent 状态 sudo datadog-agent status
配置校验 sudo datadog-agent configcheck
单集成自检 sudo datadog-agent check <INTEGRATION>
诊断打包 sudo datadog-agent flare(⚠️ 脱敏)
DogStatsD 端口 UDP 8125(可配 UDS)
API Key / App Key 头 DD-API-KEY / DD-APPLICATION-KEY
常用 API /api/v1/monitor、/api/v1/dashboard、/api/v2/series、/api/v1/query(以官方 API 文档为准)
Helm 仓库 https://helm.datadoghq.com ,chart datadog/datadog
控制台入口 Infrastructure / Metrics / APM / Logs / Monitors / Dashboards / Integrations

13. 选型建议与同类对比

维度 自建(Prometheus + Grafana) Datadog(商业 SaaS) 云厂商监控
部署运维 自管采集、存储、升级、扩容 免运维,装 Agent 即可 免管控制面,深度绑定自家云
功能广度 指标 + 告警 + 可视化,日志/APM 需另接 指标/日志/APM/RUM/安全/SLO 一体 指标 + 云产品监控 + 事件告警
成本模型 算力 + 存储 + 人力,大规模边际成本低 按主机/容器/日志/指标/APM 多维计费,规模大时昂贵 按调用量/series/存储计费,通常最低
数据主权 完全自控 ⚠️ 数据出境到 SaaS,需评估合规 数据在云账号同地域
定制能力 最高(CRD + PromQL + 任意 exporter) 中(受平台约束,但开箱即用) 中低(受托管限制)
多云统一 需自建聚合层 原生全局视图,最强 各云割裂,需自行汇总
信创/国产化 可控,易适配国产发行版 需确认境内节点与合规资质 主流云有信创/政务云形态

选 Datadog:无专职平台团队、多云混合、需要 APM/日志与指标快速关联、愿意为免运维付费。不选:数据严禁出境、成本极度敏感的超大规模、要求完全自主可控存储。常见混用:云产品基础告警与账单用云监控、核心业务用 Datadog、超大规模冷指标存自建对象存储;合规业务放在境内自建栈。

14. 参考链接

Datadog —— 免运维的一体化 SaaS 可观测平台(指标 / APM / 日志 / Monitor / Dashboard) - 知识库 - 起航社区