Progress and status
definitionVersion, a content hash of the graph that is running. A node’s status includes the reason when it ends FAILURE or TIMED_OUT (the error message, truncated), so a watcher can show the cause without reading logs. A node behind a failed one carries none.
A live stream of progress is available as server-sent events:
State events are never dropped. After a restart, the newest executions are restored from the execution log.
Logs
Nodes write log lines while they run. Lines reach the log stream as they are written, labelledstdout or stderr:
- A node that logged live is not logged again from its output message. Other nodes log their output message, cut to 2,048 characters.
- More than 10,000 waiting lines are dropped and counted, so a log burst can never hold up an execution.
- A failed log write is counted and never blocks a status update or the end of a run.
yukta.logs.store.retention.default-period-minutes(default30) sets retention, clamped between 1 minute and 24 hours.- Over MCP,
get_execution_logsreturns only new lines when you pass the previous call’snextCursorasafterCursor.
Results
Logs are text. Results are a separate channel recording what reaches every terminal node, with payloads kept whole and typed.Accept: application/json (with afterCursor to read only new events). The live stream is complete; only the replay buffer is bounded, and end events carry truncated when it dropped anything.
Results are in memory only and are gone after a restart.
Event feed
All executions’ events are also published on one stream, which is how supervisors work and how an external tool can watch everything:Audit
Metrics
Yukta publishes metrics for every governance and execution decision: node executions, durations and retries, execution duration and queue wait, scheduler gauges, rejected starts by reason, dropped events, edge drops, checkpoint bytes and errors, worker and leader gauges, and model usage. The complete list, with tags and what to alert on, is in Capacity and performance. The one to alert on isyukta.tracker.queue.depth: state events waiting to be applied. Growth means an event storm is becoming memory growth rather than data loss.
Tracing
Tracing is optional. Each execution is one observation namedyukta.run, the parent of one yukta.node observation per node (tags module and status). Observations become spans when a tracer is present on the server. Node spans are opened only for a status the execution accepted, so a late event for an ended node leaves no open span. There is no Yukta setting for tracing.