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 c911f70e8..d35814bea 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 @@ -122,6 +122,18 @@ protected boolean canResolveBackend(StructuredTraceGraph structuredTraceGraph, E return true; } + /** + * Method to check if backend uri is valid or not. This will enable any custom logic to be + * inserted in the implementing classes. + * + * @param backendURI backend URI information + * @return true if backend uri resolution is allowed + */ + protected boolean isValidBackendUri(String backendURI) { + // by default allow the backend uri to proceed + return true; + } + /** Checks if the candidateEntity is indeed a backend Entity */ private boolean isValidBackendEntity( StructuredTrace trace, Event backendSpan, BackendInfo candidateInfo) { @@ -311,8 +323,11 @@ public Optional resolve( } String backendUri = maybeBackendUri.get(); - final Builder entityBuilder = getEntityBuilder(trace, event, type, backendUri); + if (!isValidBackendUri(backendUri)) { + return Optional.empty(); + } + final Builder entityBuilder = getEntityBuilder(trace, event, type, backendUri); backendProvider.getEntityAttributes(event).forEach(entityBuilder::putAttributes); Map enrichedAttributes = new HashMap<>();