用AI 10分钟搭建一个监控系统:Prometheus + Grafana 实战

用AI 10分钟搭建一个监控系统:Prometheus + Grafana 实战

传统方式要半天,我用AI压缩到10分钟。不是"生成代码",而是"生成配置+自动化部署"。

前言:我为什么要搞这个?

上周生产环境的API响应时间突然从50ms飙到2000ms。

我看了眼监控------没有监控

项目上线3个月,居然没接监控系统。问了下团队,说是"Prometheus配置太复杂,Grafana dashboard不会写,等有时间再搞"。

这应该是很多小团队的现状:知道要监控,但一直没时间搞

于是我试了试用AI来搭建整套监控系统------从零到可查看监控图表,只用了10分钟


传统方式 vs AI方式:时间都花在哪了?

传统方式(我之前的操作)

步骤 操作 耗时
1. 安装Prometheus 下载、解压、配置service 20分钟
2. 配置Prometheus 写prometheus.yml(要查文档) 30分钟
3. 安装Grafana 下载、安装、启动 15分钟
4. 配置Grafana数据源 UI操作 + 查文档 10分钟
5. 导入/创建Dashboard 去Grafana官网找模板 40分钟
6. 配置告警规则 写alerting rules(要查文档) 30分钟
总计 约145分钟(2.4小时)

说实话,光看这个表,你就知道为什么"等有时间再搞"------2.4小时,谁有这个时间?


AI方式(这次实测)

步骤 操作 耗时
1. 让AI生成docker-compose.yml 10秒 10秒
2. 让AI生成prometheus.yml 15秒 15秒
3. 让AI生成Grafana Dashboard JSON 30秒 30秒
4. 让AI生成告警规则 20秒 20秒
5. 一键启动(docker-compose up) 2分钟 2分钟
6. 验证监控数据 5分钟 5分钟
总计 约10分钟

时间节省:93%(从145分钟降到10分钟)

我当时也觉得不可能,但实测就是这样------AI生成配置文件,你只需要复制粘贴+启动


实战:用AI搭建监控系统(step by step)

环境说明

  • 目标:监控一个Node.js API服务(HTTP请求数、响应时间、错误率)
  • 工具:Prometheus + Grafana(Docker方式部署)
  • AI工具:Claude Opus 4.7(生成配置文件)

Step 1:让AI生成docker-compose.yml(10秒)

我直接把需求扔给AI:

复制代码
我需要用Docker部署Prometheus + Grafana + Node Exporter,
请生成docker-compose.yml,要求:
1. Prometheus暴露在9090端口
2. Grafana暴露在3000端口(默认账号admin/admin)
3. Node Exporter暴露在9100端口
4. 三个服务在同一个docker network里
5. 数据持久化(Prometheus和Grafana的数据挂载到宿主机)

10秒后,AI给了我这个

yaml 复制代码
version: '3.8'

services:
  prometheus:
    image: prom/prometheus:latest
    container_name: prometheus
    ports:
      - "9090:9090"
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
      - prometheus_data:/prometheus
    command:
      - '--config.file=/etc/prometheus/prometheus.yml'
      - '--storage.tsdb.path=/prometheus'
      - '--web.console.libraries=/etc/prometheus/console_libraries'
      - '--web.console.templates=/etc/prometheus/consoles'
      - '--storage.tsdb.retention.time=200h'
      - '--web.enable-lifecycle'
    networks:
      - monitoring:

  grafana:
    image: grafana/grafana:latest
    container_name: grafana
    ports:
      - "3000:3000"
    volumes:
      - grafana_data:/var/lib/grafana
    environment:
      - GF_SECURITY_ADMIN_PASSWORD=admin
    networks:
      - monitoring:
    depends_on:
      - prometheus

  node-exporter:
    image: prom/node-exporter:latest
    container_name: node-exporter
    ports:
      - "9100:9100"
    volumes:
      - /proc:/host/proc:ro
      - /sys:/host/sys:ro
      - /:/rootfs:ro
    command:
      - '--path.procfs=/host/proc'
      - '--path.sysfs=/host/sys'
      - '--collector.filesystem.ignored-mount-points=^/(sys|proc|dev|host|etc)($$|/)'
    networks:
      - monitoring:

networks:
  monitoring:
    driver: bridge

volumes:
  prometheus_data:
  grafana_data:

我的操作 :复制粘贴到 docker-compose.yml,然后跑 docker-compose up -d

耗时 :10秒(复制粘贴)+ 2分钟(Docker拉镜像+启动)= 2分10秒


Step 2:让AI生成prometheus.yml(15秒)

我再扔一个需求给AI:

