From 887c80078748fc60f88441d57fa6125d84c7d1d2 Mon Sep 17 00:00:00 2001 From: saxenakshitiz Date: Tue, 3 Aug 2021 14:30:53 +0530 Subject: [PATCH 1/2] Introducing mechanism to allow/disallow backend resolution in the implementing classes --- .../backend/AbstractBackendEntityEnricher.java | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/hypertrace-trace-enricher/hypertrace-trace-enricher-impl/src/main/java/org/hypertrace/traceenricher/enrichment/enrichers/backend/AbstractBackendEntityEnricher.java b/hypertrace-trace-enricher/hypertrace-trace-enricher-impl/src/main/java/org/hypertrace/traceenricher/enrichment/enrichers/backend/AbstractBackendEntityEnricher.java index 45cd07566..f25479640 100644 --- a/hypertrace-trace-enricher/hypertrace-trace-enricher-impl/src/main/java/org/hypertrace/traceenricher/enrichment/enrichers/backend/AbstractBackendEntityEnricher.java +++ b/hypertrace-trace-enricher/hypertrace-trace-enricher-impl/src/main/java/org/hypertrace/traceenricher/enrichment/enrichers/backend/AbstractBackendEntityEnricher.java @@ -94,7 +94,8 @@ public void enrichTrace(StructuredTrace trace) { .filter( event -> EnrichedSpanUtils.isExitSpan(event) - && SpanAttributeUtils.isLeafSpan(structuredTraceGraph, event)) + && SpanAttributeUtils.isLeafSpan(structuredTraceGraph, event) + && allowBackendResolution(structuredTraceGraph, event)) // resolve backend entity .map(event -> Pair.of(event, resolve(event, trace, structuredTraceGraph))) .filter(pair -> pair.getRight().isPresent()) @@ -107,6 +108,19 @@ public void enrichTrace(StructuredTrace trace) { } } + /** + * Method to check if backend resolution is allowed. This will enable any custom logic to be + * inserted in the implementing classes. + * + * @param structuredTraceGraph structured trace graph + * @param event leaf exit span + * @return true if backend resolution is allowed + */ + protected boolean allowBackendResolution(StructuredTraceGraph structuredTraceGraph, Event event) { + // by default allow the backend resolution to proceed + return true; + } + /** Checks if the candidateEntity is indeed a backend Entity */ private boolean isValidBackendEntity( StructuredTrace trace, Event backendSpan, BackendInfo candidateInfo) { From 9fb8794dd8a58edd7925c9f0603fb60a80b4381c Mon Sep 17 00:00:00 2001 From: saxenakshitiz Date: Tue, 3 Aug 2021 14:53:10 +0530 Subject: [PATCH 2/2] Address review comment --- .../enrichers/backend/AbstractBackendEntityEnricher.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hypertrace-trace-enricher/hypertrace-trace-enricher-impl/src/main/java/org/hypertrace/traceenricher/enrichment/enrichers/backend/AbstractBackendEntityEnricher.java b/hypertrace-trace-enricher/hypertrace-trace-enricher-impl/src/main/java/org/hypertrace/traceenricher/enrichment/enrichers/backend/AbstractBackendEntityEnricher.java index f25479640..878a022f7 100644 --- a/hypertrace-trace-enricher/hypertrace-trace-enricher-impl/src/main/java/org/hypertrace/traceenricher/enrichment/enrichers/backend/AbstractBackendEntityEnricher.java +++ b/hypertrace-trace-enricher/hypertrace-trace-enricher-impl/src/main/java/org/hypertrace/traceenricher/enrichment/enrichers/backend/AbstractBackendEntityEnricher.java @@ -95,7 +95,7 @@ public void enrichTrace(StructuredTrace trace) { event -> EnrichedSpanUtils.isExitSpan(event) && SpanAttributeUtils.isLeafSpan(structuredTraceGraph, event) - && allowBackendResolution(structuredTraceGraph, event)) + && canResolveBackend(structuredTraceGraph, event)) // resolve backend entity .map(event -> Pair.of(event, resolve(event, trace, structuredTraceGraph))) .filter(pair -> pair.getRight().isPresent()) @@ -109,14 +109,14 @@ && allowBackendResolution(structuredTraceGraph, event)) } /** - * Method to check if backend resolution is allowed. This will enable any custom logic to be + * Method to check if backend resolution should proceed. This will enable any custom logic to be * inserted in the implementing classes. * * @param structuredTraceGraph structured trace graph * @param event leaf exit span * @return true if backend resolution is allowed */ - protected boolean allowBackendResolution(StructuredTraceGraph structuredTraceGraph, Event event) { + protected boolean canResolveBackend(StructuredTraceGraph structuredTraceGraph, Event event) { // by default allow the backend resolution to proceed return true; }