CtrlK
BlogDocsLog inGet started
Tessl Logo
SkillPublic

opentelemetry-ottl

OpenTelemetry Transformation Language (OTTL) for OTel Collector pipelines. Use when writing or debugging OTTL statements in the transform processor, filter processor, or routing connector in any collector configuration — context selection, path expression mistakes (`attributes` vs `resource.attributes`), `error_mode`, cardinality reduction with `keep_keys`, JSON body handling with `ParseJSON`, PII redaction with `SHA256` / `replace_pattern`, and span naming. Not for receiver/exporter connectivity, DNS, pipeline wiring, or telemetry that never reaches the processor — those are infra problems, not OTTL problems.

92

1.10x
Quality

93%

Does it follow best practices?

Impact

92%

1.10x

Average score across 127 eval scenarios

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 body: fully executable YAML examples, an exact error-message-to-fix diagnostic table, and a clean one-level-deep reference structure that all checks out against the actual bundle. The only deductions are minor repetition of the error_mode data-loss warning and the absence of explicit outcome-validation steps after destructive filter drops.

Suggestions

Trim the duplicated `propagate` data-loss warning — it appears in both the error-modes table and the paragraph below it; keep the table row and reduce the paragraph to the 'missing error_mode key' fix guidance.

Shorten workflow 4's Coralogix exporter pattern to a pointer to references/contexts.md#exporters-that-read-from-resource-attributes, keeping only the `set(resource.attributes[...], attributes[...])` one-liner inline.

Add an explicit validation step after destructive workflows (3 and 5): e.g., 'confirm downstream telemetry still flows and the dropped data is only the intended subset' via debug attributes or a temporary debug exporter.

DimensionReasoningScore

Conciseness

The body is dense and assumes competence — tables for error modes, contexts, and use-case routing, with no beginner-level padding about what OpenTelemetry is. Not a 5 because there is minor repetition: the `propagate`-causes-data-loss warning is stated both in the error-modes table and again in the paragraph immediately below it, and the Coralogix exporter pattern in workflow 4 restates content already detailed in references/contexts.md.

4 / 5

Actionability

Every workflow ships complete, copy-paste-ready YAML (e.g., the histogram `extract_sum_metric`/`extract_count_metric` + filter block and the `merge_maps(attributes, ParseJSON(body), "insert")` example), and the error-patterns table maps exact Collector messages to root cause and first action. Not a 4 because the guidance is fully executable with no pseudocode gaps.

5 / 5

Workflow Clarity

The 7-step debug workflow is clearly sequenced with explicit check steps (confirm it's OTTL, match exact error text, check nil guards, check context prefix), and error_mode guidance acts as a protective checkpoint. Not a 5 because the destructive/batch operations (filter dropping telemetry, cardinality `keep_keys`) lack an explicit validate-the-outcome step — verification after a drop is only implied via the 'surface debug attributes' row of the error table.

4 / 5

Progressive Disclosure

The body is a well-organized overview that keeps core patterns inline and pushes depth to six one-level-deep reference files, all of which exist and are cited inline with descriptive pointers (verified: references/cardinality.md, contexts.md, filtering.md, processors.md, redaction.md, transformations.md, including deep anchors like processors.md#yaml-ottl-quoting-collision), plus a one-line-description footer index. Not a 4 because navigation, signaling, and content split are all clean with no buried or nested references.

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 excellent description: concrete capability enumeration, explicit and specific 'Use when' triggers, third-person voice, and an explicit out-of-scope boundary that prevents mis-triggering on adjacent infrastructure problems. Every dimension lands at the top anchor.

DimensionReasoningScore

Specificity

The description lists multiple specific concrete capabilities — "context selection, path expression mistakes (`attributes` vs `resource.attributes`), `error_mode`, cardinality reduction with `keep_keys`, JSON body handling with `ParseJSON`, PII redaction with `SHA256` / `replace_pattern`, and span naming" — with comprehensive coverage of the skill's domain. It is not a 4 because there are no minor gaps in capability coverage, and it stays in third-person voice throughout.

5 / 5

Completeness

It explicitly answers "what" (the named language plus an enumerated capability list) and "when" ("Use when writing or debugging OTTL statements in the transform processor, filter processor, or routing connector in any collector configuration") with concrete trigger phrases. Not a 4 because the 'when' clause is already fully explicit and specific rather than merely present.

5 / 5

Trigger Term Quality

Natural trigger phrases users would actually say are comprehensively covered: "writing or debugging OTTL statements", "transform processor", "filter processor", "routing connector", "collector configuration", plus concrete function/config names (`error_mode`, `keep_keys`, `ParseJSON`, `SHA256`). Not a 4 because both colloquial and technical synonyms of the domain are present with no obvious missing variations.

5 / 5

Distinctiveness Conflict Risk

The OTTL niche is distinct and the description adds an explicit negative boundary — "Not for receiver/exporter connectivity, DNS, pipeline wiring, or telemetry that never reaches the processor — those are infra problems, not OTTL problems" — which minimizes wrong-skill triggering. Not a 4 because the exclusion clause actively disambiguates against the closest overlapping infra topics.

5 / 5

Total

20

/

20

Passed

Validation

93%

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

Validation — 15 / 16 Passed

Validation for skill structure

CriteriaDescriptionResult

metadata_field

'metadata' should map string keys to string values

Warning

Total

15

/

16

Passed

Repository

coralogix/cx-skills

Path

skills/opentelemetry/opentelemetry-ottl/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.