Skip to content

Better error messages when pipelines reference incompatible aggs #40068

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

Merged
merged 7 commits into from
Apr 15, 2019

Conversation

polyfractal
Copy link
Contributor

This is basically a less-invasive reboot of #30152.

Pipeline aggs need a numeric value, or a single-valued agg to work properly. If they reference multi-valued aggs or anything else, they throw a rather cryptic error. This PR, like #30152, attempts to make the error nicer.

Unlike the previous attempt, this is much less invasive. It tries to see if the current problematic object is a MultiValue agg and then provides some helpful text. Otherwise, it throws an exception like before but now includes the aggregation name so the user can help determine which "level" of the path went bad.

Closes #25273

Pipelines require single-valued agg or a numeric to be returned.
If they don't get that, they throw an exception.  Unfortunately, this
exception text is very confusing to users because it usually arises
from pathing "through" multiple terms aggs.  The final target is a numeric,
but it's the intermediary aggs that cause the problem.

This commit adds the current agg name to the exception message
so the user knows which "level" is the issue.
@elasticmachine
Copy link
Collaborator

Pinging @elastic/es-analytics-geo

Copy link
Contributor

@iverase iverase left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@polyfractal
Copy link
Contributor Author

<3

@polyfractal
Copy link
Contributor Author

@elasticmachine run elasticsearch-ci/packaging-sample please

@polyfractal polyfractal merged commit 2619d8f into elastic:master Apr 15, 2019
polyfractal added a commit that referenced this pull request Apr 15, 2019
)

Pipelines require single-valued agg or a numeric to be returned.
If they don't get that, they throw an exception.  Unfortunately, this
exception text is very confusing to users because it usually arises
from pathing "through" multiple terms aggs.  The final target is a numeric,
but it's the intermediary aggs that cause the problem.

This commit adds the current agg name to the exception message
so the user knows which "level" is the issue.
gurkankaymak pushed a commit to gurkankaymak/elasticsearch that referenced this pull request May 27, 2019
…stic#40068)

Pipelines require single-valued agg or a numeric to be returned.
If they don't get that, they throw an exception.  Unfortunately, this
exception text is very confusing to users because it usually arises
from pathing "through" multiple terms aggs.  The final target is a numeric,
but it's the intermediary aggs that cause the problem.

This commit adds the current agg name to the exception message
so the user knows which "level" is the issue.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Sum bucket aggregation cannot sum more than one level deep
4 participants