mcpField
D
dd-logs

dd-logs

github.com/datadog-labs云与 DevOps1802.1k 次安装6 天前更新
代码仓库

关于 dd-logs

dd-logs 是供 AI Agent 搜索、处理和归档 Datadog 日志的技能,并关注成本控制。它提供查询指导、配置示例,以及减少噪声和处理敏感日志数据的流程。

主要功能

  1. 01按筛选条件和语法搜索日志
  2. 02查看归档和日志配置
  3. 03配置处理器与排除筛选器
  4. 04创建和查看基于日志的指标
  5. 05提供成本及敏感数据处理指导

适用场景

  1. 01在指定时间范围内查找错误
  2. 02通过排除筛选器减少索引数据量
  3. 03设置用于合规存储的日志归档

MCP 相关

这是通过 Pup 管理 Datadog 日志的技能;输入未说明 MCP 功能。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/datadog-labs/agent-skills --skill dd-logs

安装后在 Claude Code 中输入/dd-logs确认已加载。

详细介绍

Datadog 日志

以成本为考量,搜索、处理和归档日志。

前提条件

应已安装 Datadog Pup。如尚未安装,请参阅 设置 Pup。

命令执行顺序(节省令牌)

对于范围受限的命令,请按以下顺序执行:

  1. 先检查上下文(之前的输出、对话和已保存的值)。
  2. 如果缺少必需的值,先运行发现命令。
  3. 如果仍不明确,请向用户确认。
  4. 然后运行目标命令。
  5. 避免运行可能失败的推测性命令。

快速入门

pup auth login

搜索日志

# Basic search
pup logs search --query="status:error" --from="1h"

# With filters
pup logs search --query="service:api status:error" --from="1h" --limit 100

# JSON output
pup logs search --query="@http.status_code:>=500" --from="1h"
搜索语法
查询含义
error全文搜索
status:error标签等于
@http.status_code:500属性等于
@http.status_code:>=400数值范围
service:api AND env:prod布尔查询
@message:*timeout*通配符

配置 API

pup 0.42.0 中可用的日志配置命令:

# List log archives
pup logs archives list

# List log restriction queries
pup logs restriction-queries list

# List custom log destinations
pup logs custom-destinations list
常见处理器
{
  "name": "API Logs",
  "filter": {"query": "service:api"},
  "processors": [
    {
      "type": "grok-parser",
      "name": "Parse nginx",
      "source": "message",
      "grok": {"match_rules": "%{IPORHOST:client_ip} %{DATA:method} %{DATA:path} %{NUMBER:status}"}
    },
    {
      "type": "status-remapper",
      "name": "Set severity",
      "sources": ["level", "severity"]
    },
    {
      "type": "attribute-remapper",
      "name": "Remap user_id",
      "sources": ["user_id"],
      "target": "usr.id"
    }
  ]
}

排除过滤器(控制成本)

仅索引重要内容:

{
  "name": "Drop debug logs",
  "filter": {"query": "status:debug"},
  "is_enabled": true
}
高流量排除项
# Find noisiest log sources
pup logs search --query="*" --from="1h" | jq 'group_by(.service) | map({service: .[0].service, count: length}) | sort_by(-.count)[:10]'
排除项查询
健康检查@http.url:"/health" OR @http.url:"/ready"
调试日志status:debug
静态资源@http.url:*.css OR @http.url:*.js
心跳@message:*heartbeat*

归档

以低成本存储日志,满足合规要求:

# List archives
pup logs archives list

# Archive config (S3 example)
{
  "name": "compliance-archive",
  "query": "*",
  "destination": {
    "type": "s3",
    "bucket": "my-logs-archive",
    "path": "/datadog"
  },
  "rehydration_tags": ["team:platform"]
}
重新水合(恢复)
# No `pup logs rehydrate` command in pup 0.42.0.
# Use Datadog UI/API for rehydration workflows.

基于日志的指标

从日志创建指标(比索引成本更低):

# List log-based metrics
pup logs metrics list

# Get one metric by ID
pup logs metrics get api.errors.count

**基数警告:**仅按取值范围有限的值分组。

敏感数据

清理规则
{
  "type": "hash-remapper",
  "name": "Hash emails",
  "sources": ["email", "@user.email"]
}
切勿记录
# In your app - sanitize before sending
import re

def sanitize_log(message: str) -> str:
    # Remove credit cards
    message = re.sub(r'\b\d{4}[-\s]?\d{4}[-\s]?\d{4}[-\s]?\d{4}\b', '[REDACTED]', message)
    # Remove SSNs
    message = re.sub(r'\b\d{3}-\d{2}-\d{4}\b', '[REDACTED]', message)
    return message

故障排除

问题解决方法
未显示日志检查 Agent 和流水线过滤器
成本高添加排除过滤器
搜索缓慢缩小时间范围,使用索引
缺少属性检查 grok 解析器

参考资料/文档

评论

支持 Markdown