# R2DBC

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

> OpenTelemetry Java agent instrumentation

This instrumentation enables database client spans and database client metrics for R2DBC (Reactive Relational Database Connectivity).

- **Name**: `r2dbc-1.0`
- **Scope**: `io.opentelemetry.r2dbc-1.0`
- **Target versions**: `io.r2dbc:r2dbc-spi:[0.9.0.RELEASE,)`
- **Library**: https://r2dbc.io/

## Telemetry

- **Metrics**: `db.client.operation.duration`
- **Span attributes**: `db.connection_string`, `db.name`, `db.operation`, `db.sql.table`, `db.statement`, `db.system`, `db.user`, `peer.service`, `server.address`, `server.port`, `db.namespace`, `db.operation.batch.size`, `db.query.summary`, `db.query.text`, `db.system.name`, `error.type`, `service.peer.name`

## Configuration

| Option | Type | Default | Description |
| --- | --- | --- | --- |
| `otel.instrumentation.common.db.query-sanitization.enabled` | boolean | true | Enables query sanitization for database queries. |
| `otel.instrumentation.common.peer-service-mapping` | map |  | Used to specify a mapping from host names or IP addresses to peer services. |
| `otel.instrumentation.r2dbc.experimental.sqlcommenter.enabled` | boolean | false | Enables augmenting queries with a comment containing the tracing information. See [sqlcommenter](https://google.github.io/sqlcommenter/) for more info. WARNING: augmenting queries with tracing context will make query texts unique, which may have adverse impact on database performance. |
| `otel.instrumentation.r2dbc.query-sanitization.enabled` | boolean | true | Enables query sanitization for database queries. Takes precedence over otel.instrumentation.common.db.query-sanitization.enabled. |

## Data

- **JSON**: [/data/javaagent/instrumentations/r2dbc-1.0/r2dbc-1.0-49582ee58265.json](/data/javaagent/instrumentations/r2dbc-1.0/r2dbc-1.0-49582ee58265.json)
- **Explore**: [/java-agent/instrumentation/r2dbc-1.0](/java-agent/instrumentation/r2dbc-1.0)
