惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

MyScale Blog
MyScale Blog
L
LINUX DO - 最新话题
云风的 BLOG
云风的 BLOG
Know Your Adversary
Know Your Adversary
小众软件
小众软件
C
CERT Recently Published Vulnerability Notes
V
V2EX
The Hacker News
The Hacker News
P
Palo Alto Networks Blog
D
DataBreaches.Net
C
Cyber Attacks, Cyber Crime and Cyber Security
Microsoft Azure Blog
Microsoft Azure Blog
GbyAI
GbyAI
AWS News Blog
AWS News Blog
Forbes - Security
Forbes - Security
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
J
Java Code Geeks
美团技术团队
C
Cybersecurity and Infrastructure Security Agency CISA
Project Zero
Project Zero
Recorded Future
Recorded Future
宝玉的分享
宝玉的分享
Hacker News - Newest:
Hacker News - Newest: "LLM"
L
LINUX DO - 热门话题
W
WeLiveSecurity
V
Visual Studio Blog
Schneier on Security
Schneier on Security
有赞技术团队
有赞技术团队
P
Proofpoint News Feed
aimingoo的专栏
aimingoo的专栏
V2EX - 技术
V2EX - 技术
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Microsoft Security Blog
Microsoft Security Blog
U
Unit 42
N
Netflix TechBlog - Medium
F
Fortinet All Blogs
博客园_首页
I
InfoQ
Spread Privacy
Spread Privacy
博客园 - 叶小钗
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
L
LangChain Blog
月光博客
月光博客
I
Intezer
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
A
Arctic Wolf
S
SegmentFault 最新的问题
www.infosecurity-magazine.com
www.infosecurity-magazine.com
T
The Exploit Database - CXSecurity.com
Google DeepMind News
Google DeepMind News

博客园 - 左扬

