FAQ

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 to blackfire.io;
  • 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.

/docs/general-workflow.png

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:

  • Confidentiality/Privacy
    • 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.
  • Security
    • 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 46.51.168.2 and 54.75.240.245 in your configuration for the web ports (usually 80 and 443).

What Do Function Suffixes like @1 Mean?

@n suffixes

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.