The Blackfire agent can be configured via a configuration file, flags passed to the binary, or environment variables.
The location of the default agent configuration file depends on your platform:
/etc/blackfire/agent
;/usr/local/etc/blackfire/agent
;
* Apple Silicon Macs: /opt/homebrew/etc/blackfire/agent
;C:\ProgramData\blackfire\agent.ini
.The most important entries are server-id
and server-token
. Here is a
typical configuration for the Agent that you can use as a template:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 | [blackfire] ; ; setting: server-id ; desc : Sets the server id used to authenticate with Blackfire ; default: ; ; You can find your personal server-id at https://blackfire.io/my/settings/credentials server-id=<YOUR_SERVER_ID> ; ; setting: server-token ; desc : Sets the server token used to authenticate with Blackfire. It is unsafe to set this from the command line ; default: ; ; You can find your personal server-token at https://blackfire.io/my/settings/credentials server-token=<YOUR_SERVER_TOKEN> ; ; setting: log-file ; desc : Sets the path of the log file. Use stderr to log to stderr ; default: stderr log-file=stderr ; ; setting: log-level ; desc : log verbosity level (4: debug, 3: info, 2: warning, 1: error) ; default: 1 log-level=1 ; ; setting: memory-limit ; desc : Sets the maximum allowed RAM usage (megabytes) when ingesting traces. Use 0 to disable ; default: 500 memory-limit=500 ; ; setting: socket ; desc : Sets the socket the agent should read traces from. Possible value can be a unix socket or a TCP address ; ; default Linux: ; socket=unix:///var/run/blackfire/agent.sock ; ; default macOS amd64: ; unix:///usr/local/var/run/blackfire-agent.sock ; ; default macOS arm64 (M1): ; unix:///opt/homebrew/var/run/blackfire-agent.sock ; ; default Windows: ; socket=tcp://127.0.0.1:8307 ; ; setting: ca-cert ; desc : Sets the PEM encoded certificates ; default: ; ca-cert= ; ; setting: collector ; desc : Sets the URL of Blackfire's data collector ; default: https://blackfire.io ; collector=https://blackfire.io ; ; setting: statsd ; desc : Sets the statsd server to send agent's statistics to. ie: udp://host:port. Leave empty to disable. ; default: ; statsd= ; ; setting: statsd-prefix ; desc : Sets the statsd prefix to use when sending data ; default: blackfire ; statsd-prefix=blackfire |
The Agent can also be configured using environment variables:
BLACKFIRE_SERVER_ID
/ BLACKFIRE_SERVER_TOKEN
Sets the server id and server token used to authenticate with Blackfire.
BLACKFIRE_LOG_LEVEL
Sets the verbosity of Agent’s log output. Default value is 1
(error).
1 2 | # 1: error, 2: warning, 3: info, 4: debug BLACKFIRE_LOG_LEVEL=1 |
BLACKFIRE_LOG_FILE
Sets the output destination of Agent’s log. Default value is stderr
.
1 | BLACKFIRE_LOG_FILE="/tmp/blackfire-agent.log" |
BLACKFIRE_CONFIG
Sets the location of the configuration file.
1 | BLACKFIRE_CONFIG="/dev/null" |
BLACKFIRE_MEMORY_LIMIT
Sets the maximum allowed RAM usage (megabytes) when ingesting traces. Use 0 to disable.
1 | BLACKFIRE_MEMORY_LIMIT=500 |
BLACKFIRE_SOCKET
Sets the socket the Agent will listen for the probes on. Possible values can be a unix socket or a TCP address.
The default value is platform dependent, as detailed below.
On Linux:
1 | BLACKFIRE_SOCKET="unix:///var/run/blackfire/agent.sock" |
On macOS:
1 2 3 4 5 | # amd64 BLACKFIRE_AGENT_SOCKET="unix:///usr/local/var/run/blackfire-agent.sock" # arm64 (M1) BLACKFIRE_AGENT_SOCKET="unix:///opt/homebrew/var/run/blackfire-agent.sock" |
On Windows and Kubernetes:
1 | BLACKFIRE_SOCKET="tcp://127.0.0.1:8307" |
On Docker, it is suggested to use this value:
1 | BLACKFIRE_SOCKET="tcp://0.0.0.0:8307" |
BLACKFIRE_COLLECTOR
Sets the URL of Blackfire’s data collector. Default value is https://blackfire.io
.
1 | BLACKFIRE_COLLECTOR="https://blackfire.io" |
BLACKFIRE_STATSD
Sets the statsd server to send agent’s statistics to. ie: udp://host:port
.
1 | BLACKFIRE_STATSD="udp://host:port" |
BLACKFIRE_STATSD_PREFIX
Sets the statsd prefix to use when sending data. Default value is blackfire
.
1 | BLACKFIRE_STATSD_PREFIX="blackfire" |
You can set these environment variables in a project’s local .env
file if
supported, or in your global shell configuration file (such as ~/.bashrc
or
~/.zshrc
):
1 2 3 4 | export BLACKFIRE_SERVER_ID=xxx export BLACKFIRE_SERVER_TOKEN=yyy export BLACKFIRE_LOG_LEVEL=4 export BLACKFIRE_LOG_FILE=/tmp/agent.log |
Warning
If you are behind a proxy, define the HTTP_PROXY
and/or HTTPS_PROXY
environment variables.
Those environment variables can be added to a docker-compose.yml
file:
1 2 3 4 5 6 7 8 9 10 11 12 13 | version: '3' services: blackfire: image: blackfire/blackfire:2 ports: ["8307"] environment: # Exposes BLACKFIRE_* environment variables from the host BLACKFIRE_SERVER_ID: ~ BLACKFIRE_SERVER_TOKEN: ~ BLACKFIRE_CLIENT_ID: ~ BLACKFIRE_CLIENT_TOKEN: ~ HTTP_PROXY: "<your_proxy_address>" HTTPS_PROXY: "<your_proxy_address>" |
If the Agent is launched by systemd
, the environment variables can be defined
by editing the blackfire-agent
service:
sudo systemctl edit blackfire-agent
1 2 3 | [Service] Environment="HTTP_PROXY=<your_proxy_address>" Environment="HTTPS_PROXY=<your_proxy_address>" |
sudo systemctl daemon-reload
sudo systemctl restart blackfire-agent