dt-obs-log-semantic-mapping — Claude Code skill: map audit logs
A skill that maps vendor audit log fields to the Dynatrace semantic dictionary and validates the result.
npx skills add Dynatrace/dynatrace-for-ai --skill dt-obs-log-semantic-mapping -a claude-codeWhat dt-obs-log-semantic-mapping does
The skill covers four log classes: authentication, authorization, user_action and http. Each one comes with its key namespaces — audit.*, actor.*, browser.*, device.*, object.*, http.*, url.* and others. Feed it a raw vendor payload or an already ingested event.
Three workflows. Workflow A suggests a mapping from a raw payload to fetch logs fields. Workflow B1 validates a mapping against a pasted event. Workflow B2 reaches into a live tenant: it pulls logs by log.source and runs the static check on what comes back.
Buried fields are the main thing it hunts. The skill inventories what stayed inside content versus what got promoted to top-level attributes, then proposes OpenPipeline extraction rules for the gaps. Load the dt-dql-essentials skill before touching those rules — OpenPipeline processors run on DQL functions like parse and fieldsAdd, and non-DQL syntax produces invalid rules. One more constraint from references/openpipeline-constraints.md: parseJson is unavailable, so the parse plus fieldsFlatten pair stands in for it.
What it helps with
- map raw vendor audit log fields onto the Dynatrace semantic dictionary
- validate an existing mapping against a pasted ingested event
- find fields buried in
contentinstead of promoted to top level - write OpenPipeline extraction rules using DQL functions
- run validation against live logs selected by
log.source
Example prompts for the agent
- Map this CyberArk payload to the Dynatrace semantic dictionary
- Validate my mapping against this ingested log event
- Write OpenPipeline rules for the fields still stuck in content
How to install dt-obs-log-semantic-mapping
1Skills CLI (Vercel)
npx skills add Dynatrace/dynatrace-for-ai --skill dt-obs-log-semantic-mapping -a claude-code2Manually: put the files in place
~/.claude/skills/dt-obs-log-semantic-mapping/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/dt-obs-log-semantic-mapping/
1Skills CLI (Vercel)
npx skills add Dynatrace/dynatrace-for-ai --skill dt-obs-log-semantic-mapping -a codex2Manually: put the files in place
.agents/skills/dt-obs-log-semantic-mapping/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add Dynatrace/dynatrace-for-ai --skill dt-obs-log-semantic-mapping -a cursor2Manually: put the files in place
.cursor/skills/dt-obs-log-semantic-mapping/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install Dynatrace/dynatrace-for-ai dt-obs-log-semantic-mapping2Manually: put the files in place
.github/skills/dt-obs-log-semantic-mapping/SKILL.md1Skills CLI (Vercel)
npx skills add Dynatrace/dynatrace-for-ai --skill dt-obs-log-semantic-mapping -a gemini-cli2Platform CLI
gemini skills install https://github.com/Dynatrace/dynatrace-for-ai --path skills/dt-obs-log-semantic-mappingManually: put the files in place
.devin/skills/dt-obs-log-semantic-mapping/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add Dynatrace/dynatrace-for-ai --skill dt-obs-log-semantic-mapping -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about dt-obs-log-semantic-mapping
How do I install dt-obs-log-semantic-mapping in Claude?
Run npx skills add Dynatrace/dynatrace-for-ai --skill dt-obs-log-semantic-mapping -a claude-code. The skill lands at ~/.claude/skills/dt-obs-log-semantic-mapping/SKILL.md.
What does dt-obs-log-semantic-mapping do?
It suggests and validates mappings from vendor audit logs to the Dynatrace semantic dictionary. It handles both raw payloads and live tenant data.
Do I need live Dynatrace tenant access?
Only for Workflow B2, which fetches live records by log.source. Workflows A and B1 work from a raw payload or a pasted event.
Source text
SKILL.md · Apache-2.0
--- name: dt-obs-log-semantic-mapping description: "Suggest and validate semantic dictionary (SD) mappings for audit log integrations using raw vendor log payloads or live ingested events. Use when: mapping a vendor audit log feed, authentication logs, user activity logs to the Dynatrace SD; checking required semantic fields; proposing OpenPipeline processor extraction rules based on DQL; running runtime validation (fetches live logs by log.source, then applies static validation)." license: Apache-2.0 --- # dt-obs-log-semantic-mapping Build and validate semantic-dictionary-aligned mappings for audit log integrations. ## Purpose Use this skill when a user wants to: - **Suggest** a mapping from a raw vendor audit log payload to Dynatrace `fetch logs` fields (Workflow A). - **Validate** a mapping against a pasted ingested log event (Workflow B1 — static). - **Validate** against live tenant data via live tenant access (Workflow B2 — runtime: fetches logs by `log.source`, then runs B1 on the result). ## Log Classes | Class | Description | Key namespaces | Example sources | |---|---|---|---| | `authentication` | Login, logout, MFA, token | `audit.*`, `actor.*`, `browser.*`, `device.*` | CyberArk, Okta, Azure SignInLogs | | `authorization` | Access decisions, permission changes | `audit.*`, `actor.*`, `object.*` | CyberArk, Okta | | `user_action` | CRUD on platform resources | `audit.*`, `actor.*`, `object.*`, `product.*` | Okta, GitHub, Sonatype | | `http` | HTTP request/response (WAF, network devices) | `http.*`, `url.*`, `server.*`, `geo.*`, `client.*` | Akamai SIEM, Cloudflare | ## Workflows | Mode | Input | Source | |---|---|---| | **Workflow A** — Suggest mapping | Raw vendor log payload | `references/mapping-workflow.md § Workflow A` | | **Workflow B1** — Static validation | Pasted ingested log event | `references/mapping-workflow.md § Workflow B1` | | **Workflow B2** — Runtime validation | `log.source` value + live tenant access | `references/runtime-validation.md` — fetches logs, then runs B1 | ## Key Concepts **Content field burial:** The primary validation concern. Fields in `content` (the raw vendor payload) that could be promoted to top-level semantic attributes but are not. The skill always inventories buried vs promoted fields and proposes OpenPipeline extraction rules to fix gaps. > **Prerequisite:** When proposing OpenPipeline processor extraction rules, load the `dt-dql-essentials` skill first. OpenPipeline processors use DQL functions (`parse`, `fieldsAdd`, `splitString`, etc.) — using non-DQL syntax produces invalid rules. **Sparse mappings are valid:** Integrations like GitHub or Sonatype may only populate core fields. Minimum required: `timestamp`, `log.source`, `content`, `loglevel`, `audit.action`, `audit.identity`. ## References - `references/data-model-notes.md` — Log SD field taxonomy, audit namespace, enums, sample-derived patterns and known discrepancies - `references/mapping-workflow.md` — Intake checklist, Workflow A and B1 procedures, content field analysis, field priority order - `references/validation-rules.md` — Required fields, content/enum/type rules, discrepancy severity - `references/openpipeline-constraints.md` — OpenPipeline processor command/function/operator/matcher restrictions; `parseJson` unavailability + `parse`→`fieldsFlatten` alternative; iterative operators for array casting - `references/report-format.md` — Mapping table, diff table, OpenPipeline sketch, Validation Summary templates - `references/runtime-validation.md` — Workflow B2: fetch live records, then run B1 - `samples/audit-logs.json` — Mapped samples: CyberArk, Okta, Azure SignInLogs, Sonatype, GitHub - `samples/http-logs.json` — Mapped samples: Akamai SIEM (WAF/HTTP class) - [Dynatrace Log Semantic Dictionary](https://docs.dynatrace.com/docs/semantic-dictionary/model/log)
© Dynatrace · Apache-2.0 · Dynatrace/dynatrace-for-ai