The Blackfire Stack
The Blackfire Stack is made of five main components:
- the Probe is a PHP extension that gathers the raw performance profiles;
- the Agent is a server-side daemon that aggregates and forwards profiles
- the Companion is a web browser extension used mainly to trigger profiling
from your browser;
- the Client is the command line equivalent of the Companion, it can be
used from anywhere even if it is packaged with the Agent by default;
- the Website is used to visualize the profiles.
The following schema describes the general workflow of Blackfire and the
communications established between each of its components.
What Data Is Sent to the Blackfire Servers?
At Blackfire, we take the security and confidentiality topic very seriously, to
ensure the best experience possible while avoiding to collect unnecessary data,
and provide safe authentication and hosting methods.
In a blink, here's what we do, and do not:
- We do not collect user session data;
- We do not collect data from any database;
- We do not collect any source code;
- We do only collect method/function/class names as caller/callee pairs, file
names and resources consumption metrics;
- We anonymize SQL queries and HTTP calls (arguments, usernames, passwords,
...) before data are sent to ours servers.
- SSL Encryption transport layer;
- Amazon data center;
- Proven Symfony Access Control;
- Agent access secured by public/private key cryptographic mechanism;
- Your profiles are private - except if you decide explicitly to share them -
and all you data is effectively erased when you request so.
How Should I Configure my Firewall to let Blackfire Access my Apps?
When configuring Blackfire to run performance tests scenarios on your application,
the Blackfire servers need access to your application's servers.
If the profiled application is behind a firewall, let the Blackfire servers
access the application by allowing IPs
your configuration for the web ports (usually
What Do Function Suffixes like
@1 are appended when functions or methods are invoked
recursively - which means they call themselves. The number following the
represents the level of nesting.