graph LR
Common_Data_Conventions["Common Data & Conventions"]
API_Layer["API Layer"]
SDK_Layer["SDK Layer"]
Trace_Module["Trace Module"]
Metric_Module["Metric Module"]
Log_Module["Log Module"]
Common_Data_Conventions -- "Is utilized by" --> API_Layer
Common_Data_Conventions -- "Is utilized by" --> SDK_Layer
API_Layer -- "Is guided by" --> Common_Data_Conventions
API_Layer -- "Delegates to" --> SDK_Layer
SDK_Layer -- "Relies on" --> Common_Data_Conventions
SDK_Layer -- "Manages" --> Trace_Module
SDK_Layer -- "Manages" --> Metric_Module
SDK_Layer -- "Manages" --> Log_Module
Trace_Module -- "Utilizes" --> Common_Data_Conventions
Trace_Module -- "Interacts with" --> SDK_Layer
Metric_Module -- "Utilizes" --> Common_Data_Conventions
Metric_Module -- "Interacts with" --> SDK_Layer
Log_Module -- "Utilizes" --> Common_Data_Conventions
Log_Module -- "Interacts with" --> SDK_Layer
click Common_Data_Conventions href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/opentelemetry-go/Common_Data_Conventions.md" "Details"
click API_Layer href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/opentelemetry-go/API_Layer.md" "Details"
click SDK_Layer href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/opentelemetry-go/SDK_Layer.md" "Details"
This document outlines the core components and their interactions within an OpenTelemetry SDK/Library, focusing on a layered and modular design. The architecture emphasizes data consistency, clear separation of concerns, extensibility, and maintainability, which are critical for a robust observability SDK.
Common Data & Conventions [Expand]
This foundational component centralizes the definitions of standardized attribute names and values (semantic conventions) and provides the core utilities for creating, managing, and associating key-value attributes with all telemetry data. It is crucial for ensuring consistency, interoperability, and efficient handling of common data elements across all OpenTelemetry signals (traces, metrics, logs). Its architectural importance lies in establishing a unified data language for the entire SDK.
Related Classes/Methods:
go.opentelemetry.io/otel/semconvgo.opentelemetry.io/otel/attribute
API Layer [Expand]
Defines the public interfaces and abstract classes that users interact with to instrument their applications. It provides the entry points for generating telemetry data (traces, metrics, logs) without exposing implementation details. Its architectural importance is providing a stable, high-level interface.
Related Classes/Methods:
go.opentelemetry.io/otel/apitracemetriclog
SDK Layer [Expand]
Provides the concrete implementations of the API interfaces, handling the processing, batching, and exporting of telemetry data. It manages the lifecycle of tracers, meters, and loggers. Architecturally, it's the core processing engine of the SDK.
Related Classes/Methods:
go.opentelemetry.io/otel/sdksdktracesdkmetricsdklog
Specializes in distributed tracing, managing spans, span contexts, and trace propagation. It's responsible for capturing and correlating operations across services. Its importance lies in enabling end-to-end visibility of requests.
Related Classes/Methods:
go.opentelemetry.io/otel/tracego.opentelemetry.io/otel/sdktrace
Focuses on collecting and aggregating numerical measurements (metrics) from applications. It defines instruments like counters, gauges, and histograms. Architecturally, it provides the means for quantitative performance monitoring.
Related Classes/Methods:
go.opentelemetry.io/otel/metricgo.opentelemetry.io/otel/sdkmetric
Handles the capture and processing of log records, integrating them into the OpenTelemetry ecosystem alongside traces and metrics. It aims to provide structured logging capabilities. Its importance is unifying log data with other telemetry signals.
Related Classes/Methods:
go.opentelemetry.io/otel/loggo.opentelemetry.io/otel/sdklog