semantic-conventions/model/trace/rpc.yaml

130 lines
4.3 KiB
YAML

groups:
- id: rpc
type: span
brief: 'This document defines semantic conventions for remote procedure calls.'
events: [rpc.message]
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: rpc.client
type: span
brief: 'This document defines semantic conventions for remote procedure call client spans.'
extends: rpc
attributes:
- ref: network.peer.address
requirement_level: recommended
- ref: network.peer.port
requirement_level:
recommended: If `network.peer.address` is set.
- id: rpc.server
type: span
extends: rpc
span_kind: server
brief: 'Semantic Convention for RPC server spans'
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: rpc.grpc
type: span
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: rpc.jsonrpc
type: span
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: rpc.message
type: event
name: rpc.message
brief: "RPC received/sent message."
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: rpc.connect_rpc
type: span
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