使用Grafana可视化Azure DevOps代理指标
·
配置Azure DevOps代理指标收集
Azure DevOps代理(包括自托管代理)本身不直接暴露Prometheus格式的指标,需要通过额外的工具或中间层收集数据。推荐使用Prometheus的windows_exporter(Windows代理)或node_exporter(Linux代理)收集系统级指标。
安装后配置prometheus.yml抓取目标:
scrape_configs:
- job_name: 'azure_devops_agent'
static_configs:
- targets: ['agent-ip:9100'] # node_exporter默认端口
创建Grafana数据源
在Grafana中添加Prometheus数据源:
- 导航至
Configuration > Data Sources - 选择
Prometheus - 填写Prometheus服务器URL(如
http://prometheus-server:9090) - 保存并测试连接
导入代理监控仪表板
Grafana社区提供现成的仪表板模板:
通过ID直接导入:
- 在Grafana侧边栏选择
Create > Import - 输入仪表板ID(如
1860) - 选择之前创建的Prometheus数据源
自定义关键指标面板
对于DevOps代理,需特别关注以下指标:
- CPU使用率:
100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[1m])) * 100) - 内存利用率:
node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes - 磁盘IO:
rate(node_disk_read_bytes_total[1m]) - 网络吞吐量:
rate(node_network_receive_bytes_total[1m])
示例面板的PromQL查询:
sum(rate(node_cpu_seconds_total{job="azure_devops_agent",mode!="idle"}[5m])) by (instance)
设置告警规则
在Prometheus中配置告警规则(rules.yml):
groups:
- name: devops-agent-alerts
rules:
- alert: HighCPUUsage
expr: 100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80
for: 10m
labels:
severity: warning
annotations:
summary: "High CPU usage on {{ $labels.instance }}"
在Grafana中配置通知渠道:
- 进入
Alerting > Notification channels - 添加邮件、Slack等通知方式
- 在仪表板面板中创建告警规则
高级集成(可选)
对于流水线级别的监控:
- 使用Azure DevOps REST API获取构建状态
- 通过Grafana Infinity插件直接连接API
- 自定义JSON API数据源面板
示例构建状态查询:
rate(azure_devops_builds_completed_total{result="succeeded"}[1h]) / rate(azure_devops_builds_started_total[1h])
更多推荐
所有评论(0)