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-Server

Die Implementierung des Model Context Protocol (MCP) -Servers für VictoriaMetrics .

Dies ermöglicht den Zugriff auf Ihre VictoriaMetrics-Instanz und die nahtlose Integration mit den APIs und der Dokumentation von VictoriaMetrics . Es bietet Ihnen eine umfassende Schnittstelle für Überwachungs-, Beobachtungs- und Debugging-Aufgaben im Zusammenhang mit Ihren VictoriaMetrics-Instanzen und ermöglicht erweiterte Automatisierungs- und Interaktionsfunktionen für Ingenieure und Tools.

Merkmale

Mit diesem MCP-Server können Sie fast alle schreibgeschützten APIs von VictoriaMetrics verwenden, d. h. alle in VMUI verfügbaren Funktionen:

  • Abfragen von Metriken und Erkunden von Daten (sogar Zeichnen von Diagrammen, wenn Ihr Client dies unterstützt)
  • Auflisten und Exportieren verfügbarer Metriken, Beschriftungen, Beschriftungswerte und ganzer Reihen
  • Analysieren Ihrer Alarmierungs- und Aufzeichnungsregeln und Alarme
  • Parameter Ihrer VictoriaMetrics-Instanz werden angezeigt
  • Untersuchen der Kardinalität Ihrer Daten- und Metriknutzungsstatistiken
  • Analysieren Ihrer Abfragen
  • Debuggen Ihrer Relabeling-Regeln, Downsampling- und Aufbewahrungsrichtlinienkonfigurationen

Darüber hinaus enthält der MCP-Server eingebettete aktuelle Dokumentationen und kann diese ohne Online-Zugriff durchsuchen.

Weitere Einzelheiten zu den genau verfügbaren Tools und Eingabeaufforderungen finden Sie im Abschnitt „Verwendung“ .

Sie können die Funktionalität von Tools und Dokumenten in Ihren Eingabeaufforderungen kombinieren und großartige Anwendungsszenarien für Ihre VictoriaMetrics-Instanz entwickeln. Sehen Sie sich einfach den Abschnitt mit den Dialogbeispielen an, um zu sehen, wie es funktionieren kann. Beachten Sie bitte, dass die Qualität des MCP-Servers und seiner Antworten stark von den Fähigkeiten Ihres Clients und der Qualität des verwendeten Modells abhängt.

Sie können den MCP-Server auch mit anderen MCP-Servern für Observability oder Dokumentensuche kombinieren und so noch leistungsfähigere Ergebnisse erzielen.

Anforderungen

Installation

Gehen

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

Quellcode

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

Binärdateien

Laden Sie einfach die neueste Version von der Seite „Releases “ herunter und fügen Sie sie in Ihren PATH ein.

Docker

Demnächst verfügbar...

Konfiguration

Der MCP-Server für VictoriaMetrics wird über Umgebungsvariablen konfiguriert:

VariableBeschreibungErforderlichStandardZulässige Werte
VM_INSTANCE_ENTRYPOINTURL zur VictoriaMetrics-InstanzJa--
VM_INSTANCE_TYPETyp der VictoriaMetrics-InstanzJa-single , cluster
VM_INSTANCE_BEARER_TOKENAuthentifizierungstoken für die VictoriaMetrics-APINEIN--
MCP_SERVER_MODEServerbetriebsmodusNEINstdiostdio , sse
MCP_SSE_ADDRAdresse, auf der der SSE-Server lauschen sollNEINlocalhost:8080-

Konfigurationsbeispiele

# 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"

Einrichtung in Clients

Cursor

Gehen Sie zu: Settings -> Cursor Settings -> MCP -> Add new global MCP server und fügen Sie die folgende Konfiguration in Ihre Cursordatei ~/.cursor/mcp.json ein:

{ "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>" } } } }

Weitere Informationen finden Sie in den Cursor MCP-Dokumenten .

Claude Desktop

