elastic / apm

Elastic Application Performance Monitoring - resources and general issue tracking for Elastic APM.
https://www.elastic.co/apm
Apache License 2.0
374 stars 111 forks source link

[APM] Remote agent configuration: Update flyouts to feature new config options #214

Closed formgeist closed 4 years ago

formgeist commented 4 years ago

Summary of the problem (If there are multiple problems or use cases, prioritize them)

Related to https://github.com/elastic/apm/issues/213 we will be introducing new config options to the remote agent configurations and we'll need to make some UX changes to enable the user to easily modify config options since they have increased a lot since our initial implementation.

elasticmachine commented 4 years ago

Pinging @elastic/observability-design (design)

formgeist commented 4 years ago

Design update, 26 Feb 2020

I've put together a quick video to demo the design exploration I've done in relation to adding more config options into the existing design and explored new designs that might enable a more scaleable solution going forward.

I've explored 3 design options and I'd like to hear your feedback, so please add your comments below or reach out via Slack.

🎥Design demo video

Design option; The Wizard 🧙‍♂️ 🎨Figma prototype of the "Wizard"

Step 1 (filled) Step 2

@elastic/apm-ui @nehaduggal

formgeist commented 4 years ago

Design update, 6 Mar 2020

We've been exploring some design changes to make the Create and Edit states more similar by joining together the service definition and config options in a two-panel solution, so that users will always have a good understanding of what specific configuration they're creating or editing. Beyond this a few changes to the Review configuration step.

Screenshot 2020-03-06 at 14 56 46

🎥Video design update walk-through 🎨Figma prototype

sorenlouv commented 4 years ago

@formgeist Do you have all the option descriptions in a text based format, so I can simply copy/paste them?

sorenlouv commented 4 years ago

@formgeist Did we decide on the grouping of options yet? Is the design to be followed in this regard or do we need to talk to agent developers first?

felixbarny commented 4 years ago

Looks really great ❤️

Would it also be possible to set the configuration for all java services at once? What would be the logic of merging different configurations that apply to the same service?

felixbarny commented 4 years ago

Do you have all the option descriptions in a text based format, so I can simply copy/paste them?

The descriptions are part of the option definition in the JSON: https://github.com/elastic/apm-agent-java/blob/bc3e647499820efd8c3bd93c94fec0edb0ab6394/apm-agent-core/src/main/resources/configuration.json

We have added some new options and made some existing ones dynamic in the meantime.

sorenlouv commented 4 years ago

What would be the logic of merging different configurations that apply to the same service?

We don't merge configurations yet. We were worried that it might be a usability nightmare, so right now only a single config i returned per agent request.

Would it also be possible to set the configuration for all java services at once?

You can target all services in general, or all services with a specifc environment but not all services with a particular agent. This is something we could add though. I think APM Server would have to include agent.name in the request (ping @jalvz ).

sorenlouv commented 4 years ago

The descriptions are part of the option definition in the JSON: https://github.com/elastic/apm-agent-java/blob/bc3e647499820efd8c3bd93c94fec0edb0ab6394/apm-agent-core/src/main/resources/configuration.json

Thank you!