Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse code

Initial doc import

  • Loading branch information...
commit 4cb5c897c2bbdff6eb10a6efc5b0a44d10f9b554 1 parent bdba3ee
Jacob Burch authored February 09, 2012
1  .gitignore
@@ -3,3 +3,4 @@
3 3
 build
4 4
 dist
5 5
 MANIFEST
  6
+_build
73  README.rst
Source Rendered
... ...
@@ -1,5 +1,6 @@
1  
-Overview
2  
-========
  1
+
  2
+Django App Metrics
  3
+==================
3 4
 
4 5
 django-app-metrics allows you to capture and report on various events in your
5 6
 applications.  You simply define various named metrics and record when they
@@ -18,72 +19,10 @@ You then group these individual metrics into a MetricSet, where you define
18 19
 how often you want an email report being sent, and to which User(s) it should
19 20
 be sent.
20 21
 
21  
-Requirements
22  
-============
23  
-
24  
-Celery_ and `django-celery`_ must be installed, however if you do not wish to
25  
-actually use Celery you can simply set ``CELERY_ALWAYS_EAGER = True`` in your
26  
-settings and it will behave as if Celery was not configured.
27  
-
28  
-.. _Celery: http://celeryproject.org/
29  
-.. _`django-celery`: http://ask.github.com/django-celery/
30  
-
31  
-Usage
32  
-=====
33  
-
34  
-::
35  
-
36  
-  from app_metrics.utils import create_metric, metric
37  
-
38  
-  # Create a new metric to track
39  
-  my_metric = create_metric(name='New User Metric', slug='new_user_signup')
40  
-
41  
-  # Create a MetricSet which ties a metric to an email schedule and sets
42  
-  # who should receive it
43  
-  my_metric_set = create_metric_set(name='My Set',
44  
-                                    metrics=[my_metric],
45  
-                                    email_recipients=[user1, user2])
46  
-
47  
-  # Increment the metric by one
48  
-  metric('new_user_signup')
49  
-
50  
-  # Increment the metric by some other number
51  
-  metric('new_user_signup', 4)
52  
-
53  
-  # Aggregate metric items into daily, weekly, monthly, and yearly totals
54  
-  # It's fairly smart about it, so you're safe to run this as often as you
55  
-  # like
56  
-  manage.py metrics_aggregate
57  
-
58  
-  # Send email reports to users
59  
-  manage.py metrics_send_mail
60  
-
61  
-Backends
62  
-========
63  
-
64  
-``app_metrics.backends.db`` (Default) - This backend stores all metrics and
65  
-aggregations in your database. NOTE: Every call to ``metric()`` generates a
66  
-database write, which may decrease your overall performance is you go nuts
67  
-with them or have a heavily traffic site.
68  
-
69  
-``app_metrics.backends.mixpanel`` - This backend allows you to pipe all of
70  
-your calls to ``metric()`` to Mixpanel. See the `Mixpanel documentation`_
71  
-for more information on their API.
72  
-
73  
-.. _`Mixpanel documentation`: http://mixpanel.com/docs/api-documentation
74  
-
75  
-Settings
76  
-========
77  
-
78  
-``APP_METRICS_BACKEND`` - Defaults to 'app_metrics.backends.db' if not defined.
79  
-
80  
-``APP_METRICS_MIXPANEL_TOKEN`` - Your Mixpanel.com API token
81  
-
82  
-``APP_METRICS_MIXPANEL_URL`` - Allow overriding of the API URL end point
83 22
 
84 23
 TODO
85  
-====
  24
+----
86 25
 
87  
-- Improve text and HTML templates to display trending data well
88  
-- Create redis backend for collection and aggregation
  26
+    - Improve text and HTML templates to display trending data well
  27
+    - Create redis backend for collection and aggregation
89 28
 
153  docs/Makefile
... ...
@@ -0,0 +1,153 @@
  1
+# Makefile for Sphinx documentation
  2
+#
  3
+
  4
+# You can set these variables from the command line.
  5
+SPHINXOPTS    =
  6
+SPHINXBUILD   = sphinx-build
  7
+PAPER         =
  8
+BUILDDIR      = _build
  9
+
  10
+# Internal variables.
  11
+PAPEROPT_a4     = -D latex_paper_size=a4
  12
+PAPEROPT_letter = -D latex_paper_size=letter
  13
+ALLSPHINXOPTS   = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
  14
+# the i18n builder cannot share the environment and doctrees with the others
  15
+I18NSPHINXOPTS  = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
  16
+
  17
+.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
  18
+
  19
+help:
  20
