{
  "configurations": [
    {
      "declarative_name": "java.common.http.known_methods",
      "default": "CONNECT,DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT,TRACE",
      "description": "Configures the instrumentation to recognize an alternative set of HTTP request methods. All other methods will be treated as `_OTHER`.",
      "name": "otel.instrumentation.http.known-methods",
      "type": "list"
    },
    {
      "declarative_name": "general.http.server.request_captured_headers",
      "default": "",
      "description": "List of HTTP request headers to capture in HTTP server telemetry.",
      "name": "otel.instrumentation.http.server.capture-request-headers",
      "type": "list"
    },
    {
      "declarative_name": "general.http.server.response_captured_headers",
      "default": "",
      "description": "List of HTTP response headers to capture in HTTP server telemetry.",
      "name": "otel.instrumentation.http.server.capture-response-headers",
      "type": "list"
    },
    {
      "declarative_name": "java.common.http.server.emit_experimental_telemetry/development",
      "default": false,
      "description": "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.",
      "name": "otel.instrumentation.http.server.emit-experimental-telemetry",
      "type": "boolean"
    },
    {
      "declarative_name": "java.servlet.experimental_span_attributes/development",
      "default": false,
      "description": "Enables capturing the experimental `servlet.timeout` span attribute.",
      "name": "otel.instrumentation.servlet.experimental-span-attributes",
      "type": "boolean"
    },
    {
      "declarative_name": "java.servlet.capture_request_parameters/development",
      "default": "",
      "description": "List of request parameter names to capture as span attributes.",
      "name": "otel.instrumentation.servlet.experimental.capture-request-parameters",
      "type": "list"
    }
  ],
  "description": "This instrumentation enables HTTP server spans and HTTP server metrics for Apache Tomcat.",
  "display_name": "Apache Tomcat",
  "features": [
    "HTTP_ROUTE"
  ],
  "has_javaagent": true,
  "javaagent_target_versions": [
    "org.apache.tomcat.embed:tomcat-embed-core:[10,)"
  ],
  "library_link": "https://tomcat.apache.org/",
  "name": "tomcat-10.0",
  "scope": {
    "name": "io.opentelemetry.tomcat-10.0",
    "schema_url": "https://opentelemetry.io/schemas/1.41.0"
  },
  "semantic_conventions": [
    "HTTP_SERVER_SPANS",
    "HTTP_SERVER_METRICS"
  ],
  "source_path": "instrumentation/tomcat/tomcat-10.0",
  "telemetry": [
    {
      "metrics": [
        {
          "attributes": [
            {
              "name": "http.request.method",
              "type": "STRING"
            },
            {
              "name": "http.response.status_code",
              "type": "LONG"
            },
            {
              "name": "http.route",
              "type": "STRING"
            },
            {
              "name": "network.protocol.version",
              "type": "STRING"
            },
            {
              "name": "url.scheme",
              "type": "STRING"
            }
          ],
          "data_type": "HISTOGRAM",
          "description": "Duration of HTTP server requests.",
          "instrument": "histogram",
          "name": "http.server.request.duration",
          "unit": "s"
        }
      ],
      "spans": [
        {
          "attributes": [
            {
              "name": "client.address",
              "type": "STRING"
            },
            {
              "name": "error.type",
              "type": "STRING"
            },
            {
              "name": "http.request.method",
              "type": "STRING"
            },
            {
              "name": "http.request.method_original",
              "type": "STRING"
            },
            {
              "name": "http.response.status_code",
              "type": "LONG"
            },
            {
              "name": "http.route",
              "type": "STRING"
            },
            {
              "name": "network.peer.address",
              "type": "STRING"
            },
            {
              "name": "network.peer.port",
              "type": "LONG"
            },
            {
              "name": "network.protocol.version",
              "type": "STRING"
            },
            {
              "name": "server.address",
              "type": "STRING"
            },
            {
              "name": "server.port",
              "type": "LONG"
            },
            {
              "name": "url.path",
              "type": "STRING"
            },
            {
              "name": "url.query",
              "type": "STRING"
            },
            {
              "name": "url.scheme",
              "type": "STRING"
            },
            {
              "name": "user_agent.original",
              "type": "STRING"
            }
          ],
          "span_kind": "SERVER"
        }
      ],
      "when": "default"
    }
  ]
}