Skip to main content

Minimal template for the Microsoft OpenTelemetry distro for Python

Project description

microsoft-opentelemetry

PyPI version

Repository Setup

The GitHub repository was provisioned with an onboarding placeholder that indicates repository setup and access control configuration may still need to be completed in the onboarding portal.

Until that setup is complete, some repository settings or access-management actions may remain restricted.

Python package for a Microsoft OpenTelemetry distribution that provides a single onboarding experience for observability across Azure Monitor, OTLP-compatible backends, and Microsoft Agent 365 style integrations.

This repository starts from the POC described in azure-data/microsoft-opentelemetry-distro-poc, but is intentionally kept minimal while the package shape and delivery plan are being defined.

Goal

The target package should reduce fragmented setup across multiple observability stacks to one import and one configuration function.

Intended API shape:

from microsoft.opentelemetry import use_microsoft_opentelemetry

use_microsoft_opentelemetry(
	azure_monitor_connection_string="InstrumentationKey=...;IngestionEndpoint=...",
)

Available Configuration Options

Keyword argument Type Default Description
enable_azure_monitor bool True Enable Azure Monitor export.
azure_monitor_connection_string str None Connection string for Application Insights. Also read from APPLICATIONINSIGHTS_CONNECTION_STRING env var.
azure_monitor_exporter_credential TokenCredential None Azure AD token credential for authentication.
azure_monitor_enable_live_metrics bool True Enable live metrics collection.
azure_monitor_enable_performance_counters bool True Enable performance counter collection.
azure_monitor_exporter_disable_offline_storage bool False Disable offline retry storage for failed telemetry.
azure_monitor_exporter_storage_directory str None Custom directory for offline telemetry storage.
azure_monitor_browser_sdk_loader_config dict None Browser SDK loader configuration.
disable_logging bool False Disable the logging pipeline.
disable_tracing bool False Disable the tracing pipeline.
disable_metrics bool False Disable the metrics pipeline.
resource Resource auto OpenTelemetry Resource.
span_processors list [] Additional span processors.
log_record_processors list [] Additional log record processors.
metric_readers list [] Additional metric readers.
views list [] Metric views.
logger_name str None Logger name for log collection.
logging_formatter Formatter None Formatter for collected logs.
instrumentation_options dict None Per-library instrumentation enable/disable options.
enable_trace_based_sampling_for_logs bool False Enable trace-based sampling for logs.

Sampling Configuration

Sampling is configured via standard OpenTelemetry environment variables:

Environment variable Description
OTEL_TRACES_SAMPLER Sampler type to use (see supported values below).
OTEL_TRACES_SAMPLER_ARG Argument for the sampler (e.g. sample ratio or traces per second).

Supported sampler values for OTEL_TRACES_SAMPLER:

Value Description
always_on Sample every trace.
always_off Drop every trace.
trace_id_ratio Sample a fixed percentage based on trace ID. Set ratio with OTEL_TRACES_SAMPLER_ARG (0–1).
parentbased_always_on Parent-based, defaults to always on.
parentbased_always_off Parent-based, defaults to always off.
parentbased_trace_id_ratio Parent-based with trace ID ratio fallback.
microsoft.fixed_percentage Azure Monitor fixed-percentage sampler. Set ratio with OTEL_TRACES_SAMPLER_ARG (0–1).
microsoft.rate_limited Azure Monitor rate-limited sampler. Set target with OTEL_TRACES_SAMPLER_ARG (traces per second, default 5).

Example:

export OTEL_TRACES_SAMPLER=trace_id_ratio
export OTEL_TRACES_SAMPLER_ARG=0.1

Planned Scope

  • Azure Monitor exporter support
  • OTLP exporter support
  • Microsoft-specific agent observability extensions
  • GenAI instrumentation toggles for OpenAI, OpenAI Agents, and LangChain
  • Standard Python web and HTTP instrumentations
  • Environment-variable driven configuration
  • A stable package surface for downstream agent applications

Reference POC Highlights

The source POC positions the distro around three outcomes:

  • one package, one API, one documentation surface
  • less duplicated exporter and instrumentation wiring across teams
  • much less application boilerplate compared with manual OpenTelemetry setup

The POC also describes this execution model:

  1. Configure Azure Monitor when enabled
  2. Otherwise create standalone OpenTelemetry providers
  3. Attach OTLP exporters when requested
  4. Attach Microsoft-specific exporters when requested
  5. Enable standard instrumentations
  6. Enable Microsoft-specific observability instrumentations
  7. Enable GenAI contrib instrumentations

Development

Create an environment and install the project with test dependencies:

pip install -e .[test]
pytest

Reference

Contributing

Read our contributing guide to learn about our development process, how to propose bugfixes and improvements, and how to build and test your changes to this distribution.

Data Collection

As this SDK is designed to enable applications to perform data collection which is sent to the Microsoft collection endpoints the following is required to identify our privacy statement.

The software may collect information about you and your use of the software and send it to Microsoft. Microsoft may use this information to provide services and improve our products and services. You may turn off the telemetry as described in the repository. There are also some features in the software that may enable you and Microsoft to collect data from users of your applications. If you use these features, you must comply with applicable law, including providing appropriate notices to users of your applications together with a copy of Microsoft’s privacy statement. Our privacy statement is located at https://go.microsoft.com/fwlink/?LinkID=824704. You can learn more about data collection and use in the help documentation and our privacy statement. Your use of the software operates as your consent to these practices.

Trademarks

This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft’s Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party’s policies.

License

MIT

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

microsoft_opentelemetry-0.1.0a1.tar.gz (104.9 kB view details)

Uploaded Source

Built Distribution

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

microsoft_opentelemetry-0.1.0a1-py3-none-any.whl (140.9 kB view details)

Uploaded Python 3

File details

Details for the file microsoft_opentelemetry-0.1.0a1.tar.gz.

File metadata

File hashes

Hashes for microsoft_opentelemetry-0.1.0a1.tar.gz
Algorithm Hash digest
SHA256 de532ae2d45ea7c4d78d69629ca11043894495b6d05164104d77879db5c571e6
MD5 abb12138c9a062eba747c172f719c277
BLAKE2b-256 bddb7536a65f6ae81ff5ce49390046a8f2d7e7076886b2c9abfc3af5b4a2e87f

See more details on using hashes here.

File details

Details for the file microsoft_opentelemetry-0.1.0a1-py3-none-any.whl.

File metadata

File hashes

Hashes for microsoft_opentelemetry-0.1.0a1-py3-none-any.whl
Algorithm Hash digest
SHA256 ebc981f88fd3ebc4595add217b7da0a32e8bd2b77c9f8fa23d7ad380fdebd520
MD5 437c0c7d1c50c5cd5af091cf2327cb9f
BLAKE2b-256 cac0628497a25b6557fb6efd2a82794508322277449a86e784c791e84697b7ad

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