tracing: track query sent to prometheus via remote read api #2145
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.
This patch extends tracing to include a
prometheus.query
tag for queries against the prometheus remote read API (/api/v1/read
).Previously there wasn't much information about the call being made, since that API uses protobuf over POST bodies. Now there is a JSON encoding of the protobuf request body in the trace.
One potential downside of this change is that there is JSON encoding and allocation overhead on every request. I wasn't able to find an easy way to make those conditional (input very welcome).
I also moved
spanReqDo.Finish()
before the error handling. I believe we want to finish the span in any case -- though if leaving it open was intentional, I'm happy to change it back.Changes
prometheus.query
tag toquery_prometheus_request
spanVerification
I ran thanos locally with tracing configured for elastic APM and confirmed the addition of the
prometheus.query
tag. Example value: