-
Notifications
You must be signed in to change notification settings - Fork 4.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Spike: capture latency of build cache HTTP requests #29146
Conversation
dd888db
to
2895a8c
Compare
1b142b2
to
5827114
Compare
@bot-gradle test QFL please. |
I've triggered the following builds for you. Click here to see all build failures. |
public BuildOperationDescriptor.Builder description() { | ||
return BuildOperationDescriptor.displayName("HTTP " + request.getMethod() + " request for cache key " + key.getHashCode()); | ||
} | ||
}); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What kind of build operation is emitted in this case? Does it correlate somehow with load/store operation that's also emitted in this context
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Right now this is just an anonymous operation, but as mentioned in the description, we'll need to create a BuildOperationType
to be able to properly identify it in the scan plugin.
This build operation is nested within the relevant remote load / remote store build operation.
Closing this as the experiment is now concluded. |
Capture the latency of HTTP requests to the build cache as a new build operation.
Findings:
HttpBuildCacheService
, which uses Apache HttpClient 4.x.BasicHttpEntity
; this has an 8 KB buffer, which will be read as part of the captured build operation. For small cache artifacts this means that the entire artifact's download time would be part of the measured latency.If we want to use this approach, we need to introduce a new build operation type in
:enterprise-operations
. We'll need to reuse this same type in the Develocity HTTP cache client, too, and the scans plugin needs to handle this build operation going forward.Reviewing cheatsheet
Before merging the PR, comments starting with