mcp-victoriametrics について
mcp-victoriametricsは、VictoriaMetricsインスタンスを扱うエンジニアやツール向けのMCPサーバーです。メトリクス、アラートルール、設定、利用状況を調べる読み取り専用APIと、検索可能な組み込みドキュメントを提供します。
主な機能
- 01メトリクスのクエリとデータ探索
- 02メトリクスと時系列の一覧・エクスポート
- 03アラート・記録ルールの分析
- 04インスタンス設定とカーディナリティの確認
- 05クエリや保持設定のデバッグ
- 06組み込みVictoriaMetricsドキュメントの検索
活用シーン
- 01メトリクスとオブザーバビリティデータの調査
- 02アラートルールと結果の確認
- 03リラベルや保持設定のデバッグ
MCP 対応
このMCPサーバーは、stdio、SSE、またはStreamable HTTPを通じてVictoriaMetrics APIと組み込みドキュメントをMCPクライアントに公開します。単一ノード、クラスター、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 クライアントで使用するためのものです。
Public VictoriaMetrics Playground で動作するように設定されており、Streamable HTTP モードで利用できます。
Claude Desktop の設定例を以下に示します。
要件
- VictoriaMetrics または VictoriaMetrics Cloud のインスタンス(シングルノード または クラスター)
- 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
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 モードが有効になります。
サーバーモードの詳細については、設定 セクションをご覧ください。
利用可能な Docker イメージは、github registry で確認できます。
stdio モードのクライアントで MCP サーバーを使用する際の Docker の詳細については、バイナリの代わりに 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 Server は、環境変数で設定します。
| 変数 | 説明 | 必須 | デフォルト | 許可される値 |
|---|---|---|---|---|
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 | ストリーマブル HTTP プロトコルのハートビート間隔を定義します。 ネットワークインフラ(ゲートウェイなど)によって接続が閉じられないように、MCP サーバーが GET 接続を通じてクライアントにハートビートを送信します。 | いいえ | 30s | - |
MCP_LOG_FORMAT | ログ出力形式 | いいえ | text | text、json |
MCP_LOG_LEVEL | 最小ログレベル | いいえ | info | debug、info、warn、error |
| VictoriaMetrics インスタンスには、次の 2 つの方法で接続できます。 |
VM_INSTANCE_ENTRYPOINT+VM_INSTANCE_TYPE+VM_INSTANCE_BEARER_TOKEN(任意)の環境変数を使用して、任意のシングルノードまたはクラスター構成の VictoriaMetrics インスタンスに接続します。VMC_API_KEY環境変数を使用して、VictoriaMetrics Cloud インスタンスを操作します。
モード
MCP サーバーは、次の動作モード(トランスポート)をサポートしています。
stdio- 標準入力/出力モードです。サーバーは標準入力からコマンドを読み取り、標準出力に応答を書き込みます。これがデフォルトのモードで、ローカルサーバーに適しています。sse- Server-Sent Events です。サーバーは SSE 接続用の/sseおよび/messageエンドポイントを公開します。http- Streamable HTTP です。サーバーは HTTP 接続用の/mcpエンドポイントを公開します。
トランスポートの詳細については、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 エンドポイント(Streamable HTTP をサポートする MCP クライアント向け) |
/metrics | MCP サーバーを監視するための Prometheus 形式のメトリクス |
/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>"
Streamable 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 サーバーを使用するアシスタントとの対話例です。どのように動作するかを理解するのに役立ちます(ただし、これは Claude Desktop で VictoriaMetrics MCP サーバーを使用し、公開プレイグラウンドインスタンスを利用するよう設定した、実際の対話です)。
-
あなた:VM で利用可能なテナントは何ですか?
-
アシスタント VictoriaMetrics インスタンスでは、次のテナントが利用可能です。
0:0(デフォルトテナント)、1:0、10:0、100:0 -
あなた:これからはデフォルトテナントだけを使ってください
-
アシスタント:承知しました。これからは、VictoriaMetrics インスタンスでのすべての操作にデフォルトテナント(0:0)のみを使用します。
-
あなた:どのようなメトリクスがありますか?
-
アシスタント:VictoriaMetrics インスタンスには、多数のメトリクスがあります。次のように、さまざまなシステムやコンポーネントのメトリクスが含まれています。
- システムメトリクス(
node_、machine_など)、 - Kubernetes メトリクス(
kube_、container_、apiserver_など)、 - VictoriaMetrics 固有のメトリクス(
vm_、vmagent_、vmalert_など)、 - Go ランタイムメトリクス(
go_)、 - Prometheus 関連のメトリクス(
scrape_、promhttp_)、 - さまざまなアプリケーションメトリクス(
argocd_、alertmanager_)。
クエリ可能なメトリクスは 2000 を超えます。さらに詳しく調べたいメトリクスの種類はありますか?
- システムメトリクス(
-
あなた:わかりました。これからは Kubernetes メトリクスを使いましょう。この中で一度もクエリされていないメトリクスを教えてください。
-
アシスタント:結果を見ると、一度もクエリされていない Kubernetes メトリクス(クエリ数が 0)が 2 つあります。
kube_persistentvolumeclaim_deletion_timestamp- このメトリクスは、PersistentVolumeClaims が削除対象としてマークされた時刻に関する情報を提供します。kube_pod_init_container_status_last_terminated_reason- このメトリクスは、Pod 内の 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 の設定ファイル、または VictoriaMetrics のスクレイパーとして Prometheus を使用している場合は、Prometheus 設定内の該当するスクレイプジョブ設定に追加できます。 このリラベル設定を実装前にテストする場合は、メトリクスのリラベルデバッグツールを使って、メトリクスへの影響を確認できます。
- 各メトリクスの名前(
-
あなた:はい、このリラベル設定がメトリクスにどのような影響を与えるか、実際の時系列データを使ってリアルタイムでデバッグしてください。
-
アシスタント:すばらしいです!リラベル設定は期待どおりに機能しています。
- 最初の 2 つのテストケースでは、
kube_persistentvolumeclaim_deletion_timestampとkube_pod_init_container_status_last_terminated_reasonの両方のメトリクスが正しく破棄されること(結果のラベルが空の{}になること)が確認できます。 - 3 つ目のテストケースでは、
kube_pod_status_phaseなどの他のメトリクスが保持され、破棄ルールの影響を受けないことが確認できます。
未使用のこれらのメトリクスの収集を停止するには、このリラベル設定を VictoriaMetrics または Prometheus の設定に安心して追加できます。現在の監視機能に影響を与えずに、ストレージ容量を節約し、処理のオーバーヘッドを削減できます。
- 最初の 2 つのテストケースでは、
-
あなた:ただし、VictoriaMetrics Operator の vmagent リソースを使っています。このリラベル設定を含むエージェントの仕様の一部を提示してもらえますか?
-
アシスタント:おっしゃるとおり、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 の spec では、インラインのリラベルルールに
inlineRelabelConfigを使用します。 - フィールド名は
source_labelsではなくsourceLabelsです(Prometheus の設定とは異なります)。 - これはグローバルなリラベル設定で、保存前のすべてのメトリクスに適用されます。
- VMAgent の spec では、インラインのリラベルルールに
-
あなた:これらのメトリクスを削除するのではなく、ダウンサンプリングを使ってサンプルレートを下げることにしました。現在のダウンサンプリングパラメーターを教えてください。
-
アシスタント:現在、次のダウンサンプリング設定があることを確認できます。
-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 Server は Prometheus 形式のメトリクスを提供します(エンドポイントを参照)。これらのメトリクス用のリポジトリ内のシンプルな Grafana ダッシュボードも利用できます。
FAQ
シンプルな API プロキシに期待するよりも、MCP サーバーが多くのリソースを使用するのはなぜですか?
サーバーには、documentation ツール用の VictoriaMetrics のドキュメントとブログ記事を収録したベクトルデータベースが組み込まれています。
これにより、すべてのデータを LLM に渡さなくても、VictoriaMetrics に関する複雑な質問に回答できます。
これがリソース使用の主な要因です。使用量を減らすには、環境変数 MCP_DISABLED_TOOLS に documentation を追加して、ベクトルデータベースの読み込みを完全に無効にします。
1 つの MCP サーバーインスタンスを複数の VictoriaMetrics インスタンスで使用するにはどうすればよいですか?
MCP クライアント設定の HTTP ヘッダー値に基づいてインスタンス間で MCP 呼び出しをルーティングするには、MCP Server の MCP_PASSTHROUGH_HEADERS パラメーターとvmauth のヘッダーベースルーティングを組み合わせて使用できます。
ロードマップ
- 「クエリを整形」ツールのサポート(
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
- VictoriaMetrics での実装を前提に、メトリクスのメタデータをサポート
- 認証をサポート
- 説明とドキュメントへのリンクを掲載した静的なインデックスページを追加
紹介
免責事項
このような MCP サーバーを含む AI サービスやエージェントは、結果の正確性、完全性、信頼性を保証できません。 AI で得られた結果は必ずご自身で確認してください。
MCP サーバーの品質とその応答は、ご利用のクライアントの機能と使用するモデルの品質に大きく左右されます。
貢献
MCP VictoriaMetrics プロジェクトへの貢献を歓迎します!
お気軽に、イシュー、機能リクエスト、プルリクエストを送信してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。