Skip to content

Better error messages when pipelines reference incompatible aggs#40068

Merged
polyfractal merged 7 commits intoelastic:masterfrom
polyfractal:better_pipeline_error_message
Apr 15, 2019
Merged

Better error messages when pipelines reference incompatible aggs#40068
polyfractal merged 7 commits intoelastic:masterfrom
polyfractal:better_pipeline_error_message

Conversation

@polyfractal
Copy link
Copy Markdown
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
Copy Markdown
Collaborator

Pinging @elastic/es-analytics-geo

Copy link
Copy Markdown
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
Copy Markdown
Contributor Author

<3

@polyfractal
Copy link
Copy Markdown
Contributor Author

@elasticmachine run elasticsearch-ci/packaging-sample please

@polyfractal polyfractal merged commit 2619d8f into elastic:master Apr 15, 2019
polyfractal pushed 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