VictoriaMetrics — a fast, cost-efficient, open-source time-series database and monitoring solution, Prometheus-compatible (remote-write target + PromQL/MetricsQL). Deployed as a single host-networked Nomad service with a persistent Docker volume.
Save as values.hcl, edit, then run:
# The name of the Nomad job.
job_name = "victoriametrics"
# The Nomad namespace to deploy into.
namespace = "default"
# The datacenters to deploy to.
datacenters = ["*"]
# The VictoriaMetrics single-node image. Pin a tag in production.
image = "victoriametrics/victoria-metrics:latest"
# Host port for the HTTP API (ingestion, PromQL/MetricsQL queries, vmui at /vmui).
port = 8428
# How long to keep data (VictoriaMetrics -retentionPeriod). Number = months (e.g. "3"), or use a suffix like "30d", "1y".
retention = "3"
# Docker named volume for /victoria-metrics-data (the time-series storage). VictoriaMetrics runs as root, so a fresh volume is writable. Back it up.
data_volume = "victoriametrics_data"
# Placement constraints — pin to one node so the local storage volume stays put. On a nomploy cluster: attribute = "$${meta.nomploy_control_plane}", operator = "=", value = "true".
constraints = []
# The task resources. Raise for high ingestion / long retention.
resources = {
cpu = 500
memory = 512
}
| Name | Type | Default | Description |
|---|---|---|---|
| job_name | string | "victoriametrics" | The name of the Nomad job. |
| namespace | string | "default" | The Nomad namespace to deploy into. |
| datacenters | list | ["*"] | The datacenters to deploy to. |
| image | string | "victoriametrics/victoria-metrics:latest" | The VictoriaMetrics single-node image. Pin a tag in production. |
| port | number | 8428 | Host port for the HTTP API (ingestion, PromQL/MetricsQL queries, vmui at /vmui). |
| retention | string | "3" | How long to keep data (VictoriaMetrics -retentionPeriod). Number = months (e.g. "3"), or use a suffix like "30d", "1y". |
| data_volume | string | "victoriametrics_data" | Docker named volume for /victoria-metrics-data (the time-series storage). VictoriaMetrics runs as root, so a fresh volume is writable. Back it up. |
| constraints | list | [] | Placement constraints — pin to one node so the local storage volume stays put. On a nomploy cluster: attribute = "$${meta.nomploy_control_plane}", operator = "=", value = "true". |
| resources | object | {
cpu = 500
memory = 512
} | The task resources. Raise for high ingestion / long retention. |
No variables match.
VictoriaMetrics — a fast, cost-efficient, open-source
time-series database. Prometheus-compatible: use it as a remote_write target for
long-term storage and query it with PromQL/MetricsQL (or its /vmui). A lighter, more
storage-efficient alternative/complement to Prometheus. Single host-networked Nomad service
with a persistent volume.
nomad-pack registry add nomploy github.com/Nomploy/nomad-packs
nomad-pack run victoriametrics --registry nomploy
In nomploy: create a Compose service, type Nomad Pack, pack victoriametrics, custom
registry github.com/Nomploy/nomad-packs, then Deploy. Query UI at
http://<node-ip>:8428/vmui.
Send Prometheus data to it for long-term storage:
remote_write:
- url: http://127.0.0.1:8428/api/v1/write
Or add it directly to Grafana as a Prometheus-type datasource.
| Variable | Default | Notes |
|---|---|---|
image |
victoriametrics/victoria-metrics:latest |
Pin a tag in production. |
port |
8428 |
HTTP API + /vmui. |
retention |
3 |
-retentionPeriod: number = months, or 30d / 1y. |
data_volume |
victoriametrics_data |
Time-series storage. Back it up. |
constraints |
[] |
Pin to a node so the local volume stays put. |
resources |
cpu 500 / mem 512 |
Raise for high ingestion / long retention. |
count is fixed to 1 (local storage volume). Pin with constraints.
(VictoriaMetrics also has a clustered edition — out of scope here.)