Skip to main content

Run guide

Run Loki-VL-proxy against VictoriaLogs without changing Grafana yet

The safest first step is simple: stand up the read-only proxy, point it at VictoriaLogs, confirm the Loki-compatible routes are healthy, then wire Grafana or other clients only after the basic path is proven.

Binary or container
The first boot path can stay minimal
You only need the backend URL to prove the read path.
Read-only surface
The proxy is built for query and metadata compatibility, not ingest ownership
Push remains blocked.
:3100 frontend
Grafana and Loki clients talk to the proxy on the Loki-facing side
VictoriaLogs stays on the backend side.
Health first
Validate /ready and a simple labels call before doing anything more elaborate
This catches the obvious wiring failures early.

Start with a local binary when you want the shortest feedback loop

This is the best path for quickly proving backend reachability, checking translation behavior, and reading logs directly on a workstation or throwaway VM.

go build -o loki-vl-proxy ./cmd/proxy
./loki-vl-proxy -backend=http://127.0.0.1:9428

Use the container image when you want the exact packaged runtime

This is the cleanest way to validate the release image before you move into Kubernetes, Helm, or a managed deployment target.

docker run --rm -p 3100:3100 ghcr.io/reliablyobserve/loki-vl-proxy:<release> \
  -backend=http://host.docker.internal:9428

What to verify before Grafana points at it

  • The proxy answers `/ready` with `ok`.
  • `/loki/api/v1/labels` returns data instead of backend or translation errors.
  • Proxy logs show clean downstream and upstream routing for simple calls.
  • You know whether the backend schema needs underscore label translation.
curl -sS http://127.0.0.1:3100/ready
curl -sS http://127.0.0.1:3100/loki/api/v1/labels

When to stop treating it as a demo

  • Move to Helm when the path needs repeatable deployment and resource controls.
  • Add persistent disk cache when repeated read traffic is larger than RAM hotset.
  • Add peer cache when multiple replicas will see overlapping query traffic.
  • Enable OTLP push when your metrics path is collector-first instead of scrape-first.