1. Sentry
Logging for the real world
(Yes, we play StarCraft 2)
@zeeg justcramer.com
2. But really, what is it?
Self-hosted log storage
solution powered by Python
With a usable interface!
3.
4.
5. 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
7. 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
8. 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)
9. 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
* LogBook is supported with an experimental handler
11. 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
12. 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
13. 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
16. 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_
awesome_id=57
20. 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