Blackfire CLI client offers the possibility to output the profile data in JSON, using the --json
option:
blackfire curl --json https://localhost/foo/bar
When using this option, both STDOUT
and STDERR
are leveraged:
-
JSON formatted output is displayed on STDOUT
-
Regular output (e.g. progress, summary, profile URL)
Issue with Docker Compose
Docker Compose has a long-standing known issue with STDOUT
and STDERR
. Long story short, it mixes both outputs up, which leads to JSON parse errors, since the output then contains regular unformatted text along with JSON formatted data.
For example, using jq on the output can lead to the following error:
$ docker-compose exec bf blackfire curl --json https://localhost/foo/bar | jq
parse error: Invalid numeric literal
This is due to the Docker pseudo TTY which is allocated by default.
Workaround
To workaround this issue, you need to disable the pseudo TTY with docker-compose -T
option:
$ docker-compose exec -T bf blackfire curl --json https://localhost/foo/bar