Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Amon - web application debugging and monitoring...

Martin Rusev
December 01, 2011

Amon - web application debugging and monitoring toolkit

Martin Rusev

December 01, 2011
Tweet

Other Decks in Programming

Transcript

  1. How does it work Collector daemon Web application JSON API

    Periodically checks the system metrics and saves the information to a Mongo Database Displays Logs, Exceptions and charts with system and process information Accepts POST requests with log and exception data from the web application
  2. System monitoring CPU, RAM, Disk usage, Loadavg, Network statistics Custom

    date ranges with 24 hours default A very thin layer over standard UNIX tools
  3. /etc/amon.conf “process_checks”: [ ”mongo”, ”nginx” ] Process monitoring CPU and

    RAM Adding a new process is 1 line of code Master/worker aware Perfect for monitoring web servers
  4. pip install amonpy ......................... import amonpy amonpy.log({”first_name”: “John”, “last_name”: “Dev”},

    level=’info’) amonpy.log([’list’, ‘of’,’things’, level=’debug’) amonpy.log(’just a string’, level=’debug’) Python Logging Not limited to strings No configuration Easily searchable through the web interface Language agnostic Supports strings, dictionaries, lists and tuples Works in every language that supports HTTP and JSON
  5. Exception logging Support for the most popular web frameworks Intelligently

    groups similar exceptions Full backtrace Django, Ruby and Rails and Node.js MIDDLEWARE_CLASSES = (‘amonpy.DjangoExceptionMiddleware) Django integration - settings.py gem ‘ramon’ Rails3 integration - Gemfile
  6. Why use it Easy to install Lighweight and scalable Full

    control over your data Optimized to run both on a server and a local machine curl install.amon.cx | sh Uses the Tornado web framework. On top of MongoDB
  7. Thank you You can find Amon at If you have

    any questions, you can find me at amon.cx github.com/martinrusev/amon github.com/martinrusev @martin_rusev