elastic / kibana

Your window into the Elastic Stack
https://www.elastic.co/products/kibana
Other
19.64k stars 8.23k forks source link

[APM] Allow central config for nonexistent services #135853

Open graphaelli opened 2 years ago

graphaelli commented 2 years ago

Describe the feature:

The central configuration UI currently requires a service to have reported in to be configured centrally, presenting a drop down for selection in the UI:

image

A combo box with custom options, like the anomaly detection job creation seems like a good option:

image

I expect this requires the environment selector to also convert to free form.

Since the configuration page options depend on which agent is in use, I propose to show only the options that apply to all agents until the agent starts actually reporting in, as is done in the All services option, rather than prompting for an agent language, to keep this simple.

Describe a specific use case for the feature:

Allow configuration of an agent before a service starts ever starts reporting in. Per https://github.com/elastic/sdh-apm/issues/640 (internal issue), ELASTIC_APM_RECORDING= false while ELASTIC_APM_ENABLED=true is a subset of this case, where the agent is enabled but simply not reporting in yet.

elasticmachine commented 2 years ago

Pinging @elastic/apm-ui (Team:apm)

sorenlouv commented 2 years ago

Since the configuration page options depend on which agent is in use, I propose to show only the options that apply to all agents until the agent starts actually reporting in, as is done in the All services option, rather than prompting for an agent language, to keep this simple.

This sounds fine for phase 1. But we should follow-up with a less limiting approach where the user is either asked to specify the agent, or have a toggle to show all options regardless if they are supported by all agents or not.

This would also solve https://github.com/elastic/kibana/issues/135108:

My preferred option would be to allow setting every possible setting that exists for any possible agent and just have a warning in the description stating which agents support this setting. An alternative would be to have extra options like 'All Go services, All Java services,...'