[AWSFirehose] New ingest pipeline for firehose - #14691
Conversation
Signed-off-by: Andreas Gkizas <andreas.gkizas@elastic.co>
Signed-off-by: Andreas Gkizas <andreas.gkizas@elastic.co>
Signed-off-by: Andreas Gkizas <andreas.gkizas@elastic.co>
Signed-off-by: Andreas Gkizas <andreas.gkizas@elastic.co>
Signed-off-by: Andreas Gkizas <andreas.gkizas@elastic.co>
Signed-off-by: Andreas Gkizas <andreas.gkizas@elastic.co>
Signed-off-by: Andreas Gkizas <andreas.gkizas@elastic.co>
Signed-off-by: Andreas Gkizas <andreas.gkizas@elastic.co>
…nto firehose_pipeline
Signed-off-by: Andreas Gkizas <andreas.gkizas@elastic.co>
…nto firehose_pipeline
|
Some tests to verify improvement: For each pipeline I recreated the environment with: elastic-package stack down
elastic-package stack up -d --services=elasticsearch
$(elastic-package stack shellinit)
elastic-package benchmark pipeline --data-streams logs (repeated the command 4 times)With current pipeline from main❯ elastic-package benchmark pipeline --data-streams logs 2025/08/05 15:04:14 INFO New version is available - v0.113.0. Download from: https://github.com/elastic/elastic-package/releases/tag/v0.113.0 Run pipeline benchmarks for the package --- Benchmark results for package: awsfirehose - START --- ╭─────────────────────────╮ │ parameters │ ├──────────────────┬──────┤ │ source_doc_count │ 16 │ │ doc_count │ 1000 │ ╰──────────────────┴──────╯ ╭───────────────────────────╮ │ pipeline_performance │ ├─────────────────┬─────────┤ │ processing_time │ 0.22s │ │ eps │ 4608.29 │ ╰─────────────────┴─────────╯ ╭───────────────────────────────────╮ │ procs_by_total_time │ ├───────────────────────────┬───────┤ │ reroute @ default.yml:175 │ 0.46% │ │ reroute @ default.yml:167 │ 0.46% │ │ reroute @ default.yml:151 │ 0.46% │ │ reroute @ default.yml:143 │ 0.46% │ │ set @ default.yml:7 │ 0.46% │ ╰───────────────────────────┴───────╯ ╭─────────────────────────────────────╮ │ procs_by_avg_time_per_doc │ ├───────────────────────────┬─────────┤ │ reroute @ default.yml:175 │ 8.064µs │ │ reroute @ default.yml:143 │ 8.064µs │ │ reroute @ default.yml:167 │ 5.291µs │ │ reroute @ default.yml:151 │ 5.291µs │ │ set @ default.yml:7 │ 1µs │ ╰───────────────────────────┴─────────╯--- Benchmark results for package: awsfirehose - END --- --- Benchmark results for package: awsfirehose - END --- --- Benchmark results for package: awsfirehose - END --- With pipeline from this pr❯ elastic-package benchmark pipeline --data-streams logs --- Benchmark results for package: awsfirehose - END --- --- Benchmark results for package: awsfirehose - END --- --- Benchmark results for package: awsfirehose - END --- --- Benchmark results for package: awsfirehose - END --- The new pipeline with script has more eps in general but executes quicker (by 2ms small diff with the amount of docs we have). I am still trying to digest the results |
|
@jsoriano do you have any ideas/insights for the above numbers? Basically I would like to measure the CPU consumption of the pipeline, do we have any other way to do so? |
Not sure if I understand the question. eps are events per second, so faster executions (lower processing times) are having more eps, this would be expected. According to this data it looks like the new pipeline is faster. It may be surprising to find an script that is faster than its equivalent pipeline, but I guess this is caused by the many complex conditions the original pipeline has.
You could try to run other benchmarks, for example I think that rally benchmarks give more information. But for the pipeline itself the current data seems good enough. |
|
Thank you this is what I wanted to confirm: translating the increase of eps positively is a good sign or not or I was biased with the fix :) The script is actually faster because the if/else logic will stop consecutive checks when it finds the match. For rally I would review with the team and let you know |
Kavindu-Dodan
left a comment
There was a problem hiding this comment.
LGTM. And I agree with this remark https://github.com/elastic/integrations/pull/14691/files#r2254677562
Signed-off-by: Andreas Gkizas <andreas.gkizas@elastic.co>
Signed-off-by: Andreas Gkizas <andreas.gkizas@elastic.co>
Signed-off-by: Andreas Gkizas <andreas.gkizas@elastic.co>
Signed-off-by: Andreas Gkizas <andreas.gkizas@elastic.co>
|
@Kavindu-Dodan , @kaiyan-sheng one more review please as I added the doc update in order also to close #14676 I think it is overkill to open another pr for the above |
🚀 Benchmarks reportTo see the full report comment with |
💚 Build Succeeded
History
cc @gizas |
|
|
Looks good! Thank you! |
|
Second round for the enhancement: #14914 |
* new ingest pipeline Signed-off-by: Andreas Gkizas <andreas.gkizas@elastic.co> * fixing comments Signed-off-by: Andreas Gkizas <andreas.gkizas@elastic.co> * fixing script Signed-off-by: Andreas Gkizas <andreas.gkizas@elastic.co> * fixing script Signed-off-by: Andreas Gkizas <andreas.gkizas@elastic.co> * fixing script Signed-off-by: Andreas Gkizas <andreas.gkizas@elastic.co> * fixing script Signed-off-by: Andreas Gkizas <andreas.gkizas@elastic.co> * fixing script Signed-off-by: Andreas Gkizas <andreas.gkizas@elastic.co> * updating the ingest pipeline to make tests work Signed-off-by: Andreas Gkizas <andreas.gkizas@elastic.co> * fixing lint Signed-off-by: Andreas Gkizas <andreas.gkizas@elastic.co> * bumping version to 1.8.0 Signed-off-by: Andreas Gkizas <andreas.gkizas@elastic.co> * bumping version to 1.8.0 and adding docs Signed-off-by: Andreas Gkizas <andreas.gkizas@elastic.co> * bumping version to 1.8.0 and adding docs Signed-off-by: Andreas Gkizas <andreas.gkizas@elastic.co> --------- Signed-off-by: Andreas Gkizas <andreas.gkizas@elastic.co>




Proposed commit message
Checklist
changelog.ymlfile.How to test this PR locally
Follow instructions https://www.elastic.co/docs/extend/integrations/pipeline-testing
The final results: