Monday, October 3, 2011

Scalable realtime stats with Graphite


Here at Adku, we’re always looking for ways to move faster and smarter.  There’s nothing worse than having to wait a day or two to see if a code push has a positive or negative effect on our bottom line.  One way to track application issues is to create a stat and graph it.  While there’s a litany of solutions out there today, we’re using Graphite, a realtime graphing framework and we love what its done for us thus far.  Here’s what Graphite can do:

We recently went through the process of setting up our own Graphite cluster and below are the references/steps that we used to get everything running.  We hope this helps :)

Graphite installation guide

This guide will install all the software packages required to get you up and running.  Graphite will be setup to run across multiple machines.  NOTE, these steps are virtually verbatim copies of our setup scripts.  We are assuming you’re working with a clean Ubuntu 10.04 LTS installation (we’re using Ubuntu AMIs on EC2)  We will NOT be delving into specifics for all non-Graphite related apps.  In case you’re curious, this guide will install the following packages:

Process control - supervisor - akin to init.d
Web serving - nginx, uwsgi - akin to apache + mod_wsgi/mod_python
Caching - memcached
Stats collection - statsite - akin to Etsy’s statsd without a dependency on node.js
Graphite - graphite-web, carbon, whisper - required for stats collection

Step 2 - Run

Step 3 - Copy all files from the archive into /etc and /opt respectively

Step 4 - Update following config variables

/etc/nginx/nginx.conf - worker processes (line 4)
/etc/nginx/sites-enabled/graphite - public hostname (line 3)
/etc/supervisor/supervisord.conf - web processes (line 39)
/opt/graphite/conf/carbon.conf - storage dir and cluster servers (line 2 and line 96)
/opt/graphite/conf/relay-rules.conf - cluster servers (line 3)
/opt/graphite/conf/storage-schemas.conf - retention times (line 4 - optional)
/opt/graphite/webapp/graphite/ - storage dir and cluster servers (all lines)

Step 5 - Setup the graphite-web - Django app

cd /opt/graphite/webapp/graphite
yes no | python syncdb

Step 6 - Spin up supervisord - should spin up all other processes

sudo supervisorctl status
sudo supervisord (only if needed)

Step 7 - Ensure that our processes didn’t blow up

