-
Notifications
You must be signed in to change notification settings - Fork 525
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
Introduce direct agent configuration #5018
Comments
I like that idea but I'd suggest treating that as an enhancement and not couple it to the initial implementation. This also assures we're backward compatible with older agents. All agents will need to add an To show the count of agents that have successfully applied the config, Kibana could query for the unique count of |
Since that problem needs a solution either way, what other benefits / drawbacks this approach has in your opinion? |
Yes, I think that's a good call @felixbarny. This shouldn't be too hard. APM Server can index a document (not sure what kind, maybe
@jalvz these are the main ones that come to mind:
|
great, thanks @axw |
I think that @axw's proposal also allowed to move the agent config to the Fleet app instead of the APM app, if we decide this is where it should live long term. The APM Server would just always receive the config values from the Fleet configuration. |
When adding The problem with allowing to configure options from within the APM and the Fleet app are triggered by the |
As part of the move to Fleet we will need to move away from fetching agent config directly from Kibana, as the privileges APM Server is given do not cover this. Instead, agent config will be pushed down to APM Server via the server's policy.
In order to make the above possible, we will add configuration to APM Server to directly specify agent config. This will include the criteria, config settings, and an optional Etag value. For example:
If the "etag" property is not set for a config block, the server will compute one by hashing the settings. The property is configurable so that Kibana can inject a value. When creating/updating agent config in Kibana, it will take responsibility for calculating an Etag value and injecting it into the server config; Kibana will later use this for identifying whether config has been applied (more below).
Configuring a list of agent config will disable fetching agent config from Kibana.
Currently when APM Server queries Kibana for agent config, Kibana will mark config as having been applied when the provided Etag is found to be current. As we will no longer be communicating with Kibana, we'll need to write documents to Elasticsearch instead. The server will track whether in a config query from an agent, the agent supplies the current Etag (If-None-Match) for the config block that matches its criteria. When this is first true, the server will index a document including the Etag value indicating that the config has been applied.
Alternatively, we could have agents periodically send an internal agent statistics event which includes the current config Etag value. This would have the benefit of enabling us to see how many and which agents have applied the config.
The text was updated successfully, but these errors were encountered: