[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6G96JHTQQ8SDS9MXP60P2TD":3,"skill-same:01M6G96JHTQQ8SDS9MXP60P2TD":68},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":35,"linkOnly":36,"markdownContent":37,"markdownBody":38,"frontMatter":39,"refName":42,"commitSha":43,"skillDirectory":44,"forksCount":13,"repositoryHtmlUrl":45,"repositoryHomepageUrl":6,"ownerHtmlUrl":46,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":47,"install":48,"resources":61},"01M6G96JHTQQ8SDS9MXP60P2TD","azure-monitor-opentelemetry-py",null,"Azure Monitor OpenTelemetry Distro for Python. Use for one-line Application Insights setup with auto-instrumentation.\nTriggers: \"azure-monitor-opentelemetry\", \"configure_azure_monitor\", \"Application Insights\", \"OpenTelemetry distro\", \"auto-instrumentation\".","ricardoaevt\u002Fnexus-roms","ricardoaevt","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F164531880?v=4","01M6DGFGSV6CF9AKPHABBREC79","01M6DGFGYNNPJVDFQA05TDPSBN",0,"AGPL-3.0","https:\u002F\u002Fgithub.com\u002Fricardoaevt\u002Fnexus-roms\u002Fblob\u002Fmain\u002F.agent\u002Fskills\u002Fmicrosoft_skills\u002F.github\u002Fplugins\u002Fazure-sdk-python\u002Fskills\u002Fazure-monitor-opentelemetry-py\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34],"azure","azure monitor opentelemetry py","monitor","OpenTelemetry","azure monitor","use","insights","with","line","triggers","application","instrumentation","auto","python","configure","azure-monitor","setup","2026-11-10 10:12:30",false,"---\nname: azure-monitor-opentelemetry-py\ndescription: |\n  Azure Monitor OpenTelemetry Distro for Python. Use for one-line Application Insights setup with auto-instrumentation.\n  Triggers: \"azure-monitor-opentelemetry\", \"configure_azure_monitor\", \"Application Insights\", \"OpenTelemetry distro\", \"auto-instrumentation\".\npackage: azure-monitor-opentelemetry\n---\n\n# 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:\u002F\u002Fxxx.in.applicationinsights.azure.com\u002F\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:\u002F\u002Fxxx.in.applicationinsights.azure.com\u002F\"\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(\"\u002F\")\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(\"\u002F\")\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","# 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:\u002F\u002Fxxx.in.applicationinsights.azure.com\u002F\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:\u002F\u002Fxxx.in.applicationinsights.azure.com\u002F\"\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(\"\u002F\")\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(\"\u002F\")\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",{"name":5,"package":40,"description":41},"azure-monitor-opentelemetry","Azure Monitor OpenTelemetry Distro for Python. Use for one-line Application Insights setup with auto-instrumentation.\nTriggers: \"azure-monitor-opentelemetry\", \"configure_azure_monitor\", \"Application Insights\", \"OpenTelemetry distro\", \"auto-instrumentation\".\n","main","d41309588593cee5c2fb44062474efc3a99fbcb6",".agent\u002Fskills\u002Fmicrosoft_skills\u002F.github\u002Fplugins\u002Fazure-sdk-python\u002Fskills\u002Fazure-monitor-opentelemetry-py","https:\u002F\u002Fgithub.com\u002Fricardoaevt\u002Fnexus-roms","https:\u002F\u002Fgithub.com\u002Fricardoaevt","2026-03-23 00:05:03",{"source":8,"skillName":5,"commands":49,"prompt":59,"zipAvailable":60},[50,53,56],{"tool":51,"command":52},"npx","npx skills add ricardoaevt\u002Fnexus-roms --skill azure-monitor-opentelemetry-py",{"tool":54,"command":55},"bunx","bunx skills add ricardoaevt\u002Fnexus-roms --skill azure-monitor-opentelemetry-py",{"tool":57,"command":58},"pnpm","pnpm dlx skills add ricardoaevt\u002Fnexus-roms --skill azure-monitor-opentelemetry-py","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fricardoaevt\u002Fnexus-roms\u002Fblob\u002Fmain\u002F.agent\u002Fskills\u002Fmicrosoft_skills\u002F.github\u002Fplugins\u002Fazure-sdk-python\u002Fskills\u002Fazure-monitor-opentelemetry-py\u002FSKILL.md",true,[62],{"path":63,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":66,"sourceHtmlUrl":67},"references\u002Facceptance-criteria.md","REFERENCE","参考文档",4422,"https:\u002F\u002Fgithub.com\u002Fricardoaevt\u002Fnexus-roms\u002Fblob\u002Fmain\u002F.agent\u002Fskills\u002Fmicrosoft_skills\u002F.github\u002Fplugins\u002Fazure-sdk-python\u002Fskills\u002Fazure-monitor-opentelemetry-py\u002Freferences\u002Facceptance-criteria.md",[69,92,108,123,134,143],{"skillNo":70,"name":71,"nameZh":6,"description":72,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":73,"licenseFileUrl":6,"sourceHtmlUrl":74,"categories":75,"keywords":76,"publishedAt":35},"01M6G9HYKQRK6HBKVTZM3258M3","openspec-propose","Propose a new change with all artifacts generated in one step. Use when the user wants to quickly describe what they want to build and get a complete proposal with design, specs, and tasks ready for implementation.","MIT","https:\u002F\u002Fgithub.com\u002Fricardoaevt\u002Fnexus-roms\u002Fblob\u002Fmain\u002F.agent\u002Fskills\u002Fopenspec-propose\u002FSKILL.md",[],[77,78,79,80,25,81,82,83,84,85,86,23,87,88,89,90,91],"openspec propose","openspec","cli","generated","proposal","complete","get","build","implementation","ready","user","artifacts","tasks","change","design",{"skillNo":93,"name":94,"nameZh":6,"description":95,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":73,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":98,"publishedAt":35},"01M6G9HV9V20WFCHYVSDNQMJVK","openspec-new-change","Start a new OpenSpec change using the experimental artifact workflow. Use when the user wants to create a new feature, fix, or modification with a structured step-by-step approach.","https:\u002F\u002Fgithub.com\u002Fricardoaevt\u002Fnexus-roms\u002Fblob\u002Fmain\u002F.agent\u002Fskills\u002Fopenspec-new-change\u002FSKILL.md",[],[78,99,90,100,79,101,102,103,23,87,104,105,106,107,25],"openspec new change","new feature","structured","artifact","workflow","create","start","fix","feature",{"skillNo":109,"name":110,"nameZh":6,"description":111,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":73,"licenseFileUrl":6,"sourceHtmlUrl":112,"categories":113,"keywords":114,"publishedAt":35},"01M6G9HRF6R89QZXGSFC9DRQW3","openspec-explore","Enter explore mode - a thinking partner for exploring ideas, investigating problems, and clarifying requirements. Use when the user wants to think through something before or during a change.","https:\u002F\u002Fgithub.com\u002Fricardoaevt\u002Fnexus-roms\u002Fblob\u002Fmain\u002F.agent\u002Fskills\u002Fopenspec-explore\u002FSKILL.md",[],[115,116,78,23,117,79,90,87,118,119,120,121,122],"openspec explore","explore","partner","think","thinking partner","thinking","ideas","requirements",{"skillNo":124,"name":125,"nameZh":6,"description":126,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":73,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":129,"publishedAt":35},"01M6G9HP3APFCXZG7XRWBMM524","openspec-continue-change","Continue working on an OpenSpec change by creating the next artifact. Use when the user wants to progress their change, create the next artifact, or continue their workflow.","https:\u002F\u002Fgithub.com\u002Fricardoaevt\u002Fnexus-roms\u002Fblob\u002Fmain\u002F.agent\u002Fskills\u002Fopenspec-continue-change\u002FSKILL.md",[],[78,130,131,90,103,79,104,87,23,132,102,133],"continue","openspec continue change","next","progress",{"skillNo":135,"name":136,"nameZh":6,"description":137,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":73,"licenseFileUrl":6,"sourceHtmlUrl":138,"categories":139,"keywords":140,"publishedAt":35},"01M6G9HKT3WMSDBSKA7YM4MSSQ","openspec-archive-change","Archive a completed change in the experimental workflow. Use when the user wants to finalize and archive a change after implementation is complete.","https:\u002F\u002Fgithub.com\u002Fricardoaevt\u002Fnexus-roms\u002Fblob\u002Fmain\u002F.agent\u002Fskills\u002Fopenspec-archive-change\u002FSKILL.md",[],[141,78,142,90,79,103,87,23,85,82],"openspec archive change","archive",{"skillNo":144,"name":145,"nameZh":6,"description":146,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":73,"licenseFileUrl":6,"sourceHtmlUrl":147,"categories":148,"keywords":149,"publishedAt":35},"01M6G9HHEG0RJK4E0YTVZZ6A8T","openspec-apply-change","Implement tasks from an OpenSpec change. Use when the user wants to start implementing, continue implementation, or work through tasks.","https:\u002F\u002Fgithub.com\u002Fricardoaevt\u002Fnexus-roms\u002Fblob\u002Fmain\u002F.agent\u002Fskills\u002Fopenspec-apply-change\u002FSKILL.md",[],[78,90,150,151,89,105,130,152,87,23,85,79],"openspec apply change","implement","work"]