参考手册

函数

使用数学函数、直方图函数、排序和时间转换。

这些方法通常接收即时向量。scalar() 等函数会改变查询值类型,Rust 会检查后续组合是否合法。

from metricraft import QueryBuilder as Q

buckets = Q.from_metric("request_duration_seconds_bucket").rate("5m")
query = buckets.sum().by("le").histogram_quantile(0.95)
print(query.build(mode="promql"))

日历函数把样本的值解释为 UTC Unix 时间戳,不会自动读取样本本身的时间戳;需要后者时使用 .timestamp()。直方图编码与原生直方图支持取决于后端。

方法与参数

QueryBuilder

abs()将各样本替换为绝对值。
QueryBuilder.abs() -> QueryBuilder

无参数。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

absent()输入即时向量为空时返回单个值 1,否则不返回序列。
QueryBuilder.absent() -> QueryBuilder

无参数。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

acos()计算各样本的反余弦。角度输入输出使用弧度,超出定义域时遵循后端浮点语义。
QueryBuilder.acos() -> QueryBuilder

无参数。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

acosh()计算各样本的反双曲余弦。角度输入输出使用弧度,超出定义域时遵循后端浮点语义。
QueryBuilder.acosh() -> QueryBuilder

无参数。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

asin()计算各样本的反正弦。角度输入输出使用弧度,超出定义域时遵循后端浮点语义。
QueryBuilder.asin() -> QueryBuilder

无参数。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

asinh()计算各样本的反双曲正弦。角度输入输出使用弧度,超出定义域时遵循后端浮点语义。
QueryBuilder.asinh() -> QueryBuilder

无参数。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

atan()计算各样本的反正切。角度输入输出使用弧度,超出定义域时遵循后端浮点语义。
QueryBuilder.atan() -> QueryBuilder

无参数。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

atanh()计算各样本的反双曲正切。角度输入输出使用弧度,超出定义域时遵循后端浮点语义。
QueryBuilder.atanh() -> QueryBuilder

无参数。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

ceil()将各样本向上取整。
QueryBuilder.ceil() -> QueryBuilder

无参数。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

clamp()将样本值限制在包含上下边界的范围内。
QueryBuilder.clamp(minimum: ScalarInput, maximum: ScalarInput) -> QueryBuilder
参数
参数 / 类型含义与可接受的值
minimumint | float | QueryBuilder必填包含边界的样本值下界,应不大于 maximum;between() 要求数字字面量。
maximumint | float | QueryBuilder必填包含边界的样本值上界,应不小于 minimum;between() 要求数字字面量。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

clamp_max()将大于上界的样本替换为上界。
QueryBuilder.clamp_max(maximum: ScalarInput) -> QueryBuilder
参数
参数 / 类型含义与可接受的值
maximumint | float | QueryBuilder必填包含边界的样本值上界,应不小于 minimum;between() 要求数字字面量。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

clamp_min()将小于下界的样本替换为下界。
QueryBuilder.clamp_min(minimum: ScalarInput) -> QueryBuilder
参数
参数 / 类型含义与可接受的值
minimumint | float | QueryBuilder必填包含边界的样本值下界,应不大于 maximum;between() 要求数字字面量。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

cos()计算各样本的余弦。角度输入输出使用弧度,超出定义域时遵循后端浮点语义。
QueryBuilder.cos() -> QueryBuilder

无参数。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

cosh()计算各样本的双曲余弦。角度输入输出使用弧度,超出定义域时遵循后端浮点语义。
QueryBuilder.cosh() -> QueryBuilder

无参数。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

day_of_month()将输入样本值解释为 Unix 秒,返回对应的 UTC 月内日期(1–31)。
QueryBuilder.day_of_month() -> QueryBuilder

无参数。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

day_of_week()将输入样本值解释为 Unix 秒,返回对应的 UTC 星期(0 为星期日,6 为星期六)。
QueryBuilder.day_of_week() -> QueryBuilder

无参数。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

day_of_year()将输入样本值解释为 Unix 秒,返回对应的 UTC 年内天数(1–366)。
QueryBuilder.day_of_year() -> QueryBuilder

无参数。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

days_in_month()将输入样本值解释为 Unix 秒,返回对应的 UTC 当月天数(28–31)。
QueryBuilder.days_in_month() -> QueryBuilder

无参数。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

deg()将样本值从弧度转换为角度。
QueryBuilder.deg() -> QueryBuilder

无参数。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

exp()计算 e 的各样本值次幂。
QueryBuilder.exp() -> QueryBuilder

无参数。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

floor()将各样本向下取整。
QueryBuilder.floor() -> QueryBuilder

