Skip to content

Timeline Collector

Captures cross-collector performance timeline — a unified view of all events from all collectors in chronological order.

Timeline Collector panel

What It Captures

FieldDescription
timeEvent timestamp
referenceReference ID linking back to the source collector's data entry
collectorSource collector class name
dataAdditional event data (varies by collector)

Data Schema

Timeline events are stored as arrays:

json
[
    [1711878000.100, 0, "AppDevPanel\\Kernel\\Collector\\Web\\RequestCollector", []],
    [1711878000.105, 0, "AppDevPanel\\Kernel\\Collector\\LogCollector", ["level", "info"]],
    [1711878000.150, 0, "AppDevPanel\\Kernel\\Collector\\EventCollector", []],
    [1711878000.200, 1, "AppDevPanel\\Kernel\\Collector\\LogCollector", ["level", "warning"]]
]

Summary (shown in debug entry list):

json
{
    "timeline": {
        "total": 15
    }
}

Contract

php
use AppDevPanel\Kernel\Collector\TimelineCollector;

// Called by other collectors to register timeline events
$timeline->collect(
    collector: $logCollector,
    reference: 0,           // Index in the source collector's data
    'level', 'info',        // Additional context data
);

How It Works

The TimelineCollectorAppDevPanel\Kernel\Collector\TimelineCollectorCollects Timeline data during application lifecycle.final Kernel · class · implements SummaryCollectorInterface is a central aggregation point. Other collectors (Log, Event, Database, etc.) call $timeline->collect() when they record an event, passing themselves as the source. This creates a unified chronological view across all collectors.

Debug Panel

  • Visual timeline — horizontal bar chart showing events across time
  • Collector filtering — toggle visibility of specific collectors via chips
  • Color coding — each collector type has a distinct color
  • Time scale — auto-scaling time axis with microsecond precision
  • Event count — total timeline events in sidebar badge

Released under the MIT License.