/schema/version. Backends, processors, and collectors use the schema_url embedded in telemetry to interpret and transform incoming data correctly over time.
Example schema file (YAML):
schema_url within telemetry has two important parts:
- family name (groups the logical set of schema versions)
- semantic version (MAJOR.MINOR.PATCH)

schema_url makes telemetry self-describing. Example telemetry JSON:
all, spans, metrics, etc. Example schema with scoped changes:
Semantic versioning determines compatibility and consumer behavior. Follow SemVer rules: patch releases are ignorable structural fixes, minor versions add backward-compatible rules, and major versions introduce potentially breaking changes. Tools should read schema files up to the minor version they support; newer minors or different majors may contain rules they don’t understand.

Consumers can safely read schema files with the same major version and a minor version less than or equal to the minor they support. Patch differences are always safe.
Concrete example
- An SDK emits spans and metrics with
schema_url = https://opentelemetry.io/schemas/1.2.0. Each span containsdeployment.environment = "prod". - In schema
1.1.0the same attribute was namedenvironment. - If the backend stores data using
1.1.0, incoming1.2.0telemetry must be transformed before storage so the backend remains consistent.

- SDK emits telemetry using the new schema (
1.2.0) and queries or dashboards are written againstdeployment.environment. - Storage uses
environmentwithschema_url = 'https://opentelemetry.io/schemas/1.1.0'. - A schema-aware query layer rewrites user-facing queries to match storage semantics.
1.2.0):
- Developers configure their SDKs normally and emit spans/metrics under
1.2.0(e.g.,deployment.environment = "prod"). - Telemetry is sent to an OpenTelemetry Collector instead of directly to the backend.
- The Collector runs a schema-transform processor configured with a target
schema_url(for example,https://opentelemetry.io/schemas/1.1.0). - The processor consults both the incoming
1.2.0rules and the target1.1.0rules to determine renames and rewrites. - The Collector outputs telemetry where attribute names and the
schema_urlmatch the target1.1.0format, then forwards it to the backend.
- Schema files are versioned declarations of semantic changes (renames, additions, deprecations).
- The telemetry
schema_urlmakes data self-describing and enables correct interpretation across the pipeline. - Follow semantic versioning: patches are safe, minors are backward-compatible additions, majors may break.
- Schema transforms (in the Collector or backend) map attributes between versions so storage and queries remain consistent across schema evolution.
- OpenTelemetry Collector documentation
- Semantic Versioning (SemVer)
- OpenTelemetry Schemas (reference)