-
Notifications
You must be signed in to change notification settings - Fork 528
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
Enforce max trace size on trace by id path #2935
Conversation
7b010ff
to
244e47e
Compare
Signed-off-by: Joe Elliott <[email protected]>
244e47e
to
7bd37ba
Compare
Signed-off-by: Joe Elliott <[email protected]>
Signed-off-by: Joe Elliott <[email protected]>
Signed-off-by: Joe Elliott <[email protected]>
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.
LGTM
Signed-off-by: Joe Elliott <[email protected]>
Signed-off-by: Joe Elliott <[email protected]>
Signed-off-by: Joe Elliott <[email protected]>
@mapno I have done a bit of restructuring:
500s from the queriers will be retried by the frontend. 400s will be piped up to the trace sharding layer and fail quickly. this is better, but still not perfect. making these changes makes me realize our query path needs an operational facelift. i intend to work on that next. |
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.
Coalescing the check into the combiner is nice. Left some comments.
Makefile
Outdated
@@ -160,7 +160,7 @@ lint: | |||
|
|||
.PHONY: docker-component # Not intended to be used directly | |||
docker-component: check-component exe | |||
docker build -t grafana/$(COMPONENT) --build-arg=TARGETARCH=$(GOARCH) -f ./cmd/$(COMPONENT)/Dockerfile . | |||
docker build -t grafana/$(COMPONENT) --load --build-arg=TARGETARCH=$(GOARCH) -f ./cmd/$(COMPONENT)/Dockerfile . |
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.
Do you know if the docker we use in Drone supports buildx
? Asking because --load
is an option only in buildx
, it's not supported in vanilla docker build
.
I spent a bit of time searching but didn't get a clear answer.
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.
i'm shocked this passed CI. a recent docker update forced buildx on me and i haven't been able to revert. i have to add this param to get docker to build to my local repo. good eyes. Will remove!
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.
I think that nothing in the GH CI triggers docker builds
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.
i think e2e tests do. don't they build a local grafana/tempo:latest
and then use that for the tests?
if maxTraceSizeBytes > 0 { | ||
estimatedSize := estimateMarshalledSizeFromTrace(tr) | ||
if estimatedSize > maxTraceSizeBytes { | ||
return nil, errors.Errorf("trace exceeds max size in the block. size: %d, max: %d", estimatedSize, maxTraceSizeBytes) | ||
} | ||
} | ||
|
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.
Size check in backendBlock
is missing in vParquet
and vParquet2
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.
i'm ok with this. we are purposefully not backporting all changes to all previous parquet versions for sanity.
Signed-off-by: Joe Elliott <[email protected]>
Fixes #2794. Enforces max trace size on the query path by checking it in 4 places:
Additional changes