Fügen Sie dies zu Ihrer Claude Desktop-Datei claude_desktop_config.json hinzu (Sie finden es, wenn Sie Settings -> Developer -> Edit config bearbeiten öffnen):

{ "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>" } } } }

Weitere Informationen finden Sie in den Claude Desktop MCP-Dokumenten .

Claude Code

Führen Sie den folgenden Befehl aus:

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>

Weitere Informationen finden Sie in den MCP-Dokumenten von Claude Code .

Visual Studio Code

Fügen Sie dies zu Ihrer VS Code MCP-Konfigurationsdatei hinzu:

{ "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>" } } } }

Weitere Informationen finden Sie in den VS Code MCP-Dokumenten .

Zed

Fügen Sie Ihrer Zed-Konfigurationsdatei Folgendes hinzu:

"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": {} } }

Weitere Informationen finden Sie in den Zed MCP-Dokumenten .

JetBrains IDEs

  • Öffnen Sie Settings -> Tools -> AI Assistant -> Model Context Protocol (MCP) .
  • Klicken Sie Add (+)
  • As JSON auswählen
  • Tragen Sie in das Eingabefeld Folgendes ein:
{ "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

Fügen Sie Ihrer Windsurf MCP-Konfigurationsdatei Folgendes hinzu.

{ "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>" } } } }

Weitere Informationen finden Sie in den Windsurf MCP-Dokumenten .

Amazon Bedrock

Demnächst verfügbar...

Verwenden von Docker anstelle von Binärdateien

Demnächst verfügbar...

Verwendung

Nachdem Sie den MCP-Server installiert und konfiguriert haben, können Sie ihn mit Ihrem bevorzugten MCP-Client verwenden.

Sie können den Dialog mit dem KI-Assistenten mit folgendem Satz starten:

Use MCP VictoriaMetrics in the following answers

Dies ist jedoch nicht erforderlich. Sie können einfach Fragen stellen, und der Assistent verwendet automatisch die Tools und die Dokumentation, um Ihnen die besten Antworten zu liefern. Werfen Sie einen Blick in die Dialogbeispiele, um besser zu verstehen, was Sie damit tun können.

Werkzeugsatz

MCP VictoriaMetrics bietet zahlreiche Tools für die Interaktion mit Ihrer VictoriaMetrics-Instanz.

Hier ist eine Liste der verfügbaren Tools:

WerkzeugBeschreibung
queryFühren Sie sofortige PromQL/MetricsQL-Abfragen aus
query_rangeFühren Sie über einen bestimmten Zeitraum PromQL/MetricsQL-Abfragen aus
metricsAuflisten der verfügbaren Metriken
labelsAuflisten der verfügbaren Etikettennamen
label_valuesListenwerte für ein bestimmtes Label
seriesVerfügbare Zeitreihen auflisten
exportExportieren Sie Rohdaten der Zeitreihen in JSON oder CSV
rulesAlarmierungs- und Aufzeichnungsregeln anzeigen
alertsAktuelle Warnungen anzeigen (ausgelöst und ausstehend)
flagsNicht standardmäßige Flags der VictoriaMetrics-Instanz anzeigen
metric_statisticsStatistiken zur Metriknutzung (in Abfragen) abrufen
active_queriesAnzeigen aktuell ausgeführter Abfragen
top_queriesHäufigste oder langsamste Abfragen anzeigen
tsdb_statusAnzeigen der TSDB-Kardinalitätsstatistik
tenantsAuflisten der verfügbaren Mandanten in der Multi-Tenant-Cluster-Einrichtung
documentationSuche in der eingebetteten VictoriaMetrics-Dokumentation
metric_relabel_debugDebuggen von Prometheus-kompatiblen Umbenennungsregeln
downsampling_filters_debugDebuggen der Downsampling-Konfiguration
retention_filters_debugKonfiguration der Debug-Aufbewahrungsfilter

Eingabeaufforderungen

