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

Add failure handling to ingest pipelines. #2896

Merged
merged 1 commit into from
Nov 13, 2019

Conversation

simitt
Copy link
Contributor

@simitt simitt commented Nov 13, 2019

Avoid unexpected infinite retries on pipeline failures due to internal callback handling, by defining failure handling on pipelines.

For the geoip pipeline the client.ip field will be removed on failure. The field has an ip mapping in Elasticsearch. Therefore ingesting the document in ES would fail, even if the pipeline error is ignored in case of a malformed IP address. Dropping the malformed field, ensures the document can be indexed. Information in client.ip is always duplicated from some other field, therefore no original information is lost. While there is some pre-processing in place to avoid malformed IP addresses, this is the only case that comes to my mind that could make the pipeline fail.

For the user_agent pipeline failures are simply ignored. The user_agent.original field is indexed as a keyword and therefore less susceptible to ingestion failure on malformed user_agent information, and the failure handling only ensures edge cases are covered and unexpected ingestion issues avoided.

closes #2880

Avoid unexpected infinite retries on pipeline failures due to internal
callback handling, by defining failure handling on pipelines.

closes elastic#2880
@codecov-io
Copy link

codecov-io commented Nov 13, 2019

Codecov Report

Merging #2896 into master will decrease coverage by 0.46%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #2896      +/-   ##
==========================================
- Coverage   79.73%   79.26%   -0.47%     
==========================================
  Files          89       83       -6     
  Lines        4830     4355     -475     
==========================================
- Hits         3851     3452     -399     
+ Misses        979      903      -76
Impacted Files Coverage Δ
beater/beater.go 69.66% <0%> (-8.35%) ⬇️
beater/config/config.go 76.66% <0%> (-5.1%) ⬇️
sourcemap/mapper.go 87.23% <0%> (-3.4%) ⬇️
model/stacktrace_frame.go 98.36% <0%> (-1.64%) ⬇️
beater/api/mux.go 71.96% <0%> (-0.01%) ⬇️
sourcemap/store.go
beater/config/rum.go
beater/config/mode.go
elasticsearch/client.go
sourcemap/es_store.go
... and 3 more

@simitt simitt added this to the 7.5 milestone Nov 13, 2019
@simitt simitt merged commit c21d3f8 into elastic:master Nov 13, 2019
simitt added a commit to simitt/apm-server that referenced this pull request Nov 13, 2019
Avoid unexpected infinite retries on pipeline failures due to internal
callback handling, by defining failure handling on pipelines.

closes elastic#2880
simitt added a commit to simitt/apm-server that referenced this pull request Nov 13, 2019
Avoid unexpected infinite retries on pipeline failures due to internal
callback handling, by defining failure handling on pipelines.

closes elastic#2880
simitt added a commit that referenced this pull request Nov 13, 2019
Avoid unexpected infinite retries on pipeline failures due to internal
callback handling, by defining failure handling on pipelines.

closes #2880
simitt added a commit that referenced this pull request Nov 13, 2019
Avoid unexpected infinite retries on pipeline failures due to internal
callback handling, by defining failure handling on pipelines.

closes #2880
@simitt simitt deleted the 2880-pipeline-failure-handling branch February 10, 2020 17:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Ensure pipeline errors do not cause infinite ingest retries
3 participants