+	@echo "Please use \`make <target>' where <target> is one of"
  21
+	@echo "  html       to make standalone HTML files"
  22
+	@echo "  dirhtml    to make HTML files named index.html in directories"
  23
+	@echo "  singlehtml to make a single large HTML file"
  24
+	@echo "  pickle     to make pickle files"
  25
+	@echo "  json       to make JSON files"
  26
+	@echo "  htmlhelp   to make HTML files and a HTML help project"
  27
+	@echo "  qthelp     to make HTML files and a qthelp project"
  28
+	@echo "  devhelp    to make HTML files and a Devhelp project"
  29
+	@echo "  epub       to make an epub"
  30
+	@echo "  latex      to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
  31
+	@echo "  latexpdf   to make LaTeX files and run them through pdflatex"
  32
+	@echo "  text       to make text files"
  33
+	@echo "  man        to make manual pages"
  34
+	@echo "  texinfo    to make Texinfo files"
  35
+	@echo "  info       to make Texinfo files and run them through makeinfo"
  36
+	@echo "  gettext    to make PO message catalogs"
  37
+	@echo "  changes    to make an overview of all changed/added/deprecated items"
  38
+	@echo "  linkcheck  to check all external links for integrity"
  39
+	@echo "  doctest    to run all doctests embedded in the documentation (if enabled)"
  40
+
  41
+clean:
  42
