Azure Monitor 日志查询 Python SDK
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/azure-monitor-query-py。
技能介绍
要解决什么问题
在 Azure 上跑应用时,排障和容量规划往往依赖 Log Analytics 工作区里的 Kusto 日志,以及 Azure Monitor 上的资源指标。若每次都在 Portal 里点查询、或手写 REST 与鉴权细节,很难把查询逻辑固化进脚本、CI 或运维工具链。本技能围绕官方 Azure Monitor Query Python SDK,说明如何用 LogsQueryClient 与 MetricsQueryClient 以可维护的方式拉取日志与指标。
核心能力与关键步骤
- 日志:按时间范围执行 Kusto 查询;支持 批量查询、部分结果续取;可将结果转为 DataFrame 做后续分析。
- 指标:查询资源指标,使用 聚合、按 维度过滤,并可 列出指标定义与命名空间。
- 鉴权与生命周期:资料强调 DefaultAzureCredential(本地 Azure CLI / VS Code 与云上托管标识同一套思路),并建议生产环境用
AZURE_TOKEN_CREDENTIALS收窄凭据链;每个客户端(及异步凭据)应放在 上下文管理器里释放连接与令牌缓存。 - 同步 / 异步:提供同步与
aio异步客户端;同一调用链应 二选一并保持一致,避免混用。
适用边界与注意点
技能侧重查询客户端与常见 Kusto / 指标模式,非核心能力(操作组覆盖、生产检查清单等)在 references/capabilities.md 与 references/non-hero-scenarios.md 中补充。大型查询需处理部分结果;多查询优先批量接口;指标查询应设置合适 粒度 以控制数据点规模。避免连接字符串或 API 密钥绕过 Entra 审计与轮换机制。
使用场景
- 线上告警后,用 Python 按时间范围对工作区跑 Kusto,把事件时间线导出为 DataFrame 做关联分析
- 容量评估前,批量查询多个 Log Analytics 工作区同一套 KQL,汇总部分结果避免单次超时
- 发布验证阶段,按资源 ID 拉取 CPU/内存等指标并按维度过滤,与基线对比
- 运维脚本需列出某订阅下资源的指标定义与命名空间,再动态拼装 MetricsQueryClient 查询
适合人员
- 负责 Azure 可用性的 SRE,希望把 Portal 里的 Log Analytics 查询固化进故障 Runbook
- 云平台工程师,需要在 CI 或定时任务里用 DefaultAzureCredential 查询 Monitor 指标做门禁
- 数据/可观测性工程师,习惯用 pandas 分析,要把 SDK 查询结果直接转成 DataFrame
- 安全或运维分析人员,需在脚本中执行常用 Kusto 模板并对大型结果做续取处理