# Apache Tomcat

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

> OpenTelemetry Java agent instrumentation

This instrumentation enables HTTP server spans and HTTP server metrics for Apache Tomcat.

- **Name**: `tomcat-10.0`
- **Scope**: `io.opentelemetry.tomcat-10.0`
- **Target versions**: `org.apache.tomcat.embed:tomcat-embed-core:[10,)`
- **Library**: https://tomcat.apache.org/

## Telemetry

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

## Configuration

| Option | Type | Default | Description |
| --- | --- | --- | --- |
| `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. |
| `otel.instrumentation.servlet.experimental-span-attributes` | boolean | false | Enables capturing the experimental `servlet.timeout` span attribute. |
| `otel.instrumentation.servlet.experimental.capture-request-parameters` | list |  | List of request parameter names to capture as span attributes. |

## Data

- **JSON**: [/data/javaagent/instrumentations/tomcat-10.0/tomcat-10.0-703a8e84ffdb.json](/data/javaagent/instrumentations/tomcat-10.0/tomcat-10.0-703a8e84ffdb.json)
- **Explore**: [/java-agent/instrumentation/tomcat-10.0](/java-agent/instrumentation/tomcat-10.0)
