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
GetStubStats
method to accept a context parameter, adding a timeout field to theNginxCollector
andNginxPlusCollector
structs, and updating theCollect
methods to use context with timeout.Context and Timeout Handling Enhancements:
client/nginx.go
: Modified theGetStubStats
method to accept acontext.Context
parameter, enabling more flexible request handling.collector/nginx.go
:context
andtime
imports to support context with timeout.timeout
field to theNginxCollector
struct and updated theNewNginxCollector
function to accept a timeout parameter.Collect
method to use a context with timeout for fetching stub stats.collector/nginx_plus.go
:time
import to support context with timeout.timeout
field to theNginxPlusCollector
struct and updated theNewNginxPlusCollector
function to accept a timeout parameter. [1] [2] [3] [4]Collect
method to use a context with timeout for fetching NGINX Plus stats.Code Cleanup:
exporter.go
:registerCollector
function signature and removed theTimeout
field from thehttp.Client
configuration. [1] [2] [3]Closes #858
Checklist
Before creating a PR, run through this checklist and mark each as complete.