Skip to main content

Microsoft Azure Azure Core OpenTelemetry plugin Library for Python

Project description

Azure Core Tracing OpenTelemetry client library for Python

Getting started

Install the package

Install the opentelemetry python for Python with pip:

pip install azure-core-tracing-opentelemetry

Now you can use opentelemetry for Python as usual with any SDKs that are compatible with azure-core tracing. This includes (not exhaustive list), azure-storage-blob, azure-keyvault-secrets, azure-eventhub, etc.

Key concepts

  • You don't need to pass any context, SDK will get it for you

  • Those lines are the only ones you need to enable tracing

      from azure.core.settings import settings
      from azure.core.tracing.ext.opentelemetry_span import OpenTelemetrySpan
      settings.tracing_implementation = OpenTelemetrySpan
    

Examples

There is no explicit context to pass, you just create your usual opentelemetry tracer and call any SDK code that is compatible with azure-core tracing. This is an example using Azure Monitor exporter, but you can use any exporter (Zipkin, etc.).

# Declare OpenTelemetry as enabled tracing plugin for Azure SDKs
from azure.core.settings import settings
from azure.core.tracing.ext.opentelemetry_span import OpenTelemetrySpan

settings.tracing_implementation = OpenTelemetrySpan

# In the below example, we use a simple console exporter, uncomment these lines to use
# the Azure Monitor Exporter.
# Example of Azure Monitor exporter, but you can use anything OpenTelemetry supports
# from azure_monitor import AzureMonitorSpanExporter
# exporter = AzureMonitorSpanExporter(
#     instrumentation_key="uuid of the instrumentation key (see your Azure Monitor account)"
# )

# Regular open telemetry usage from here, see https://github.com/open-telemetry/opentelemetry-python
# for details
from opentelemetry import trace
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import ConsoleSpanExporter
from opentelemetry.sdk.trace.export import SimpleExportSpanProcessor

# Simple console exporter
exporter = ConsoleSpanExporter()

trace.set_tracer_provider(TracerProvider())
tracer = trace.get_tracer(__name__)
trace.get_tracer_provider().add_span_processor(
    SimpleExportSpanProcessor(exporter)
)

# Example with Storage SDKs

from azure.storage.blob import BlobServiceClient

with tracer.start_as_current_span(name="MyApplication"):
    client = BlobServiceClient.from_connection_string('connectionstring')
    client.create_container('mycontainer')  # Call will be traced

Azure Exporter can be found in the package opentelemetry-azure-monitor-exporter

Troubleshooting

This client raises exceptions defined in Azure Core.

Next steps

More documentation on OpenTelemetry configuration can be found on the OpenTelemetry website

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.

Release History

1.0.0b9 (2021-04-06)

  • Updated opentelemetry-api to version 1.0.0
  • Link and SpanKind can now be added while creating the span instance.

1.0.0b8 (2021-02-08)

  • Pinned opentelemetry-api to version 0.17b0

1.0.0b7 (2020-10-05)

  • Pinned opentelemetry-api to version 0.13b0

1.0.0b6 (2020-07-06)

  • Pinned opentelemetry-api to version 0.10b0

1.0.0b5 (2020-06-08)

  • Pinned opentelemetry-api to version 0.8b0
  • Fixed a bug where DefaultSpan sometimes throws an AttributeError.

1.0.0b4 (2020-05-04)

  • link and link_from_headers now accepts attributes.

1.0.0b3 (2020-04-06)

Features

  • Pinned opentelemetry-api to version 0.6b0

1.0.0b2 (2020-03-09)

Features

  • Pinned opentelemetry-api to version 0.4a0

1.0.0b1

Features

  • Opentelemetry implementation of azure-core tracing protocol

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-core-tracing-opentelemetry-1.0.0b9.zip (23.8 kB view details)

Uploaded Source

Built Distribution

File details

Details for the file azure-core-tracing-opentelemetry-1.0.0b9.zip.

File metadata

  • Download URL: azure-core-tracing-opentelemetry-1.0.0b9.zip
  • Upload date:
  • Size: 23.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.10.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for azure-core-tracing-opentelemetry-1.0.0b9.zip
Algorithm Hash digest
SHA256 287b30a5a3a9a5cd5bc00d0829fce40a25357b82d695c57b671c761446e7a245
MD5 8c6b08163023d857f0226f64a1d841d0
BLAKE2b-256 9b644d6fb0ecdc88728e18b84a67f2ca88d80cc573e864fadf6de543fe32252a

See more details on using hashes here.

File details

Details for the file azure_core_tracing_opentelemetry-1.0.0b9-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for azure_core_tracing_opentelemetry-1.0.0b9-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 0e0e192236c1fbf1ab85ddd4e3e2eadb144f04dc3e7512900a49a48b3eb0aa56
MD5 a4b00ca232457cf01e623ffc349872da
BLAKE2b-256 66a2fde1523528714b59f86205e1b4135fc7cc9884bf7d12d7ddb558ddc27352

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