Spring Boot starter

Java agent versus Spring Boot starter

You can use two options to instrument Spring Boot applications with OpenTelemetry.

  1. The default choice for instrumenting Spring Boot applications is the OpenTelemetry Java agent with bytecode instrumentation:
    • More out of the box instrumentation than the OpenTelemetry starter
  2. The OpenTelemetry Spring Boot starter can help you with:
    • Spring Boot Native image applications for which the OpenTelemetry Java agent does not work
    • Startup overhead of the OpenTelemetry Java agent exceeding your requirements
    • A Java monitoring agent already used because the OpenTelemetry Java agent might not work with the other agent
    • Spring Boot configuration files (application.properties, application.yml) to configure the OpenTelemetry Spring Boot starter which doesn’t work with the OpenTelemetry Java agent

Comparison to Micrometer

A question asked frequently is how Micrometer and the OpenTelemetry Spring Boot Starter differentiate. At a high level, the differences are as follows:

OpenTelemetry Spring Boot starter:

  • Natively uses the OpenTelemetry API, OpenTelemetry SDK, and the OpenTelemetry semantic conventions.
  • Supported by the OpenTelemetry community (governed by the CNCF / Linux Foundation).

Micrometer 12:

  • An independent standalone observability system.
  • Offers optional bridges into parts of the OpenTelemetry ecosystem.
  • Supported by the Micrometer community (governed by Broadcom Inc).

As the authors of the OpenTelemetry Spring Boot starter, we recommend using the OpenTelemetry Spring Boot starter. We have a great community behind it, and are continuously making improvements. If you try it out and have any problems or suggestions, open an issue in our repository.