Der Server enthält vordefinierte Eingabeaufforderungen für allgemeine Aufgaben.

Dies sind im Moment nur Beispiele, die Prompt-Bibliothek wird in Zukunft erweitert:

PromptBeschreibung
unused_metricsFinden Sie Metriken, die nie abgefragt werden, und erstellen Sie Relabel-Konfigurationen, um deren Aufnahme zu stoppen
documentationDurchsuchen Sie die VictoriaMetrics-Dokumentation nach bestimmten Themen
rarely_used_metrics_with_high_cardinalityIdentifizieren Sie Metriken mit hoher Kardinalität, die selten abgefragt werden

Beachten Sie, dass Downsampling eine Enterprise-Funktion von VictoriaMetrics ist. Ihre aktuelle Lizenz erlaubt Ihnen die Nutzung, da die Lizenzdatei konfiguriert ist.

Dialogbeispiel

Dies ist nur ein Beispiel für einen Dialog mit dem Assistenten unter Verwendung des MCP-Servers, das zum Verständnis der Funktionsweise beitragen kann (es handelt sich jedoch um einen echten Dialog unter Verwendung des Victoria Metrics MCP-Servers mit Claude Desktop und Konfiguration als öffentliche Playground-Instanz ):

  • Sie : Welche Mandanten sind in meiner VM verfügbar?

  • Assistent In Ihrer VictoriaMetrics-Instanz sind die folgenden Mandanten verfügbar 0:0 (Standardmandant), 1:0 , 10:0 , 100:0

  • Sie : Verwenden Sie ab sofort nur noch den Standardmandanten

  • Assistent : Ich verstehe. Von nun an verwende ich für alle Vorgänge mit Ihrer VictoriaMetrics-Instanz nur noch den Standardmandanten (0:0).

  • Sie : Welche Kennzahlen haben wir?

  • Assistent : In Ihrer VictoriaMetrics-Instanz sind zahlreiche Metriken verfügbar. Die Liste enthält Metriken aus verschiedenen Systemen und Komponenten, wie zum Beispiel:

    • Systemmetriken ( node_ , machine_ usw.),
    • Kubernetes-Metriken ( kube_ , container_ , apiserver_ usw.),
    • VictoriaMetrics-spezifische Metriken ( vm_ , vmagent_ , vmalert_ usw.),
    • Go-Laufzeitmetriken ( go_ ),
    • Prometheus-bezogene Metriken ( scrape_ , promhttp_ ),
    • Verschiedene Anwendungsmetriken ( argocd_ , alertmanager_ ).

    Dies ist eine umfassende Liste mit über 2.000 Metriken, die für Abfragen zur Verfügung stehen. Gibt es einen bestimmten Metriktyp, den Sie genauer untersuchen möchten?

  • Sie : Okay, arbeiten wir ab jetzt mit Kubernetes-Metriken. Bitte zeigen Sie mir, welche dieser Metriken nie abgefragt wurden.

  • Assistent : Anhand der Ergebnisse kann ich erkennen, dass es zwei Kubernetes-Metriken gibt, die noch nie abgefragt wurden (Anzahl der Abfragen ist 0):

    • kube_persistentvolumeclaim_deletion_timestamp – Diese Metrik liefert Informationen darüber, wann PersistentVolumeClaims zum Löschen markiert wurden.
    • kube_pod_init_container_status_last_terminated_reason – Diese Metrik zeigt den Grund, warum Init-Container in Pods zuletzt beendet wurden.

    Diese Messwerte können für Überwachungs- und Fehlerbehebungszwecke hilfreich sein:

    • Die Metrik des PVC-Löschzeitstempels kann dabei helfen, Löschmuster zu verfolgen oder feststeckende PVCs zu identifizieren.
    • Die Metrik für den Grund der Beendigung des Init-Containers kann dabei helfen, häufige Fehlermuster in Ihren Initialisierungscontainern zu identifizieren.

    Möchten Sie, dass ich Ihnen mehr darüber erkläre, was diese Metriken verfolgen, oder einige nützliche Abfragen vorschlage, um mit der Überwachung zu beginnen?

  • Sie : Ja, bitte. Können Sie außerdem Regeln zur Neubezeichnung erstellen, um die Aufnahme dieser Messwerte zu unterbinden?

  • Assistent : Ich erstelle eine Relabel-Konfiguration, um diese nie abgefragten Metriken von der Erfassung auszuschließen. Dies reduziert den Speicher- und Verarbeitungsaufwand. Hier ist die Relabel-Konfiguration, die Sie Ihrer VictoriaMetrics-Scraping-Konfiguration hinzufügen können:

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

    Diese Konfiguration wird:

    1. Schauen Sie sich den Namen jeder Metrik an (das Label __name__ ).
    2. Überprüfen Sie, ob es einer der angegebenen Metriken entspricht
    3. Löschen Sie die übereinstimmenden Metriken und verhindern Sie so deren Erfassung und Speicherung.

    Sie können dies Ihrer VictoriaMetrics-Konfigurationsdatei oder den entsprechenden Scrape-Job-Konfigurationen in Ihrer Prometheus-Konfiguration hinzufügen, wenn Sie Prometheus als Scraper für VictoriaMetrics verwenden. Wenn Sie diese Relabel-Konfiguration vor der Implementierung testen möchten, können Sie das Debug-Tool für Metrik-Relabels verwenden, um die Auswirkungen auf Ihre Metriken zu prüfen.

  • Sie : Ja, bitte debuggen Sie diese Relabel-Konfiguration in Echtzeitreihen, um zu sehen, wie sie sich auf meine Metriken auswirken würde

  • Assistent : Perfekt! Die Neubeschriftungskonfiguration funktioniert wie erwartet:

    • Die ersten beiden Testfälle zeigen, dass sowohl die Metriken kube_persistentvolumeclaim_deletion_timestamp als auch kube_pod_init_container_status_last_terminated_reason korrekt gelöscht werden (die resultierenden Bezeichnungen sind leer {} ).
    • Der dritte Testfall bestätigt, dass andere Metriken wie kube_pod_status_phase erhalten bleiben und von unserer Drop-Regel nicht beeinflusst werden.

    Sie können diese Relabel-Konfiguration problemlos zu Ihrer VictoriaMetrics- oder Prometheus-Konfiguration hinzufügen, um die Erfassung dieser ungenutzten Metriken zu beenden. Dies spart Speicherplatz und reduziert den Verarbeitungsaufwand, ohne Ihre aktuellen Überwachungsfunktionen zu beeinträchtigen.

  • Sie : Aber ich verwende die vmagent-Ressource des VictoriaMetrics-Operators. Könnten Sie mir bitte einen Teil der Spezifikation für meinen Agenten mit dieser Relabel-Konfiguration geben?

  • Assistent : Sie haben Recht. Da Sie den VictoriaMetrics-Operator und die benutzerdefinierte VMAgent-Ressource verwenden, muss die Konfiguration im entsprechenden Format für diese CR vorliegen. So fügen Sie die Relabel-Konfiguration zu Ihrer VMAgent-Spezifikation hinzu:

    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 ...

    Wichtige Punkte:

    • In der VMAgent-Spezifikation verwenden Sie inlineRelabelConfig für Inline-Relabeling-Regeln
    • Das Feld heißt sourceLabels (nicht source_labels wie in der Prometheus-Konfiguration).
    • Dies ist eine globale Neubezeichnung, die auf alle Metriken angewendet wird, bevor sie gespeichert werden
  • Sie : Ich habe beschlossen, diese Messwerte nicht zu entfernen, sondern lediglich die Abtastrate durch Downsampling zu senken. Welche Downsampling-Parameter habe ich jetzt?

  • Assistent : Ich sehe, dass Sie derzeit die folgende Downsampling-Konfiguration haben:

    -downsampling.period="7d:1m,30d:5m,180d:30m"

    Das heisst:

    • Daten, die neuer als 7 Tage sind, werden in ihrer ursprünglichen Auflösung gespeichert
    • Daten, die zwischen 7 und 30 Tage alt sind, werden auf eine Auflösung von 1 Minute heruntergerechnet
    • Daten, die 30–180 Tage alt sind, werden auf eine Auflösung von 5 Minuten heruntergerechnet.
    • Daten, die älter als 180 Tage sind, werden auf eine Auflösung von 30 Minuten heruntergerechnet.

    Wenn Sie nun spezifische Downsampling-Regeln für diese selten abgefragten Metriken hinzufügen möchten, können Sie mit dem Debug-Tool für Downsampling-Filter testen, wie die neuen Regeln funktionieren. Testen wir eine Konfiguration, bei der wir aggressiveres Downsampling auf diese spezifischen Metriken anwenden:

    ...Serien abrufen und Downsampling-Filter-Debugger verwenden...

    Super! Unser Test funktioniert jetzt einwandfrei. Basierend auf der aktuellen Konfiguration und unseren Tests finden Sie hier eine empfohlene Downsampling-Konfiguration für Ihren VMAgent CR, die ein aggressiveres Downsampling auf die selten abgefragten Metriken anwendet:

    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 ...

    Diese Konfiguration:

    - Wendet für die selten abgefragten Metriken nach nur einem Tag ein Downsampling mit einer Auflösung von 10 Minuten an - Behält Ihre bestehende Downsampling-Richtlinie für alle anderen Metriken bei

    Die Reihenfolge der Downsampling-Regeln ist wichtig – spezifischere Regeln sollten zuerst aufgeführt werden.

