Use timeout flag for context cancelation #868
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Proposed changes
This pull request introduces several changes to the NGINX Prometheus exporter to add context and timeout handling capabilities. The main updates include modifying the
GetStubStatsmethod to accept a context parameter, adding a timeout field to theNginxCollectorandNginxPlusCollectorstructs, and updating theCollectmethods to use context with timeout.Context and Timeout Handling Enhancements:
client/nginx.go: Modified theGetStubStatsmethod to accept acontext.Contextparameter, enabling more flexible request handling.collector/nginx.go:contextandtimeimports to support context with timeout.timeoutfield to theNginxCollectorstruct and updated theNewNginxCollectorfunction to accept a timeout parameter.Collectmethod to use a context with timeout for fetching stub stats.collector/nginx_plus.go:timeimport to support context with timeout.timeoutfield to theNginxPlusCollectorstruct and updated theNewNginxPlusCollectorfunction to accept a timeout parameter. [1] [2] [3] [4]Collectmethod to use a context with timeout for fetching NGINX Plus stats.Code Cleanup:
exporter.go:registerCollectorfunction signature and removed theTimeoutfield from thehttp.Clientconfiguration. [1] [2] [3]Closes #858
Checklist
Before creating a PR, run through this checklist and mark each as complete.