Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Go Auto-Instrumentation Beta Announcement Blog Post #6079

Merged
merged 16 commits into from
Jan 30, 2025
Merged
Changes from 11 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
127 changes: 127 additions & 0 deletions content/en/blog/2025/go-auto-instrumentation-beta.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
---
# prettier-ignore
title: Announcing the Beta Release of OpenTelemetry Go Auto-Instrumentation using eBPF
linkTitle: Go Auto-Instrumentation Beta
date: 2025-01-29
svrnm marked this conversation as resolved.
Show resolved Hide resolved
# prettier-ignore
author: >-
[Tyler Yahn](https://github.com/MrAlias) (Splunk)
[Mike Dame](https://github.com/damemi) (Odigos)
sig: SIG Go Auto-Instrumentation
# prettier-ignore
cSpell:ignore: Yahn Odigos rolldice Beyla's Beyla
---

The OpenTelemetry community is excited to announce the beta release of the
[OpenTelemetry Go Auto-Instrumentation project](https://github.com/open-telemetry/opentelemetry-go-instrumentation)!
This milestone brings us closer to our mission of making observability simple,
accessible, and effective for Go applications.

## What is Go Auto-Instrumentation?

OpenTelemetry Go Auto-Instrumentation allows developers to collect traces from
their Go applications without requiring manual code modifications or rebuilding
binaries. By dynamically instrumenting applications at runtime using
[eBPF](https://ebpf.io/), this project lowers the barrier to adopting
observability best practices and provides deep insights into your application's
behavior.

## Key features of the beta release

The beta release offers foundational support for automatic instrumentation with
these key features:

- **HTTP server instrumentation**: Automatically trace incoming and outgoing
HTTP requests with trace context propagation when using the
[`net/http` package](https://pkg.go.dev/net/http).
- **Database instrumentation**: Instrument database queries and connections that
use the [`database/sql` package](https://pkg.go.dev/database/sql).
- **gRPC instrumentation**: Easily collect telemetry data from
[gRPC clients and servers](https://pkg.go.dev/google.golang.org/grpc).
- **Kafka-go instrumentation**: Monitor and trace Kafka messaging using the
[`kafka-go` package](https://pkg.go.dev/github.com/segmentio/kafka-go).
- **Extensible with OpenTelemetry’s Trace API**: Seamlessly extend
auto-instrumentation with custom spans using the
[OpenTelemetry Go Trace API](https://pkg.go.dev/go.opentelemetry.io/otel).
- **Configuration using environment variables**: Simplify configuration with
environment-based settings, reducing the need for code changes.
- **Semantic convention compliance**: Produced telemetry complies with the
latest OpenTelemetry semantic conventions ensuring compatibility with the OTel
ecosystem.

## Getting started

Getting started with OpenTelemetry Go Auto-Instrumentation is straightforward!
For detailed instructions on installation, configuration, and running your
application with auto-instrumentation, check out the
[Getting Started guide](https://github.com/open-telemetry/opentelemetry-go-instrumentation/blob/main/docs/getting-started.md).

To see a complete example, check out the
[`rolldice` application](https://github.com/open-telemetry/opentelemetry-go-instrumentation/tree/0ebb7f21116bfdd8e29c315efdbf359cd74bddac/examples/rolldice).

## The road to stabilization

With the beta release now available, the project team is focused on preparing
for a stable release. Over the coming year, we’ll concentrate on achieving the
following goals:

1. **Optimize runtime instrumentation with eBPF**

We will continue to leverage and improve eBPF for dynamic runtime
instrumentation, ensuring that Go applications have reliable, low-overhead
observability. This includes staying up to date with the latest developments
in both the Go and eBPF ecosystems.

2. **Expand ecosystem support**

While the beta release supports a limited number of Go packages and only a
single telemetry processing pipeline, we plan to broaden this support. We’ll
introduce instrumentation for additional Go packages and allow users to
create custom telemetry processing pipelines. This expansion will make it
easier to integrate with popular Go packages and provide flexibility for
custom instrumentation.

3. **Integrate with Beyla’s donation to OpenTelemetry**

The
[donation of Beyla to OpenTelemetry](https://github.com/open-telemetry/community/issues/2406)
brings the opportunity to unify and enhance OpenTelemetry's eBPF
auto-instrumentation offerings. As an eBPF-based tool for both traces and
metrics, this donation will help provide instrumentation for more signals,
protocols, and languages in open source. And because the Go instrumentation
in Beyla is already based on the OpenTelemetry Go Auto-Instrumentation
libraries, we plan to merge the projects – and their development teams –
under the OpenTelemetry community organization.

The integration of Beyla will significantly enhance auto-instrumentation for
Go!
MrAlias marked this conversation as resolved.
Show resolved Hide resolved

Keep track of our progress in the
[2025 Goals tracking issue](https://github.com/open-telemetry/opentelemetry-go-instrumentation/issues/1659).

## Join the journey

As with all OpenTelemetry projects, the success of Go Auto-Instrumentation
depends on the community. Whether you’re a developer interested in contributing,
a company looking to adopt the project, or simply curious about observability,
we’d love for you to join us.

Here’s how you can get involved:

- **Try the beta**: Integrate the project into your applications and
[provide feedback](https://github.com/open-telemetry/opentelemetry-go-instrumentation/discussions/1697).
- **Contribute**: Check out
[open issues](https://github.com/open-telemetry/opentelemetry-go-instrumentation/issues)
and
[contribute](https://github.com/open-telemetry/opentelemetry-go-instrumentation/blob/0ebb7f21116bfdd8e29c315efdbf359cd74bddac/CONTRIBUTING.md)
to the project on
[GitHub](https://github.com/open-telemetry/opentelemetry-go-instrumentation).
- **Join the discussion**: Participate in our
[SIG meetings](https://groups.google.com/a/opentelemetry.io/g/calendar-go) and
discussions on [Slack](https://cloud-native.slack.com/archives/C03S01YSAS0).

## Acknowledgments

This beta release is the result of countless hours of work by contributors from
around the world. Thank you to everyone who has contributed code, documentation,
feedback, and enthusiasm to make this milestone possible.