This cookbook installs and configures the blackfire stack.
- Ubuntu (10.04/11.04/12.04/13.04/14.04)
- Debian (6.0/7.0)
- RedHat Based (CentOS 6.4 and Fedora 20 tested, others should work)
- apt
- yum
The following attributes are available to affect the installation/configuration of the Backfire stack
node['blackfire']['agent']['version']
- Sets which version of the agent to install. Default last version.node['blackfire']['agent']['server_id']
- Sets the Server ID to use for the agent (See https://blackfire.io/account/agents)node['blackfire']['agent']['server_token']
- Sets the Server Token to use for the agent (See https://blackfire.io/account/agents)node['blackfire']['agent']['log_level']
- Sets the logging level for the agent. Default 1node['blackfire']['agent']['log_file']
- Sets where the agent write logs. Default "stderr"node['blackfire']['agent']['socket']
- Sets where the socket the agent will listen to. Default "unix:///var/run/blackfire/agent.sock"
node['blackfire']['php']['version']
- Sets which version of the PHP extension will be installed. Default last version.node['blackfire']['php']['agent_timeout']
- Sets the PHP extension timeout when communicating with the agent. Default '0.25'node['blackfire']['php']['log_level']
- Sets the logging level for the PHP extension.node['blackfire']['php']['log_file']
- Sets where the PHP extension write logs.node['blackfire']['php']['ini_path']
- Sets where the PHP configuration will be written.node['blackfire']['php']['server_id']
- Sets the Server ID to use for probe fine-grained configuration (See https://blackfire.io/doc/configuration#probe-configuration)node['blackfire']['php']['server_token']
- Sets the Server Token to use for probe fine-grained configuration (See https://blackfire.io/doc/configuration#probe-configuration)
Add agent Server ID and token and include blackfire
in your node's run_list
:
{
"name":"my_node",
"run_list": [
"recipe[blackfire]"
],
"blackfire": {
"agent": {
"server_id": "my-agent-server-id",
"server_token": "my-agent-server-token"
}
}
}
Used if you wish to install only the agent.
Used if you wish to install only the PHP extension.
This cookbook makes no assumption about the webserver you use.
Therefore this is your responsability to write a wrapper and notify your webserver (ie. Apache or php5-fpm) for reload/restart or subscribe the good resources.
You can obtain futher informations on wrapper cookbooks here: https://www.getchef.com/blog/2013/12/03/doing-wrapper-cookbooks-right/
One way to do that (maybe the best to avoid disturbing logs messages):
include_recipe "blackfire"
begin
r = resources(:ruby_block => "blackfire-php-restart-webserver")
r.block do
end
r.notifies :reload, "service[php5-fpm]"
rescue Chef::Exceptions::ResourceNotFound
Chef::Log.warn 'could not find resource "ruby_block[blackfire-php-restart-webserver]" to override!'
end
- Fork the repository on Github
- Create a named feature branch (like
add_component_x
) - Write you change
- Write tests for your change (if applicable)
- Run the tests, ensuring they all pass
- Submit a Pull Request using Github
Three test suites exist:
- two using kitchen.ci (meant to be run localy by contributors)
- one using rspec (meant to be run by travis, not localy).
These test suites can be launched by using rake integration:vagrant
or
rake integration:docker
for the kitchen.ci one and rake travis
for rspec.
You need stove to publish the cookbook on
supermarket. Once it's done use rake publish
- Author:: Tugdual Saunier (tugdual.saunier@blackfire.io)
Copyright:: 2014-2016 Blackfire.io
See LICENSE file