Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 156 lines (94 sloc) 4.34 kB
bc95518 @dcramer Update the README so people realize this package doesnt really work yet
authored
1 ======
545e6de @dcramer Basic docs
authored
2 Sentry
bc95518 @dcramer Update the README so people realize this package doesnt really work yet
authored
3 ======
4
5 **SENTRY 2.0 (this) IS IN DEVELOPMENT AND SHOULD NOT BE USED IN PRODUCTION**
3e2ef2c Several fixes from existing Google Code tickets.
David Cramer authored
6
50445d5 @dcramer Added authentication
authored
7 Sentry provides you with a generic interface to view and interact with your error logs. By
bc95518 @dcramer Update the README so people realize this package doesnt really work yet
authored
8 default, it will record various events to a datastore. With this
50445d5 @dcramer Added authentication
authored
9 it allows you to interact and view near real-time information to discover issues and more
10 easily trace them in your application.
3e2ef2c Several fixes from existing Google Code tickets.
David Cramer authored
11
bc95518 @dcramer Update the README so people realize this package doesnt really work yet
authored
12 (The next chunk is a lie, but planned)
13
14 Built-in support includes:
15
16 - Drop-in Django support
17 - WSGI middleware for error logging
18 - Query logging for psycopg2 and MySQLdb
19 - ``logging`` and ``logbook`` modules
20
21 Issue tracker: http://github.com/dcramer/django-sentry/issues
22
96c0a9d @dcramer Some more basic docs
authored
23 ==========
24 Basic Docs
25 ==========
26
27 We'll move all of this into the Sphinx docs once APIs are finalized.
28
bc95518 @dcramer Update the README so people realize this package doesnt really work yet
authored
29 -------------
30 Running tests
31 -------------
32
33 Sentry uses Nose, which will automatically be installed (along with unittest2) if you use
34 the ``test`` command.
35
36 ::
37
38 mkvirtualenv sentry
39 python setup.py test
40
41 ----------------------
42 Running ``sentry.web``
43 ----------------------
44
45 The server component of Sentry, called ``sentry.web``, can be run with the following command:
46
47 ::
ff0fe0c @dcramer Update with url to docs
authored
48
bc95518 @dcramer Update the README so people realize this package doesnt really work yet
authored
49 mkvirtualenv sentry
50 python setup.py develop
96c0a9d @dcramer Some more basic docs
authored
51 sentry start --no-daemon --debug
52
53 ----------
54 Client API
55 ----------
56
57 The client is the core of Sentry, which is composed of the ``sentry`` namespace, and its many
9358d41 @dcramer Notes about filters API
authored
58 submodules. There are a two key things that make up the client:
96c0a9d @dcramer Some more basic docs
authored
59
60 * ``sentry.client``
61 * ``sentry.events``
62
9358d41 @dcramer Notes about filters API
authored
63 These components are also used within ``sentry.web`` as well.
96c0a9d @dcramer Some more basic docs
authored
64
65 To capture an error, Sentry provides the ``capture`` function:
66
67 ::
68
69 from sentry import capture
70 capture('sentry.events.Exception', exc_info=exc_info)
71
72 For built-in events, you can drop the module namespace:
73
74 ::
75
76 from sentry import capture
77 capture('Exception', exc_info=exc_info)
78
79 One of the big changes from Sentry 1.x to 2.x, is the ability to record durations (in ms) with events:
80
81 ::
82
83 from sentry import capture
84 capture('Query', query='SELECT * FROM table', engine='psycopg2', time_spent=36)
85
86 The other major change, is that labels like "logger", and "server" are now part of the tagging architecture:
87
88 ::
89
90 from sentry import capture
91 capture('Message', message='hello world', tags=[('logger', 'root'), ('level', 'error'), ('url', 'http://example.com')])
0c0c3b5 @dcramer Added TODO
authored
92
9358d41 @dcramer Notes about filters API
authored
93 ----------
94 Filter API
95 ----------
96
f8cc4ac @dcramer Tweak filter API info
authored
97 The filter API is designed to allow dynamic filters based on tags. They are composed of two pieces: a processor and a renderer. The renderer simply tells Sentry how it needs to be displayed in the filter list (e.g. a select widget with FOO choices, a search input, etc).
9358d41 @dcramer Notes about filters API
authored
98
99 The majority of this code lies within ``sentry.web.filters``, and are specified as part of the ``SLICES`` runtime configuration.
100
0c0c3b5 @dcramer Added TODO
authored
101 ------------
102 What's Left?
103 ------------
104
046b280 @dcramer more updates to the TODO
authored
105 This is a rough list of features/APIs which need to be completed (*some* of this is better described in the issue tracker):
0c0c3b5 @dcramer Added TODO
authored
106
d9a5d99 @dcramer Update TODO
authored
107 * Runtime validation of settings (ensure events and filters are valid importables, etc.)
9a3bbe6 @dcramer Turns out restructured text requires tons of extra vertical whitespac…
authored
108
07502b5 @dcramer Refactor sentry namespace so that keys are base level. Moved versions…
authored
109 * Exception event handler needs to have an intelligent hash
110
1fe0b67 @dcramer updated TODO
authored
111 * Processor API (for post-processing messages before they get sent to the server)
112
113 * Should be an ordered tuple specified in config
114
115 * Should be able to manipulate all of ``data`` (so you can clean messages, or add additional metadata)
5faee9a @dcramer TODO regarding metadata in capture API
authored
116
0c0c3b5 @dcramer Added TODO
authored
117 * Filter API
9a3bbe6 @dcramer Turns out restructured text requires tons of extra vertical whitespac…
authored
118
1fe0b67 @dcramer updated TODO
authored
119 * Needs to handle sorting+filtering with denormalized indexes
120
0c0c3b5 @dcramer Added TODO
authored
121 * Plugin API
9a3bbe6 @dcramer Turns out restructured text requires tons of extra vertical whitespac…
authored
122
60ee732 @dcramer more TODO
authored
123 * Dashboard view needs finalized
9a3bbe6 @dcramer Turns out restructured text requires tons of extra vertical whitespac…
authored
124
60ee732 @dcramer more TODO
authored
125 * Need to properly index/query on sort+tag combinations
9a3bbe6 @dcramer Turns out restructured text requires tons of extra vertical whitespac…
authored
126
60ee732 @dcramer more TODO
authored
127 * Implement pagination
9a3bbe6 @dcramer Turns out restructured text requires tons of extra vertical whitespac…
authored
128
8b84eca @dcramer Update TODO
authored
129 * Should consider supporting better interval dashboards. e.g. last 24 hours, vs last 15 minutes
9a3bbe6 @dcramer Turns out restructured text requires tons of extra vertical whitespac…
authored
130
0c0c3b5 @dcramer Added TODO
authored
131 * Django Integration (some draft code is present)
9a3bbe6 @dcramer Turns out restructured text requires tons of extra vertical whitespac…
authored
132
0c0c3b5 @dcramer Added TODO
authored
133 * SQLAlchemy Backend
9a3bbe6 @dcramer Turns out restructured text requires tons of extra vertical whitespac…
authored
134
abcdfe8 @dcramer Tweak how test coverage is shown in TODO
authored
135 * Test coverage
136
046b280 @dcramer more updates to the TODO
authored
137 * Models and Backends
138
139 * Clients
9a3bbe6 @dcramer Turns out restructured text requires tons of extra vertical whitespac…
authored
140
29a5ac8 @dcramer Note about client auth API
authored
141 * Decide on final version of client authentication API
9a3bbe6 @dcramer Turns out restructured text requires tons of extra vertical whitespac…
authored
142
63757f0 @dcramer Note about multi user auth
authored
143 * Probably don't need it to be so secure (nonce is extra load)
9a3bbe6 @dcramer Turns out restructured text requires tons of extra vertical whitespac…
authored
144
63757f0 @dcramer Note about multi user auth
authored
145 * Support should be considered for having multiple "users". A good example use case is if a consulting firm uses a single
8b84eca @dcramer Update TODO
authored
146 Sentry server and has many clients, but then decides one client's access needs revoked from recording to the logger.
9a3bbe6 @dcramer Turns out restructured text requires tons of extra vertical whitespac…
authored
147
8b84eca @dcramer Update TODO
authored
148 * Make reporting extendable
9a3bbe6 @dcramer Turns out restructured text requires tons of extra vertical whitespac…
authored
149
8b84eca @dcramer Update TODO
authored
150 * The email reporting which was available in Sentry 1.x should simply be a builtin reporting option.
9a3bbe6 @dcramer Turns out restructured text requires tons of extra vertical whitespac…
authored
151
8b84eca @dcramer Update TODO
authored
152 * Add an IRC extension?
9a3bbe6 @dcramer Turns out restructured text requires tons of extra vertical whitespac…
authored
153
8b84eca @dcramer Update TODO
authored
154 * Add a network Growl extension?
9a3bbe6 @dcramer Turns out restructured text requires tons of extra vertical whitespac…
authored
155
8b84eca @dcramer Update TODO
authored
156 * Add an IM extension?
Something went wrong with that request. Please try again.