[go: up one dir, main page]

Skip to content

tracing: Add OpenTelemetry implementation

This MR adds an OpenTelemetry (OTEL) implementation for distributed tracing. It does so by trying to be less intrusive as possible and to maintain compatibility with existing OpenTracing implementations.

OpenTracing has been deprecated for a couple years now in favour of OTEL. With OTEL the new standard, pretty much all major tracing backends now supports this protocol. In our case, all our current supported implementation could be replaced with OTEL (datadog, stackdriver and lightstep all supports OTEL protocol). This mean we could drop support for multiple implementations and only maintain the OTEL one. The only difference between those backend would be the configuration to communicate with the said backend.

However, as a first step, this commit introduces the OTEL implementation within the same current structure to minimize friction. That explains why the same connection_string configuration format has been used.

▶️ I am aware of this MR that aimed at introducing OpenTelemetry, but its almost 5 years old and is probably outdated. It was easier to start from scratch. Also, the current changes do not break the current OpenTracing implementations so it allows for a smoother migration.

Related issues: gitaly#4329

Edited by Olivier Campeau

Merge request reports

Loading