diff --git a/docker/telemetry/otel-collector-config.yaml b/docker/telemetry/otel-collector-config.yaml index 60f59e7c48..d0e231f6d6 100644 --- a/docker/telemetry/otel-collector-config.yaml +++ b/docker/telemetry/otel-collector-config.yaml @@ -119,15 +119,18 @@ processors: # - resource_group: node id, optionally suffixed with network type. The id # is always present; network may be absent, so it is appended separately # to avoid a trailing separator. - # Concat is guarded on presence because OTTL Concat renders the literal text - # "" for an absent attribute (it does not skip it). + # Concat is guarded on presence (!= nil and != "") because OTTL Concat renders + # the literal text "" for an absent attribute and would emit a stray + # separator for an empty one. The perf-iac collector stamps these attributes + # with an empty-string default when a run has no work item, so the empty-string + # check matters, not just the nil check. transform/legendgroups: metric_statements: - context: resource statements: - - set(attributes["iac_group"], Concat([attributes["xrpl.branch"], attributes["xrpl.node.role"], attributes["xrpl.work.item"]], "-")) where attributes["xrpl.branch"] != nil and attributes["xrpl.node.role"] != nil and attributes["xrpl.work.item"] != nil - - set(attributes["resource_group"], attributes["service.instance.id"]) where attributes["service.instance.id"] != nil - - set(attributes["resource_group"], Concat([attributes["resource_group"], attributes["xrpl.network.type"]], "-")) where attributes["resource_group"] != nil and attributes["xrpl.network.type"] != nil + - set(attributes["iac_group"], Concat([attributes["xrpl.branch"], attributes["xrpl.node.role"], attributes["xrpl.work.item"]], "-")) where attributes["xrpl.branch"] != nil and attributes["xrpl.branch"] != "" and attributes["xrpl.node.role"] != nil and attributes["xrpl.node.role"] != "" and attributes["xrpl.work.item"] != nil and attributes["xrpl.work.item"] != "" + - set(attributes["resource_group"], attributes["service.instance.id"]) where attributes["service.instance.id"] != nil and attributes["service.instance.id"] != "" + - set(attributes["resource_group"], Concat([attributes["resource_group"], attributes["xrpl.network.type"]], "-")) where attributes["resource_group"] != nil and attributes["xrpl.network.type"] != nil and attributes["xrpl.network.type"] != "" connectors: spanmetrics: