Alpha

The local hub

One place for the traces, logs, and metrics of every service on your machine or team network, kept for 7 days.

Start it

npx @wizeworks/lens-hub
# or
docker run -p 5960:5960 -v wizelens:/data ghcr.io/brandonkorous/wizelens-hub

Open http://localhost:5960/_wizelens/.

Point your services at it

Set these where each service runs, then restart it:

WIZELENS_HUB=http://localhost:5960                  # .NET and Node add-ons
WIZELENS_PROJECT=my-shop                            # optional: groups services by project
OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:5960   # any other OpenTelemetry app (Python, Go, Java, ...)

Each service keeps its own dashboard too.

What you get

  • Everything in one dashboard, kept for 7 days in one SQLite file, with the same pages as the in-app dashboard.
  • Projects and environments. The top-bar menu filters by them.
  • It knows your services. Which are online, idle, or offline, what they run on, and when they last sent data.
  • Any language. OTLP over HTTP, JSON or protobuf: traces, logs, and metrics.
  • One MCP endpoint for every service, with --mcp.

An OpenTelemetry app shows as "Idle" between sends. That is normal: it only sends when it has data.

Share it with your team

Run it with --host 0.0.0.0 --token <text>. Then:

  • Add-ons send WIZELENS_HUB_TOKEN=<text>.
  • OpenTelemetry apps send OTEL_EXPORTER_OTLP_HEADERS=Authorization=Bearer <text>.
  • In a browser, open /_wizelens/?token=<text> once.

Options

Flag Environment variable Default
--port <n> WIZELENS_HUB_PORT 5960
--host <addr> WIZELENS_HUB_HOST 127.0.0.1 (this machine only)
--data <file> WIZELENS_HUB_DATA ~/.wizelens/hub/hub.db (memory for none)
--token <text> WIZELENS_HUB_TOKEN none
--retention <time> WIZELENS_HUB_RETENTION 7d
--max-traces <n> WIZELENS_HUB_MAX_TRACES 50000
--max-metric-points <n> WIZELENS_HUB_MAX_METRIC_POINTS 2000000 raw points
--mcp WIZELENS_HUB_MCP=1 off
--import <file> Copy an add-on's .wizelens/traces.db in at start

wizelens-hub --help lists every option.

In code

import { createHub } from "@wizeworks/lens-hub";

const hub = createHub({ port: 5960, storagePath: "./hub.db" });
console.log(await hub.listen());