From 6b32654d8583d749f83d6fb610408af25a7d7efa Mon Sep 17 00:00:00 2001 From: Matty Evans Date: Fri, 10 Apr 2026 07:42:00 +1000 Subject: [PATCH] feat(vector-logs.yaml): enhance logging transformation to differentiate between docker-compose and kurtosis environments This update improves the log transformation by identifying the source of logs, allowing for better context and clarity in a multi-environment setup. It captures additional metadata from the docker-compose and kurtosis labels, enhancing the namespace and pod identifiers. --- deploy/local/docker-compose/vector-logs.yaml | 23 ++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/deploy/local/docker-compose/vector-logs.yaml b/deploy/local/docker-compose/vector-logs.yaml index c5b40924..54237162 100644 --- a/deploy/local/docker-compose/vector-logs.yaml +++ b/deploy/local/docker-compose/vector-logs.yaml @@ -10,17 +10,32 @@ transforms: - docker source: | # Capture fields before deleting originals - project = to_string(get!(., ["label", "com.docker.compose.project"])) ?? "unknown" - service = to_string(get!(., ["label", "com.docker.compose.service"])) ?? "unknown" container = to_string(.container_name) ?? "unknown" stream = to_string(.stream) ?? "stdout" msg = to_string(.message) ?? "" ts = .timestamp + # Detect source: docker-compose vs kurtosis vs unknown + compose_project = to_string(get!(., ["label", "com.docker.compose.project"])) ?? "" + compose_service = to_string(get!(., ["label", "com.docker.compose.service"])) ?? "" + kurtosis_id = to_string(get!(., ["label", "com.kurtosistech.id"])) ?? "" + kurtosis_enclave = to_string(get!(., ["label", "com.kurtosistech.enclave-id"])) ?? "" + + ns_val = "docker" + pod_val = container + + if compose_project != "" { + ns_val = compose_project + pod_val = compose_service + } else if kurtosis_id != "" { + ns_val = "kurtosis-" + slice!(kurtosis_enclave, start: 0, end: 8) + pod_val = kurtosis_id + } + # Build the output schema .IngressUser = "local" - .Namespace = project - .Pod = service + .Namespace = ns_val + .Pod = pod_val .Container = container .Node = "localhost" .Stream = stream