log2() 函数用于计算时间序列中每个样本值的以 2 为底的对数(二进制对数),与 ln() 函数类似,log2() 函数在处理需要将对数转换的时间序列数据时非常有用,特别是在涉及二进制或计算机科学的场景中。
log2() 函数会返回一个与输入时间序列具有相同时间戳和标签的新时间序列,但每个样本的值被替换为其以2为底的对数。如果原始样本值小于或等于 0,log2() 函数将返回 NaN(不是一个数字),因为以 2 为底的对数在这些点上未定义。
log2()函数的基本语法如下:
log2(<vector expr>)
参数说明:
<vector expr>是一个向量表达式,通常是一个时间序列选择器,指定了你想要计算以2为底对数的样本值。
假设你有一个名为 go_memstats_gc_sys_bytes 的时间序列,记录了文件或网络传输的字节数。如果你想要分析这些字节数的增长是否接近二进制规模(例如,每次翻倍),你可以使用 log2() 函数:
log2(go_memstats_gc_sys_bytes)
上述查询将返回一个新的时间序列,其中包含了 go_memstats_gc_sys_bytes 中每个样本值的以 2 为底的对数。如下图:
注意:和 ln() 函数一样,使用 log2() 函数之前,你需要确保你的时间序列不包含小于或等于 0 的值,否则结果将是 NaN。如果需要,你可以使用 clamp_min() 函数来避免这种情况。