DBAG-简单的时间序列度量和仪表板

dbag的Python项目详细描述


dbag-简单的时间序列度量和仪表板
============br/>



dbag是一个简单的django应用程序,可以帮助您记住、绘制和创建随时间变化的任意度量的仪表板


最好使用它来绘制以下图形:

*活动用户帐户数
*%今天登录的用户数
*新博客评论数

这些都是易于运行查询或快速使用python来确定问题答案*现在*但很难或很难计算或者过去的某个时期。你想每天计算出你的数字,然后记住它,这样你就能显示出漂亮的图表和趋势(你想让这些图表工作起来,变得漂亮)。您还希望通过使用现有的django数据库后端来保存所有数据来降低复杂性。


为什么选择dbag?
——


dbag填补了现有解决方案目前没有很好覆盖的空白。dbag比现有的工具要简单,因为它做的更少。如果您满足以下条件,它可能适合您:

*您希望收集少量到中等数量的数据,并且每天的分辨率足够好。
*您有许多不同的方法获取数据,但是您希望从一个位置收集数据。
*您希望内置度量类型的简单性来获得comm只需要django
度量,但您也希望能够灵活地定义任意python
函数来收集数据。
*您需要简单的仪表板,可以在内部使用,并在不做大量工作的情况下向
用户公开(这应该很漂亮)。
*如果不需要,您希望能够通过django的orm与度量交互必要的。
*您希望选择将度量绑定到数据库中的特定对象。如果
您有一个"customer"对象,则可能需要每个特定客户上的活动帐户数。


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

有几个很好的系统信息绘图应用程序,如
、`munin<;http://munin monitoring.org/>;` `<
和`cacti<;http://www.cacti.net/>;` ` `,如果您想了解30个不同节点的磁盘使用趋势,这些应用程序会更好。

captURE事件
~~~~~~~~~~~~~~~~~~

`mixpanel<;http://mixpanel.com/>;``uu,`statsd<;https://github.com/etsy/statsd>;``` uu,
`google analytics<;http://www.google.com/analytics/>;`` uu等都更擅长于捕获事件和高频数据。如果你需要的话就用它们。dbag
如果您希望定期从这些源中切掉或合并
数据并在仪表板上显示随时间变化的数据,它将适合于该公式。

使用
`graphite<;http://graphite.wikidot.com/>;`。您需要将它放在不同的
服务器上,并且需要解决它,但您将获得所需的可伸缩性和
灵活性。`如果您想向
用户显示总结日期的简单仪表板,dbag与
graphite结合使用效果很好。


获取"django项目"的指标。它有非常漂亮的面板,带有可选的迷你图和漂亮的主/默认布局. 视觉灵感主要来自这个项目,而"dbag"可以有效地重新创建django项目仪表板。
*这个子项目位于http://charlesleifer.com/docs/djutils/django utils/dashboard/panels.html唱赞歌。它允许您使用所需的任何python代码收集和
聚合非常细粒度的数据。但是它不允许您创建参数化的面板和度量(这意味着如果
您希望为数据库中的每个"customer"创建单独的面板,
则需要编写python代码,为每个客户注册一个面板。
*这些面板是存在的,但不是http://code.google.com/p/django dashboard/>;`
`文档化的<;https://github.com/stefanw/django dashboard>;`或
`维护的<;https://github.com/ojii/django dashboard>;`。

获取项目源并安装它::

$pip install dbag

2。将"dbag"添加到"installed_apps"的元组中。
3。将dbag url添加到您的"url.py"中。例如:

url patterns=patterns('',
url('^dbag/',include('dbag.url'),


如果不使用'nexus<;https://github.com/dcramer/nexus>;``,则还需要将此添加到'url.py``中,以便自动进行'metrictype`
发现::

导入dbag
dbag.autodiscover()

3。创建数据库架构::


$./manage.py syncdb

配置一些初始度量:

$./manage.py dbag_init

<5。如果您已经在使用"芹菜"<;http://celleryproject.org/>;`,那么
请确保
"芹菜"<;http://celeri.readthedocs.org/en/latest/userguide/periodic tasks.html"开始芹菜">;`
正在运行。否则,您可以运行::

$./manage.py dbag_output_cron job>;/etc/cron.d/dbag_collect_metrics

来设置cron作业以每天收集度量。您需要
编辑生成的文件以使用正确的路径和正确的用户。

6.如果要强制收集第一天的度量值,还可以运行::

$./manage.py dbag-collect-u-metrics

现在启动您的devserver,登录并访问http://localhost:8000/dbag/<;http://localhost:8000/dbag/>;``u
(或者无论您在何处告诉'url.py``指向dbag)。

h"nexus
<;https://github.com/dcramer/nexus>;``前端或通过python中的api。要么选择5种方式定义度量。


**度量类型标签**
我们收集的度量类型的标签。"dbag.metric\u types.metrictype"的这些python子类
向dbag注册(使用唯一的
标签),并定义如何收集度量以及收集度量所需的选项。包括的例子有一个``activeuserscount``类型,它可以选择
使用一个orm过滤器来定义用户的子集,一个``mixpanelevent``类型
使用一个事件名和可选属性来切片和记录当天的
值。-此度量的可读名称。

**slug**
标识此度量的唯一slug。


**说明**
此度量的可选长格式说明。

**是否收集**
是否收集此度量的新值(默认为false)。

**kw一些我trictypes采用必需或可选的关键字配置参数。
在下面的示例中,``mp_property``是可选的关键字参数。



创建度量的示例api调用可能是::


"mixPanelEvent","label="超级用户评论",
slug="超级用户评论",
description="超级用户评论数",
unit\u label="评论",
unit\u label\u pollar="评论",
mp\u property="is\u superuser=true")


创建一个新的metrictype
一个例子是metrictype,它使用github的api来计算特定项目的未结票证数。子类
``dbag.metric\u types.metric type``与您的对象一起,将其放入其中一个"已安装的应用程序"中的
``dbag\u metric\u types``模块中,然后从dbag中调用:


w,查看位于"dbag.metric_types"的内置类型以了解详细信息。

----


一个合理的解释是,这个名称是"数据包"的缩写。

它很棒吗?
----

是。越来越糟了。

也许该做什么?
----

*增加对烧瓶和金字塔(或其他)的支持?
*提供用于访问度量数据的rest api

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
由于java的原因,maven无法运行代码。lang.NoClassDefFoundError:com/fasterxml/jackson/annotation/JsonMerge   Android项目中的java Creative SDK图像编辑器UI   java如何在Android Studio中使用DataOutputStream上传文件并将其他参数传递到web服务器   java倒计时服务打开时崩溃   java将RubyonRails项目转换为JRubyonRails项目   java我的图库意图是不显示图像?为什么?   java如何在春季启动时跳过mongodb/   java@Autowired在Spring中是如何实现的   甲骨文Akka java。util。同时发生的timeoutexception线程池频繁超时   java maven依赖项对spring启动应用程序有何影响?   java Firestore执行复合查询,未截获事件“已修改”   java ItemStreamException:未能初始化读取器,原因是:IllegalStateException:流已初始化。重新开放前关闭   java将空标记解组到集合的新实例中   使用AspectJ的java新手:无法调用aspect   java查找棋类游戏的所有组合   你为什么要这样做and==与Java中的equals方法不一样吗?   如何对使用JavaUUID的代码进行单元测试?