跳转到主要内容

django-app-metrics是一个用于跟踪和发送应用程序指标的Django应用程序。

项目描述

Django应用程序指标

Build Status

django-app-metrics允许您捕获和报告应用程序中的各种事件。您只需定义各种命名的指标,并在它们发生时进行记录。这些可能是一些立即可用的有用事件,例如“新用户注册”、“下载”等。

或者它们可能直到未来某个时刻才证明是有用的。但如果你现在开始记录它们,将来如果需要它们,你将拥有宝贵的数据。

例如,“总销量”在您刚刚推出时并不是一个令人兴奋的数字,当你只关心收入时,但能够为未来第100万件售出的商品举办比赛,你会很高兴你已经跟踪了它。

然后,将这些单独的指标组合成一个指标集,在那里您定义您希望发送电子邮件报告的频率以及应发送给哪个用户。

文档

文档可以在ReadTheDocs找到。

要求

Celerydjango-celery必须安装,但如果您不想实际使用Celery,您只需在您的设置中将CELERY_ALWAYS_EAGER = True设置即可,它将表现得好像没有配置Celery。

Django 1.2及以上

用法

from app_metrics.utils import create_metric, metric, timing, Timer, gauge

# 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)

# 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

# Send email reports to users
manage.py metrics_send_mail

# 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')

后端

app_metrics.backends.db (默认) - 此后端将所有指标和聚合存储在您的数据库中。注意:每次调用metric()都会生成数据库写入操作,如果过度使用或您的网站流量很大,这可能会降低您的整体性能。

app_metrics.backends.mixpanel - 此后端允许您将所有对metric()的调用传递到Mixpanel。有关他们API的更多信息,请参阅Mixpanel文档

app_metrics.backends.statsd - 此后端允许您将所有对metric()的调用传递到statsd服务器。有关他们API的更多信息,请参阅statsd

app_metrics.backends.redis - 此后端允许您使用metric()gauge()功能,但不能使用app_metrics的计时器功能。

app_metrics.backends.librato_backend - 此后端允许您将指标发送到Librato。有关他们API的更多信息,请参阅Librato文档。此功能需要Librato库。默认使用librato Gauge,但可以通过向metric()提供metric_type="counter"作为关键字参数来覆盖。

app_metrics.backends.composite - 此后端允许您组合多个后端,并将指标调用传递给这些后端。可以通过APP_METRICS_COMPOSITE_BACKENDS设置来配置这些后端。可以通过在每个调用中提供backends关键字参数来覆盖此设置。

metric('signups', 42, backends=['app_metrics.backends.librato',
                                'app_metrics.backends.db'])

设置

APP_METRICS_BACKEND - 如果未定义,默认为‘app_metrics.backends.db’。

APP_METRICS_SEND_ZERO_ACTIVITY - 当今天没有活动时(例如在测试期间),防止发送电子邮件。默认为True。

APP_METRICS_DISABLED - 如果为True,则不跟踪指标,这对于调试很有用。默认为False。

Mixpanel设置

设置APP_METRICS_BACKEND == ‘app_metrics.backends.mixpanel’。

APP_METRICS_MIXPANEL_TOKEN - 您的Mixpanel.com API令牌

APP_METRICS_MIXPANEL_URL - 允许覆盖API URL端点

Statsd设置

设置APP_METRICS_BACKEND == ‘app_metrics.backends.statsd’。

APP_METRICS_STATSD_HOST - statsd服务器的主机名,默认为‘localhost’

APP_METRICS_STATSD_PORT - statsd端口,默认为‘8125’

APP_METRICS_STATSD_SAMPLE_RATE - statsd采样率,默认为1

Redis设置

设置APP_METRICS_BACKEND == ‘app_metrics.backends.redis’。

APP_METRICS_REDIS_HOST - redis服务器的主机名,默认为‘localhost’

APP_METRICS_REDIS_PORT - redis端口,默认为‘6379’

APP_METRICS_REDIS_DB - 要使用的redis数据库编号,默认为0

Librato设置

设置APP_METRICS_BACKEND == ‘app_metrics.backends.librato’。

APP_METRICS_LIBRATO_USER - Librato用户名

APP_METRICS_LIBRATO_TOKEN - Librato API令牌

APP_METRICS_LIBRATO_SOURCE - Librato数据源(例如‘staging’,‘dev’…)

组合后端设置

设置APP_METRICS_BACKEND == ‘app_metrics.backends.composite’。

APP_METRICS_COMPOSITE_BACKENDS - 默认使用的后端列表,例如

APP_METRICS_COMPOSITE_BACKENDS = ('librato', 'db', 'my_custom_backend',)

运行测试

要运行测试,您需要安装一些依赖项,因此请运行

pip install -r requirements/test.txt

然后只需运行

django-admin.py test --settings=app_metrics.tests.settings

待办事项

  • 优化文本和HTML模板,以更好地显示趋势数据

项目详情


下载文件

下载适用于您平台的文件。如果您不确定该选择哪个,请了解有关安装包的更多信息。

源分布

django-app-metrics-0.9.0.tar.gz (19.7 kB 查看哈希值)

上传时间

由以下支持