2011-09-08 70 views
3

我们正在编写一个Python Web应用程序,我们想知道我们的用户正在做什么的一般数据。Python的应用程序性能指标

作为一个例子,我们有用于设定使用的区域设置的一堆遗留-模式; url参数,使用不同格式的不同cookie,Accpet-Language -headers & c。我们真的很想以某种方式来衡量它(但记录它只是太多的数据)。

我试着找像Metrics for Node.js库,但我似乎无法找到任何的Python。现在,我认为我们可以用一堆UNIX负载类计数器来做。 (但更多的是总是更好,对不对?)

我错过了一些明显的图书馆或其他地方一些聪明的技巧?

回答

3

刚刚发现的PyCounters项目,它看起来就像是我需要开始什么。

0

查看多个日志。

我们有很多不同的日志(独立手柄,独立的格式),并使用Python日志记录这些事件转换成单独的日志。

我们有很多类似这样的功能。

def some_feature(...): 
    customer_log.info("Requested some_feature") 
    ... 
    vendor_x_log.info("Got foo") 
    ... 
    vendor_y_log.info("Got bar") 

现在我们有详细的日志。由于日志记录模块可以写入数据库(或者做任何看起来合适的事情),我们通过一个简单的,易于配置的界面来获得所有的细节。

+0

我已经为这个手头的工作走了(而且工作的很好),但是我仍然觉得应该有更多......明显的......这样做的方式,不知何故。 –

1

一个名为Graphite的Python项目加上一个名为Statsd的Node.js项目可以完成您想要的任务。很多时候,人们也将这些项目用于软件性能指标和业务指标。

顺便提一下,托管的应用程序版本提供了许多与GraphiteStatsd相同的功能。我公司的产品Instrumental将为您提供托管前端和图表生成的度量标准;在Python中,您可以使用Python statsd client与我们的Statsd to Instrumental proxy进行协作,以将您的指标报告给我们的服务。

由于接受的答案是做基于文件的日志记录(默认情况下至少:)),我会注意的传输层是在这些不同的有趣的事情:一个statsd服务器(the officialour proxy是否)使用UDP发送您的指标信息到服务器。您也可以使用基于TCP的协议直接联系GraphiteInstrumental;其他商业服务,如librato MetricsStathat接受您的指标使用HTTP消息。根据您发送的邮件的规模,这些工具中的任何一个都可能或多或少对您有吸引力。

+0

我没有在寻找*存储*数据的东西,我宁愿寻找一些pythoninc来将它们收集到应用程序中。 –

+1

啊,我误解了 - 我的道歉。 –

0

你可以尝试托管服务指标Metrics At。您可以将您想要的数据记录到度量标准,例如url参数,Accpet-Language-headers ...等。然后,您可以在Metrics At中输入常规快递。度量标准将自动为您提取数据和度量标准。到PyCounters