Coder Social home page Coder Social logo

bipbip's Introduction

bipbip Build Status

Agent to collect server metrics and send them to the CopperEgg RevealMetrics platform. Plugins for different metrics available.

Installation

gem install bipbip

There's a puppet module for Debian available to install bipbip as a system daemon.

Configuration

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

Configuration options:

  • logfile (optional): Path to log file. If not provided will log to STDOUT.
  • loglevel (optional): One of Logger's levels. Defaults to INFO.
  • frequency (optional): How often to measure metrics (in seconds). Defaults to 60.
  • 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.

The 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

Where 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.

Storages

Currently bipbip has only one storage available, but more could be added.

copperegg

Send metrics to CopperEgg's custom metrics API (RevealMetrics).

Configuration options:

  • api_key: Your API key

Service Plugins

These service plugins ship with bipbip:

  • memcached
  • mysql
  • mongodb
  • redis
  • resque
  • gearman
  • apache2
  • nginx
  • network
  • monit
  • php-apc
  • fastcgi-php-fpm
  • fastcgi-php-apc
  • fastcgi-php-opcache
  • log-parser
  • postfix
  • elasticsearch
  • puppet
  • command
  • socket-redis

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 Plugin. On that class the functions metrics_schema and monitor should be implemented.

For a complete example see cargomedia/bipbip-random-example.

Development

Start and provision the development-VM with vagrant, then log in:

vagrant up
vagrant ssh

You can then run bipbip from within the mounted projected root directory:

/vagrant/bin/bipbip

bipbip's People

Contributors

njam avatar kris-lab avatar thefooj avatar ppp0 avatar tomaszdurka avatar

Watchers

 avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.