Azure Monitor 查询 Python 技能
帮助 Python 开发者查询 Azure Monitor 日志与指标。
证据显示技能优先使用 DefaultAzureCredential,避免连接字符串和 API key,并要求客户端及异步凭据确定性清理;查询仅覆盖日志和指标读取,未见破坏性操作或凭据窃取。扣分原因是未说明最小 RBAC 权限、敏感日志处理、查询数据流、用户确认、隔离或回滚要求,且未提供固定版本和依赖安全策略。
证据包含同步、异步、批量查询、部分结果处理和资源清理示例,主路径基本连贯。扣分原因是静态审查不能验证运行结果;示例缺少 os 等必要导入,DefaultAzureCredential(require_envvar=True) 与“本地可直接使用”说明存在潜在矛盾,错误、超时、限流和无效输入处理较薄弱。
证据明确面向 Python 的 Azure Monitor、Log Analytics 日志查询和 Azure 指标查询,触发词、主要客户端及同步/异步场景清楚。扣分原因是未明确非适用边界、权限前置条件、SDK 版本兼容范围、中文使用说明或中国大陆网络环境;核心服务访问可能受区域、网络和 Azure 配置影响。
证据包含 front matter、MIT 许可、版本 1.0.0、安装说明、环境变量、分层参考文件、示例和最佳实践;仓库上下文还显示官方组织、维护说明和 CI/evaluation 工作流。扣分原因是技能自身没有 changelog、维护责任和更新路径,依赖版本与可选 pandas 未说明,FAQ、故障排查、限制说明不足,参考文档包含与查询技能不完全相关的通用资源管理建议。
证据覆盖日志、指标、批量、部分结果、聚合、维度过滤、定义查询和异步客户端,可为常见编码任务提供直接模式。扣分原因是静态材料没有可验证的该技能输出或端到端结果,示例存在遗漏导入和上下文依赖,生产级重试、分页/限制、权限失败和结果完整性指导不足,因此仍需较多人工审查。
证据包括明确的技能文件、参考文件、版本元数据、MIT 许可,以及仓库级测试和 CI 线索。扣分原因是提供的测试并未覆盖该技能的关键 Python 查询路径,未见该技能专属 acceptance criteria、固定依赖或第三方执行记录,且关键 API 断言主要依赖作者文档而非多源复核。
- 示例代码可能无法直接运行:至少缺少 os 导入,并且 require_envvar=True 的认证说明与本地使用说明可能不一致。
- 在生产使用前应核实 azure-monitor-query 版本、API 方法签名、RBAC 最小权限、查询中的敏感数据暴露风险,以及 Azure 服务在目标网络和区域中的可达性。
- 不要将查询返回的日志或指标直接输出、持久化或发送到其他服务,除非已完成数据分类、访问控制和用户授权。
它能做什么 & 适用场景
这是 Microsoft Agent Skills 仓库中的一个 Python SDK 技能,专用于 Azure Monitor 和 Log Analytics 查询。它指导编码代理使用 azure-monitor-query 包,通过 LogsQueryClient 查询工作区日志,并通过 MetricsQueryClient 查询资源指标。内容覆盖同步与异步客户端、批量查询、部分结果处理、指标聚合、维度筛选和 DataFrame 转换。适合已经拥有 Azure Monitor 资源并希望快速生成规范查询代码的 Python 开发者。
指导安装 azure-monitor-query,配置工作区 ID、指标资源 URI 和凭据环境变量;生成使用 DefaultAzureCredential 的同步或异步 Python 客户端代码;查询 Log Analytics 工作区、执行 Kusto 查询和批量日志查询;处理成功、部分结果和失败状态;查询 Azure 资源指标、设置时间范围与粒度、应用聚合和维度筛选;列出指标定义与命名空间,并将日志结果转换为 pandas DataFrame。
- 需要从 Log Analytics 查询请求、异常或状态码的 Python 后端开发者。
- 需要按时间范围、粒度或聚合方式读取 Azure 资源指标的运维开发者。
- 需要一次执行多个 Kusto 日志查询并处理部分结果的工程团队。
- 需要在异步 Python 服务中安全创建和释放 Azure Monitor 客户端的开发者。
- 需要将查询结果交给 pandas 进行后续分析的数据工程师。
优缺点一览
- 覆盖日志查询和 Azure 指标查询两类核心场景。
- 同时提供同步与异步客户端示例,并强调客户端和异步凭据的生命周期管理。
- 包含批量查询、部分结果、聚合、维度筛选和 DataFrame 转换等实用模式。
- 采用 DefaultAzureCredential,支持本地开发与 Azure 环境中的凭据链。
- 需要 Azure Monitor 或 Log Analytics 资源、相应标识符和有效凭据。
- 源材料没有说明所需的具体 Azure RBAC 权限、配额或使用成本。
- 没有给出 Python 版本、SDK 版本或 API 兼容性信息。
- 引用的 capabilities.md 和 non-hero-scenarios.md 内容未包含在本资料中。
如何安装
安装整个技能集合:运行 npx skills add microsoft/skills,然后在向导中选择需要的技能。README 说明技能会安装到所选 Agent 的目录,例如 GitHub Copilot 使用 .github/skills/。本技能依赖的 Python 包安装命令为 pip install azure-monitor-query。
如何使用
向编码代理提出类似请求:使用 azure-monitor-query 查询过去一小时的 Log Analytics AppRequests,并按 ResultCode 汇总。 也可以使用触发词 LogsQueryClient、MetricsQueryClient、Kusto queries 或 Azure metrics。使用前需提供 AZURE_LOG_ANALYTICS_WORKSPACE_ID 或 AZURE_METRICS_RESOURCE_URI,并配置 Azure 凭据;生产环境建议设置 AZURE_TOKEN_CREDENTIALS=prod。