Skip to main content

obz-dd

Datadog provider for obz. Supports metrics (Datadog Query Language), logs (Datadog Log Query), and traces. Requires api-key and app-key configured under auth in config.yaml. Does not support metric labels, label-values, or series commands. This skill should be used when the user mentions "Datadog", "DD", "obz -p dd", Datadog Query Language, or needs to configure Datadog provider instances with regional endpoints.

Informations de source

Dépôt
alibaba/obz-cli
Dernière activité de la source
29 avril 2026 à 07:18
Langue détectée de SKILL.md
anglais
Étoiles
27
Forks
9

Options d'installation

Le prompt qui vérifie d'abord la source est sélectionné par défaut. Vous pouvez passer à une commande directe ou télécharger une copie locale.

Vérifiez les fichiers source

Lisez SKILL.md et les fichiers associés affichés par SkillsMP avant de décider de l'installer.

Affichage de SKILL.md

SKILL.md
Instructions source · Aperçu en lecture seule
name
obz-dd
description
Datadog provider for obz. Supports metrics (Datadog Query Language), logs (Datadog Log Query), and traces. Requires api-key and app-key configured under auth in config.yaml. Does not support metric labels, label-values, or series commands. This skill should be used when the user mentions "Datadog", "DD", "obz -p dd", Datadog Query Language, or needs to configure Datadog provider instances with regional endpoints.
# obz-dd: Datadog Provider ## Quick Reference | Field | Value | |------------------|----------------------------------------------------| | Aliases | `dd`, `datadog` | | Signals | Metric, Log, Trace | | Metric query | Datadog Query Language | | Log query | Datadog Log Query | | Auth | API key + Application key (both required) | | Default endpoint | `https://api.datadoghq.com` | ## Supported Commands | Signal | Commands | Not Supported | |---------|-------------------------------------|--------------------------------------| | Metric | query, list, info | labels, label-values, series | | Log | search, aggregate | | | Trace | search, get, aggregate | | Datadog's API doesn't expose label/series enumeration endpoints, so those three metric commands are unavailable. ### Extension commands ``` obz log aggregate # Aggregate logs (requires --query, optional --compute, --group-by, both repeatable) obz trace aggregate # Aggregate traces (same flags as log aggregate) ``` ## Authentication Datadog requires two keys for every request. Configure them in `config.yaml` under `providers.<name>.auth`: ```yaml # config.yaml providers: dd: endpoint: https://api.datadoghq.com auth: api-key: ${env:DD_API_KEY} app-key: ${env:DD_APP_KEY} ``` Then query with just `-p`: ```bash obz metric query -p dd -q 'avg:system.cpu.user{*}' --from now-1h ``` ## Regional Endpoints Datadog operates multiple regional sites. Set `--endpoint` to the correct one: | Region | Endpoint | |---------------|---------------------------------------| | US1 (default) | `https://api.datadoghq.com` | | US3 | `https://api.us3.datadoghq.com` | | US5 | `https://api.us5.datadoghq.com` | | EU | `https://api.datadoghq.eu` | | AP1 | `https://api.ap1.datadoghq.com` | If `--endpoint` is omitted, the default US1 endpoint is used. ## Config File Setup ```yaml # ~/.config/obz/config.yaml providers: dd-prod: provider: dd endpoint: https://api.datadoghq.com auth: api-key: ${env:DD_API_KEY} app-key: ${env:DD_APP_KEY} ``` Then: ```bash obz metric query -p dd-prod -q 'avg:system.cpu.user{*}' --from now-1h ``` ## Datadog Query Language (Metrics) Datadog metric queries follow the pattern: ``` <aggregation>:<metric_name>{<filter>} ``` ### Aggregation Functions `avg`, `sum`, `min`, `max`, `count` ### Tag Filters Tags go inside curly braces, comma-separated: ``` avg:system.cpu.user{host:web-01} sum:http.requests{service:api, env:prod} avg:system.mem.used{*} ``` The wildcard `{*}` matches all hosts/tags. ### Arithmetic and Functions ``` avg:system.cpu.user{*} + avg:system.cpu.system{*} avg:system.cpu.user{*}.rollup(avg, 300) per_second(sum:http.requests{*}) ``` ### Space Aggregation (by/as) ``` avg:system.cpu.user{*} by {host} sum:http.requests{*} by {service, env} ``` ### Common Pitfalls - The aggregation prefix (`avg:`, `sum:`, etc.) is required. Bare metric names like `system.cpu.user{*}` will fail. - Tag values don't use quotes: `{host:web-01}` not `{host:"web-01"}`. - Datadog queries are NOT PromQL. Don't use `rate()` or `[5m]` syntax. - `.rollup()` controls time aggregation. Without it, Datadog picks automatic rollup intervals. ## Datadog Log Query (Logs) Datadog log queries filter on facets and tags. ### Basic Syntax ``` service:web status:error service:web status:error ``` Multiple terms are AND-ed by default. ### Field Queries ``` @http.status_code:500 @duration:>1000 host:web-01 ``` Prefixed `@` fields are log attributes. Unprefixed fields are reserved tags (`service`, `status`, `host`, `source`). ### Boolean and Grouping ``` service:web AND (status:error OR status:warn) service:web NOT @http.url:"/health" ``` ### Wildcards ``` service:web-* @http.url:"/api/*" ``` ### Common Pitfalls - Reserved tags (`service`, `status`, `host`, `source`) don't take the `@` prefix. Custom attributes do. - String values with special characters need quotes: `@http.url:"/api/v1/users"`. - The default combiner is AND. Explicit `OR` requires parentheses for correct grouping. ## Examples **Metric query**: ```bash obz metric query -p dd -q 'avg:system.cpu.user{*}' --from now-1h ``` **Metric query with tag filter and grouping**: ```bash obz metric query -p dd-prod \ -q 'avg:system.cpu.user{env:prod} by {host}' --from now-6h ``` **List available metrics**: ```bash obz metric list -p dd-prod ``` **Get metric metadata**: ```bash obz metric info -p dd-prod system.cpu.user ``` **Log search**: ```bash obz log search -p dd -q 'service:web status:error' --from now-1h ``` **Log search with attribute filter (pre-configured)**: ```bash obz log search -p dd-prod \ -q 'service:api @http.status_code:500' --from now-30m ``` **Trace search**: ```bash obz trace search -p dd-prod -q 'service:api' --from now-1h ``` **Get a specific trace**: ```bash obz trace get -p dd-prod abc123def456 ``` **Aggregate log counts by service**: ```bash obz log aggregate -p dd -q 'status:error' --compute count --group-by service --from now-1h ``` **Aggregate trace durations**: ```bash obz trace aggregate -p dd -q 'service:api' --compute 'avg:@duration' --group-by resource_name --from now-1h ``` **EU region endpoint** (set endpoint in config or override with `--endpoint`): ```bash obz metric query -p dd --endpoint https://api.datadoghq.eu \ -q 'avg:system.cpu.user{*}' --from now-1h ```
Voir sur GitHub