Skip to content

nthomas-mozilla/briar-patch

 
 

Repository files navigation

Briar Patch
-----------

Metrics, alerts and events framework

Using ZeroMQ on the inside, Briar Patch will be a way to allow multiple
incoming data streams all be handled/filtered/massaged and then consumed
by various workers as needed.

Yea, I don't know what it will be quite yet either...


Installation
------------
Not everything in Briar Patch requires all of the below - just is just a
"working notes" journal for the items I've had to install.

My primary dev environment is OS X, so I use Brew almost exclusively, so all
of the install notes below reference Brew.

Brew can be found at http://mxcl.github.com/homebrew/

Except for Python, which I kept at v2.7, everything else is as fresh as you
can stand.

  brew install python

  pip install pyzmq
  pip install keyring
  pip install requests
  pip install dnspython

  git clone http://github.com/andymccurdy/redis-py
  cd redis-py
  python setup.py install
  cd ..

  hg clone http://hg.mozilla.org/users/clegnitto_mozilla.com/mozillapulse
  cd mozillapulse
  python setup.py install
  cd ..

  pip install django
  pip install django-tagging
  pip install whisper

Carbon and Graphite-web place config files in /opt/graphite and we are going to
be running a lot of debug tests, so I ended up just chown'ing /opt/graphite to
allow me to control it - made all of the below steps sooo much saner.

Yes these two were installed with easy_install - for some crazy reason pip shoved
carbon and twisted into /opt/graphite/lib instead of in the shared lib path
*EVERYTHING ELSE* was placed ....... *sigh*

  easy_install carbon
  easy_install graphite-web

The following was crib'd from  http://eternusuk.blogspot.com/2011/09/installing-graphite-on-osx-snow-leopard.html

  brew install cairo --use-gcc

  wget http://cairographics.org/releases/py2cairo-1.10.0.tar.bz2
  tar xf py2cairo-1.10.0.tar.bz2 
  cd py2cairo-1.10.0

Adjust the following according to your local setup...

  export CC=/usr/bin/gcc
  export PKG_CONFIG_PATH=/usr/local/Cellar/cairo/1.10.2/lib/pkgconfig/

  python waf configure
  python waf build
  python waf install

Configuring Graphite is almost an art form itself, for this initial testing I just stuck with
the configuration they provide as an example (edited appropriately) ...

  cd /opt/graphite/conf
  cp storage-schemas.conf.example storage-schemas.conf
  cp carbon.conf.example carbon.conf

I set the following in carbon.conf:

  STORAGE_DIR = /opt/graphite/storage
  LOCAL_DATA_DIR = /opt/graphite/storage/whisper
  LOG_DIR = /opt/graphite/log/
  PID_DIR = /opt/graphite/

To start the carbon listener:

  carbon-cache.py --debug --config=/opt/graphite/conf/carbon.conf start

To blow everything away and start collecting data fresh:

  rm -rf /opt/graphite/storage/whisper/*

To run the graphite web frontend:

  cd /opt/graphite/webapp
  cp local_settings.py.example local_settings.py

The first time you run this, you will need to create an admin user:
  python manage.py syncdb

  run-graphite-devel-server.py /opt/graphite



Dependencies
------------

  Redis
    https://github.com/andymccurdy/redis-py

  Mozilla Pulse
    http://hg.mozilla.org/users/clegnitto_mozilla.com/mozillapulse/

  ZeroMQ
    http://zeromq.github.com/pyzmq/

  Carrot
    https://github.com/ask/carrot/

  Graphite
    Carbon, Whisper and Graphite-Web
    http://graphite.wikidot.com/

  releng
    internal RelEng lib (currently no home)

  Paramiko
    

About

event and alert framework for RelEng systems

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 99.0%
  • Shell 1.0%