Skip to main content

Multiplayer OpenTelemetry Python API

Project description

multiplayer-opentelemetry

Introduction

The multiplayer-otlp-go module integrates OpenTelemetry with the Multiplayer platform to enable seamless trace collection and analysis. This exporter helps developers monitor, debug, and document application performance with detailed trace data. It supports flexible trace ID generation, sampling strategies.

Installation

To install the multiplayer-opentelemetry module, use the following command:

pip install multiplayer-opentelemetry 

Multiplayer Http Trace Exporter

from multiplayer.opentelemetry.exporter.http.trace_exporter import MultiplayerOTLPSpanExporter
from opentelemetry.sdk.resources import SERVICE_NAME, SERVICE_VERSION, DEPLOYMENT_ENVIRONMENT, Resource
from opentelemetry.sdk.trace.export import BatchSpanProcessor
from opentelemetry.sdk.trace import TracerProvider

resource = Resource(attributes={
    SERVICE_NAME: "<service-name>",
    SERVICE_VERSION: "<service-version>",
    DEPLOYMENT_ENVIRONMENT: "<environement-name>"
})

traceProvider = TracerProvider(
    resource = resource,
    sampler = sampler,
    id_generator = id_generator
)

processor = BatchSpanProcessor(MultiplayerOTLPSpanExporter(
    url: '<opentelemetry-collector-url>', # url is optional and can be omitted - default is https://api.multiplayer.app/v1/traces
    apiKey = "<multiplayer-otel-key>"
)) # apiKey is optional
traceProvider.add_span_processor(processor)

Multiplayer Http Log Exporter

from opentelemetry.sdk.resources import SERVICE_NAME, SERVICE_VERSION, DEPLOYMENT_ENVIRONMENT, Resource
from opentelemetry import trace
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk._logs import LoggerProvider, LoggingHandler
from opentelemetry._logs import set_logger_provider
from opentelemetry.sdk._logs.export import BatchLogRecordProcessor
from multiplayer.opentelemetry.exporter.http.log_exporter import MultiplayerOTLPLogExporter

resource = Resource(attributes={
    SERVICE_NAME: "<service-name>",
    SERVICE_VERSION: "<service-version>",
    DEPLOYMENT_ENVIRONMENT: "<environement-name>"
})

traceProvider = TracerProvider(
    resource = resource,
)

logger_provider = LoggerProvider(
    resource = Resource.create(
        {
            "service.name": "<service-name>"
        }
    ),
)
set_logger_provider(logger_provider)
exporter = MultiplayerOTLPLogExporter(
    url: "<opentelemetry-collector-url>", # url is optional and can be omitted - default is https://api.multiplayer.app/v1/logs
    apiKey = "<multiplayer-otel-key>"
)
logger_provider.add_log_record_processor(BatchLogRecordProcessor(exporter))
handler = LoggingHandler(level=logging.NOTSET, logger_provider=logger_provider)

Multiplayer Grpc Trace Exporter

from multiplayer.opentelemetry.exporter.grpc.trace_exporter import MultiplayerOTLPSpanExporter
from opentelemetry.sdk.resources import SERVICE_NAME, SERVICE_VERSION, DEPLOYMENT_ENVIRONMENT, Resource
from opentelemetry.sdk.trace.export import BatchSpanProcessor
from opentelemetry.sdk.trace import TracerProvider

resource = Resource(attributes={
    SERVICE_NAME: "<service-name>",
    SERVICE_VERSION: "<service-version>",
    DEPLOYMENT_ENVIRONMENT: "<environement-name>"
})

traceProvider = TracerProvider(
    resource = resource,
    sampler = sampler,
    id_generator = id_generator
)

processor = BatchSpanProcessor(MultiplayerOTLPSpanExporter(
    url: '<opentelemetry-collector-url>', # url is optional and can be omitted - default is https://api.multiplayer.app/v1/traces
    apiKey = "<multiplayer-otel-key>"
)) # apiKey is optional
traceProvider.add_span_processor(processor)

Multiplayer Grpc Log Exporter

from opentelemetry.sdk.resources import SERVICE_NAME, SERVICE_VERSION, DEPLOYMENT_ENVIRONMENT, Resource
from opentelemetry import trace
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk._logs import LoggerProvider, LoggingHandler
from opentelemetry._logs import set_logger_provider
from opentelemetry.sdk._logs.export import BatchLogRecordProcessor
from multiplayer.opentelemetry.exporter.grpc.log_exporter import MultiplayerOTLPLogExporter

resource = Resource(attributes={
    SERVICE_NAME: "<service-name>",
    SERVICE_VERSION: "<service-version>",
    DEPLOYMENT_ENVIRONMENT: "<environement-name>"
})

traceProvider = TracerProvider(
    resource = resource,
)

logger_provider = LoggerProvider(
    resource = Resource.create(
        {
            "service.name": "<service_name>"
        }
    ),
)
set_logger_provider(logger_provider)
exporter = MultiplayerOTLPLogExporter(
    url: "<opentelemetry-collector-url>", # url is optional and can be omitted - default is https://api.multiplayer.app/v1/logs
    apiKey = "<multiplayer-otel-key>"
)
logger_provider.add_log_record_processor(BatchLogRecordProcessor(exporter))
handler = LoggingHandler(level=logging.NOTSET, logger_provider=logger_provider)

Multiplayer trace Id generator

from multiplayer.opentelemetry.trace.sampler import MultiplayerTraceIdRatioBasedSampler

sampler = MultiplayerTraceIdRatioBasedSampler(rate = 1/2)

Multiplayer trace id ratio based sampler

from multiplayer.opentelemetry.trace.id_generator import MultiplayerRandomIdGenerator

id_generator = MultiplayerRandomIdGenerator(autoDocTracesRatio = 1/1000)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

multiplayer_opentelemetry-0.0.6.tar.gz (4.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

multiplayer_opentelemetry-0.0.6-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

Details for the file multiplayer_opentelemetry-0.0.6.tar.gz.

File metadata

File hashes

Hashes for multiplayer_opentelemetry-0.0.6.tar.gz
Algorithm Hash digest
SHA256 38adaa159ba0b1611f05b06f49bc7cf8f9e06ac2fb047a05c9f467910786d2b7
MD5 db42abd891d5f37cbefba1b44e78583c
BLAKE2b-256 4ce7cf93477a1b4f5bb5dcd36a30bbb980c906b0843cb5fff3d81a18c407eb48

See more details on using hashes here.

File details

Details for the file multiplayer_opentelemetry-0.0.6-py3-none-any.whl.

File metadata

File hashes

Hashes for multiplayer_opentelemetry-0.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 895d902c057a817add315ca8a5c2e89de412ca5e404d43dd3502103216529827
MD5 2f82ac1ba3a229a6f864809fc45a6b84
BLAKE2b-256 cb11e50432e08794e77d764ccb0829d40541875f10ec22f6ea470bf45fd1e7f0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page