azure-monitor-opentelemetry-py

Azure Monitor OpenTelemetry Distro 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-py" with this command: npx skills add claudedjale/skillset/claudedjale-skillset-azure-monitor-opentelemetry-py

Azure Monitor OpenTelemetry Distro for Python

One-line setup for Application Insights with OpenTelemetry auto-instrumentation.

Installation

pip install azure-monitor-opentelemetry

Environment Variables

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

Quick Start

from azure.monitor.opentelemetry import configure_azure_monitor

One-line setup - reads connection string from environment

configure_azure_monitor()

Your application code...

Explicit Configuration

from azure.monitor.opentelemetry import configure_azure_monitor

configure_azure_monitor( connection_string="InstrumentationKey=xxx;IngestionEndpoint=https://xxx.in.applicationinsights.azure.com/" )

With Flask

from flask import Flask from azure.monitor.opentelemetry import configure_azure_monitor

configure_azure_monitor()

app = Flask(name)

@app.route("/") def hello(): return "Hello, World!"

if name == "main": app.run()

With Django

settings.py

from azure.monitor.opentelemetry import configure_azure_monitor

configure_azure_monitor()

Django settings...

With FastAPI

from fastapi import FastAPI from azure.monitor.opentelemetry import configure_azure_monitor

configure_azure_monitor()

app = FastAPI()

@app.get("/") async def root(): return {"message": "Hello World"}

Custom Traces

from opentelemetry import trace from azure.monitor.opentelemetry import configure_azure_monitor

configure_azure_monitor()

tracer = trace.get_tracer(name)

with tracer.start_as_current_span("my-operation") as span: span.set_attribute("custom.attribute", "value") # Do work...

Custom Metrics

from opentelemetry import metrics from azure.monitor.opentelemetry import configure_azure_monitor

configure_azure_monitor()

meter = metrics.get_meter(name) counter = meter.create_counter("my_counter")

counter.add(1, {"dimension": "value"})

Custom Logs

import logging from azure.monitor.opentelemetry import configure_azure_monitor

configure_azure_monitor()

logger = logging.getLogger(name) logger.setLevel(logging.INFO)

logger.info("This will appear in Application Insights") logger.error("Errors are captured too", exc_info=True)

Sampling

from azure.monitor.opentelemetry import configure_azure_monitor

Sample 10% of requests

configure_azure_monitor( sampling_ratio=0.1 )

Cloud Role Name

Set cloud role name for Application Map:

from azure.monitor.opentelemetry import configure_azure_monitor from opentelemetry.sdk.resources import Resource, SERVICE_NAME

configure_azure_monitor( resource=Resource.create({SERVICE_NAME: "my-service-name"}) )

Disable Specific Instrumentations

from azure.monitor.opentelemetry import configure_azure_monitor

configure_azure_monitor( instrumentations=["flask", "requests"] # Only enable these )

Enable Live Metrics

from azure.monitor.opentelemetry import configure_azure_monitor

configure_azure_monitor( enable_live_metrics=True )

Azure AD Authentication

from azure.monitor.opentelemetry import configure_azure_monitor from azure.identity import DefaultAzureCredential

configure_azure_monitor( credential=DefaultAzureCredential() )

Auto-Instrumentations Included

Library Telemetry Type

Flask Traces

Django Traces

FastAPI Traces

Requests Traces

urllib3 Traces

httpx Traces

aiohttp Traces

psycopg2 Traces

pymysql Traces

pymongo Traces

redis Traces

Configuration Options

Parameter Description Default

connection_string

Application Insights connection string From env var

credential

Azure credential for AAD auth None

sampling_ratio

Sampling rate (0.0 to 1.0) 1.0

resource

OpenTelemetry Resource Auto-detected

instrumentations

List of instrumentations to enable All

enable_live_metrics

Enable Live Metrics stream False

Best Practices

  • Call configure_azure_monitor() early — Before importing instrumented libraries

  • Use environment variables for connection string in production

  • Set cloud role name for multi-service applications

  • Enable sampling in high-traffic applications

  • Use structured logging for better log analytics queries

  • Add custom attributes to spans for better debugging

  • Use AAD authentication for production workloads

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