-
Notifications
You must be signed in to change notification settings - Fork 8.1k
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
[APM] Agent configuration should indicate whether it was applied remotely or not #43354
Comments
Pinging @elastic/apm-ui |
Would |
Talking to @jalvz we ended up with not having a timestamp, and just having a boolean flag on each configuration that indicates whether said configuration was applied or not. |
I think from a design perspective all we need is to show the status for each configuration (one for each row in the table). We can use the EUI health component: |
is this done? |
Fixed in: #46995 |
Currently a user cannot determine if a configuration was successfully applied on an agent or not. They might also want to know how many of their agents have the latest config, and how many are still on an older (perhaps local) config.
The problem of stable agent ids
The initial discussions stalled because agents doesn't have a concept of persistent ids (that are stable across restarts). This means that given two status reports with the first saying config was not applied and the second saying the config was applied we cannot determine if there is one agent that had a problem, restarted and then successfully applied the config; or if there are two agents where one couldn't apply the config and the other could.
Simplification
If we cut some corners we might not need stable agent ids initially. Instead of the UI displaying exactly which agents have the most recent configuration, we will be able to display whether a configuration was applied or not. This will not tell the user whether their entire fleet was updated, but at least they know that a non-zero amount of agents have been updated.
Implementation
APM Server queries elasticsearch for configurations via Kibana on behalf of agents. Agents already send the id of the currently applied configuration as etag. The etag (configuration id) is currently created in APM Server but going forward it should be created in Kibana. The etag can either be a hash of the configuration contents, or simply a randomly generated uuid. The important thing is that it changes every time the config changes.
Whenever Kibana receives an etag it will find the matching configuration and set the
applied
field totrue
to indicate that the config has been applied.TODO
etag
to configuration and update it every time the configuration changesapplied
to configuration which is initiallyfalse
(Migration? https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html)applied
totrue
whenever APM Server queries for a config and the config matches the etag sent by APM Serverapplied
tofalse
whenever configuration changesThe text was updated successfully, but these errors were encountered: