You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: Improve formatting consistency, add observability playground, and enhance documentation
- Standardized line formatting across tests, examples, and main codebase for improved readability.
- Added observability playground powered by Grafana LGTM for OTLP traces and metrics.
- Updated `README.md`, `examples/README.md`, and `Getting_Started.md` to document the playground setup and usage.
- Introduced new `playground_pipeline` example showcasing observability-first agent workflows.
- Added functional bash scripts (`playground_up.sh`, `up.sh`) and Docker Compose configuration to support seamless playground setup.
- Enhanced Grafana health checks and KVM artifact preparation with detailed logs.
Use this to present a clear picture of each run: success/failure, which step failed, how long each step took, and optional export to OTLP for traces.
12
+
## OTLP Export
13
13
14
-
## What is captured
14
+
When configured, traces and metrics are exported via OTLP.
15
15
16
-
-**Per-step spans**: Created by the scheduler for each step. On success, the span records `stdout_bytes`; on failure, `stderr_bytes` and error status. Duration is always recorded and sent to the metrics collector.
17
-
-**Workflow span**: Parent of all step spans; total duration.
18
-
-**Logs**: Info at workflow start, debug at step start/finish, error when a step fails.
19
-
-**Metrics**: Step duration (and any custom counters if added). Use `ObserveConfig::test()` for in-memory capture in tests; use `ObserveConfig::default()` and `.otlp_endpoint(...)` for production trace export.
16
+
Required:
20
17
21
-
## Recording the executed command
18
+
- build/run with feature flag: `--features opentelemetry`
19
+
- set endpoint env var:
20
+
-`VOIDBOX_OTLP_ENDPOINT=http://localhost:4317`
21
+
- optional service name:
22
+
-`VOIDBOX_SERVICE_NAME=void-box-playground`
22
23
23
-
`SpanGuard::record_exec(program, args)` exists to record the exact command (e.g. `claude-code plan /workspace`) on a step span. The scheduler does not call it because it does not see the program/args inside the step closure. To have the exec command on spans, either:
24
+
Example:
24
25
25
-
- Thread the observer into `StepContext` and have `ctx.exec` / `ctx.exec_piped` record the command on the current step span, or
26
-
- Have step code set a custom attribute via a future API.
26
+
```bash
27
+
VOIDBOX_OTLP_ENDPOINT=http://localhost:4317 \
28
+
VOIDBOX_SERVICE_NAME=void-box-playground \
29
+
cargo run --example playground_pipeline --features opentelemetry
30
+
```
27
31
28
-
For now, step spans still give you step name, duration, and output sizes for debugging.
0 commit comments