python api
此库的用户通常可以扮演两个角色(通常都是):将值记录到一个或多个直方图中(直方图设置)
分析并显示直方图内容和特征(直方图查询)
在分布式情况下,可以远程(可能在多个位置)配置直方图,然后
集中在一个中心位置进行分析。
可以使用hdrhistogram类创建直方图实例,并指定
最小和最大可跟踪值以及所需的精度位数。
例如,创建一个直方图,可以计算[1..3600000]范围内的值,并且
1%精度(例如,跟踪范围[1毫秒..1小时]内的延迟):histogram = HdrHistogram(1, 60 * 60 * 1000, 2)
默认情况下,计数器为64位,而可以指定16位或32位计数器(字大小
选项设置为2或4字节)。
请注意,此版本中未测试计数器溢出,因此在使用
较小的柜台尺寸。
创建后,很容易将值添加到直方图中:histogram.record_value(latency)
如果生成值的代码有协调省略,
使用该方法的正确版本(例如,当预期间隔为
10毫秒):histogram.record_corrected_value(latency, 10)
在任何时候,都可以查询直方图以返回任何属性,例如
记录的值总数或给定百分比的值:count = histogram.get_total_count()
value = histogram.get_value_at_percentile(99.9)
记录的值可以使用记录的迭代器进行迭代:for item in histogram.get_recorded_iterator():
print('value=%f count=%d percentile=%f' %
item.value_iterated_to,
item.count_added_in_this_iter_step,
item.percentile)
可通过调用压缩方法生成编码/压缩直方图:encoded_histogram = histogram.encode()
接收时,压缩直方图可以从编码字符串中解码:decoded_histogram = HdrHistogram.decode(encoded_histogram)
count = decoded_histogram.get_total_count()
在聚合的情况下,可以使用decode_和_add方法:aggregation_histogram.decode_and_add(encoded_histogram)
如果要以标准表格格式打印直方图:histogram.output_percentile_distribution(file, scaling_ratio)
有关如何使用API的其他帮助:浏览python代码并查看comment部分中每个方法的api文档(如果可用)
最好的文档是查看测试目录下的测试代码
测试代码(https://github.com/hdrhistogram/hdrhistogram_py/blob/master/test/test_hdrhistogram.py" rel="nofollow">https://github.com/hdrhistogram/hdrhistogram_py/blob/master/test/test_hdrhistogram.py)几乎涵盖了每个api。