[APM] Agent configuration should support configs across all environment and/or services #44475
Labels
discuss
enhancement
New value added to drive a business result
Team:APM
All issues that need APM UI Team support
The current Central Configuration solution in APM UI is very simple. To create a configuration the user is required to specify a service name and an environment.
Problem
If a user has many services and want to apply the same config to all of them they have to create a separate config for each service/environment combination. So if they have 50 services and 3 environments they have to create 150 configurations - even if all of them are identical. Updating is just as problematic since they have to go through all 150 configurations.
Proposal
Instead of requiring the user to select a specific service and environment, they should have an "All" option for service name and environment. Selecting "All" for services will simply create a configuration with no service specified, and this will be returned to APM Server when it queries for configs, regardless of the service name it provides.
Specificity
This opens up the possibility of several configs matching a request from APM Server, and we have to create logic for which config to return.
Example: Three configs exists:
<All>
+ ProductionIf the APM Server requests configs for ServiceA + Production it will get Config 1.
If the APM Server requests configs for ServiceC + Production it will get Config 3.
If the APM Server requests configs for ServiceC + Development it will get nothing (404)
Breaking change
There is currently an option to select a "Not set" option for services without environment. I propose to remove the "Not set" option in light of the new "All" option. This will require the user user to either specify an environment or select "All".
It would simplify implementation if we don't have to retain backwards compatibility, and seeing agent configuration is still in beta I think this is acceptable.
The text was updated successfully, but these errors were encountered: