Platform.sh

Blackfire has built-in support for Platform.sh projects. The integration is made simpler as Blackfire agent and probe are installed and enabled by default on all Platform.sh accounts.

Blackfire server credentials and the .platform.app.yaml file should be configured out of the box for Platform.sh Obervability Suite customers. Those steps may then be ignored. Blackfire integration appears in the project settings in Platform.sh console.

Set the Blackfire server credentials as environment variables (run this command from the root directory of your project):

Loading...

You may also use your Platform.sh console

The client credentials are required to trigger profiles with the CLI from your Platform.sh environments. In this case, set the client credentials as environment variables (run this command from the root directory of your project):

Loading...

Recommended: To explicitly define which environment the profile must be sent to, use the --env=<ENV_UUID> parameter.

v2.14.0+ of the unified Agent and Client: when no target environment is specified, the Agent uses the BLACKFIRE_SERVER_ID environment variable to determine where to send the profile.

When no target environment is specified or implicitly discovered, the profile is sent to the personal sandbox environment of the user whose personal credentials (BLACKFIRE_CLIENT_ID and BLACKFIRE_CLIENT_TOKEN) were used. Only that user can then access the profile from /my/profiles.

To explicitly specify your personal sandbox environment, use --env="My Environment"

The configuration of your application depends on its type.

PHP Application

Add the blackfire PHP extension to the .platform.app.yaml project file:

1
2
3
runtime:
    extensions:
        - blackfire

Python Application

Your application must have the Blackfire Probe installed as a pip dependency.

Update your .platform.app.yaml file to use the blackfire-python binary to start your webserver:

1
2
3
4
5
6
7
8
# .platform.app.yaml
web:
    upstream:
        socket_family: unix
    # Commands are run once after deployment to start the application process.
    commands:
        # Replace "my_app.wsgi" by your actual WSGI script.
        start: "blackfire-python gunicorn -w 4 -b unix:$SOCKET my_app.wsgi:application"

Here is a full video tutorial to get you started with the integration of the three services:

Loading...