Docs/Analytics & Observability/Bottleneck Detection

Bottleneck Detection

Bottleneck Detection

The Bottlenecks tab identifies files, locks, and tasks that cause the most coordination overhead.

File Hotspots

Files are ranked by a combination of activity count and conflict rate:

  • Activity Count: How many events reference the file (via files_changed, file, or resource fields)
  • Conflict Count: How many conflict.detected events involve the file
  • Conflict Rate: Conflicts / Activity (percentage)
  • Unique Agents: How many different agents touched the file
What to do: Files with high conflict rates should be split into smaller, more focused modules. If two agents keep conflicting on config.ts, consider splitting it into config/auth.ts and config/db.ts.

Lock Contention

Shows which resources get locked most often and for how long:

  • Lock Count: Total times the resource was locked in the period
  • Avg Hold Time: Average duration a lock is held before release
  • Currently Locked: Whether the resource is locked right now
What to do: Resources with high lock counts and long hold times are bottlenecks. Consider breaking them into smaller lockable units, or redesigning the code so agents don't need exclusive access.

Blocker Durations

Lists task.blocked events sorted by how long they blocked work:

  • Blocked Duration: Time from task.blocked to task.unblocked
  • Status: Whether the blocker has been resolved
What to do: Long-standing blockers indicate architectural issues or unclear ownership. Resolve blockers quickly from the dashboard or assign them to specific agents.