Description
Hello, recently discovered that graphql-java
instrumentation was causing performance degradation on our applications, the reason, the instrumentation will create an span for every single field present in a graphQL operation, some operations could be really big, and most of those fields are resolving data that is already in memory, so having metrics for those spans doesn't make sense.
After disabling this integration we started to see an overall improvement in our applications,
here we can see that the performance improvement matches with disabling the graphql-java
integration.
We need to be very careful when creating spans, as the tracer agent will use application resources to store those objects, then serialize them and finally send them to the agent.
However, when we turned off the graphql-java
integration we lost spans for some useful spans, like parse, validate, execution so had to create a custom instrumentation to only create those.
It would be great if we can configure the tracer agent to create only certain spans for graphql-java