Query Frontend Refactor: Metrics Query Range - #3584
Conversation
Signed-off-by: Joe Elliott <number101010@gmail.com>
Signed-off-by: Joe Elliott <number101010@gmail.com>
Signed-off-by: Joe Elliott <number101010@gmail.com>
Signed-off-by: Joe Elliott <number101010@gmail.com>
Signed-off-by: Joe Elliott <number101010@gmail.com>
Signed-off-by: Joe Elliott <number101010@gmail.com>
Signed-off-by: Joe Elliott <number101010@gmail.com>
Signed-off-by: Joe Elliott <number101010@gmail.com>
Signed-off-by: Joe Elliott <number101010@gmail.com>
Signed-off-by: Joe Elliott <number101010@gmail.com>
Signed-off-by: Joe Elliott <number101010@gmail.com>
Signed-off-by: Joe Elliott <number101010@gmail.com>
Signed-off-by: Joe Elliott <number101010@gmail.com>
| if samplingRate != nil { | ||
| fRate := samplingRate.(float64) | ||
|
|
||
| if fRate != 0.0 { |
There was a problem hiding this comment.
nit: can skip this when rate == 1.0. Maybe switch to fRate < 1.0 ?
There was a problem hiding this comment.
the 0.0 check is just a sanity check to prevent panics. fRate < 1.0 && fRate > 0.0. would there ever be a time we deflated metrics with the rate?
There was a problem hiding this comment.
No, the sampling rate will always be between 0 and 1 due to the check in the sharder: https://github.com/grafana/tempo/pull/3584/files#diff-85974350e62b77bee6b5d88d537e3946839ccb1bba5f6dc89450a1c5489b5d4fR364
There was a problem hiding this comment.
good catch. updated to the suggested condition
Signed-off-by: Joe Elliott <number101010@gmail.com>
Signed-off-by: Joe Elliott <number101010@gmail.com>
Signed-off-by: Joe Elliott <number101010@gmail.com>
Signed-off-by: Joe Elliott <number101010@gmail.com>
mdisibio
left a comment
There was a problem hiding this comment.
LGTM and nice work. I look forward to glorious streaming metrics panels!
I think in the future yes, but not required for this PR. Even after we make the next round of changes that brings the metrics read path much closer to the search read path, I still expect the minimum throughout and latency to be different.
Yeah open to another reshuffle if it makes sense. |
In #3584 we decided to count metrics queries as part of search slo. split metrics slo out of search because metrics are still experimental and should not share the SLO with search.
* things technically compile! Signed-off-by: Joe Elliott <number101010@gmail.com> * Succeed with no data Signed-off-by: Joe Elliott <number101010@gmail.com> * remove prom compat Signed-off-by: Joe Elliott <number101010@gmail.com> * Add tests for the metrics pipeline and fix Signed-off-by: Joe Elliott <number101010@gmail.com> * cleanup Signed-off-by: Joe Elliott <number101010@gmail.com> * restore sorting Signed-off-by: Joe Elliott <number101010@gmail.com> * removed unreferenced files Signed-off-by: Joe Elliott <number101010@gmail.com> * migrate to response interface Signed-off-by: Joe Elliott <number101010@gmail.com> * Sampling rate! Signed-off-by: Joe Elliott <number101010@gmail.com> * remove no-op Signed-off-by: Joe Elliott <number101010@gmail.com> * wip: add cli Signed-off-by: Joe Elliott <number101010@gmail.com> * QueryRange -> MetricsQueryRange Signed-off-by: Joe Elliott <number101010@gmail.com> * changelog and other cleanup Signed-off-by: Joe Elliott <number101010@gmail.com> * lint Signed-off-by: Joe Elliott <number101010@gmail.com> * lint + guardcode Signed-off-by: Joe Elliott <number101010@gmail.com> * change the way we're ignoring tests Signed-off-by: Joe Elliott <number101010@gmail.com> * clean up url parsing Signed-off-by: Joe Elliott <number101010@gmail.com> * fixed url parsing and add test Signed-off-by: Joe Elliott <number101010@gmail.com> * adjust sanity check Signed-off-by: Joe Elliott <number101010@gmail.com> --------- Signed-off-by: Joe Elliott <number101010@gmail.com>
In grafana#3584 we decided to count metrics queries as part of search slo. split metrics slo out of search because metrics are still experimental and should not share the SLO with search.
What this PR does:
Moves the final frontend endpoint (metrics query range) over to the new streaming pipeline. Note that the streaming is done in a naive fashion. We simply return whatever is available every 500ms. After this is integrated into a frontend we will revisit and determine what a good streaming pattern will be.
Open Questions
Other changes:
Which issue(s) this PR fixes:
Fixes #3413
Checklist
CHANGELOG.mdupdated - the order of entries should be[CHANGE],[FEATURE],[ENHANCEMENT],[BUGFIX]