VictoriaMetrics 1.146.0 源码专题【左扬精讲】—— VictoriaLogs 协同:Metrics 到 Logs 的一体化监控 VictoriaMetrics 1.146.0 源码专题【左扬精讲】—— 源码阅读路线图:如何高效阅读 VM 源码 VictoriaMetrics 1.146.0 源码专题【左扬精讲】—— 开源生态:VM 在 CNCF 生态中的位置 VictoriaMetrics 1.146.0 源码专题【左扬精讲】—— 与其他 TSDB 对比:Prometheus/InfluxDB/Thanos/VM VictoriaMetrics 1.146.0 源码专题【左扬精讲】—— 写入吞吐/查询延迟/内存占用的数学模型 VictoriaMetrics 1.146.0 源码专题【左扬精讲】—— 模块依赖图——从 import 语句看组件关系 VictoriaMetrics 1.146.0 源码专题【左扬精讲】—— Goroutine 池/atomic/零拷贝/sync.Pool VictoriaMetrics 1.146.0 源码专题【左扬精讲】—— 多租户架构——accountID/projectID 与 tenant 隔离 VictoriaMetrics 1.146.0 源码专题【左扬精讲】—— 版本演进:1.146.0 LTS 重大更新解析 VictoriaMetrics 1.146.0 源码专题【左扬精讲】—— 整体数据流:一条监控数据的完整生命周期 VictoriaMetrics 1.146.0 源码专题【左扬精讲】—— 架构演进:从 TSDB 到 MergeSet 的设计取舍 VictoriaMetrics 1.146.0 源码专题【左扬精讲】—— Single-Node vs Cluster 模式本质区别 VictoriaMetrics 1.146.0 源码【左扬精讲】—— 开篇总览 Rust 专题【左扬精讲】—— 从语法到灵魂:Ownership、Borrowing 与多语言对比 kubernetes 源码【左扬精讲】—— kube-scheduler 启动流程源码分析 Rust 专题【左扬精讲】—— 选择控制语句、运算符与格式化输出 Rust 专题【左扬精讲】—— 所有权详解 Rust 专题【左扬精讲】—— 作用域详解 Rust 专题【左扬精讲】—— 变量、常量与标量数据类型 kubernetes 源码 / Operator 专题【左扬精讲】—— Deployment Controller 源码分析:从对象创建到滚动更新 kubernetes 源码 / Operator 专题【左扬精讲】—— Operator 开发中的 Webhook:从准入控制到生产部署 Kubernetes源码 / Operator 专题【左扬精讲】—— 实现 Application Controller:从零构建生产级控制器 Kubernetes 编程 / Operator 专题【左扬精讲】—— 定义 Application 资源 + 添加自定义新 API 完整指南 Kubernetes 源码【左扬精讲】—— kube-scheduler(调度专题 · 八):内部架构与核心组件 Kubernetes 源码【左扬精讲】—— kube-scheduler(调度专题 · 八): —— 从入口到调度的全链路源码剖析(k8s v1.36.1) DeepSeek-R1 多模态 R1 / VLM-GRPO【左扬精讲】—— Qwen2-VL 微调与视觉推理强化学习实战 DeepSeek-R1 工业 RAG + 微调混合系统【左扬精讲】—— R1 系列收官之作:从 Prompt → RAG → 微调 选型决策树 DeepSeek-R1 推理时扩展【左扬精讲】—— o1 / R1 慢思考机制:Self-Consistency + ToT + PRM 详解 DeepSeek-R1 端侧 LLM 工程【左扬精讲】—— llama.cpp 调参与 Apple Silicon / 国产 NPU / Android 端侧落地全攻略 DeepSeek-R1 vLLM + k8s 生产部署【左扬精讲】—— 从单卡 7B 到 100 卡 671B MoE 集群的工业化部署实战 DeepSeek-R1 评估与系统(Evaluation & Systems)【左扬精讲】—— 从 GSM8K/MMLU 到 LLM-as-Judge 的工业级评估方法论 DeepSeek-R1 模型训练与算法【左扬精讲】—— GRPO 进阶算法:DAPO / PRIME / RLVR / PRM 四大 2025 前沿改进 DeepSeek-R1 模型训练与算法【左扬精讲】—— 数据蒸馏:用 DeepSeek-R1-671B 生成 800K 高质量 CoT 样本的完整流水线 DeepSeek-R1 优化与微调实战【左扬精讲】—— 从 R1 强化学习新范式到 GRPO 微调一站式入门 Kubernetes 源码【左扬精讲】—— kube-scheduler(调度专题 · 七):自定义插件开发实战 —— 手写一个 Score 插件并注册到集群 Kubernetes 源码【左扬精讲】—— kube-scheduler(调度专题 · 六):Scheduler Profile 与多调度器 —— 如何配置多个 profile 实现多租户、Coordinated LeaderElection Kubernetes 源码【左扬精讲】—— kube-scheduler(调度专题 · 五):SchedulingQueue 与 QueueingHint —— 三段队列的细节、v1.36 新引入的 QueueingHint 工作机制 Kubernetes 源码【左扬精讲】—— kube-scheduler(调度专题 · 四):抢占(Preemption)算法剖析 —— DefaultPreemption 如何选 victim、PodDisruptionBudget 如何约束 Kubernetes 源码【左扬精讲】—— kube-scheduler(调度专题 · 二):内置插件逐个精读 — NodeResourcesFit / NodeAffinity / TaintToleration / PodTopologySpread / VolumeBinding / InterPodAffinity Kubernetes 源码 / Operator 专题【左扬精讲】——kube-scheduler(调度专题):调度器内置插件 逐个精读 k8s 源码级精讲(二十六):调度器内置插件逐个精读 Kubernetes 源码 / Operator 专题【左扬精讲】——kube-scheduler(调度专题):调度器内置插件精读 — NodeResourcesFit / NodeAffinity / TaintToleration / PodTopologySpread / VolumeBinding / InterPodAffinity Kubernetes 源码 / Operator 专题【左扬精讲】——kube-scheduler(调度专题):Scheduling Framework 扩展点逐个源码拆解 Kubernetes 源码 / Operator 专题【左扬精讲】——kube-scheduler(调度专题):初识调度模型、内部架构与事件驱动机制 Kubernetes 编程 / client-go 专题【左扬精讲】—— 四种客户端:为什么、怎么选、怎么用 Kubernetes 编程 / Operator 专题【左扬精讲】—— controller-runtime、kubebuilder、operator-sdk 三大框架深度对比 Kubernetes 编程 / Operator 专题【左扬精讲】—— 深入理解 ManagedFields 字段冲突协调机制 Kubernetes 编程 / Operator 专题【左扬精讲】—— k8s Finalizers 深度解析:对象的生命周期与删除控制 Kubernetes 编程 / Operator 专题【左扬精讲】—— OwnerReference 字段与级联删除机制 Kubernetes 编程 / Operator 专题【左扬精讲】—— 深入学习 Server-Side Apply:managedFields 替代 last-applied-configuration 的演进方向 Kubernetes 编程 / Operator 专题【左扬精讲】—— k8s Annotations 与元数据体系(Operator 专题) Kubernetes 编程 / Operator 专题【左扬精讲】—— RESTMapper:把 Group / Version / Kind / Resource 四元组翻译成 REST 路径的"查字典"大师 Kubernetes 编程 / Operator 专题【左扬精讲】—— Converter 资源版本转换器 Kubernetes 编程 / Operator 专题【左扬精讲】—— Application 业务扩展:从单 Deployment 到多 Workload 的复合 Operator 演进 Kubernetes 编程 / Operator 专题【左扬精讲】—— OwnerReference / Finalizer / 准入控制:k8s 资源生命周期的三大支柱 Kubernetes 编程 / Operator 专题【左扬精讲】—— controller-runtime 框架内幕:从 Manager 到 Reconcile 的全栈拆解 Kubernetes 编程 / Operator 专题【左扬精讲】—— 生产级 Operator 最佳实践:并发安全、资源清理与高可用设计 Kubernetes 编程 / Operator 专题【左扬精讲】—— application-operator Reconcile 循环源码精讲:从 client-go Informer 到 workqueue 的全链路解剖 Kubernetes 编程 / Operator 专题【左扬精讲】—— 从零搭建一个 application-operator 新项目:脚手架、API 设计与基于原生 DeploymentStatus/ServiceStatus 的状态建模 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:生产级 Controller 实践:并发安全、资源清理与高可用设计 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析: Controller 调试与诊断工具:从日志分析到问题定位 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:DynamicClient 操作 CRD:无需代码生成的动态操作 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:控制器与 APIServer 完整交互流程:从 Watch 到缓存同步 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:错误处理与重试机制:WorkQueue 限速器详解 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:Leader 选举机制:高可用控制器的必备技能 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:Controller 开发模式完整实战 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:SharedInformerFactory 与等待缓存同步 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:从认证配置到 Deployment 操作 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:版本对应、架构组件与组件关系 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:Informer 源码深度解析:从底层原理到实战应用 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:Reflector 源码深度解析 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:ListWatcher 源码深度解析 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:Indexer 与 ThreadSafeStore 核心原理与源码深度剖析 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:DeltaFIFO 核心原理与源码深度剖析 Kubernetes 编程 / Operator 专题【左扬精讲】—— Client-go 源代码分析:workqueue 核心原理与实战 Kubernetes 编程 / Operator 专题【左扬精讲】—— runtime.Codec 资源编解码:serializer 与 codec 差异、编解码数据结构、codec 核心调用链路 Kubernetes 编程 / Operator 专题【左扬精讲】—— Scheme 资源注册机制全解 Kubernetes 编程 / Operator 专题【左扬精讲】—— Kubernetes 自定义资源的内部版本与外部版本:从源码看版本定义机制 Kubernetes 编程 / Operator 专题【左扬精讲】—— Kubernetes 1.36.1 核心 API 数据结构全解 Kubernetes 编程 / Operator 专题【左扬精讲】—— Kubernetes 构建过程 【AIOPS】一文读懂LLM【左扬精讲】:从诞生到普及,解锁大语言模型的核心密码 【AIOPS】AI Agent 专题【左扬精讲】核心功能篇:MCP-VictoriaMetrics Hooks 源码精讲:Hooks 可观测性的无侵入式实现 【AIOPS】AI Agent 专题【左扬精讲】核心功能篇:MCP-VictoriaMetrics Golang 配置解析源码精讲 ——SRE 自定义 Agent 核心技巧 【AIOPS】AI Agent 专题【左扬精讲】核心功能篇:MCP-VictoriaMetrics Golang 并发模型解析 ——SRE 应对高并发采集的调优思路 OpenTelemetry 开发实战【左扬精讲】—— 云原生可观测体系构建与分布式追踪二次开发 Kubernetes 编程 / Operator 专题【左扬精讲】—— Operator 开发实战项目 7 —— 基于流量预测模型的智能弹性扩缩容 Operator 实战(AIOps 模型训练与智能扩容(下篇)—— 预测式弹性扩缩容 Operator 落地实现) Kubernetes 编程 / Operator 专题【左扬精讲】—— Operator 开发实战项目 7 —— 基于流量预测模型的智能弹性扩缩容 Operator 实战(AIOps 模型训练与智能扩容(上篇)—— 时序预测模型构建与离线训练) Kubernetes 编程 / Operator 专题【左扬精讲】—— Operator 开发实战项目 6 —— 基于运维专家知识库的智能故障诊断与排查 Operator 实战 Kubernetes 编程 / Operator 专题【左扬精讲】—— Operator 开发实战项目 5 —— 基于大语言模型(LLM)的实时日志流智能监测 Operator 实现 Kubernetes 编程 / Operator 专题【左扬精讲】—— Operator 开发实战项目 4 —— 基于 Operator 实现大模型私有化部署与管理 Kubernetes 编程 / Operator 专题【左扬精讲】—— Operator 开发实战项目 3(上篇)—— 面向 AI / 算力调度场景:GPU 竞价实例资源池统一调度管理 Operator 开发 Kubernetes编程 / Operator专题【左扬精讲】—— Operator 开发实战项目 2 —— 面向零售 / 电商潮汐流量难题:多云多集群数据中心级全链路弹性伸缩 DataCenter Scaler Operator 从 0 到 1 全链路开发 Kubernetes编程 / Operator专题【左扬精讲】—— 深入理解Kubebuilder注解:为什么Operator开发离不开这些特殊注释 Kubernetes编程 / Operator专题【左扬精讲】—— Operator 开发实战项目1 —— Applicaion Operator(通用应用生命周期管理 Operator 实战) Pod 镜像拉取失败?kubectl edit pods修改镜像地址的底层原理与实操 (该方法仅为临时应急方案,并非长期解决方案) Kubernetes编程/Operator专题精讲—— 理解控制器模式 —— 控制器模式的核心原理与实现逻辑(从原理到实践) 【AIOPS】AI Agent 专题【左扬精讲】模型微调实战:一站式平台 LLaMA-Factory 【AIOPS】AI Agent 专题【左扬精讲】基于 k8s+vLLM+Ray 分布式部署全指南:架构设计、资源调度与性能优化 【AIOPS】AI Agent专题【左扬精讲】非量化版DeepSeek分布式部署全指南:精度保障、显存规划与Ollama/vLLM选型 【AIOPS】AI Agent 专题【左扬精讲】零开发框架实现 ReAct Agent(Go SRE友好)
【AIOPS】AI Agent 专题【左扬精讲】基础架构篇:MCP-VictoriaMetrics Golang 源码整体架构拆解 ——SRE 必懂的核心模块与数据流
左扬 · 2026-04-06 · via 博客园 - 左扬

