Skip to content

graphql java instrumentation impacting application throughput  #6706

Open
@samuelAndalon

Description

@samuelAndalon

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,
image

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions