VictoriaMetrics
A time-series database and monitoring system supporting Prometheus ingestion, MetricsQL queries, retention, and clustered deployments.
Why consider VictoriaMetrics?
VictoriaMetrics is a fast, cost-effective open-source time series database and monitoring solution for handling high-volume metric ingestion and long-term storage. It provides drop-in compatibility with Prometheus ecosystems while significantly reducing CPU, RAM, and disk storage requirements.
Learn VictoriaMetrics by building
Practical setup notes, real use cases, and copy-ready examples in one focused guide.
In this guide4 sections
VictoriaMetrics: High-Performance Time Series Database and Monitoring
VictoriaMetrics is an open-source time series database and monitoring platform designed to provide high-performance, cost-effective storage for time series data across systems of all sizes (README). Managing large volumes of telemetry data in modern cloud infrastructure often challenges traditional monitoring tools due to high memory usage, heavy disk IO churn, and steep storage footprint overhead. VictoriaMetrics solves these operational hurdles by offering a drop-in Prometheus replacement that scales horizontally while substantially decreasing compute and hardware requirements on the official VictoriaMetrics website.
The system is built to accommodate diverse infrastructure requirements and scale seamlessly from individual servers to massive multi-tenant enterprise deployments. VictoriaMetrics is distributed under the Apache License 2.0 and provides both a single-node deployment and a horizontally scalable cluster architecture (license documentation). The single-node edition runs as a self-contained executable that simplifies operation for small-to-medium clusters, while the distributed cluster architecture separates data ingestion, query processing, and persistent storage layers to deliver elastic horizontal scaling across independent machines under the official Apache 2.0 license.
Telemetry Ingestion and Edge Collection with vmagent
In high-throughput environments, centralizing metric collection and preprocessing before writing data to long-term storage reduces network saturation and improves pipeline reliability. The dedicated vmagent service operates as a lightweight collector that scrapes metric endpoints, applies relabeling rules, and transmits telemetry to storage using standard remote write protocols (vmagent documentation). It functions as an agile drop-in replacement for Prometheus scraping daemons, allowing engineering teams to retain existing scrape configurations while benefiting from unified metric routing.
To configure metric collection across remote endpoints, operators pass scrape configurations directly to the binary:
/path/to/vmagent -promscrape.config=/path/to/prometheus.yml -remoteWrite.url=https://victoria-metrics-host:8428/api/v1/writeEdge environments often encounter network degradation, intermittent connectivity loss, or storage outages. When network connections to upstream storage are unstable or interrupted, vmagent buffers collected metrics to local disk storage and automatically flushes the queue once connectivity is restored (vmagent documentation). This on-disk queuing mechanism safeguards critical operational telemetry against packet drops and data loss during unforeseen upstream infrastructure outages.
Running monitoring infrastructure at scale requires careful optimization of cluster overhead. The metric collection pipeline is engineered for low resource overhead, consuming significantly less RAM, CPU processing capacity, disk IO operations, and network bandwidth than standard Prometheus agents (vmagent architecture). This efficiency enables organizations to run hundreds of collection nodes across Kubernetes clusters and bare-metal environments with negligible resource consumption.
Alert Evaluation and Notification Routing with vmalert
Continuous anomaly detection and alerting are essential for maintaining service level objectives across production workloads. The vmalert component evaluates alerting and recording rules against configured data sources and routes triggered notifications to Prometheus Alertmanager instances (vmalert documentation). By offloading query execution and rule calculation from storage nodes to dedicated evaluators, vmalert maintains predictable alerting schedules even during periods of heavy analytical query load.
Heterogeneous observability environments often span multiple database engines and query protocols. The vmalert evaluation daemon natively integrates with VictoriaMetrics, VictoriaLogs, VictoriaTraces, Graphite, and standard Prometheus compatible data storage backends (vmalert integrations). This broad protocol compatibility allows teams to maintain unified alerting logic across time series metrics, structured log pipelines, and distributed trace backends without maintaining separate notification stacks.
Access Control and Request Routing with vmauth
Securing multi-tenant telemetry and routing requests across distributed clusters requires flexible proxying infrastructure. The vmauth proxy provides authentication, load balancing, and request routing across VictoriaMetrics clusters and external HTTP services (vmauth documentation). It allows platform administrators to enforce granular access policies, terminate TLS connections, and direct read or write traffic to appropriate tenant namespaces based on HTTP headers and bearer tokens.
To launch the authentication proxy, specify the configuration file directly:
/path/to/vmauth -auth.config=/path/to/auth/config.ymlThe vmauth proxy accepts HTTP requests on port 8427 and proxies them according to the provided -auth.config routing rules (vmauth proxy).
Orchestrating VictoriaMetrics with Docker Compose
For local testing, validation, and small-scale deployment, container orchestration offers a clean approach to bootstrapping the entire monitoring stack. The official Docker Compose environment bundles VictoriaMetrics core components alongside Alertmanager and Grafana for local development and rapid evaluation (docker environment). This pre-configured stack includes automated target discovery, metric collection, and dashboard visualization out of the box.
To start the single-node stack from the repository root, run:
make docker-vm-single-upExecuting this command starts the single-node storage engine, provisions the vmagent collector, and boots Grafana with pre-configured dashboards (docker guide). Developers can review code and contribute enhancements on the official VictoriaMetrics GitHub repository and track new versions on the official releases page.
Related tools
More options with a similar category or technology profile.
dash.
Simple, modern server dashboard and hardware monitor for homelabs.
Xen Orchestra
Complete web-based management and backup solution for XCP-ng and XenServer.
Cockpit Project
Web-based graphical interface for Linux servers with zero overhead.
Kresus
Self-hosted personal finance manager with automatic bank synchronization.