Disclaimer: I’m a maintainer of the Micrometer and Spring Cloud Sleuth projects.
I would be cautious about statements such as “de facto standard” (especially following the history of OpenTracing - e.g. Couchbase went all in on OT and now they created their own facade) or claims that it’s Micrometer that should fit in the said project, since Micrometer has been in the industry for longer.
Micrometer (since 2016) and its distributed tracing predecessor Spring Cloud Sleuth (since 2014) have been Generally Available (GA) for almost a decade. We haven’t been breaking compatibility with each release, we’re not releasing alpha versions, we’re releasing GA versions. We’re giving our users options to migrate to new versions gradually since we’re releasing a minor release every 6 months. Micrometer projects are widely used throughout the word by the developers and library maintainers.
Micrometer instruments projects either in the Micrometer codebase or directly in the projects’ codebases. Regardless, we update the code whenever the instrumented projects change over time. You don’t have to install any agents, it doesn’t rely on reflections so you won’t get any compatibility problems. It also works well with native images! In case instrumentation is difficult or impossible to be done, we work with the instrumented project to learn how the project could get instrumented properly and help the projects add additional hook points.
Micrometer Observation API allows you to instrument your code once and have multiple benefits out of it. Today you can have traces, metrics and logs but in the future you can plug in new signals. That won’t require your instrumentation code to change at all. New signals become a configuration problem. Same relates to naming conventions and tagging - you can configure these separately. If you have separate APIs for different signals you need to write the same code multiple times to do the instrumentation.
Micrometer, Micrometer Observation and Micrometer Tracing APIs provide facades that can be trusted, to our users. Micrometer is not going anywhere, it’s actively maintained! History taught us that even the de facto standards (like Netflix Hystrix) can become obsolete one day. So, even if today you’re using a tool that our API delegates to, you’ll be able to migrate away from that tool if it ever gets dropped. You’re safe with us! Also, you can use Micrometer Observation without Micrometer Tracing, in fact, as far as distributed tracing is concerned, you can even configure Micrometer to use your favorite tracing tool directly!
Micrometer Docs Generator contains very interesting features such as it can have your code scanned and produce documentation out of it. Example for Spring Cloud Task.
To sum it up: as you can see the Micrometer portfolio is stable, mature, is being developed actively, has a healthy community and has a broad feature set. It can work with various signals such as metrics, traces coming from different libraries including OpenTelemetry or Brave. Micrometer is vendor-neutral and supports various protocols (e.g. W3C, B3, OTLP, Prometheus etc.).