Nomploy Nomad Packs

← All packs

victoriametrics v0.1.0

Observability

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.

nomad-pack run victoriametrics --registry nomploy
1 task http 8428 1 volume image victoriametrics/victoria-metrics:latest
Variables 9
values.hcl

Save as values.hcl, edit, then run:

nomad-pack run victoriametrics -f values.hcl --registry nomploy
# 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
  }
NameTypeDefaultDescription
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.
Readme

victoriametrics

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.

Usage

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.

Pair with the monitoring pack

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.

Key variables

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.

Notes