AgentSkillsCN

datadog-logs

通过 API 搜索 Datadog 日志——查询语法、存储层级(索引、flex、在线归档)、分页。适用于搜索日志或使用 dd search-logs 命令时使用。

SKILL.md
--- frontmatter
name: datadog-logs
description: Search Datadog logs via API - query syntax, storage tiers (indexes, flex, online-archives), pagination. Use when searching logs or using the dd search-logs command.

Datadog Logs API

CLI Command

bash
# Basic search (last 15 minutes)
dd search-logs 'env:prod service:my-service error'

# Custom time range
dd search-logs 'env:prod error' --from now-1h --to now

# Search Flex Logs tier (for archived/long-retention logs)
dd search-logs 'env:prod' --storage-tier flex --from now-30d

# Multi-service search with OR
dd search-logs 'env:prod service:(service-a OR service-b) order-12345' --storage-tier flex

# Fetch all pages
dd search-logs 'env:prod' --all-pages --limit 100

Query Syntax

The query syntax matches Datadog's Log Explorer. Pass it directly to --query:

bash
# Attribute search
env:prod status:error

# Boolean operators
service:(api OR web) AND status:error

# Free text search
"connection timeout"

# Full-text search across all fields
*:order-12345

# Exclusions
env:prod -status:info

Storage Tiers

TierFlagUse case
indexes(default)Recent, indexed logs
flex--storage-tier flexLong-retention logs (30d+)
online-archives--storage-tier online-archivesArchived logs

Important: If you don't see results, check if logs are in Flex tier. The Datadog UI has a toggle "Include Flex Logs" - this CLI flag is the equivalent.

Options

OptionDefaultDescription
--fromnow-15mStart time (e.g., now-1h, now-7d)
--tonowEnd time
--limit100Max logs per page
--storage-tierindexesStorage tier to search
--all-pagesfalseFetch up to 50 pages

Common Patterns

bash
# Search for UUID across services
dd search-logs 'env:prod service:(svc-a OR svc-b) aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee' \
  --storage-tier flex --from now-30d

# Find errors in last hour
dd search-logs 'env:prod status:error' --from now-1h

# Search specific host
dd search-logs 'env:prod host:web-01 status:error'

API Details

  • Endpoint: POST /api/v2/logs/events/search
  • Pagination: Cursor-based (--all-pages handles this)
  • Permission: Requires logs_read_data on the app key

curl Example

bash
curl -X POST "https://api.$DD_SITE/api/v2/logs/events/search" \
  -H "DD-API-KEY: $DD_API_KEY" \
  -H "DD-APPLICATION-KEY: $DD_APP_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "filter": {
      "query": "env:prod status:error",
      "from": "now-1h",
      "to": "now",
      "storage_tier": "flex"
    },
    "sort": "-timestamp",
    "page": {"limit": 100}
  }'