azure-monitor-opentelemetry-exporter-py

Azure Monitor OpenTelemetry Exporter for Python

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "azure-monitor-opentelemetry-exporter-py" with this command: npx skills add claudedjale/skillset/claudedjale-skillset-azure-monitor-opentelemetry-exporter-py

Azure Monitor OpenTelemetry Exporter for Python

Low-level exporter for sending OpenTelemetry traces, metrics, and logs to Application Insights.

Installation

pip install azure-monitor-opentelemetry-exporter

Environment Variables

APPLICATIONINSIGHTS_CONNECTION_STRING=InstrumentationKey=xxx;IngestionEndpoint=https://xxx.in.applicationinsights.azure.com/

When to Use

Scenario Use

Quick setup, auto-instrumentation azure-monitor-opentelemetry (distro)

Custom OpenTelemetry pipeline azure-monitor-opentelemetry-exporter (this)

Fine-grained control over telemetry azure-monitor-opentelemetry-exporter (this)

Trace Exporter

from opentelemetry import trace from opentelemetry.sdk.trace import TracerProvider from opentelemetry.sdk.trace.export import BatchSpanProcessor from azure.monitor.opentelemetry.exporter import AzureMonitorTraceExporter

Create exporter

exporter = AzureMonitorTraceExporter( connection_string="InstrumentationKey=xxx;..." )

Configure tracer provider

trace.set_tracer_provider(TracerProvider()) trace.get_tracer_provider().add_span_processor( BatchSpanProcessor(exporter) )

Use tracer

tracer = trace.get_tracer(name) with tracer.start_as_current_span("my-span"): print("Hello, World!")

Metric Exporter

from opentelemetry import metrics from opentelemetry.sdk.metrics import MeterProvider from opentelemetry.sdk.metrics.export import PeriodicExportingMetricReader from azure.monitor.opentelemetry.exporter import AzureMonitorMetricExporter

Create exporter

exporter = AzureMonitorMetricExporter( connection_string="InstrumentationKey=xxx;..." )

Configure meter provider

reader = PeriodicExportingMetricReader(exporter, export_interval_millis=60000) metrics.set_meter_provider(MeterProvider(metric_readers=[reader]))

Use meter

meter = metrics.get_meter(name) counter = meter.create_counter("requests_total") counter.add(1, {"route": "/api/users"})

Log Exporter

import logging from opentelemetry._logs import set_logger_provider from opentelemetry.sdk._logs import LoggerProvider, LoggingHandler from opentelemetry.sdk._logs.export import BatchLogRecordProcessor from azure.monitor.opentelemetry.exporter import AzureMonitorLogExporter

Create exporter

exporter = AzureMonitorLogExporter( connection_string="InstrumentationKey=xxx;..." )

Configure logger provider

logger_provider = LoggerProvider() logger_provider.add_log_record_processor(BatchLogRecordProcessor(exporter)) set_logger_provider(logger_provider)

Add handler to Python logging

handler = LoggingHandler(level=logging.INFO, logger_provider=logger_provider) logging.getLogger().addHandler(handler)

Use logging

logger = logging.getLogger(name) logger.info("This will be sent to Application Insights")

From Environment Variable

Exporters read APPLICATIONINSIGHTS_CONNECTION_STRING automatically:

from azure.monitor.opentelemetry.exporter import AzureMonitorTraceExporter

Connection string from environment

exporter = AzureMonitorTraceExporter()

Azure AD Authentication

from azure.identity import DefaultAzureCredential from azure.monitor.opentelemetry.exporter import AzureMonitorTraceExporter

exporter = AzureMonitorTraceExporter( credential=DefaultAzureCredential() )

Sampling

Use ApplicationInsightsSampler for consistent sampling:

from opentelemetry.sdk.trace import TracerProvider from opentelemetry.sdk.trace.sampling import ParentBasedTraceIdRatio from azure.monitor.opentelemetry.exporter import ApplicationInsightsSampler

Sample 10% of traces

sampler = ApplicationInsightsSampler(sampling_ratio=0.1)

trace.set_tracer_provider(TracerProvider(sampler=sampler))

Offline Storage

Configure offline storage for retry:

from azure.monitor.opentelemetry.exporter import AzureMonitorTraceExporter

exporter = AzureMonitorTraceExporter( connection_string="...", storage_directory="/path/to/storage", # Custom storage path disable_offline_storage=False # Enable retry (default) )

Disable Offline Storage

exporter = AzureMonitorTraceExporter( connection_string="...", disable_offline_storage=True # No retry on failure )

Sovereign Clouds

from azure.identity import AzureAuthorityHosts, DefaultAzureCredential from azure.monitor.opentelemetry.exporter import AzureMonitorTraceExporter

Azure Government

credential = DefaultAzureCredential(authority=AzureAuthorityHosts.AZURE_GOVERNMENT) exporter = AzureMonitorTraceExporter( connection_string="InstrumentationKey=xxx;IngestionEndpoint=https://xxx.in.applicationinsights.azure.us/", credential=credential )

Exporter Types

Exporter Telemetry Type Application Insights Table

AzureMonitorTraceExporter

Traces/Spans requests, dependencies, exceptions

AzureMonitorMetricExporter

Metrics customMetrics, performanceCounters

AzureMonitorLogExporter

Logs traces, customEvents

Configuration Options

Parameter Description Default

connection_string

Application Insights connection string From env var

credential

Azure credential for AAD auth None

disable_offline_storage

Disable retry storage False

storage_directory

Custom storage path Temp directory

Best Practices

  • Use BatchSpanProcessor for production (not SimpleSpanProcessor)

  • Use ApplicationInsightsSampler for consistent sampling across services

  • Enable offline storage for reliability in production

  • Use AAD authentication instead of instrumentation keys

  • Set export intervals appropriate for your workload

  • Use the distro (azure-monitor-opentelemetry ) unless you need custom pipelines

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

github-issue-creator

No summary provided by upstream source.

Repository SourceNeeds Review
General

azure-observability

No summary provided by upstream source.

Repository SourceNeeds Review
General

azure-appconfiguration-java

No summary provided by upstream source.

Repository SourceNeeds Review
General

azure-aigateway

No summary provided by upstream source.

Repository SourceNeeds Review