【AIOPS】AI Agent 专题【左扬精讲】基础架构篇:MCP-VictoriaMetrics Golang 源码整体架构拆解 ——SRE 必懂的核心模块与数据流

https://github.com/VictoriaMetrics/mcp-victoriametrics/tree/v1.20.1

一、背景前沿

        在 AIGC 技术深度融入可观测性体系的当下,VictoriaMetrics 凭借高性能、轻量化、易扩展的特性,已成为云原生场景下时序数据存储与分析的核心底座,但 大语言模型(LLM)/AI 工具与 VictoriaMetrics 高效协同的落地难题,成为可观测性能力升级的关键瓶颈

        一方面,原生 VictoriaMetrics 虽提供覆盖指标查询、标签分析、告警规则调试、基数统计、查询语句解析等全维度的只读 API,但这些 API 分散在不同端点,交互逻辑、参数规范、返回格式不统一,工程师手动对接已需大量适配工作,而面向 LLM/AI 工具时,这种“碎片化”特性更会导致模型无法精准理解 API 语义、难以自动化拼接有效请求,甚至因参数格式错误、接口逻辑不清晰,完全丧失与 VictoriaMetrics 交互的能力;

        另一方面,LLM 交互依赖标准化的上下文协议与结构化的能力封装,原生 API 既无适配自然语言交互的设计,也缺乏内置的文档解释、能力索引能力,即便人工介入,也需反复查阅官方文档、调试 API 调用逻辑,极大降低了 AI 驱动的监控分析、故障排查效率。

        为解决 LLM/AI 工具与 VictoriaMetrics 对接的核心痛点,VictoriaMetrics 生态推出了 Model Context Protocol(MCP)协议,并落地了 mcp-victoriametrics下称 MCP-VM)v1.20.1 版本 —— 作为 VictoriaMetrics 专属的 MCP 服务器实现,其核心定位是为 LLM/AI 工具与 VictoriaMetrics 搭建标准化、可交互、易理解的协议层桥梁,彻底打通大模型与时序数据库的协同链路。

        MCP-VM 针对 AI 交互的核心痛点提供了全方位解决方案:

    1. 能力统一封装:VictoriaMetrics 几乎所有只读 API(涵盖 VMUI 支持的全部功能:指标查询与可视化、标签 / 序列导出、告警规则测试、实例参数查看、查询语句解析与调试、重标记规则验证、数据基数分析等)封装为符合 MCP 协议的标准化接口,让 LLM 无需理解分散的 API 细节,只需通过统一协议即可调用全量监控分析能力;
    2. AI 友好的交互支撑:适配 LLM 的上下文交互范式,支持模型基于自然语言指令自动转化为合规的 VictoriaMetrics 操作(如将 分析近 24 小时 CPU 指标的基数异常 转化为对应的查询 API 调用),同时提供查询语句的解析、解释、美化能力,让模型能精准理解查询逻辑、定位问题;
    3. 离线文档与语义检索:内置最新的 VictoriaMetrics 全量离线文档,支持 LLM 无需联网即可检索接口说明、使用规范、故障排查指南,解决模型因信息缺失导致的交互失效问题;
    4. 一站式可观测性交互界面:提供可视化 UI 与 Streamable HTTP 模式,既支持工程师调试 AI 与 VictoriaMetrics 的交互逻辑,也为自动化工具提供统一的接入入口,实现与 VictoriaMetrics Cloud 的无缝集成。

        简言之,MCP-VM 本质上是 VictoriaMetrics 面向 AI 时代的交互中间件—— 它将原本仅面向人工调用的监控能力,转化为 LLM/AI 工具可理解、可调用、可解释的标准化能力集,解锁了 自然语言查询监控指标、AI 自动调试告警规则、智能分析数据基数瓶颈 等高级自动化场景。

        对于 SRE 而言,深入理解 MCP-VM v1.20.1 版本的 Golang 源码架构与数据流,是保障其与 VictoriaMetrics 集成稳定性、定制化扩展 AI 交互能力、充分释 大模型 + 可观测 协同价值的核心前提。本文将聚焦该版本,从源码层面拆解其整体架构、核心模块与数据流转逻辑。

