semantic-conventions/model/trace/http.yaml

129 lines
4.5 KiB
YAML

groups:
- id: trace.http.client
type: span
extends: attributes.http.client
span_kind: client
brief: 'Semantic Convention for HTTP Client'
stability: stable
attributes:
- ref: http.request.method
sampling_relevant: true
- ref: http.request.method_original
requirement_level:
conditionally_required: If and only if it's different than `http.request.method`.
- ref: http.request.resend_count
requirement_level:
recommended: if and only if request was retried.
- ref: http.request.header
requirement_level: opt_in
- ref: http.response.header
requirement_level: opt_in
- ref: server.address
sampling_relevant: true
- ref: server.port
sampling_relevant: true
- ref: url.full
sampling_relevant: true
requirement_level: required
- ref: user_agent.original
requirement_level: opt_in
- ref: url.scheme
- ref: network.peer.address
- ref: network.peer.port
requirement_level:
recommended: If `network.peer.address` is set.
- ref: network.transport
requirement_level: opt_in
note: >
Generally `tcp` for `HTTP/1.0`, `HTTP/1.1`, and `HTTP/2`. Generally `udp` for `HTTP/3`.
Other obscure implementations are possible.
- id: trace.http.client.experimental
type: attribute_group
brief: 'Experimental attributes for HTTP Client spans'
stability: experimental
extends: attributes.http.client.experimental
attributes:
- ref: http.request.size
requirement_level: opt_in
- ref: http.response.size
requirement_level: opt_in
- ref: http.request.body.size
requirement_level: opt_in
- ref: http.response.body.size
requirement_level: opt_in
- id: trace.http.server
type: span
extends: attributes.http.server
span_kind: server
brief: 'Semantic Convention for HTTP Server'
stability: stable
attributes:
- ref: http.request.method
sampling_relevant: true
- ref: http.request.method_original
requirement_level:
conditionally_required: If and only if it's different than `http.request.method`.
- ref: http.route
- ref: http.request.header
sampling_relevant: true
requirement_level: opt_in
- ref: http.response.header
requirement_level: opt_in
- ref: server.address
sampling_relevant: true
- ref: server.port
sampling_relevant: true
- ref: network.local.address
requirement_level: opt_in
brief: Local socket address. Useful in case of a multi-IP host.
- ref: network.local.port
requirement_level: opt_in
brief: Local socket port. Useful in case of a multi-port host.
- ref: client.address
sampling_relevant: true
note: >
The IP address of the original client behind all proxies, if
known (e.g. from [Forwarded#for](https://developer.mozilla.org/docs/Web/HTTP/Headers/Forwarded#for),
[X-Forwarded-For](https://developer.mozilla.org/docs/Web/HTTP/Headers/X-Forwarded-For), or a similar header).
Otherwise, the immediate client peer address.
examples: ['83.164.160.102']
- ref: client.port
requirement_level: opt_in
brief: The port of whichever client was captured in `client.address`.
- ref: url.path
requirement_level: required
sampling_relevant: true
- ref: url.query
requirement_level:
conditionally_required: If and only if one was received/sent.
sampling_relevant: true
- ref: url.scheme
sampling_relevant: true
- ref: user_agent.original
sampling_relevant: true
- ref: network.peer.address
- ref: network.peer.port
requirement_level:
recommended: If `network.peer.address` is set.
- ref: network.transport
requirement_level: opt_in
note: >
Generally `tcp` for `HTTP/1.0`, `HTTP/1.1`, and `HTTP/2`. Generally `udp` for `HTTP/3`.
Other obscure implementations are possible.
- id: trace.http.server.experimental
type: attribute_group
brief: 'Experimental attributes for HTTP Server spans'
stability: experimental
attributes:
- ref: http.request.size
requirement_level: opt_in
- ref: http.response.size
requirement_level: opt_in
- ref: http.request.body.size
requirement_level: opt_in
- ref: http.response.body.size
requirement_level: opt_in