v1.19.0
This release adds a built-in tracing dashboard to Hayhooks: a local UI for debugging pipeline runs, OpenAI-compatible requests, deploys, undeploys, streaming responses, and MCP operations.
Start it with:
hayhooks run --with-tracing-dashboardThen open http://localhost:1416/dashboard.
✨ Built-In Tracing Dashboard
Hayhooks now serves a React dashboard backed by a local in-process trace buffer. It gives you a fast debugging view without requiring Jaeger, SigNoz, Datadog, or another OTLP backend, while still allowing traces to be exported through standard OTEL_* configuration.
Highlights:
- Live trace feed with freshness highlights and polling.
- Pipeline filtering, summary stats, sorting, and dark mode.
- Trace kind badges for run/openai/deploy/undeploy/mcp activity.
- Streaming and ongoing indicators for in-flight requests.
- Expandable span waterfall with nested spans and duration bars.
- Haystack component spans included by default, with readable labels for
haystack.component.run. - Slowest-component highlighting to spot pipeline bottlenecks quickly.
- Failure details with error type, message, and copyable stack traces.
- Clear-traces action for resetting the local buffer.
⚙️ Local Trace Buffer and API
The dashboard reads from /dashboard/api/*, backed by an in-memory trace buffer in the Hayhooks process.
The trace API supports incremental polling with after_seq, next_after_seq, has_more, and the X-Hayhooks-Trace-Cursor response header.
Tune the local buffer size with:
export HAYHOOKS_DASHBOARD_TRACE_BUFFER_CAPACITY=2000For consistent dashboard behavior, run with a single worker. With hayhooks run --workers >1, each worker keeps its own local buffer.
🧩 Haystack Component Visibility
Haystack component spans are mirrored into dashboard traces by default, making component-level work visible inside the same trace tree as the surrounding Hayhooks operation.
Disable this if needed:
export HAYHOOKS_DASHBOARD_TRACE_INCLUDE_HAYSTACK_SPANS=false🔒 Safer Payload Tags
Pipeline run traces include hayhooks.payload.values, but default to safe shape metadata such as:
question=str(42)
top_k=int
filters=dict(3)
Raw values require an explicit local-debugging opt-in:
export HAYHOOKS_DASHBOARD_TRACE_INCLUDE_PAYLOAD_VALUES=trueCommon sensitive keys like api_key, token, authorization, password, secret, and credential remain redacted.
🛠️ CLI, Docs, and Examples
New dashboard startup flags:
hayhooks run --with-tracing-dashboard
hayhooks run --with-dashboard
hayhooks run --tracing-dashboardThis release also adds dashboard docs, screenshots, environment-variable reference updates, a dashboard demo script, a custom tracing example, and CI coverage for the new frontend.
📌 Upgrade Notes
- The dashboard is intended as a local/debugging view, not a distributed production observability backend.
- Continue using standard OpenTelemetry
OTEL_*variables for external trace export. - Node.js/npm must be available if Hayhooks needs to build dashboard assets at runtime.
- For multi-worker deployments, use an external tracing backend for complete cross-worker observability.