将数据发送到 Graphite 的统计服务器。
项目描述
这是一个统计聚合服务器。默认情况下,Statsite 将数据刷新到Graphite。Statsite 主要基于Etsy 的 StatsD。
特征
基本键/值指标
发送计时器数据,Statsite 将计算: - 平均值 - 最小值/最大值 - 标准偏差 - 特定百分位信息的所有上述指标
发送 Statsite 将聚合的计数器
发送带有计数器的采样率,Statsite 将在汇总时将其考虑在内。
安装
从 PyPi 安装 Statsite:
pip install statsite
或者从源码下载安装:
python setup.py install
用法
尽管所有配置参数也可以通过命令行设置,但最好使用文件配置 Statsite。这是一个示例配置文件:
# Settings for the "collector" which is the UDP listener [collector] host = 0.0.0.0 port = 8125 # Specify settings for the metrics "store" which is where graphite is [store] host = 0.0.0.0 port = 2003
然后运行 statsite,将其指向该文件(假设现在是/etc ):
statsite -c /etc/statsite.conf
协议
默认情况下,Statsite 将侦听 UDP 数据包,这使得您的应用程序可以非常便宜地触发和忘记发送到服务器的数据包。一条消息如下所示(标志是可选的):
key:value|type[|@flag]
如果在同一个数据包中发送多个消息,则应使用换行符 ( n ) 分隔消息。
当前支持的消息类型:
kv - 简单的键/值。如果给出一个标志,它被认为是键/值对的时间戳。
毫秒- 定时器。如果给出了一个标志,它被认为是定时器的采样率。
c - 计数器。在刷新间隔之后,相同键的计数器被聚合并将其发送到存储。
例子:
下面是一个简单的键/值对,在这种情况下报告我们在 MySQL 上的最后一秒看到了多少查询:
mysql.queries:1381|kv|@1313107325
下面是一个计时器,计时 API 调用的响应速度:
api.session_created:114|ms
下面是另一个计时器,但这次是说我们在 API 请求的 1/10 中对这些数据进行采样。
api.session_created:114|ms|@0.1
下一个示例是将“奖励”计数器加 1:
rewards:1|c
此示例将“库存”计数器减 7:
inventory:-7|c
如前所述,多条消息可以通过换行符连接在一起。