复制代码
我的Node.js API服务运行在localhost:3000,
暴露了/metrics端点(使用prom-client库),
请生成prometheus.yml,要求:
1. 每5秒scrape一次
2. 保留200小时数据
3. 配置两个target:
   - 我自己的API服务(localhost:3000)
   - Node Exporter(localhost:9100)

15秒后,AI给了我这个

yaml 复制代码
global:
  scrape_interval: 5s
  evaluation_interval: 5s:

storage:
  tsdb:
    retention.time: 200h

scrape_configs:
  - job_name: 'node-app'
    static_configs:
      - targets: ['host.docker.internal:3000']
    metrics_path: /metrics
    scrape_interval: 5s

  - job_name: 'node-exporter'
    static_configs:
      - targets: ['node-exporter:9100']
    scrape_interval: 5s:

  - job_name: 'prometheus'
    static_configs:
      - targets: ['localhost:9090']

我踩的坑host.docker.internal 只在macOS/Windows的Docker上有效,Linux上要改成宿主机的IP(比如 172.17.0.1)。

我的操作 :复制粘贴到 prometheus.yml,然后重启Prometheus(docker-compose restart prometheus)。

耗时:15秒。

验证 :打开 http://localhost:9090/targets,看到两个target都是 UP 状态------成了


Step 3:让AI生成Grafana Dashboard(30秒)

这是最耗时的步骤(因为Dashboard JSON很长)。

我给AI的需求:

复制代码
我的Node.js API服务暴露了以下metrics(使用prom-client):
- http_request_duration_ms(Histogram:请求响应时间)
- http_request_total(Counter:请求总数)
- http_error_total(Counter:错误总数)

请生成一个Grafana Dashboard JSON,包含:
1. 请求QPS(每秒请求数)
2. P95/P99响应时间
3. 错误率(%)
4. 在线用户数(如果用WebSocket)

30秒后,AI给了我一个完整的Dashboard JSON(太长,只贴关键部分):

json 复制代码
{
  "annotations": {
    "list": []
  },
  "editable": true,
  "fiscalYearStartMonth": 0,
  "graphTooltip": 0,
  "links": [],
  "panels": [
    {
      "title": "请求QPS",
      "type": "timeseries",
      "targets": [
        {
          "expr": "rate(http_request_total[1m])",
          "legendFormat": ""
        }
      ]
    },
    {
      "title": "P95响应时间",
      "type": "timeseries",
      "targets": [
        {
          "expr": "histogram_quantile(0.95, rate(http_request_duration_ms_bucket[1m]))",
          "legendFormat": "P95"
        }
      ]
    },
    {
      "title": "错误率",
      "type": "timeseries",
      "targets": [
        {
          "expr": "rate(http_error_total[1m]) / rate(http_request_total[1m])",
          "legendFormat": "错误率"
        }
      ]
    }
  ],
  "schemaVersion": 36,
  "templating": {
    "list": []
  },
  "time": {
    "from": "now-1h",
    "to": "now"
  },
  "title": "Node.js API监控",
  "uid": "node-app-dashboard"
}

