license and readme updates
This commit is contained in:
parent
9b1e0c6263
commit
55f824686a
|
@ -1,3 +1,5 @@
|
||||||
BSD and MPL
|
BSD and MPL
|
||||||
|
|
||||||
Todo: portions of this is from commonware
|
Portions of this are from commonware:
|
||||||
|
|
||||||
|
https://github.com/jsocol/commonware/blob/master/LICENSE
|
||||||
|
|
60
README.rst
60
README.rst
|
@ -1,18 +1,39 @@
|
||||||
|
Django Statsd
|
||||||
|
=============
|
||||||
|
|
||||||
Integration between statsd and django. It allows you to use different clients,
|
Integration between statsd and django. It allows you to use different clients,
|
||||||
sends timings as middleware and integrates with django debug toolbar.
|
sends timings as middleware and integrates with django debug toolbar.
|
||||||
|
|
||||||
Requirement, pystatsd: https://github.com/jsocol/pystatsd
|
Credits:
|
||||||
|
|
||||||
|
- jbalogh and jsocol for statsd and commonware, which I just ripped parts out
|
||||||
|
of and put in here.
|
||||||
|
- robhudson for django-debug-toolbar
|
||||||
|
|
||||||
|
Requirement, pystatsd:
|
||||||
|
|
||||||
|
https://github.com/jsocol/pystatsd
|
||||||
|
|
||||||
First off, pick your client, one of:
|
First off, pick your client, one of:
|
||||||
|
|
||||||
- django_statsd.clients.null (does nothing, good for development)
|
- django_statsd.clients.null
|
||||||
- django_statsd.clients.toolbar (use for the toolbar)
|
|
||||||
- django_statsd.clients.statsd (use for production, just passes through to pystatsd)
|
This one does nothing, good for development. No point in wasting those UDP
|
||||||
|
packets.
|
||||||
|
|
||||||
|
- django_statsd.clients.toolbar
|
||||||
|
|
||||||
|
Use for the django debug toolbar, stores all the statsd pings on the request
|
||||||
|
so they can be used in the toolbar.
|
||||||
|
|
||||||
|
- django_statsd.clients.statsd
|
||||||
|
|
||||||
|
Use this for production, it just passes through to the real actual pystatsd.
|
||||||
|
|
||||||
Usage
|
Usage
|
||||||
-----
|
-----
|
||||||
|
|
||||||
To send timings from your code, use just like statsd, but change your imports
|
To send timings from your code, use just like pystatsd, but change your imports
|
||||||
to read::
|
to read::
|
||||||
|
|
||||||
from django_statsd.clients import statsd
|
from django_statsd.clients import statsd
|
||||||
|
@ -22,6 +43,12 @@ For example::
|
||||||
from django_statsd.clients import statsd
|
from django_statsd.clients import statsd
|
||||||
statsd.incr('response.200')
|
statsd.incr('response.200')
|
||||||
|
|
||||||
|
Django statsd will choose the client as specified in your config and send the
|
||||||
|
data to it. You can change you client by specifying it in the config, the
|
||||||
|
default is::
|
||||||
|
|
||||||
|
STATSD_CLIENT = 'django_statsd.clients.statsd'
|
||||||
|
|
||||||
To send timings or counts with every request, add in some middleware::
|
To send timings or counts with every request, add in some middleware::
|
||||||
|
|
||||||
MIDDLEWARE_CLASSES = (
|
MIDDLEWARE_CLASSES = (
|
||||||
|
@ -45,7 +72,8 @@ This will show you the statsd timings in the toolbar::
|
||||||
'debug_toolbar.middleware.DebugToolbarMiddleware',
|
'debug_toolbar.middleware.DebugToolbarMiddleware',
|
||||||
) + MIDDLEWARE_CLASSES
|
) + MIDDLEWARE_CLASSES
|
||||||
|
|
||||||
Note: this must go before the GraphiteMiddleware.
|
Note: this must go before the GraphiteMiddleware so that we've got the timing
|
||||||
|
data in before we show the toolbar panel.
|
||||||
|
|
||||||
Add in the panel::
|
Add in the panel::
|
||||||
|
|
||||||
|
@ -58,9 +86,11 @@ Set the client::
|
||||||
|
|
||||||
STATSD_CLIENT = 'django_statsd.clients.toolbar'
|
STATSD_CLIENT = 'django_statsd.clients.toolbar'
|
||||||
|
|
||||||
Finally, to show data from a graphite server, if you have one, link it up::
|
Finally if you have production data coming into a graphite server, you can
|
||||||
|
show data from that server. If you have one, link it up::
|
||||||
|
|
||||||
Configure where the toolbar shows graphs::
|
Here's the configuration we use on AMO. Because triggers and counts go
|
||||||
|
to different spots, you can configure them differently::
|
||||||
|
|
||||||
TOOLBAR_STATSD = {
|
TOOLBAR_STATSD = {
|
||||||
'graphite': 'https://graphite-phx.mozilla.org/render/',
|
'graphite': 'https://graphite-phx.mozilla.org/render/',
|
||||||
|
@ -70,8 +100,14 @@ Configure where the toolbar shows graphs::
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Credits:
|
The key is added on to the root. So if you've got a key of `view.GET` this
|
||||||
|
would look that up on the graphite server with the key::
|
||||||
|
|
||||||
- jbalogh and jsocol for statsd and commonware, which I just ripped out
|
stats.addons.view.GET
|
||||||
and put in here.
|
|
||||||
- robhudson for django-debug-toolbar
|
More
|
||||||
|
----
|
||||||
|
|
||||||
|
- More tests.
|
||||||
|
|
||||||
|
- More measuring things.
|
||||||
|
|
Loading…
Reference in New Issue