CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

dt-obs-ext-monitors

3rd-party test and monitor result ingestion into Dynatrace Grail via the platform events ingest API (platform/ingest/custom/events/). Use when sending external synthetic test outcomes, CI monitor data, or third-party check results to Dynatrace. Covers token scope, full event schema for external_test_run and external_test_step (including dt.security_context, ci.*, trace correlation, and pipeline-added fields), curl and Java DTO examples, and DQL verification. Triggers: "ingest test results", "send monitor results", "third party monitor", "external test ingestion", "send synthetic results to Grail", "external test run event schema". Not for Dynatrace-native Synthetic Monitoring browser/HTTP checks, or RUM (use dt-obs-frontends). For migrating from the deprecated POST /api/v1/synthetic/ext/tests API, load dt-upgrade instead.

Quality

94%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide
SecuritybySnyk

Passed

No findings from the security scan

SKILL.md
Quality
Evals
Security

Quality

Content

86%Weight 40%Scale 1-5

Reviews the quality of instructions and guidance provided to agents. Good implementation is clear, handles edge cases, and produces reliable results.

A strong, dense skill body: executable curl and DQL, precise field constraints including which pipeline-added fields not to send, and a correctly split one-level reference. The only costs are a small amount of derivable arithmetic in the multi-location section and the absence of an error-recovery loop around the send step.

Suggestions

Trim the threshold-maths paragraph ('1 location failing → avg 0.67... 2 failing → avg 0.33') to just the alerting-tier table, letting Claude compute the averages from the stated 0.5-threshold example.

Add one line of error-recovery feedback to Quick Start, e.g. 'On 401/403 → check token scope (openpipeline.events.custom, not events.ingest); on 404 → the endpoint name is not provisioned, see references/event-ingestion.md'.

DimensionReasoningScore

Conciseness

The body is largely lean and high-value (Dynatrace-specific pipeline behavior, 'Common wrong guess that does NOT work: events.ingest', tight tables), but the 'Threshold maths for a 3-location test: 1 location failing → avg 0.67 (no alert at 0.5 threshold); 2 failing → avg 0.33' paragraph spells out arithmetic Claude can derive from the preceding table. This fits the 4 anchor (efficient, minor over-explanation that could be trimmed) rather than 5 (every token earns its place).

4 / 5

Actionability

Guidance is fully executable and copy-paste ready: a complete curl POST with real field values ('test.run.availability': 1, 'dt.security_context': 'team-checkout'), 'Expected response: HTTP 200 (empty body)', a runnable DQL verification query, and precise constraints like 'must be integer 1 or 0, not a string'. This matches the 5 anchor (specific examples covering the common cases); it is not 4 because no key detail is missing for the primary use case.

5 / 5

Workflow Clarity

The sequence is clear and validation checkpoints are present — prerequisite callout ('The ingest endpoint must be created in OpenPipeline before sending events'), the expected HTTP 200 response, and a dedicated 'Verify in Grail' DQL section. However, there is no error-recovery feedback loop (e.g. what to check on a 401/404), which the 5 anchor requires; the Key Constraints section is preventive rather than a recovery path, so this sits between the 4 and 5 anchors at 4.

4 / 5

Progressive Disclosure

The body is a clean overview (quick start, key constraints, verification) with the full schema, extended examples, Java DTOs, and DQL reference correctly deferred to references/event-ingestion.md — a real, verified file that is self-contained (internal anchors only, no further file references, so exactly one level deep). The pointer is well-signaled twice with an explicit content inventory ('Full event schema, step events, extended examples with error fields and CI metadata, Java DTO shapes, and DQL queries'), matching the 5 anchor.

5 / 5

Total

18

/

20

Passed

Description

100%Weight 40%Scale 1-5

Based on the skill's description, can an agent find and select it at the right time? Clear, specific descriptions lead to better discovery.

An exemplary description: concrete third-person capability statement, explicit 'Use when' guidance plus a six-phrase trigger list, and both negative boundary exclusions and related-skill routing that eliminate conflict risk. No padding is present — every clause is load-bearing.

DimensionReasoningScore

Specificity

The description lists multiple concrete capabilities: '3rd-party test and monitor result ingestion into Dynatrace Grail via the platform events ingest API (platform/ingest/custom/events/)', 'token scope, full event schema for external_test_run and external_test_step', 'curl and Java DTO examples, and DQL verification'. This matches the 5 anchor (multiple specific concrete actions, comprehensive coverage); it is not 4 because coverage spans ingestion, auth, schema, examples, and verification with no notable gaps.

5 / 5

Completeness

Both questions are answered explicitly: 'what' via 'ingestion into Dynatrace Grail via the platform events ingest API' with enumerated coverage areas, and 'when' via both 'Use when sending external synthetic test outcomes, CI monitor data, or third-party check results' and a dedicated concrete 'Triggers:' list. This is the 5 anchor verbatim in structure; a 4 would require the 'when' to be less explicit than it is here.

5 / 5

Trigger Term Quality

An explicit trigger list gives six natural phrases users would say: 'ingest test results', 'send monitor results', 'third party monitor', 'external test ingestion', 'send synthetic results to Grail', 'external test run event schema'. These include natural variations and the API path, matching the 5 anchor's comprehensive synonym coverage; nothing on the 4 anchor's 'a few natural terms missing' condition applies.

5 / 5

Distinctiveness Conflict Risk

The niche is precise (one API, two event types) and conflict risk is actively reduced by negative boundary guidance: 'Not for Dynatrace-native Synthetic Monitoring browser/HTTP checks, or RUM (use dt-obs-frontends)' plus routing to 'dt-upgrade' for the deprecated v1 API. Clear niche with distinct triggers and minimal conflict risk is the 5 anchor; 4 would require some residual overlap with closely related skills, which the exclusions already resolve.

5 / 5

Total

20

/

20

Passed

Validation

100%

Checks the skill against the spec for correct structure and formatting. All validation checks must pass before discovery and implementation can be scored.

Validation — 16 / 16 Passed

Validation for skill structure

No warnings or errors.

Repository

Dynatrace/dynatrace-for-ai

Path

skills/dt-obs-ext-monitors/SKILL.md

Reviewed

Table of Contents

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.