Skip to content

v1.19.0

Choose a tag to compare

@mpangrazzi mpangrazzi released this 07 May 09:04
72f7b59

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.

tracing-dashboard-overview

Start it with:

hayhooks run --with-tracing-dashboard

Then 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=2000

For 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=true

Common 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-dashboard

This 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.