跳转到主要内容

一个简单的库,它将有关您程序的信息写入命名管道。

项目描述

statvent

statvent为您提供三样东西

  1. 一个用于在库或应用程序中记录指标的开发者API。

  2. 一个部署者API,它将统计信息写入命名管道。

  3. 一个简单的Web服务,它将读取主机上所有命名管道的内容,并将结果作为JSON提供。

开发者API

它非常简单。有三个用于记录数据的功能。

statvent.incr(name, value=1)

通过名称调用它,它将增加其值。如果它还不存在,它将将其初始化为给定的值(默认为1)。

这对于跟踪您的应用程序内发生的事件非常有用。

statvent.set(name, value)

通过名称和值调用它。统计信息将设置为该值。

此函数对于可以波动值非常有用,例如并发用户数、数据库连接、连胜等。

statvent.record(name, value, format_func=str.format)

使用统计项的名称和值调用它。默认情况下,名称必须包含一个{0}格式占位符。内部,值会被追加到一个双端队列中。当读取管道时,统计记录器将从双端队列的内容中计算一些汇总统计(默认为几个百分位数和平均值)。

如果你的统计项名称方案与默认的``str.format``函数冲突,你可以提供一个自己的函数来格式化统计项名称,以便包含计算出的百分位数标签。

统计项的名称只需要是字节字符串。你可以按任何方式格式化它们,包括任何你喜欢的标点符号等。如果你想要百分位数或其他计算统计(使用statvent.record),你需要在格式化统计项名称时格外小心。

值可以是整数或浮点数。请注意,一旦你使用了浮点数,该统计项将始终是浮点数。这可能并不是很重要,但现在你知道了。

部署器API

请注意,没有提到用于读取统计的API。这是因为你的应用程序指标的产生和消费应该解耦。这种解耦是通过将数据写入命名管道来实现的。

statvent.start_recorder()

启动一个线程,该线程将应用程序统计写入命名管道。

线程在打开系统调用上阻塞时不会消耗你应用程序的资源,直到另一个进程打开管道进行读取。

命名管道

默认情况下,管道位于/tmp/stats-pipe/,命名为<pid>.stats,其中<pid>是写入该命名管道数据的UNIX进程ID。你可以通过设置statvent.stats.config['pipe_dir']路径来更改写入/读取管道的位置。不过,请确保你的进程有写入该位置的权限。

每个统计项都写入命名管道的单独一行。统计项的名称和当前值由冒号:后跟一个空格分隔。值跟随其后,可以是浮点数值或整数值。然后是一个换行符。以下是一个示例

a.b.c.d: 42
My Nice Stat: 123.45
another[one]: 0

你可以通过在命名管道上运行cat来查看应用程序的当前状态,或者运行一个定期执行此操作并将结果插入数据库以跟踪数据随时间变化的进程。

网络服务

如果你不想处理从命名管道得到的奇怪纯文本格式,并且你想要从主机上的多个进程收集统计,那么JSON网络服务可能对你感兴趣。

它将所有统计值的总和作为JSON提供。尝试运行python -m statvent.web作为脚本以查看其作用。

项目详情


下载文件

为您的平台下载文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分布

statvent-1.0.1.tar.gz (6.2 kB 查看哈希值)

上传时间

由以下支持