Skip to content


Subversion checkout URL

You can clone with
Download ZIP
event and alert framework for RelEng systems
Python Ruby Puppet Shell
Branch: master
Pull request Compare This branch is 100 commits behind mozilla:master.

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.


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

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

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

  brew install python

  pip install pyzmq

  git clone
  cd redis-py
  python install
  cd ..

  hg clone
  cd mozillapulse
  python 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

  brew install cairo --use-gcc

  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: --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

The first time you run this, you will need to create an admin user:
  python syncdb /opt/graphite



  Mozilla Pulse



    Carbon, Whisper and Graphite-Web

    internal RelEng lib (currently no home)

Something went wrong with that request. Please try again.