{
  "configurations": [
    {
      "declarative_name": "java.common.service_peer_mapping",
      "declarative_schema": {
        "properties": {
          "peer": {
            "description": "Host name or IP address to match against.",
            "type": "string"
          },
          "service_name": {
            "description": "Peer service name to record for matching peers.",
            "type": "string"
          }
        },
        "required": [
          "peer",
          "service_name"
        ],
        "type": "object"
      },
      "declarative_type": "structured_list",
      "default": "",
      "description": "Used to specify a mapping from host names or IP addresses to peer services.",
      "name": "otel.instrumentation.common.peer-service-mapping",
      "type": "map"
    },
    {
      "declarative_name": "general.http.client.request_captured_headers",
      "default": "",
      "description": "List of HTTP request headers to capture in HTTP client telemetry.",
      "name": "otel.instrumentation.http.client.capture-request-headers",
      "type": "list"
    },
    {
      "declarative_name": "general.http.client.response_captured_headers",
      "default": "",
      "description": "List of HTTP response headers to capture in HTTP client telemetry.",
      "name": "otel.instrumentation.http.client.capture-response-headers",
      "type": "list"
    },
    {
      "declarative_name": "java.common.http.client.emit_experimental_telemetry/development",
      "default": false,
      "description": "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.",
      "name": "otel.instrumentation.http.client.emit-experimental-telemetry",
      "type": "boolean"
    },
    {
      "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": "java.common.http.client.url_template_rules",
      "declarative_schema": {
        "properties": {
          "override": {
            "default": false,
            "description": "Whether this rule overrides an already-applied template.",
            "type": "boolean"
          },
          "pattern": {
            "description": "Regular expression matched against the request URL.",
            "type": "string"
          },
          "template": {
            "description": "Template used to derive the low-cardinality route.",
            "type": "string"
          }
        },
        "required": [
          "pattern",
          "template"
        ],
        "type": "object"
      },
      "declarative_type": "structured_list",
      "default": "",
      "description": "Rules for deriving low-cardinality URL templates (routes) from HTTP client request URLs. Only applied when experimental HTTP client telemetry is enabled.",
      "name": "java.common.http.client.url_template_rules",
      "type": "list"
    },
    {
      "declarative_name": "general.sanitization.url.sensitive_query_parameters/development",
      "default": "AWSAccessKeyId,Signature,sig,X-Goog-Signature",
      "description": "List of URL query parameter names whose values are redacted in URL attributes. See https://opentelemetry.io/docs/specs/semconv/http/http-spans.",
      "name": "otel.instrumentation.sanitization.url.experimental.sensitive-query-parameters",
      "type": "list"
    }
  ],
  "description": "This instrumentation enables HTTP client spans and HTTP client metrics for Jetty HTTP Client.",
  "display_name": "Eclipse Jetty HTTP Client",
  "has_javaagent": true,
  "has_standalone_library": true,
  "javaagent_target_versions": [
    "org.eclipse.jetty:jetty-client:[12,)"
  ],
  "library_link": "https://eclipse.dev/jetty/",
  "markdown_hash": "f1c4f6282b92",
  "minimum_java_version": 17,
  "name": "jetty-httpclient-12.0",
  "scope": {
    "name": "io.opentelemetry.jetty-httpclient-12.0",
    "schema_url": "https://opentelemetry.io/schemas/1.41.0"
  },
  "semantic_conventions": [
    "HTTP_CLIENT_SPANS",
    "HTTP_CLIENT_METRICS"
  ],
  "source_path": "instrumentation/jetty-httpclient/jetty-httpclient-12.0",
  "telemetry": [
    {
      "metrics": [
        {
          "attributes": [
            {
              "name": "http.request.method",
              "type": "STRING"
            },
            {
              "name": "http.response.status_code",
              "type": "LONG"
            },
            {
              "name": "network.protocol.version",
              "type": "STRING"
            },
            {
              "name": "server.address",
              "type": "STRING"
            },
            {
              "name": "server.port",
              "type": "LONG"
            }
          ],
          "data_type": "HISTOGRAM",
          "description": "Duration of HTTP client requests.",
          "instrument": "histogram",
          "name": "http.client.request.duration",
          "unit": "s"
        }
      ],
      "spans": [
        {
          "attributes": [
            {
              "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.protocol.version",
              "type": "STRING"
            },
            {
              "name": "peer.service",
              "type": "STRING"
            },
            {
              "name": "server.address",
              "type": "STRING"
            },
            {
              "name": "server.port",
              "type": "LONG"
            },
            {
              "name": "url.full",
              "type": "STRING"
            }
          ],
          "span_kind": "CLIENT"
        }
      ],
      "when": "default"
    },
    {
      "metrics": [
        {
          "attributes": [
            {
              "name": "http.request.method",
              "type": "STRING"
            },
            {
              "name": "http.response.status_code",
              "type": "LONG"
            },
            {
              "name": "network.protocol.version",
              "type": "STRING"
            },
            {
              "name": "server.address",
              "type": "STRING"
            },
            {
              "name": "server.port",
              "type": "LONG"
            }
          ],
          "data_type": "HISTOGRAM",
          "description": "Duration of HTTP client requests.",
          "instrument": "histogram",
          "name": "http.client.request.duration",
          "unit": "s"
        }
      ],
      "spans": [
        {
          "attributes": [
            {
              "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.protocol.version",
              "type": "STRING"
            },
            {
              "name": "server.address",
              "type": "STRING"
            },
            {
              "name": "server.port",
              "type": "LONG"
            },
            {
              "name": "service.peer.name",
              "type": "STRING"
            },
            {
              "name": "url.full",
              "type": "STRING"
            }
          ],
          "span_kind": "CLIENT"
        }
      ],
      "when": "otel.semconv-stability.opt-in=service.peer"
    }
  ]
}