elastic / elastic-agent-inputs Goto Github PK
View Code? Open in Web Editor NEWLicense: Other
License: Other
Document how run and test inputs.
Make sure to include:
The goal is to make sure we can run unit tests with our automation and that they are run on CI/PRs
Acceptance criteria:
Create the load generation integration and have it released at least as a snapshot package.
The goal is to be able to run under Elastic-Agent and communicate with it to receive config and send status. Only the bare bones of the connection/communication needs to be implemented.
Acceptance criteria:
The goal is to implement the core functionality of a load generator to test the shipper and be the firs implemented input.
Nice to have:
The goal is to make sure the Elastic-Agent can fully control an input, the load generation input is going to be the first one.
Acceptance criteria:
The goal of this task is to provide a suite for testing inputs to validate that it can be controlled by Elastic Agent and can forward events to the shipper. The test suite should rely on the testing
package of Golant.
Update Go version to 1.18.x (the latest at the time of implementation).
Acceptance criteria:
To support developers who are creating Go based inputs we should create a code generator.
The goal of the issue is to prepare a repository for developers to contribute to.
Elastic Inputs are binaries that are distributed with and controlled by Elastic Agent. As the name implies they collect data from and on endpoints where they are deployed.
The goal of this project is to design a developer friendly inputs platform. The system should help people to write new inputs and test them easily. This ticket lists the requirements and defines the different development phases.
You can read about the motivation in the design document below.
The goal of the first phase is to lay the foundation for the new developer tooling by developing the first new agent input. The first input developed will be the agent load generator described in elastic/elastic-agent-shipper#57. Developing a completely new input will allow this phase to focus on the basic input structure, developer tooling, and release process.
TBD.
Packaging is done with mage. Every binary is crossbuilt in a Docker container. Then the resulting binaries and generated files are moved to a common folder.
A package contains inputs in separate binaries with their manifest files.
$ tar tvf elastic-agent-inputs-linux-arm64.tar.gz
inputs/
filestream/
filestream
manifest.yml
journald/
journald
manifest.yml
...
If someone wants to create their own inputs package, it must follow the pattern above. Then this package has to be extracted into the folder where Agent can find it.
inputs/
{input_name}/
{input_name}
manifest.yml
The packages could be installed manually by moving the inputs to the appropriate folder. However, we should also provide DEB, RPM and other packages that can be installed along with Elastic Agent.
More details here: elastic/elastic-agent#222
In this phase we focus on making input migration and development accessible to both internal and external developers. In this phase the filestream
and system metrics
inputs will be migrated to the new framework.
Phase III is going to be the first phase for moving real inputs to the new system. The inputs selected for this phase are easy to move because they already use the inputs v2 architecture. We could delegate/ask other teams to help with inputs under x-pack/filebeat.
This is the last phase of the development. I expect collaboration from all teams as our team does not have the bandwidth to migrate all existing inputs. In this phase the Data plane team should focus on supporting other developers by reviewing their work, adjusting documentation if needed, etc.
The goal is to have the few first integration tests as well as the infrastructure necessary to run them and implement new ones.
Acceptance criteria:
Connect to the Shipper and send data.
Acceptance criteria:
Currently this repository is lacking some of the configuration/automation other repositories like beats have. The goal is to bring this repository to the same standards.
Acceptance criteria
main
branch is protectedImplement status/error reporting following the V2 specification.
Acceptance criteria:
The goal is to be able to receive a configuration, parse, test, and use it. At the moment the focus is on reading a configuration YAML, but the implementation should be easily pluggable into the control protocol V2.
Acceptance criteria:
The newly created inputs must be packaged so Elastic Agent can run them. In the first round, it does not have to be perfect.
Related elastic/elastic-agent#222
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.