AttritionOpenTelemetry semantic convention checker

Find the OpenTelemetry attribute names the spec already retired.

Paste instrumentation code. Every attribute key and SDK constant is checked against all 940 attributes of the semantic conventions, stored as structured content in Sanity and read through Sanity Context. You get the verdict, the replacement for your span kind, the release that deprecated it, the spec line that says so, and a patch.

Open the live app Source on GitHub Real repository results
Scan of a TypeScript checkout service: net.peer.name resolves to client.address on the server span and server.address on the client span

What a keyword search gets wrong

net.peer.name

Two answers. server.address on client spans, client.address on server spans. The agent reads the span kind from your code, and asks when it cannot.

db.sql.table

Becomes db.collection.name only if the value is not extracted from db.query.text. A condition, not a rename.

db.name db.namespace

The registry says renamed. The migration guide says removed and integrated. Both are shown, and the key stays out of the patch.

gen_ai.*

58 GenAI attributes, including mcp.* and openai.*, moved to a separate repository in v1.42.0. Moved is not removed, and the agent links to where they live now.

Built on Sanity Context

1,031

documents in the public dataset y9raau23/production, imported from 26 spec releases by a deterministic script

206

deprecated attributes, each with a verdict computed from the spec's own reason, renamed_to and note

107

sources in the Knowledge Base: a dataset slice, five official migration guides and two older spec pages

3

Context tools used: groq_query for verdicts, knowledge_base_read for migration guidance, schema_explorer in chat

Real repositories, pinned commits

RepositoryDeprecated usages in codeFiles to touch
open-telemetry/opentelemetry-demo64
jaegertracing/jaeger6713
redis/go-redis94
go-gorm/opentelemetry00
uptrace/opentelemetry-go-extra187

A finding means the key is deprecated in the spec. Fixtures that read old data, or libraries that dual-emit on purpose during a migration, may keep the old key for now. Every line is linked in the results file.

Scan of a Python service with Knowledge Base migration guidance on each finding