Skip to content

Latest commit

 

History

History
100 lines (64 loc) · 4.71 KB

File metadata and controls

100 lines (64 loc) · 4.71 KB
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"
Loading

CodeBoardingDemoContact

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/semconv
  • go.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/api
  • trace
  • metric
  • log

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/sdk
  • sdktrace
  • sdkmetric
  • sdklog

Trace Module

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/trace
  • go.opentelemetry.io/otel/sdktrace

Metric Module

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/metric
  • go.opentelemetry.io/otel/sdkmetric

Log Module

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/log
  • go.opentelemetry.io/otel/sdklog