django-app-metrics是一个用于跟踪和发送应用程序指标的Django应用程序。
项目描述
Django应用程序指标
django-app-metrics允许您捕获和报告应用程序中的各种事件。您只需定义各种命名的指标,并在它们发生时进行记录。这些可能是一些立即可用的有用事件,例如“新用户注册”、“下载”等。
或者它们可能直到未来某个时刻才证明是有用的。但如果你现在开始记录它们,将来如果需要它们,你将拥有宝贵的数据。
例如,“总销量”在您刚刚推出时并不是一个令人兴奋的数字,当你只关心收入时,但能够为未来第100万件售出的商品举办比赛,你会很高兴你已经跟踪了它。
然后,将这些单独的指标组合成一个指标集,在那里您定义您希望发送电子邮件报告的频率以及应发送给哪个用户。
文档
文档可以在ReadTheDocs找到。
要求
Celery和django-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的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 140a2267f19c43c60a09e821b702dd01a9873065a40150bad7319b96a0f86c85 |
|
MD5 | 673ce49810ec77c29f550bcc8d60deab |
|
BLAKE2b-256 | ba5105d6d999634ccd805463d68f782c27846f4c8fc8ceb288691b547a7878f9 |