groups: - id: network prefix: net type: attribute_group brief: > These attributes may be used for any network related operation. attributes: - id: transport type: allow_custom_values: true members: - id: ip_tcp value: "ip_tcp" - id: ip_udp value: "ip_udp" - id: pipe value: "pipe" brief: 'Named or anonymous pipe. See note below.' - id: inproc value: "inproc" brief: 'In-process communication.' note: > Signals that there is only in-process communication not using a "real" network protocol in cases where network attributes would normally be expected. Usually all other network attributes can be left out in that case. - id: other value: "other" brief: 'Something else (non IP-based).' brief: > Transport protocol used. See note below. - id: protocol.name type: string brief: 'Application layer protocol used. The value SHOULD be normalized to lowercase.' examples: ['amqp', 'http', 'mqtt'] - id: protocol.version type: string brief: 'Version of the application layer protocol used. See note below.' examples: '3.1.1' note: > `net.protocol.version` refers to the version of the protocol used and might be different from the protocol client's version. If the HTTP client used has a version of `0.27.2`, but sends HTTP version `1.1`, this attribute should be set to `1.1`. - id: sock.peer.name type: string brief: Remote socket peer name. requirement_level: recommended: If available and different from `net.peer.name` and if `net.sock.peer.addr` is set. examples: proxy.example.com - id: sock.peer.addr type: string brief: > Remote socket peer address: IPv4 or IPv6 for internet protocols, path for local communication, [etc](https://man7.org/linux/man-pages/man7/address_families.7.html). examples: ['127.0.0.1', '/tmp/mysql.sock' ] - id: sock.peer.port type: int brief: Remote socket peer port. requirement_level: recommended: If defined for the address family and if different than `net.peer.port` and if `net.sock.peer.addr` is set. examples: 16456 - id: sock.family type: allow_custom_values: true members: - id: inet value: 'inet' brief: "IPv4 address" - id: inet6 value: 'inet6' brief: "IPv6 address" - id: unix value: 'unix' brief: "Unix domain socket path" requirement_level: conditionally_required: > If different than `inet` and if any of `net.sock.peer.addr` or `net.sock.host.addr` are set. Consumers of telemetry SHOULD accept both IPv4 and IPv6 formats for the address in `net.sock.peer.addr` if `net.sock.family` is not set. This is to support instrumentations that follow previous versions of this document. brief: > Protocol [address family](https://man7.org/linux/man-pages/man7/address_families.7.html) which is used for communication. examples: ['inet6', 'bluetooth'] - id: peer.name type: string brief: 'Logical remote hostname, see note below.' examples: 'example.com' note: > `net.peer.name` SHOULD NOT be set if capturing it would require an extra DNS lookup. - id: peer.port type: int brief: 'Logical remote port number' examples: [80, 8080, 443] - id: host.name type: string brief: 'Logical local hostname or similar, see note below.' examples: 'localhost' - id: host.port type: int brief: 'Logical local port number, preferably the one that the peer used to connect' examples: 8080 - id: sock.host.addr type: string brief: Local socket address. Useful in case of a multi-IP host. examples: '192.168.0.1' - id: sock.host.port type: int brief: 'Local socket port number.' requirement_level: conditionally_required: If defined for the address family and if different than `net.host.port` and if `net.sock.host.addr` is set. In other cases, it is still recommended to set this. examples: 35555 - id: host.connection.type type: allow_custom_values: true members: - id: wifi value: "wifi" - id: wired value: "wired" - id: cell value: "cell" - id: unavailable value: "unavailable" - id: unknown value: "unknown" brief: 'The internet connection type currently being used by the host.' examples: 'wifi' - id: host.connection.subtype type: allow_custom_values: true members: - id: gprs brief: GPRS value: "gprs" - id: edge brief: EDGE value: "edge" - id: umts brief: UMTS value: "umts" - id: cdma brief: CDMA value: "cdma" - id: evdo_0 brief: EVDO Rel. 0 value: "evdo_0" - id: evdo_a brief: "EVDO Rev. A" value: "evdo_a" - id: cdma2000_1xrtt brief: CDMA2000 1XRTT value: "cdma2000_1xrtt" - id: hsdpa brief: HSDPA value: "hsdpa" - id: hsupa brief: HSUPA value: "hsupa" - id: hspa brief: HSPA value: "hspa" - id: iden brief: IDEN value: "iden" - id: evdo_b brief: "EVDO Rev. B" value: "evdo_b" - id: lte brief: LTE value: "lte" - id: ehrpd brief: EHRPD value: "ehrpd" - id: hspap brief: HSPAP value: "hspap" - id: gsm brief: GSM value: "gsm" - id: td_scdma brief: TD-SCDMA value: "td_scdma" - id: iwlan brief: IWLAN value: "iwlan" - id: nr brief: "5G NR (New Radio)" value: "nr" - id: nrnsa brief: "5G NRNSA (New Radio Non-Standalone)" value: "nrnsa" - id: lte_ca brief: LTE CA value: "lte_ca" brief: 'This describes more details regarding the connection.type. It may be the type of cell technology connection, but it could be used for describing details about a wifi connection.' examples: 'LTE' - id: host.carrier.name type: string brief: "The name of the mobile carrier." examples: "sprint" - id: host.carrier.mcc type: string brief: "The mobile carrier country code." examples: "310" - id: host.carrier.mnc type: string brief: "The mobile carrier network code." examples: "001" - id: host.carrier.icc type: string brief: "The ISO 3166-1 alpha-2 2-character country code associated with the mobile carrier network." examples: "DE" - id: peer prefix: peer type: span brief: "Operations that access some remote service." attributes: - id: service type: string brief: > The [`service.name`](../../resource/semantic_conventions/README.md#service) of the remote service. SHOULD be equal to the actual `service.name` resource attribute of the remote service if any. examples: "AuthTokenCache" - id: identity prefix: enduser type: span brief: > These attributes may be used for any operation with an authenticated and/or authorized enduser. attributes: - id: id type: string brief: > Username or client_id extracted from the access token or [Authorization](https://tools.ietf.org/html/rfc7235#section-4.2) header in the inbound request from outside the system. examples: 'username' - id: role type: string brief: 'Actual/assumed role the client is making the request under extracted from token or application security context.' examples: 'admin' - id: scope type: string brief: > Scopes or granted authorities the client currently possesses extracted from token or application security context. The value would come from the scope associated with an [OAuth 2.0 Access Token](https://tools.ietf.org/html/rfc6749#section-3.3) or an attribute value in a [SAML 2.0 Assertion](http://docs.oasis-open.org/security/saml/Post2.0/sstc-saml-tech-overview-2.0.html). examples: 'read:message, write:files' - id: thread prefix: thread type: span brief: > These attributes may be used for any operation to store information about a thread that started a span. attributes: - id: id type: int brief: > Current "managed" thread ID (as opposed to OS thread ID). examples: 42 - id: name type: string brief: > Current thread name. examples: main - id: code prefix: code type: span brief: > These attributes allow to report this unit of code and therefore to provide more context about the span. attributes: - id: function type: string brief: > The method or function name, or equivalent (usually rightmost part of the code unit's name). examples: serveRequest - id: namespace type: string brief: > The "namespace" within which `code.function` is defined. Usually the qualified class or module name, such that `code.namespace` + some separator + `code.function` form a unique identifier for the code unit. examples: com.example.MyHttpService - id: filepath type: string brief: > The source code file name that identifies the code unit as uniquely as possible (preferably an absolute file path). examples: /usr/local/MyApplication/content_root/app/index.php - id: lineno type: int brief: > The line number in `code.filepath` best representing the operation. It SHOULD point within the code unit named in `code.function`. examples: 42 - id: column type: int brief: > The column number in `code.filepath` best representing the operation. It SHOULD point within the code unit named in `code.function`. examples: 16