Реализация сервера Model Context Protocol (MCP) для VictoriaMetrics.
Сервер предоставляет доступ к вашему инстансу VictoriaMetrics и обеспечивает бесшовную интеграцию с VictoriaMetrics API и документацией. Он даёт полноценный интерфейс для задач мониторинга, наблюдаемости (observability) и отладки, связанных с вашими инстансами VictoriaMetrics, а также открывает возможности расширенной автоматизации и взаимодействия для инженеров и инструментов.
Возможности
MCP-сервер позволяет использовать практически все read-only API VictoriaMetrics — то есть всё, что доступно в VMUI:
-
Выполнение запросов к метрикам и исследование данных (в том числе построение графиков, если клиент это поддерживает)
-
Перечисление и экспорт доступных метрик, меток, значений меток и целых серий
-
Анализ и тестирование правил алертинга и записи, а также самих алертов
-
Просмотр параметров инстанса VictoriaMetrics
-
Исследование кардинальности данных и статистики использования метрик
-
Анализ, трассировка, форматирование и объяснение запросов
-
Отладка правил релейблинга (relabeling), конфигураций даунсэмплинга (downsampling) и политик хранения (retention policy)
-
Интеграция с VictoriaMetrics Cloud
-
Веб-интерфейс с инструкциями по настройке и инспекцией инструментов на корневом эндпоинте (только в режиме Streamable HTTP)
Помимо этого, MCP-сервер содержит встроенную актуальную документацию и умеет выполнять поиск по ней без доступа к интернету.
Подробнее о конкретных доступных инструментах и промптах — в разделе Использование.
Возможности инструментов и поиска по документации можно сочетать в своих промптах и выстраивать мощные сценарии работы с VictoriaMetrics. Посмотрите раздел Пример диалога, чтобы лучше понять, как это работает. Обратите внимание: качество ответов MCP-сервера во многом зависит от возможностей клиента и качества используемой модели.
MCP-сервер также можно комбинировать с другими MCP-серверами для наблюдаемости или поиска по документации — это ещё больше расширяет возможности.
Попробовать без установки
Существует публично доступный инстанс VictoriaMetrics MCP Server, на котором можно протестировать функциональность без установки:
https://play-mcp.victoriametrics.com/mcp
Внимание! Этот URL не предназначен для открытия в браузере — он рассчитан на использование в MCP-клиентах.
Сервер работает в режиме Streamable HTTP и настроен для работы с публичным плейграундом VictoriaMetrics.
Пример конфигурации для Claude Desktop:
Требования
-
VictoriaMetrics или VictoriaMetrics Cloud (single-node или cluster)
-
Go 1.26 или выше (если требуется сборка из исходников)
Установка
Бинарные файлы
Скачайте последний релиз со страницы Releases и поместите бинарный файл в 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
VictoriaMetrics MCP Server можно запустить через Docker — это самый простой способ начать работу без установки 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. Подробнее о режимах работы сервера — в разделе Конфигурация.
Доступные Docker-образы можно найти в реестре GitHub.
Также смотрите раздел Использование Docker вместо бинарного файла для получения подробностей об использовании Docker с MCP-сервером в режиме stdio.
Из исходного кода
Для сборки бинарного файла из исходного кода:
-
Клонируйте репозиторий:
git clone https://github.com/VictoriaMetrics/mcp-victoriametrics.git cd mcp-victoriametrics -
Соберите бинарный файл из клонированного кода:
make build # после этого можно найти бинарный файл mcp-victoriametrics и скопировать его в PATH или запустить на месте -
Соберите образ из клонированного кода:
docker build -t mcp-victoriametrics . # после этого образ mcp-victoriametrics можно использовать для запуска или отправки в реестр
Helm
Подробнее об установке через Helm смотрите в документации Helm-чарта VictoriaMetrics MCP Server.
Конфигурация
MCP-сервер для VictoriaMetrics настраивается через переменные окружения:
| Переменная | Описание | Обязательная | Значение по умолчанию | Допустимые значения |
|---|---|---|---|---|
|
URL инстанса VictoriaMetrics (корневой URL |
Да (если не используется |
— |
— |
|
Тип инстанса VictoriaMetrics |
Да (если не используется |
— |
|
|
Токен аутентификации для VictoriaMetrics API |
Нет |
— |
— |
|
Пользовательские HTTP-заголовки для запросов (пары ключ=значение через запятую) |
Нет |
— |
— |
|
Имена HTTP-заголовков, которые нужно проксировать из входящих MCP-запросов в VictoriaMetrics (список через запятую). При коллизии переопределяет |
Нет |
— |
— |
|
ID тенанта по умолчанию для кластерного режима. Формат: |
Нет |
|
— |
|
Нет |
— |
— |
|
|
Режим работы сервера. Подробнее — в разделе Режимы. |
Нет |
|
|
|
Адрес для прослушивания в режиме SSE или HTTP |
Нет |
|
— |
|
Список инструментов для отключения (через запятую) |
Нет |
|
— |
|
Отключить все ресурсы (инструмент документации продолжит работать) |
Нет |
|
|
|
Интервал heartbeat для протокола streamable-http. Сервер будет отправлять клиенту heartbeat через GET-соединение, чтобы предотвратить закрытие соединения сетевой инфраструктурой (например, шлюзами). |
Нет |
|
— |
|
Формат вывода логов |
Нет |
|
|
|
Минимальный уровень логирования |
Нет |
|
|
Для подключения к инстансу VictoriaMetrics доступны два варианта:
-
Использовать переменные
VM_INSTANCE_ENTRYPOINT+VM_INSTANCE_TYPE+VM_INSTANCE_BEARER_TOKEN(опционально) для подключения к любому single-node или кластерному инстансу VictoriaMetrics. -
Использовать переменную
VMC_API_KEYдля работы с инстансами VictoriaMetrics Cloud.
Режимы
MCP-сервер поддерживает следующие режимы работы (транспорты):
-
stdio— режим стандартного ввода/вывода: сервер читает команды из stdin и пишет ответы в stdout. Это режим по умолчанию, подходящий для локальных серверов. -
sse— Server-Sent Events. Сервер предоставляет эндпоинты/sseи/messageдля SSE-соединений. -
http— Streamable HTTP. Сервер предоставляет эндпоинт/mcpдля HTTP-соединений.
Подробнее о транспортах — в документации MCP:
Примеры конфигурации
# Для single-node инстанса
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"
# Для кластера
export VM_INSTANCE_ENTRYPOINT="https://play.victoriametrics.com"
export VM_INSTANCE_TYPE="cluster"
export MCP_DISABLED_TOOLS="export,metric_statistics,test_rules" # отключить экспорт, статистику и unit-тесты правил
# Для VictoriaMetrics Cloud
export VMC_API_KEY="<you-api-key>"
# Режим сервера
export MCP_SERVER_MODE="sse"
export MCP_LISTEN_ADDR="0.0.0.0:8080"
# Пользовательские заголовки для аутентификации (например, за обратным прокси)
# Синтаксис: key=value через запятую
export VM_INSTANCE_HEADERS="<HEADER>=<HEADER_VALUE>,<HEADER>=<HEADER_VALUE>"
Эндпоинты
В режимах SSE и HTTP MCP-сервер предоставляет следующие эндпоинты:
| Эндпоинт | Описание |
|---|---|
|
Стартовая страница с инструкциями по настройке и инспекцией инструментов |
|
Эндпоинты для сообщений в режиме SSE (для MCP-клиентов с поддержкой SSE) |
|
HTTP-эндпоинт для потоковых сообщений в режиме HTTP (для MCP-клиентов с поддержкой Streamable HTTP) |
|
Метрики в формате Prometheus для мониторинга MCP-сервера |
|
Проверка работоспособности (liveness check) — убеждается, что сервер запущен |
|
Проверка готовности (readiness check) — убеждается, что сервер готов принимать запросы |
Настройка в клиентах
Cursor
Перейдите в Settings → Cursor Settings → MCP → Add new global MCP server и вставьте следующую конфигурацию в файл ~/.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/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>"
Если сервер запускается в режиме Streamable HTTP, его можно зарегистрировать командой:
codex mcp add victoriametrics --url http://localhost:8080/mcp
Подробнее — в документации Codex MCP.
Visual Studio Code
Добавьте следующее в файл конфигурации MCP для VS Code:
{
"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 IDEs
-
Откройте
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
Добавьте следующее в файл конфигурации MCP для Windsurf:
{
"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 вместо бинарного файла
VictoriaMetrics MCP Server можно запускать через Docker вместо локального бинарного файла. В этом случае замените команду запуска в приведённых выше примерах конфигурации следующим образом:
{
"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>"
}
}
}
}
Использование
Диалог с ИИ-ассистентом можно начать с фразы:
Use MCP VictoriaMetrics in the following answers
Впрочем, это необязательно — можно просто задавать вопросы, и ассистент автоматически воспользуется инструментами и документацией, чтобы дать наилучшие ответы. Загляните в раздел Пример диалога, чтобы лучше понять, что это даёт на практике.
Набор инструментов
MCP VictoriaMetrics предоставляет множество инструментов для работы с вашим инстансом VictoriaMetrics.
Список основных доступных инструментов:
| Инструмент | Описание | Включён по умолчанию |
|---|---|---|
|
Выполнение мгновенных PromQL/MetricsQL-запросов |
✅ |
|
Выполнение PromQL/MetricsQL-запросов за временной период |
✅ |
|
Список доступных метрик |
✅ |
|
Метаданные сохранённых метрик (тип, описание, единица измерения) |
✅ |
|
Список доступных имён меток |
✅ |
|
Список значений конкретной метки |
✅ |
|
Список доступных временных рядов |
✅ |
|
Экспорт сырых данных временных рядов в JSON или CSV |
❌ |
|
Просмотр правил алертинга и записи |
✅ |
|
Просмотр текущих алертов (активных и ожидающих) |
✅ |
|
Просмотр нестандартных флагов инстанса VictoriaMetrics |
❌ |
|
Статистика использования метрик (в запросах) |
✅ |
|
Просмотр выполняющихся в данный момент запросов |
✅ |
|
Просмотр наиболее частых или медленных запросов |
✅ |
|
Статистика кардинальности TSDB |
✅ |
|
Список доступных тенантов в мультитенантном кластере |
✅ |
|
Поиск по встроенной документации VictoriaMetrics |
✅ |
|
Отладка Prometheus-совместимых правил релейблинга |
❌ |
|
Отладка конфигурации даунсэмплинга |
❌ |
|
Отладка конфигурации фильтров хранения |
❌ |
|
Форматирование PromQL/MetricsQL-запросов |
✅ |
|
Разбор PromQL/MetricsQL-запросов с объяснением их работы |
✅ |
|
Unit-тестирование правил алертинга и записи с помощью vmalert |
❌ |
Дополнительные инструменты доступны пользователям VictoriaMetrics Cloud (при указании параметра VMC_API_KEY):
| Инструмент | Описание | Включён по умолчанию |
|---|---|---|
|
Список доступных деплойментов в VictoriaMetrics Cloud |
✅ |
|
Список доступных облачных провайдеров в VictoriaMetrics Cloud |
✅ |
|
Список доступных регионов облачных провайдеров в VictoriaMetrics Cloud |
✅ |
|
Список доступных тиров деплоймента в VictoriaMetrics Cloud |
✅ |
|
Список доступных токенов доступа к деплойменту в VictoriaMetrics Cloud |
✅ |
|
Список доступных имён файлов правил алертинга и записи в VictoriaMetrics Cloud |
✅ |
|
Содержимое конкретного файла правил алертинга или записи в VictoriaMetrics Cloud |
✅ |
Промпты
Сервер включает заранее определённые промпты для типовых задач.
На данный момент это лишь примеры — библиотека промптов будет расширяться:
| Промпт | Описание |
|---|---|
|
Найти метрики, которые никогда не запрашиваются, и создать конфиги релейблинга для прекращения их приёма |
|
Поиск в документации VictoriaMetrics по конкретным темам |
|
Выявить метрики с высокой кардинальностью, которые редко запрашиваются |
Пример диалога
Ниже — пример диалога с ассистентом через MCP-сервер, демонстрирующий возможности на практике (это реальный диалог с VictoriaMetrics MCP Server в Claude Desktop, настроенном на публичный плейграунд):
-
> Вы: Какие тенанты доступны в моей 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` — время, когда PersistentVolumeClaim был помечен на удаление.
-
`kube_pod_init_container_status_last_terminated_reason` — причина последнего завершения init-контейнера в поде.
Эти метрики могут быть полезны для мониторинга и диагностики:
-
Метрика временной метки удаления PVC поможет отслеживать паттерны удаления или выявлять зависшие PVC.
-
Метрика причины завершения init-контейнера поможет обнаруживать типовые сбои при инициализации.
Рассказать подробнее о том, что отслеживают эти метрики, или предложить полезные запросы для начала мониторинга?
-
-
> Вы: Да, пожалуйста. И можешь создать правила релейблинга, чтобы прекратить приём этих метрик?
-
> Ассистент: Создам конфигурацию релейблинга для исключения этих никогда не запрашиваемых метрик. Это сократит нагрузку на хранилище и обработку. Вот конфигурация для добавления в настройку сбора VictoriaMetrics:
relabel_configs: - action: drop source_labels: [__name__] regex: kube_persistentvolumeclaim_deletion_timestamp|kube_pod_init_container_status_last_terminated_reasonЭта конфигурация:
-
Смотрит на имя каждой метрики (метка
name) -
Проверяет, соответствует ли оно одной из указанных метрик
-
Удаляет совпадающие метрики, предотвращая их сбор и хранение
Добавьте это в файл конфигурации VictoriaMetrics или в настройки соответствующих задач сбора в конфигурации Prometheus, если вы используете Prometheus как скрапер для VictoriaMetrics. Если хотите протестировать конфигурацию релейблинга перед применением — можно воспользоваться инструментом отладки релейблинга метрик.
-
-
> Вы: Да, пожалуйста, отладь этот конфиг релейблинга на реальных временных рядах, чтобы посмотреть, как он повлияет на метрики.
-
> Ассистент: Конфиг релейблинга работает как ожидается:
-
Первые два тест-кейса показывают, что метрики
kube_persistentvolumeclaim_deletion_timestampиkube_pod_init_container_status_last_terminated_reasonкорректно удаляются (результирующие метки пусты:{}). -
Третий тест-кейс подтверждает, что другие метрики — например,
kube_pod_status_phase— сохраняются и не затрагиваются нашим правилом drop.Можно смело добавлять эту конфигурацию релейблинга в VictoriaMetrics или Prometheus — сбор неиспользуемых метрик прекратится, а текущие возможности мониторинга не пострадают.
-
-
> Вы: Но я использую ресурс vmagent оператора VictoriaMetrics. Можешь дать мне фрагмент спецификации для моего агента с этой конфигурацией релейблинга?
-
> Ассистент: Раз вы используете VictoriaMetrics Operator и кастомный ресурс VMAgent, конфигурацию нужно оформить в формате этого CR. Вот как добавить релейблинг в спецификацию VMAgent:
apiVersion: operator.victoriametrics.com/v1beta1 kind: VMAgent metadata: name: your-vmagent-name spec: # ... ваша существующая конфигурация ... # Добавьте этот раздел для глобального релейблинга метрик inlineRelabelConfig: - action: drop sourceLabels: ["__name__"] regex: kube_persistentvolumeclaim_deletion_timestamp|kube_pod_init_container_status_last_terminated_reason # ... остальная конфигурация ...Ключевые моменты:
-
В спецификации VMAgent используется
inlineRelabelConfigдля встроенных правил релейблинга -
Поле называется
sourceLabels(неsource_labels, как в конфигурации Prometheus) -
Это глобальный релейблинг, применяемый ко всем метрикам перед сохранением
-
-
> Вы: Я решил не удалять эти метрики, а просто снизить частоту дискретизации с помощью даунсэмплинга. Какие параметры даунсэмплинга у меня настроены сейчас?
-
> Ассистент: Текущая конфигурация даунсэмплинга такова:
-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: # ... ваша существующая конфигурация ... # Обновите секцию vmstorage новыми параметрами даунсэмплинга 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' # ... остальная конфигурация ...Эта конфигурация:
-
Применяет даунсэмплинг до разрешения 10 минут для редко запрашиваемых метрик уже через 1 день
-
Сохраняет существующую политику даунсэмплинга для всех остальных метрик
Порядок правил даунсэмплинга важен — более специфичные правила должны идти первыми.
-
В ходе этого диалога ассистент использовал следующие инструменты:
-
tenants— для получения списка доступных тенантов -
documentation— для информации о функциональности и форматах данных -
metrics— для получения списка доступных метрик -
metrics_statistics— для информации об использовании метрик -
series— для получения временных рядов при отладке -
metric_relabel_debug— для отладки правил релейблинга -
flags— для информации о параметрах инстанса -
downsampling_filters_debug— для отладки конфигурации даунсэмплинга
Однако вы можете использовать любые другие инструменты и комбинировать их по-своему.
Мониторинг
В режимах SSE и HTTP MCP-сервер предоставляет метрики в формате Prometheus (см. раздел Эндпоинты). В репозитории также доступен простой дашборд Grafana для этих метрик.
FAQ
Почему MCP-сервер потребляет больше ресурсов, чем можно ожидать от простого прокси к API?
Сервер содержит встроенную векторную базу данных с документацией VictoriaMetrics и публикациями блога — она используется инструментом documentation. Это позволяет отвечать на сложные вопросы о VictoriaMetrics, не передавая все данные в LLM. Именно векторная БД является основным потребителем ресурсов. Чтобы сократить нагрузку, добавьте documentation в переменную окружения MCP_DISABLED_TOOLS — это полностью отключит загрузку векторной базы данных.
Как использовать один инстанс MCP-сервера для нескольких инстансов VictoriaMetrics?
Используйте параметр MCP_PASSTHROUGH_HEADERS в MCP-сервере совместно с маршрутизацией по заголовкам в vmauth — это позволит направлять MCP-запросы между инстансами на основе значений HTTP-заголовков из конфигурации вашего MCP-клиента.
Дорожная карта
-
✓ Поддержка инструмента "Prettify query" (реализовано в
v0.0.5) -
✓ Поддержка инструмента "Explain query" (реализовано в
v0.0.6) -
✓ Поддержка CI-пайплайна для сборки и публикации мультиархитектурных Docker-образов (реализовано в
v1.0.0) -
✓ Инструмент для unit-тестирования правил алертинга и записи (реализовано в
v0.0.7) -
✓ Опциональная интеграция с VictoriaMetrics Cloud (через API-ключи) (реализовано в
v0.0.9) -
❏ Добавление дополнительных знаний в сервер помимо текущего инструмента документации:
-
✓ Публикации блога VictoriaMetrics (реализовано в
v1.1.0) -
✓ Схемы CRD
-
-
❏ Реализация мультитенантной версии MCP (с поддержкой нескольких деплойментов)
-
❏ Добавление инструмента валидации флагов/конфигураций
-
❏ Поддержка инструмента