month(v=vector(time()) instant-vector) 函数以 UTC 为单位返回给定时间的月份,返回值从 1 到 12,其中 1 表示一月等。
注意:month() 函数本身并不进行数据的聚合,它只是将时间戳舍入到月份级别。要得到每个月的聚合数据,你需要结合使用聚合操作符(如sum()、avg()等)和by子句来指定按哪个标签进行聚合。
month() 函数的基本语法是:
month(v=vector(time()) instant-vector)
参数说明:
<vector>是一个向量表达式,通常是一个时间序列选择器,它返回一个时间向量作为输入。month()函数会遍历这个时间向量中的每个样本,将每个样本的时间戳舍入到对应的月份的第一天,并返回一个新的时间向量。
假设你有一个名为 prometheus_http_requests_total 的时间序列,记录了每天的 HTTP 请求总数。如果你想要知道每个月的 HTTP 请求总数,你可以使用 sum() 函数结合 month() 函数来实现:
sum by(month)(prometheus_http_requests_total)
上述查询会按照月份对 prometheus_http_requests_total 进行汇总,结果将是一个新的时间序列,其中每个样本表示一个月份,并且样本的值是那个月内所有 HTTP 请求总数的和。如下图:
获取 go_memstats_last_gc_time_seconds 指标的月份,如下图:
如果不传递任何参数,则获取当前系统月份,如下图: