-
Notifications
You must be signed in to change notification settings - Fork 16
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
Downsampling based on MaxResolutionWindow #68
Conversation
I think this also needs to return the chunks in the right bucket, see Line 545 in 89216b3
and https://github.com/thanos-io/thanos/blob/master/pkg/store/storepb/types.proto#L41 |
Oh, half-a-job Simon, will take a look this eve. |
Ugh, so this now gets mucky and there are two solutions. The challenge is working out what bucket we need to put each resulting time series into. IF OpenTSDB supported sending in query ids with sub-queries which we could then reference on response then we could maintain a mapping of id to requested aggregate and then unpack accordingly, BUT it doesn't. So, there are now two options, both of which rely on using the show_query parameter on the query API, for which I've added support in our OpenTSDB client in a new PR (G-Research/opentsdb-goclient#12)
I'm plumping for option 1 for now as we can always switch later. |
@dgl PTAL |
return store, nil | ||
} | ||
|
||
func (store *OpenTSDBStore) populateMaps() error { |
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.
Given this is not dependent on external data I'd consider just doing this once in init, then the code doesn't have to pass errors around (just panic, as it will run on startup).
The rationale for not doing so was to make the code easily reusable in
tests, without forcing tests to use the same init.
…On Mon, 16 Dec 2019 at 10:31, David Leadbeater ***@***.***> wrote:
***@***.**** approved this pull request.
------------------------------
In pkg/store/store.go
<#68 (comment)>:
> store.updateMetrics(context.Background(), logger)
- return store
+ return store, nil
+}
+
+func (store *OpenTSDBStore) populateMaps() error {
Given this is not dependent on external data I'd consider just doing this
once in init, then the code doesn't have to pass errors around (just panic,
as it will run on startup).
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#68?email_source=notifications&email_token=AAMTFG6SEISBUMIW5KOTEPLQY5KI7A5CNFSM4JYJKQG2YY3PNVWWK3TUL52HS4DFWFIHK3DMKJSXC5LFON2FEZLWNFSXPKTDN5WW2ZLOORPWSZGOCPIRQYQ#pullrequestreview-332470370>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAMTFG5B5BJ52UTJFJAFUDDQY5KI7ANCNFSM4JYJKQGQ>
.
|
You don’t have to force anything, simply |
What is this magic?
…On Tue, 17 Dec 2019, 09:35 David Leadbeater, ***@***.***> wrote:
You don’t have to force anything, simply func init in a file will get run
for you.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#68?email_source=notifications&email_token=AAMTFGYAKZISVF2LBKOGIALQZCMNFA5CNFSM4JYJKQG2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEHBYEAI#issuecomment-566460929>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAMTFG6UHFUYNPUHN264FEDQZCMNFANCNFSM4JYJKQGQ>
.
|
I'm not convinced an |
Implementation as per comments in #31 - namely only implement where we've been given a non-zero MaxResolutionWindow