Sponsored by Deepsite.site

GRAFANA-MCP-ANALYZER

Created By
Sailing7 months ago
让AI助手直接分析你的Grafana监控数据 - A Model Context Protocol server for Grafana data analysis
Content

Grafana MCP Analyzer 🤖

Version License

让AI直接读懂你的监控数据,智能化运维分析助手

English | 中文文档

✨ 项目简介

想象一下这样的场景:

  • 您问AI:"我的服务器现在怎么样?"
  • AI直接查看您的Grafana监控,回答:"CPU使用率偏高,建议检查这几个进程..."

复杂的监控图表,AI帮您一键分析!告别传统的手动监控方式,让AI成为您的专属运维助手!

🚀 核心特性

Grafana MCP Analyzer 基于 MCP (Model Context Protocol) 协议,赋能Claude、ChatGPT等AI助手具备以下超能力:

  • 🗣️ 自然语言查询 - 轻松访问监控数据,AI 一键输出专业分析
  • 📈 智能格式化 - 支持大数据量分析,高效解析各类数据
  • 🔗 curl支持 - 直接使用浏览器 copy 的 curl 合成查询
  • 🔄 聚合分析 - 单个查询或 Dashboard 级别综合分析
  • 🚨 异常检测 - AI 主动报告性能问题,提前警报
  • 🔌 全数据源支持 - Prometheus、MySQL、ES 等通通支持
  • 💡 专业 DevOps 建议 - 不只是展示数据,更提供可执行的优化方案,提升DevOps效率

🛠️ 快速开始

步骤1:安装

npm install -g grafana-mcp-analyzer

环境要求:Node.js 18+ | 安装指南

步骤2:配置AI助手(以Cursor为例)

{
  "mcpServers": {
    "grafana": {
      "command": "grafana-mcp-analyzer",
      "env": {
        "CONFIG_PATH": "https://raw.githubusercontent.com/SailingCoder/grafana-mcp-analyzer/main/config/grafana-config-play.js"
      }
    }
  }
}

注:CONFIG_PATH支持绝对路径、远程路径,具体详见下方高级配置。

步骤3:编写配置文件 grafana-config.js

快速体验: 步骤2中CONFIG_PATH已经配置了远程路径,如果你只是想快速体验这个库,可以跳过这一步,直接执行步骤4。

自定义配置: 如果你想使用自己的数据源或参数,可以参考以下配置来自定义。

以下是步骤2中CONFIG_PATH指向的默认配置(来自文档示例):

/**
 * 基于Grafana Play演示实例的配置文件
 * 数据源:https://play.grafana.org/d/candlesticksss/candlestick2?orgId=1&from=2021-07-13T22:13:30.740Z&to=2021-07-13T22:46:18.921Z&timezone=utc (狗狗币OHLC数据)
 */
const config = {
  // Grafana服务器地址
  baseUrl: 'https://play.grafana.org',
  
  // 默认请求头
  defaultHeaders: {
    'Content-Type': 'application/json',
    'Accept': 'application/json, text/plain, */*'
  },

  // 健康检查配置
  healthCheck: {
    url: 'api/health'
  },

  // 查询定义
  queries: {
    // 第一个查询 - 使用curl格式(面板2的狗狗币数据)
    'dogecoin_panel_2': {
      curl: `curl 'https://play.grafana.org/api/ds/query?ds_type=grafana-testdata-datasource&requestId=SQR108' \\
        -X POST \\
        -H 'accept: application/json, text/plain, */*' \\
        -H 'content-type: application/json' \\
        -H 'x-datasource-uid: 9cY0WtPMz' \\
        -H 'x-grafana-org-id: 1' \\
        -H 'x-panel-id: 2' \\
        -H 'x-panel-plugin-id: candlestick' \\
        -H 'x-plugin-id: grafana-testdata-datasource' \\
        --data-raw '{"queries":[{"csvFileName":"ohlc_dogecoin.csv","datasource":{"type":"grafana-testdata-datasource","uid":"9cY0WtPMz"},"refId":"A","scenarioId":"csv_file","datasourceId":153,"intervalMs":2000,"maxDataPoints":1150}],"from":"1626214410740","to":"1626216378921"}'`,
      systemPrompt: '您是狗狗币数据分析专家,专注于OHLC(开盘价、最高价、最低价、收盘价)数据分析。请分析狗狗币价格数据,重点关注:1. 价格趋势和波动模式 2. 支撑位和阻力位识别 3. 交易机会分析 4. 风险评估和建议 5. 技术指标分析。请提供专业的投资分析和建议。'
    },

    // 第二个查询 - 使用HTTP API格式(面板7的狗狗币数据)
    'dogecoin_panel_7': {
      url: 'api/ds/query',
      method: 'POST',
      params: {
        ds_type: 'grafana-testdata-datasource',
        requestId: 'SQR109'
      },
      headers: {
        'accept': 'application/json, text/plain, */*',
        'content-type': 'application/json',
        'x-datasource-uid': '9cY0WtPMz',
        'x-grafana-org-id': '1',
        'x-panel-id': '7',
        'x-panel-plugin-id': 'candlestick',
        'x-plugin-id': 'grafana-testdata-datasource'
      },
      data: {
        queries: [{
          csvFileName: "ohlc_dogecoin.csv",
          datasource: {
            type: "grafana-testdata-datasource",
            uid: "9cY0WtPMz"
          },
          refId: "A",
          scenarioId: "csv_file",
          datasourceId: 153,
          intervalMs: 2000,
          maxDataPoints: 1150
        }],
        from: "1626214410740",
        to: "1626216378921"
      },
      systemPrompt: '您是金融市场技术分析专家,专注于加密货币市场分析。请分析狗狗币市场数据,重点关注:1. 市场趋势和动量分析 2. 价格模式识别(头肩顶、双底等) 3. 成交量与价格关系 4. 市场情绪评估 5. 短期和长期投资策略建议。请提供详细的技术分析报告。'
    }
  }
};

