关于 mcp-victoriametrics
mcp-victoriametrics 是面向使用 VictoriaMetrics 实例的工程师和工具的 MCP 服务。它开放只读 API,可查询和检查指标、告警规则、配置及使用情况,并提供可搜索的内置文档。
主要功能
- 01查询指标并探索数据
- 02列出并导出指标与序列
- 03分析告警和记录规则
- 04检查实例参数与基数
- 05调试查询和保留策略配置
- 06搜索内置 VictoriaMetrics 文档
适用场景
- 01调查指标与可观测性数据
- 02检查告警规则及其结果
- 03调试重标记或保留设置
MCP 相关
该 MCP 服务通过 stdio、SSE 或 Streamable HTTP 向 MCP 客户端开放 VictoriaMetrics API 和内置文档。它可连接单节点、集群及 VictoriaMetrics Cloud 实例。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
docker run -i --rm -e VM_INSTANCE_ENTRYPOINT -e VM_INSTANCE_TYPE -e VM_INSTANCE_BEARER_TOKEN -e VMC_API_KEY -e MCP_DISABLED_TOOLS -e MCP_DISABLE_RESOURCES -e MCP_PASSTHROUGH_HEADERS ghcr.io/victoriametrics/mcp-victoriametrics:1.120.1VM_INSTANCE_ENTRYPOINTURL to VictoriaMetrics instance (it should be root URL of vmsingle or vmselect), for example http://localhost:8428 or https://play.victoriametrics.comVM_INSTANCE_TYPEType of VictoriaMetrics instance (single / cluster)VM_INSTANCE_BEARER_TOKEN密钥Authentication token for VictoriaMetrics APIVMC_API_KEY密钥Optional: API key from VictoriaMetrics Cloud Console (if you have deployment in VictoriaMetrics Cloud)MCP_DISABLED_TOOLSComma-separated list of tools to disableMCP_DISABLE_RESOURCESDisable all resources (documentation tool will continue to work)MCP_PASSTHROUGH_HEADERSHTTP header names to forward from incoming MCP requests to VictoriaMetrics (comma-separated list). Overrides VM_INSTANCE_HEADERS on collision.本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
ghcr.io/victoriametrics/mcp-victoriametrics:1.120.1stdio工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
原文在翻译后有更新,译文可能不是最新。
VictoriaMetrics MCP 服务
这是面向 VictoriaMetrics 的 Model Context Protocol (MCP) 服务实现。
它可以访问您的 VictoriaMetrics 实例,并与 VictoriaMetrics API 和文档无缝集成。 它可为与 VictoriaMetrics 实例相关的监控、可观测性和调试任务提供全面的操作界面,并为工程师和工具提供高级自动化与交互能力。
功能
此 MCP 服务支持使用 VictoriaMetrics 几乎所有只读 API,即 VMUI 中提供的所有功能:
- 查询指标并探索数据(如果客户端支持,还可以绘制图表)
- 列出并导出可用的指标、标签、标签值和完整时间序列
- 分析和测试告警规则、记录规则和告警
- 显示 VictoriaMetrics 实例的参数
- 探索数据的基数和指标使用统计信息
- 分析、跟踪、美化并解释查询
- 调试重标记规则、降采样和保留策略配置
- 与 VictoriaMetrics Cloud 集成
- 在根端点提供包含设置说明和工具检查功能的 UI(仅限 Streamable HTTP 模式)
此外,MCP 服务内嵌了最新文档,即使无法联网也能搜索文档。

