在Datadog摄入日志前按级别过滤:仅保留ERROR日志
仅向Datadog摄入Kubernetes微服务的ERROR级别日志
核心问题修正
你通过排除非ERROR级别日志来保留目标日志的思路是可行的,但当前配置存在JSON引号转义错误,会导致Datadog Agent无法正确解析规则。
正确配置方案
方案1:Pod注解配置(推荐)
修正格式后的注解配置,将多个排除规则合并为一个正则匹配,简化配置同时保证语法合法:
ad.datadoghq.com/<container-name>.logs: '[ { "source": "REDACTED", "service": "REDACTED", "log_processing_rules": [ {"type": "exclude_at_match", "name": "exclude_non_error", "key": "level", "value": "INFO|DEBUG|TRACE"} ] } ]'
- 用正则
|一次性匹配所有需要排除的日志级别,减少规则数量 - 外层用单引号包裹整段配置,内层JSON结构使用双引号,避免转义冲突
方案2:Datadog Agent全局配置
如果需要对多个服务统一配置,可修改Agent的datadog.yaml或单独的日志采集配置文件:
logs: - type: docker service: REDACTED source: REDACTED log_processing_rules: - type: exclude_at_match name: exclude_non_error key: level value: "INFO|DEBUG|TRACE"
验证步骤
- 应用注解后重启对应Pod,让配置生效
- 在Datadog日志界面筛选
level:ERROR,确认仅该级别日志被摄入 - 查看Datadog Agent日志(
kubectl logs <datadog-agent-pod> agent),排查是否存在配置解析错误
内容的提问来源于stack exchange,提问作者RRU
相关产品推荐
相关产品推荐

