@@ -43,6 +43,21 @@ To install the Linkerd-Jaeger extension, run the command:
43
43
linkerd jaeger install | kubectl apply -f -
44
44
```
45
45
46
+ {{< note >}}
47
+ The Linkerd-Jaeger extension currently configures proxies to export traces
48
+ with the OpenCensus protocol by default for backwards compatibility. OpenCensus is
49
+ [ sunset and no longer maintained] ( https://opentelemetry.io/blog/2023/sunsetting-opencensus/ ) ,
50
+ so we recommend installing the Linkerd-Jaeger extension with OpenTelemetry as the
51
+ proxy trace export protocol:
52
+
53
+ ``` bash
54
+ linkerd jaeger install --set webhook.collectorTraceProtocol=opentelemetry | kubectl apply -f
55
+ ```
56
+
57
+ In the future, the default protocol will be changed to OpenTelemetry so this step
58
+ will no longer be necessary.
59
+ {{< /note >}}
60
+
46
61
You can verify that the Linkerd-Jaeger extension was installed correctly by
47
62
running:
48
63
@@ -80,7 +95,7 @@ information, this
80
95
[ commit] ( https://github.com/BuoyantIO/emojivoto/commit/47a026c2e4085f4e536c2735f3ff3788b0870072 )
81
96
shows how this was done. For most programming languages, it simply requires the
82
97
addition of a client library to take care of this. Emojivoto uses the OpenCensus
83
- client, but others can be used.
98
+ client, but others should be used.
84
99
85
100
To enable tracing in emojivoto, run:
86
101
@@ -89,7 +104,8 @@ kubectl -n emojivoto set env --all deploy OC_AGENT_HOST=collector.linkerd-jaeger
89
104
```
90
105
91
106
This command will add an environment variable that enables the applications to
92
- propagate context and emit spans.
107
+ propagate context and emit spans. In the meantime, the collector installed with
108
+ Linkerd-Jaeger will continue to support both protocols.
93
109
94
110
## Explore Jaeger
95
111
@@ -254,48 +270,40 @@ headers, it's usually much easier to use a library which does three things:
254
270
- Modifies the trace context (i.e. starts a new span)
255
271
- Transmits this data to a trace collector
256
272
257
- We recommend using OpenCensus in your service and configuring it with:
273
+ We recommend using OpenTelemetry in your service and configuring it with:
258
274
259
275
- [ b3 propagation] ( https://github.com/openzipkin/b3-propagation ) (this is the
260
276
default)
261
- - [ the OpenCensus agent
262
- exporter] ( https://opencensus .io/exporters/supported-exporters/go/ocagent / )
277
+ - [ the OpenTelemetry agent
278
+ exporter] ( https://opentelemetry .io/docs/collector/deployment/agent / )
263
279
264
- The OpenCensus agent exporter will export trace data to the OpenCensus collector
265
- over a gRPC API. The details of how to configure OpenCensus will vary language
280
+ The OpenTelemetry agent exporter will export trace data to the OpenTelemetry collector
281
+ over a gRPC API. The details of how to configure OpenTelemetry will vary language
266
282
by language, but there are [ guides for many popular
267
- languages] ( https://opencensus.io/quickstart/ ) . You can also see an end-to-end
268
- example of this in Go with our example application,
269
- [ Emojivoto] ( https://github.com/adleong/emojivoto ) .
270
-
271
- You may notice that the OpenCensus project is in maintenance mode and will
272
- become part of [ OpenTelemetry] ( https://opentelemetry.io/ ) . Unfortunately,
273
- OpenTelemetry is not yet production ready and so OpenCensus remains our
274
- recommendation for the moment.
283
+ languages] ( https://opentelemetry.io/docs/languages/ ) .
275
284
276
285
It is possible to use many other tracing client libraries as well. Just make
277
286
sure the b3 propagation format is being used and the client library can export
278
287
its spans in a format the collector has been configured to receive.
279
288
280
- ## Collector: OpenCensus
289
+ ## Collector: OpenTelemetry
281
290
282
- The OpenCensus collector receives trace data from the OpenCensus agent exporter
291
+ The OpenTelemetry collector receives trace data from the OpenTelemetry agent exporter
283
292
and potentially does translation and filtering before sending that data to
284
- Jaeger. Having the OpenCensus exporter send to the OpenCensus collector gives us
285
- a lot of flexibility: we can switch to any backend that OpenCensus supports
293
+ Jaeger. Having the OpenTelemetry exporter send to the OpenTelemetry collector gives
294
+ us a lot of flexibility: we can switch to any backend that OpenTelemetry supports
286
295
without needing to interrupt the application.
287
296
288
297
## Backend: Jaeger
289
298
290
299
Jaeger is one of the most widely used tracing backends and for good reason: it
291
- is easy to use and does a great job of visualizing traces. However, [ any backend
292
- supported by OpenCensus] ( https://opencensus.io/service/exporters/ ) can be used
293
- instead.
300
+ is easy to use and does a great job of visualizing traces. However, any backend
301
+ supported by OpenTelemetry can be used instead.
294
302
295
303
## Linkerd
296
304
297
305
If your application is injected with Linkerd, the Linkerd proxy will participate
298
- in the traces and will also emit trace data to the OpenCensus collector. This
306
+ in the traces and will also emit trace data to the trace collector. This
299
307
enriches the trace data and allows you to see exactly how much time requests are
300
308
spending in the proxy and on the wire.
301
309
0 commit comments