Python的应用程序性能指标

时间:2011-09-08 13:17:31

标签: python performance metrics

我们正在编写一个Python网络应用程序,我们想知道关于用户正在做什么的一般情况。

作为一个例子,我们有一堆遗留模式来设置使用的语言环境; url-parameter,使用不同格式的不同Cookie Accpet-Language - 标题& c。我们真的想以某种方式衡量这一点(但记录它的数据太多了。)

我尝试过寻找像Metrics for Node.js这样的库,但我似乎无法为Python找到任何东西。现在,我认为我们可以使用一堆类UNIX加载计数器。 (但总是更好,对吗?)

我在某个地方错过了一些明显的图书馆或某种智能技术吗?

5 个答案:

答案 0 :(得分:3)

刚刚找到PyCounters项目,看起来就像我需要的那样。

答案 1 :(得分:1)

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

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

由于接受的答案是基于文件的日志记录(默认情况下至少:) :),我会注意到传输层在这些不同的事物中很有意义:统计服务器(无论the official还是{ {3}})使用UDP将度量信息发送到服务器。您也可以使用基于线路的TCP协议直接联系our proxyGraphite;其他商业服务(例如Instrumentallibrato Metrics)会使用HTTP消息接收您的指标。根据您发送的邮件的规模,这些工具中的任何一个对您都具有或多或少的吸引力。

答案 2 :(得分:0)

查看多个日志。

我们有许多单独的日志(单独的句柄,单独的格式),并使用Python日志记录将这些事件记录到单独的日志中。

我们有很多这样的功能。

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

现在我们有详细的日志。由于日志记录模块可以写入数据库(或执行任何其他似乎合适的事情),因此我们通过简单,易于配置的界面获取所有详细信息。

答案 3 :(得分:0)

您可以尝试托管指标服务Metrics At。您可以将所需数据记录到指标,例如url-parameter,Accpet-Language-headers ...等。然后,您可以在Metrics At中输入常规快递。 Metrics At会自动提取数据并为您量身定制。

答案 4 :(得分:0)

PyCounters的另一个新选择是Scales: https://github.com/Cue/scales/

它有一些很酷的额外功能,例如启动服务器以提供当前统计数据或发送到石墨。