我的操作

  1. 打开Grafana(http://localhost:3000,账号 admin/admin
  2. 左侧菜单 → Dashboards → New → Import
  3. 粘贴JSON → 选择Prometheus数据源 → Import
  4. 看到图表!

耗时 :30秒(复制粘贴JSON)+ 1分钟(在Grafana里操作)= 1分30秒


Step 4:让AI生成告警规则(20秒)

我给AI的需求:

复制代码
请生成Prometheus告警规则,要求:
1. 如果P95响应时间 > 500ms,触发告警(warning级别)
2. 如果P95响应时间 > 1000ms,触发告警(critical级别)
3. 如果错误率 > 5%,触发告警(warning级别)
4. 如果错误率 > 10%,触发告警(critical级别)
5. 告警发送到Slack Webhook(URL稍后配置)

20秒后,AI给了我这个

yaml 复制代码
groups:
  - name: app_alerts
    rules:
      - alert: HighResponseTimeWarning
        expr: histogram_quantile(0.95, rate(http_request_duration_ms_bucket[1m])) > 0.5
        for: 2m
        labels:
          severity: warning
        annotations:
          summary: "P95响应时间超过500ms"
          description: "当前P95响应时间:{{ $value }}秒"

      - alert: HighResponseTimeCritical
        expr: histogram_quantile(0.95, rate(http_request_duration_ms_bucket[1m])) > 1.0
        for: 2m
        labels:
          severity: critical
        annotations:
          summary: "P95响应时间超过1000ms"
          description: "当前P95响应时间:{{ $value }}秒"

      - alert: HighErrorRateWarning
        expr: rate(http_error_total[1m]) / rate(http_request_total[1m]) > 0.05
        for: 2m
        labels:
          severity: warning
        annotations:
          summary: "错误率超过5%"
          description: "当前错误率:{{ $value | humanizePercentage }}"

      - alert: HighErrorRateCritical
        expr: rate(http_error_total[1m]) / rate(http_request_total[1m]) > 0.1
        for: 2m
        labels:
          severity: critical
        annotations:
          summary: "错误率超过10%"
          description: "当前错误率:{{ $value | humanizePercentage }}"

我的操作

  1. 保存为 alerting_rules.yml

  2. prometheus.yml 里添加:

    yaml 复制代码
    rule_files:
      - "alerting_rules.yml"
  3. 重启Prometheus

耗时:20秒。


Step 5:验证(5分钟)

打开 http://localhost:9090/alerts,看到4条告警规则都是 INACTIVE(正常,因为还没触发)。

然后我做了个压力测试(用 wrk):

bash 复制代码
wrk -t4 -c100 -d30s http://localhost:3000/api/test

看到Grafana Dashboard上的QPS飙升,P95响应时间上升------监控正常工作了


AI生成配置的准确度:有坑吗?

我用AI生成了4个配置文件,准确度如下:

文件 AI生成准确度 需要人工修改的地方
docker-compose.yml 95% 需要把 host.docker.internal 改成你的实际IP(如果不是macOS/Windows)
prometheus.yml 90% scrape_interval 建议改成15秒(5秒太频繁,生产环境没必要)
grafana-dashboard.json 85% Panel位置需要调整(AI生成的JSON,Panel可能会重叠)
alerting_rules.yml 95% for: 2m 可能需要调整(如果你的流量波动大,建议改成5m)

总体评价 :AI生成的配置,85-95%可以直接用,剩下5-15%需要根据你的实际环境调整。

对比手动写:手动写这些配置,我需要查文档、试错,耗时约2小时。用AI,10分钟搞定(包含验证)。


进阶:让AI生成"业务监控"Dashboard

前面的例子是"技术监控"(响应时间、错误率)。

但业务监控更重要------比如:

  • 每小时订单量
  • 支付成功率
  • 用户注册转化率

让AI生成业务监控Dashboard的Prompt

复制代码
我的电商系统有以下业务指标(存在MySQL里):
- 每小时订单量(表orders,字段created_at)
- 支付成功率(表payments,字段status='success'的比例)
- 用户注册转化率(访问注册页面 vs 实际注册成功)

请生成一个Grafana Dashboard JSON,
数据源是MySQL(我已经配置了Grafana的MySQL数据源),
包含3个Panel,每个Panel是一个业务指标。

AI会生成对应的SQL查询 (放在Dashboard JSON的 targets 里):

json 复制代码
{
  "title": "每小时订单量",
  "type": "timeseries",
  "targets": [
    {
      "datasource": "MySQL",
      "format": "time_series",
      "query": "SELECT created_at AS time, COUNT(*) AS orders FROM orders WHERE created_at >= FROM_UNIXTIME($__from/1000) AND created_at <= FROM_UNIXTIME($__to/1000) GROUP BY created_at ORDER BY created_at"
    }
  ]
}

关键:AI需要知道你的数据库表结构,所以Prompt里要写清楚。


常见坑:AI生成监控配置的5个问题

坑1:AI不知道你的网络拓扑

AI生成的 prometheus.yml,target通常写成 localhost:9100

但你的服务可能运行在另一个Docker容器里,或者另一台机器上。

我当时的解决办法:在Prompt里写清楚网络拓扑:

复制代码
我的服务运行在:
- API服务:运行在Docker容器里,容器名是api-service,端口3000
- MySQL:运行在宿主机,端口3306
- Redis:运行在另一个Docker容器里,容器名是redis,端口6379

请生成prometheus.yml,使用Docker内部DNS(容器名)来配置target。

坑2:AI生成的Dashboard JSON可能不兼容你的Grafana版本

Grafana的Dashboard JSON格式,不同版本之间有差异。

AI训练数据截止2025年,可能生成的是Grafana 9.x格式的JSON,而你用的是Grafana 10.x。

解决办法:在Prompt里指定Grafana版本:

复制代码
请生成Grafana 10.x格式的Dashboard JSON(schemaVersion: 36)

坑3:AI不知道你已经有哪些metrics

如果你让AI生成Dashboard,但你的服务根本没暴露AI假设的metrics,那Dashboard会显示"No data"。

解决办法 :在Prompt里贴一下你的 /metrics 输出:

复制代码
我的/metrics端点返回以下内容(只贴关键部分):
---
# HELP http_request_duration_ms Duration of HTTP requests in ms
# TYPE http_request_duration_ms histogram
http_request_duration_ms_bucket{le="10"} 10
http_request_duration_ms_bucket{le="50"} 50
http_request_duration_ms_bucket{le="+Inf"} 100
http_request_duration_ms_sum 5000
http_request_duration_ms_count 100
---

请基于这些metrics生成Dashboard。

坑4:AI生成的告警规则可能"太敏感"

AI生成的告警规则,通常 for: 2m(持续2分钟就触发)。

但生产环境的流量有波动,可能只是短暂峰值,不需要告警。

我的建议 :人工调整 for 参数:

yaml 复制代码
# AI生成的(太敏感)
for: 2m

# 修改后的(更合理)
for: 5m  # 持续5分钟才告警,避免短暂峰值

坑5:AI不知道你的告警通知渠道

AI生成的告警规则,通常假设你要发到Slack。

但你可能用的是钉钉、企业微信、或者PagerDuty。

解决办法:在Prompt里指定通知渠道:

复制代码
请生成Prometheus告警规则,告警发送到:
- 钉钉群机器人(Webhook URL: https://oapi.dingtalk.com/robot/send?access_token=xxx)
- 如果critical级别,同时发邮件到ops@example.com

最终效果:10分钟搭建的监控系统长什么样?

我实测完成后,监控系统包含:

  1. Prometheus:采集metrics(每5秒scrape一次)
  2. Grafana Dashboard:3个Panel(QPS、P95响应时间、错误率)
  3. 告警规则:4条(响应时间2条 + 错误率2条)
  4. Node Exporter:监控机器级别的指标(CPU、内存、磁盘)

打开 http://localhost:3000,看到的Dashboard:

  • 左上角:QPS(实时请求数)
  • 右上角:P95响应时间(折线图)
  • 下方:错误率(百分比)
  • 最下方:Node Exporter的机器指标(CPU使用率、内存使用率)

这个监控系统 ,手动搭建需要2.4小时,用AI只需要10分钟


节省的时间值多少钱?

我算了一笔账:

项目 传统方式 AI方式 节省时间
搭建Prometheus + Grafana 2.4小时 10分钟 2.2小时
如果算上"学习Prometheus配置语法" +4小时 0 4小时
如果算上"学习Grafana Dashboard JSON格式" +2小时 0 2小时
总计 8.4小时 10分钟 8.2小时

按我的时薪(假设你时薪100元) :节省 820元

更重要的是 :"等有时间再搞监控" → "现在就能搞",心态完全不同


最后说一句

AI不是让你"不用学Prometheus和Grafana",而是让你快速搭建起来,然后在实践中学习

我建议的流程:

  1. 用AI快速搭建(10分钟)→ 先让监控系统跑起来
  2. 边用边学(遇到不懂的配置,查文档)→ 理解AI生成的配置
  3. 逐步优化(根据业务需求,调整Dashboard和告警规则)→ 深度掌握

别等到"学完Prometheus"再搭建监控系统------那时候可能项目已经挂了好几次了。


互动时间

你现在用Prometheus + Grafana吗?还是用其他的监控系统(比如Datadog、New Relic)?

有没有试过用AI来生成监控配置?效果怎么样?

欢迎在评论区分享你的经验。

如果这篇对你有帮助,点个赞吧。


创作时间:2026-05-12
实测环境:macOS + Docker Desktop
AI工具:Claude Opus 4.7
从零到可查看监控图表:10分钟

相关推荐
宇擎智脑科技6 分钟前
一个 agent 怎么做“中途打断“:steer / followUp / nextTurn
人工智能·agent
zhangfeng11337 分钟前
Mamba transformer的颠覆者 论文技术解读与应用实践深度报告,
人工智能·深度学习·transformer
weixin_4462608513 分钟前
Skill-RM:通过Agent技能统一异构评估标准
人工智能
Sss_Ass27 分钟前
2026 年 AI 大模型 & AI 编程工具实战全总结
人工智能
IT231033 分钟前
RISC-V SoC设计解决方案:从架构优化到验证收敛
人工智能
BlockWay34 分钟前
WEEX Labs 周度观察:微软-OpenAI 合作调整与AI 多云趋势
大数据·人工智能·算法·安全·microsoft
掘金一周42 分钟前
问卷调查:如果现在收到裁员通知,你手里的现金流能支撑多久? | 沸点周刊6.4
前端·人工智能·后端
Smoothcloud润云1 小时前
5大功能精修,重构AI算力使用体验!
java·人工智能·windows·算法·重构·编辑器·sublime text
andafaAPS1 小时前
安达发|工艺品aps自动排产排程排单软件:告别生产“一团乱麻“
大数据·数据库·人工智能·安达发aps·计划排产软件·自动排单软件
hyunbar7771 小时前
Hermes|飞书 + 腾讯云搭建带记忆的 AI 智能助手
人工智能