VictoriaMetrics is a fast, cost-effective and scalable monitoring solution and time series database.
It supports the Prometheus pull model and various push protocols (Graphite, InfluxDB, OpenTSDB) for data ingestion. It is optimized for storage with high-latency IO, low IOPS and time series with high churn rate.
For reading the data and evaluating alerting rules, VictoriaMetrics supports the PromQL, MetricsQL and Graphite query languages. VictoriaMetrics Single is fully autonomous and can be used as a long-term storage for time series.
VictoriaMetrics Single can easily handle 10M+ of active time series on a single instance. It is perfect for small and medium environments.
Update package index files
sudo apt update
Create a download directory
mkdir ~/downloads && cd ~/downloads
Get VictoriaMetrics
wget https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/v1.91.3/victoria-metrics-linux-amd64-v1.91.3.tar.gz
Extract package contents
tar xzvf victoria-metrics-linux-amd64-v1.91.3.tar.gz
Move VictoriaMetrics single binary to bin folder
sudo mv victoria-metrics-prod /usr/local/bin/victoriametrics
Create a directory to hold the PID file
sudo mkdir /run/victoriametrics
Create service for VictoriaMetrics
sudo nano /etc/systemd/system/victoriametrics.service
[Unit]
Description=VictoriaMetrics
After=network.target
[Service]
Type=simple
StartLimitBurst=5
StartLimitInterval=0
Restart=on-failure
RestartSec=1
PIDFile=/run/victoriametrics/victoriametrics.pid
ExecStart=/usr/local/bin/victoriametrics -storageDataPath /data -retentionPeriod 360
ExecStop=/bin/kill -s SIGTERM $MAINPID
[Install]
WantedBy=multi-user.target
Set the file limits for the service
sudo mkdir /etc/systemd/system/victoriametrics.service.d
sudo nano /etc/systemd/system/victoriametrics.service.d/ulimit.conf
Enter below contents in the file
[Service]
LimitNOFILE=32000
LimitNPROC=32000
Enable VictoriaMetrics service
sudo systemctl enable victoriametrics
Start VictoriaMetrics service
sudo systemctl start victoriametrics
Check the status of VictoriaMetrics service
sudo systemctl status victoriametrics.service
Terminal output for reference
$ sudo systemctl status victoriametrics.service
โ victoriametrics.service - VictoriaMetrics
Loaded: loaded (/etc/systemd/system/victoriametrics.service; enabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/victoriametrics.service.d
โโulimit.conf
Active: active (running) since Thu 2023-08-03 10:01:24 UTC; 11s ago
Main PID: 116141 (victoriametrics)
Tasks: 8 (limit: 4575)
Memory: 6.4M
CPU: 31ms
CGroup: /system.slice/victoriametrics.service
โโ116141 /usr/local/bin/victoriametrics -storageDataPath /data -retentionPeriod 360
Aug 03 10:01:24 abb victoriametrics[116141]: 2023-08-03T10:01:24.584Z info VictoriaMetrics/lib/memory/memory.go:42 limiting caches to 2468732928 bytes, leaving 1645821952 bytes to the OS according to -memory.allowedPercent=60
Aug 03 10:01:24 abb victoriametrics[116141]: 2023-08-03T10:01:24.588Z info VictoriaMetrics/lib/storage/storage.go:858 nothing to load from "/data/cache/curr_hour_metric_ids"
Aug 03 10:01:24 abb victoriametrics[116141]: 2023-08-03T10:01:24.588Z info VictoriaMetrics/lib/storage/storage.go:858 nothing to load from "/data/cache/prev_hour_metric_ids"
Aug 03 10:01:24 abb victoriametrics[116141]: 2023-08-03T10:01:24.588Z info VictoriaMetrics/lib/storage/storage.go:818 nothing to load from "/data/cache/next_day_metric_ids"
Aug 03 10:01:24 abb victoriametrics[116141]: 2023-08-03T10:01:24.609Z info VictoriaMetrics/app/vmstorage/main.go:122 successfully opened storage "/data" in 0.028 seconds; partsCount: 0; blocksCount: 0; rowsCount: 0; sizeBytes: 0
Aug 03 10:01:24 abb victoriametrics[116141]: 2023-08-03T10:01:24.610Z info VictoriaMetrics/app/vmselect/promql/rollup_result_cache.go:114 loading rollupResult cache from "/data/cache/rollupResult"...
Aug 03 10:01:24 abb victoriametrics[116141]: 2023-08-03T10:01:24.611Z info VictoriaMetrics/app/vmselect/promql/rollup_result_cache.go:142 loaded rollupResult cache from "/data/cache/rollupResult" in 0.001 seconds; entriesCount: 0, sizeBytes: 0
Aug 03 10:01:24 abb victoriametrics[116141]: 2023-08-03T10:01:24.611Z info VictoriaMetrics/app/victoria-metrics/main.go:80 started VictoriaMetrics in 0.030 seconds
Aug 03 10:01:24 abb victoriametrics[116141]: 2023-08-03T10:01:24.612Z info VictoriaMetrics/lib/httpserver/httpserver.go:96 starting http server at http://127.0.0.1:8428/
Aug 03 10:01:24 abb victoriametrics[116141]: 2023-08-03T10:01:24.612Z info VictoriaMetrics/lib/httpserver/httpserver.go:97 pprof handlers are exposed at http://127.0.0.1:8428/debug/pprof/