# Spring WebFlux

<!-- llms-txt-link: /llms.txt -->

> OpenTelemetry Java agent instrumentation

This instrumentation enriches HTTP server spans with route information for Spring WebFlux 5.0+. It also installs WebClient telemetry interceptors and enables controller spans (controller spans are disabled by default).

- **Name**: `spring-webflux-5.0`
- **Scope**: `io.opentelemetry.spring-webflux-5.0`
- **Target versions**: `io.projectreactor.ipc:reactor-netty:[0.7.0.RELEASE,)`, `io.projectreactor.netty:reactor-netty:[0.8.0.RELEASE,)`, `org.springframework:spring-webflux:[5.0.0.RELEASE,)`
- **Library**: https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/web/reactive/package-summary.html

## Telemetry

- **Metrics**: `http.client.request.duration`
- **Span attributes**: `error.type`, `http.request.method`, `http.response.status_code`, `peer.service`, `server.address`, `server.port`, `url.full`, `code.function`, `code.namespace`, `service.peer.name`

## Configuration

| Option | Type | Default | Description |
| --- | --- | --- | --- |
| `otel.instrumentation.common.experimental.controller-telemetry.enabled` | boolean | false | Enables the creation of experimental controller spans. |

## Data

- **JSON**: [/data/javaagent/instrumentations/spring-webflux-5.0/spring-webflux-5.0-97dcb75458ee.json](/data/javaagent/instrumentations/spring-webflux-5.0/spring-webflux-5.0-97dcb75458ee.json)
- **Explore**: [/java-agent/instrumentation/spring-webflux-5.0](/java-agent/instrumentation/spring-webflux-5.0)
