Skip to main content

Pharlux by Veltara Works

v1.0.0 released · 2026-04-17

Last updated 2026-05-04

Replace your LGTM stack with a single binary.

Unified OpenTelemetry-native observability for small teams. One binary. One config file. One systemd unit. No Docker, no Kafka, no Postgres, no ClickHouse.

Quickstart

Animated terminal of the Pharlux install: download the binary with curl, chmod +x, run sudo pharlux install (writes the systemd unit, config, system user, and data directory), systemctl daemon-reload and enable --now, then curl the health endpoint and see it return ok.
Demo of the commands below — about 30 seconds end to end.
# Download the statically-linked binary (83 MB, OpenSSL-free)
curl -L https://github.com/Veltara-Works/pharlux/releases/download/v1.0.0/pharlux-linux-amd64 \
  -o /usr/local/bin/pharlux
chmod +x /usr/local/bin/pharlux

# Install the systemd unit and start
sudo pharlux install
sudo systemctl daemon-reload
sudo systemctl enable --now pharlux

# Verify
curl http://localhost:3100/api/v1/health

Point your OpenTelemetry Collector at :4317 (gRPC) or :4318 (HTTP). Full walkthrough in the getting started guide.

What it is

Pharlux is a single statically-linked Rust binary that ingests OpenTelemetry metrics and logs, stores them in per-signal Parquet files with a custom write-ahead log, and serves interactive SQL queries through embedded Apache DataFusion. The whole system runs comfortably on an 8 GB VPS. Traces ship in V1.1.

Who it is for

  • Teams running Grafana + Prometheus + Loki who are tired of operating five moving parts to observe three services.
  • Small engineering teams running between one and ten services on a single VPS.
  • Operators who value reproducible deployments and simple failure modes over horizontally scalable complexity.

What it replaces

The headline is not metaphorical. Component by component, here is what you stop running once Pharlux is in.

Today, with the Grafana / LGTM stackWith Pharlux
Loki for log aggregation and queryLogs ingested via OTLP, stored in per-signal Parquet — same binary
Mimir (or Cortex / standalone Prometheus) for metricsMetrics ingested via OTLP, same binary, same WAL + Parquet storage path
Tempo for tracesTraces share the same binary and storage path (V1.1, ADR-0005)
Grafana for dashboards and queryingEmbedded React + ECharts UI served from the same binary; SQL via Apache DataFusion
Alertmanager for alerts and notificationsBuilt-in SQL-based alerts, state-machine evaluator, webhook + Slack output
Choose, deploy, and operate object storage (S3 / MinIO) for log retentionLocal Parquet on disk; optional S3 cold tier in the Scale tier
5+ config files, 5+ upgrade cycles, 5+ failure surfacesOne pharlux.toml, one binary, one systemd unit

Where the Grafana stack is the better choice. If you already run dashboards-as-code with Grafana provisioning and have years of PromQL alert rules, the migration cost may not be worth the operational saving. If you need horizontal scale-out across multiple data centres, Pharlux V1's design centre is a single VPS — the Scale tier covers up to 250 hosts but does not cluster across regions. If you need traces or PromQL today, both ship in V1.1 (per ADR-0005); until then the Grafana stack covers what Pharlux does not. And if you have a dedicated SRE who enjoys operating the stack, Grafana's decade-deep plugin ecosystem is a real asset.

What's in V1

  • OTLP-native ingest. gRPC on :4317, HTTP/protobuf on :4318 — both on a shared Tokio runtime with the API.
  • SQL over metrics and logs. Apache DataFusion with a custom TableProvider that unions the live WAL with on-disk Parquet. Cross-signal JOINs on trace_id.
  • Multi-tenant from day one. Every query goes through a logical-plan tenant filter on every table scan. Community deployments use the constant "default" tenant — same code path.
  • Built-in alerting. SQL rules in SQLite, state-machine evaluator with circuit-breaker self-disable, webhook + Slack notifications.
  • Embedded React + ECharts UI. Login, SQL editor (CodeMirror 6), dashboards (metrics bar, log severity pie, recent logs) — served from the same binary via rust-embed.
  • Prometheus-format self-metrics. GET /metrics exposes live atomic counters for ingestion rate, query duration, active queries, and WAL size.
  • Operator-ready. CLI subcommands for install, backup, compact, migrate, version. Crash-safe backup/restore. Full operator runbook.
  • Memory-safe TLS. rustls for all outbound connections. Zero OpenSSL in the dependency tree. Genuinely static musl binary.

