# open-telemetry/opentelemetry-go

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/open-telemetry-opentelemetry-go).**

6,434 stars · 1,404 forks · Go · Apache-2.0

## Links

- GitHub: https://github.com/open-telemetry/opentelemetry-go
- Homepage: https://opentelemetry.io/docs/languages/go
- awesome-repositories: https://awesome-repositories.com/repository/open-telemetry-opentelemetry-go.md

## Topics

`logging` `metrics` `opentelemetry` `tracing`

## Description

OpenTelemetry Go is a framework for generating and collecting distributed traces, metrics, and logs from Go applications. It provides a standardized telemetry instrumentation API for adding observability markers to code and a corresponding SDK for processing and emitting these signals.

The project utilizes a configurable observability pipeline to sample and export telemetry data to external backends using the OTLP wire protocol. It features a pluggable export system and a separation between the public API and the SDK implementation, allowing telemetry to be routed to third-party platforms without requiring changes to application source code.

The library covers several high-level observability domains, including distributed tracing to track request paths across service boundaries and performance metrics collection for monitoring system health. It supports both manual instrumentation for business logic and automatic instrumentation for frameworks and HTTP servers, while using context propagation to correlate signals across distributed network messages.

## Tags

### System Administration & Monitoring

- [Distributed Tracing](https://awesome-repositories.com/f/system-administration-monitoring/distributed-tracing.md) — Provides a framework for collecting and analyzing telemetry data across distributed service architectures to identify bottlenecks and failures. ([source](https://cdn.jsdelivr.net/gh/open-telemetry/opentelemetry-go@main/README.md))
- [Distributed Tracing](https://awesome-repositories.com/f/system-administration-monitoring/monitoring-and-observability/observability-platforms/distributed-tracing-execution-analysis/distributed-tracing.md) — Provides a full framework for tracking requests across distributed systems using unique identifiers to analyze performance and execution flow.
- [Application Metric Tracking](https://awesome-repositories.com/f/system-administration-monitoring/application-metric-tracking.md) — Enables the collection of custom application-level performance counters and histograms to monitor specific business logic.
- [Application Observability](https://awesome-repositories.com/f/system-administration-monitoring/application-observability.md) — Provides a framework for monitoring, tracing, and debugging the execution flow and performance of Go applications.
- [Application Performance Monitoring](https://awesome-repositories.com/f/system-administration-monitoring/application-performance-monitoring.md) — Gathers numerical metrics and timing data from Go code to monitor system health and performance bottlenecks.
- [Automatic Framework Instrumentation](https://awesome-repositories.com/f/system-administration-monitoring/automatic-framework-instrumentation.md) — Provides tools to automatically inject telemetry collection into software frameworks and libraries without manual code changes. ([source](https://opentelemetry.io/))
- [Data Export Pipelines](https://awesome-repositories.com/f/system-administration-monitoring/data-export-pipelines.md) — Provides a configurable pipeline architecture for streaming telemetry and performance data to external analysis backends.
- [Telemetry Exporters](https://awesome-repositories.com/f/system-administration-monitoring/infrastructure-observability/external-resource-observers/telemetry-exporters.md) — Provides a pluggable system for pushing internal performance metrics and logs to third-party observability platforms. ([source](https://opentelemetry.io/))
- [Instrumentation APIs](https://awesome-repositories.com/f/system-administration-monitoring/manual-telemetry-instrumentation/instrumentation-apis.md) — Provides a standardized set of interfaces for adding manual and automatic observability markers to Go application code.
- [Metric Collection](https://awesome-repositories.com/f/system-administration-monitoring/metric-collection.md) — Gathers quantitative time-series performance data to monitor system health and resource usage. ([source](https://cdn.jsdelivr.net/gh/open-telemetry/opentelemetry-go@main/README.md))
- [Observability Pipelines](https://awesome-repositories.com/f/system-administration-monitoring/observability-pipelines.md) — Ships a configurable pipeline for collecting, formatting, and routing telemetry signals to centralized monitoring platforms.
- [OpenTelemetry Exporters](https://awesome-repositories.com/f/system-administration-monitoring/opentelemetry-exporters.md) — Provides components for exporting telemetry data in compliance with OpenTelemetry standards to external backends.
- [OpenTelemetry SDKs](https://awesome-repositories.com/f/system-administration-monitoring/opentelemetry-sdks.md) — Provides the standardized software development kit for generating and exporting distributed traces, metrics, and logs in Go.
- [Custom Logic Spans](https://awesome-repositories.com/f/system-administration-monitoring/application-metric-tracking/custom-logic-spans.md) — Offers APIs to define manual instrumentation points for monitoring internal application logic via structured metadata. ([source](https://opentelemetry.io/docs/languages/go/getting-started/))
- [HTTP Server Instrumentation](https://awesome-repositories.com/f/system-administration-monitoring/http-server-instrumentation.md) — Captures inbound and outbound HTTP request telemetry to track network traffic and service dependencies. ([source](https://opentelemetry.io/docs/languages/go/getting-started/))
- [Telemetry Processing Engines](https://awesome-repositories.com/f/system-administration-monitoring/monitoring-and-observability/observability-platforms/telemetry-collection-aggregation/telemetry-collectors/telemetry-filters/telemetry-processing-engines.md) — Implements a processing engine to filter, enrich, and route observability signals before they are exported. ([source](https://opentelemetry.io/))
- [Structured Logging](https://awesome-repositories.com/f/system-administration-monitoring/structured-logging.md) — Generates machine-readable key-value pairs for application events to enable efficient historical analysis. ([source](https://opentelemetry.io/))
- [Telemetry Resource Attributes](https://awesome-repositories.com/f/system-administration-monitoring/telemetry-resource-attributes.md) — Attaches static metadata labels to telemetry data to identify services, versions, and environments.
- [Cross-Signal Correlations](https://awesome-repositories.com/f/system-administration-monitoring/trace-querying/cross-signal-correlations.md) — Links traces, metrics, and logs with shared context to enable cross-signal correlation of application behavior. ([source](https://opentelemetry.io/))
- [Trace Sampling](https://awesome-repositories.com/f/system-administration-monitoring/trace-sampling.md) — Controls the volume of recorded and exported traces through sampling strategies to manage operational costs. ([source](https://opentelemetry.io/docs/languages/go/))

### Data & Databases

- [OTLP Exporters](https://awesome-repositories.com/f/data-databases/data-import-and-export/otlp-exporters.md) — Implements standard utilities for transmitting telemetry data using the OpenTelemetry Protocol (OTLP).
- [Binary Serialization Formats](https://awesome-repositories.com/f/data-databases/binary-serialization-formats.md) — Uses a compact binary serialization format via the OpenTelemetry Protocol for efficient transport of telemetry signals.
- [Trace Samplers](https://awesome-repositories.com/f/data-databases/data-pipeline-orchestration/data-engineering-pipelines/data-samplers/trace-samplers.md) — Implements configurable samplers to control the volume of recorded and exported spans via probabilistic or rule-based logic.
- [Telemetry Signal Processors](https://awesome-repositories.com/f/data-databases/data-transformation-functions/transformation-chains/filter-chaining/telemetry-signal-processors.md) — Provides an ordered chain of processors to filter, batch, and modify telemetry signals before they reach the exporter.

### Networking & Communication

- [Tracing Context Propagation](https://awesome-repositories.com/f/networking-communication/tracing-context-propagation.md) — Implements mechanisms for injecting and extracting distributed tracing headers across network boundaries to maintain request correlation.
- [Contextual Metadata Propagation](https://awesome-repositories.com/f/networking-communication/tracing-context-propagation/contextual-metadata-propagation.md) — Implements mechanisms for automatically attaching and propagating request-scoped metadata and trace identifiers through application flows. ([source](https://opentelemetry.io/))

### Software Engineering & Architecture

- [SDK-API Separation](https://awesome-repositories.com/f/software-engineering-architecture/api-design-patterns/sdk-api-separation.md) — Separates the public instrumentation API from the SDK implementation, allowing multiple SDKs to coexist behind the same interface.
- [Observability Signal Abstractions](https://awesome-repositories.com/f/software-engineering-architecture/vendor-api-abstractions/observability-signal-abstractions.md) — Models traces, metrics, and logs as distinct signal types through a unified API for shared context and configuration.

### Part of an Awesome List

- [Observability and Monitoring](https://awesome-repositories.com/f/awesome-lists/devops/observability-and-monitoring.md) — Go API and SDK for telemetry instrumentation.
