StreamTrace BETA
Private beta - onboarding teams now

See What's Happening Inside NATS JetStream. Debug It from One UI.

Monitor streams and consumers, diagnose consumer lag, investigate failed deliveries, search messages, and trace flows across services—all from a self-hosted UI.

Runs in your infrastructure
NATS data stays in your network
Docker Compose or Kubernetes
Stream Trace dashboard showing JetStream streams, consumer health, and operational signals

Debug JetStream Without Stitching Together Logs and CLI Commands

Investigating consumer lag, failed deliveries, and cross-service message flows takes too many manual steps. Stream Trace brings the evidence and debugging actions into one UI.

Fragmented Evidence

Grepping logs and stitching together CLI output before you can explain a failure

Hidden Message State

Stream, consumer, subject, and payload context lives in different commands and tools

Terminal Failures

Max-delivery and terminated-message advisories are easy to miss without dedicated capture

Broken Correlation

Following a known trace ID across streams and consumers takes manual investigation

From signal to evidence to action

JetStream Debugging Workflows in One Place

Move from stream health to message-level evidence without losing the filters, ownership boundaries, and operational context around the problem.

Stream Trace stream & consumer monitoring interface
Auto-Refreshing Monitoring

Stream & Consumer Monitoring

Inspect the JetStream streams and consumers you can access through auto-refreshing views and operational signals.

  • Search streams by name or subject and inspect configuration without switching to the CLI
  • See message counts, storage, retention, replicas, consumers, and recent activity
  • Explore subject distribution, backlog, throughput, and health signals in context
Stream Trace dead-letter queue management interface
Terminal Failure Workflow

Dead-Letter Queue Management

Turn terminal JetStream advisories into cases your team can inspect, retry, or resolve.

  • Capture max-delivery and terminated-message advisories from a dedicated stream
  • Inspect the source message, headers, consumer context, and remediation timeline
  • Retry or resolve DLQ cases individually or in bulk, with write actions audited
Stream Trace consumer health & performance interface
Consumer Insights

Consumer Health & Performance

Spot struggling consumers with lag tracking, health signals, and throughput analytics that explain what changed.

  • Pending count, total lag, and estimated catch-up time
  • Healthy, warning, and critical signals with explanations and suggested next steps
  • Throughput charts and p50–p99 message-size percentiles when indexed data is available
Stream Trace search, replay & publish interface
Full Message Control

Search, Replay & Publish

Browse and inspect messages, narrow the evidence, then preview replay or publish actions before they run.

  • Filter by subject, sequence, and time; add full-text and JSON path scalar comparisons with the optional payload index
  • Replay one message or up to 500 with an impact preview and per-message results
  • Publish individual messages, import up to 10,000 from JSON, or export filtered results as JSON
Stream Trace distributed message tracing interface
Distributed Tracing

Distributed Message Tracing

Look up a known correlation ID to follow related message occurrences across streams and consumers.

  • Timeline and waterfall views for up to 500 correlated spans
  • Consumer observations for ACK, NAK, max-deliveries, termination, and latency when available
  • Configurable trace-ID headers such as Nats-Trace-Id and X-Trace-Id
A COMPLETE DEBUGGING LOOP

From signal to safe action

Stream Trace keeps discovery, investigation, and controlled remediation connected, so your team can understand the likely impact before changing message flow.

  1. 01

    Start with the signal

    Use stream signals, consumer health, throughput, subject distribution, and DLQ counts to find where an investigation should begin.

  2. 02

    Collect the evidence

    Narrow messages by subject, sequence, and time. Inspect payloads and headers, or use the optional payload index and a known correlation ID for deeper analysis.

  3. 03

    Act with context

    Preview replay impact, confirm publishing actions, and retry or resolve DLQ cases through permissioned workflows that record their outcomes.

INTEGRATION CHECKLIST

What your applications configure

Basic monitoring starts with NATS access. Tracing, DLQ cases, and targeted replay depend on explicit headers, consumer settings, and application routing that Stream Trace does not change for you.

Trace correlation

Publishers attach and propagate one stable trace-ID header. Consumer SampleFrequency enables sampled ACK and latency details.

Terminal failure cases

Application consumers use explicit ACK behavior and a finite MaxDeliver; a dedicated advisory stream captures terminal events.

Consumer-scoped replay

Consumer metadata declares streamtrace.replay_subject, and your stream and application route that subject to the intended handler.

Retention-safe indexing

LimitsPolicy supports history. WorkQueue message history is unsupported, so Stream Trace detects and excludes those streams automatically.

Follow the application integration checklist →

TEAM ACCESS & GOVERNANCE

Give Teams Scoped Access to Production JetStream

Use OIDC or local accounts, role-based permissions, team-owned streams, and audit logs to control who can view sensitive data or perform write actions.

Single Sign-On (OIDC)

Log in with your existing identity provider. Connect one or more OIDC providers, or use built-in local accounts with email verification.

Role-Based Access Control

Fine-grained permissions for streams, DLQ, traces, and audit. Use built-in roles or define your own, scoped globally or per team.

Team-Scoped Stream Ownership

Assign streams to teams so each team sees only what it owns. Provision teams and access automatically from OIDC group claims.

Audit Logging

Security events and write actions such as publish, replay, DLQ remediation, and admin changes record the actor, time, and outcome.

