
Dd Audit
- 406 installs
- 147 repo stars
- Updated July 29, 2026
- datadog-labs/agent-skills
Audit Datadog monitors, dashboards, SLOs, and telemetry coverage to find gaps, noise, and misconfigured alerts in production observability.
About
Dd-audit skill from datadog-labs/agent-skills guides agents through auditing Datadog environments: inventory monitors and dashboards, assess SLO and alert quality, detect missing instrumentation, and recommend concrete changes to improve on-call signal and reduce observability debt.
- Monitor and SLO review
- Dashboard coverage gaps
- Alert noise detection
- Integration health checks
- Remediation recommendations
Dd Audit by the numbers
- 406 all-time installs (skills.sh)
- Ranked #296 of 1,435 DevOps & CI/CD skills by installs in the Skillselion catalog
- Data as of Jul 30, 2026 (Skillselion catalog sync)
npx skills add https://github.com/datadog-labs/agent-skills --skill dd-auditAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 406 |
|---|---|
| repo stars | ★ 147 |
| Last updated | July 29, 2026 |
| Repository | datadog-labs/agent-skills ↗ |
What it does
Audit Datadog monitors, dashboards, SLOs, and telemetry coverage to find gaps, noise, and misconfigured alerts in production observability.
Files
Audit Trail: AI Activity Audit
Every Datadog MCP tool call is recorded in Audit Trail under the Bits AI SRE category. This skill surfaces what the AI assistant has done in your org — which users invoked it, which tools were called, and which resources were affected.
Prerequisites
pup auth login # OAuth2 (recommended)
# or set DD_API_KEY + DD_APP_KEY with audit_logs_read scopeQueries
All MCP tool activity in a time window
pup audit-logs search --query "@evt.name:\"MCP Server\"" --from 7d --limit 500 -o json \
| jq '[.data[] | {
timestamp: .attributes.timestamp,
user: .attributes.attributes.usr.email,
actor_type: .attributes.attributes.evt.actor.type,
action: .attributes.attributes.action,
resource_type: .attributes.attributes.asset.type,
resource_id: .attributes.attributes.asset.id,
ip: .attributes.attributes.network.client.ip,
country: .attributes.attributes.network.client.geoip.country.name
}]'Activity by user (who is using the AI assistant most?)
pup audit-logs search --query "@evt.name:\"MCP Server\"" --from 30d --limit 1000 -o json \
| jq '[.data[] | .attributes.attributes.usr.email]
| group_by(.)
| map({user: .[0], tool_calls: length})
| sort_by(-.tool_calls)'Resources modified by AI tool calls
pup audit-logs search \
--query "@evt.name:\"MCP Server\" @action:(created OR modified OR deleted)" \
--from 7d --limit 500 -o json \
| jq '[.data[] | {
timestamp: .attributes.timestamp,
user: .attributes.attributes.usr.email,
action: .attributes.attributes.action,
resource_type: .attributes.attributes.asset.type,
resource_id: .attributes.attributes.asset.id
}]'AI activity for a specific user
pup audit-logs search \
--query "@evt.name:\"MCP Server\" @usr.email:user@example.com" \
--from 30d --limit 500 -o json \
| jq '[.data[] | {
timestamp: .attributes.timestamp,
action: .attributes.attributes.action,
resource_type: .attributes.attributes.asset.type,
resource_id: .attributes.attributes.asset.id
}]'Weekly summary report
pup audit-logs search --query "@evt.name:\"MCP Server\"" --from 7d --limit 1000 -o json \
| jq '{
total_tool_calls: (.data | length),
unique_users: ([.data[] | .attributes.attributes.usr.email] | unique | length),
top_users: (
[.data[] | .attributes.attributes.usr.email]
| group_by(.)
| map({user: .[0], calls: length})
| sort_by(-.calls)
| .[:5]
),
actions_breakdown: (
[.data[] | .attributes.attributes.action]
| group_by(.)
| map({action: .[0], count: length})
| sort_by(-.count)
),
resource_types: (
[.data[] | .attributes.attributes.asset.type]
| group_by(.)
| map({type: .[0], count: length})
| sort_by(-.count)
)
}'Anomaly Flags
| Signal | Governance concern |
|---|---|
AI performing deleted actions on monitors or dashboards | Review whether destructive AI operations are expected |
AI acting as SUPPORT_USER | Datadog support using AI on behalf of org |
| First-time user invoking AI tools | New user accessing AI assistant |
| High volume of tool calls in short window | Automated/batch AI usage |
| AI accessing resources outside user's normal scope | Potential over-permissioned AI session |
Output Format
AI Activity Audit — [Org] — [Date Range]
Total MCP tool calls: [N]
Unique users: [N]
Top users:
[user@example.com]: [N] calls
Actions breakdown:
accessed: [N]
modified: [N]
created: [N]
deleted: [N]
Resource types affected:
dashboard: [N]
monitor: [N]
Anomalies:
[List any flagged events with timestamp, user, action, resource]Context
This skill is most useful for:
- Security reviews: Verifying AI actions were authorized and within expected scope
- Compliance audits: Demonstrating AI activity is logged and attributable to specific users
- Governance reports: Understanding adoption and risk surface of the AI assistant across the org
No other observability vendor audits their AI assistant's actions at this level of detail.
References
Compliance Control → Audit Trail Query Mapping
Scope Boundary
Datadog Audit Trail documents actions within the Datadog platform:
- Who logged in, from where
- Who changed monitors, dashboards, log pipelines, integrations, roles, API keys
- What the Bits AI assistant did on behalf of users
It does not document:
- Actions within systems that Datadog monitors (AWS, GCP, application servers)
- Content of data ingested by Datadog (logs, traces, metrics values)
- Network activity between user systems and Datadog
SOC 2 Trust Services Criteria
| Control | Description | Audit Trail Query | Fields Used |
|---|---|---|---|
| CC6.1 | Logical access controls implemented | Review role assignments | @evt.name:"Access Management" @asset.type:role |
| CC6.2 | User registration and deprovisioning | User lifecycle events | @evt.name:"Access Management" @asset.type:user @action:(created OR deleted) |
| CC6.3 | Role-based access | Permission change log | @evt.name:"Access Management" @asset.type:role |
| CC6.6 | Logical access boundaries | Failed logins, geo anomalies | @evt.name:Authentication @action:login @status:error |
| CC6.8 | Prevent unauthorized access | API key management | @evt.name:Authentication @asset.type:api_key |
| CC7.2 | System monitoring — anomaly detection | Privileged/support access | @evt.actor.type:SUPPORT_USER |
| CC7.3 | Event response | Changes during incident window | Time-scoped @action:modified + @evt.name filter |
| A1.1 | Availability monitoring | Monitor create/delete events | @evt.name:Monitor |
PCI DSS Requirement 10 — Audit Logging
| Req | Description | Audit Trail Query | PCI Field Mapping |
|---|---|---|---|
| 10.2.1 | Access to cardholder data | Dashboard/resource access events | @http.method:GET @asset.type:dashboard |
| 10.2.2 | Actions by root/privileged users | Support user and org admin events | @evt.actor.type:SUPPORT_USER |
| 10.2.3 | Access to audit trail | Audit Trail config events | @evt.name:"Audit Trail" |
| 10.2.4 | Invalid access attempts | Failed authentication events | @evt.name:Authentication @status:error |
| 10.2.5 | Use of identification/auth mechanisms | All login events | @evt.name:Authentication @action:login |
| 10.2.6 | Initialization/stopping of audit logs | Audit retention setting changes | @evt.name:"Audit Trail" @action:modified |
| 10.2.7 | Creation/deletion of system objects | All create/delete events | @action:(created OR deleted) |
| 10.3.1 | User identification | @usr.email field | Present on all user-initiated events |
| 10.3.2 | Event type | @action, @evt.name fields | Present on all events |
| 10.3.3 | Date and time | timestamp field | ISO 8601 UTC on all events |
| 10.3.4 | Success/failure indication | @status field | info/error/warn |
| 10.3.5 | Origination of event | @network.client.ip field | Present on most events |
| 10.3.6 | Identity of affected data/component | @asset.type, @asset.id fields | Present on resource events |
| 10.7 | Retain audit logs ≥12 months | Check archive config | Default 90 days — must configure archive |
Retention Requirements by Framework
| Framework | Required retention | Datadog default | Gap? |
|---|---|---|---|
| SOC 2 | Auditor discretion (typically 12 months) | 90 days | Yes — configure archive |
| PCI DSS | 12 months minimum | 90 days | Yes — configure archive |
| ISO 27001 | 3 years typical | 90 days | Yes — configure archive |
| HIPAA | 6 years | 90 days | Yes — configure archive |
To configure archive: Datadog UI > Security > Audit Trail > Configure > Archive to S3/GCS/Azure Blob.