有关可用工具和提示词的具体详情,请参阅用法部分。
您可以组合使用工具功能和提示词中的文档搜索,为 VictoriaMetrics 实例设计出色的使用场景。 请查看对话示例部分,了解其工作方式。 另请注意,MCP 服务及其响应的质量在很大程度上取决于客户端的能力和所用模型的质量。
您还可以将此 MCP 服务与其他可观测性或文档搜索相关的 MCP 服务组合使用,获得更强大的效果。
无需安装即可试用
有一个公开可用的 VictoriaMetrics MCP Server 实例,你可以用它测试功能,无需安装:
https://play-mcp.victoriametrics.com/mcp
注意! 此 URL 不适合在浏览器中打开, предназначено 用于 MCP 客户端。
它以 Streamable HTTP 模式提供,并配置为与 Public VictoriaMetrics Playground 配合使用。
以下是 Claude Desktop 的配置示例:
要求
- VictoriaMetrics 或 VictoriaMetrics Cloud 实例(单节点或集群)
- Go 1.26 或更高版本(如果你想从源代码构建)
安装
二进制文件
只需从发布页面下载最新版本,并将其放入 PATH。
Linux x86_64 示例(其他架构和平台也可用):
latest=$(curl -s https://api.github.com/repos/VictoriaMetrics/mcp-victoriametrics/releases/latest | grep 'tag_name' | cut -d\" -f4)
wget https://github.com/VictoriaMetrics/mcp-victoriametrics/releases/download/$latest/mcp-victoriametrics_Linux_x86_64.tar.gz
tar axvf mcp-victoriametrics_Linux_x86_64.tar.gz
Docker
你可以使用 Docker 运行 VictoriaMetrics MCP Server。
这是最简单的入门方式,无需安装 Go 或从源代码构建。
docker run -d --name mcp-victoriametrics \
-e VM_INSTANCE_ENTRYPOINT=https://play.victoriametrics.com \
-e VM_INSTANCE_TYPE=cluster \
-e MCP_SERVER_MODE=sse \
-e MCP_LISTEN_ADDR=:8080 \
-p 8080:8080 \
ghcr.io/victoriametrics/mcp-victoriametrics
你应将环境变量替换为自己的参数。
请注意,MCP_SERVER_MODE=http 标志用于启用 Streamable HTTP 模式。
有关服务模式的更多详情,请参阅配置部分。
请查看 GitHub 注册表中的可用 Docker 镜像。
有关使用 Docker 搭配 MCP 服务,并在 stdio 模式下与客户端配合使用的更多详情,请参阅使用 Docker 代替二进制文件部分。
源代码
要从源代码构建二进制文件,可以采用以下方法:
-
克隆仓库:
git clone https://github.com/VictoriaMetrics/mcp-victoriametrics.git cd mcp-victoriametrics -
从克隆的源代码构建二进制文件:
make build # after that you can find binary mcp-victoriametrics and copy this file to your PATH or run inplace -
从克隆的源代码构建镜像:
docker build -t mcp-victoriametrics . # after that you can use docker image mcp-victoriametrics for running or pushing
Helm
如需了解使用 Helm 安装的更多详情,请参阅 VictoriaMetrics MCP Server Helm chart 文档。
配置
VictoriaMetrics 的 MCP 服务通过环境变量进行配置:
| 变量 | 描述 | 必填 | 默认值 | 允许的值 |
|---|---|---|---|---|
VM_INSTANCE_ENTRYPOINT / VMC_API_KEY | VictoriaMetrics 实例的 URL(应为 vmsingle 或 vmselect 的根 / URL) | 是(如果不使用 VMC_API_KEY) | - | - |
VM_INSTANCE_TYPE | VictoriaMetrics 实例的类型 | 是(如果不使用 VMC_API_KEY) | - | single, cluster |
VM_INSTANCE_BEARER_TOKEN | VictoriaMetrics API 的身份验证令牌 | 否 | - | - |
VM_INSTANCE_HEADERS | 随请求发送的自定义 HTTP 标头(以逗号分隔的 key=value 对) | 否 | - | - |
MCP_PASSTHROUGH_HEADERS | 要从传入的 MCP 请求转发至 VictoriaMetrics 的 HTTP 标头名称(以逗号分隔的列表)。发生冲突时会覆盖 VM_INSTANCE_HEADERS。仅适用于 sse/http 模式。 | 否 | - | - |
VM_DEFAULT_TENANT_ID | 集群模式的默认租户 ID。格式:accountID 或 accountID:projectID(32 位整数)。参见 VictoriaMetrics 集群文档 | 否 | 0 | - |
VMC_API_KEY | 来自 VictoriaMetrics Cloud Console 的 API 密钥 | 否 | - | - |
MCP_SERVER_MODE | 服务运行模式。详情参见 模式。 | 否 | stdio | stdio, sse, http |
MCP_LISTEN_ADDR | SSE 或 HTTP 服务的监听地址 | 否 | localhost:8080 | - |
MCP_DISABLED_TOOLS | 要禁用的工具列表,以逗号分隔 | 否 | 'export,flags,metric_relabel_debug,downsampling_filters_debug,retention_filters_debug,test_rules' | - |
MCP_DISABLE_RESOURCES | 禁用所有资源(文档工具仍可使用) | 否 | false | false, true |
MCP_HEARTBEAT_INTERVAL | 定义 streamable-http 协议的心跳间隔。 也就是说,MCP 服务会通过 GET 连接向客户端发送心跳, 以防网络基础设施(例如网关)关闭连接 | 否 | 30s | - |
MCP_LOG_FORMAT | 日志输出格式 | 否 | text | text, json |
MCP_LOG_LEVEL | 最低日志级别 | 否 | info | debug, info, warn, error |
| 你可以通过两种方式连接到 VictoriaMetrics 实例: |
- 使用
VM_INSTANCE_ENTRYPOINT+VM_INSTANCE_TYPE+VM_INSTANCE_BEARER_TOKEN(可选)环境变量,连接任意单节点或集群版 VictoriaMetrics 实例。 - 使用
VMC_API_KEY环境变量,连接你的 VictoriaMetrics Cloud 实例。
模式
MCP 服务支持以下运行模式(传输方式):
stdio- 标准输入/输出模式,服务从标准输入读取命令,并将响应写入标准输出。这是默认模式,适用于本地服务。sse- 服务器发送事件。服务将公开/sse和/message端点,用于 SSE 连接。http- 可流式传输的 HTTP。服务将公开/mcp端点,用于 HTTP 连接。
有关传输方式的更多信息,请参阅 MCP 文档:
配置示例
# For a single-node instance
export VM_INSTANCE_ENTRYPOINT="http://localhost:8428"
export VM_INSTANCE_TYPE="single"
export VM_INSTANCE_BEARER_TOKEN="your-token"
export MCP_PASSTHROUGH_HEADERS="X-Token,X-Access-Key"
# For a cluster
export VM_INSTANCE_ENTRYPOINT="https://play.victoriametrics.com"
export VM_INSTANCE_TYPE="cluster"
export MCP_DISABLED_TOOLS="export,metric_statistics,test_rules" # disable export, statistics and rules unit test tools
# For VictoriaMetrics Cloud
export VMC_API_KEY="<you-api-key>"
# Server mode
export MCP_SERVER_MODE="sse"
export MCP_LISTEN_ADDR="0.0.0.0:8080"
# Custom headers for authentication (e.g., behind a reverse proxy)
# Expected syntax is key=value separated by commas
export VM_INSTANCE_HEADERS="<HEADER>=<HEADER_VALUE>,<HEADER>=<HEADER_VALUE>"
端点
在 SSE 和 HTTP 模式下,MCP 服务提供以下端点:
| 端点 | 说明 |
|---|---|
/ | 提供设置帮助和工具检查的主页 |
/sse + /message | SSE 模式下用于传递消息的端点(供支持 SSE 的 MCP 客户端使用) |
/mcp | HTTP 模式下用于流式传递消息的 HTTP 端点(供支持可流式传输 HTTP 的 MCP 客户端使用) |
/metrics | Prometheus 格式的指标,用于监控 MCP 服务 |
/health/liveness | 存活检查端点,用于确认服务正在运行 |
/health/readiness | 就绪检查端点,用于确认服务已准备好接受请求 |
在客户端中设置
Cursor
前往:Settings -> Cursor Settings -> MCP -> Add new global MCP server,并将以下配置粘贴到 Cursor 的 ~/.cursor/mcp.json 文件中:
{
"mcpServers": {
"victoriametrics": {
"command": "/path/to/mcp-victoriametrics",
"env": {
"VM_INSTANCE_ENTRYPOINT": "<YOUR_VM_INSTANCE>",
"VM_INSTANCE_TYPE": "<YOUR_VM_INSTANCE_TYPE>",
"VM_INSTANCE_BEARER_TOKEN": "<YOUR_VM_BEARER_TOKEN>",
"VM_INSTANCE_HEADERS": "<HEADER>=<HEADER_VALUE>,<HEADER>=<HEADER_VALUE>"
}
}
}
}
更多信息请参阅 Cursor MCP 文档。
Claude Desktop
将以下内容添加到 Claude Desktop 的 claude_desktop_config.json 文件中(打开 Settings -> Developer -> Edit config 即可找到该文件):
{
"mcpServers": {
"victoriametrics": {
"command": "/path/to/mcp-victoriametrics",
"env": {
"VM_INSTANCE_ENTRYPOINT": "<YOUR_VM_INSTANCE>",
"VM_INSTANCE_TYPE": "<YOUR_VM_INSTANCE_TYPE>",
"VM_INSTANCE_BEARER_TOKEN": "<YOUR_VM_BEARER_TOKEN>",
"VM_INSTANCE_HEADERS": "<HEADER>=<HEADER_VALUE>,<HEADER>=<HEADER_VALUE>"
}
}
}
}
更多信息请参阅 Claude Desktop MCP 文档。
Claude Code
运行以下命令:
claude mcp add victoriametrics -- /path/to/mcp-victoriametrics \
-e VM_INSTANCE_ENTRYPOINT=<YOUR_VM_INSTANCE> \
-e VM_INSTANCE_TYPE=<YOUR_VM_INSTANCE_TYPE>
-e VM_INSTANCE_BEARER_TOKEN=<YOUR_VM_BEARER_TOKEN>
-e VM_INSTANCE_HEADERS="<HEADER>=<HEADER_VALUE>,<HEADER>=<HEADER_VALUE>"
更多信息请参阅 Claude Code MCP 文档。
Codex
Codex CLI 和 IDE 扩展使用相同的 MCP 配置文件:~/.codex/config.toml
(或可信项目中的 .codex/config.toml)。
运行以下命令:
codex mcp add victoriametrics \
--env VM_INSTANCE_ENTRYPOINT=<YOUR_VM_INSTANCE> \
--env VM_INSTANCE_TYPE=<YOUR_VM_INSTANCE_TYPE> \
--env VM_INSTANCE_BEARER_TOKEN=<YOUR_VM_BEARER_TOKEN> \
--env VM_INSTANCE_HEADERS="<HEADER>=<HEADER_VALUE>,<HEADER>=<HEADER_VALUE>" \
-- /path/to/mcp-victoriametrics
或者,将以下内容添加到 Codex 的 ~/.codex/config.toml 文件中:
[mcp_servers.victoriametrics]
command = "/path/to/mcp-victoriametrics"
[mcp_servers.victoriametrics.env]
VM_INSTANCE_ENTRYPOINT = "<YOUR_VM_INSTANCE>"
VM_INSTANCE_TYPE = "<YOUR_VM_INSTANCE_TYPE>"
VM_INSTANCE_BEARER_TOKEN = "<YOUR_VM_BEARER_TOKEN>"
VM_INSTANCE_HEADERS = "<HEADER>=<HEADER_VALUE>,<HEADER>=<HEADER_VALUE>"
如果以可流式传输的 HTTP 模式运行服务,可以使用以下方式注册:
codex mcp add victoriametrics --url http://localhost:8080/mcp
更多信息请参阅 Codex MCP 文档。
Visual Studio Code
将以下内容添加到 VS Code MCP 配置文件中:
{
"servers": {
"victoriametrics": {
"type": "stdio",
"command": "/path/to/mcp-victoriametrics",
"env": {
"VM_INSTANCE_ENTRYPOINT": "<YOUR_VM_INSTANCE>",
"VM_INSTANCE_TYPE": "<YOUR_VM_INSTANCE_TYPE>",
"VM_INSTANCE_BEARER_TOKEN": "<YOUR_VM_BEARER_TOKEN>",
"VM_INSTANCE_HEADERS": "<HEADER>=<HEADER_VALUE>,<HEADER>=<HEADER_VALUE>"
}
}
}
}
更多信息请参阅 VS Code MCP 文档。
Zed
将以下内容添加到 Zed 配置文件中:
"context_servers": {
"victoriametrics": {
"command": {
"path": "/path/to/mcp-victoriametrics",
"args": [],
"env": {
"VM_INSTANCE_ENTRYPOINT": "<YOUR_VM_INSTANCE>",
"VM_INSTANCE_TYPE": "<YOUR_VM_INSTANCE_TYPE>",
"VM_INSTANCE_BEARER_TOKEN": "<YOUR_VM_BEARER_TOKEN>",
"VM_INSTANCE_HEADERS": "<HEADER>=<HEADER_VALUE>,<HEADER>=<HEADER_VALUE>"
}
},
"settings": {}
}
}
更多信息请参阅 Zed MCP 文档。
JetBrains IDE
- 打开
Settings->Tools->AI Assistant->Model Context Protocol (MCP)。 - 点击
Add (+) - 选择
As JSON - 将以下内容填入输入框:
{
"mcpServers": {
"victoriametrics": {
"command": "/path/to/mcp-victoriametrics",
"env": {
"VM_INSTANCE_ENTRYPOINT": "<YOUR_VM_INSTANCE>",
"VM_INSTANCE_TYPE": "<YOUR_VM_INSTANCE_TYPE>",
"VM_INSTANCE_BEARER_TOKEN": "<YOUR_VM_BEARER_TOKEN>",
"VM_INSTANCE_HEADERS": "<HEADER>=<HEADER_VALUE>,<HEADER>=<HEADER_VALUE>"
}
}
}
}
Windsurf
将以下内容添加到 Windsurf MCP 配置文件中。
{
"mcpServers": {
"victoriametrics": {
"command": "/path/to/mcp-victoriametrics",
"env": {
"VM_INSTANCE_ENTRYPOINT": "<YOUR_VM_INSTANCE>",
"VM_INSTANCE_TYPE": "<YOUR_VM_INSTANCE_TYPE>",
"VM_INSTANCE_BEARER_TOKEN": "<YOUR_VM_BEARER_TOKEN>",
"VM_INSTANCE_HEADERS": "<HEADER>=<HEADER_VALUE>,<HEADER>=<HEADER_VALUE>"
}
}
}
}
有关更多信息,请参阅 Windsurf MCP 文档。
使用 Docker 代替二进制文件
你可以使用 Docker 运行 VictoriaMetrics MCP 服务,而不是使用本地二进制文件。
请按以下方式替换上方配置示例中的运行命令:
{
"mcpServers": {
"victoriametrics": {
"command": "docker",
"args": [
"run",
"-i", "--rm",
"-e", "VM_INSTANCE_ENTRYPOINT",
"-e", "VM_INSTANCE_TYPE",
"-e", "VM_INSTANCE_BEARER_TOKEN",
"-e", "VM_INSTANCE_HEADERS",
"ghcr.io/victoriametrics/mcp-victoriametrics",
],
"env": {
"VM_INSTANCE_ENTRYPOINT": "<YOUR_VM_INSTANCE>",
"VM_INSTANCE_TYPE": "<YOUR_VM_INSTANCE_TYPE>",
"VM_INSTANCE_BEARER_TOKEN": "<YOUR_VM_BEARER_TOKEN>",
"VM_INSTANCE_HEADERS": "<HEADER>=<HEADER_VALUE>,<HEADER>=<HEADER_VALUE>"
}
}
}
}
用法
安装并配置 MCP 服务后,你就可以通过自己喜欢的 MCP 客户端开始使用它。
你可以从下面这句话开始与 AI 助手对话:
Use MCP VictoriaMetrics in the following answers
不过,这不是必需的,你也可以直接开始提问,助手会自动使用工具和文档为你提供最佳答案。 如需更好地了解它能做什么,请查看对话示例部分。
工具集
MCP VictoriaMetrics 提供了许多用于与你的 VictoriaMetrics 实例交互的工具。
以下是常见的可用工具列表:
| 工具 | 描述 | 默认启用 |
|---|---|---|
query | 执行即时 PromQL/MetricsQL 查询 | ✅ |
query_range | 在一段时间内执行范围 PromQL/MetricsQL 查询 | ✅ |
metrics | 列出可用指标 | ✅ |
metrics_metadata | 已存储的指标元数据(类型、帮助信息和单位) | ✅ |
labels | 列出可用的标签名称 | ✅ |
label_values | 列出特定标签的值 | ✅ |
series | 列出可用的时间序列 | ✅ |
export | 将原始时间序列数据导出为 JSON 或 CSV | ❌ |
rules | 查看告警规则和记录规则 | ✅ |
alerts | 查看当前告警(触发中和待处理) | ✅ |
flags | 查看 VictoriaMetrics 实例的非默认标志 | ❌ |
metric_statistics | 获取指标使用情况(查询中的)统计信息 | ✅ |
active_queries | 查看当前正在执行的查询 | ✅ |
top_queries | 查看最频繁或最慢的查询 | ✅ |
tsdb_status | 查看 TSDB 基数统计信息 | ✅ |
tenants | 列出多租户集群配置中的可用租户 | ✅ |
documentation | 搜索内嵌的 VictoriaMetrics 文档 | ✅ |
metric_relabel_debug | 调试兼容 Prometheus 的重标记规则 | ❌ |
downsampling_filters_debug | 调试降采样配置 | ❌ |
retention_filters_debug | 调试保留过滤器配置 | ❌ |
prettify_query | 美化并格式化 PromQL/MetricsQL 查询 | ✅ |
explain_query | 解析 PromQL/MetricsQL 查询并说明其工作方式 | ✅ |
test_rules | 使用 vmalert 工具对告警规则和记录规则进行单元测试 | ❌ |
以下是适用于 VictoriaMetrics Cloud 用户的其他一些工具(需指定 VMC_API_KEY 参数): |
| 工具 | 描述 | 默认启用 |
|---|---|---|
deployments | 列出 VictoriaMetrics Cloud 中可用的部署 | ✅ |
cloud_providers | 列出 VictoriaMetrics Cloud 中可用的云服务提供商 | ✅ |
regions | 列出 VictoriaMetrics Cloud 中可用的云服务提供商区域 | ✅ |
tiers | 列出 VictoriaMetrics Cloud 中可用的部署层级 | ✅ |
access_tokens | 列出 VictoriaMetrics Cloud 中可用的部署访问令牌 | ✅ |
rule_filenames | 列出 VictoriaMetrics Cloud 中可用的告警规则和记录规则文件名 | ✅ |
rule_file | 获取 VictoriaMetrics Cloud 中指定告警规则或记录规则文件的内容 | ✅ |
提示词
该服务包含适用于常见任务的预定义提示词。
目前这些只是示例,未来会扩充提示词库:
| 提示词 | 描述 |
|---|---|
unused_metrics | 查找从未被查询的指标,并创建重标记配置以停止采集这些指标 |
documentation | 搜索 VictoriaMetrics 文档中的特定主题 |
rarely_used_metrics_with_high_cardinality | 找出很少被查询的高基数指标 |
对话示例
以下只是一个助手使用 MCP 服务的对话示例,可帮助理解其工作方式(但这是使用 Victoria Metrics MCP 服务、通过 Claude Desktop 并配置为连接到公共 Playground 实例的真实对话):
-
你:我的 VM 中有哪些租户?
-
助手 在你的 VictoriaMetrics 实例中,以下租户可用:
0:0(默认租户)、1:0、10:0、100:0 -
你:从现在起,请只使用默认租户
-
助手:明白。从现在起,我将只使用默认租户(0:0)对你的 VictoriaMetrics 实例执行所有操作。
-
你:我们有哪些指标?
-
助手:你的 VictoriaMetrics 实例中有许多可用指标。列表包含来自各种系统和组件的指标,例如:
- 系统指标(
node_、machine_等), - Kubernetes 指标(
kube_、container_、apiserver_等), - VictoriaMetrics 专属指标(
vm_、vmagent_、vmalert_等), - Go 运行时指标(
go_), - Prometheus 相关指标(
scrape_、promhttp_), - 各种应用指标(
argocd_、alertmanager_)。
这是一个包含 2000 多个可查询指标的完整列表。你想进一步了解哪一类指标吗?
- 系统指标(
-
你:好的,从现在起,我们只看 Kubernetes 指标。请告诉我这些指标中哪些从未被查询过?
-
助手:根据结果,我发现有两个 Kubernetes 指标从未被查询过(查询次数为 0):
kube_persistentvolumeclaim_deletion_timestamp- 此指标提供有关 PersistentVolumeClaims 被标记为删除的时间信息。kube_pod_init_container_status_last_terminated_reason- 此指标显示 Pod 中的初始化容器上次终止的原因。
这些指标可能对监控和故障排查有帮助:
- PVC 删除时间戳指标可帮助跟踪删除模式或识别卡住的 PVC。
- 初始化容器终止原因指标可帮助识别初始化容器中的常见故障模式。
你希望我进一步说明这些指标跟踪的内容,还是建议一些有用的查询来开始监控它们?
-
你:好的。另外,你能创建重标记规则来停止摄取这些指标吗?
-
助手:我会创建一个重标记配置,以排除这些从未被查询过的指标。这样可以减少存储和处理开销。以下是你可以添加到 VictoriaMetrics 抓取配置中的重标记配置:
relabel_configs: - action: drop source_labels: [__name__] regex: kube_persistentvolumeclaim_deletion_timestamp|kube_pod_init_container_status_last_terminated_reason此配置将:
- 检查每个指标的名称(
__name__标签) - 检查它是否与指定的任一指标匹配
- 丢弃匹配的指标,阻止它们被采集和存储
如果你使用 Prometheus 作为 VictoriaMetrics 的抓取器,可以将此配置添加到 VictoriaMetrics 配置文件,或 Prometheus 配置中的相关抓取任务配置中。 如果你想在实施前测试此重标记配置,可以使用指标重标记调试工具查看它会如何影响你的指标。
- 检查每个指标的名称(
-
你:好的,请在实时时间序列上调试此重标记配置,看看它会如何影响我的指标
-
助手:太好了!重标记配置按预期运行:
- 前两个测试用例表明,
kube_persistentvolumeclaim_deletion_timestamp和kube_pod_init_container_status_last_terminated_reason指标都已正确丢弃(结果标签为空{})。 - 第三个测试用例确认了其他指标(如
kube_pod_status_phase)得以保留,不受丢弃规则影响。
你可以放心地将此重标记配置添加到 VictoriaMetrics 或 Prometheus 配置中,以停止采集这些未使用的指标。这样可以节省存储空间并减少处理开销,同时不会影响你当前的监控能力。
- 前两个测试用例表明,
-
你:不过,我使用的是 VictoriaMetrics operator 的 vmagent 资源,能否给我一段包含此重标记配置的 Agent 规格配置?
-
助手:你说得对,既然你使用的是 VictoriaMetrics Operator 和 VMAgent 自定义资源,配置就需要采用适合该 CR 的格式。下面说明如何将重标记配置添加到 VMAgent 规格中:
apiVersion: operator.victoriametrics.com/v1beta1 kind: VMAgent metadata: name: your-vmagent-name spec: # ... your existing configuration ... # Add this section to configure global metric relabeling inlineRelabelConfig: - action: drop sourceLabels: ["__name__"] regex: kube_persistentvolumeclaim_deletion_timestamp|kube_pod_init_container_status_last_terminated_reason # ... rest of your configuration ...要点:
- 在 VMAgent 规格中,使用
inlineRelabelConfig配置内联重标记规则 - 字段名是
sourceLabels(而非 Prometheus 配置中的source_labels) - 这是一个全局重标记规则,会在所有指标存储前应用
- 在 VMAgent 规格中,使用
-
你:我决定不删除这些指标,而是使用 Downsampling 降低它们的采样率。我现在有哪些降采样参数?
-
助手:我看到你当前的降采样配置如下:
-downsampling.period="7d:1m,30d:5m,180d:30m"这意味着:
- 保留最近 7 天的数据,其分辨率为原始分辨率
- 将 7-30 天前的数据降采样至 1 分钟分辨率
- 将 30-180 天前的数据降采样至 5 分钟分辨率
- 将 180 天以前的数据降采样至 30 分钟分辨率
现在,如果你想为这些很少被查询的指标添加特定的降采样规则,可以使用降采样过滤器调试工具来测试新规则的效果。我们来测试一种对这些特定指标应用更激进降采样的配置:
……获取时间序列并使用降采样过滤器调试器……
很好!现在测试按预期运行。根据当前配置和测试结果,以下是为你的 VMAgent CR 建议的降采样配置,它会对这些很少被查询的指标应用更激进的降采样:
apiVersion: operator.victoriametrics.com/v1beta1 kind: VMCluster metadata: name: monitoring-vm-cluster spec: # ... your existing configuration ... # Update the vmstorage section with the new downsampling parameters vmstorage: extraArgs: downsampling.period: '{__name__=\"kube_persistentvolumeclaim_deletion_timestamp\"}:1d:10m,{__name__=\"kube_pod_init_container_status_last_terminated_reason\"}:1d:10m,7d:1m,30d:5m,180d:30m' # ... rest of your configuration ...此配置:
- 在仅经过 1 天后,就对很少被查询的指标应用 10 分钟分辨率的降采样 - 为所有其他指标保留现有的降采样策略
降采样规则的顺序很重要——应将更具体的规则列在前面。 在此次对话中,助手使用了以下工具:
-
tenants用于获取可用租户列表 -
documentation用于获取功能和数据格式相关信息 -
metrics用于获取可用指标列表 -
metrics_staistics用于获取指标使用情况信息 -
series用于获取时间序列以便调试 -
metric_relabel_debug用于调试重标记规则 -
flags用于获取实例参数信息 -
downsampling_filters_debug用于调试降采样配置
不过,你也可以使用其他工具,并按照自己的方式组合使用。
监控
在 SSE 和 HTTP 模式下,MCP 服务会提供 Prometheus 格式的指标(参见端点),你还可以在代码库中找到简单的 Grafana 仪表板来查看这些指标。
常见问题
为什么 MCP 服务使用的资源比我预期的简单 API 代理更多?
服务内嵌了一个向量数据库,其中包含 VictoriaMetrics 文档和博客文章,供 documentation 工具使用。
它有助于在不向大模型提供所有数据的情况下,回答有关 VictoriaMetrics 的复杂问题。
这是资源使用的主要来源。若要减少资源使用量,可将 documentation 添加到 MCP_DISABLED_TOOLS 环境变量中,以完全禁用向量数据库的加载。
如何让一个 MCP 服务实例用于多个 VictoriaMetrics 实例?
你可以在 MCP 服务中使用 MCP_PASSTHROUGH_HEADERS 参数,结合 vmauth 中基于请求头的路由,根据 MCP 客户端配置中的 HTTP 请求头值,在多个实例之间路由 MCP 调用。
路线图
- 支持“美化查询”工具(已在
v0.0.5中完成) - 支持“解释查询”工具(已在
v0.0.6中完成) - 支持用于构建和推送多架构 Docker 镜像的 CI 流水线(已在
v1.0.0中完成) - 支持用于对告警规则和记录规则进行单元测试的工具(已在
v0.0.7中完成) - 支持与 VictoriaMetrics Cloud 的可选集成(通过 API 密钥)(已在
v0.0.9中完成) - 除当前的文档工具外,为服务添加一些额外知识:
- VictoriaMetrics 博客文章(已在
v1.1.0中完成) - CRD 架构
- VictoriaMetrics 博客文章(已在
- 实现多租户版本的 MCP(支持多个部署)
- 添加标志/配置验证工具
- 支持 vmagent API 工具
- 支持新版 vmalert API
- 通过配置启用/禁用工具(已在
v0.0.8中完成) - 支持 Alertmanager API 工具 #6
- 支持 metrics metadata,前提是 VictoriaMetrics 实现了该功能
- 支持身份验证
- 添加包含说明和文档链接的静态索引页面
提及
免责声明
包括此类 MCP 服务在内的 AI 服务和 Agent,无法保证结果的准确性、完整性和可靠性。 请务必仔细核查 AI 得出的结果。
MCP 服务及其响应的质量很大程度上取决于客户端的能力和所用模型的质量。
贡献
欢迎为 MCP VictoriaMetrics 项目做出贡献!
欢迎提交问题、功能请求或拉取请求。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。