二、MCP-VM 核心定位与版本特性

2.1、核心定位

        MCP(Model Context Protocol,模型上下文协议)是面向 LLM/AI 工具与数据存储系统交互设计的标准化协议,其核心目标是让大模型能以统一、可理解的方式访问各类数据系统的能力与数据,而非解决跨监控体系的指标格式兼容问题。

        而 MCP-VM 作为 MCP 协议在 VictoriaMetrics 生态的专属实现,是连接 LLM/AI Agent 与 VictoriaMetrics 实例的 翻译官 和 能力网关,核心职责可概括为三层:

      • 协议适配层:接收 LLM/AI 工具基于 MCP 协议发起的交互请求,将其转化为 VictoriaMetrics 原生 API 调用,同时把原生 API 的返回结果标准化为 MCP 协议格式,反向输出给大模型,解决模型不懂 VictoriaMetrics 接口的核心问题
      • 能力抽象层:VictoriaMetrics 的只读能力进行抽象与封装,屏蔽底层 API 分散、格式不统一的细节,为 AI 工具提供 原子化 的监控操作能力(如 查询指标、解析 PromQL、分析基数 等),让模型只需关注业务意图,无需关注技术实现
      • AI 增强层:内置离线文档检索、PromQL 解释、交互提示词优化等 AI 友好能力,弥补大模型在 VictoriaMetrics 专业知识上的缺失,提升模型与 VictoriaMetrics  交互的准确性和效率。

