Statistics for Django projects
Project description
Statsy is an application for collecting and displaying statistics in your Django project.
Basic Usage
View decorator:
@statsy.watch
def index(request):
...
@statsy.watch(group='index', event='page_view')
def index(request):
...
Inside the view:
def like(request):
statsy.send(
group='post', event='like', user=request.user,
value=17, content_object=post
)
...
CBV Mixin:
class AboutView(WatchMixin, TemplateView):
template_name = 'example/about.html'
watch_group = 'info'
watch_event = 'page_view'
...
From the template:
{% load statsy %}
{% statsy %}
...
var statsy = new Statsy()
statsy.send({
'group': 'post',
'event': 'subscription'
});
Installation
pip install django-statsy
# settings.py
INSTALLED_APPS = (
...
'statsy',
)
If you want to display collected statistics you will also have to add Statsy’s URLs to your project’s URLs.
# urls.py
...
url(r'^stats/', include('statsy.urls')),
...
Dashboard
Default out of the box graphs.
group_overview
Configuration
There are some settings you may want to change (default values are specified).
# settings.py
# By default Statsy caches lookups for a group and event
STATSY_CACHE_TIMEOUT = 60 * 15 # in seconds
# Statsy can work in async mode with Celery up and running
STATSY_ASYNC = False
# Full path to Celery application instance (e.g. 'example.celery_app.app')
CELERY_APP = None
# Permission to view stats pages
STATSY_VIEW_PERMISSION = 'statsy.stats_view'
Collect Options
All are optional.
# categorizing options
'group'
'event'
# some additional info about the stats object
'label'
# user associated with the action
# collected by default in @watch
'user'
# object of the action
'content_object'
# value can be <int>, <float> or <str>/<unicode>/etc.
'value'
# where did it happen
# collected by default in @watch
'url'
# how long did it take <int>
# collected by default in @watch
'duration'
# JSON for an extra data
'extra'
Extending
If you want to add your custom stats page to Statsy you’ll have to register it manually in “stats.py”.
# stats.py
import statsy
def some_awesome_stats(request):
return render_to_response('app/awesome_stats.html')
statsy.site.register(some_awesome_stats)
You can also specify a category, a name or a permission
statsy.site.register(
some_awesome_stats,
category='Awesome stats',
name='Most awesome',
permission='user.view_awesome_stats'
)
Roadmap
Enhanced statistics view
Aggregation over time
User tracking
Realtime statistics
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file django-statsy-0.1.5.zip.
File metadata
- Download URL: django-statsy-0.1.5.zip
- Upload date:
- Size: 615.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5e7053f135380bae2cba92f1e6343189effcae764cbcc23328b3c82a89e96afc
|
|
| MD5 |
b0a1fb8ed06b1a0151f03c3b368234de
|
|
| BLAKE2b-256 |
f5b4fa2e45fd928af642d6a84e4340305194d150f44b3cc47e292c5e22eb574e
|