+	-rm -rf $(BUILDDIR)/*
  43
+
  44
+html:
  45
+	$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
  46
+	@echo
  47
+	@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
  48
+
  49
+dirhtml:
  50
+	$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
  51
+	@echo
  52
+	@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
  53
+
  54
+singlehtml:
  55
+	$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
  56
+	@echo
  57
+	@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
  58
+
  59
+pickle:
  60
+	$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
  61
+	@echo
  62
+	@echo "Build finished; now you can process the pickle files."
  63
+
  64
+json:
  65
+	$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
  66
+	@echo
  67
+	@echo "Build finished; now you can process the JSON files."
  68
+
  69
+htmlhelp:
  70
+	$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
  71
+	@echo
  72
+	@echo "Build finished; now you can run HTML Help Workshop with the" \
  73
+	      ".hhp project file in $(BUILDDIR)/htmlhelp."
  74
+
  75
+qthelp:
  76
+	$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
  77
+	@echo
  78
+	@echo "Build finished; now you can run "qcollectiongenerator" with the" \
  79
+	      ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
  80
+	@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/django-app-metrics.qhcp"
  81
+	@echo "To view the help file:"
  82
+	@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/django-app-metrics.qhc"
  83
+
  84
+devhelp:
  85
+	$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
  86
+	@echo
  87
+	@echo "Build finished."
  88
+	@echo "To view the help file:"
  89
+	@echo "# mkdir -p $$HOME/.local/share/devhelp/django-app-metrics"
  90
+	@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/django-app-metrics"
  91
+	@echo "# devhelp"
  92
+
  93
+epub:
  94
+	$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
  95
+	@echo
  96
+	@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
  97
+
  98
+latex:
  99
+	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
  100
+	@echo
  101
+	@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
  102
+	@echo "Run \`make' in that directory to run these through (pdf)latex" \
  103
+	      "(use \`make latexpdf' here to do that automatically)."
  104
+
  105
+latexpdf:
  106
+	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
  107
+	@echo "Running LaTeX files through pdflatex..."
  108
+	$(MAKE) -C $(BUILDDIR)/latex all-pdf
  109
+	@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
  110
+
  111
+text:
  112
+	$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
  113
+	@echo
  114
+	@echo "Build finished. The text files are in $(BUILDDIR)/text."
  115
+
  116
+man:
  117
+	$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
  118
+	@echo
  119
+	@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
  120
+
  121
+texinfo:
  122
+	$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
  123
+	@echo
  124
+	@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
  125
+	@echo "Run \`make' in that directory to run these through makeinfo" \
  126
+	      "(use \`make info' here to do that automatically)."
  127
+
  128
+info:
  129
+	$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
  130
+	@echo "Running Texinfo files through makeinfo..."
  131
+	make -C $(BUILDDIR)/texinfo info
  132
+	@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
  133
+
  134
+gettext:
  135
+	$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
  136
+	@echo
  137
+	@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
  138
+
  139
+changes:
  140
+	$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
  141
+	@echo
  142
+	@echo "The overview file is in $(BUILDDIR)/changes."
  143
+
  144
+linkcheck:
  145
+	$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
  146
+	@echo
  147
+	@echo "Link check complete; look for any errors in the above output " \
  148
+	      "or in $(BUILDDIR)/linkcheck/output.txt."
  149
+
  150
+doctest:
  151
+	$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
  152
+	@echo "Testing of doctests in the sources finished, look at the " \
  153
+	      "results in $(BUILDDIR)/doctest/output.txt."
20  docs/backends.rst
Source Rendered
... ...
@@ -0,0 +1,20 @@
  1
+========
  2
+Backends
  3
+========
  4
+
  5
+.. attribute:: app_metrics.backends.db
  6
+
  7
+    This backend stores all metrics and aggregations in your database. 
  8
+    
  9
+    .. admonition:: NOTE
  10
+
  11
+        Every call to metric() generates a database write, which may 
  12
+        decrease your overall performance is you go nuts with them or have 
  13
+        a heavily traffic site.
  14
+
  15
+.. _mixpanel_backend:
  16
+
  17
+.. attribute:: app_metrics.backends.mixpanel
  18
+
  19
+    This backend allows you to pipe all of your calls to metric() to Mixpanel.com 
  20
+    See http://mixpanel.com/api/docs/ for more information on their
3  docs/changelog.rst
Source Rendered
... ...
@@ -0,0 +1,3 @@
  1
+=========
  2
+Changelog
  3
+=========
246  docs/conf.py
... ...
@@ -0,0 +1,246 @@
  1
+# -*- coding: utf-8 -*-
  2
+#
  3
+# django-app-metrics documentation build configuration file, created by
  4
+# sphinx-quickstart on Mon Nov 28 13:08:26 2011.
  5
+#
  6
+# This file is execfile()d with the current directory set to its containing dir.
  7
+#
  8
+# Note that not all possible configuration values are present in this
  9
+# autogenerated file.
  10
+#
  11
+# All configuration values have a default; values that are commented out
  12
+# serve to show the default.
  13
+
  14
+import sys, os
  15
+
  16
+# If extensions (or modules to document with autodoc) are in another directory,
  17
+# add these directories to sys.path here. If the directory is relative to the
  18
+# documentation root, use os.path.abspath to make it absolute, like shown here.
  19
+#sys.path.insert(0, os.path.abspath('.'))
  20
+
  21
+# -- General configuration -----------------------------------------------------
  22
+
  23
+# If your documentation needs a minimal Sphinx version, state it here.
  24
+#needs_sphinx = '1.0'
  25
+
  26
+# Add any Sphinx extension module names here, as strings. They can be extensions
  27
+# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
  28
+# extensions = []
  29
+
  30
+# Add any paths that contain templates here, relative to this directory.
  31
+templates_path = ['_templates']
  32
+
  33
+# The suffix of source filenames.
  34
+source_suffix = '.rst'
  35
+
  36
+# The encoding of source files.
  37
+#source_encoding = 'utf-8-sig'
  38
+
  39
+# The master toctree document.
  40
+master_doc = 'index'
  41
+
  42
+# General information about the project.
  43
+project = u'django-app-metrics'
  44
+copyright = u'2011, Frank Wiles'
  45
+
  46
+# The version info for the project you're documenting, acts as replacement for
  47
+# |version| and |release|, also used in various other places throughout the
  48
+# built documents.
  49
+#
  50
+# The short X.Y version.
  51
+version = '0.3.0'
  52
+# The full version, including alpha/beta/rc tags.
  53
+release = '0.3.0'
  54
+
  55
+# The language for content autogenerated by Sphinx. Refer to documentation
  56
+# for a list of supported languages.
  57
+#language = None
  58
+
  59
+# There are two options for replacing |today|: either, you set today to some
  60
+# non-false value, then it is used:
  61
+#today = ''
  62
+# Else, today_fmt is used as the format for a strftime call.
  63
+#today_fmt = '%B %d, %Y'
  64
+
  65
+# List of patterns, relative to source directory, that match files and
  66
+# directories to ignore when looking for source files.
  67
+exclude_patterns = ['_build']
  68
+
  69
+# The reST default role (used for this markup: `text`) to use for all documents.
  70
+#default_role = None
  71
+
  72
+# If true, '()' will be appended to :func: etc. cross-reference text.
  73
+#add_function_parentheses = True
  74
+
  75
+# If true, the current module name will be prepended to all description
  76
+# unit titles (such as .. function::).
  77
+#add_module_names = True
  78
+
  79
+# If true, sectionauthor and moduleauthor directives will be shown in the
  80
+# output. They are ignored by default.
  81
+#show_authors = False
  82
+
  83
+# The name of the Pygments (syntax highlighting) style to use.
  84
+pygments_style = 'sphinx'
  85
+
  86
+# A list of ignored prefixes for module index sorting.
  87
+#modindex_common_prefix = []
  88
+
  89
+
  90
+# -- Options for HTML output ---------------------------------------------------
  91
+
  92
+# The theme to use for HTML and HTML Help pages.  See the documentation for
  93
+# a list of builtin themes.
  94
+on_rtd = os.environ.get('READTHEDOCS', None) == 'True'
  95
+if on_rtd:
  96
+    html_theme = 'default'
  97
+else:
  98
+    html_theme = 'sphinxdoc'
  99
+
  100
+# Theme options are theme-specific and customize the look and feel of a theme
  101
+# further.  For a list of options available for each theme, see the
  102
+# documentation.
  103
+#html_theme_options = {}
  104
+
  105
+# Add any paths that contain custom themes here, relative to this directory.
  106
+#html_theme_path = []
  107
+
  108
+# The name for this set of Sphinx documents.  If None, it defaults to
  109
+# "<project> v<release> documentation".
  110
+#html_title = None
  111
+
  112
+# A shorter title for the navigation bar.  Default is the same as html_title.
  113
+#html_short_title = None
  114
+
  115
+# The name of an image file (relative to this directory) to place at the top
  116
+# of the sidebar.
  117
+#html_logo = None
  118
+
  119
+# The name of an image file (within the static path) to use as favicon of the
  120
+# docs.  This file should be a Windows icon file (.ico) being 16x16 or 32x32
  121
+# pixels large.
  122
+#html_favicon = None
  123
+
  124
+# Add any paths that contain custom static files (such as style sheets) here,
  125
+# relative to this directory. They are copied after the builtin static files,
  126
+# so a file named "default.css" will overwrite the builtin "default.css".
  127
+html_static_path = ['_static']
  128
+
  129
+# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
  130
+# using the given strftime format.
  131
+#html_last_updated_fmt = '%b %d, %Y'
  132
+
  133
+# If true, SmartyPants will be used to convert quotes and dashes to
  134
+# typographically correct entities.
  135
+#html_use_smartypants = True
  136
+
  137
+# Custom sidebar templates, maps document names to template names.
  138
+#html_sidebars = {}
  139
+
  140
+# Additional templates that should be rendered to pages, maps page names to
  141
+# template names.
  142
+#html_additional_pages = {}
  143
+
  144
+# If false, no module index is generated.
  145
+#html_domain_indices = True
  146
+
  147
+# If false, no index is generated.
  148
+#html_use_index = True
  149
+
  150
+# If true, the index is split into individual pages for each letter.
  151
+#html_split_index = False
  152
+
  153
+# If true, links to the reST sources are added to the pages.
  154
+#html_show_sourcelink = True
  155
+
  156
+# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
  157
+#html_show_sphinx = True
  158
+
  159
+# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
  160
+#html_show_copyright = True
  161
+
  162
+# If true, an OpenSearch description file will be output, and all pages will
  163
+# contain a <link> tag referring to it.  The value of this option must be the
  164
+# base URL from which the finished HTML is served.
  165
+#html_use_opensearch = ''
  166
+
  167
+# This is the file name suffix for HTML files (e.g. ".xhtml").
  168
+#html_file_suffix = None
  169
+
  170
+# Output file base name for HTML help builder.
  171
+htmlhelp_basename = 'django-app-metricsdoc'
  172
+
  173
+
  174
+# -- Options for LaTeX output --------------------------------------------------
  175
+
  176
+latex_elements = {
  177
+# The paper size ('letterpaper' or 'a4paper').
  178
+#'papersize': 'letterpaper',
  179
+
  180
+# The font size ('10pt', '11pt' or '12pt').
  181
+#'pointsize': '10pt',
  182
+
  183
+# Additional stuff for the LaTeX preamble.
  184
+#'preamble': '',
  185
+}
  186
+
  187
+# Grouping the document tree into LaTeX files. List of tuples
  188
+# (source start file, target name, title, author, documentclass [howto/manual]).
  189
+latex_documents = [
  190
+  ('index', 'django-app-metrics.tex', u'django-app-metrics Documentation',
  191
+   u'Frank Wiles', 'manual'),
  192
+]
  193
+
  194
+# The name of an image file (relative to this directory) to place at the top of
  195
+# the title page.
  196
+#latex_logo = None
  197
+
  198
+# For "manual" documents, if this is true, then toplevel headings are parts,
  199
+# not chapters.
  200
+#latex_use_parts = False
  201
+
  202
+# If true, show page references after internal links.
  203
+#latex_show_pagerefs = False
  204
+
  205
+# If true, show URL addresses after external links.
  206
+#latex_show_urls = False
  207
+
  208
+# Documents to append as an appendix to all manuals.
  209
+#latex_appendices = []
  210
+
  211
+# If false, no module index is generated.
  212
+#latex_domain_indices = True
  213
+
  214
+
  215
+# -- Options for manual page output --------------------------------------------
  216
+
  217
+# One entry per manual page. List of tuples
  218
+# (source start file, name, description, authors, manual section).
  219
+man_pages = [
  220
+    ('index', 'django-app-metrics', u'django-app-metrics Documentation',
  221
+     [u'Frank Wiles'], 1)
  222
+]
  223
+
  224
+# If true, show URL addresses after external links.
  225
+#man_show_urls = False
  226
+
  227
+
  228
+# -- Options for Texinfo output ------------------------------------------------
  229
+
  230
+# Grouping the document tree into Texinfo files. List of tuples
  231
+# (source start file, target name, title, author,
  232
+#  dir menu entry, description, category)
  233
+texinfo_documents = [
  234
+  ('index', 'django-app-metrics', u'django-app-metrics Documentation',
  235
+   u'Frank Wiles', 'django-app-metrics', 'One line description of project.',
  236
+   'Miscellaneous'),
  237
+]
  238
+
  239
+# Documents to append as an appendix to all manuals.
  240
+#texinfo_appendices = []
  241
+
  242
+# If false, no module index is generated.
  243
+#texinfo_domain_indices = True
  244
+
  245
+# How to display URL addresses: 'footnote', 'no', or 'inline'.
  246
+#texinfo_show_urls = 'footnote'
36  docs/index.rst
Source Rendered
... ...
@@ -0,0 +1,36 @@
  1
+.. django-app-metrics documentation master file, created by
  2
+   sphinx-quickstart on Mon Nov 28 13:08:26 2011.
  3
+   You can adapt this file completely to your liking, but it should at least
  4
+   contain the root `toctree` directive.
  5
+
  6
+==================
  7
+Django App Metrics
  8
+==================
  9
+Django App Metrics allows you to capture and report on various events in your 
  10
+applications.
  11
+
  12
+Contents:
  13
+
  14
+.. toctree::
  15
+   :maxdepth: 2
  16
+
  17
+   install
  18
+   usage
  19
+   settings
  20
+   backends
  21
+   changelog
  22
+
  23
+
  24
+API:
  25
+
  26
+.. toctree::
  27
+    :maxdepth: 2
  28
+
  29
+    ref/utils
  30
+
  31
+Indices and tables
  32
+==================
  33
+
  34
+* :ref:`genindex`
  35
+* :ref:`modindex`
  36
+* :ref:`search`
26  docs/install.rst
Source Rendered
... ...
@@ -0,0 +1,26 @@
  1
+============
  2
+Installation
  3
+============
  4
+
  5
+Installing
  6
+==========
  7
+
  8
+* Install with pip::
  9
+
  10
+    pip install git+https://github.com/frankwiles/django-app-metrics.git
  11
+
  12
+* Add ``app_metrics`` to your ``INSTALLED_APPS`` setting::
  13
+
  14
+    INSTALLED_APPS =
  15
+        # ...
  16
+        'app_metrics',
  17
+    )
  18
+
  19
+* Edit :ref:`settings` in your project's settings module to your liking
  20
+
  21
+Requirements
  22
+============
  23
+celery and django-celery must be installed, however if you do not wish to
  24
+actually use celery you can simply set CELERY_ALWAYS_EAGER = True in your
  25
+settings and it will behave as if celery was not configured.
  26
+
190  docs/make.bat
... ...
@@ -0,0 +1,190 @@
  1
+@ECHO OFF
  2
+
  3
+REM Command file for Sphinx documentation
  4
+
  5
+if "%SPHINXBUILD%" == "" (
  6
+	set SPHINXBUILD=sphinx-build
  7
+)
  8
+set BUILDDIR=_build
  9
+set ALLSPHINXOPTS=-d %BUILDDIR%/doctrees %SPHINXOPTS% .
  10
+set I18NSPHINXOPTS=%SPHINXOPTS% .
  11
+if NOT "%PAPER%" == "" (
  12
+	set ALLSPHINXOPTS=-D latex_paper_size=%PAPER% %ALLSPHINXOPTS%
  13
+	set I18NSPHINXOPTS=-D latex_paper_size=%PAPER% %I18NSPHINXOPTS%
  14
+)
  15
+
  16
+if "%1" == "" goto help
  17
+
  18
+if "%1" == "help" (
  19
+	:help
  20
+	echo.Please use `make ^<target^>` where ^<target^> is one of
  21
+	echo.  html       to make standalone HTML files
  22
+	echo.  dirhtml    to make HTML files named index.html in directories
  23
+	echo.  singlehtml to make a single large HTML file
  24
+	echo.  pickle     to make pickle files
  25
+	echo.  json       to make JSON files
  26
+	echo.  htmlhelp   to make HTML files and a HTML help project
  27
+	echo.  qthelp     to make HTML files and a qthelp project
  28
+	echo.  devhelp    to make HTML files and a Devhelp project
  29
+	echo.  epub       to make an epub
  30
+	echo.  latex      to make LaTeX files, you can set PAPER=a4 or PAPER=letter
  31
+	echo.  text       to make text files
  32
+	echo.  man        to make manual pages
  33
+	echo.  texinfo    to make Texinfo files
  34
+	echo.  gettext    to make PO message catalogs
  35
+	echo.  changes    to make an overview over all changed/added/deprecated items
  36
+	echo.  linkcheck  to check all external links for integrity
  37
+	echo.  doctest    to run all doctests embedded in the documentation if enabled
  38
+	goto end
  39
+)
  40
+
  41
+if "%1" == "clean" (
  42
+	for /d %%i in (%BUILDDIR%\*) do rmdir /q /s %%i
  43
+	del /q /s %BUILDDIR%\*
  44
+	goto end
  45
+)
  46
+
  47
+if "%1" == "html" (
  48
+	%SPHINXBUILD% -b html %ALLSPHINXOPTS% %BUILDDIR%/html
  49
+	if errorlevel 1 exit /b 1
  50
+	echo.
  51
+	echo.Build finished. The HTML pages are in %BUILDDIR%/html.
  52
+	goto end
  53
+)
  54
+
  55
+if "%1" == "dirhtml" (
  56
+	%SPHINXBUILD% -b dirhtml %ALLSPHINXOPTS% %BUILDDIR%/dirhtml
  57
+	if errorlevel 1 exit /b 1
  58
+	echo.
  59
+	echo.Build finished. The HTML pages are in %BUILDDIR%/dirhtml.
  60
+	goto end
  61
+)
  62
+
  63
+if "%1" == "singlehtml" (
  64
+	%SPHINXBUILD% -b singlehtml %ALLSPHINXOPTS% %BUILDDIR%/singlehtml
  65
+	if errorlevel 1 exit /b 1
  66
+	echo.
  67
+	echo.Build finished. The HTML pages are in %BUILDDIR%/singlehtml.
  68
+	goto end
  69
+)
  70
+
  71
+if "%1" == "pickle" (
  72
+	%SPHINXBUILD% -b pickle %ALLSPHINXOPTS% %BUILDDIR%/pickle
  73
+	if errorlevel 1 exit /b 1
  74
+	echo.
  75
+	echo.Build finished; now you can process the pickle files.
  76
+	goto end
  77
+)
  78
+
  79
+if "%1" == "json" (
  80
+	%SPHINXBUILD% -b json %ALLSPHINXOPTS% %BUILDDIR%/json
  81
+	if errorlevel 1 exit /b 1
  82
+	echo.
  83
+	echo.Build finished; now you can process the JSON files.
  84
+	goto end
  85
+)
  86
+
  87
+if "%1" == "htmlhelp" (
  88
+	%SPHINXBUILD% -b htmlhelp %ALLSPHINXOPTS% %BUILDDIR%/htmlhelp
  89
+	if errorlevel 1 exit /b 1
  90
+	echo.
  91
+	echo.Build finished; now you can run HTML Help Workshop with the ^
  92
+.hhp project file in %BUILDDIR%/htmlhelp.
  93
+	goto end
  94
+)
  95
+
  96
+if "%1" == "qthelp" (
  97
+	%SPHINXBUILD% -b qthelp %ALLSPHINXOPTS% %BUILDDIR%/qthelp
  98
+	if errorlevel 1 exit /b 1
  99
+	echo.
  100
+	echo.Build finished; now you can run "qcollectiongenerator" with the ^
  101
+.qhcp project file in %BUILDDIR%/qthelp, like this:
  102
+	echo.^> qcollectiongenerator %BUILDDIR%\qthelp\django-app-metrics.qhcp
  103
+	echo.To view the help file:
  104
+	echo.^> assistant -collectionFile %BUILDDIR%\qthelp\django-app-metrics.ghc
  105
+	goto end
  106
+)
  107
+
  108
+if "%1" == "devhelp" (
  109
+	%SPHINXBUILD% -b devhelp %ALLSPHINXOPTS% %BUILDDIR%/devhelp
  110
+	if errorlevel 1 exit /b 1
  111
+	echo.
  112
+	echo.Build finished.
  113
+	goto end
  114
+)
  115
+
  116
+if "%1" == "epub" (
  117
+	%SPHINXBUILD% -b epub %ALLSPHINXOPTS% %BUILDDIR%/epub
  118
+	if errorlevel 1 exit /b 1
  119
+	echo.
  120
+	echo.Build finished. The epub file is in %BUILDDIR%/epub.
  121
+	goto end
  122
+)
  123
+
  124
+if "%1" == "latex" (
  125
+	%SPHINXBUILD% -b latex %ALLSPHINXOPTS% %BUILDDIR%/latex
  126
+	if errorlevel 1 exit /b 1
  127
+	echo.
  128
+	echo.Build finished; the LaTeX files are in %BUILDDIR%/latex.
  129
+	goto end
  130
+)
  131
+
  132
+if "%1" == "text" (
  133
+	%SPHINXBUILD% -b text %ALLSPHINXOPTS% %BUILDDIR%/text
  134
+	if errorlevel 1 exit /b 1
  135
+	echo.
  136
+	echo.Build finished. The text files are in %BUILDDIR%/text.
  137
+	goto end
  138
+)
  139
+
  140
+if "%1" == "man" (
  141
+	%SPHINXBUILD% -b man %ALLSPHINXOPTS% %BUILDDIR%/man
  142
+	if errorlevel 1 exit /b 1
  143
+	echo.
  144
+	echo.Build finished. The manual pages are in %BUILDDIR%/man.
  145
+	goto end
  146
+)
  147
+
  148
+if "%1" == "texinfo" (
  149
+	%SPHINXBUILD% -b texinfo %ALLSPHINXOPTS% %BUILDDIR%/texinfo
  150
+	if errorlevel 1 exit /b 1
  151
+	echo.
  152
+	echo.Build finished. The Texinfo files are in %BUILDDIR%/texinfo.
  153
+	goto end
  154
+)
  155
+
  156
+if "%1" == "gettext" (
  157
+	%SPHINXBUILD% -b gettext %I18NSPHINXOPTS% %BUILDDIR%/locale
  158
+	if errorlevel 1 exit /b 1
  159
+	echo.
  160
+	echo.Build finished. The message catalogs are in %BUILDDIR%/locale.
  161
+	goto end
  162
+)
  163
+
  164
+if "%1" == "changes" (
  165
+	%SPHINXBUILD% -b changes %ALLSPHINXOPTS% %BUILDDIR%/changes
  166
+	if errorlevel 1 exit /b 1
  167
+	echo.
  168
+	echo.The overview file is in %BUILDDIR%/changes.
  169
+	goto end
  170
+)
  171
+
  172
+if "%1" == "linkcheck" (
  173
+	%SPHINXBUILD% -b linkcheck %ALLSPHINXOPTS% %BUILDDIR%/linkcheck
  174
+	if errorlevel 1 exit /b 1
  175
+	echo.
  176
+	echo.Link check complete; look for any errors in the above output ^
  177
+or in %BUILDDIR%/linkcheck/output.txt.
  178
+	goto end
  179
+)
  180
+
  181
+if "%1" == "doctest" (
  182
+	%SPHINXBUILD% -b doctest %ALLSPHINXOPTS% %BUILDDIR%/doctest
  183
+	if errorlevel 1 exit /b 1
  184
+	echo.
  185
+	echo.Testing of doctests in the sources finished, look at the ^
  186
+results in %BUILDDIR%/doctest/output.txt.
  187
+	goto end
  188
+)
  189
+
  190
+:end
63  docs/ref/utils.rst
Source Rendered
... ...
@@ -0,0 +1,63 @@
  1
+=================
  2
+Utility Functions
  3
+=================
  4
+
  5
+``create_metric``
  6
+=================
  7
+
  8
+.. function:: create_metric(name, slug)
  9
+    
  10
+    Creates a new type of metric track
  11
+
  12
+Arguments
  13
+---------
  14
+
  15
+``name``
  16
+    The verbose name of the metric to track
  17
+
  18
+``slug``
  19
+    The identifying slug used for the metric. This is what is passed into :func:`metric` to increment the metric
  20
+
  21
+
  22
+``metric``
  23
+==========
  24
+.. function::  metric(slug, num=1, \*\*kwargs)
  25
+
  26
+    Increment a metric by ``num``
  27
+
  28
+    Shortcut to the current backend (as set by :attr:`APP_METRICS_BACKEND` metric method.)  
  29
+    
  30
+.. admonition:: Note
  31
+
  32
+    If there is no metric mapped to ``slug``, a metric named ``Autocreated Metric`` with the passed in``slug`` will be auto-generated.
  33
+
  34
+Arguments
  35
+---------
  36
+
  37
+``slug`` `(required)`
  38
+    Name of the metric to increment.
  39
+
  40
+``num``
  41
+    Number to increment the metric by. Defaults to 1.
  42
+
  43
+``create_metric_set``
  44
+=====================
  45
+
  46
+.. function:: create_metric_set(create_metric_set(name=None, metrics=None, email_recipients=None, no_email=False, send_daily=True, send_weekly=False, send_monthly=False)
  47
+
  48
+   Creates a new metric set 
  49
+
  50
+Arguments
  51
+---------
  52
+
  53
+``name``
  54
+    Verbose name given to the new metric_set
  55
+
  56
+``metrics``
  57
+    Iterable of slugs that the metric set should collect
  58
+    
  59
+``email_recipients``
  60
+    Iterable of Users_ who should be emailed with updates on the metric set 
  61
+
  62
+.. _Users: https://docs.djangoproject.com/en/1.3/topics/auth/#django.contrib.auth.models.User
  63
+    
25  docs/settings.rst
Source Rendered
... ...
@@ -0,0 +1,25 @@
  1
+.. _settings:
  2
+
  3
+========
  4
+Settings
  5
+========
  6
+
  7
+
  8
+Base Settings
  9
+=============
  10
+.. attribute:: APP_METRICS_BACKEND
  11
+
  12
+    Defaults to :attr:`app_metrics.backends.db` if not defined. 
  13
+
  14
+Mixpanel Backend Settings
  15
+=========================
  16
+These settings are only necessary if you're using the :ref:`Mixpanel backend<mixpanel_backend>`
  17
+
  18
+.. attribute:: APP_METRICS_MIXPANEL_TOKEN
  19
+    
  20
+    Your Mixpanel.com API token 
  21
+
  22
+.. attribute:: APP_METERICS_MIXPANEL_URL
  23
+
  24
+    Allow overriding of the API URL end point
  25
+
55  docs/usage.rst
Source Rendered
... ...
@@ -0,0 +1,55 @@
  1
+=====
  2
+Usage
  3
+=====
  4
+
  5
+Example Code
  6
+============
  7
+The utility functions ``create_metric`` and ``metric`` are the main API hooks to app_metrics.
  8
+
  9
+Example::
  10
+
  11
+    from django.contrib.auth.models import User
  12
+
  13
+    from app_metrics.utils import create_metric, metric
  14
+
  15
+    user1 = User.objects.get(pk='bob')
  16
+    user2 = User.objects.get(pk='jane')
  17
+
  18
+    # Create a new metric to track
  19
+    my_metric = create_metric(name='New User Metric', slug='new_user_signup')
  20
+
  21
+    # Create a MetricSet which ties a metric to an email schedule and sets
  22
+    # who should receive it
  23
+
  24
+    my_metric_set = create_metric_set(name='My Set',
  25
+                                    metrics=[my_metric],
  26
+                                    email_recipients=[user1, user2])
  27
+
  28
+    # Increment the metric by one
  29
+    metric('new_user_signup')
  30
+
  31
+    # Increment the metric by some other number
  32
+    metric('new_user_signup', 4)
  33
+
  34
+Management Commands
  35
+===================
  36
+
  37
+metrics_aggregate
  38
+-----------------
  39
+
  40
+Aggregate metric items into daily, weekly, monthly, and yearly totals
  41
+It's fairly smart about it, so you're safe to run this as often as you
  42
+like::
  43
+
  44
+    manage.py metrics_aggregate
  45
+
  46
+metrics_sent_mail
  47
+-----------------
  48
+
  49
+Send email reports to users. The email will be sent out using django_mailer_'s ``send_htmlmailer`` if it is installed, otherwise defaults to django.core.mail_. Can be called like::
  50
+
  51
+    manage.py metrics_send_mail
  52
+
  53
+
  54
+.. _django_mailer: https://github.com/jtauber/django-mailer/
  55
+.. _django.core.mail: https://docs.djangoproject.com/en/1.3/topics/email/

0 notes on commit 4cb5c89

Please sign in to comment.
Something went wrong with that request. Please try again.