Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zhebrak/django-statsy
Statistics for your Django project
https://github.com/zhebrak/django-statsy
django python statistics
Last synced: about 2 months ago
JSON representation
Statistics for your Django project
- Host: GitHub
- URL: https://github.com/zhebrak/django-statsy
- Owner: zhebrak
- License: mit
- Created: 2014-11-23T22:12:29.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2019-03-29T21:59:42.000Z (over 5 years ago)
- Last Synced: 2024-10-08T04:24:29.415Z (3 months ago)
- Topics: django, python, statistics
- Language: JavaScript
- Homepage:
- Size: 1.28 MB
- Stars: 63
- Watchers: 6
- Forks: 9
- Open Issues: 13
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
Django Statsy
========[![Build Status](https://travis-ci.org/zhebrak/django-statsy.svg)](https://travis-ci.org/zhebrak/django-statsy) [![PyPI version](https://badge.fury.io/py/django-statsy.svg)](http://badge.fury.io/py/django-statsy)
Statsy is an application for collecting and displaying statistics in your Django project.
### Basic Usage
View decorator:
```python
@statsy.watch
def index(request):
...
``````python
@statsy.watch(group='index', event='page_view')
def index(request):
...
```Inside the view:
```python
def like(request):
statsy.send(
group='post', event='like', user=request.user,
value=17, content_object=post
)
...
```CBV Mixin:
```python
class AboutView(WatchMixin, TemplateView):
template_name = 'example/about.html'watch_group = 'info'
watch_event = 'page_view'
...
```From the template:
```javascript
{% load statsy %}{% statsy %}
...
var statsy = new Statsy()
statsy.send({
'group': 'post',
'event': 'subscription'
});
```### Installation
```
pip install django-statsy
``````python
# settings.pyINSTALLED_APPS = (
...'statsy',
)
```If you want to display collected statistics you will also have to add Statsy's URLs to your project's URLs.
```python
# urls.py
...url(r'^stats/', include('statsy.urls')),
...
```### Dashboard
Default out of the box graphs.
![group_overview](https://raw.github.com/zhebrak/django-statsy/master/docs/img/dashboard.png)
### Configuration
There are some settings you may want to change (default values are specified).
```python
# 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.
```python
# 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 , or //etc.
'value'# where did it happen
# collected by default in @watch
'url'# how long did it take
# 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".
```python
# stats.py
import statsydef 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
```python
statsy.site.register(
some_awesome_stats,
category='Awesome stats',
name='Most awesome',
permission='user.view_awesome_stats'
)
```### License
[MIT](https://github.com/zhebrak/django-statsy/raw/master/LICENSE)