无参数。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

histogram_avg()提取或估算直方图的算术平均值,支持的直方图编码由后端决定。
QueryBuilder.histogram_avg() -> QueryBuilder

无参数。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

histogram_count()提取或估算直方图的数量,支持的直方图编码由后端决定。仅限 PromQL
仅限 PromQL
QueryBuilder.histogram_count() -> QueryBuilder

无参数。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

histogram_fraction()估算直方图中位于上下界之间的观测值比例。
QueryBuilder.histogram_fraction(lower: ScalarInput, upper: ScalarInput) -> QueryBuilder
参数
参数 / 类型含义与可接受的值
lowerint | float | QueryBuilder必填直方图观测值下界,应小于 upper,也可为负无穷。
upperint | float | QueryBuilder必填直方图观测值上界,应大于 lower,也可为正无穷。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

histogram_quantile()从传统直方图桶或支持的原生直方图中估算一个分位数。
QueryBuilder.histogram_quantile(q: ScalarInput, *, bounds_label: Optional[StringInput]=None) -> QueryBuilder

传统 Prometheus 桶在聚合时需要保留 le 标签。原生直方图支持与插值由后端决定。

参数
参数 / 类型含义与可接受的值
qint | float | QueryBuilder必填请求的分位数,通常在 [0, 1] 内。范围外的值遵循后端分位数语义,构建器不会一律拒绝。
bounds_labelstr | None默认值: None可选的上下估算边界输出标签。提供该参数会选择仅限 MetricsQL 的参数形式。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

示例

from metricraft import QueryBuilder as Q

Q.from_metric("request_duration_seconds_bucket").rate("5m").sum().by("le").histogram_quantile(0.95).build(mode="promql")
histogram_stddev()提取或估算直方图的总体标准差,支持的直方图编码由后端决定。
QueryBuilder.histogram_stddev() -> QueryBuilder

无参数。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

histogram_stdvar()提取或估算直方图的总体方差,支持的直方图编码由后端决定。
QueryBuilder.histogram_stdvar() -> QueryBuilder

无参数。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

histogram_sum()提取或估算直方图的总和,支持的直方图编码由后端决定。仅限 PromQL
仅限 PromQL
QueryBuilder.histogram_sum() -> QueryBuilder

无参数。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

hour()将输入样本值解释为 Unix 秒,返回对应的 UTC 小时(0–23)。
QueryBuilder.hour() -> QueryBuilder

无参数。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

info()从匹配的 info 序列为向量补充数据标签;可选选择器限制 info 标签。仅限 PromQL
仅限 PromQLPrometheus 实验功能
QueryBuilder.info(data_labels: Optional[QueryBuilder]=None) -> QueryBuilder
参数
参数 / 类型含义与可接受的值
data_labelsQueryBuilder | None默认值: NoneQ.from_labels() 创建的可选无指标名选择器;info 的第二个参数不接受带指标名的选择器。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

ln()计算各样本的自然对数。
QueryBuilder.ln() -> QueryBuilder

无参数。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

log10()计算各样本以 10 为底的对数。
QueryBuilder.log10() -> QueryBuilder

无参数。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

log2()计算各样本以 2 为底的对数。
QueryBuilder.log2() -> QueryBuilder

无参数。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

max_of()返回两个标量表达式中较大的值。这是 Prometheus 实验函数。仅限 PromQL
仅限 PromQLPrometheus 实验功能
QueryBuilder.max_of(other: QueryInput) -> QueryBuilder
参数
参数 / 类型含义与可接受的值
otherint | float | QueryBuilder必填右操作数。集合运算与向量匹配需要向量表达式,算术和比较也接受数字。拒绝 Python bool。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

min_of()返回两个标量表达式中较小的值。这是 Prometheus 实验函数。仅限 PromQL
仅限 PromQLPrometheus 实验功能
QueryBuilder.min_of(other: QueryInput) -> QueryBuilder
参数
参数 / 类型含义与可接受的值
otherint | float | QueryBuilder必填右操作数。集合运算与向量匹配需要向量表达式,算术和比较也接受数字。拒绝 Python bool。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

minute()将输入样本值解释为 Unix 秒,返回对应的 UTC 分钟(0–59)。
QueryBuilder.minute() -> QueryBuilder

无参数。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

month()将输入样本值解释为 Unix 秒,返回对应的 UTC 月份(1–12)。
QueryBuilder.month() -> QueryBuilder

无参数。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

rad()将样本值从角度转换为弧度。
QueryBuilder.rad() -> QueryBuilder

无参数。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

