Appearance
使用 Python 自动查询 Azure Monitor 日志与指标
解决云端运维手动查询低效的问题:通过集成 Azure Monitor Query SDK,实现通过 Python 脚本自动提取 Log Analytics 日志和资源指标,支持数据分析与自动化告警。
为什么需要这个技能
在管理 Azure 云资源时,通过 Azure 门户界面手动运行 KQL (Kusto Query Language) 查询虽然直观,但在处理大规模数据分析、定期生成运维报告或构建自定义监控面板时效率低下。
通过该 SDK,开发者可以将复杂的 Kusto 查询逻辑集成到 Python 工作流中。这意味着你可以将查询结果直接转换为 Pandas DataFrame 进行深度分析,或者利用异步客户端在短时间内并发请求大量指标数据,从而将监控从“手动巡检”升级为“自动化分析”。
适用场景
- 自动化运维报告:每天定时提取 AppRequests 错误率并发送至团队邮件。
- 性能趋势分析:将 CPU 和网络 IO 指标导出到 Dataframe,进行时间序列预测。
- 故障快速定位:编写脚本快速筛选出过去一小时内 DurationMs > 1000ms 的慢请求。
- 多资源批量监控:利用批处理查询(Batch Query)同时检查多个工作区的运行状态。
核心工作流
1. 环境准备与认证
安装 SDK 并配置必要的环境变量(工作区 ID 和资源 URI),使用 DefaultAzureCredential 实现无缝认证。
bash
pip install azure-monitor-querypython
from azure.identity import DefaultAzureCredential
credential = DefaultAzureCredential()2. 日志查询 (LogsQueryClient)
编写 KQL 语句,通过 query_workspace 获取结果。若结果集较大,可通过 LogsQueryStatus 处理部分返回结果。
python
from azure.monitor.query import LogsQueryClient
from datetime import timedelta
client = LogsQueryClient(credential)
query = "AppRequests | where TimeGenerated > ago(1h) | summarize count() by ResultCode"
response = client.query_workspace(
workspace_id="你的workspace-id",
query=query,
timespan=timedelta(hours=1)
)3. 指标查询 (MetricsQueryClient)
针对特定资源 URI 查询性能指标,支持定义聚合方式(平均值、最大值等)和维度过滤。
python
from azure.monitor.query import MetricsQueryClient
metrics_client = MetricsQueryClient(credential)
response = metrics_client.query_resource(
resource_uri="你的resource-uri",
metric_names=["Percentage CPU"],
timespan=timedelta(hours=1),
granularity=timedelta(minutes=5)
)下载和安装
下载 azure-monitor-query-py 中文版 Skill ZIP
解压后将目录放入你的 AI 工具 skills 文件夹,重启工具后即可使用。具体路径参考内附的 USAGE.zh.md。
你可能还需要
暂无推荐