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 by extension
Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
@@ -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.

@tomwilkie

tomwilkie Jun 26, 2019
Member

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

This comment has been minimized.

@tomwilkie

tomwilkie Jun 26, 2019
Member

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

This comment has been minimized.

@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.

@brian-brazil

brian-brazil Jul 9, 2019
Contributor

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

This comment has been minimized.

@tomwilkie

tomwilkie Jul 11, 2019
Member

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

This comment has been minimized.

@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.

@brian-brazil

brian-brazil Jul 22, 2019
Contributor

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.

@brian-brazil

brian-brazil Jul 30, 2019
Contributor

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)