Agent Skills
返回列表
🔒

Azure Monitor Python OpenTelemetry

IT 运维与安全 更新于 2026.08.30

将以下提示词粘贴到你的 AI 对话框中:

请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/azure-monitor-opentelemetry-py。

技能介绍

要解决什么问题

Python 服务要接入 Azure Application Insights,常见痛点是:既要接官方摄取端点,又要和 OpenTelemetry 生态对齐,还要覆盖 Flask、Django、FastAPI 以及 requests、httpx、数据库驱动等依赖链上的出站调用。手工拼 SDK、埋点顺序和导出器,很容易在进程退出时丢缓冲数据,或在生产环境里把鉴权方式写错。

技能如何工作

该技能围绕 Azure Monitor OpenTelemetry Python Distro:通过 configure_azure_monitor() 尽早完成初始化(应在导入被埋点库之前),用 APPLICATIONINSIGHTS_CONNECTION_STRING 指向目标资源;在支持场景下优先 DefaultAzureCredential 做 Microsoft Entra 摄取鉴权,本地开发可直接用凭据链,生产可通过 AZURE_TOKEN_CREDENTIALS 收窄为安全凭据。

自动埋点覆盖 Web 框架(Flask / Django / FastAPI)与 HTTP、PostgreSQL(psycopg2)、MySQL(pymysql)、MongoDB(pymongo)、Redis 等库的 Traces。文档还说明如何写自定义 Trace / Metrics / Logs、配置 采样率(sampling_ratio)、为 Application Map 设置云角色名称,以及按需禁用特定埋点或开启 Live Metrics。

配置面上,connection_string、credential、instrumentations、enable_live_metrics 等参数有明确默认值;参考文档中的 capabilities 与 non-hero 场景清单可用于核对生产检查项。

适用边界与注意点

  • Provider 不是上下文管理器:进程退出前应显式 force_flush() / shutdown(),否则遥测可能未确定性导出。
  • 同步与异步不要混用:同一调用路径内不要混用 azure.xxx 与 azure.xxx.aio。
  • 高流量应启用采样;多服务应设置云角色名称;连接字符串等敏感配置宜用环境变量,生产工作负载优先 Entra 鉴权而非仅依赖连接字符串里的密钥。

使用场景

  • 在 Azure 上跑的 Flask 服务需要自动记录出站 HTTP 与数据库调用链路,并写入 Application Insights
  • Django 多实例部署时要在 Application Map 里区分各微服务的云角色名称与依赖关系
  • FastAPI 异步 API 流量较大,需要按 sampling_ratio 采样 Trace 同时保留自定义 Metrics 与结构化日志
  • 生产环境摄取遥测时要用 DefaultAzureCredential 走 Entra 鉴权,避免连接字符串密钥长期暴露在配置里

适合人员

  • 维护 Azure 上 Python Web 服务、需要统一 Traces/Metrics/Logs 导出到 Application Insights 的后端工程师
  • 负责 SRE 可观测性规范、要核对自动埋点覆盖与进程退出 flush 检查清单的平台运维
  • 在现有 OpenTelemetry 技能栈中接入 Azure Monitor Distro、并配置采样与禁用部分 instrumentations 的集成开发
  • 为多服务 Python monolith 或微服务划分云角色名称、并排查 Application Map 节点归属的应用架构师