Performance

Load-tested on a 4 vCPU / 8 GB VPS (v1.0.0 measurement, 2026-04-17):

577kpoints/sec sustained
0errors over 17.36 M points
7 msavg request latency
83 MBstatic binary

Exceeds the 500k pts/sec V1 target by 15 %. 293 / 293 tests pass; 10 / 10 consecutive crash recovery runs with zero flakes.

Pricing

TierPriceHighlightsAction
CommunityFreeAGPL-3.0, self-hosted, full community feature setDownload
Team$49/mo10 hosts, 30-day retention, basic SAMLGet license
Business$199/mo50 hosts, 90-day retention, full SAML/OIDC/LDAP, audit logGet license
Scale$899/mo250 hosts, 1-year retention, white-label, S3 cold tierGet license

Commercial tiers include the Pharlux Enterprise binary. For deployments beyond 250 hosts or custom requirements, talk to us. See full feature comparison.

Frequently asked questions

Why not just use Grafana?

Grafana is great, and it is the right choice if you have a dedicated SRE who enjoys operating Loki, Mimir, Tempo, and Alertmanager next to it. Pharlux is for the case where you don't — one binary replaces the whole stack. If you have one engineer who also wants to write product code, that's the trade-off Pharlux optimises for.

How is this different from SigNoz?

SigNoz has the right ambition — unified OpenTelemetry observability — but ships as a multi-container Docker Compose or Kubernetes deployment with ClickHouse, Zookeeper, and Kafka. Pharlux is a single 83 MB binary on your VPS, with embedded SQLite for metadata and Parquet on disk. Both are good projects targeting different operational sweet spots.

Can I migrate from Prometheus?

Yes, gradually. Point your OpenTelemetry Collector at Pharlux's OTLP endpoint and run both stacks in parallel. PromQL support ships in V1.1; until then, queries are SQL via Apache DataFusion. Cross-signal JOINs on trace_id are something a pure-Prometheus stack cannot do.

What about scale beyond a single VPS?

V1's design centre is 1–10 services on a single VPS. The Scale tier ($899/mo) covers up to 250 hosts, which suits most growth paths without architectural change. Multi-VPS clustering and an S3 cold tier are V1.1+ work. Pharlux is deliberately scoped for the small-team operator and does not pretend to be a planet-scale observability platform.

AGPL-3.0 — does that mean I have to open-source my service?

No. AGPL applies to Pharlux itself, not to the services Pharlux observes. Running Pharlux against your closed-source application does not make your application AGPL. The AGPL trigger is when you modify and distribute Pharlux. If that's a concern, the commercial license removes the AGPL terms entirely.

What happens when V1.1 ships — do I have to migrate data?

No. The WAL format (ADR-0018) and per-signal Parquet schemas (ADR-0003) are frozen. V1.1 is additive — new capabilities, no breaking changes. Upgrade is systemctl stop pharlux, swap the binary, systemctl start pharlux. The same procedure applies for V1.0.x patches.

Is there a hosted version?

Not in V1. Pharlux is intentionally self-hosted-first — that's core to the value proposition. A hosted offering may follow at some point, but it's not committed for V1.1 and not on the near-term roadmap.

How do I know it's production-ready?

V1.0.0 shipped 2026-04-17 after a four-phase delivery plan with hard pass/fail gates. 293 / 293 tests pass; 10 / 10 consecutive crash-recovery runs with zero flakes; cargo-deny and cargo-audit gates green; AGPL-3.0 source available for review. Pharlux is currently dogfooded on Veltara Works' own production stack — Vectis Mail, Vectis Cloud, and ValidonX.

Documentation

Licensing

Pharlux is dual-licensed. The Community edition is free and self-hosted under the GNU Affero General Public License v3.0. Commercial licenses are available for teams that cannot accept AGPL terms or need Enterprise features.

Commercial licensing enquiries

licensing@pharlux.com

Replies within 2 business days.

Support