or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

index.md
tile.json

tessl/pypi-opentelemetry-exporter-otlp-proto-common

OpenTelemetry Protocol Buffer encoding library for OTLP exporters

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
pypipkg:pypi/opentelemetry-exporter-otlp-proto-common@1.36.x

To install, run

npx @tessl/cli install tessl/pypi-opentelemetry-exporter-otlp-proto-common@1.36.0

index.mddocs/

OpenTelemetry Protobuf Encoding

A convenience library for encoding OpenTelemetry telemetry data to Protocol Buffers (protobuf) format. This package serves as a common foundation for OTLP (OpenTelemetry Protocol) exporters, providing efficient encoding mechanisms for transforming OpenTelemetry SDK data structures into protobuf messages that can be transmitted to OpenTelemetry collectors and other OTLP-compatible telemetry backends.

Package Information

  • Package Name: opentelemetry-exporter-otlp-proto-common
  • Language: Python
  • Installation: pip install opentelemetry-exporter-otlp-proto-common

Core Imports

# Version information
from opentelemetry.exporter.otlp.proto.common import __version__

# Main encoding functions
from opentelemetry.exporter.otlp.proto.common.trace_encoder import encode_spans
from opentelemetry.exporter.otlp.proto.common.metrics_encoder import encode_metrics
from opentelemetry.exporter.otlp.proto.common._log_encoder import encode_logs

Basic Usage

from opentelemetry.exporter.otlp.proto.common.trace_encoder import encode_spans
from opentelemetry.exporter.otlp.proto.common.metrics_encoder import encode_metrics
from opentelemetry.exporter.otlp.proto.common._log_encoder import encode_logs

# Example: Encoding spans for trace export
from opentelemetry.sdk.trace import TracerProvider, Tracer
from opentelemetry.sdk.trace.export import ReadableSpan

# Assume you have a collection of spans from the OpenTelemetry SDK
spans = []  # List of ReadableSpan objects

# Encode spans to OTLP protobuf format
encoded_request = encode_spans(spans)

# The encoded_request can now be sent via gRPC or HTTP to an OTLP collector

Capabilities

Version Information

Access the package version for compatibility checking and debugging.

__version__: str

Trace Encoding

Encodes OpenTelemetry span data into OTLP protobuf format for transmission to trace collectors.

def encode_spans(sdk_spans: Sequence[ReadableSpan]) -> PB2ExportTraceServiceRequest:
    """
    Encode a sequence of OpenTelemetry spans into OTLP protobuf format.
    
    Parameters:
    - sdk_spans: Sequence[ReadableSpan] - A sequence of span objects from the OpenTelemetry SDK
    
    Returns:
    - PB2ExportTraceServiceRequest - Protobuf message containing encoded trace data
    """

Metrics Encoding

Encodes OpenTelemetry metrics data into OTLP protobuf format for transmission to metrics collectors.

def encode_metrics(data: MetricsData) -> ExportMetricsServiceRequest:
    """
    Encode OpenTelemetry metrics data into OTLP protobuf format.
    
    Parameters:
    - data: MetricsData - OpenTelemetry metrics data object containing metrics to encode
    
    Returns:
    - ExportMetricsServiceRequest - Protobuf message containing encoded metrics data
    """

Log Encoding

Encodes OpenTelemetry log data into OTLP protobuf format for transmission to log collectors.

def encode_logs(batch: Sequence[LogData]) -> ExportLogsServiceRequest:
    """
    Encode a sequence of OpenTelemetry log records into OTLP protobuf format.
    
    Parameters:
    - batch: Sequence[LogData] - A sequence of log data objects from the OpenTelemetry SDK
    
    Returns:
    - ExportLogsServiceRequest - Protobuf message containing encoded log data
    """

Types

# Core types from OpenTelemetry SDK (imported for type references)
from typing import Sequence
from opentelemetry.sdk.trace import ReadableSpan
from opentelemetry.sdk.metrics.export import MetricsData
from opentelemetry.sdk._logs import LogData

# Protobuf message types (return types)
from opentelemetry.proto.collector.trace.v1.trace_service_pb2 import ExportTraceServiceRequest as PB2ExportTraceServiceRequest
from opentelemetry.proto.collector.metrics.v1.metrics_service_pb2 import ExportMetricsServiceRequest
from opentelemetry.proto.collector.logs.v1.logs_service_pb2 import ExportLogsServiceRequest

Error Handling

The encoding functions may raise exceptions during the encoding process. These are typically standard Python exceptions that occur during protobuf message construction or data validation.

Dependencies

This package requires:

  • opentelemetry-proto == 1.36.0 - Protocol buffer definitions for OpenTelemetry

Usage Context

This library is designed to be used internally by OTLP exporters including:

  • opentelemetry-exporter-otlp-proto-grpc - gRPC transport for OTLP
  • opentelemetry-exporter-otlp-proto-http - HTTP transport for OTLP

The encoding functions transform OpenTelemetry SDK data structures into protobuf messages that maintain compatibility with OpenTelemetry collectors and other OTLP-compatible telemetry backends, ensuring proper handling of semantic conventions and the OTLP protobuf schema.