DEV.co
Open-Source Observability · open-telemetry

opentelemetry-go

OpenTelemetry-Go is the official Go implementation of OpenTelemetry, providing APIs and SDKs to instrument applications with distributed tracing, metrics, and logging. It enables Go applications to send observability data to external platforms with standardized instrumentation.

Source: GitHub — github.com/open-telemetry/opentelemetry-go
6.5k
GitHub stars
1.4k
Forks
Go
Primary language
Apache-2.0
License (OSI-approved)

Key facts

Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.

FieldValue
Repositoryopen-telemetry/opentelemetry-go
Owneropen-telemetry
Primary languageGo
LicenseApache-2.0 — OSI-approved
Stars6.5k
Forks1.4k
Open issues201
Latest releasev1.44.0 (2026-05-27)
Last updated2026-07-08
Sourcehttps://github.com/open-telemetry/opentelemetry-go

What opentelemetry-go is

Provides stable APIs for traces and metrics with beta logging support; integrates with OTLP, Prometheus, Zipkin, and stdout exporters. Supports Go 1.25+ across Linux, macOS, and Windows on multiple architectures with active upstream compatibility tracking.

Quickstart

Get the opentelemetry-go source

Clone the repository and explore it locally.

terminalbash
git clone https://github.com/open-telemetry/opentelemetry-go.gitcd opentelemetry-go# follow the project's README for install & configuration

Need it deployed, integrated, or customized instead? DEV.co ships production installs.

Best use cases

Distributed System Observability

Instrument microservices and distributed Go applications to correlate traces across service boundaries, enabling root-cause analysis and performance bottleneck identification in complex deployments.

Application Performance Monitoring (APM)

Collect metrics and traces to monitor application health, latency, error rates, and resource utilization, feeding data into observability platforms like Datadog, New Relic, or Grafana.

Cloud-Native and Container Deployments

Standardized telemetry collection for containerized and Kubernetes-based Go services; integrates naturally with cloud platforms via OTLP exporters and sidecar observability stacks.

Implementation considerations

  • Instrumentation requires either adoption of official contrib instrumentation libraries or manual SDK integration; plan for code changes across application entry points.
  • Exporter configuration (endpoint, credentials, sampling) should be externalized and environment-dependent; avoid hardcoding observability endpoints.
  • Sampling strategy must be chosen early to balance data volume and cost; unsampled high-throughput applications can generate excessive telemetry.
  • Integrate structured logging patterns with the logging API (Beta) carefully; test log pipeline stability before relying on it for alerting.
  • Dependencies on contrib instrumentation libraries add transitive maintenance burden; verify their release cycles align with your Go version upgrades.

When to avoid it — and what to weigh

  • Logs are production-critical — Logging is currently in Beta status; if log collection is a primary requirement, confirm stability guarantees and test thoroughly before production rollout.
  • Proprietary observability platform with no OTLP support — Limited to officially supported exporters (OTLP, Prometheus, Zipkin, stdout). Custom exporters require development; if your platform has no standard integration, cost and effort may be high.
  • Minimal instrumentation overhead required — OpenTelemetry introduces runtime overhead for trace/metric collection. For ultra-latency-sensitive workloads, evaluate overhead impact in your environment first.
  • Go versions older than 1.25 — Project maintains compatibility only with currently supported Go releases; older versions are not tested and may encounter compatibility issues.

License & commercial use

Licensed under Apache License 2.0 (Apache-2.0), an OSI-approved permissive license. Permits commercial use, modification, and distribution with attribution and liability disclaimers.

Apache-2.0 permits commercial use without restriction. No license fee or commercial support obligation embedded in the license itself. Support and commercial offerings are available through the CNCF ecosystem (Datadog, Grafana Labs, etc.) but are separate from the license.

DEV.co evaluation signals

Editorial assessment — not user reviews. Directional, with an explicit confidence level.

SignalAssessment
MaintenanceActive
DocumentationStrong
License clarityClear
Deployment complexityLow
DEV.co fitStrong
Assessment confidenceHigh
Security considerations

Project participates in OpenSSF Scorecard, Best Practices Badge, and OSS-Fuzz. These signals suggest active security review, but no specific CVE or vulnerability data is provided. Exporters must handle credential/token management securely (environment variables, secret stores). OTLP traffic should use TLS in production. Review dependency tree for transitive vulnerabilities periodically.

Alternatives to consider

Jaeger Go Client

Traces-only library; if you need metrics or standardized multi-signal support, Jaeger is narrower. Jaeger is now part of OpenTelemetry, making OpenTelemetry-Go the recommended forward path.

DataDog APM Agent (DD-trace-go)

Proprietary, vendor-locked APM solution. Use if you are fully committed to Datadog; OpenTelemetry-Go is more portable across observability platforms.

Prometheus client_golang (metrics only)

Metrics-only; does not include tracing or logging. Suitable if you only need Prometheus metrics; OpenTelemetry-Go unifies all three signals.

Software development agency

Build on opentelemetry-go with DEV.co software developers

OpenTelemetry-Go provides a vendor-neutral way to instrument distributed traces, metrics, and logs. Start with our implementation guide and choose your exporter.

Talk to DEV.co

Related open-source tools

Surfaced by semantic similarity across the DEV.co open-source index.

Related on DEV.co

Explore the category and the services that help you build with it.

opentelemetry-go FAQ

Is OpenTelemetry-Go production-ready?
Traces and Metrics are Stable. Logs are Beta. Use Traces and Metrics in production; test Logs thoroughly before relying on it for critical alerting.
Do I have to use a specific observability backend?
No. OpenTelemetry is backend-agnostic via standard OTLP export. You can send data to Jaeger, Tempo, Datadog, New Relic, Grafana Cloud, or any OTLP-compatible backend.
What is the overhead of OpenTelemetry instrumentation?
Overhead depends on sampling rate, exporter choice, and cardinality of spans/metrics. Benchmark in your environment; aggressive sampling (e.g., 1:100) minimizes impact.
How do I instrument third-party libraries?
Use officially supported instrumentation libraries from opentelemetry-go-contrib (e.g., grpc, http, sql). Manual instrumentation is an option for custom code.

Work with a software development agency

Need help beyond evaluating opentelemetry-go? DEV.co is a software development agency offering software development services and web development for teams of every size. Our software developers and web developers build custom software, web applications, APIs, and open-source observability integrations — and maintain them long-term.

Need Observability for Your Go Services?

OpenTelemetry-Go provides a vendor-neutral way to instrument distributed traces, metrics, and logs. Start with our implementation guide and choose your exporter.