module.exports = config; 

配置获取技巧

浏览器复制curl命令(推荐):

  1. 在Grafana中执行查询
  2. 按F12打开开发者工具 → Network标签页
  3. 找到查询请求 → 右键 → Copy as cURL

HTTP API配置:

  1. 获取 Data 传参:进入图表 → "Query Inspector" → "JSON"解析 → 拷贝请求体(request)
  2. 获取 Url 和 Headers Token:通过 Network 面板查看请求参数,手动构造 HTTP 配置。

配置文件示例,可见:基础版配置远程真实配置

步骤4:开始使用

完全重启Cursor,然后体验智能分析:

👤 您:分析dogecoin_panel_2数据
🤖 AI:正在连接Grafana并分析...

👤 您:聚合分析dogecoin_panel_2、dogecoin_panel_7的数据
🤖 AI:同时查询多个指标并进行综合关联分析...

配置完成!

在这里插入图片描述

MCP工具清单

工具功能使用场景
analyze_query查询+AI分析需要专业建议
query_data原始数据查询仅需要数据
aggregate_analyze聚合分析多查询统一分析
batch_analyze批量分析 ⚠️ 不推荐输出格式有问题
list_queries查询列表查看配置
check_health健康检查状态监控
manage_sessions会话管理管理分析会话
list_data数据列表查看存储数据
server_status服务器状态服务器信息

工具使用方式

// AI助手会自动选择合适的工具
👤 "分析CPU使用情况" → 🤖 调用 analyze_query
👤 "聚合分析系统指标" → 🤖 调用 aggregate_analyze
👤 "获取内存数据" → 🤖 调用 query_data  
👤 "检查服务状态" → 🤖 调用 check_health
👤 "有哪些监控查询" → 🤖 调用 list_queries
👤 "批量分析多个指标" → 🤖 推荐调用 aggregate_analyze 替代

高级配置

配置支持:绝对路径、远程路径

1. 远程路径

支持通过HTTPS URL访问远程配置文件,适用于团队协作和多环境部署:

{
  "mcpServers": {
    "grafana": {
      "command": "grafana-mcp-analyzer",
      "env": {
        "CONFIG_PATH": "https://raw.githubusercontent.com/SailingCoder/grafana-mcp-analyzer/main/config/grafana-config-play.js",
        "CONFIG_MAX_AGE": "600"
      }
    }
  }
}

支持的远程存储:

  • 阿里云OSS: https://bucket.oss-cn-hangzhou.aliyuncs.com/config.js
  • 腾讯云COS: https://bucket-123.cos.ap-shanghai.myqcloud.com/config.js
  • AWS S3: https://bucket.s3.amazonaws.com/config.js
  • GitHub Raw: https://raw.githubusercontent.com/user/repo/main/config.js

注意,如下: ❌ GitHub页面 https://github.com/user/repo/blob/main/file.js 返回HTML页面 ✅ GitHub Raw https://raw.githubusercontent.com/user/repo/main/file.js 返回原始文件