Während dieses Dialogs verwendete der Assistent die folgenden Tools:

  • tenants , um die Liste der verfügbaren Mieter zu erhalten
  • documentation , um Informationen zu Funktionalität und Datenformaten zu erhalten
  • metrics , um die Liste der verfügbaren Metriken abzurufen
  • metrics_staistics um Informationen zur Metriknutzung zu erhalten
  • series , um die Zeitreihen zum Debuggen zu erhalten
  • metric_relabel_debug zum Debuggen von Relabeling-Regeln
  • flags zum Abrufen von Informationen zu Instanzparametern
  • downsampling_filters_debug zum Debuggen der Downsampling-Konfiguration

Sie können aber auch beliebige andere Tools verwenden und diese auf Ihre eigene Weise kombinieren.

Haftungsausschluss

KI-Dienste und -Agenten sowie MCP-Server wie dieser können die Genauigkeit, Vollständigkeit und Zuverlässigkeit der Ergebnisse nicht garantieren. Sie sollten die mit KI erzielten Ergebnisse überprüfen. Die Qualität des MCP-Servers und seiner Antworten hängt stark von den Fähigkeiten Ihres Clients und der Qualität des verwendeten Modells ab.

Beitragen

Beiträge zum MCP VictoriaMetrics-Projekt sind willkommen! Senden Sie uns gerne Probleme, Funktionswünsche oder Pull Requests.

-
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. Merkmale
    1. Anforderungen
      1. Installation
        1. Gehen
        2. Quellcode
        3. Binärdateien
        4. Docker
      2. Konfiguration
        1. Konfigurationsbeispiele
      3. Einrichtung in Clients
        1. Cursor
        2. Claude Desktop
        3. Claude Code
        4. Visual Studio Code
        5. Zed
        6. JetBrains IDEs
        7. Windsurf
        8. Amazon Bedrock
        9. Verwenden von Docker anstelle von Binärdateien
      4. Verwendung
        1. Werkzeugsatz
        2. Eingabeaufforderungen
      5. Dialogbeispiel
        1. Haftungsausschluss
          1. Beitragen

            Related MCP Servers

            View all related MCP servers

            ID: 4ogwgtlwc2