配置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数据源:

  1. 导航至Configuration > Data Sources
  2. 选择Prometheus
  3. 填写Prometheus服务器URL(如http://prometheus-server:9090
  4. 保存并测试连接

导入代理监控仪表板

Grafana社区提供现成的仪表板模板:

通过ID直接导入:

  1. 在Grafana侧边栏选择Create > Import
  2. 输入仪表板ID(如1860
  3. 选择之前创建的Prometheus数据源

自定义关键指标面板

对于DevOps代理,需特别关注以下指标:

  • CPU使用率100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[1m])) * 100)
  • 内存利用率node_memory_MemTotal_bytes - node_memory_MemAvailable_bytes
  • 磁盘IOrate(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中配置通知渠道:

  1. 进入Alerting > Notification channels
  2. 添加邮件、Slack等通知方式
  3. 在仪表板面板中创建告警规则

高级集成(可选)

对于流水线级别的监控:

  1. 使用Azure DevOps REST API获取构建状态
  2. 通过Grafana Infinity插件直接连接API
  3. 自定义JSON API数据源面板

示例构建状态查询:

rate(azure_devops_builds_completed_total{result="succeeded"}[1h]) / rate(azure_devops_builds_started_total[1h])

更多推荐