Metadata functions
These functions derive a new label, or overwrite an existing one, from the values of other labels.
Joins the values of the source labels src_label_1 .. src_label_N using separator and stores the result in the label dst_label. A missing source label contributes an empty string.
Return type
instant_vector
Parameters
v(instant_vector)- Instant vector input.
dst_label(scalar)- Name of the label to set.
separator(scalar)- String inserted between the source values.
src_label(scalar)- Name of a label to join (repeatable).
Example
sum by (endpoint) (label_join(http_requests_total, "endpoint", "/", "job", "instance"))
Differences from Prometheus
Supported in this version only when the derived destination label is consumed by an enclosing by(...) aggregation. The destination may be a new label or may overwrite a stored label (a dimension or __name__). A without grouping or a bare (non-aggregated) call are rejected. Reading or overwriting __name__ behaves like Prometheus only for Prometheus-style data that stores __name__ as a label; for OpenTelemetry-style metrics the metric name is not exposed as a readable or writable label here.
Matches the regular expression regex against the value of the label src_label. On a match, sets the label dst_label to the expansion of replacement, substituting $1, $name, and ${name} with the matched capture groups; on no match the input series is returned unchanged.
Return type
instant_vector
Parameters
v(instant_vector)- Instant vector input.
dst_label(scalar)- Name of the label to set.
replacement(scalar)- Replacement value, with
$1/$name/${name}capture-group expansion. src_label(scalar)- Name of the label to read.
regex(scalar)- Regular expression matched against
src_label.
Example
sum by (job2) (label_replace(http_requests_total, "job2", "$1", "job", "(.*)-server"))
Differences from Prometheus
Supported in this version only when the derived destination label is consumed by an enclosing by(...) aggregation. The destination may be a new label or may overwrite a stored label (a dimension or __name__). A without grouping or a bare (non-aggregated) call are rejected. Regular expressions use the RE2 engine (RE2 syntax including (?P<name>), $1/$name/${name} replacement expansion, no backreferences, fully anchored as ^(?s:regex)$), matching Prometheus. Reading or overwriting __name__ behaves like Prometheus only for Prometheus-style data that stores __name__ as a label; for OpenTelemetry-style metrics the metric name is not exposed as a readable or writable label here.