Bound OkHttp sender dispatchers and surface rejections#8422
Bound OkHttp sender dispatchers and surface rejections#8422ADITYA-CODE-SOURCE wants to merge 2 commits into
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #8422 +/- ##
============================================
+ Coverage 90.83% 91.13% +0.30%
+ Complexity 7927 7763 -164
============================================
Files 895 881 -14
Lines 23872 23419 -453
Branches 2378 2331 -47
============================================
- Hits 21683 21344 -339
+ Misses 1446 1380 -66
+ Partials 743 695 -48 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
| new ThreadPoolExecutor( | ||
| 0, | ||
| Integer.MAX_VALUE, | ||
| DEFAULT_MAX_REQUESTS, |
There was a problem hiding this comment.
Let's sync this with JdkHttpSender:
| public static Dispatcher newDispatcher(ExecutorService executorService) { | ||
| Dispatcher dispatcher = new Dispatcher(executorService); | ||
| dispatcher.setMaxRequests(DEFAULT_MAX_REQUESTS); | ||
| dispatcher.setMaxRequestsPerHost(DEFAULT_MAX_REQUESTS_PER_HOST); |
There was a problem hiding this comment.
What's the motivation here given that these are already the defaults for new Dispatcher? Is the goal to just make them explicit and visible?
jack-berg
left a comment
There was a problem hiding this comment.
Couple of nits, but looks good. Thanks!
|
@jack-berg Thanks I pushed the follow-up changes to align the managed dispatcher bound with JdkHttpSender and removed the explicit default Dispatcher settings for custom executors. I also re-ran the focused okhttp sender tests and spotlessCheck |
Fix#8316.
Why
Integer.MAX_VALUEmax threads.What
maxRequestsboundRejectedExecutionExceptionfromenqueue(...)in both HTTP and gRPC sendersTesting
./gradlew --no-daemon --max-workers=1 -Dorg.gradle.jvmargs="-Xmx512m -XX:MaxMetaspaceSize=192m" :exporters:sender:okhttp:spotlessCheck./gradlew --no-daemon --max-workers=1 -Dorg.gradle.jvmargs="-Xmx768m -XX:MaxMetaspaceSize=256m" :exporters:sender:okhttp:test --tests io.opentelemetry.exporter.sender.okhttp.internal.OkHttpUtilTest --tests io.opentelemetry.exporter.sender.okhttp.internal.OkHttpHttpSenderTest --tests io.opentelemetry.exporter.sender.okhttp.internal.OkHttpGrpcSenderTest(fails locally on this Windows machine because Gradle worker JVMs hit paging-file / native memory limits before the module finishes compiling; pushing to CI for full verification)