{ "info": { "author": "Pivotal Energy Solutions", "author_email": "sklass@pivotalenergysolutions.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7" ], "description": "# Django App Metrics\n\ndjango-app-metrics allows you to capture and report on various events in your\napplications. You simply define various named metrics and record when they\nhappen. These might be certain events that may be immediatey useful, for\nexample 'New User Signups', 'Downloads', etc.\n\nOr they might not prove useful until some point in the future. But if you\nbegin recording them now you'll have great data later on if you do need it.\n\nFor example 'Total Items Sold' isn't an exciting number when you're just\nlaunching when you only care about revenue, but being able to do a contest\nfor the 1 millionth sold item in the future you'll be glad you were tracking\nit.\n\nYou then group these individual metrics into a MetricSet, where you define\nhow often you want an email report being sent, and to which User(s) it should\nbe sent.\n\n### Notes\n\n## Documentation\n\nDocumentation can be found at [ReadTheDocs](http://django-app-metrics.readthedocs.org)\n\n## Requirements\n\n[Celery](http://celeryproject.org/) and [django-celery](http://ask.github.com/django-celery/)\nmust be installed, however if you do not wish to actually use Celery you can\nsimply set ``CELERY_ALWAYS_EAGER = True`` in your\nsettings and it will behave as if Celery was not configured.\n\n## Usage\n\n\n## Backends\n\n``app_metrics.backends.db`` (Default) - This backend stores all metrics and\naggregations in your database. NOTE: Every call to ``metric()`` generates a\ndatabase write, which may decrease your overall performance is you go nuts\nwith them or have a heavily traffic site.\n\n``app_metrics.backends.mixpanel`` - This backend allows you to pipe all of\nyour calls to ``metric()`` to Mixpanel. See the [Mixpanel documentation](http://mixpanel.com/docs/api-documentation)\nfor more information on their API.\n\n\n``app_metrics.backends.statsd`` - This backend allows you to pipe all of your\ncalls to ``metric()`` to a statsd server. See [statsd](https://github.com/etsy/statsd) for more information\non their API.\n\n\n``app_metrics.backends.redis`` - This backend allows you to use the metric() and\ngauge() aspects, but not timer aspects of app_metrics.\n\n``app_metrics.backends.librato_backend`` - This backend lets you send metrics to\nLibrato. See the [Librato documentation](http://dev.librato.com/v1/metrics#metrics) for more information on their API.\nThis requires the [Librato library]( http://pypi.python.org/pypi/librato/0.2). It uses use a librato Gauge by default,\nalthough this can be overridden by supplying ``metric_type=\"counter\"`` as a\nkeyword arg to ``metric()``.\n\n``app_metrics.backends.composite`` - This backend lets you compose multiple\nbackends to which metric-calls are handed. The backends to which the call is\nsent can be configured with the ``APP_METRICS_COMPOSITE_BACKENDS`` setting. This\ncan be overridden in each call by supplying a ``backends`` keyword argument::\n\n metric('signups', 42, backends=['app_metrics.backends.librato',\n 'app_metrics.backends.db'])\n\n\n## Settings\n\n``APP_METRICS_BACKEND`` - Defaults to 'app_metrics.backends.db' if not defined.\n\n``APP_METRICS_SEND_ZERO_ACTIVITY`` - Prevent e-mails being sent when there's been\nno activity today (i.e. during testing). Defaults to `True`.\n\n``APP_METRICS_DISABLED`` - If `True`, do not track metrics, useful for\ndebugging. Defaults to `False`.\n\n### Mixpanel Settings\n\nSet ``APP_METRICS_BACKEND`` == 'app_metrics.backends.mixpanel'.\n\n``APP_METRICS_MIXPANEL_TOKEN`` - Your Mixpanel.com API token\n\n``APP_METRICS_MIXPANEL_URL`` - Allow overriding of the API URL end point\n\n### Statsd Settings\n\nSet ``APP_METRICS_BACKEND`` == 'app_metrics.backends.statsd'.\n\n``APP_METRICS_STATSD_HOST`` - Hostname of statsd server, defaults to 'localhost'\n\n``APP_METRICS_STATSD_PORT`` - statsd port, defaults to '8125'\n\n``APP_METRICS_STATSD_SAMPLE_RATE`` - statsd sample rate, defaults to 1\n\n### Redis Settings\n\nSet ``APP_METRICS_BACKEND`` == 'app_metrics.backends.redis'.\n\n``APP_METRICS_REDIS_HOST`` - Hostname of redis server, defaults to 'localhost'\n\n``APP_METRICS_REDIS_PORT`` - redis port, defaults to '6379'\n\n``APP_METRICS_REDIS_DB`` - redis database number to use, defaults to 0\n\n### Librato Settings\n\nSet ``APP_METRICS_BACKEND`` == 'app_metrics.backends.librato'.\n\n``APP_METRICS_LIBRATO_USER`` - Librato username\n\n``APP_METRICS_LIBRATO_TOKEN`` - Librato API token\n\n``APP_METRICS_LIBRATO_SOURCE`` - Librato data source (e.g. 'staging', 'dev'...)\n\n### Composite Backend Settings\n\nSet ``APP_METRICS_BACKEND`` == 'app_metrics.backends.composite'.\n\n``APP_METRICS_COMPOSITE_BACKENDS`` - List of backends that are used by default,\ne.g.::\n\n APP_METRICS_COMPOSITE_BACKENDS = ('librato', 'db', 'my_custom_backend',)\n\n## Running the tests\n\nTo run the tests you'll need some requirements installed, so run::\n\n pip install -r requirements/test.txt\n\nThen simply run::\n\n django-admin.py test --settings=app_metrics.tests.settings\n\n## TODO\n\n- Improve text and HTML templates to display trending data well\n\n\n### Build Process:\n1. Update the `__version_info__` inside of the application. Commit and push.\n2. Tag the release with the version. `git tag -m \"Release\"; git push --tags`\n3. Build the release `rm -rf dist build *egg-info; python setup.py sdist bdist_wheel`\n4. Upload the data `twine upload dist/*`\n\n", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/pivotal-energy-solutions/django-app-metrics/archive/1.1.2.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/pivotal-energy-solutions/django-app-metrics", "keywords": "django analytics development", "license": "", "maintainer": "", "maintainer_email": "", "name": "pivotal-app-metrics", "package_url": "https://pypi.org/project/pivotal-app-metrics/", "platform": "", "project_url": "https://pypi.org/project/pivotal-app-metrics/", "project_urls": { "Download": "https://github.com/pivotal-energy-solutions/django-app-metrics/archive/1.1.2.tar.gz", "Homepage": "https://github.com/pivotal-energy-solutions/django-app-metrics" }, "release_url": "https://pypi.org/project/pivotal-app-metrics/1.1.2/", "requires_dist": [ "celery", "django (<2,>=1.11)" ], "requires_python": "", "summary": "django-app-metrics is a reusable Django application for tracking and emailing application metrics.", "version": "1.1.2" }, "last_serial": 5683436, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "edb2f18ac1a3823d405e1924ec9a3aa4", "sha256": "ed9d5ba8d8a227882d87e4b7eef4ef8c233016cf643152d249f8521773632659" }, "downloads": -1, "filename": "pivotal_app_metrics-1.0.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "edb2f18ac1a3823d405e1924ec9a3aa4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 34675, "upload_time": "2018-04-25T21:35:12", "url": "https://files.pythonhosted.org/packages/2e/d2/4dc31a74bd618e119fb2d17d89879beb2377843768114c27b44e891c36e6/pivotal_app_metrics-1.0.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d9ee99d8b69d59cd297490bb7faa4e66", "sha256": "1ee6f021545902dc2d22851ebd8c5a12f64d214ac51e7dcaee33c762e93ad5b6" }, "downloads": -1, "filename": "pivotal_app_metrics-1.0.0.tar.gz", "has_sig": false, "md5_digest": "d9ee99d8b69d59cd297490bb7faa4e66", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27738, "upload_time": "2018-04-25T21:35:13", "url": "https://files.pythonhosted.org/packages/59/aa/e36d2cfe62daeaba20be5bddb18eb9d263398865785efa462e5d50a6a3df/pivotal_app_metrics-1.0.0.tar.gz" } ], "1.0.0rc1": [ { "comment_text": "", "digests": { "md5": "3d5dd305d666c778ee1603b1839272b8", "sha256": "0c0ff13a8e3b3fc4a0aa42d305aad1a8ddbb3f858e71cc3416eda08951d3b69f" }, "downloads": -1, "filename": "pivotal_app_metrics-1.0.0rc1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "3d5dd305d666c778ee1603b1839272b8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 34598, "upload_time": "2018-04-25T21:15:57", "url": "https://files.pythonhosted.org/packages/85/b1/1183709450c2cac0d248901cdaff442c4fc6ce2e9dcadaf798ef2b7203de/pivotal_app_metrics-1.0.0rc1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "952f9b5df28fbb44e3c3200ab385ce00", "sha256": "e5d40beb0dd447c99e59dc660a2ef10468b5da73df315c3e791be35151998671" }, "downloads": -1, "filename": "pivotal_app_metrics-1.0.0rc1.tar.gz", "has_sig": false, "md5_digest": "952f9b5df28fbb44e3c3200ab385ce00", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27634, "upload_time": "2018-04-25T21:15:58", "url": "https://files.pythonhosted.org/packages/67/fb/474a6000a3269373ee6a8d3300c3591656218b94685d368027199cf28402/pivotal_app_metrics-1.0.0rc1.tar.gz" } ], "1.0.0rc2": [ { "comment_text": "", "digests": { "md5": "ebad7d29cb5fdaf7361c1afc7c1493c4", "sha256": "805138d465b87008321c980758cb4d9abeb7856573c45234105017a5bf599e4b" }, "downloads": -1, "filename": "pivotal_app_metrics-1.0.0rc2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "ebad7d29cb5fdaf7361c1afc7c1493c4", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 34713, "upload_time": "2018-04-25T21:28:32", "url": "https://files.pythonhosted.org/packages/c9/7b/9903e6ff159ed4b842c0bbe5e2fbc6023f205bab8386eb6a0f7914e71b19/pivotal_app_metrics-1.0.0rc2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "84298855531348a4b108366d49504301", "sha256": "690eebe5ff97d89097963930776db41c24794968825e65f0e2dd1f9ba2f8c16c" }, "downloads": -1, "filename": "pivotal_app_metrics-1.0.0rc2.tar.gz", "has_sig": false, "md5_digest": "84298855531348a4b108366d49504301", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27757, "upload_time": "2018-04-25T21:28:33", "url": "https://files.pythonhosted.org/packages/12/b3/fef7314bb2c2e7b92e57e7e4a3374a43247ab09a0fec9e3c4904c046976c/pivotal_app_metrics-1.0.0rc2.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "a1e2d4d1c5b5303a1b70c30138704dab", "sha256": "e46be07298557f642552a17628ff55e803eacf3848896b910fce3a8e5c59aaa6" }, "downloads": -1, "filename": "pivotal_app_metrics-1.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "a1e2d4d1c5b5303a1b70c30138704dab", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 34690, "upload_time": "2018-10-29T18:48:37", "url": "https://files.pythonhosted.org/packages/d9/47/98588af86baeb40d0c97af647bc72074bff2e88fd1e56331706d57f1fe16/pivotal_app_metrics-1.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "677f7d03948fa337b5fdae66e7a49517", "sha256": "80d69daf423ea357d01c3f46305873dcd106d319c3fb35c75d400e32c6aee78d" }, "downloads": -1, "filename": "pivotal_app_metrics-1.1.0.tar.gz", "has_sig": false, "md5_digest": "677f7d03948fa337b5fdae66e7a49517", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 27786, "upload_time": "2018-10-29T18:48:39", "url": "https://files.pythonhosted.org/packages/26/7a/a94453b226152fe64f27f52bb17a483be1369c68099d73a4be15d9093420/pivotal_app_metrics-1.1.0.tar.gz" } ], "1.1.2": [ { "comment_text": "", "digests": { "md5": "875987f1a1e7a4b497aee5cb7efd6de3", "sha256": "b6bf36a64d5ded025e8ed125def989fa61688855794ed6e9ee3f1b34b7771ca2" }, "downloads": -1, "filename": "pivotal_app_metrics-1.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "875987f1a1e7a4b497aee5cb7efd6de3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 33989, "upload_time": "2019-08-15T18:13:35", "url": "https://files.pythonhosted.org/packages/6f/47/2f5fd9cd92091c44545a8ff360ac5d67b9f14806afc36eb38e6437c8d8d0/pivotal_app_metrics-1.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a0a026d1330a2c4990de38fd8896973d", "sha256": "820f5a29054d6b94bc792e9ecc6c96539b2170d441a603a6ea37fe1f665b8719" }, "downloads": -1, "filename": "pivotal_app_metrics-1.1.2.tar.gz", "has_sig": false, "md5_digest": "a0a026d1330a2c4990de38fd8896973d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26361, "upload_time": "2019-08-15T18:13:36", "url": "https://files.pythonhosted.org/packages/78/13/51f96c438eb3a7905b3412b5ed6cb555aa26bebcd58b32327712104ccf5e/pivotal_app_metrics-1.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "875987f1a1e7a4b497aee5cb7efd6de3", "sha256": "b6bf36a64d5ded025e8ed125def989fa61688855794ed6e9ee3f1b34b7771ca2" }, "downloads": -1, "filename": "pivotal_app_metrics-1.1.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "875987f1a1e7a4b497aee5cb7efd6de3", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 33989, "upload_time": "2019-08-15T18:13:35", "url": "https://files.pythonhosted.org/packages/6f/47/2f5fd9cd92091c44545a8ff360ac5d67b9f14806afc36eb38e6437c8d8d0/pivotal_app_metrics-1.1.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a0a026d1330a2c4990de38fd8896973d", "sha256": "820f5a29054d6b94bc792e9ecc6c96539b2170d441a603a6ea37fe1f665b8719" }, "downloads": -1, "filename": "pivotal_app_metrics-1.1.2.tar.gz", "has_sig": false, "md5_digest": "a0a026d1330a2c4990de38fd8896973d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26361, "upload_time": "2019-08-15T18:13:36", "url": "https://files.pythonhosted.org/packages/78/13/51f96c438eb3a7905b3412b5ed6cb555aa26bebcd58b32327712104ccf5e/pivotal_app_metrics-1.1.2.tar.gz" } ] }