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

Create tool for probing Agent's checkin / control protocol #3390

Open
faec opened this issue Sep 8, 2023 · 2 comments
Open

Create tool for probing Agent's checkin / control protocol #3390

faec opened this issue Sep 8, 2023 · 2 comments
Assignees
Labels
enhancement New feature or request Team:Elastic-Agent Label for the Agent team

Comments

@faec
Copy link
Contributor

faec commented Sep 8, 2023

A recurring difficulty in evolving Agent's control protocol, e.g. in issues like #2460, is that there is no definitive specification for Agent's behavior when interacting with a component. Current clients rely on heuristics and convention that have evolved through the interactions of several repositories. While this works in the ideal case, error conditions and unusual environments can produce unexpected behavior that is hard to troubleshoot or even detect. It is also an obstacle to creating new clients, since Beats (the biggest current Agent client) makes several unusual implementation choices to adapt its legacy codebase to run under Agent, and thus makes a poor model for new work to imitate.

This issue is to create a testing/debugging component that will run under Agent, and will allow simulation and logging of control protocol interactions with a variety of error states. For example, it should be straightforward to inject delays in the RPC responses, trigger error states in active units, or send checkin data with outdated config indices. It should also provide simple hooks to create custom scenarios.

The main uses of this tool are expected to be:

  • Enable Agent's control protocol to evolve towards a more definitive specification while preserving interoperability with past versions
  • Give Agent engineers a straightforward way to simulate unusual conditions encountered "in the wild" when investigating support cases or reported issues
  • Enable automated testing over a wider range of error conditions
@faec faec added enhancement New feature or request Team:Elastic-Agent Label for the Agent team labels Sep 8, 2023
@faec faec self-assigned this Sep 8, 2023
@elasticmachine
Copy link
Contributor

Pinging @elastic/elastic-agent (Team:Elastic-Agent)

@cmacknz
Copy link
Member

cmacknz commented Sep 8, 2023

Pulling this into the current sprint as the first step in solving github.com//issues/2460

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request Team:Elastic-Agent Label for the Agent team
Projects
None yet
Development

No branches or pull requests

3 participants