This repository has been archived by the owner on Aug 2, 2022. It is now read-only.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Change Description
Background
Currently, we have an Amazon Lambda function which receives webhook events when a test job finishes in Buildkite, processes test metrics from that job, and sends those test metrics to our cloud tools.
Problem
Automation has observed log files in excess of 350 MB and XML files approaching 100 MB in size. Strings are immutable in JavaScript and node.js limits heap size to 512 MB by default, so parsing a 350 MB log file means that we can't even copy the string once during parsing without blowing our heap memory. We expect log file sizes to grow over time, and our infrastructure needs to function independent of Blockchain's log sizes.
Solution
This pull request takes the eosTestMetrics.js code from auto-events-subscribers that currently runs in an Amazon Lambda and runs it on an agent as part of the Buildkite job instead. This side-steps the problem by giving our test metrics and test diagnostics code access to lots of RAM and a very fast processor with a lot of cores. This will make our test metrics more reliable.
All of the code added in this pull request will be migrated to auto-buildkite-pipelines when we centralize the eos pipeline.
See auto-buildkite-pipelines pull request 100 for more information.
Universal Pipeline Configuration File
I also added the universal pipeline configuration file described in auto-buildkite-pipelines pull request 99.
Consensus Changes
None.
API Changes
None.
Documentation Additions
None.