{
  "configurations": [
    {
      "declarative_name": "java.servlet.javascript_snippet/development",
      "default": "",
      "description": "Experimental setting to inject a JavaScript snippet into HTML responses after the opening `<head>` tag.",
      "name": "otel.experimental.javascript-snippet",
      "type": "string"
    },
    {
      "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"
    },
    {
      "declarative_name": "java.servlet.trace_id_request_attribute/development.enabled",
      "default": true,
      "description": "Enables adding the trace ID and span ID as request attributes for downstream servlet access.",
      "name": "otel.instrumentation.servlet.experimental.trace-id-request-attribute.enabled",
      "type": "boolean"
    }
  ],
  "description": "This instrumentation enables HTTP server spans and metrics for Java Servlet API.",
  "display_name": "Servlet",
  "features": [
    "HTTP_ROUTE"
  ],
  "has_javaagent": true,
  "javaagent_target_versions": [
    "javax.servlet:servlet-api:[2.2, 3.0)"
  ],
  "library_link": "https://javaee.github.io/servlet-spec/",
  "name": "servlet-2.2",
  "scope": {
    "name": "io.opentelemetry.servlet-2.2",
    "schema_url": "https://opentelemetry.io/schemas/1.37.0"
  },
  "semantic_conventions": [
    "HTTP_SERVER_SPANS",
    "HTTP_SERVER_METRICS"
  ],
  "source_path": "instrumentation/servlet/servlet-2.2",
  "telemetry": [
    {
      "metrics": [
        {
          "attributes": [
            {
              "name": "http.request.method",
              "type": "STRING"
            },
            {
              "name": "http.response.status_code",
              "type": "LONG"
            },
            {
              "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": "code.function",
              "type": "STRING"
            },
            {
              "name": "code.namespace",
              "type": "STRING"
            }
          ],
          "span_kind": "INTERNAL"
        },
        {
          "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": "network.peer.address",
              "type": "STRING"
            },
            {
              "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"
    }
  ]
}