Skip to main content

Microsoft Azure Monitor Opentelemetry Distro Client Library for Python

Project description

Azure Monitor Opentelemetry Distro

The Azure Monitor Distro of Opentelemetry Python provides multiple installable components available for an Opentelemetry Azure Monitor monitoring solution. It allows you to instrument your Python applications to capture and report telemetry to Azure Monitor via the Azure monitor exporters.

This distro automatically installs the following libraries:

Getting started

Key Concepts

This package bundles a series of OpenTelemetry and Azure Monitor components to enable the collection and sending of telemetry to Azure Monitor. For MANUAL instrumentation, use the configure_azure_monitor function. AUTOMATIC instrumentation is not yet supported.

The Azure Monitor OpenTelemetry exporters are the main components in accomplishing this. You will be able to use the exporters and their APIs directly through this package. Please go the exporter documentation to understand how OpenTelemetry and Azure Monitor components work in enabling telemetry collection and exporting.

Currently, all instrumentations available in OpenTelemetry are in a beta state, meaning they are not stable and may have breaking changes in the future. Efforts are being made in pushing these to a more stable state.

Prerequisites

To use this package, you must have:

Install the package

Install the Azure Monitor Opentelemetry Distro with pip:

pip install azure-monitor-opentelemetry --pre

Usage

You can use configure_azure_monitor to set up instrumentation for your app to Azure Monitor. configure_azure_monitor supports the following optional arguments:

  • connection_string - The connection string for your Application Insights resource. The connection string will be automatically populated from the APPLICATIONINSIGHTS_CONNECTION_STRING environment variable if not explicitly passed in.
  • instrumentations - Specifies the libraries with instrumentations that you would like to use. Accepts a comma separated list. e.g. ["requests", "flask"]
  • disable_logging - If set to True, disables collection and export of logging telemetry. Defaults to False.
  • disable_metrics - If set to True, disables collection and export of metric telemetry. Defaults to False.
  • disable_tracing - If set to True, disables collection and export of distributed tracing telemetry. Defaults to False.
  • resource - Specified the OpenTelemetry resource associated with your application. See this for default behavior.
  • logging_level - Specifies the logging level of the logs you would like to collect for your logging pipeline. Defaults to logging.NOTSET.
  • logger_name = Specifies the logger name under which logging will be instrumented. Defaults to "" which corresponds to the root logger.
  • logging_export_interval_millis - Specifies the logging export interval in milliseconds. Defaults to 5000.
  • metric_readers - Specifies the metric readers that you would like to use for your metric pipeline. Accepts a list of metric readers.
  • views - Specifies the list of views to configure for the metric pipeline. See here for example usage.
  • sampling_ratio - Specifies the ratio of distributed tracing telemetry to be sampled. Accepted values are in the range [0,1]. Defaults to 1.0, meaning no telemetry is sampled out.
  • tracing_export_interval_millis - Specifies the distributed tracing export interval in milliseconds. Defaults to 5000.

Exporter configurations

You can pass exporter configuration parameters directly into configure_azure_monitor. See additional configuration related to exporting here.

...
configure_azure_monitor(
   connection_string="<your-connection-string>",
   disable_offline_storage=True, 
)
...

Instrumentation configurations

You can pass in instrumentation specific configuration into configure_azure_monitor with the key <instrumented-library-name>_config and value as a dictionary representing kwargs for the corresponding instrumentation. Note the instrumented library must also be enabled through the instrumentations configuration.

...
configure_azure_monitor(
    connection_string="<your-connection-string>",
    instrumentations=["flask", "requests"],
    flask_config={"excluded_urls": "http://localhost:8080/ignore"},
    requests_config={"excluded_urls": "http://example.com"},
)
...

Take a look at the specific instrumenation documentation for available configurations.

Samples

Samples are available here to demonstrate how to utilize the above configuration options.

Additional documentation

Azure Portal OpenTelemetry Python Official Docs

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

azure-monitor-opentelemetry-1.0.0b10.tar.gz (24.1 kB view details)

Uploaded Source

Built Distribution

azure_monitor_opentelemetry-1.0.0b10-py2.py3-none-any.whl (15.0 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file azure-monitor-opentelemetry-1.0.0b10.tar.gz.

File metadata

File hashes

Hashes for azure-monitor-opentelemetry-1.0.0b10.tar.gz
Algorithm Hash digest
SHA256 12e50ca58e4204d4da8ece10da4b4636982c827c97a1365a3818d97f1aafcfb5
MD5 313802461da1c934d5d28612abcbdcf5
BLAKE2b-256 9eaa4557fdf47125a01e30cf79e8775fbf660bc8c83120889666e0ef1b114ffb

See more details on using hashes here.

File details

Details for the file azure_monitor_opentelemetry-1.0.0b10-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for azure_monitor_opentelemetry-1.0.0b10-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 57b4445ddce1ae6b5605787979d954a67dfd690673b1f164188bd9f471ab18c9
MD5 aed440f0afa325343d8558f4c356fd1a
BLAKE2b-256 9efc5e59626df4adad88b9f99f707570c49b74ce3b5c40a402d16645b4a00a12

See more details on using hashes here.

Supported by

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