Usage

Example Code

The utility functions create_metric and metric are the main API hooks to app_metrics.

Example:

from django.contrib.auth.models import User

from app_metrics.utils import create_metric, metric

user1 = User.objects.get(pk='bob')
user2 = User.objects.get(pk='jane')

# Create a new metric to track
my_metric = create_metric(name='New User Metric', slug='new_user_signup')

# Create a MetricSet which ties a metric to an email schedule and sets
# who should receive it

my_metric_set = create_metric_set(name='My Set',
                                metrics=[my_metric],
                                email_recipients=[user1, user2])

# Increment the metric by one
metric('new_user_signup')

# Increment the metric by some other number
metric('new_user_signup', 4)

# Create a timer (only supported in statsd backend currently)
with timing('mytimer'):
  for x in some_long_list:
     call_time_consuming_function(x)

# Or if a context manager doesn't work for you you can use a Timer class
t = Timer()
t.start()
something_that_takes_forever()
t.stop()
t.store('mytimer')

# Gauges are current status type dials (think fuel gauge in a car)
# These simply store and retrieve a value
gauge('current_fuel', '30')
guage('load_load', '3.14')

Management Commands

metrics_aggregate

Aggregate metric items into daily, weekly, monthly, and yearly totals It’s fairly smart about it, so you’re safe to run this as often as you like:

manage.py metrics_aggregate

metrics_send_mail

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:

manage.py metrics_send_mail