Start with Docker Compose. Scale on Kubernetes.

Start with a combined container and SQLite, or use PostgreSQL when separating API and indexer roles. Step-by-step guides live in the docs.

Docker Compose

A simple combined deployment

Run the API, indexer, embedded UI, and SQLite-backed application state from one Stream Trace container.

Kubernetes

Scale when you need it

Run the same image in your own cluster. With PostgreSQL, API and background indexer processes can scale independently.

What You'll Need

Requirements

  • A NATS account with JetStream enabled
  • Docker Compose or a Kubernetes environment
  • Network access to your NATS endpoints

Features

  • Combined or separately scaled API and indexer roles
  • Air-gapped operation with internally hosted dependencies
  • SQLite for simple setups or PostgreSQL for multi-process deployments
OPERATIONAL FOUNDATIONS

Your Infrastructure, Your Operational Boundaries

NATS data stays within the infrastructure and integrations you configure. Optional OIDC and SMTP connections go only to the endpoints you choose.

Air-Gapped Deployments

Run without public Internet access when authentication and email are disabled or provided by services inside your network.

Live, Auto-Refreshing Views

Stream, consumer, message, and DLQ views refresh automatically, with explicit updated times and manual refresh when you need it.

Built for Large Result Sets

Virtualized tables, cursor pagination, dark mode, responsive layouts, and clear loading, empty, partial, and error states.

Operational Health

Liveness and readiness endpoints, structured logs, NATS reconnect handling, migrations, and graceful shutdown are built in.

Index Only What You Need

Browse NATS directly for freshness, or enable local subject and payload indexing for richer filtering and search.

Permissioned Write Workflows

Publishing, replay, and DLQ remediation require explicit permissions, confirmation or impact preview, and auditable outcomes.

FAQ

Frequently asked questions

When will Stream Trace be available?

Stream Trace is in private beta. Request beta access to join the onboarding queue—we're inviting teams in batches and using their feedback to shape the release.

How much does it cost?

Pricing will be announced before general availability. Private-beta access is currently free for participating teams.

What NATS versions are supported?

Stream Trace requires NATS with JetStream enabled. Because JetStream capabilities vary across NATS 2.x releases, we'll publish the tested compatibility matrix before general availability.

Can Stream Trace modify my NATS setup?

Yes, in documented ways. The default indexer manages a durable consumer on each eligible, non-excluded stream and ACKs indexed messages; WorkQueue streams are excluded automatically. Stream Trace also manages an advisory consumer, can optionally create or update its dedicated advisory-capture stream, and publishes new messages for authorized publish, replay, and retry actions. It has no application stream or consumer administration workflow, but its two managed-consumer names must be reserved because collisions can be updated or deleted by Stream Trace.

Does Stream Trace support SSO?

Yes. Stream Trace supports one or more OIDC providers, plus built-in local accounts with email verification. Teams and access can be provisioned from OIDC group claims.

Does it support teams and access control?

Yes. Role-based permissions separately control stream metadata, sensitive payloads, publishing, replay, DLQ remediation, traces, and administration. Team ownership limits which streams members can access.

How does message search work?

Browse and filter by subject, sequence, and time. An optional payload index adds full-text search and JSON path scalar filters such as exists, equals, not equals, and comparisons. The UI reports when indexing is disabled or still catching up.

How does DLQ detection work?

Stream Trace turns terminal max-delivery and message-terminated advisories into cases you can inspect, retry, or resolve. You can provide the advisory stream or explicitly enable creation of Stream Trace's dedicated capture stream.

How does message tracing work?

Your publishers must attach and propagate a configured trace-ID header. Enter that known correlation ID and Stream Trace finds matching messages across streams you can access. Consumer SampleFrequency enables sampled ACK and latency enrichment. It is application-level correlation, not NATS network-hop tracing or automatic topology discovery.

Does Stream Trace send alerts?

The private beta surfaces in-app health signals, DLQ counts, and diagnostic recommendations. Outbound notifications and integrations such as webhooks, Slack, PagerDuty, or email alerts are not currently included.

What deployment options are available?

Stream Trace ships as a container for Docker Compose or Kubernetes. SQLite supports a simple combined deployment; PostgreSQL is required when API and indexer processes run separately.

Does it work in air-gapped environments?

Yes, when configured for it. Use local authentication with email disabled, or host identity and email services inside your network. Optional OIDC and SMTP integrations connect only to endpoints you configure.

What about security and compliance?

Stream Trace is self-hosted, and NATS message data stays within the infrastructure and integrations you configure. Authentication events, administrative changes, publishing, replay, and DLQ remediation are logged with actor, time, and outcome; ordinary reads are not audited.

Can I see the roadmap or contribute?

We share the roadmap with beta participants and actively collect feedback. Public contribution details will be published when they are available.

Latest Articles

Learn about NATS, observability best practices, and distributed systems.

NATS JetStream DLQ architecture diagram showing message flow from stream to consumer, advisory events on failure, and replay workflow
Guide

NATS JetStream Dead Letter Queue: Complete Implementation Guide

A practical guide to NATS JetStream retry policies, terminal advisories, DLQ patterns, and manual replay workflows.

View all articles →

Bring JetStream Debugging into One UI

Join the Stream Trace private beta. We'll email you to confirm your address, then share access and relevant product updates. Unsubscribe at any time.