2. 绝对路径

也支持配置配置本地绝对路径,快速配置分析:

{
  "mcpServers": {
    "grafana": {
      "command": "grafana-mcp-analyzer",
      "env": {
        "CONFIG_PATH": "/Users/your-username/project/grafana-config.js"
      }
    }
  }
}

环境变量说明

变量名默认值说明
CONFIG_PATH必填配置文件路径(本地路径或HTTPS URL)
CONFIG_MAX_AGE300远程配置缓存时间(秒),设为0禁用缓存

缓存特性:

  • 智能缓存:默认缓存5分钟,提升访问速度
  • 容错机制:网络失败时自动使用过期缓存
  • 自动清理:启动时自动清理过期缓存文件
  • 实时更新:设置CONFIG_MAX_AGE=0禁用缓存,每次获取最新配置
命令行选项
# 显示版本信息
grafana-mcp-analyzer -v
grafana-mcp-analyzer --version

# 显示帮助信息
grafana-mcp-analyzer -h
grafana-mcp-analyzer --help
环境变量配置
export GRAFANA_URL="https://your-grafana.com"
export GRAFANA_TOKEN="your-api-token"

配置示例

业务场景

电商业务分析
// 电商转化率分析
ecommerce_conversion: {
  curl: `curl 'api/ds/query' \\
    -X POST \\
    -H 'Content-Type: application/json' \\
    -d '{"queries":[{"refId":"A","expr":"rate(orders_total[5m]) / rate(page_views_total[5m]) * 100","range":{"from":"now-24h","to":"now"}}]}'`,
  systemPrompt: '您是电商业务分析专家,专注于转化率优化和用户购买行为分析。请分析销售转化率数据,重点关注:1. 转化率趋势变化和关键拐点 2. 高峰和低谷时段识别 3. 用户购买行为模式 4. 影响转化的关键因素 5. 转化率优化建议和A/B测试方案 6. 预期收益评估。请提供具体的业务改进建议。'
}
金融数据分析
// 交易量分析
finance_transactions: {
  curl: `curl 'api/ds/query' \\
    -X POST \\
    -H 'Content-Type: application/json' \\
    -d '{"queries":[{"refId":"A","expr":"sum(rate(transaction_amount_total[5m]))","range":{"from":"now-7d","to":"now"}}]}'`,
  systemPrompt: '您是金融数据分析专家,专长于交易风险控制和业务增长分析。请分析交易量数据,重点关注:1. 交易量趋势和周期性模式 2. 异常交易模式识别 3. 风险信号检测 4. 业务增长机会 5. 风控策略优化建议 6. 合规性评估。请提供风险控制和业务增长的平衡建议。'
},

// 收入分析
revenue_analysis: {
  curl: `curl 'api/ds/query' \\
    -X POST \\
    -H 'Content-Type: application/json' \\
    -d '{"queries":[{"refId":"A","expr":"sum(increase(revenue_total[1d]))","range":{"from":"now-90d","to":"now"}}]}'`,
  systemPrompt: '您是财务数据分析专家,专注于收入增长和盈利能力分析。请分析收入数据,重点关注:1. 收入趋势和增长模式分析 2. 收入来源结构和贡献度 3. 季节性和周期性因素影响 4. 收入预测和目标达成分析 5. 盈利能力和成本效益评估 6. 收入增长策略建议。'
}
用户行为分析
// 用户活跃度分析
user_activity: {
  curl: `curl 'api/ds/query' \\
    -X POST \\
    -H 'Content-Type: application/json' \\
    -d '{"queries":[{"refId":"A","expr":"count(increase(user_sessions_total[1h]))","range":{"from":"now-30d","to":"now"}}]}'`,
  systemPrompt: '您是用户行为分析专家,专注于用户留存和参与度优化。请分析用户活跃度数据,重点关注:1. 用户活跃度趋势和留存率 2. 用户行为模式和偏好 3. 用户生命周期分析 4. 流失风险用户识别 5. 用户参与度提升策略 6. 个性化推荐建议。'
},