2.2、v1.20.1 版本核心特性

https://github.com/VictoriaMetrics/mcp-victoriametrics/tree/v1.20.1 围绕让大模型更好地操作 VictoriaMetrics 这一核心,强化了多项 AI 适配能力:

      • 全量只读能力覆盖:完整支持 VMUI 所有只读功能的 MCP 封装,包括指标查询、标签分析、告警规则测试、数据基数统计、重标记规则调试等,确保大模型能覆盖 VictoriaMetrics 日常运维的全场景需求;
      • 离线文档语义检索:内置结构化的 VictoriaMetrics 官方文档,支持基于自然语言的语义检索(如模型提问 如何排查 VM 基数爆炸问题,可直接返回对应的离线文档片段),无需联网即可为模型提供专业知识支撑;
      • PromQL 智能解析:新增 PromQL 语句的 解释 -> 美化 -> 纠错 能力,大模型可提交待分析的 PromQL,MCP-VM 会返回语句的逻辑说明、语法优化建议、潜在错误提示,帮助模型生成更精准的查询语句;
      • Cloud 无缝集成:适配 VictoriaMetrics Cloud 版本的 API 特性,支持 AI 工具直接对接云环境中的 VM 实例,覆盖私有化部署与云原生场景;
      • 调试友好的 UI 界面:提供内置 Web UI,工程师可模拟 LLM 发送 MCP 请求,调试交互逻辑、验证返回结果,降低 AI 集成场景的排障成本。

