From ca418bf0347d30e7216b85b963f7df69122dac97 Mon Sep 17 00:00:00 2001 From: Buchi Reddy Busi Reddy Date: Fri, 11 Dec 2020 15:00:51 -0800 Subject: [PATCH 1/3] GRPC authority header seems to not have host component sometimes. Due to this, the host header was being set as :, which isn't right. Fixing the bug to ignore such host header so that the span will be resolved based on the servicename that comes in the span. --- .../ApiBoundaryTypeAttributeEnricher.java | 16 ++++++++-------- .../ApiBoundaryTypeAttributeEnricherTest.java | 10 ++++++++++ 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/hypertrace-trace-enricher/hypertrace-trace-enricher-impl/src/main/java/org/hypertrace/traceenricher/enrichment/enrichers/ApiBoundaryTypeAttributeEnricher.java b/hypertrace-trace-enricher/hypertrace-trace-enricher-impl/src/main/java/org/hypertrace/traceenricher/enrichment/enrichers/ApiBoundaryTypeAttributeEnricher.java index d4754001e..c2b5646aa 100644 --- a/hypertrace-trace-enricher/hypertrace-trace-enricher-impl/src/main/java/org/hypertrace/traceenricher/enrichment/enrichers/ApiBoundaryTypeAttributeEnricher.java +++ b/hypertrace-trace-enricher/hypertrace-trace-enricher-impl/src/main/java/org/hypertrace/traceenricher/enrichment/enrichers/ApiBoundaryTypeAttributeEnricher.java @@ -153,29 +153,29 @@ private Optional getGrpcAuthority(Event event) { private Optional getSanitizedHostValue(String value) { if (StringUtils.isNotBlank(value)) { - String host = sanitizeHostValue(value); - if (!LOCALHOST.equalsIgnoreCase(host)) { - return Optional.of(host); + Optional host = sanitizeHostValue(value); + if (host.isPresent() && !LOCALHOST.equalsIgnoreCase(host.get())) { + return host; } } return Optional.empty(); } - private String sanitizeHostValue(String host) { + private Optional sanitizeHostValue(String host) { if (host.contains(COLON) && !host.startsWith(COLON)) { - return COLON_SPLITTER.splitToList(host).get(0); + return Optional.ofNullable(COLON_SPLITTER.splitToList(host).get(0)); } // the value is a URL, just return the authority part of it. try { URI uri = new URI(host); if (uri.getScheme() != null) { - return uri.getHost(); + return Optional.ofNullable(uri.getHost()); } - return host; + return Optional.of(host); } catch (URISyntaxException ignore) { // ignore - return host; + return Optional.empty(); } } } diff --git a/hypertrace-trace-enricher/hypertrace-trace-enricher-impl/src/test/java/org/hypertrace/traceenricher/enrichment/enrichers/ApiBoundaryTypeAttributeEnricherTest.java b/hypertrace-trace-enricher/hypertrace-trace-enricher-impl/src/test/java/org/hypertrace/traceenricher/enrichment/enrichers/ApiBoundaryTypeAttributeEnricherTest.java index b56b91dc7..08c386af2 100644 --- a/hypertrace-trace-enricher/hypertrace-trace-enricher-impl/src/test/java/org/hypertrace/traceenricher/enrichment/enrichers/ApiBoundaryTypeAttributeEnricherTest.java +++ b/hypertrace-trace-enricher/hypertrace-trace-enricher-impl/src/test/java/org/hypertrace/traceenricher/enrichment/enrichers/ApiBoundaryTypeAttributeEnricherTest.java @@ -144,6 +144,16 @@ public void testEnrichEventWithAuthorityHeader() { Assertions.assertEquals(EnrichedSpanUtils.getHostHeader(innerEntrySpan), "testHost"); } + @Test + public void testEnrichEventWithIncompleteAuthorityHeader() { + // Try with :port since that seems to be a valid value for some authority headers. + addEnrichedAttributeToEvent(innerEntrySpan, + RawSpanConstants.getValue(org.hypertrace.core.span.constants.v1.Http.HTTP_REQUEST_AUTHORITY_HEADER), + AttributeValueCreator.create(":9000")); + target.enrichEvent(trace, innerEntrySpan); + Assertions.assertNull(EnrichedSpanUtils.getHostHeader(innerEntrySpan)); + } + @Test public void testEnrichEventWithHostHeader() { addEnrichedAttributeToEvent(innerEntrySpan, From 997d7b5439f72893cb41683b1d18095c26c7c7c3 Mon Sep 17 00:00:00 2001 From: Buchi Reddy Busi Reddy Date: Mon, 14 Dec 2020 00:18:52 -0800 Subject: [PATCH 2/3] Upgrading the data-model to newer version to fix Snyk issues. --- hypertrace-ingester/build.gradle.kts | 2 +- .../enriched-span-constants/build.gradle.kts | 2 +- .../hypertrace-trace-enricher-api/build.gradle.kts | 2 +- .../hypertrace-trace-enricher-impl/build.gradle.kts | 2 +- .../hypertrace-trace-enricher/build.gradle.kts | 2 +- .../hypertrace-trace-visualizer/build.gradle.kts | 2 +- hypertrace-trace-enricher/trace-reader/build.gradle.kts | 2 +- .../hypertrace-view-generator/build.gradle.kts | 2 +- raw-spans-grouper/raw-spans-grouper/build.gradle.kts | 2 +- semantic-convention-utils/build.gradle.kts | 2 +- span-normalizer/span-normalizer/build.gradle.kts | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/hypertrace-ingester/build.gradle.kts b/hypertrace-ingester/build.gradle.kts index c66dec5ef..9bc6a4872 100644 --- a/hypertrace-ingester/build.gradle.kts +++ b/hypertrace-ingester/build.gradle.kts @@ -28,7 +28,7 @@ dependencies { implementation("org.hypertrace.core.kafkastreams.framework:kafka-streams-framework:0.1.9") implementation("org.hypertrace.core.serviceframework:platform-service-framework:0.1.9") implementation("org.hypertrace.core.serviceframework:platform-metrics:0.1.8") - implementation("org.hypertrace.core.datamodel:data-model:0.1.9") + implementation("org.hypertrace.core.datamodel:data-model:0.1.12") implementation("org.hypertrace.core.viewgenerator:view-generator-framework:0.1.14") implementation("com.typesafe:config:1.4.0") diff --git a/hypertrace-trace-enricher/enriched-span-constants/build.gradle.kts b/hypertrace-trace-enricher/enriched-span-constants/build.gradle.kts index 0a3b4a794..53c570baa 100644 --- a/hypertrace-trace-enricher/enriched-span-constants/build.gradle.kts +++ b/hypertrace-trace-enricher/enriched-span-constants/build.gradle.kts @@ -60,7 +60,7 @@ sourceSets { dependencies { api("com.google.protobuf:protobuf-java-util:3.13.0") - implementation("org.hypertrace.core.datamodel:data-model:0.1.9") + implementation("org.hypertrace.core.datamodel:data-model:0.1.12") implementation(project(":span-normalizer:raw-span-constants")) implementation(project(":span-normalizer:span-normalizer-constants")) implementation("org.hypertrace.entity.service:entity-service-api:0.1.23") diff --git a/hypertrace-trace-enricher/hypertrace-trace-enricher-api/build.gradle.kts b/hypertrace-trace-enricher/hypertrace-trace-enricher-api/build.gradle.kts index b541f369b..7456281d3 100644 --- a/hypertrace-trace-enricher/hypertrace-trace-enricher-api/build.gradle.kts +++ b/hypertrace-trace-enricher/hypertrace-trace-enricher-api/build.gradle.kts @@ -9,7 +9,7 @@ tasks.test { dependencies { implementation(project(":hypertrace-trace-enricher:enriched-span-constants")) - implementation("org.hypertrace.core.datamodel:data-model:0.1.9") + implementation("org.hypertrace.core.datamodel:data-model:0.1.12") implementation("org.slf4j:slf4j-api:1.7.30") implementation("org.apache.commons:commons-lang3:3.11") diff --git a/hypertrace-trace-enricher/hypertrace-trace-enricher-impl/build.gradle.kts b/hypertrace-trace-enricher/hypertrace-trace-enricher-impl/build.gradle.kts index 748c455bf..f8b8e981c 100644 --- a/hypertrace-trace-enricher/hypertrace-trace-enricher-impl/build.gradle.kts +++ b/hypertrace-trace-enricher/hypertrace-trace-enricher-impl/build.gradle.kts @@ -16,7 +16,7 @@ dependencies { implementation(project(":semantic-convention-utils")) implementation(project(":hypertrace-trace-enricher:trace-reader")) - implementation("org.hypertrace.core.datamodel:data-model:0.1.9") + implementation("org.hypertrace.core.datamodel:data-model:0.1.12") implementation("org.hypertrace.entity.service:entity-service-client:0.1.23") implementation("org.hypertrace.core.serviceframework:platform-metrics:0.1.18") diff --git a/hypertrace-trace-enricher/hypertrace-trace-enricher/build.gradle.kts b/hypertrace-trace-enricher/hypertrace-trace-enricher/build.gradle.kts index 637911acb..6fa814cd7 100644 --- a/hypertrace-trace-enricher/hypertrace-trace-enricher/build.gradle.kts +++ b/hypertrace-trace-enricher/hypertrace-trace-enricher/build.gradle.kts @@ -46,7 +46,7 @@ dependencies { } implementation(project(":hypertrace-trace-enricher:hypertrace-trace-enricher-impl")) - implementation("org.hypertrace.core.datamodel:data-model:0.1.9") + implementation("org.hypertrace.core.datamodel:data-model:0.1.12") implementation("org.hypertrace.core.flinkutils:flink-utils:0.1.6") implementation("org.hypertrace.core.serviceframework:platform-service-framework:0.1.18") implementation("org.hypertrace.entity.service:entity-service-client:0.1.23") diff --git a/hypertrace-trace-enricher/hypertrace-trace-visualizer/build.gradle.kts b/hypertrace-trace-enricher/hypertrace-trace-visualizer/build.gradle.kts index abd4634d8..9dc2d51c4 100644 --- a/hypertrace-trace-enricher/hypertrace-trace-visualizer/build.gradle.kts +++ b/hypertrace-trace-enricher/hypertrace-trace-visualizer/build.gradle.kts @@ -3,7 +3,7 @@ plugins { } dependencies { - implementation("org.hypertrace.core.datamodel:data-model:0.1.9") + implementation("org.hypertrace.core.datamodel:data-model:0.1.12") implementation("org.json:json:20201115") implementation("org.apache.commons:commons-lang3:3.11") diff --git a/hypertrace-trace-enricher/trace-reader/build.gradle.kts b/hypertrace-trace-enricher/trace-reader/build.gradle.kts index 203d991b4..24c5530df 100644 --- a/hypertrace-trace-enricher/trace-reader/build.gradle.kts +++ b/hypertrace-trace-enricher/trace-reader/build.gradle.kts @@ -6,7 +6,7 @@ plugins { } dependencies { - implementation("org.hypertrace.core.datamodel:data-model:0.1.9") + implementation("org.hypertrace.core.datamodel:data-model:0.1.12") implementation("org.hypertrace.core.attribute.service:attribute-service-api:0.8.7") implementation("org.hypertrace.core.attribute.service:caching-attribute-service-client:0.8.7") implementation("org.hypertrace.core.attribute.service:attribute-projection-registry:0.8.7") diff --git a/hypertrace-view-generator/hypertrace-view-generator/build.gradle.kts b/hypertrace-view-generator/hypertrace-view-generator/build.gradle.kts index 67125ce21..dd7b38697 100644 --- a/hypertrace-view-generator/hypertrace-view-generator/build.gradle.kts +++ b/hypertrace-view-generator/hypertrace-view-generator/build.gradle.kts @@ -32,7 +32,7 @@ dependencies { // TODO: migrate in core implementation("org.hypertrace.core.viewgenerator:view-generator-framework:0.1.19") - implementation("org.hypertrace.core.datamodel:data-model:0.1.10") + implementation("org.hypertrace.core.datamodel:data-model:0.1.12") implementation("org.hypertrace.core.serviceframework:platform-metrics:0.1.18") implementation("org.hypertrace.entity.service:entity-service-api:0.1.21") diff --git a/raw-spans-grouper/raw-spans-grouper/build.gradle.kts b/raw-spans-grouper/raw-spans-grouper/build.gradle.kts index 489673c89..8cbac67c8 100644 --- a/raw-spans-grouper/raw-spans-grouper/build.gradle.kts +++ b/raw-spans-grouper/raw-spans-grouper/build.gradle.kts @@ -35,7 +35,7 @@ tasks.test { dependencies { implementation(project(":span-normalizer:span-normalizer-api")) - implementation("org.hypertrace.core.datamodel:data-model:0.1.10") + implementation("org.hypertrace.core.datamodel:data-model:0.1.12") implementation("org.hypertrace.core.serviceframework:platform-service-framework:0.1.18") implementation("org.hypertrace.core.serviceframework:platform-metrics:0.1.18") diff --git a/semantic-convention-utils/build.gradle.kts b/semantic-convention-utils/build.gradle.kts index cf943db6d..37037f599 100644 --- a/semantic-convention-utils/build.gradle.kts +++ b/semantic-convention-utils/build.gradle.kts @@ -11,7 +11,7 @@ dependencies { implementation(project(":span-normalizer:raw-span-constants")) implementation(project(":span-normalizer:span-normalizer-constants")) - implementation("org.hypertrace.core.datamodel:data-model:0.1.9") + implementation("org.hypertrace.core.datamodel:data-model:0.1.12") implementation("org.hypertrace.entity.service:entity-service-client:0.1.23") implementation("org.apache.commons:commons-lang3:3.11") diff --git a/span-normalizer/span-normalizer/build.gradle.kts b/span-normalizer/span-normalizer/build.gradle.kts index b807d87f7..60ccf0197 100644 --- a/span-normalizer/span-normalizer/build.gradle.kts +++ b/span-normalizer/span-normalizer/build.gradle.kts @@ -40,7 +40,7 @@ dependencies { implementation(project(":span-normalizer:span-normalizer-constants")) implementation(project(":semantic-convention-utils")) - implementation("org.hypertrace.core.datamodel:data-model:0.1.10") + implementation("org.hypertrace.core.datamodel:data-model:0.1.12") implementation("org.hypertrace.core.serviceframework:platform-service-framework:0.1.18") implementation("org.hypertrace.core.serviceframework:platform-metrics:0.1.18") implementation("org.hypertrace.core.kafkastreams.framework:kafka-streams-framework:0.1.13") From 09536dbb5a9c24aa4bd55defa764c105c571d480 Mon Sep 17 00:00:00 2001 From: Buchi Reddy Busi Reddy Date: Mon, 14 Dec 2020 00:26:54 -0800 Subject: [PATCH 3/3] Upgrading avro version. --- .../hypertrace-view-generator-api/build.gradle.kts | 2 +- .../hypertrace-view-generator/build.gradle.kts | 2 +- span-normalizer/span-normalizer-api/build.gradle.kts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/hypertrace-view-generator/hypertrace-view-generator-api/build.gradle.kts b/hypertrace-view-generator/hypertrace-view-generator-api/build.gradle.kts index 07979fd0d..9c9ec5db5 100644 --- a/hypertrace-view-generator/hypertrace-view-generator-api/build.gradle.kts +++ b/hypertrace-view-generator/hypertrace-view-generator-api/build.gradle.kts @@ -12,6 +12,6 @@ sourceSets { } dependencies { - api( "org.apache.avro:avro:1.9.2") + api( "org.apache.avro:avro:1.10.1") } diff --git a/hypertrace-view-generator/hypertrace-view-generator/build.gradle.kts b/hypertrace-view-generator/hypertrace-view-generator/build.gradle.kts index dd7b38697..ef29ce1a8 100644 --- a/hypertrace-view-generator/hypertrace-view-generator/build.gradle.kts +++ b/hypertrace-view-generator/hypertrace-view-generator/build.gradle.kts @@ -37,7 +37,7 @@ dependencies { implementation("org.hypertrace.entity.service:entity-service-api:0.1.21") - implementation("org.apache.avro:avro:1.9.2") + implementation("org.apache.avro:avro:1.10.1") implementation("org.apache.commons:commons-lang3:3.11") testImplementation("org.junit.jupiter:junit-jupiter:5.7.0") diff --git a/span-normalizer/span-normalizer-api/build.gradle.kts b/span-normalizer/span-normalizer-api/build.gradle.kts index 992e65089..2c3da6504 100644 --- a/span-normalizer/span-normalizer-api/build.gradle.kts +++ b/span-normalizer/span-normalizer-api/build.gradle.kts @@ -52,5 +52,5 @@ sourceSets { } dependencies { api("com.google.api.grpc:proto-google-common-protos:1.12.0") - api( "org.apache.avro:avro:1.9.2") + api( "org.apache.avro:avro:1.10.1") }