golang

odigos

distributed-traces

ebpf

Effortless distributed tracing for Go applications

Today, we're thrilled to unveil Go automatic instrumentation v0.6 and Odigos v0.1.3, enhancing observability for Go developers by enabling automatic context propagation in any Go application.

Effortless distributed tracing for Go applications
Author
/eden.jpgEden Federman
Sep 26 2022

Today we are excited to announce version v0.6 of Go automatic instrumentation and version v0.1.3 of Odigos. These versions focus on improving observability for Go developers.

Odigos is now able to automatically perform context propagation on any Go application. An excellent example can be seen below in the trace created by Odigos:

Automatically created distributed trace

As you can see, context is propagated automatically between different libraries (an HTTP request that caused an invocation of a gRPC request) and across processes (marked in different colors).

Bringing distributed traces to everyone

We believe the automatic creation of distributed traces is a key part of making observability simpler. The idea of distributed tracing first started with a paper called Dapper that Google published in 2010. 12 years later, and still, the majority of companies have yet to implement distributed tracing.

One of the reasons implementation has been prolonged, is that distributed tracing is especially hard to implement when developing Go applications. Due to the static binaries produced by the language, until recently automatic instrumentation was just not possible. Fortunately, using eBPF we can now solve this.. Using an eBPF feature called uprobes allows us to extend binaries with minimal effect on performance (for example, the above trace took 3.1ms to complete).

New features

In addition to context propagation this version introduces the following improvements:

  • Removed dependency on goroutine id: The previous versions used goroutine id to correlate spans. Following feedback from the community that this is not an id we should count on, this version does not use goroutine id anymore. Instead, we are now using the context.Context object for span correlations. This is similar to how it happens when you write manual instrumentation and is much more stable.
  • More accurate timestamps: We improved the way we calculate the start and end timestamps of every span.
  • Bug fixes and performance improvements.

We believe in community

Both Odigos and Go automatic instrumentation are developed in open source with the community. Recently, the Go automatic instrumentation was donated to OpenTelemetry and is now developed together with the OpenTelemetry community in the form of a new SIG called Go Automatic Instrumentation.

We can’t wait to hear what you think. We invite you to follow us or reach out to us in the following ways:

If you want to learn more about how you can generate distributed traces instantly check out our GitHub repository. We'd really appreciate it if you could throw us a ⭐👇
https://github.com/keyval-dev/odigos

Related posts

Odigos Version v0.1.4

Odigos Version v0.1.4

Explore the latest features, improvements, and additions in Odigos version v0.1.4, including ARM support and new destinations.

Odigos Version v0.1.4

Eden Federman

Feb 13 2023

Odigos - allowing a choice between the 5 leading open-source observability backends

Odigos - allowing a choice between the 5 leading open-source observability backends

Odigos now offers integration with five leading open-source observability backends like Prometheus, Jaeger, Loki, Tempo, and SigNoz, giving companies the flexibility to choose the best-fit solution for their observability needs and paving the way for multi-vendor observability stacks

Odigos - allowing a choice between the 5 leading open-source observability backends

Ari Recht

Oct 13 2022

Faster and Better - Introducing the New Odigos Language Detector

Faster and Better - Introducing the New Odigos Language Detector

Discover the latest enhancements in language detection within Odigos, including improved speed and efficiency.

Faster and Better - Introducing the New Odigos Language Detector

Eden Federman

May 17 2023