Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 156 lines (94 sloc) 4.34 kb
bc95518 David Cramer Update the README so people realize this package doesnt really work yet
authored
1 ======
545e6de David Cramer Basic docs
authored
2 Sentry
bc95518 David Cramer 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 David Cramer Added authentication
authored
7 Sentry provides you with a generic interface to view and interact with your error logs. By
bc95518 David Cramer 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 David Cramer 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 David Cramer 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 David Cramer 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 David Cramer 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 David Cramer Update with url to docs
authored
48
bc95518 David Cramer Update the README so people realize this package doesnt really work yet
authored
49 mkvirtualenv sentry
50 python setup.py develop
96c0a9d David Cramer 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 David Cramer Notes about filters API
authored
58 submodules. There are a two key things that make up the client:
96c0a9d David Cramer Some more basic docs
authored
59
60 * ``sentry.client``
61 * ``sentry.events``
62
9358d41 David Cramer Notes about filters API
authored
63 These components are also used within ``sentry.web`` as well.
96c0a9d David Cramer 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 David Cramer Added TODO
authored
92
9358d41 David Cramer Notes about filters API
authored
93 ----------
94 Filter API
95 ----------
96
f8cc4ac David Cramer 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 David Cramer 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 David Cramer Added TODO
authored
101 ------------
102 What's Left?
103 ------------
104
046b280 David Cramer 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 David Cramer Added TODO
authored
106
d9a5d99 David Cramer Update TODO
authored
107 * Runtime validation of settings (ensure events and filters are valid importables, etc.)
9a3bbe6 David Cramer Turns out restructured text requires tons of extra vertical whitespace f...
authored
108
07502b5 David Cramer Refactor sentry namespace so that keys are base level. Moved versions to...
authored
109 * Exception event handler needs to have an intelligent hash
110
1fe0b67 David Cramer 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 David Cramer TODO regarding metadata in capture API
authored
116
0c0c3b5 David Cramer Added TODO
authored
117 * Filter API
9a3bbe6 David Cramer Turns out restructured text requires tons of extra vertical whitespace f...
authored
118
1fe0b67 David Cramer updated TODO
authored
119 * Needs to handle sorting+filtering with denormalized indexes
120
0c0c3b5 David Cramer Added TODO
authored
121 * Plugin API
9a3bbe6 David Cramer Turns out restructured text requires tons of extra vertical whitespace f...
authored
122
60ee732 David Cramer more TODO
authored
123 * Dashboard view needs finalized
9a3bbe6 David Cramer Turns out restructured text requires tons of extra vertical whitespace f...
authored
124
60ee732 David Cramer more TODO
authored
125 * Need to properly index/query on sort+tag combinations
9a3bbe6 David Cramer Turns out restructured text requires tons of extra vertical whitespace f...
authored
126
60ee732 David Cramer more TODO
authored
127 * Implement pagination
9a3bbe6 David Cramer Turns out restructured text requires tons of extra vertical whitespace f...
authored
128
8b84eca David Cramer Update TODO
authored
129 * Should consider supporting better interval dashboards. e.g. last 24 hours, vs last 15 minutes
9a3bbe6 David Cramer Turns out restructured text requires tons of extra vertical whitespace f...
authored
130
0c0c3b5 David Cramer Added TODO
authored
131 * Django Integration (some draft code is present)
9a3bbe6 David Cramer Turns out restructured text requires tons of extra vertical whitespace f...
authored
132
0c0c3b5 David Cramer Added TODO
authored
133 * SQLAlchemy Backend
9a3bbe6 David Cramer Turns out restructured text requires tons of extra vertical whitespace f...
authored
134
abcdfe8 David Cramer Tweak how test coverage is shown in TODO
authored
135 * Test coverage
136
046b280 David Cramer more updates to the TODO
authored
137 * Models and Backends
138
139 * Clients
9a3bbe6 David Cramer Turns out restructured text requires tons of extra vertical whitespace f...
authored
140
29a5ac8 David Cramer Note about client auth API
authored
141 * Decide on final version of client authentication API
9a3bbe6 David Cramer Turns out restructured text requires tons of extra vertical whitespace f...
authored
142
63757f0 David Cramer Note about multi user auth
authored
143 * Probably don't need it to be so secure (nonce is extra load)
9a3bbe6 David Cramer Turns out restructured text requires tons of extra vertical whitespace f...
authored
144
63757f0 David Cramer 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 David Cramer 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 David Cramer Turns out restructured text requires tons of extra vertical whitespace f...
authored
147
8b84eca David Cramer Update TODO
authored
148 * Make reporting extendable
9a3bbe6 David Cramer Turns out restructured text requires tons of extra vertical whitespace f...
authored
149
8b84eca David Cramer Update TODO
authored
150 * The email reporting which was available in Sentry 1.x should simply be a builtin reporting option.
9a3bbe6 David Cramer Turns out restructured text requires tons of extra vertical whitespace f...
authored
151
8b84eca David Cramer Update TODO
authored
152 * Add an IRC extension?
9a3bbe6 David Cramer Turns out restructured text requires tons of extra vertical whitespace f...
authored
153
8b84eca David Cramer Update TODO
authored
154 * Add a network Growl extension?
9a3bbe6 David Cramer Turns out restructured text requires tons of extra vertical whitespace f...
authored
155
8b84eca David Cramer Update TODO
authored
156 * Add an IM extension?
Something went wrong with that request. Please try again.