Skip to content
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

remote-read: streamed chunked server side; Extended protobuf; Added chunked, checksumed reader #5703

Merged
merged 20 commits into from Aug 19, 2019
Merged
Changes from all commits
Commits
File filter...
Filter file types
Jump to…
Jump to file or symbol
Failed to load files and symbols.

Always

Just for now

@@ -213,12 +213,15 @@ func main() {
a.Flag("storage.remote.flush-deadline", "How long to wait flushing sample on shutdown or config reload.").
Default("1m").PlaceHolder("<duration>").SetValue(&cfg.RemoteFlushDeadline)

a.Flag("storage.remote.read-sample-limit", "Maximum overall number of samples to return via the remote read interface, in a single query. 0 means no limit.").
a.Flag("storage.remote.read-sample-limit", "Maximum overall number of samples to return via the remote read interface, in a single query. 0 means no limit. This limit is ignored for streamed response types.").
Default("5e7").IntVar(&cfg.web.RemoteReadSampleLimit)

a.Flag("storage.remote.read-concurrent-limit", "Maximum number of concurrent remote read calls. 0 means no limit.").
Default("10").IntVar(&cfg.web.RemoteReadConcurrencyLimit)

a.Flag("storage.remote.read-max-bytes-in-frame", "Maximum number of bytes in a single frame for streaming remote read response types before marshalling. Note that client might have limit on frame size as well. 1MB as recommended by protobuf by default.").
Default("1048576").IntVar(&cfg.web.RemoteReadBytesInFrame)

This conversation was marked as resolved by brian-brazil

This comment has been minimized.

Copy link
@tomwilkie

tomwilkie Jun 26, 2019

Member

What happens when a single series has more than chunks than this?

This comment has been minimized.

Copy link
@tomwilkie

tomwilkie Jun 26, 2019

Member

I actually don't see where this is enforced...

This comment has been minimized.

Copy link
@bwplotka

bwplotka Jul 3, 2019

Author Member

wait. I think there is misunderstanding. This is not a limit. It's essentially control on how much you want to buffer / how large frames are.

You can have many frames per series. How we can make it more clear here?

This comment has been minimized.

Copy link
@brian-brazil

brian-brazil Jul 9, 2019

Member

How about specifying this in bytes, so it works across future types?

This comment has been minimized.

Copy link
@tomwilkie

tomwilkie Jul 11, 2019

Member

@bwplotka yup, I misunderstood. I see how this works now. Thanks.

This comment has been minimized.

Copy link
@bwplotka

bwplotka Jul 16, 2019

Author Member

Should we do it by bytes then? storage.remote.read-max-bytes-in-frame

I think we might be able to calculate on the stream side, but it might be bit brittle and complex to implement.

This comment has been minimized.

Copy link
@brian-brazil

brian-brazil Jul 22, 2019

Member

We'd only need something that's good enough. The idea is more to stop massive frames, than to get it within the byte.

This comment has been minimized.

Copy link
@brian-brazil

brian-brazil Jul 30, 2019

Member

I still think we should either do this in bytes, or just leave it hardcoded.

a.Flag("rules.alert.for-outage-tolerance", "Max time to tolerate prometheus outage for restoring \"for\" state of alert.").
Default("1h").SetValue(&cfg.outageTolerance)

ProTip! Use n and p to navigate between commits in a pull request.
You can’t perform that action at this time.