Sentry Logging for the real world (Yes, we play StarCraft 2) @ze justcramer.com eg
But really, what is it? Self-hosted log storage solution powered by Python With a usable interface!
Why should you use it? It’s python, it’s open source, and it’s extensible Actively maintained by companies which use it every single day Cheaper than commercial services Assuming you can handle setting up an Ubuntu machine Setup takes minutes
Sentry 1.x (Stable)
Features for Devs Filter messages by various attributes, such as server, level, logger name Sort by priority (combination of last seen and count), last seen, and first seen Mark messages as resolved when they’re no longer applicable
Features for Devs Real-time (short polling) view of the dashboard Integrated full-text search* Future version will only work with Solr Plugin architecture * In Sentry 1.x search requires using a modified version of Haystack (for Django)
Client/Server Client: Can be extended within any Python framework Integrates with logging, LogBook*, Django exception handling Server: Powered by Django Works with most database backends Fast! (on Postgres, at least) * LogBook is supported with an experimental handler
Sentry 2.x (In development, coming soon)
Wait, there’s a 2.x? Still in development (but we’re almost there!) Not compatible with 1.x Platform independent Lots of APIs are still in draft spec
What else do you get? Support for any data store (currently using Redis) We do really mean any No Django requirement, on the client or server Frontend integration via Nexus github.com/dcramer/nexus Flexibility!
Flexibility!?! Extensible support for events Out of the box: SQL Queries, Exceptions, Log Messages More than Python! Storage API allows anything an event process can handle Clients can be written in any language
Event Storage API
Event Storage API
But wait, there’s more Custom dashboard panes Configure multiple views to aggregate events in whatever fashion you need them Data annotations Any event can be annotated with any number of key/value pairs. server=localhost,level=error,logger=root,super_aw esome_id=57 Indexed, aggregated, and filterable
... with annotations
How you can help Let us know what isn’t “good enough” Build a client for your favorite framework We will officially include clients for at minimum, Django, Pyramid, Flask, and WSGI (middleware) Use it! The best additions have come from problems that we’ve found using it internally