semantic-conventions/model/rpc/spans.yaml

142 lines
4.9 KiB
YAML

groups:
- id: rpc
type: attribute_group
brief: 'This document defines semantic conventions for remote procedure calls.'
attributes:
- ref: rpc.system
requirement_level: required
- ref: rpc.service
requirement_level: recommended
- ref: rpc.method
requirement_level: recommended
- ref: network.transport
requirement_level: recommended
- ref: network.type
requirement_level: recommended
- ref: server.address
requirement_level: required
brief: >
RPC server [host name](https://grpc.github.io/grpc/core/md_doc_naming.html).
note: >
May contain server IP address, DNS name, or local socket name. When host component is an IP address,
instrumentations SHOULD NOT do a reverse proxy lookup to obtain DNS name and SHOULD set
`server.address` to the IP address provided in the host component.
- ref: server.port
requirement_level:
conditionally_required: if the port is supported by the network transport used for communication.
- id: span.rpc.client
type: span
stability: experimental
brief: 'This document defines semantic conventions for remote procedure call client spans.'
extends: rpc
span_kind: client
events: [rpc.message]
attributes:
- ref: network.peer.address
requirement_level: recommended
- ref: network.peer.port
requirement_level:
recommended: If `network.peer.address` is set.
- id: span.rpc.server
type: span
stability: experimental
extends: rpc
span_kind: server
brief: 'Semantic Convention for RPC server spans'
events: [rpc.message]
attributes:
- ref: client.address
requirement_level: recommended
- ref: client.port
requirement_level: recommended
- ref: network.peer.address
requirement_level: recommended
- ref: network.peer.port
requirement_level:
recommended: If `network.peer.address` is set.
- ref: network.transport
requirement_level: recommended
- ref: network.type
requirement_level: recommended
- id: span.rpc.grpc
type: span
stability: experimental
extends: rpc
brief: 'Tech-specific attributes for gRPC.'
attributes:
- ref: rpc.grpc.status_code
tag: grpc-tech-specific
requirement_level: required
- ref: rpc.grpc.request.metadata
tag: grpc-tech-specific
requirement_level: opt_in
- ref: rpc.grpc.response.metadata
tag: grpc-tech-specific
requirement_level: opt_in
- id: span.rpc.jsonrpc
type: span
stability: experimental
extends: rpc
brief: 'Tech-specific attributes for [JSON RPC](https://www.jsonrpc.org/).'
attributes:
- ref: rpc.jsonrpc.version
tag: jsonrpc-tech-specific
requirement_level:
conditionally_required: If other than the default version (`1.0`)
- ref: rpc.jsonrpc.request_id
tag: jsonrpc-tech-specific
requirement_level: recommended
- ref: rpc.jsonrpc.error_code
tag: jsonrpc-tech-specific
requirement_level:
conditionally_required: If response is not successful.
- ref: rpc.jsonrpc.error_message
tag: jsonrpc-tech-specific
requirement_level: recommended
- ref: rpc.method
tag: jsonrpc-tech-specific
requirement_level: required
note: >
This is always required for jsonrpc. See the note in the general
RPC conventions for more information.
- id: event.rpc.message
type: event
stability: experimental
name: rpc.message
brief: Describes a message sent or received within the context of an RPC call.
note: >
In the lifetime of an RPC stream, an event for each message sent/received on
client and server spans SHOULD be created. In case of unary calls only one sent
and one received message will be recorded for both client and server spans.
attributes:
- ref: rpc.message.type
requirement_level: recommended
- ref: rpc.message.id
requirement_level: recommended
- ref: rpc.message.compressed_size
requirement_level: recommended
- ref: rpc.message.uncompressed_size
requirement_level: recommended
- id: span.rpc.connect_rpc
type: span
stability: experimental
extends: rpc
brief: 'Tech-specific attributes for Connect RPC.'
attributes:
- ref: rpc.connect_rpc.error_code
tag: connect_rpc-tech-specific
requirement_level:
conditionally_required: If response is not successful and if error code available.
- ref: rpc.connect_rpc.request.metadata
tag: connect_rpc-tech-specific
requirement_level: opt_in
- ref: rpc.connect_rpc.response.metadata
tag: connect_rpc-tech-specific
requirement_level: opt_in