Spring boot comes with micrometer which can now ship metrics to ElasticSearch. Currently we are using Spring Cloud Sleuth, Zipkin, Elastics Search for distributed tracing. Spring Cloud Sleuth covers lot of other spring projects and tracks very well than elastic apm.
Both micrometer and sleuth are very easy to extend to add a new gauge or a new trace such as async tasks,. As these solutions are maintained/supported by spring it covers all the use cases but i feel apm is lacking that.
Zipkin is very good with tracing more readable than what apm ui has to give.
Is there a reason we should add additional dependency, and use elastic apm which is kind of inferior to what other solution has to offer.
Micrometer lets us add gauges to add span/trace id to connect the trace with the metrics as well.
Support for metrics in Elastic APM is fairly new. Low-level system and process metrics were added in 6.6, at the beginning of the year. Work is underway to add runtime/language-specific metrics, e.g. see the Java agent metrics label in GitHub.
Could you elaborate on areas where you find the Elastic APM UI unreadable? We're always keen to hear actionable feedback.
From your choice of language, it seems like you're already quite happy with your current solution, and that you've made up your mind...
... so I ask, why do you want to be convinced? Are there some pain points with your current solution? Different solutions work differently; I think it's really best to frame these kinds of discussions in the context of the problems you're experiencing.
Do you already use Elasticsearch for centralised logging, or infrastructure monitoring? One of the major "selling points" of Elastic APM is its ability to integrate with, and move easily between, logging, infrastructure and application metrics, and uptime monitoring.