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

[Elastic Agent] Work todo for communication with new Fleet Server #23205

Closed
1 of 2 tasks
blakerouse opened this issue Dec 17, 2020 · 7 comments · Fixed by #26474
Closed
1 of 2 tasks

[Elastic Agent] Work todo for communication with new Fleet Server #23205

blakerouse opened this issue Dec 17, 2020 · 7 comments · Fixed by #26474
Assignees

Comments

@blakerouse
Copy link
Contributor

blakerouse commented Dec 17, 2020

Overview

Elastic Agent communication to the new elastic/fleet-server does require some changes to the Fleet gateway code. This is a minimal change that should allow Elastic Agent to communicate with either Kibana or a Fleet Server if done correctly.

Items to do

  • Save and send the check-in action token (this is now used to determine what actions the Agent has or has not received)
  • Add HTTP2 communication. Agent should now always try to use HTTP2 first, as this provides a performance benefit of having less TCP connections to Fleet Server.

Why

Reduce the TLS load and cloud already support HTTP2, this should be simple addition and it should degrade easily.

@elasticmachine
Copy link
Collaborator

Pinging @elastic/ingest-management (Team:Ingest Management)

@nchaulet
Copy link
Member

@blakerouse I think the agent should know how to talk both to Kibana and Fleet Server if we want to provide the best migration path possible, there is two options here:

  • Kibana could support the fleet server API for agent > 7.x
  • The agent could know if he is talking to Fleet Server or Kibana (I have a preference for this one, as we do not have a good API versioning strategy on Kibana)

@blakerouse
Copy link
Contributor Author

@nchaulet I think we can do that without Agent having to worry about which it is talking to.

If we do the following we can remove the need to adjust Agent:

  • If when communicating a checkin token is returned then Agent records it and sends it next time. If not its ignored and not sent next time.
  • Add the error field to /acks on kibana side (basically just to ignore acks with errors).
  • Agent fallsback from HTTP2 to HTTP/1.1 (standard golang stuff)

@ph ph added v7.14.0 and removed v7.12.0 labels Apr 27, 2021
@ph ph added Team:Elastic-Agent Label for the Agent team and removed Team:Ingest Management labels Apr 27, 2021
@elasticmachine
Copy link
Collaborator

Pinging @elastic/agent (Team:Agent)

@dikshachauhan-qasource
Copy link

Hi @EricDavisX

Cloud you please provide Acceptance criteria for same to validate the ticket.

Thanks
QAS

@EricDavisX
Copy link
Contributor

@ph @blakerouse I will pass the request on to you! If you wish to cite AC we can test against along with notes on which parts are already covered in Unit or e2e tests that would be nice.

@ph
Copy link
Contributor

ph commented Jun 22, 2021

@blakerouse I know we have discussed this together, wdyt if @michel-laterman take it over?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

7 participants