django应用程序度量是一个可重用的django应用程序,用于跟踪和发送应用程序度量。
django-app-metrics的Python项目详细描述
django应用程序指标
django应用程序度量允许您捕获和报告 应用。您只需定义各种命名的度量并记录 发生了。这些可能是某些事件,可能会立即有用,因为 例如“新用户注册”、“下载”等。
或者直到将来某个时候它们才被证明有用。但是如果你 现在就开始记录,如果你需要的话,你会有很好的数据。
例如,当你只是 当你只关心收入,但能参加比赛时 对于未来第100万件售出的商品,你会很高兴你在追踪 它。
然后将这些单独的度量组合成一个度量集,在其中定义 您希望电子邮件报告多久发送一次,以及应发送给哪些用户 被派去。
文档
文档可以在ReadTheDocs找到。
用法
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。见Mixpanel documentation 关于他们的api的更多信息。
app_metrics.backends.statsd-此后端允许您对所有 调用statsd服务器的metric()。有关详细信息,请参见statsd 在他们的API上。
app_metrics.backends.redis-此后端允许您使用metric()和 gauge()方面,但不是应用程序度量的计时器方面。
app_metrics.backends.librato_backend-此后端允许您将度量发送到 天秤座。请参阅Librato documentation以获取有关其api的更多信息。 这需要Librato library。默认情况下,它使用天平来测量, 尽管可以通过将metric_type="counter"作为 关键字arg到metric()。
app_metrics.backends.composite-此后端允许您组合多个 传递度量调用的后端。呼叫的后端 可以使用APP_METRICS_COMPOSITE_BACKENDS设置配置sent。这个 可以通过提供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。
混合面板设置
设置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='应用程序MetriCS。后端。复合。
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模板以更好地显示趋势数据