Skip to content

Commit 3e09510

Browse files
lmolkovapellared
andauthored
Deprecate Zipkin exporter (#4715)
This PR intends to gather feedback on Zipkin exporter usage and possible deprecation. What inspired it: 1. The transformations documented in zipkin exporter are not followed in practice (e.g. [otel-java](https://github.com/open-telemetry/opentelemetry-java/blob/2c379c7179d8b4eb5b391312b43c3edec3dee825/exporters/zipkin/src/main/java/io/opentelemetry/exporter/zipkin/OtelToZipkinSpanTransformer.java) or [zipkin-otel](https://github.com/openzipkin-contrib/zipkin-otel/blob/24308e01781431cc8a6b2c03f52dac1fd645132b/collector-http/src/main/java/zipkin2/collector/otel/http/SpanTranslator.java#L191)). I don't see any signs of transformations in [collector zipkinexporter](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/zipkinexporter) These transformations were not updated despite Semantic Conventions changes and it went unnoticed (e.g. database conventions went stable ~ 6 months ago, but the document still uses deprecated attributes). 2. Public download stats mostly show low usage. e.g. - python: - [opentelemetry-exporter-zipkin](https://pypistats.org/packages/opentelemetry-exporter-zipkin) - ~155k downloads last month - [opentelemetry-exporter-jaeger](https://pypistats.org/packages/opentelemetry-exporter-jaeger) (deprecated and removed from the spec) - ~513k downloads last month - [opentelemetry-exporter-otlp](https://pypistats.org/packages/opentelemetry-exporter-otlp) - 96M downloads last month - .NET trends for [Zipkin, Jaeger, OTLP exporters](https://nugettrends.com/packages?months=3&ids=OpenTelemetry.Exporter.OpenTelemetryProtocol&ids=OpenTelemetry.Exporter.Jaeger&ids=OpenTelemetry.Exporter.Zipkin) also show zipkin having slightly less downloads than deprecated Jaeger and ~10 times less than OTLP - JS shows 2.5x difference in download numbers between - [@opentelemetry/exporter-zipkin](https://npm-stat.com/charts.html?package=%40opentelemetry%2Fexporter-zipkin&from=2025-09-01&to=2025-09-30) - ~20M last month - **THIS IS QUITE HIGH** (possible explanation in #4715 (comment)) - while [@opentelemetry/exporter-trace-otlp-http](https://npm-stat.com/charts.html?package=%40opentelemetry%2Fexporter-trace-otlp-http&from=2025-09-01&to=2025-09-30) along with [@opentelemetry/exporter-trace-otlp-grpc](https://npm-stat.com/charts.html?package=%40opentelemetry%2Fexporter-trace-otlp-grpc&from=2025-09-01&to=2025-09-30) have ~48M downloads - I don't have access to Java maven download stats 3. Availability of [experimental OTLP support in zipkin server](https://github.com/openzipkin-contrib/zipkin-otel/blob/main/module/README.md) and [zipkin exporter in collector](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/zipkinexporter) in beta status 4. Low activity on issues [org:open-telemetry zipkin in:title](https://github.com/search?q=org%3Aopen-telemetry+zipkin+in%3Atitle&type=issues&s=created&o=desc) - most of them are SIG work items including collector zipkin exporter with just a few issues created by end users. --------- Co-authored-by: Robert Pająk <[email protected]>
1 parent 7cdd4c4 commit 3e09510

File tree

5 files changed

+25
-7
lines changed

5 files changed

+25
-7
lines changed

CHANGELOG.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@ release.
1111

1212
### Traces
1313

14+
- Deprecate Zipkin exporter document and make exporter implementation optional.
15+
([#4715](https://github.com/open-telemetry/opentelemetry-specification/pull/4715/))
16+
1417
### Metrics
1518

1619
### Logs

spec-compliance-matrix.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ status of the feature is not known.
99

1010
For the `Optional` column, `X` means the feature is optional, blank means the
1111
feature is required, and columns marked with `*` mean that for each type of
12-
exporter (OTLP and Zipkin), implementing at least one of the supported
12+
exporter (e.g. OTLP), implementing at least one of the supported
1313
formats is required. Implementing more than one format is optional.
1414

1515
## Traces
@@ -334,8 +334,8 @@ Disclaimer: Declarative configuration is currently in Development status - work
334334
| **[Zipkin](specification/trace/sdk_exporters/zipkin.md)** | Optional | Go | Java | JS | Python | Ruby | Erlang | PHP | Rust | C++ | .NET | Swift |
335335
| Zipkin V1 JSON | X | - | + | | + | - | - | - | - | - | - | - |
336336
| Zipkin V1 Thrift | X | - | + | | [-][py1174] | - | - | - | - | - | - | - |
337-
| Zipkin V2 JSON | * | + | + | | + | + | - | + | + | + | + | + |
338-
| Zipkin V2 Protobuf | * | - | + | | + | - | + | - | - | - | - | - |
337+
| Zipkin V2 JSON | X | + | + | | + | + | - | + | + | + | + | + |
338+
| Zipkin V2 Protobuf | X | - | + | | + | - | + | - | - | - | - | - |
339339
| Service name mapping | | + | + | + | + | + | + | + | + | + | + | + |
340340
| SpanKind mapping | | + | + | + | + | + | + | + | + | + | + | + |
341341
| InstrumentationLibrary mapping | | + | + | - | + | + | - | + | + | + | + | + |

spec-compliance-matrix/template.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -375,9 +375,9 @@ sections:
375375
- name: Zipkin V1 Thrift
376376
optional: true
377377
- name: Zipkin V2 JSON
378-
optional_one_of_group_is_required: true
378+
optional: true
379379
- name: Zipkin V2 Protobuf
380-
optional_one_of_group_is_required: true
380+
optional: true
381381
- name: Service name mapping
382382
- name: SpanKind mapping
383383
- name: InstrumentationLibrary mapping

specification/configuration/sdk-environment-variables.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,8 @@ See [OpenTelemetry Protocol Exporter Configuration Options](../protocol/exporter
270270

271271
## Zipkin Exporter
272272

273+
**Status**: [Deprecated](../document-status.md)
274+
273275
| Name | Description | Default | Type |
274276
|-------------------------------|------------------------------------------------------------------------------------|--------------------------------------|-------------|
275277
| OTEL_EXPORTER_ZIPKIN_ENDPOINT | Endpoint for Zipkin traces | `http://localhost:9411/api/v2/spans` | [String][] |

specification/trace/sdk_exporters/zipkin.md

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,20 @@ linkTitle: Zipkin
44

55
# OpenTelemetry to Zipkin Transformation
66

7-
**Status**: [Stable](../../document-status.md)
7+
**Status**: [Deprecated](../../document-status.md)
8+
9+
Zipkin exporter support will be removed from OpenTelemetry specification in December
10+
2026.
11+
12+
> Note: This document remains here for backwards compatibility and
13+
> will be removed in a future version. Existing stable Zipkin exporters MUST
14+
> continue to be supported for at least one year after the artifact is deprecated,
15+
> following the [SDK stability guarantees](/specification/versioning-and-stability.md#sdk-support).
16+
> Implementing a Zipkin exporter is not required for new SDKs.
17+
>
18+
> Users may use [Zipkin exporter](https://github.com/open-telemetry/opentelemetry-collector-contrib/tree/main/exporter/zipkinexporter)
19+
> collector component or [zipkin-otel](https://github.com/openzipkin-contrib/zipkin-otel)
20+
> Zipkin server module.
821
922
This document defines the transformation between OpenTelemetry and Zipkin Spans.
1023
The generic transformation [rules specified here](../../common/mapping-to-non-otlp.md) also apply. If a
@@ -69,7 +82,7 @@ not work properly. OpenTelemetry doesn't provide this consistency guarantee.
6982
Exporter may chose to override the value for service name based on a local root
7083
span to improve Zipkin user experience.
7184

72-
*Note*, the attribute `service.namespace` MUST NOT be used for the Zipkin
85+
Note that the attribute `service.namespace` MUST NOT be used for the Zipkin
7386
service name and should be sent as a Zipkin tag.
7487

7588
### SpanKind

0 commit comments

Comments
 (0)