三、MCP-VM 源码整体架构

       基于 mcp-victoriametrics 的源码目录结构(https://github.com/VictoriaMetrics/mcp-victoriametrics/tree/v1.20.1/cmd/mcp-victoriametrics),其整体架构可分为 核心驱动层MCP 协议层VM 能力适配层AI 增强层基础工具层 五大模块,各模块职责与核心文件对应关系如下:

3.1、核心驱动层:程序入口与生命周期管理

https://github.com/VictoriaMetrics/mcp-victoriametrics/blob/v1.20.1/cmd/mcp-victoriametrics/main.go

https://github.com/VictoriaMetrics/mcp-victoriametrics/blob/v1.20.1/cmd/mcp-victoriametrics/landing.go

    • https://github.com/VictoriaMetrics/mcp-victoriametrics/blob/v1.20.1/cmd/mcp-victoriametrics/main.go -作为程序入口,负责初始化配置、启动 HTTP 服务、注册 MCP 协议处理器、加载所有 VM 能力适配模块,是整个服务的启动器;
    • https://github.com/VictoriaMetrics/mcp-victoriametrics/blob/v1.20.1/cmd/mcp-victoriametrics/landing.go -> 提供内置 Web UI 的核心逻辑,实现 AI 交互调试界面的渲染、请求转发,支撑工程师可视化调试 MCP 与 VM 的交互过程。

3.2、MCP 协议层:标准化交互的核心

该层是 MCP-VM 对接 LLM 的核心,负责实现 MCP 协议的请求解析、响应封装、错误处理:

      • 接收 LLM/AI Agent 发送的 MCP 格式请求(如 JSON 格式的 指标查询指令),解析出具体的操作意图(如 查询 cpu_usage 指标近 1 小时数据);
      • 将解析后的意图传递给 VM 能力适配层,待获取结果后,按照 MCP 协议规范封装为标准化响应(包含数据、文档、解释等信息),返回给 AI 工具;
      • 该层的核心价值是屏蔽 LLM 与 VM 之间的协议差异,让模型无需关注 VM 原生 API 的细节。

3.3、VM 能力适配层:对接 VictoriaMetrics 原生 API

https://github.com/VictoriaMetrics/mcp-victoriametrics/blob/v1.20.1/cmd/mcp-victoriametrics/tools/access_tokens.go

https://github.com/VictoriaMetrics/mcp-victoriametrics/blob/v1.20.1/cmd/mcp-victoriametrics/tools/active_queries.go

https://github.com/VictoriaMetrics/mcp-victoriametrics/blob/v1.20.1/cmd/mcp-victoriametrics/tools/alerts.go

https://github.com/VictoriaMetrics/mcp-victoriametrics/blob/v1.20.1/cmd/mcp-victoriametrics/tools/explain_query.go

https://github.com/VictoriaMetrics/mcp-victoriametrics/blob/v1.20.1/cmd/mcp-victoriametrics/tools/metrics.go

https://github.com/VictoriaMetrics/mcp-victoriametrics/blob/v1.20.1/cmd/mcp-victoriametrics/tools/ 目录层是 MCP-VM 的能力翻译器,每个文件对应一类 VictoriaMetrics 原生 API 的适配逻辑:

      • explain_query.go:封装 PromQL 解析、解释、美化能力,为 AI 提供查询语句的智能分析支持;
      • metrics.go/labels.go/labelvalues.go:适配指标、标签、标签值的查询 / 导出 API,实现 AI 对 VM 时序数据的基础访问;
      • alerts.go:适配告警规则、告警状态的查询 / 测试 API,支持 AI 调试告警配置;
      • downsampling_filters_debug.go/metric_relabel_debug.go:适配降采样、重标记规则的调试 API,满足 AI 对 VM 数据处理规则的分析需求;
      • docs.go:对接内置离线文档,为 AI 提供文档检索的底层支撑。

3.4、AI 增强层:提升模型交互效果

https://github.com/VictoriaMetrics/mcp-victoriametrics/blob/v1.20.1/cmd/mcp-victoriametrics/prompts/documentation.go

https://github.com/VictoriaMetrics/mcp-victoriametrics/blob/v1.20.1/cmd/mcp-victoriametrics/prompts/rarely_used_cardinal_metrics.go

https://github.com/VictoriaMetrics/mcp-victoriametrics/blob/v1.20.1/cmd/mcp-victoriametrics/utils/utils.go

      • prompts/ 目录:提供 AI 交互的提示词模板、离线文档结构化数据、冷门基数指标的解释逻辑,优化模型的交互意图理解。
        • https://github.com/VictoriaMetrics/mcp-victoriametrics/blob/v1.20.1/cmd/mcp-victoriametrics/prompts/documentation.go -> 管理离线文档的加载、检索、匹配逻辑,支持基于自然语言的文档查询;
        • https://github.com/VictoriaMetrics/mcp-victoriametrics/blob/v1.20.1/cmd/mcp-victoriametrics/prompts/rarely_used_cardinal_metrics.go -> 为 AI 提供冷门基数指标的解释,避免模型因指标认知不足导致的交互错误;
      • utils/utils.go 文件:提供字符串处理、语义匹配、数据格式化等工具函数,支撑 AI 交互过程中的数据清洗、语义解析。

3.5、基础工具层:配置与通用能力

https://github.com/VictoriaMetrics/mcp-victoriametrics/blob/v1.20.1/cmd/mcp-victoriametrics/config/config.go

https://github.com/VictoriaMetrics/mcp-victoriametrics/blob/v1.20.1/cmd/mcp-victoriametrics/hooks/hooks.go

https://github.com/VictoriaMetrics/mcp-victoriametrics/blob/v1.20.1/cmd/mcp-victoriametrics/logging/logger.go

https://github.com/VictoriaMetrics/mcp-victoriametrics/blob/v1.20.1/cmd/mcp-victoriametrics/logging/middleware.go

      • config/:管理服务配置(如 VM 实例地址、端口、认证信息),支持配置文件 / 命令行参数加载,为 AI 对接不同 VM 实例提供灵活配置;
      • hooks/:提供服务生命周期钩子(如启动前初始化、关闭前清理),保障服务稳定性;
      • logging/:实现结构化日志,记录 AI 交互过程中的请求、响应、错误信息,方便 SRE 排查 AI 集成场景的问题。

四、MCP-VictoriaMetrics 核心数据流(AI 调用 VM 能力场景)

以  LLM 发送自然语言指令:"查询近 1 小时 k8s 集群 node_cpu_usage 指标的 95 分位值,并解释对应的 PromQL 语句”为例,拆解 MCP-VictoriaMetrics 的核心数据流:

4.1、步骤 1:MCP 请求接收与解析

LLM/AI Agent 将自然语言指令转化为 MCP 协议格式的请求(包含操作类型、参数、上下文),发送至 MCP-VictoriaMetrics 的 HTTP 服务端口;

MCP-VictoriaMetrics 的核心驱动层(main.go 注册的处理器)接收请求,交由 MCP 协议层解析,提取出核心意图:“查询 node_cpu_usage 指标(时间范围 1h,统计 95 分位)+ 解释 PromQL”

4.2、步骤 2:VM 能力适配层调用原生 API

MCP 协议层 将解析后的意图转发至 VictoriaMetrics 能力适配层:

    • 首先调用 https://github.com/VictoriaMetrics/mcp-victoriametrics/blob/v1.20.1/cmd/mcp-victoriametrics/tools/metrics.go 中的适配逻辑,拼接符合 VictoriaMetrics 要求的 PromQL 语句:quantile(0.95, node_cpu_usage[1h]),并调用 VictoriaMetrics 原生查询 API;
    • 同时调用 https://github.com/VictoriaMetrics/mcp-victoriametrics/blob/v1.20.1/cmd/mcp-victoriametrics/tools/explain_query.go 中的逻辑,对生成的 PromQL 进行语法解析、逻辑解释,生成自然语言说明。

4.3、步骤 3:结果标准化与 AI 增强

    • VictoriaMetrics 原生 API 返回指标数据后,VictoriaMetrics 能力适配层将原始数据格式化;
    • AI 增强层(https://github.com/VictoriaMetrics/mcp-victoriametrics/tree/v1.20.1/cmd/mcp-victoriametrics/prompts + https://github.com/VictoriaMetrics/mcp-victoriametrics/tree/v1.20.1/cmd/mcp-victoriametrics/utils)补充 PromQL 解释、相关文档片段(如 quantile 函数的使用说明),形成完整的响应数据。

4.4、步骤 4:MCP 响应返回

    • MCP 协议层将格式化后的指标数据、PromQL 解释、文档片段封装为 MCP 协议格式的响应,返回给 LLM/AI Agent;
    • LLM 基于该响应,可进一步生成自然语言的分析结果(如 近 1 小时 k8s 集群 node_cpu_usage 95 分位值为 0.78,对应的 PromQL 语句通过 quantile 函数计算分位数,时间范围覆盖近 1 小时...)。

五、SRE 核心关注点与扩展建议

5.1、核心关注点

    1. 协议兼容性:MCP 协议版本与 LLM/AI Agent 的适配性,需确保 MCP-VictoriaMetrics 解析的请求格式与模型输出的格式一致;
    2. API 权限控制: MCP-VictoriaMetrics 对接 VictoriaMetrics 实例的认证信息(如 access_tokens.go 管理的令牌)需严格管控,避免 AI 工具越权访问 VictoraMetrics 数据;
    3. 交互性能:大量 AI 并发请求下,需监控 tools/ 目录下各适配模块的调用耗时,优化 PromQL 查询、文档检索的性能;
    4. 日志审计:通过 logging/ 模块记录 AI 交互的全链路日志,便于追溯模型误操作、数据异常等问题。

5.2、二次开发扩展建议

    1. 新增 AI 能力适配:若需支持 AI 调用 VictoriaMetrics  的写操作(如修改告警规则),可在 tools/ 目录新增适配文件,封装对应的写 API,并补充权限校验逻辑;
    2. 优化提示词模板:修改 prompts/ 目录下的提示词模板,适配企业内部的 VM 使用规范(如自定义指标命名规则),提升模型交互的精准度;
    3. 集成向量数据库:将离线文档接入向量数据库,增强语义检索的准确性,让模型能更精准地获取 VictoriaMetrics 专业知识;
    4. 多模型适配:扩展 MCP 协议层,支持对接不同厂商的 LLM(如 OpenAI、文心一言),适配不同模型的交互范式。

 六、接下来

MCP-VictoriaMetrics v1.20.1 作为 VictoriaMetrics 面向 AI 时代的核心组件,其本质是通过 MCP 协议将 VictoriaMetrics 的监控能力转化为 LLM 可理解、可调用的标准化服务,解决了 大模型看不懂、用不了 VictoriaMetrics 的核心痛点。

对于 SRE 而言,理解其源码架构与数据流,不仅能保障 AI 与 VictoriaMetrics 集成的稳定性,更能基于其模块化设计进行定制化扩展,充分释放 大模型 + 可观测性 的协同价值,推动 AIOPS 从 概念 走向 落地

未来,随着 MCP 协议的迭代与 LLM 能力的提升,MCP-VictoriaMetrics 有望进一步融合推理、决策能力,实现 AI 自动发现监控异常 - 分析根因 - 给出优化建议 的全流程自动化,成为云原生可观测性体系中 AI 能力落地的核心底座。