Blackfire Player natively integrates Blackfire profiler.
In order to use Blackfire Player with Blackfire profiler, add
--blackfire-env
option to your blackfire-player
command.
You may use either the environment name or its UUID:
1 | blackfire-player run scenario.bkf --blackfire-env="Environment name"
|
Note
Instead of using the --blackfire-env
CLI option, you may set the
Blackfire environment in the scenario;
1 2 3 4 | scenario
name "Scenario Name"
# Use the environment name (or UUID) you're targeting or false to disable
blackfire "Environment name"
|
Note
In order to use Blackfire Player together with Blackfire Profiler, you need to correctly setup your client credentials, which are available at https://blackfire.io/my/settings/credentials
If you have installed the Blackfire CLI, ensure that you have ran
the command blackfire config
at least once, in order to create the
~/.blackfire.ini
file, where your credentials are be stored.
Alternatively, you can also set BLACKFIRE_CLIENT_ID
and
BLACKFIRE_CLIENT_TOKEN
environment variables before running the
Blackfire Player.
The Blackfire Player creates a build to group all the scenarios. Each scenario contains profiles and assertion reports for requests made in each step of the executed scenario.
Note
All requests are profiled by default. You can disable the profiler in a
step or in a complete scenario by setting blackfire false
.
1 2 3 4 5 6 7 8 9 10 11 | scenario
name "Scenario with Blackfire"
# Use the environment name (or UUID) you're targeting or false to disable
blackfire true
# ...
scenario
name "Scenario without Blackfire"
# You can disable Blackfire support on the scenario, or only on some steps
blackfire false
# ...
|
All the assertions defined in .blackfire.yaml
are automatically run along
side Blackfire Player expectations.
You also may add assertions within a step with assert
instruction:
1 2 3 4 | scenario
visit url('/blog/')
name "Blog homepage"
assert main.peak_memory < 10M
|
Any assertion supported in .blackfire.yaml, based on built-in and/or custom metrics, can be added this way.
You can use assertions variables, defined in the Blackfire environment, like you would do within assertions defined in .blackfire.yaml file:
1 2 3 4 5 6 | scenario
# no Twig template compilation in production
# not enforced in other environments
visit url('/blog/')
name "Blog homepage"
assert main.peak_memory < 10mb * var('memory_coeff')
|
In order to make some comparisons with a previous build, you can set the external_id
and
external_parent_id
settings of the build by passing
BLACKFIRE_EXTERNAL_ID
and BLACKFIRE_EXTERNAL_PARENT_ID
environment
variables:
1 2 3 | BLACKFIRE_EXTERNAL_ID=current_build_reference \
BLACKFIRE_EXTERNAL_PARENT_ID=parent_build_reference \
blackfire-player run scenario.bkf --blackfire-env=ENV_NAME_OR_UUID
|
The samples
instruction tells Blackfire Profiler how many samples must be
aggregated for a single profile. The default value is 1
.
The warmup
instruction tells Blackfire Profiler whether to warmup the
requested URL first.
Its value can be:
1 2 3 4 5 6 | scenario
visit url('/blog/')
name "Blog homepage"
assert main.peak_memory < 10M
samples 2
warmup true
|