-
Notifications
You must be signed in to change notification settings - Fork 987
Description
Describe the bug
Running JDBC instrumentation causing large running times for threads wanting to socket read from DB . This causes application threads wanting to read from DB to taken longer , causing thread pool (Tomcat) starvation. This appears to be some sort of overhead introduced by the JDBC instrumentation running.
Steps to reproduce
Use the JDBC instrumentation in Java OpenTelemery agent and observe load on DB CPU and also Write IOPs and application thread running times
What did you expect to see?
The service runs as normal without any potential issues causing DB CPU to go up more than expected, or application threads (Tomcat) to start waiting more than often on socket read from DB.
What did you see instead?
The service started getting longer than running threads that read from DB, causing threadpool starvation in the web service.
What version and what artifacts are you using?
Artifacts: (opentelemetry-bom, opentelemetry-javaagent, opentelemetry-sdk , opentelemetry-api, zipkin exporter)
Version: (v1.21.0)
How did you reference these artifacts? (pom.xml)
Environment
Compiler: "Java 11 temurin11"
OS: "Debian 11.6"
Runtime (if different from JDK above):
OS (if different from OS compiled on):
Additional context
To confirm this, we found that the issue went away once we turned the JDBC instrumentation off.
The name of the instrumentation is otel.instrumentation.jdbc.enabled
which is set to false when running the JAR. This can also be confirmed here: https://opentelemetry.io/docs/instrumentation/java/automatic/agent-config/#suppressing-specific-agent-instrumentation