round()将样本舍入到最接近的指定倍数,默认倍数为 1;恰好居中时向上舍入。
QueryBuilder.round(nearest: Optional[ScalarInput]=None, *, to_nearest: Optional[ScalarInput]=None) -> QueryBuilder
参数
参数 / 类型含义与可接受的值
nearestint | float | QueryBuilder | None默认值: None舍入倍数,None 使用 1。应为非零正数,不要同时传入 to_nearest。
to_nearestint | float | QueryBuilder | None默认值: Nonenearest 的别名,不能同时传入两者。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

scalar()将只有一个元素的即时向量转换为标量;其他长度的向量产生 NaN。
QueryBuilder.scalar() -> QueryBuilder

无参数。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

sgn()将负值、零和正值分别映射为 -1、0 和 1。
QueryBuilder.sgn() -> QueryBuilder

无参数。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

sin()计算各样本的正弦。角度输入输出使用弧度,超出定义域时遵循后端浮点语义。
QueryBuilder.sin() -> QueryBuilder

无参数。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

sinh()计算各样本的双曲正弦。角度输入输出使用弧度,超出定义域时遵循后端浮点语义。
QueryBuilder.sinh() -> QueryBuilder

无参数。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

smooth_exponential()对 MetricsQL 范围查询返回的值序列进行指数平滑。仅限 MetricsQL
仅限 MetricsQL
QueryBuilder.smooth_exponential(smoothing_factor: ScalarInput) -> QueryBuilder
参数
参数 / 类型含义与可接受的值
smoothing_factorint | float | QueryBuilder必填[0, 1] 闭区间内的平滑因子。Rust 会拒绝范围外的字面量因子。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

sort()按指定方向,根据值对即时查询结果排序。
QueryBuilder.sort(direction: Literal['asc', 'desc']='asc') -> QueryBuilder
参数
参数 / 类型含义与可接受的值
directionstr默认值: 'asc'只能是 'asc' 或 'desc'。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

sort_by_label()按指定标签值的自然顺序,升序排列序列。
Prometheus 实验功能
QueryBuilder.sort_by_label(*labels: StringInput) -> QueryBuilder
参数
参数 / 类型含义与可接受的值
*labelsstr, ...可变参数分别传入标签名。分组与匹配列表不能重复;允许空分组列表,具体函数的参数个数由 Rust 检查。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

sort_by_label_desc()按指定标签值的自然顺序,降序排列序列。
Prometheus 实验功能
QueryBuilder.sort_by_label_desc(*labels: StringInput) -> QueryBuilder
参数
参数 / 类型含义与可接受的值
*labelsstr, ...可变参数分别传入标签名。分组与匹配列表不能重复;允许空分组列表,具体函数的参数个数由 Rust 检查。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

sort_by_label_numeric()按指定标签值的数值,升序排列序列。仅限 MetricsQL
仅限 MetricsQL
QueryBuilder.sort_by_label_numeric(*labels: StringInput) -> QueryBuilder
参数
参数 / 类型含义与可接受的值
*labelsstr, ...可变参数分别传入标签名。分组与匹配列表不能重复;允许空分组列表,具体函数的参数个数由 Rust 检查。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

sort_by_label_numeric_desc()按指定标签值的数值,降序排列序列。仅限 MetricsQL
仅限 MetricsQL
QueryBuilder.sort_by_label_numeric_desc(*labels: StringInput) -> QueryBuilder
参数
参数 / 类型含义与可接受的值
*labelsstr, ...可变参数分别传入标签名。分组与匹配列表不能重复;允许空分组列表,具体函数的参数个数由 Rust 检查。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

sort_desc()按值从大到小排列即时查询结果。
QueryBuilder.sort_desc() -> QueryBuilder

无参数。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

sqrt()计算各样本的平方根;负值在后端产生 NaN。
QueryBuilder.sqrt() -> QueryBuilder

无参数。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

tan()计算各样本的正切。角度输入输出使用弧度,超出定义域时遵循后端浮点语义。
QueryBuilder.tan() -> QueryBuilder

无参数。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

tanh()计算各样本的双曲正切。角度输入输出使用弧度,超出定义域时遵循后端浮点语义。
QueryBuilder.tanh() -> QueryBuilder

无参数。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

timestamp()将样本值替换为其原始时间戳,单位为 Unix 秒。
QueryBuilder.timestamp() -> QueryBuilder

无参数。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

year()将输入样本值解释为 Unix 秒,返回对应的 UTC 公历年份。
QueryBuilder.year() -> QueryBuilder

无参数。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

浏览文档

查找你需要的内容

搜索指南、示例和 Python API。