杂谈

Dify与Prometheus集成实现AI 驱动的 Prometheus 自然语言查询与可视化平台-思路

核心实现原理

1. 整体流程

整个系统是一个 **“自然语言 → PromQL → 监控数据 → 报告 / 图表 / Excel”** 的闭环工作流,核心是用 AI 降低 Prometheus 的使用门槛。

2. 关键模块与原理

  1. 意图识别与分支路由
    • 用户输入自然语言后,通过条件分支节点判断意图:
      • 包含 “查询 / 监控 / CPU / 内存” 等关键词 → 进入监控查询分支
      • 包含 “指标 / 元数据” 等关键词 → 进入指标元数据查询分支
      • 其他情况 → 进入问题解决或引导分支
    • 原理:通过关键词匹配,将用户需求精准路由到对应的处理链路,避免无效执行。
  2. 自然语言转 PromQL
    • 第一个 LLM 节点(如 deepseek-chat)接收用户查询,生成合法的 PromQL 语句。
    • 原理:基于大模型的代码生成与领域知识,将中文需求(如 “查所有实例的 CPU 使用率”)转换为 PromQL(如 100 - (avg by (instance) (irate(node_cpu_seconds_total{mode="idle"}[5m])) * 100))。

演示图片

3. PromQL 执行与数据获取

  • 通过 EXECUTEPROMQLQUERY 工具节点,调用 Prometheus API 执行生成的 PromQL,获取原始监控数据(JSON 格式)。
  • 原理:封装 Prometheus 的 HTTP API,实现 PromQL 的远程执行与结果返回。

4. 数据处理与多格式输出

  • Markdown 表格与 Excel 导出
    • MARKDOWN作用 节点将 JSON 数据转换为标准 Markdown 表格。
    • MARKDOWN表格 → XLSX 节点将 Markdown 转换为 Excel 文件,供用户下载。
  • 5.ECharts 可视化
    • ECHARTS生成 节点将 JSON 数据转换为图表所需的标题、数据、X 轴格式。
    • ROOKIE_DATA_ALCHEMY 节点根据图表类型(柱状图 / 折线图等)生成可视化图表。
  • 原理:通过格式转换与可视化组件,将原始监控数据转化为人类易读的表格和图表。

结果整合与回复

  • 通用查询整合 等 LLM 节点将工具返回的数据整理为自然语言报告,结合表格 / 图表,通过 “直接回复” 节点返回给用户。
  • 原理:利用大模型的文本生成能力,将结构化数据转化为自然语言,提升用户体验。

演示图片

总结:

降低门槛:无需掌握 PromQL,用自然语言即可查询监控数据。

提升效率:一键生成报告、图表和 Excel,减少手动整理时间。

增强可访问性:非技术人员也能自主使用 Prometheus 监控。

Prev
No Comments

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注