Skip to main content
Harnest uses the same logging and tracing API with ADK and LangGraph.

Configure one sink

Send logs and traces to one OTLP collector using environment variables.

Configure multiple sinks

Fan out signals with lifecycle-owned exporters.

Threadify

Link sessions to business threads and filter framework noise.

Add logs and spans

tools/search_catalog.py
Logs emitted inside a span include its trace and span IDs. Structured logs are JSON on stderr by default; trace export starts when you configure a sink.

Data boundary

Runtime mutations emit audit events after commit as structured logs. They reach sinks configured for logs. CLI and compiler file changes are outside this boundary.