Agent to collect server metrics and send them to the CopperEgg RevealMetrics platform. Plugins for different metrics available.
gem install bipbip
There's a puppet module for Debian available to install bipbip as a system daemon.
Pass the path to your configuration file to
bipbip using the
-c command line argument.
bipbip -c /etc/bipbip/config.yml
Example with CopperEgg as a storage and service plugins for memcached and mysql configured:
logfile: /var/log/bipbip.log loglevel: INFO frequency: 15 tags: ['foo', 'bar'] include: services.d/ storages: - name: copperegg api_key: <YOUR_APIKEY> services: - plugin: memcached hostname: localhost port: 11211 - plugin: mysql hostname: localhost port: 3306
- logfile (optional): Path to log file. If not provided will log to
- loglevel (optional): One of Logger's levels. Defaults to
- frequency (optional): How often to measure metrics (in seconds). Defaults to
- tags (optional): Tags for all service plugins.
- include (optional): Optional directory where to look for service plugin configurations (relative to config file).
- storages: List of storages to send data to.
- services: List of service plugins from which to gather metrics.
include directive allows to set a directory from which to load additional service plugin configurations. The above example could also be structured with multiple files:
. |-- config.yml `-- services.d |-- memcached.yml `-- mysql.yml
memcached.yml would contain:
plugin: memcached hostname: localhost port: 11211
The configuration for each service plugin is described further down. The following options are available for all plugins:
frequency: Override the global measurement frequency.
tags: Additional tags for this specific service.
metric_group: Use a metric group name different from the plugin's name. Useful when using the same plugin twice.
Currently bipbip has only one storage available, but more could be added.
Send metrics to CopperEgg's custom metrics API (RevealMetrics).
- api_key: Your API key
These service plugins ship with bipbip:
Please refer to /docu/services.md for information about the individual plugins and their configuration options.
Custom Service Plugins
Additional service plugins can be created as independent gems.
They should include a class
Plugin::MyPlugin in the
BipBip module extending
On that class the functions
monitor should be implemented.
For a complete example see cargomedia/bipbip-random-example.
bundle exec rake spec
There's also a Vagrant environment available with necessary dependencies pre-installed. To use it, launch a box:
vagrant up vagrant ssh
Then run the
bipbip binary inside:
Release a new version:
- Bump the version in
lib/bipbip/version.rb, merge to master.
- Push a new tag to master.
- Release to RubyGems with
bundle exec rake release.