# Ratpack

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

> OpenTelemetry Java agent instrumentation

This instrumentation enables HTTP server spans and HTTP server metrics for Ratpack servers, HTTP client spans and HTTP client metrics for Ratpack HTTP clients, and enables controller spans for Ratpack handlers (controller spans are disabled by default).

- **Name**: `ratpack-1.7`
- **Scope**: `io.opentelemetry.ratpack-1.7`
- **Target versions**: `io.ratpack:ratpack-core:[1.7.0,)`
- **Library**: https://ratpack.io/

## Telemetry

- **Metrics**: `http.client.request.duration`, `http.server.request.duration`
- **Span attributes**: `error.type`, `http.request.method`, `http.request.method_original`, `http.response.status_code`, `http.route`, `server.address`, `server.port`, `url.full`, `client.address`, `network.protocol.version`, `url.path`, `url.query`, `url.scheme`, `user_agent.original`, `peer.service`, `service.peer.name`

## Configuration

| Option | Type | Default | Description |
| --- | --- | --- | --- |
| `otel.instrumentation.common.experimental.controller-telemetry.enabled` | boolean | false | Enables the creation of experimental controller spans. |
| `otel.instrumentation.common.peer-service-mapping` | map |  | Used to specify a mapping from host names or IP addresses to peer services. |
| `otel.instrumentation.http.client.capture-request-headers` | list |  | List of HTTP request headers to capture in HTTP client telemetry. |
| `otel.instrumentation.http.client.capture-response-headers` | list |  | List of HTTP response headers to capture in HTTP client telemetry. |
| `otel.instrumentation.http.client.emit-experimental-telemetry` | boolean | false | Enable the capture of experimental HTTP client telemetry. Adds the `http.request.body.size` and `http.response.body.size` attributes to spans, and records `http.client.request.body.size` and `http.client.response.body.size` metrics. |
| `otel.instrumentation.http.known-methods` | list | CONNECT,DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT,TRACE | Configures the instrumentation to recognize an alternative set of HTTP request methods. All other methods will be treated as `_OTHER`. |
| `otel.instrumentation.http.server.capture-request-headers` | list |  | List of HTTP request headers to capture in HTTP server telemetry. |
| `otel.instrumentation.http.server.capture-response-headers` | list |  | List of HTTP response headers to capture in HTTP server telemetry. |
| `otel.instrumentation.http.server.emit-experimental-telemetry` | boolean | false | Enable the capture of experimental HTTP server telemetry. Adds the `http.request.body.size` and `http.response.body.size` attributes to spans, and records `http.server.request.body.size` and `http.server.response.body.size` metrics. |
| `java.common.http.client.url_template_rules` | list |  | Rules for deriving low-cardinality URL templates (routes) from HTTP client request URLs. Only applied when experimental HTTP client telemetry is enabled. |
| `otel.instrumentation.sanitization.url.experimental.sensitive-query-parameters` | list | AWSAccessKeyId,Signature,sig,X-Goog-Signature | List of URL query parameter names whose values are redacted in URL attributes. See https://opentelemetry.io/docs/specs/semconv/http/http-spans. |

## Data

- **JSON**: [/data/javaagent/instrumentations/ratpack-1.7/ratpack-1.7-97f0d0ce32a0.json](/data/javaagent/instrumentations/ratpack-1.7/ratpack-1.7-97f0d0ce32a0.json)
- **Explore**: [/java-agent/instrumentation/ratpack-1.7](/java-agent/instrumentation/ratpack-1.7)
