{"id":"d8d25bc9-7e1a-401a-8e33-fd330eaa4199","shortId":"EqFMSn","kind":"skill","title":"azure-monitor-opentelemetry-py","tagline":"Azure Monitor OpenTelemetry Distro for Python. Use for one-line Application Insights setup with auto-instrumentation.","description":"# Azure Monitor OpenTelemetry Distro for Python\n\nOne-line setup for Application Insights with OpenTelemetry auto-instrumentation.\n\n## Installation\n\n```bash\npip install azure-monitor-opentelemetry\n```\n\n## Environment Variables\n\n```bash\nAPPLICATIONINSIGHTS_CONNECTION_STRING=InstrumentationKey=xxx;IngestionEndpoint=https://xxx.in.applicationinsights.azure.com/\n```\n\n## Quick Start\n\n```python\nfrom azure.monitor.opentelemetry import configure_azure_monitor\n\n# One-line setup - reads connection string from environment\nconfigure_azure_monitor()\n\n# Your application code...\n```\n\n## Explicit Configuration\n\n```python\nfrom azure.monitor.opentelemetry import configure_azure_monitor\n\nconfigure_azure_monitor(\n    connection_string=\"InstrumentationKey=xxx;IngestionEndpoint=https://xxx.in.applicationinsights.azure.com/\"\n)\n```\n\n## With Flask\n\n```python\nfrom flask import Flask\nfrom azure.monitor.opentelemetry import configure_azure_monitor\n\nconfigure_azure_monitor()\n\napp = Flask(__name__)\n\n@app.route(\"/\")\ndef hello():\n    return \"Hello, World!\"\n\nif __name__ == \"__main__\":\n    app.run()\n```\n\n## With Django\n\n```python\n# settings.py\nfrom azure.monitor.opentelemetry import configure_azure_monitor\n\nconfigure_azure_monitor()\n\n# Django settings...\n```\n\n## With FastAPI\n\n```python\nfrom fastapi import FastAPI\nfrom azure.monitor.opentelemetry import configure_azure_monitor\n\nconfigure_azure_monitor()\n\napp = FastAPI()\n\n@app.get(\"/\")\nasync def root():\n    return {\"message\": \"Hello World\"}\n```\n\n## Custom Traces\n\n```python\nfrom opentelemetry import trace\nfrom azure.monitor.opentelemetry import configure_azure_monitor\n\nconfigure_azure_monitor()\n\ntracer = trace.get_tracer(__name__)\n\nwith tracer.start_as_current_span(\"my-operation\") as span:\n    span.set_attribute(\"custom.attribute\", \"value\")\n    # Do work...\n```\n\n## Custom Metrics\n\n```python\nfrom opentelemetry import metrics\nfrom azure.monitor.opentelemetry import configure_azure_monitor\n\nconfigure_azure_monitor()\n\nmeter = metrics.get_meter(__name__)\ncounter = meter.create_counter(\"my_counter\")\n\ncounter.add(1, {\"dimension\": \"value\"})\n```\n\n## Custom Logs\n\n```python\nimport logging\nfrom azure.monitor.opentelemetry import configure_azure_monitor\n\nconfigure_azure_monitor()\n\nlogger = logging.getLogger(__name__)\nlogger.setLevel(logging.INFO)\n\nlogger.info(\"This will appear in Application Insights\")\nlogger.error(\"Errors are captured too\", exc_info=True)\n```\n\n## Sampling\n\n```python\nfrom azure.monitor.opentelemetry import configure_azure_monitor\n\n# Sample 10% of requests\nconfigure_azure_monitor(\n    sampling_ratio=0.1\n)\n```\n\n## Cloud Role Name\n\nSet cloud role name for Application Map:\n\n```python\nfrom azure.monitor.opentelemetry import configure_azure_monitor\nfrom opentelemetry.sdk.resources import Resource, SERVICE_NAME\n\nconfigure_azure_monitor(\n    resource=Resource.create({SERVICE_NAME: \"my-service-name\"})\n)\n```\n\n## Disable Specific Instrumentations\n\n```python\nfrom azure.monitor.opentelemetry import configure_azure_monitor\n\nconfigure_azure_monitor(\n    instrumentations=[\"flask\", \"requests\"]  # Only enable these\n)\n```\n\n## Enable Live Metrics\n\n```python\nfrom azure.monitor.opentelemetry import configure_azure_monitor\n\nconfigure_azure_monitor(\n    enable_live_metrics=True\n)\n```\n\n## Azure AD Authentication\n\n```python\nfrom azure.monitor.opentelemetry import configure_azure_monitor\nfrom azure.identity import DefaultAzureCredential\n\nconfigure_azure_monitor(\n    credential=DefaultAzureCredential()\n)\n```\n\n## Auto-Instrumentations Included\n\n| Library | Telemetry Type |\n|---------|---------------|\n| Flask | Traces |\n| Django | Traces |\n| FastAPI | Traces |\n| Requests | Traces |\n| urllib3 | Traces |\n| httpx | Traces |\n| aiohttp | Traces |\n| psycopg2 | Traces |\n| pymysql | Traces |\n| pymongo | Traces |\n| redis | Traces |\n\n## Configuration Options\n\n| Parameter | Description | Default |\n|-----------|-------------|---------|\n| `connection_string` | Application Insights connection string | From env var |\n| `credential` | Azure credential for AAD auth | None |\n| `sampling_ratio` | Sampling rate (0.0 to 1.0) | 1.0 |\n| `resource` | OpenTelemetry Resource | Auto-detected |\n| `instrumentations` | List of instrumentations to enable | All |\n| `enable_live_metrics` | Enable Live Metrics stream | False |\n\n## Best Practices\n\n1. **Call configure_azure_monitor() early** — Before importing instrumented libraries\n2. **Use environment variables** for connection string in production\n3. **Set cloud role name** for multi-service applications\n4. **Enable sampling** in high-traffic applications\n5. **Use structured logging** for better log analytics queries\n6. **Add custom attributes** to spans for better debugging\n7. **Use AAD authentication** for production workloads\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["azure","monitor","opentelemetry","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding"],"capabilities":["skill","source-sickn33","skill-azure-monitor-opentelemetry-py","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/azure-monitor-opentelemetry-py","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34928 github stars · SKILL.md body (5,143 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-24T18:50:32.729Z","embedding":null,"createdAt":"2026-04-18T21:32:53.485Z","updatedAt":"2026-04-24T18:50:32.729Z","lastSeenAt":"2026-04-24T18:50:32.729Z","tsv":"'0.0':432 '0.1':288 '1':234,459 '1.0':434,435 '10':280 '2':469 '3':478 '4':488 '5':496 '6':505 '7':514 'aad':425,516 'action':533 'ad':360 'add':506 'aiohttp':397 'analyt':503 'app':118,162 'app.get':164 'app.route':121 'app.run':130 'appear':259 'applic':17,35,82,261,297,414,487,495,527 'applicationinsight':53 'ask':571 'async':165 'attribut':203,508 'auth':426 'authent':361,517 'auto':22,40,379,440 'auto-detect':439 'auto-instrument':21,39,378 'azur':2,6,24,47,67,79,91,94,113,116,139,142,157,160,183,186,219,222,246,249,277,284,304,313,331,334,350,353,359,367,374,422,462 'azure-monitor-opentelemetri':46 'azure-monitor-opentelemetry-pi':1 'azure.identity':370 'azure.monitor.opentelemetry':64,88,110,136,154,180,216,243,274,301,328,347,364 'bash':43,52 'best':457 'better':501,512 'boundari':579 'call':460 'captur':266 'clarif':573 'clear':546 'cloud':289,293,480 'code':83 'configur':66,78,85,90,93,112,115,138,141,156,159,182,185,218,221,245,248,276,283,303,312,330,333,349,352,366,373,407,461 'connect':54,74,96,412,416,474 'counter':228,230,232 'counter.add':233 'credenti':376,421,423 'criteria':582 'current':195 'custom':172,208,237,507 'custom.attribute':204 'debug':513 'def':122,166 'default':411 'defaultazurecredenti':372,377 'describ':534,550 'descript':410 'detect':441 'dimens':235 'disabl':323 'distro':9,27 'django':132,144,387 'earli':464 'enabl':340,342,355,447,449,452,489 'env':419 'environ':50,77,471,562 'environment-specif':561 'error':264 'exc':268 'execut':529 'expert':567 'explicit':84 'fals':456 'fastapi':147,150,152,163,389 'flask':103,106,108,119,337,385 'hello':123,125,170 'high':493 'high-traff':492 'httpx':395 'import':65,89,107,111,137,151,155,177,181,213,217,240,244,275,302,308,329,348,365,371,466 'includ':381 'info':269 'ingestionendpoint':58,100 'input':576 'insight':18,36,262,415 'instal':42,45 'instrument':23,41,325,336,380,442,445,467 'instrumentationkey':56,98 'librari':382,468 'limit':538 'line':16,32,71 'list':443 'live':343,356,450,453 'log':238,241,499,502 'logger':251 'logger.error':263 'logger.info':256 'logger.setlevel':254 'logging.getlogger':252 'logging.info':255 'main':129 'map':298 'match':547 'messag':169 'meter':224,226 'meter.create':229 'metric':209,214,344,357,451,454 'metrics.get':225 'miss':584 'monitor':3,7,25,48,68,80,92,95,114,117,140,143,158,161,184,187,220,223,247,250,278,285,305,314,332,335,351,354,368,375,463 'multi':485 'multi-servic':484 'my-oper':197 'my-service-nam':319 'name':120,128,191,227,253,291,295,311,318,322,482 'none':427 'one':15,31,70 'one-lin':14,30,69 'opentelemetri':4,8,26,38,49,176,212,437 'opentelemetry.sdk.resources':307 'oper':199 'option':408 'output':556 'overview':537 'paramet':409 'permiss':577 'pip':44 'practic':458 'product':477,519 'psycopg2':399 'py':5 'pymongo':403 'pymysql':401 'python':11,29,62,86,104,133,148,174,210,239,272,299,326,345,362 'queri':504 'quick':60 'rate':431 'ratio':287,429 'read':73 'redi':405 'request':282,338,391 'requir':575 'resourc':309,315,436,438 'resource.create':316 'return':124,168 'review':568 'role':290,294,481 'root':167 'safeti':578 'sampl':271,279,286,428,430,490 'scope':549 'servic':310,317,321,486 'set':145,292,479 'settings.py':134 'setup':19,33,72 'skill':525,541 'skill-azure-monitor-opentelemetry-py' 'source-sickn33' 'span':196,201,510 'span.set':202 'specif':324,563 'start':61 'stop':569 'stream':455 'string':55,75,97,413,417,475 'structur':498 'substitut':559 'success':581 'task':545 'telemetri':383 'test':565 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'trace':173,178,386,388,390,392,394,396,398,400,402,404,406 'trace.get':189 'tracer':188,190 'tracer.start':193 'traffic':494 'treat':554 'true':270,358 'type':384 'urllib3':393 'use':12,470,497,515,523,539 'valid':564 'valu':205,236 'var':420 'variabl':51,472 'work':207 'workflow':531 'workload':520 'world':126,171 'xxx':57,99 'xxx.in.applicationinsights.azure.com':59,101","prices":[{"id":"74c7ef62-7221-45c8-a9a9-f9c0b1d04412","listingId":"d8d25bc9-7e1a-401a-8e33-fd330eaa4199","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:32:53.485Z"}],"sources":[{"listingId":"d8d25bc9-7e1a-401a-8e33-fd330eaa4199","source":"github","sourceId":"sickn33/antigravity-awesome-skills/azure-monitor-opentelemetry-py","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/azure-monitor-opentelemetry-py","isPrimary":false,"firstSeenAt":"2026-04-18T21:32:53.485Z","lastSeenAt":"2026-04-24T18:50:32.729Z"}],"details":{"listingId":"d8d25bc9-7e1a-401a-8e33-fd330eaa4199","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"azure-monitor-opentelemetry-py","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34928,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-24T06:41:17Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"32f22c645f602ec0574d260796e79170db8987c0","skill_md_path":"skills/azure-monitor-opentelemetry-py/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/azure-monitor-opentelemetry-py"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"azure-monitor-opentelemetry-py","description":"Azure Monitor OpenTelemetry Distro for Python. Use for one-line Application Insights setup with auto-instrumentation."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/azure-monitor-opentelemetry-py"},"updatedAt":"2026-04-24T18:50:32.729Z"}}