qa-distributed-tracing
Distributed tracing assertion testing: 6 skills (jaeger-trace-tests, opentelemetry-trace-assertions, otel-collector-config-tester, tempo-trace-tests, trace-spec-author, zipkin-trace-tests) and 1 agent (trace-coverage-reviewer). Asserts on production trace shape (spans, attributes, parent links, status), not just on aggregate metrics.
Install this plugin
/plugin install qa-distributed-tracing@testland-qaPart of role bundle: qa-role-backend
qa-distributed-tracing
Sets the observability assertion testing pattern for the marketplace - assertions on production trace shape (spans, attributes, parent links, status semantics), not just on aggregate metrics. Three SDK + query skills (in-process, Jaeger, Zipkin), one spec-authoring skill, and a reviewer agent that audits coverage + cardinality + spec drift.
Pairs naturally with qa-shift-right (synthetic monitoring), qa-saga-cqrs (saga trace shape), and qa-resilience-drills (DR / runbook tracing).
Components
| Type | Name | Description |
|---|---|---|
| Skill | opentelemetry-trace-assertions | In-process span capture via InMemorySpanExporter + SimpleSpanProcessor (Python), getFinishedSpans() (JS), OpenTelemetryExtension (Java); name + attribute + status + parent assertions; SemConv enforcement |
| Skill | jaeger-trace-tests | Jaeger all-in-one Docker (OTLP gRPC :4317 / HTTP :4318 / UI+API :16686); /api/traces query + parent-via-references; per-test isolation via unique service.name |
| Skill | zipkin-trace-tests | Zipkin Docker on :9411; REST API (/api/v2/traces, /api/v2/dependencies); B3 single-header + multi-header propagation tests |
| Skill | trace-spec-author | Build-an-X for trace specifications: per-feature span set + required SemConv attributes + status semantics + cardinality rules + assertion checklist |
| Agent | trace-coverage-reviewer | Adversarial reviewer: untraced critical paths + missing SemConv attrs + deprecated keys + hand-rolled span code + cardinality risks + spec drift |
| Skill | tempo-trace-tests | Grafana Tempo trace testing via TraceQL queries and the Tempo HTTP API. |
| Skill | otel-collector-config-tester | Validate an OpenTelemetry Collector pipeline config (receivers/processors/exporters) end to end. |
Install
/plugin marketplace add testland/qa
/plugin install qa-distributed-tracing@testland-qaSkills
jaeger-trace-tests
Author integration tests that query Jaeger for cross-service trace verification - Jaeger all-in-one Docker for CI (OTLP gRPC :4317 + HTTP :4318 ingest, query API on :16686), `/api/traces?service=X&operation=Y` query patterns, span set + parent-child + duration assertions. Pairs with `opentelemetry-trace-assertions` for in-process unit-level tests.
opentelemetry-trace-assertions
Author trace-shape assertions in tests using OpenTelemetry SDK in-memory exporter - capture spans during test execution, assert on span name + attributes + status + parent-child structure + duration. Cross-language patterns (Python `InMemorySpanExporter` + `SimpleSpanProcessor`, JS `getRecordedSpans()`, Java `OpenTelemetryExtension`); CI integration.
otel-collector-config-tester
Validates OpenTelemetry Collector pipeline configurations and verifies spans flow end-to-end through the collector: runs `otelcol validate --config`, wires the `debug`/`file` exporter for span-output assertions, and integrates the full cycle into CI. Use when a collector config change (new receiver, processor swap, exporter wiring) needs correctness verification before deployment.
tempo-trace-tests
Authors integration tests that query Grafana Tempo for cross-service trace verification - TraceQL `{ }` span selectors targeting `span.`, `resource.`, and intrinsic fields; Tempo HTTP API (`/api/search` with `q=`, `/api/traces/{id}`) for span-set and attribute assertions; local Tempo via Docker single-binary (ports 4317/4318/3200). Use when the production observability stack uses Tempo as the trace backend and tests must verify distributed trace shape, span attributes, or service topology after instrumentation changes.
trace-spec-author
Build a trace specification document per feature - defines the trace shape (root span + child spans + key attributes per OpenTelemetry semantic conventions) that production code MUST emit. The spec drives both implementation reviews AND trace-assertion tests, so a single declarative document is the source of truth for what observability "looks like" for a feature.
zipkin-trace-tests
Author integration tests that query Zipkin for trace verification - Zipkin all-in-one Docker for CI, REST API (`/api/v2/traces`, `/api/v2/services`, `/api/v2/dependencies`), B3 propagation header tests (single-header and multi-header X-B3-* form), dependency-graph assertions. Use when the team uses Zipkin (legacy or Spring Cloud Sleuth heritage).