label_join() 函数用于将时间序列上的多个标签值合并成一个单一的标签值。这对于从多个标签中创建复合标签或处理标签结构非常有用。
label_join() 函数会将每个时间序列的多个源标签值合并成一个字符串,并将该字符串设置为目标标签的值。合并时,你可以使用 "" 作为分隔符,也可以指定其他字符作为分隔符。
label_join() 函数的基本语法如下:
label_join(v instant-vector, dst_label string, separator string, src_label_1 string, src_label_2 string, ...)
参数说明:
instant-vector:一个向量表达式,用于选择你想要操作的时间序列。
dst_label:新的标签名,用于存储合并后的标签值。
separator:分隔符。
src_label_1,src_label_2,....:你想要合并的源标签名列表。
下面是一个使用 label_join() 函数的例子:
label_join(prometheus_http_requests_total, "mylabel", "", "instance", "handler")
上面例子中,我们选择了所有 prometheus_http_requests_total 指标的时间序列。然后,我们使用 label_join() 函数将这些时间序列的 instance 和 handler 标签值合并成一个新的标签 mylabel。如下图:
执行 label_join() 函数后的结果如下图:
注意,label_join() 函数不会改变原始时间序列的其余部分,只是添加了一个新标签。此外,如果源标签中的任何值为空,则合并后的标签值也将为空。