sudo tail -f /var/log/supervisor/*.log

Step 8 - Feed stats to your cluster.  For a list of clients see

Step 9 - Check your stats server that your stat showed up!

Further reference


nginx/uwsgi - used for web serving

statsite - Python implementation of Etsy’s statsd


  1. This article helps us a lot. I appreciate your help on sharing these guides. Thanks!

    Accounting Packages

    1. Hello friends, i have nice information, click it Untuk tips bermain bisa dilaksanakan dengan mudah dan benar jika pemain masuk ke dalam bandar king4d online yang menyediakan judi togel online yang terpercaya dan aman. Bandar inilah yang harus dipilih untuk lebih mudahnya bermain togel lxtoto online dan memenangkannya dengan hasil yang nyata. Selain itu, tips bermain judi togel online itu mudah ditemukan di internet. Dengan banyak menggali dan mencari informasi yang akurat dan tepat serta berhubungan dengan judi Eyang Togel, maka akan menemukan tips bermain yang sangat tepat untuk dilaksanakan dalam setiap permainan judi online yang dilaksanakan. Tips unik dan berbeda dengan pemain lain juga bisa ditemukan banyak di dunia maya Toto Singapore. Namun di sini pemain diharuskan untuk banyak mencari informasi yang inspiratif, trik, cara dan tips dalam melaksanakan setiap permainan judi togel totojitu online ini. Selain itu, jam terbang yang banyak dan aktif di bandar 8togel online juga akan berpengaruh untuk pemain memiliki cara terbaik sendiri. Jika tips bermain bisa ditemukan, maka tugas utama pemain judi sekarang ini adalah memilih bandar judi togel king4d online yang aman. Tugas intim yang wajib ditemukan supaya bisa melaksanakan tips bermain dengan mudah dan memenangkan setiap permainan judi togel online. Untuk bisa lebih mudah dalam menemukan Bandar togel lotus4d online yang aman, pemain judi diharapkan untuk memperhatikan beberapa hal berikut ini yang menuntun pemain judi dalam menemukan bandar yang tepat sasaran dan terjamin keamanannya.

  2. Hi,


    I do all step to post, but i started supervisor and uWSGI don't started.

    This error is
    *** Starting uWSGI 1.4.5 (32bit) on [Wed Feb 20 18:30:36 2013] ***
    compiled with version: 4.6.3 on 20 February 2013 17:29:32
    os: Linux-3.6.11+ #377 PREEMPT Sat Feb 16 17:31:02 GMT 2013
    nodename: raspian
    machine: armv6l
    clock source: unix
    detected number of CPU cores: 1
    current working directory: /
    detected binary path: /usr/local/bin/uwsgi
    uWSGI running as root, you can use --uid/--gid/--chroot options
    *** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***
    your processes number limit is 3377
    limiting address space of processes...
    your process address space limit is 536870912 bytes (512 MB)
    your memory page size is 4096 bytes
    detected max file descriptor number: 1024
    lock engine: pthread robust mutexes
    uwsgi socket 0 bound to TCP address fd 3
    Python version: 2.7.3 (default, Jan 13 2013, 12:38:42) [GCC 4.6.3]
    Fatal Python error: exceptions bootstrapping error.

    could you help me?

  3. I have read your blog its very attractive and impressive. I like it your blog.

    Java Training in Chennai Java Training in Chennai | Core Java Training in Chennai Java Training in Chennai

    Online Java Training Java Online Training | Java 8 online training | JavaEE Training in Chennai

  4. Hibernate Training Institutes in ChennaiHibernate Training Institutes in Chennai Hibernate Online Training Hibernate Online Training Hibernate Training in Chennai Hibernate Training in Chennai Java Online Training Java Online Training

  5. Struts2 Training Institutes in Chennai Struts2 Training Institutes in Chennai Spring Training Institutes in Chennai Spring Training Institutes in Chennai Java MicroServices Training Institutes In Chennai Java MicroServices Training Institutes In Chennai

  6. I accidentally saw your post and it attracted me from the first few seconds, it was excellent, hope you have more successful posts. I like this post because it contains a lot of useful information to read, maybe everyone will like me.
    Jogo para criança, io games for school, cá koi mini, jogo 360 2019

  7. It's actually a cool and useful piece of info. I'm satisfied that you shared this helpful info with us. Please stay us up to date like this. Thank you for sharing.

  8. الرطوبة هي مهمة جدا لعلم وظائف الأعضاء النمل الأبيض. سوف يجف النمل الأبيض ويموت إذا لم يكن في مكان رطب. أريزونا صحراء 90 ٪ ، وخلصت إلى أنها حالة جافة ، بالنسبة للجزء الأكبر. النمل الأبيض متستر ، تذكر. النمل الأبيض يعيش في أكوام تسيطر عليها بيئيا. هذا يعني أنك بحاجة إلى التأكد من عدم وجود أي تسرب أو رطوبة في منزلك. غرفة الغسيل والحمامشركة مكافحة حشرات بالاحساء
    شركة مكافحة حشرات بالدمام

  9. Unul dintre cele mai bune lucruri despre Filme Turcesti este ca au fani în lumea întreaga, întrucât fac de obicei filme de razboi, care au o nota proprie de via?a regala ?i de toate din vremurile stravechi. Filme Turcesti este de asemenea descarcat de pe aceasta pagina.

  10. Clicksud shows:, TVpenet shows, rulare shows, Romanian shows full hd episodes online for free

  11. Comprehensive National Football League news, scores, standings, fantasy games, rumors, and more.
    Green Bay Packers Football
    New England Patriots Game Today
    LA Rams Game
    Colts Game
    Broncos Game

  12. Nice blog and absolutely outstanding. You can do something much better but i still say this perfect.Keep trying for the best. Eminem is an American rapper and one of the most successful artists in hip-hop. As of 2020, Eminem net worth is now estimated to be $230 million.

  13. That’s a nice article, thank you for a great article. It helped me a lot. Keep it up Must Visit panda klantendienst

  14. Thanks for sharing such an Amazing information, I Couldn't leave without reading your blog. I have read another good blog, I think you have read it too. click here helpdesk AVG