97 lines
4.5 KiB
YAML
97 lines
4.5 KiB
YAML
groups:
|
|
- id: attributes.http.common
|
|
type: attribute_group
|
|
brief: "Describes HTTP attributes."
|
|
attributes:
|
|
- ref: http.request.method
|
|
requirement_level: required
|
|
- ref: http.response.status_code
|
|
requirement_level:
|
|
conditionally_required: If and only if one was received/sent.
|
|
- ref: error.type
|
|
requirement_level:
|
|
conditionally_required: If request has ended with an error.
|
|
examples: ['timeout', 'name_resolution_error', '500']
|
|
note: |
|
|
If the request fails with an error before response status code was sent or received,
|
|
`error.type` SHOULD be set to exception type or a component-specific low cardinality error code.
|
|
|
|
If response status code was sent or received and status indicates an error according to [HTTP span status definition](/docs/http/http-spans.md),
|
|
`error.type` SHOULD be set to the status code number (represented as a string), an exception type (if thrown) or a component-specific error code.
|
|
|
|
The `error.type` value SHOULD be predictable and SHOULD have low cardinality.
|
|
Instrumentations SHOULD document the list of errors they report.
|
|
|
|
The cardinality of `error.type` within one instrumentation library SHOULD be low, but
|
|
telemetry consumers that aggregate data from multiple instrumentation libraries and applications
|
|
should be prepared for `error.type` to have high cardinality at query time, when no
|
|
additional filters are applied.
|
|
|
|
If the request has completed successfully, instrumentations SHOULD NOT set `error.type`.
|
|
- ref: network.protocol.name
|
|
examples: ['http', 'spdy']
|
|
requirement_level:
|
|
recommended: if not default (`http`).
|
|
- ref: network.protocol.version
|
|
examples: ['1.0', '1.1', '2', '3']
|
|
|
|
- id: attributes.http.client
|
|
type: attribute_group
|
|
brief: 'HTTP Client attributes'
|
|
attributes:
|
|
- ref: server.address
|
|
requirement_level: required
|
|
brief: >
|
|
Host identifier of the ["URI origin"](https://www.rfc-editor.org/rfc/rfc9110.html#name-uri-origin) HTTP request is sent to.
|
|
note: |
|
|
Determined by using the first of the following that applies
|
|
|
|
- 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 capturing it would require an extra DNS lookup.
|
|
- ref: server.port
|
|
requirement_level:
|
|
conditionally_required: If not default (`80` for `http` scheme, `443` for `https`).
|
|
brief: >
|
|
Port identifier of the ["URI origin"](https://www.rfc-editor.org/rfc/rfc9110.html#name-uri-origin) HTTP request is sent to.
|
|
note: >
|
|
When [request target](https://www.rfc-editor.org/rfc/rfc9110.html#target.resource) is absolute URI, `server.port` MUST match
|
|
URI port identifier, otherwise it MUST match `Host` header port identifier.
|
|
|
|
- id: attributes.http.server
|
|
type: attribute_group
|
|
brief: 'HTTP Server attributes'
|
|
attributes:
|
|
- ref: http.route
|
|
requirement_level:
|
|
conditionally_required: If and only if it's available
|
|
- ref: server.address
|
|
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](/docs/http/http-spans.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: server.port
|
|
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](/docs/http/http-spans.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
|
|
- ref: url.scheme
|
|
requirement_level: required
|
|
examples: ["http", "https"]
|