crew.kickoff(), Arzule creates a run that contains all traces generated during that execution.
Run vs trace
| Concept | Scope | Example |
|---|---|---|
| Run | Complete execution | One crew.kickoff() call |
| Trace | Single execution path | One agent’s work |
| Span | Unit of work | One tool call |
| Event | Atomic action | Tool call started |
Run lifecycle
Creating runs
Automatic (recommended)
When you callarzule_ingest.init(), runs are created automatically:
Manual control
For more control, use theArzuleRun context manager:
Run metadata
Each run includes:| Field | Description |
|---|---|
run_id | UUID identifying the run |
tenant_id | Your tenant identifier |
project_id | The project this run belongs to |
started_at | Timestamp when the run began |
ended_at | Timestamp when the run completed |
status | Final status (success, error, etc.) |
Viewing runs
In the Arzule dashboard, runs are the primary navigation unit. You can:- Filter runs by date range, status, or project
- See run duration and event counts
- Drill into individual traces within a run
- Compare runs to identify regressions
Run isolation
Each run is isolated. Events from one run never mix with another, even if runs execute concurrently. This is guaranteed by:- Unique
run_idper execution - Monotonic
seqnumbers within each run - Thread-safe event collection
