diff --git a/metadata-service/graphql-servlet-impl/src/main/java/com/datahub/graphql/GraphQLController.java b/metadata-service/graphql-servlet-impl/src/main/java/com/datahub/graphql/GraphQLController.java index 2ab5e49673..e53e59b863 100644 --- a/metadata-service/graphql-servlet-impl/src/main/java/com/datahub/graphql/GraphQLController.java +++ b/metadata-service/graphql-servlet-impl/src/main/java/com/datahub/graphql/GraphQLController.java @@ -119,14 +119,15 @@ public class GraphQLController { true, authentication, _authorizerChain, systemOperationContext, query, variables); Span.current().setAttribute("actor.urn", context.getActorUrn()); + // operationName is an optional field only required if multiple operations are present + final String queryName = operationName != null ? operationName : context.getQueryName(); final String threadName = Thread.currentThread().getName(); - log.info( - "Processing request, operation: {}, actor urn: {}", operationName, context.getActorUrn()); + log.info("Processing request, operation: {}, actor urn: {}", queryName, context.getActorUrn()); log.debug("Query: {}, variables: {}", query, variables); return CompletableFuture.supplyAsync( () -> { - log.info("Executing operation {} for {}", operationName, threadName); + log.info("Executing operation {} for {}", queryName, threadName); /* * Execute GraphQL Query @@ -149,13 +150,12 @@ public class GraphQLController { try { long totalDuration = submitMetrics(executionResult); String executionTook = totalDuration > 0 ? " in " + totalDuration + " ms" : ""; - log.info("Executed operation {}" + executionTook, operationName); + log.info("Executed operation {}" + executionTook, queryName); // Remove tracing from response to reduce bulk, not used by the frontend executionResult.getExtensions().remove("tracing"); String responseBodyStr = new ObjectMapper().writeValueAsString(executionResult.toSpecification()); - log.info( - "Operation {} execution result size: {}", operationName, responseBodyStr.length()); + log.info("Operation {} execution result size: {}", queryName, responseBodyStr.length()); log.trace("Execution result: {}", responseBodyStr); return new ResponseEntity<>(responseBodyStr, HttpStatus.OK); } catch (IllegalArgumentException | JsonProcessingException e) { diff --git a/metadata-service/graphql-servlet-impl/src/main/java/com/datahub/graphql/SpringQueryContext.java b/metadata-service/graphql-servlet-impl/src/main/java/com/datahub/graphql/SpringQueryContext.java index b815563818..591e115887 100644 --- a/metadata-service/graphql-servlet-impl/src/main/java/com/datahub/graphql/SpringQueryContext.java +++ b/metadata-service/graphql-servlet-impl/src/main/java/com/datahub/graphql/SpringQueryContext.java @@ -17,6 +17,7 @@ public class SpringQueryContext implements QueryContext { private final boolean isAuthenticated; private final Authentication authentication; private final Authorizer authorizer; + @Getter private final String queryName; @Nonnull private final OperationContext operationContext; public SpringQueryContext( @@ -30,7 +31,7 @@ public class SpringQueryContext implements QueryContext { this.authentication = authentication; this.authorizer = authorizer; - String queryName = + this.queryName = new Parser() .parseDocument(jsonQuery).getDefinitions().stream() .filter(def -> def instanceof OperationDefinition)