mcp-victoriametrics

Integrations

  • Enables monitoring and analysis of Kubernetes metrics, including the ability to query container, pod, and other Kubernetes-specific metrics collected by VictoriaMetrics.

  • Supports Prometheus-compatible functionality including querying with PromQL, metric relabeling rules debugging, and integration with Prometheus configuration when used as a scraper for VictoriaMetrics.

  • Provides access to a VictoriaMetrics monitoring system, enabling querying metrics, exploring data, analyzing alerts/rules, viewing instance parameters, exploring data cardinality, analyzing queries, and debugging relabeling rules and retention configurations.

VictoriaMetrics MCP 服务器

VictoriaMetrics模型上下文协议 (MCP)服务器的实现。

这可以访问您的 VictoriaMetrics 实例,并与VictoriaMetrics API文档无缝集成。它可以为您提供与 VictoriaMetrics 实例相关的监控、可观察性和调试任务的全面界面,并为工程师和工具提供高级自动化和交互功能。

特征

此 MCP 服务器允许您使用 VictoriaMetrics 的几乎所有只读 API,即VMUI中可用的所有功能:

  • 查询指标和探索数据(如果客户端支持,甚至可以绘制图表)
  • 列出并导出可用的指标、标签、标签值和整个系列
  • 分析您的警报和记录规则和警报
  • 显示您的 VictoriaMetrics 实例的参数
  • 探索数据基数和指标使用情况统计
  • 分析您的查询
  • 调试重新标记规则、下采样和保留策略配置

此外,MCP 服务器包含嵌入式最新文档,无需在线访问即可搜索。

有关确切可用工具和提示的更多详细信息,请参阅使用部分。

您可以将工具和文档搜索的功能组合到您的提示中,为您的 VictoriaMetrics 实例创建出色的使用场景。只需查看对话框示例部分即可了解其工作原理。请注意,MCP 服务器及其响应的质量在很大程度上取决于您的客户端功能以及您所使用的模型的质量。

您还可以将 MCP 服务器与其他可观察性或文档搜索相关的 MCP 服务器相结合,以获得更强大的结果。

要求

安装

go install github.com/VictoriaMetrics-Community/mcp-victoriametrics/cmd/mcp-victoriametrics@latest

源代码

git clone https://github.com/VictoriaMetrics-Community/mcp-victoriametrics.git cd mcp-victoriametrics go build -o bin/mcp-victoriametrics ./cmd/mcp-victoriametrics/main.go # after that add bin/mcp-victoriametrics file to your PATH

二进制文件

只需从发布页面下载最新版本并将其放入您的 PATH 即可。

Docker

即将推出...

配置

VictoriaMetrics 的 MCP 服务器通过环境变量进行配置:

多变的描述必需的默认允许值
VM_INSTANCE_ENTRYPOINTVictoriaMetrics 实例的 URL是的--
VM_INSTANCE_TYPEVictoriaMetrics 实例的类型是的-singlecluster
VM_INSTANCE_BEARER_TOKENVictoriaMetrics API 的身份验证令牌--
MCP_SERVER_MODE服务器运行模式stdiostdio sse
MCP_SSE_ADDRSSE 服务器监听的地址localhost:8080-

配置示例

# For a single-node instance export VM_INSTANCE_ENTRYPOINT="http://localhost:8428" export VM_INSTANCE_TYPE="single" export VM_INSTANCE_BEARER_TOKEN="your-token" # For a cluster export VM_INSTANCE_ENTRYPOINT="https://play.victoriametrics.com" export VM_INSTANCE_TYPE="cluster" # Server mode export MCP_SERVER_MODE="sse" export MCP_SSE_ADDR="0.0.0.0:8080"

在客户端中设置

光标

前往: 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>" } } } }

请参阅Cursor MCP 文档以了解更多信息。

克劳德桌面

将其添加到您的 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>" } } } }

请参阅Claude Desktop MCP 文档以了解更多信息。

克劳德·科德

运行以下命令:

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>

请参阅Claude Code MCP 文档以了解更多信息。

Visual Studio 代码

将其添加到您的 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>" } } } }

有关详细信息,请参阅VS Code MCP 文档

泽德

将以下内容添加到您的 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>" } }, "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>" } } } }

风帆冲浪

将以下内容添加到您的 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>" } } } }

请参阅Windsurf MCP 文档以了解更多信息。

亚马逊基岩

即将推出....

使用 Docker 代替二进制文件

即将推出...

用法

安装配置MCP 服务器后,您可以开始与您最喜欢的 MCP 客户端一起使用它。

您可以从以下短语开始与AI助手对话:

Use MCP VictoriaMetrics in the following answers

但这不是必需的,您可以直接提问,助手会自动使用工具和文档为您提供最佳答案。您可以查看对话框示例部分,更好地了解它的用途。

工具集

MCP VictoriaMetrics 提供了许多与您的 VictoriaMetrics 实例交互的工具。

以下是可用工具的列表:

