groups: - id: metric.http.server.duration type: metric metric_name: http.server.duration brief: "Measures the duration of inbound HTTP requests." instrument: histogram unit: "ms" extends: attributes.http.server attributes: # todo (lmolkova) build tools don't populate grandparent attributes - ref: http.method - ref: http.status_code - ref: http.flavor - id: metric.http.server.active_requests type: metric metric_name: http.server.active_requests brief: "Measures the number of concurrent HTTP requests that are currently in-flight." instrument: updowncounter unit: "{requests}" attributes: - ref: http.method - ref: http.status_code - ref: http.scheme - ref: net.host.name requirement_level: required brief: > Name of the local HTTP server that received the request. note: | Determined by using the first of the following that applies - The [primary server name](/specification/trace/semantic_conventions/http.md#http-server-definitions) of the matched virtual host. MUST only include host identifier. - Host identifier of the [request target](https://www.rfc-editor.org/rfc/rfc9110.html#target.resource) if it's sent in absolute-form. - Host identifier of the `Host` header SHOULD NOT be set if only IP address is available and capturing name would require a reverse DNS lookup. - ref: net.host.port requirement_level: conditionally_required: If not default (`80` for `http` scheme, `443` for `https`). brief: > Port of the local HTTP server that received the request. note: | Determined by using the first of the following that applies - Port identifier of the [primary server host](/specification/trace/semantic_conventions/http.md#http-server-definitions) of the matched virtual host. - Port identifier of the [request target](https://www.rfc-editor.org/rfc/rfc9110.html#target.resource) if it's sent in absolute-form. - Port identifier of the `Host` header - id: metric.http.server.request.size type: metric metric_name: http.server.request.size brief: "Measures the size of HTTP request messages (compressed)." instrument: histogram unit: "By" extends: attributes.http.server # TODO (trask) below attributes are identical to above in metric.http.server.duration attributes: # todo (lmolkova) build tools don't populate grandparent attributes - ref: http.method - ref: http.status_code - ref: http.flavor - id: metric.http.server.response.size type: metric metric_name: http.server.response.size brief: "Measures the size of HTTP response messages (compressed)." instrument: histogram unit: "By" extends: attributes.http.server # TODO (trask) below attributes are identical to above in metric.http.server.duration attributes: - ref: http.method - ref: http.status_code - ref: http.flavor - id: metric.http.client.duration type: metric metric_name: http.client.duration brief: "Measures the duration of outbound HTTP requests." instrument: histogram unit: "ms" extends: attributes.http.client attributes: - ref: http.method - ref: http.status_code - ref: http.flavor - ref: net.sock.peer.addr - id: metric.http.client.request.size type: metric metric_name: http.client.request.size brief: "Measures the size of HTTP request messages (compressed)." instrument: histogram unit: "By" extends: attributes.http.client # TODO (trask) below attributes are identical to above in metric.http.client.duration attributes: - ref: http.method - ref: http.status_code - ref: http.flavor - ref: net.sock.peer.addr - id: metric.http.client.response.size type: metric metric_name: http.client.response.size brief: "Measures the size of HTTP response messages (compressed)." instrument: histogram unit: "By" extends: attributes.http.client # TODO (trask) below attributes are identical to above in metric.http.client.duration attributes: - ref: http.method - ref: http.status_code - ref: http.flavor - ref: net.sock.peer.addr