Docs

Observability Kit Integrations

Observability Kit records into a Micrometer registry, so it exports to any backend Micrometer and Spring Boot Actuator support.

Observability Kit doesn’t export anything itself. It records metrics into your application’s Micrometer MeterRegistry and emits tracing spans through the Micrometer Observation API. Getting that data into a backend is standard Micrometer and Spring Boot Actuator work — the same as for any Micrometer-instrumented application — so the kit reaches every backend those support.

This means there are two independent pipelines to wire up:

Metrics

Add a micrometer-registry-* dependency for your backend and expose it through Spring Boot Actuator. Some backends are scraped (Prometheus); others are pushed to (OTLP, Datadog, New Relic).

Traces

Add a Micrometer tracing bridge — for example OpenTelemetry (micrometer-tracing-bridge-otel) or Zipkin (micrometer-tracing-bridge-brave) — plus the matching exporter.

Because both pipelines are backend-agnostic, a vendor that speaks OpenTelemetry Protocol (OTLP) can receive both metrics and traces through a single OTLP endpoint, either natively or through an OpenTelemetry collector.

The following pages show vendor-specific setup:

Prometheus
Learn how to export Observability Kit metrics to Prometheus from a Vaadin application.
Grafana
Learn how to export Observability Kit metrics, traces, and logs to a Grafana stack.
Jaeger & Prometheus
Set up a local Jaeger and Prometheus stack to collect traces and metrics from Observability Kit.
Datadog
Learn how to export Observability Kit metrics and traces to Datadog.
New Relic
Learn how to export Observability Kit metrics and traces to New Relic over OTLP.

How Export Works

The kit is active as soon as it’s on the classpath; it starts recording into whatever MeterRegistry your application provides. Nothing is exported until you add and configure a registry backend.

For a Spring Boot application, the minimum for metrics is Actuator plus one registry:

Source code
pom.xml
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-registry-prometheus</artifactId>
</dependency>

For traces, add a tracing bridge and its exporter:

Source code
pom.xml
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-tracing-bridge-otel</artifactId>
</dependency>
<dependency>
    <groupId>io.opentelemetry</groupId>
    <artifactId>opentelemetry-exporter-otlp</artifactId>
</dependency>
Note
Service Identity
Set spring.application.name so every meter and span is tagged with a consistent service name. For OTLP backends, additional resource attributes can be set through management.opentelemetry.resource-attributes.*. This replaces the version 4 otel.service.name and otel.resource.attributes settings, which lived in the agent.
Note
Trace Sampling
Spring Boot samples only a fraction of traces by default (management.tracing.sampling.probability, 0.1). While testing an integration, set it to 1.0 so every request produces a span. Lower it again for production.

Local Development & Testing

For development-time testing on your own machine, use one of these setups:

  • Jaeger & Prometheus — Jaeger for traces and Prometheus for metrics. Both run stand-alone with no further dependencies. The downside is that logs aren’t included and data is viewed from two separate tools.

  • Grafana — a single tool for metrics, traces, and logs, backed by Prometheus, Tempo, and Loki.

Both are also production observability stacks; the pages describe the app-side configuration, which is the same in development and production.

JVM, Infrastructure, and Library Metrics

In version 4, the OpenTelemetry Java agent bundled instrumentation for JVM internals, connection pools, HTTP clients, and other libraries. Version 5 doesn’t — and doesn’t need to. Spring Boot Actuator and Micrometer’s standard binders already instrument the JVM, process, HTTP clients, data sources, and connection pools, and they export through the very same registry you configure here.

So a single registry backend receives the kit’s Vaadin meters, Micrometer’s infrastructure meters, and any custom meters you add, all together. See the Micrometer documentation for the available binders.

Updated