工具描述
query执行即时 PromQL/MetricsQL 查询
query_range在一段时间内执行范围 PromQL/MetricsQL 查询
metrics列出可用指标
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调试保留过滤器配置

提示

该服务器包括常见任务的预定义提示。

这些只是目前的示例,将来会添加到提示库中:

迅速的描述
unused_metrics查找从未查询过的指标并创建重新标记配置以停止提取它们
documentation在 VictoriaMetrics 文档中搜索特定主题
rarely_used_metrics_with_high_cardinality识别很少查询的高基数指标

请注意,降采样是 VictoriaMetrics 的一项企业功能。您当前的许可证允许您使用该功能,因为我看到许可证文件已配置。

对话框示例

这只是使用 MCP 服务器与 Assistant 对话的示例,有助于理解其工作原理(但这是使用带有 Claude Desktop 的 Victoria Metrics MCP 服务器并配置为公共游乐场实例的真实对话):

  • :我的虚拟机中有哪些可用的租户?

  • 助手 在您的 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 中的 init 容器最后终止的原因。

    这些指标对于监控和故障排除可能很有价值:

    • PVC 删除时间戳指标可以帮助跟踪删除模式或识别卡住的 PVC。
    • 初始化容器终止原因指标可以帮助识别初始化容器中的常见故障模式。

    您是否希望我进一步解释这些指标所跟踪的内容,或者建议一些有用的查询来开始监控它们?

  • :好的,请问您能否创建重新标记规则来停止获取这些指标?

  • 助手我将创建一个重新标记配置,将这些从未查询过的指标从数据收集中排除。这将有助于减少存储和处理开销。以下是您可以添加到 VictoriaMetrics 抓取配置中的重新标记配置:

    relabel_configs: - action: drop source_labels: [__name__] regex: kube_persistentvolumeclaim_deletion_timestamp|kube_pod_init_container_status_last_terminated_reason

    此配置将:

    1. 查看每个指标的名称( __name__标签)
    2. 检查它是否符合指定的指标
    3. 删除匹配的指标,防止它们被收集和存储

    您可以将其添加到 VictoriaMetrics 配置文件中,或者如果您使用 Prometheus 作为 VictoriaMetrics 的抓取工具,则将其添加到 Prometheus 配置中相关的抓取作业配置中。 如果您想在实施此重新标记配置之前对其进行测试,可以使用指标重新标记调试工具来查看它将如何影响您的指标。

  • :是的,请在实时序列上调试此重新标记配置,看看它将如何影响我的指标

  • 助手完美!relabel 配置按预期工作了:

    • 前两个测试用例显示kube_persistentvolumeclaim_deletion_timestampkube_pod_init_container_status_last_terminated_reason指标均被正确删除(结果标签为空{} )。
    • 第三个测试用例确认其他指标(如kube_pod_status_phase被保留并且不受我们的删除规则的影响。

    您可以放心地将此重新标记配置添加到您的 VictoriaMetrics 或 Prometheus 配置中,以停止收集这些未使用的指标。这将节省存储空间并降低处理开销,而不会影响您当前的监控功能。

  • :但是我正在使用 VictoriaMetrics 操作员的 vmagent 资源,您能否为我提供使用此重新标记配置的代理的部分规范?

  • Assistant您说得对,由于您使用的是 VictoriaMetrics Operator 和 VMAgent 自定义资源,因此配置需要采用适合该 CR 的格式。以下是如何将 relabel 配置添加到 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
    • 这是一个全局重新标记,将在存储之前应用于所有指标
  • :我决定不删除这些指标,只是使用下采样来降低它们的采样率。我现在有哪些下采样参数?

  • 助手我可以看到您目前有以下下采样配置:

    -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用于调试下采样配置

但您可以使用任何其他工具并以自己的方式组合它们。

免责声明

此类人工智能服务和代理以及 MCP 服务器无法保证结果的准确性、完整性和可靠性。您应该仔细检查使用人工智能获得的结果。MCP 服务器及其响应的质量很大程度上取决于客户端的功能以及您所使用的模型的质量。

贡献

欢迎为 MCP VictoriaMetrics 项目做出贡献!欢迎提交问题、功能请求或拉取请求。

-
security - not tested
A
license - permissive license
-
quality - not tested

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

mcp-victoriametrics

  1. 特征
    1. 要求
      1. 安装
        1. 源代码
        2. 二进制文件
        3. Docker
      2. 配置
        1. 配置示例
      3. 在客户端中设置
        1. 光标
        2. 克劳德桌面
        3. 克劳德·科德
        4. Visual Studio 代码
        5. 泽德
        6. JetBrains IDE
        7. 风帆冲浪
        8. 亚马逊基岩
        9. 使用 Docker 代替二进制文件
      4. 用法
        1. 工具集
        2. 提示
      5. 对话框示例
        1. 免责声明
          1. 贡献

            Related MCP Servers

            View all related MCP servers

            ID: 4ogwgtlwc2