Skip to content

Commit 140ad81

Browse files
MrAliassvrnmtiffany76opentelemetrybot
authored
Add Go Auto-Instrumentation Beta Announcement Blog Post (#6079)
Co-authored-by: Severin Neumann <[email protected]> Co-authored-by: Tiffany Hrabusa <[email protected]> Co-authored-by: opentelemetrybot <[email protected]>
1 parent 8b577fa commit 140ad81

File tree

2 files changed

+164
-0
lines changed

2 files changed

+164
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
---
2+
# prettier-ignore
3+
title: Announcing the Beta Release of OpenTelemetry Go Auto-Instrumentation using eBPF
4+
linkTitle: Go Auto-Instrumentation Beta
5+
date: 2025-01-30
6+
# prettier-ignore
7+
author: >-
8+
[Tyler Yahn](https://github.com/MrAlias) (Splunk)
9+
[Mike Dame](https://github.com/damemi) (Odigos)
10+
sig: SIG Go Auto-Instrumentation
11+
# prettier-ignore
12+
cSpell:ignore: Yahn Odigos rolldice Beyla's Beyla
13+
---
14+
15+
The OpenTelemetry community is excited to announce the beta release of the
16+
[OpenTelemetry Go Auto-Instrumentation project](https://github.com/open-telemetry/opentelemetry-go-instrumentation)!
17+
This milestone brings us closer to our mission of making observability simple,
18+
accessible, and effective for Go applications.
19+
20+
## What is Go Auto-Instrumentation?
21+
22+
OpenTelemetry Go Auto-Instrumentation allows developers to collect traces from
23+
their Go applications without requiring manual code modifications or rebuilding
24+
binaries. By dynamically instrumenting applications at runtime using
25+
[eBPF](https://ebpf.io/), this project lowers the barrier to adopting
26+
observability best practices and provides deep insights into your application's
27+
behavior.
28+
29+
## Key features of the beta release
30+
31+
The beta release offers foundational support for automatic instrumentation with
32+
these key features:
33+
34+
- **HTTP server instrumentation**: Automatically trace incoming and outgoing
35+
HTTP requests with trace context propagation when using the
36+
[`net/http` package](https://pkg.go.dev/net/http).
37+
- **Database instrumentation**: Instrument database queries and connections that
38+
use the [`database/sql` package](https://pkg.go.dev/database/sql).
39+
- **gRPC instrumentation**: Easily collect telemetry data from
40+
[gRPC clients and servers](https://pkg.go.dev/google.golang.org/grpc).
41+
- **Kafka-go instrumentation**: Monitor and trace Kafka messaging using the
42+
[`kafka-go` package](https://pkg.go.dev/github.com/segmentio/kafka-go).
43+
- **Extensible with OpenTelemetry’s Trace API**: Seamlessly extend
44+
auto-instrumentation with custom spans using the
45+
[OpenTelemetry Go Trace API](https://pkg.go.dev/go.opentelemetry.io/otel).
46+
- **Configuration using environment variables**: Simplify configuration with
47+
environment-based settings, reducing the need for code changes.
48+
- **Semantic convention compliance**: Produced telemetry complies with the
49+
latest OpenTelemetry semantic conventions ensuring compatibility with the OTel
50+
ecosystem.
51+
52+
## Getting started
53+
54+
Getting started with OpenTelemetry Go Auto-Instrumentation is straightforward!
55+
For detailed instructions on installation, configuration, and running your
56+
application with auto-instrumentation, check out the
57+
[Getting Started guide](https://github.com/open-telemetry/opentelemetry-go-instrumentation/blob/main/docs/getting-started.md).
58+
59+
To see a complete example, check out the
60+
[`rolldice` application](https://github.com/open-telemetry/opentelemetry-go-instrumentation/tree/0ebb7f21116bfdd8e29c315efdbf359cd74bddac/examples/rolldice).
61+
62+
## The road to stabilization
63+
64+
With the beta release now available, the project team is focused on preparing
65+
for a stable release. Over the coming year, we’ll concentrate on achieving the
66+
following goals:
67+
68+
1. **Optimize runtime instrumentation with eBPF**
69+
70+
We will continue to leverage and improve eBPF for dynamic runtime
71+
instrumentation, ensuring that Go applications have reliable, low-overhead
72+
observability. This includes staying up to date with the latest developments
73+
in both the Go and eBPF ecosystems.
74+
75+
2. **Expand ecosystem support**
76+
77+
While the beta release supports a limited number of Go packages and only a
78+
single telemetry processing pipeline, we plan to broaden this support. We’ll
79+
introduce instrumentation for additional Go packages and allow users to
80+
create custom telemetry processing pipelines. This expansion will make it
81+
easier to integrate with popular Go packages and provide flexibility for
82+
custom instrumentation.
83+
84+
3. **Integrate with Beyla’s donation to OpenTelemetry**
85+
86+
The proposed
87+
[donation of Beyla to OpenTelemetry](https://github.com/open-telemetry/community/issues/2406)
88+
presents an opportunity to enhance OpenTelemetry’s eBPF-based
89+
auto-instrumentation capabilities. If accepted, this donation will help
90+
expand support for additional signals, protocols, and languages, creating a
91+
more comprehensive eBPF-based observability solution. OpenTelemetry Go
92+
Auto-Instrumentation will evolve alongside these developments, ensuring
93+
seamless collaboration while continuing to provide robust tracing for Go
94+
applications.
95+
96+
Keep track of our progress in the
97+
[2025 Goals tracking issue](https://github.com/open-telemetry/opentelemetry-go-instrumentation/issues/1659).
98+
99+
## Join the journey
100+
101+
As with all OpenTelemetry projects, the success of Go Auto-Instrumentation
102+
depends on the community. Whether you’re a developer interested in contributing,
103+
a company looking to adopt the project, or simply curious about observability,
104+
we’d love for you to join us.
105+
106+
Here’s how you can get involved:
107+
108+
- **Try the beta**: Integrate the project into your applications and
109+
[provide feedback](https://github.com/open-telemetry/opentelemetry-go-instrumentation/discussions/1697).
110+
- **Contribute**: Check out
111+
[open issues](https://github.com/open-telemetry/opentelemetry-go-instrumentation/issues)
112+
and
113+
[contribute](https://github.com/open-telemetry/opentelemetry-go-instrumentation/blob/0ebb7f21116bfdd8e29c315efdbf359cd74bddac/CONTRIBUTING.md)
114+
to the project on
115+
[GitHub](https://github.com/open-telemetry/opentelemetry-go-instrumentation).
116+
- **Join the discussion**: Participate in our
117+
[SIG meetings](https://groups.google.com/a/opentelemetry.io/g/calendar-go) and
118+
discussions on [Slack](https://cloud-native.slack.com/archives/C03S01YSAS0).
119+
120+
## Acknowledgments
121+
122+
This beta release is the result of countless hours of work by contributors from
123+
around the world. Thank you to everyone who has contributed code, documentation,
124+
feedback, and enthusiasm to make this milestone possible.

static/refcache.json

+40
Original file line numberDiff line numberDiff line change
@@ -1827,6 +1827,10 @@
18271827
"StatusCode": 200,
18281828
"LastSeen": "2024-10-24T15:10:31.184402+02:00"
18291829
},
1830+
"https://cloud-native.slack.com/archives/C03S01YSAS0": {
1831+
"StatusCode": 200,
1832+
"LastSeen": "2025-01-29T17:30:33.389601601Z"
1833+
},
18301834
"https://cloud-native.slack.com/archives/C0422FSELH0": {
18311835
"StatusCode": 200,
18321836
"LastSeen": "2024-08-09T10:45:38.976435-04:00"
@@ -6559,6 +6563,10 @@
65596563
"StatusCode": 206,
65606564
"LastSeen": "2025-01-18T20:45:29.87596Z"
65616565
},
6566+
"https://github.com/open-telemetry/community/issues/2406": {
6567+
"StatusCode": 206,
6568+
"LastSeen": "2025-01-29T17:30:15.084501808Z"
6569+
},
65626570
"https://github.com/open-telemetry/community/issues/2497": {
65636571
"StatusCode": 206,
65646572
"LastSeen": "2025-01-18T20:45:32.577654Z"
@@ -8983,10 +8991,34 @@
89838991
"StatusCode": 200,
89848992
"LastSeen": "2024-08-09T10:44:15.667174-04:00"
89858993
},
8994+
"https://github.com/open-telemetry/opentelemetry-go-instrumentation/blob/0ebb7f21116bfdd8e29c315efdbf359cd74bddac/CONTRIBUTING.md": {
8995+
"StatusCode": 206,
8996+
"LastSeen": "2025-01-29T17:30:28.598163793Z"
8997+
},
8998+
"https://github.com/open-telemetry/opentelemetry-go-instrumentation/blob/main/docs/getting-started.md": {
8999+
"StatusCode": 206,
9000+
"LastSeen": "2025-01-29T17:30:06.908079743Z"
9001+
},
89869002
"https://github.com/open-telemetry/opentelemetry-go-instrumentation/blob/main/docs/how-it-works.md": {
89879003
"StatusCode": 206,
89889004
"LastSeen": "2025-01-16T11:37:46.811839-05:00"
89899005
},
9006+
"https://github.com/open-telemetry/opentelemetry-go-instrumentation/discussions/1697": {
9007+
"StatusCode": 206,
9008+
"LastSeen": "2025-01-29T17:30:21.969390623Z"
9009+
},
9010+
"https://github.com/open-telemetry/opentelemetry-go-instrumentation/issues": {
9011+
"StatusCode": 206,
9012+
"LastSeen": "2025-01-29T17:30:25.012053984Z"
9013+
},
9014+
"https://github.com/open-telemetry/opentelemetry-go-instrumentation/issues/1659": {
9015+
"StatusCode": 206,
9016+
"LastSeen": "2025-01-29T17:30:18.099406688Z"
9017+
},
9018+
"https://github.com/open-telemetry/opentelemetry-go-instrumentation/tree/0ebb7f21116bfdd8e29c315efdbf359cd74bddac/examples/rolldice": {
9019+
"StatusCode": 206,
9020+
"LastSeen": "2025-01-29T17:30:12.02761941Z"
9021+
},
89909022
"https://github.com/open-telemetry/opentelemetry-go-vanityurls": {
89919023
"StatusCode": 200,
89929024
"LastSeen": "2024-08-23T20:33:46.750242014Z"
@@ -17075,6 +17107,10 @@
1707517107
"StatusCode": 200,
1707617108
"LastSeen": "2024-08-12T17:56:07.964057+02:00"
1707717109
},
17110+
"https://pkg.go.dev/github.com/segmentio/kafka-go": {
17111+
"StatusCode": 200,
17112+
"LastSeen": "2025-01-29T17:30:03.308377379Z"
17113+
},
1707817114
"https://pkg.go.dev/go.opentelemetry.io/collector/cmd/builder": {
1707917115
"StatusCode": 200,
1708017116
"LastSeen": "2024-03-01T16:49:30.684687+01:00"
@@ -17347,6 +17383,10 @@
1734717383
"StatusCode": 200,
1734817384
"LastSeen": "2024-01-30T15:25:12.45117-05:00"
1734917385
},
17386+
"https://pkg.go.dev/google.golang.org/grpc": {
17387+
"StatusCode": 200,
17388+
"LastSeen": "2025-01-29T17:30:01.456756939Z"
17389+
},
1735017390
"https://pkg.go.dev/google.golang.org/grpc/credentials#PerRPCCredentials": {
1735117391
"StatusCode": 200,
1735217392
"LastSeen": "2025-01-06T11:32:36.518761-05:00"

0 commit comments

Comments
 (0)