// 内容消费分析
content_engagement: {
  curl: `curl 'api/ds/query' \\
    -X POST \\
    -H 'Content-Type: application/json' \\
    -d '{"queries":[{"refId":"A","expr":"rate(content_views_total[5m])","range":{"from":"now-7d","to":"now"}}]}'`,
  systemPrompt: '您是内容运营分析专家,专注于内容策略和用户参与度优化。请分析内容消费数据,重点关注:1. 内容消费趋势和热点识别 2. 用户内容偏好分析 3. 内容质量评估 4. 内容推荐优化 5. 创作者生态健康度 6. 内容策略建议。'
}
安全分析
// 安全日志分析
security_logs: {
  url: "api/ds/es/query",
  method: "POST",
  data: {
    es: {
      index: "app-logs-*",
      query: {
        "query": {
          "bool": {
            "must": [
              {"term": {"level": "ERROR"}},
              {"range": {"@timestamp": {"gte": "now-1h"}}}
            ]
          }
        }
      }
    }
  },
  systemPrompt: '您是网络安全分析专家,专注于安全威胁检测和风险评估。请分析安全日志数据,重点关注:1. 异常访问模式和潜在威胁识别 2. 安全事件趋势和攻击模式 3. 风险等级评估和紧急响应建议 4. 安全策略优化建议 5. 合规性检查和审计建议 6. 安全监控和告警策略。'
}
IoT设备监控
// IoT设备监控
iot_devices: {
  curl: `curl 'api/ds/query' \\
    -X POST \\
    -H 'Content-Type: application/json' \\
    -d '{"queries":[{"refId":"A","expr":"avg(temperature_celsius)","range":{"from":"now-24h","to":"now"}}]}'`,
  systemPrompt: '您是IoT数据分析专家,专注于设备监控和智能运维。请分析IoT设备数据,重点关注:1. 设备健康状态和性能趋势 2. 异常设备和故障预警 3. 设备使用模式和优化机会 4. 能耗分析和节能建议 5. 设备生命周期管理 6. 预测性维护策略。'
},

// 传感器数据分析
sensor_data: {
  curl: `curl 'api/ds/query' \\
    -X POST \\
    -H 'Content-Type: application/json' \\
    -d '{"queries":[{"refId":"A","expr":"rate(sensor_readings_total[10m])","range":{"from":"now-12h","to":"now"}}]}'`,
  systemPrompt: '您是传感器数据分析专家,专注于环境监控和数据质量分析。请分析传感器数据,重点关注:1. 数据质量和传感器可靠性评估 2. 环境参数变化趋势和异常检测 3. 传感器校准和维护建议 4. 数据采集优化策略 5. 预警阈值设置建议 6. 传感器网络优化方案。'
}
用户转化漏斗分析(聚合分析示例)
// 用户转化漏斗 - 页面浏览
user_funnel_views: {
  curl: `curl 'api/ds/query' \\
    -X POST \\
    -H 'Content-Type: application/json' \\
    -d '{"queries":[{"refId":"A","expr":"rate(page_views_total[5m])","range":{"from":"now-24h","to":"now"}}]}'`,
  systemPrompt: '您是转化漏斗分析专家。请分析页面浏览量数据,重点关注访问流量趋势、用户获取效果、流量来源分析。'
},

// 用户转化漏斗 - 用户注册
user_funnel_signups: {
  curl: `curl 'api/ds/query' \\
    -X POST \\
    -H 'Content-Type: application/json' \\
    -d '{"queries":[{"refId":"A","expr":"rate(user_signups_total[5m])","range":{"from":"now-24h","to":"now"}}]}'`,
  systemPrompt: '您是用户注册分析专家。请分析用户注册数据,重点关注注册转化率、注册流程优化、用户获取成本分析。'
},

// 用户转化漏斗 - 购买转化
user_funnel_purchases: {
  curl: `curl 'api/ds/query' \\
    -X POST \\
    -H 'Content-Type: application/json' \\
    -d '{"queries":[{"refId":"A","expr":"rate(purchases_total[5m])","range":{"from":"now-24h","to":"now"}}]}'`,
  systemPrompt: '您是购买转化分析专家。请分析购买数据,重点关注购买转化率、客单价分析、购买行为模式。'
}

// 使用方式:
// 👤 您:使用aggregate_analyze综合分析用户转化漏斗:user_funnel_views, user_funnel_signups, user_funnel_purchases
// 🤖 AI:将同时分析三个环节的数据,提供完整的漏斗分析和优化建议

系统监控

