groups: - id: client prefix: client type: attribute_group brief: > These attributes may be used to describe the client in a connection-based network interaction where there is one side that initiates the connection (the client is the side that initiates the connection). This covers all TCP network interactions since TCP is connection-based and one side initiates the connection (an exception is made for peer-to-peer communication over TCP where the "user-facing" surface of the protocol / API does not expose a clear notion of client and server). This also covers UDP network interactions where one side initiates the interaction, e.g. QUIC (HTTP/3) and DNS. attributes: - id: address type: string brief: Client address - IP address or Unix domain socket name. note: > When observed from the server side, and when communicating through an intermediary, `client.address` SHOULD represent the client address behind any intermediaries (e.g. proxies) if it's available. examples: ['/tmp/my.sock', '10.1.2.80'] - id: port type: int brief: Client port number. examples: [65123] note: > When observed from the server side, and when communicating through an intermediary, `client.port` SHOULD represent the client port behind any intermediaries (e.g. proxies) if it's available. - id: socket.address type: string brief: Client address of the socket connection - IP address or Unix domain socket name. note: > When observed from the server side, this SHOULD represent the immediate client peer address. When observed from the client side, this SHOULD represent the physical client address. examples: ['/tmp/my.sock', '127.0.0.1'] requirement_level: recommended: If different than `client.address`. - id: socket.port type: int brief: Client port number of the socket connection. note: > When observed from the server side, this SHOULD represent the immediate client peer port. When observed from the client side, this SHOULD represent the physical client port. examples: [35555] requirement_level: recommended: If different than `client.port`.