Analyzing Timelinesnew

Note

The Timeline feature is available to Profiler, Premium, and Enterprise users.

Note

This section describes how to read the timeline of a profile. You can also visualize a profile as a call graph.

The timeline representation of a profile is a great way to quickly analyze the wall-clock time of the most important function calls.

Like for the call-graph, Blackfire filters unimportant calls to only display significant ones. Blackfire also automatically understand which PHP libraries you are using and groups similar calls as metrics that show up in the left pane. Click on any of them to quickly filter related calls. Hover on a call bar to get more information about resource consumption, function call arguments, and more.

/docs/blackfire-timeline.png

Besides time, the global memory usage is also displayed in the navigation panel as a light blue graph. A sudden increase can give you a hint on which function calls consume more memory.

Metrics

The timeline only displays relevant metrics that are configured and curated by the Blackfire's team.

But you can also add more information by creating your own custom metrics. For instance, to display the cost of calls to Monolog\Logger::addRecord(), create a regular custom metric and set timeline to true:

1
2
3
4
5
6
7
8
9
metrics:
    monolog_logs:
        label: 'Monolog logs'
        layer: ~
        timeline: true # enables timeline data gathering
        matching_calls:
            php:
                -
                    callee: "=Monolog\\Logger::addRecord"

Note

Custom metrics is only available to our Premium and Enterprise users.

Markers

Markers allow you to visualize cue-points you explicitly define in your code. Call \BlackfireProbe::addMarker(string $markerName) to define a marker:

/docs/blackfire-marker.png