指标监控配置
// 指标查询
prometheus_metrics: {
  curl: `curl 'api/ds/query' \\
    -X POST \\
    -H 'Content-Type: application/json' \\
    -d '{"queries":[{
      "refId":"A",
      "expr":"node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes * 100",
      "range":{"from":"now-2h","to":"now"}
    }]}'`,
  systemPrompt: `内存使用率专家分析:重点关注内存泄漏风险、使用趋势、异常波动和优化建议。`
}
日志分析配置
// Elasticsearch日志查询
error_logs: {
  url: "api/ds/es/query", 
  method: "POST",
  data: {
    es: {
      index: "app-logs-*",
      query: {
        "query": {
          "bool": {
            "must": [
              {"term": {"level": "ERROR"}},
              {"range": {"@timestamp": {"gte": "now-1h"}}}
            ]
          }
        }
      }
    }
  },
  systemPrompt: `日志分析专家:识别错误模式、频率分析、影响评估和问题定位建议。`
}
网络监控配置
// 网络延迟监控
network_latency: {
  curl: `curl 'api/ds/query' \\
    -X POST \\
    -d '{"queries":[{
      "refId":"A", 
      "expr":"histogram_quantile(0.95, rate(http_request_duration_seconds_bucket[5m]))",
      "range":{"from":"now-30m","to":"now"}
    }]}'`,
  systemPrompt: `网络性能专家:分析P95延迟、识别慢请求、网络瓶颈定位和优化策略。`
}
数据库监控配置
// MySQL性能监控
mysql_performance: {
  url: "api/ds/mysql/query",
  method: "POST", 
  data: {
    sql: "SELECT * FROM performance_schema.events_statements_summary_by_digest ORDER BY avg_timer_wait DESC LIMIT 10"
  },
  systemPrompt: `数据库性能专家:慢查询分析、索引优化建议、查询性能趋势评估。`
}

常见问题

无法连接到Grafana服务
  • 检查Grafana地址格式:必须包含https://http://
  • 验证API密钥有效性:确保未过期且有足够权限
  • 测试网络连通性和防火墙设置
AI提示找不到MCP工具
  • 完全退出Cursor并重新启动
  • 检查配置文件路径是否正确
  • 确保Node.js版本 ≥ 18
查询执行失败或超时
  • 增加timeout设置
  • 检查数据源连接状态
  • 数据量过大时,缩小时间范围

文章推荐

许可证

MIT 开源协议。详见 LICENSE 文件。

Server Config

{
  "mcpServers": {
    "grafana": {
      "command": "npx grafana-mcp-analyzer",
      "env": {
        "CONFIG_PATH": "https://raw.githubusercontent.com/SailingCoder/grafana-mcp-analyzer/main-remote/config/grafana-config-play.js"
      }
    }
  }
}
Recommend Clients
TraeBuild with Free GPT-4.1 & Claude 3.7. Fully MCP-Ready.
HyperChatHyperChat is a Chat client that strives for openness, utilizing APIs from various LLMs to achieve the best Chat experience, as well as implementing productivity tools through the MCP protocol.
CursorThe AI Code Editor
ZedCode at the speed of thought – Zed is a high-performance, multiplayer code editor from the creators of Atom and Tree-sitter.
ChatWiseThe second fastest AI chatbot™
y-cli 🚀A Tiny Terminal Chat App for AI Models with MCP Client Support
Cline – #1 on OpenRouterAutonomous coding agent right in your IDE, capable of creating/editing files, executing commands, using the browser, and more with your permission every step of the way.
Y GuiA web-based graphical interface for AI chat interactions with support for multiple AI models and MCP (Model Context Protocol) servers.
MCP ConnectEnables cloud-based AI services to access local Stdio based MCP servers via HTTP requests
Cherry Studio🍒 Cherry Studio is a desktop client that supports for multiple LLM providers.
WindsurfThe new purpose-built IDE to harness magic
Visual Studio Code - Open Source ("Code - OSS")Visual Studio Code
A Sleek AI Assistant & MCP Client5ire is a cross-platform desktop AI assistant, MCP client. It compatible with major service providers, supports local knowledge base and tools via model context protocol servers .
chatmcpChatMCP is an AI chat client implementing the Model Context Protocol (MCP).
Continue⏩ Create, share, and use custom AI code assistants with our open-source IDE extensions and hub of models, rules, prompts, docs, and other building blocks
Refact.aiOpen-source AI Agent for VS Code and JetBrains that autonomously solves coding tasks end-to-end.
LutraLutra is the first MCP compatible client built for everyone
Roo Code (prev. Roo Cline)Roo Code (prev. Roo Cline) gives you a whole dev team of AI agents in your code editor.
DeepChatYour AI Partner on Desktop
MODELSCOPE---MODELSCOPE-PLATFORM-MCP-SERVICES
MCP PlaygroundCall MCP Server Tools Online