# open-telemetry/opentelemetry-go-instrumentation

OpenTelemetry Auto Instrumentation using eBPF

Repository: https://github.com/open-telemetry/opentelemetry-go-instrumentation
Canonical: https://ross.abutalabs.com/products/opentelemetry-go-instrumentation
Homepage: https://opentelemetry.io
Language: C
License: Apache-2.0
License Family: permissive
Topics: ebpf, go, golang, instrumentation, metrics, observability, telemetry, tracing
Last push: 2026-09-01T00:30:23+00:00

## Health v2 (maintenance only)
Score: 93/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 100, release rhythm 81, longevity 100
- inputs: {"age_days": 1493, "days_push": 2, "days_rel": 128, "gap_med": 20, "n_releases_24m": 12}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1030, forks 145 (observed 2026-09-01T02:14:05.509546+00:00)

## What it is
OpenTelemetry automatic instrumentation for Go applications that uses eBPF to inject tracing without modifying source code. It captures distributed traces from popular Go libraries and exports them to any OpenTelemetry-compatible backend.

## Use cases
- add distributed tracing to Go services without code changes
- instrument Go microservices with zero-code observability
- trace HTTP and gRPC calls in Go apps via eBPF
- get OpenTelemetry spans from existing Go binaries
- observe Go applications on Kubernetes without recompiling

## When to choose
- you need tracing for Go apps but cannot modify their source code
- you want vendor-neutral OpenTelemetry traces with minimal setup
- you run Go services on Linux (kernel 4.4+) and can use eBPF

## When to avoid
- you need metrics or logs auto-instrumentation, as this project focuses on tracing
- you run on non-Linux platforms without Docker or a VM
- you need guaranteed arm64 support, since it is untested there
- you require fully stable, production-hardened tooling, as the project is still work in progress

## Facets
- artifact type: library
- maturity: active
- function: tracing, monitoring
- domain: monitoring, developer-tools
- platform: go
- tags: ebpf, opentelemetry, auto-instrumentation, zero-code-instrumentation, distributed-tracing, telemetry, instrumentation, devops, linux, docker, kubernetes

## Member repositories
- open-telemetry/opentelemetry-go-instrumentation (main) score 93

## Provenance
- Observed fields: from GitHub, fetched 2026-09-01T02:14:05.509546+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T07:07:48.445544+00:00, confidence not recorded.
  - readme: https://github.com/open-telemetry/opentelemetry-go-instrumentation (fetched 2026-09-01T02:14:05.509546+00:00, sha c8941ec0a7f4)
  - homepage: https://opentelemetry.io (fetched 2026-08-29T13:07:52.215049+00:00, sha 51756d27c4f1)
  - site_page: https://opentelemetry.io/docs/concepts/signals/traces (fetched 2026-08-29T13:07:52.223104+00:00, sha 123b7f8bc630)
  - site_page: https://opentelemetry.io/docs/concepts/signals/metrics (fetched 2026-08-29T13:07:52.224891+00:00, sha 5fe9fc342c92)
  - site_page: https://opentelemetry.io/docs/concepts/signals/logs (fetched 2026-08-29T13:07:52.226762+00:00, sha 126e1fa6c0a2)
  - site_page: https://opentelemetry.io/docs/concepts/signals/baggage (fetched 2026-08-29T13:07:52.228697+00:00, sha fc18d0d07d4b)
  - site_page: https://opentelemetry.io/docs (fetched 2026-08-29T13:07:52.217655+00:00, sha 06566227bba9)
  - site_page: https://opentelemetry.io/docs/what-is-opentelemetry (fetched 2026-08-29T13:07:52.219367+00:00, sha dd58475f7d30)
  - site_page: https://opentelemetry.io/docs/demo (fetched 2026-08-29T13:07:52.221453+00:00, sha 03a34a004b8f)
  - site_page: https://opentelemetry.io/docs/concepts/instrumentation/zero-code (fetched 2026-08-29T13:07:52.230316+00:00, sha c811260b8c51)
- Data as of 2026-08-30T08:39:29.467469+00:00.
