Moved client, server, source, destination attributes to the registry (#391)
Signed-off-by: Alexander Wert <alexander.wert@elastic.co>
This commit is contained in:
parent
e3da931d08
commit
6a9acefdbf
|
@ -27,13 +27,17 @@ All registered attributes are listed by namespace in this registry.
|
|||
|
||||
Currently, the following namespaces exist:
|
||||
|
||||
* [Client](client.md)
|
||||
* [Cloud](cloud.md)
|
||||
* [Code](code.md)
|
||||
* [Container](container.md)
|
||||
* [Destination](destination.md)
|
||||
* [HTTP](http.md)
|
||||
* [Network](network.md)
|
||||
* [OCI](oci.md)
|
||||
* [RPC](rpc.md)
|
||||
* [Server](server.md)
|
||||
* [Source](source.md)
|
||||
* [Thread](thread.md)
|
||||
* [URL](url.md)
|
||||
* [User agent](user-agent.md)
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
<!--- Hugo front matter used to generate the website version of this page:
|
||||
linkTitle: Client
|
||||
--->
|
||||
|
||||
# Client Attributes
|
||||
|
||||
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.
|
||||
|
||||
<!-- semconv client(omit_requirement_level) -->
|
||||
| Attribute | Type | Description | Examples |
|
||||
|---|---|---|---|
|
||||
| `client.address` | string | <br>Client address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. [1] | `client.example.com`; `10.1.2.80`; `/tmp/my.sock` |
|
||||
| `client.port` | int | <br>Client port number. [2] | `65123` |
|
||||
|
||||
**[1]:** When observed from the server side, and when communicating through an intermediary, `client.address` SHOULD represent the client address behind any intermediaries, for example proxies, if it's available.
|
||||
|
||||
**[2]:** When observed from the server side, and when communicating through an intermediary, `client.port` SHOULD represent the client port behind any intermediaries, for example proxies, if it's available.
|
||||
<!-- endsemconv -->
|
|
@ -0,0 +1,21 @@
|
|||
<!--- Hugo front matter used to generate the website version of this page:
|
||||
linkTitle: Destination
|
||||
--->
|
||||
|
||||
# Destination Attributes
|
||||
|
||||
These attributes may be used to describe the receiver of a network exchange/packet. These should be used
|
||||
when there is no client/server relationship between the two sides, or when that relationship is unknown.
|
||||
This covers low-level network interactions (e.g. packet tracing) where you don't know if
|
||||
there was a connection or which side initiated it.
|
||||
This also covers unidirectional UDP flows and peer-to-peer communication where the
|
||||
"user-facing" surface of the protocol / API does not expose a clear notion of client and server.
|
||||
|
||||
<!-- semconv destination(omit_requirement_level) -->
|
||||
| Attribute | Type | Description | Examples |
|
||||
|---|---|---|---|
|
||||
| `destination.address` | string | Destination address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. [1] | `destination.example.com`; `10.1.2.80`; `/tmp/my.sock` |
|
||||
| `destination.port` | int | Destination port number | `3389`; `2888` |
|
||||
|
||||
**[1]:** When observed from the source side, and when communicating through an intermediary, `destination.address` SHOULD represent the destination address behind any intermediaries, for example proxies, if it's available.
|
||||
<!-- endsemconv -->
|
|
@ -0,0 +1,23 @@
|
|||
<!--- Hugo front matter used to generate the website version of this page:
|
||||
linkTitle: Server
|
||||
--->
|
||||
|
||||
# Server Attributes
|
||||
|
||||
These attributes may be used to describe the server 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.
|
||||
|
||||
<!-- semconv server(omit_requirement_level) -->
|
||||
| Attribute | Type | Description | Examples |
|
||||
|---|---|---|---|
|
||||
| `server.address` | string | <br>Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. [1] | `example.com`; `10.1.2.80`; `/tmp/my.sock` |
|
||||
| `server.port` | int | <br>Server port number. [2] | `80`; `8080`; `443` |
|
||||
|
||||
**[1]:** When observed from the client side, and when communicating through an intermediary, `server.address` SHOULD represent the server address behind any intermediaries, for example proxies, if it's available.
|
||||
|
||||
**[2]:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries, for example proxies, if it's available.
|
||||
<!-- endsemconv -->
|
|
@ -0,0 +1,21 @@
|
|||
<!--- Hugo front matter used to generate the website version of this page:
|
||||
linkTitle: Source
|
||||
--->
|
||||
|
||||
# Source Attributes
|
||||
|
||||
These attributes may be used to describe the sender of a network exchange/packet. These should be used
|
||||
when there is no client/server relationship between the two sides, or when that relationship is unknown.
|
||||
This covers low-level network interactions (e.g. packet tracing) where you don't know if
|
||||
there was a connection or which side initiated it.
|
||||
This also covers unidirectional UDP flows and peer-to-peer communication where the
|
||||
"user-facing" surface of the protocol / API does not expose a clear notion of client and server.
|
||||
|
||||
<!-- semconv source(omit_requirement_level) -->
|
||||
| Attribute | Type | Description | Examples |
|
||||
|---|---|---|---|
|
||||
| `source.address` | string | Source address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. [1] | `source.example.com`; `10.1.2.80`; `/tmp/my.sock` |
|
||||
| `source.port` | int | Source port number | `3389`; `2888` |
|
||||
|
||||
**[1]:** When observed from the destination side, and when communicating through an intermediary, `source.address` SHOULD represent the source address behind any intermediaries, for example proxies, if it's available.
|
||||
<!-- endsemconv -->
|
|
@ -71,8 +71,8 @@ Some database systems may allow a connection to switch to a different `db.user`,
|
|||
| [`network.peer.port`](../attributes-registry/network.md) | int | Peer port number of the network connection. | `65123` | Recommended: If `network.peer.address` is set. |
|
||||
| [`network.transport`](../attributes-registry/network.md) | string | [OSI transport layer](https://osi-model.com/transport-layer/) or [inter-process communication method](https://wikipedia.org/wiki/Inter-process_communication). [1] | `tcp`; `udp` | Recommended |
|
||||
| [`network.type`](../attributes-registry/network.md) | string | [OSI network layer](https://osi-model.com/network-layer/) or non-OSI equivalent. [2] | `ipv4`; `ipv6` | Recommended |
|
||||
| [`server.address`](../general/attributes.md) | string | Name of the database host. [3] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | Recommended |
|
||||
| [`server.port`](../general/attributes.md) | int | Server port number. [4] | `80`; `8080`; `443` | Conditionally Required: [5] |
|
||||
| [`server.address`](../attributes-registry/server.md) | string | Name of the database host. [3] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | Recommended |
|
||||
| [`server.port`](../attributes-registry/server.md) | int | Server port number. [4] | `80`; `8080`; `443` | Conditionally Required: [5] |
|
||||
|
||||
**[1]:** The value SHOULD be normalized to lowercase.
|
||||
|
||||
|
|
|
@ -32,8 +32,8 @@ If the endpoint id is not available, the span name SHOULD be the `http.request.m
|
|||
| [`db.operation`](database-spans.md) | string | The endpoint identifier for the request. [4] | `search`; `ml.close_job`; `cat.aliases` | Required |
|
||||
| [`db.statement`](database-spans.md) | string | The request body for a [search-type query](https://www.elastic.co/guide/en/elasticsearch/reference/current/search.html), as a json string. | `"{\"query\":{\"term\":{\"user.id\":\"kimchy\"}}}"` | Recommended: [5] |
|
||||
| [`http.request.method`](../attributes-registry/http.md) | string | HTTP request method. [6] | `GET`; `POST`; `HEAD` | Required |
|
||||
| [`server.address`](../general/attributes.md) | string | Name of the database host. [7] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | Recommended |
|
||||
| [`server.port`](../general/attributes.md) | int | Server port number. [8] | `80`; `8080`; `443` | Conditionally Required: [9] |
|
||||
| [`server.address`](../attributes-registry/server.md) | string | Name of the database host. [7] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | Recommended |
|
||||
| [`server.port`](../attributes-registry/server.md) | int | Server port number. [8] | `80`; `8080`; `443` | Conditionally Required: [9] |
|
||||
| [`url.full`](../attributes-registry/url.md) | string | Absolute URL describing a network resource according to [RFC3986](https://www.rfc-editor.org/rfc/rfc3986) [10] | `https://localhost:9200/index/_search?q=user.id:kimchy` | Required |
|
||||
|
||||
**[1]:** When communicating with an Elastic Cloud deployment, this should be collected from the "X-Found-Handling-Cluster" HTTP response header.
|
||||
|
|
|
@ -66,11 +66,11 @@ identify the transport, then setting [`network.transport`](#other-network-attrib
|
|||
Once the HTTP semantic conventions are declared stable, changes to the attributes in this section will only be allowed
|
||||
if they do not cause breaking changes to HTTP semantic conventions.
|
||||
|
||||
<!-- semconv server -->
|
||||
<!-- semconv general.server -->
|
||||
| Attribute | Type | Description | Examples | Requirement Level |
|
||||
|---|---|---|---|---|
|
||||
| `server.address` | string | <br>Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. [1] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | Recommended |
|
||||
| `server.port` | int | <br>Server port number. [2] | `80`; `8080`; `443` | Recommended |
|
||||
| [`server.address`](../attributes-registry/server.md) | string | Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. [1] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | Recommended |
|
||||
| [`server.port`](../attributes-registry/server.md) | int | Server port number. [2] | `80`; `8080`; `443` | Recommended |
|
||||
|
||||
**[1]:** When observed from the client side, and when communicating through an intermediary, `server.address` SHOULD represent the server address behind any intermediaries, for example proxies, if it's available.
|
||||
|
||||
|
@ -103,11 +103,11 @@ For Unix domain socket, `server.address` attribute represents remote endpoint ad
|
|||
Once the HTTP semantic conventions are declared stable, changes to the attributes in this section will only be allowed
|
||||
if they do not cause breaking changes to HTTP semantic conventions.
|
||||
|
||||
<!-- semconv client -->
|
||||
<!-- semconv general.client -->
|
||||
| Attribute | Type | Description | Examples | Requirement Level |
|
||||
|---|---|---|---|---|
|
||||
| `client.address` | string | <br>Client address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. [1] | `client.example.com`; `10.1.2.80`; `/tmp/my.sock` | Recommended |
|
||||
| `client.port` | int | <br>Client port number. [2] | `65123` | Recommended |
|
||||
| [`client.address`](../attributes-registry/client.md) | string | Client address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. [1] | `client.example.com`; `10.1.2.80`; `/tmp/my.sock` | Recommended |
|
||||
| [`client.port`](../attributes-registry/client.md) | int | Client port number. [2] | `65123` | Recommended |
|
||||
|
||||
**[1]:** When observed from the server side, and when communicating through an intermediary, `client.address` SHOULD represent the client address behind any intermediaries, for example proxies, if it's available.
|
||||
|
||||
|
@ -125,11 +125,11 @@ This also covers unidirectional UDP flows and peer-to-peer communication where t
|
|||
|
||||
#### Source
|
||||
|
||||
<!-- semconv source -->
|
||||
<!-- semconv general.source -->
|
||||
| Attribute | Type | Description | Examples | Requirement Level |
|
||||
|---|---|---|---|---|
|
||||
| `source.address` | string | Source address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. [1] | `source.example.com`; `10.1.2.80`; `/tmp/my.sock` | Recommended |
|
||||
| `source.port` | int | Source port number | `3389`; `2888` | Recommended |
|
||||
| [`source.address`](../attributes-registry/source.md) | string | Source address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. [1] | `source.example.com`; `10.1.2.80`; `/tmp/my.sock` | Recommended |
|
||||
| [`source.port`](../attributes-registry/source.md) | int | Source port number | `3389`; `2888` | Recommended |
|
||||
|
||||
**[1]:** When observed from the destination side, and when communicating through an intermediary, `source.address` SHOULD represent the source address behind any intermediaries, for example proxies, if it's available.
|
||||
<!-- endsemconv -->
|
||||
|
@ -138,11 +138,11 @@ This also covers unidirectional UDP flows and peer-to-peer communication where t
|
|||
|
||||
Destination fields capture details about the receiver of a network exchange/packet.
|
||||
|
||||
<!-- semconv destination -->
|
||||
<!-- semconv general.destination -->
|
||||
| Attribute | Type | Description | Examples | Requirement Level |
|
||||
|---|---|---|---|---|
|
||||
| `destination.address` | string | Destination address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. [1] | `destination.example.com`; `10.1.2.80`; `/tmp/my.sock` | Recommended |
|
||||
| `destination.port` | int | Destination port number | `3389`; `2888` | Recommended |
|
||||
| [`destination.address`](../attributes-registry/destination.md) | string | Destination address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. [1] | `destination.example.com`; `10.1.2.80`; `/tmp/my.sock` | Recommended |
|
||||
| [`destination.port`](../attributes-registry/destination.md) | int | Destination port number | `3389`; `2888` | Recommended |
|
||||
|
||||
**[1]:** When observed from the source side, and when communicating through an intermediary, `destination.address` SHOULD represent the destination address behind any intermediaries, for example proxies, if it's available.
|
||||
<!-- endsemconv -->
|
||||
|
|
|
@ -82,8 +82,8 @@ of `[ 0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5, 7.5, 10
|
|||
| [`http.route`](../attributes-registry/http.md) | string | The matched route, that is, the path template in the format used by the respective server framework. [3] | `/users/:userID?`; `{controller}/{action}/{id?}` | Conditionally Required: If and only if it's available |
|
||||
| [`network.protocol.name`](../attributes-registry/network.md) | string | [OSI application layer](https://osi-model.com/application-layer/) or non-OSI equivalent. [4] | `http`; `spdy` | Conditionally Required: [5] |
|
||||
| [`network.protocol.version`](../attributes-registry/network.md) | string | Version of the protocol specified in `network.protocol.name`. [6] | `1.0`; `1.1`; `2`; `3` | Recommended |
|
||||
| [`server.address`](../general/attributes.md) | string | Name of the local HTTP server that received the request. [7] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | Opt-In |
|
||||
| [`server.port`](../general/attributes.md) | int | Port of the local HTTP server that received the request. [8] | `80`; `8080`; `443` | Opt-In |
|
||||
| [`server.address`](../attributes-registry/server.md) | string | Name of the local HTTP server that received the request. [7] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | Opt-In |
|
||||
| [`server.port`](../attributes-registry/server.md) | int | Port of the local HTTP server that received the request. [8] | `80`; `8080`; `443` | Opt-In |
|
||||
| [`url.scheme`](../attributes-registry/url.md) | string | The [URI scheme](https://www.rfc-editor.org/rfc/rfc3986#section-3.1) component identifying the used protocol. [9] | `http`; `https` | Required |
|
||||
|
||||
**[1]:** If the request fails with an error before response status code was sent or received,
|
||||
|
@ -177,8 +177,8 @@ This metric is optional.
|
|||
| Attribute | Type | Description | Examples | Requirement Level |
|
||||
|---|---|---|---|---|
|
||||
| [`http.request.method`](../attributes-registry/http.md) | string | HTTP request method. [1] | `GET`; `POST`; `HEAD` | Required |
|
||||
| [`server.address`](../general/attributes.md) | string | Name of the local HTTP server that received the request. [2] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | Opt-In |
|
||||
| [`server.port`](../general/attributes.md) | int | Port of the local HTTP server that received the request. [3] | `80`; `8080`; `443` | Opt-In |
|
||||
| [`server.address`](../attributes-registry/server.md) | string | Name of the local HTTP server that received the request. [2] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | Opt-In |
|
||||
| [`server.port`](../attributes-registry/server.md) | int | Port of the local HTTP server that received the request. [3] | `80`; `8080`; `443` | Opt-In |
|
||||
| [`url.scheme`](../attributes-registry/url.md) | string | The [URI scheme](https://www.rfc-editor.org/rfc/rfc3986#section-3.1) component identifying the used protocol. | `http`; `https` | Required |
|
||||
|
||||
**[1]:** HTTP request method value SHOULD be "known" to the instrumentation.
|
||||
|
@ -245,8 +245,8 @@ This metric is optional.
|
|||
| [`http.route`](../attributes-registry/http.md) | string | The matched route, that is, the path template in the format used by the respective server framework. [3] | `/users/:userID?`; `{controller}/{action}/{id?}` | Conditionally Required: If and only if it's available |
|
||||
| [`network.protocol.name`](../attributes-registry/network.md) | string | [OSI application layer](https://osi-model.com/application-layer/) or non-OSI equivalent. [4] | `http`; `spdy` | Conditionally Required: [5] |
|
||||
| [`network.protocol.version`](../attributes-registry/network.md) | string | Version of the protocol specified in `network.protocol.name`. [6] | `1.0`; `1.1`; `2`; `3` | Recommended |
|
||||
| [`server.address`](../general/attributes.md) | string | Name of the local HTTP server that received the request. [7] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | Opt-In |
|
||||
| [`server.port`](../general/attributes.md) | int | Port of the local HTTP server that received the request. [8] | `80`; `8080`; `443` | Opt-In |
|
||||
| [`server.address`](../attributes-registry/server.md) | string | Name of the local HTTP server that received the request. [7] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | Opt-In |
|
||||
| [`server.port`](../attributes-registry/server.md) | int | Port of the local HTTP server that received the request. [8] | `80`; `8080`; `443` | Opt-In |
|
||||
| [`url.scheme`](../attributes-registry/url.md) | string | The [URI scheme](https://www.rfc-editor.org/rfc/rfc3986#section-3.1) component identifying the used protocol. [9] | `http`; `https` | Required |
|
||||
|
||||
**[1]:** If the request fails with an error before response status code was sent or received,
|
||||
|
@ -347,8 +347,8 @@ This metric is optional.
|
|||
| [`http.route`](../attributes-registry/http.md) | string | The matched route, that is, the path template in the format used by the respective server framework. [3] | `/users/:userID?`; `{controller}/{action}/{id?}` | Conditionally Required: If and only if it's available |
|
||||
| [`network.protocol.name`](../attributes-registry/network.md) | string | [OSI application layer](https://osi-model.com/application-layer/) or non-OSI equivalent. [4] | `http`; `spdy` | Conditionally Required: [5] |
|
||||
| [`network.protocol.version`](../attributes-registry/network.md) | string | Version of the protocol specified in `network.protocol.name`. [6] | `1.0`; `1.1`; `2`; `3` | Recommended |
|
||||
| [`server.address`](../general/attributes.md) | string | Name of the local HTTP server that received the request. [7] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | Opt-In |
|
||||
| [`server.port`](../general/attributes.md) | int | Port of the local HTTP server that received the request. [8] | `80`; `8080`; `443` | Opt-In |
|
||||
| [`server.address`](../attributes-registry/server.md) | string | Name of the local HTTP server that received the request. [7] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | Opt-In |
|
||||
| [`server.port`](../attributes-registry/server.md) | int | Port of the local HTTP server that received the request. [8] | `80`; `8080`; `443` | Opt-In |
|
||||
| [`url.scheme`](../attributes-registry/url.md) | string | The [URI scheme](https://www.rfc-editor.org/rfc/rfc3986#section-3.1) component identifying the used protocol. [9] | `http`; `https` | Required |
|
||||
|
||||
**[1]:** If the request fails with an error before response status code was sent or received,
|
||||
|
@ -454,8 +454,8 @@ of `[ 0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5, 7.5, 10
|
|||
| [`http.response.status_code`](../attributes-registry/http.md) | int | [HTTP response status code](https://tools.ietf.org/html/rfc7231#section-6). | `200` | Conditionally Required: If and only if one was received/sent. |
|
||||
| [`network.protocol.name`](../attributes-registry/network.md) | string | [OSI application layer](https://osi-model.com/application-layer/) or non-OSI equivalent. [3] | `http`; `spdy` | Conditionally Required: [4] |
|
||||
| [`network.protocol.version`](../attributes-registry/network.md) | string | Version of the protocol specified in `network.protocol.name`. [5] | `1.0`; `1.1`; `2`; `3` | Recommended |
|
||||
| [`server.address`](../general/attributes.md) | string | Host identifier of the ["URI origin"](https://www.rfc-editor.org/rfc/rfc9110.html#name-uri-origin) HTTP request is sent to. [6] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | Required |
|
||||
| [`server.port`](../general/attributes.md) | int | Port identifier of the ["URI origin"](https://www.rfc-editor.org/rfc/rfc9110.html#name-uri-origin) HTTP request is sent to. [7] | `80`; `8080`; `443` | Required |
|
||||
| [`server.address`](../attributes-registry/server.md) | string | Host identifier of the ["URI origin"](https://www.rfc-editor.org/rfc/rfc9110.html#name-uri-origin) HTTP request is sent to. [6] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | Required |
|
||||
| [`server.port`](../attributes-registry/server.md) | int | Port identifier of the ["URI origin"](https://www.rfc-editor.org/rfc/rfc9110.html#name-uri-origin) HTTP request is sent to. [7] | `80`; `8080`; `443` | Required |
|
||||
| [`url.scheme`](../attributes-registry/url.md) | string | The [URI scheme](https://www.rfc-editor.org/rfc/rfc3986#section-3.1) component identifying the used protocol. | `http`; `https` | Opt-In |
|
||||
|
||||
**[1]:** If the request fails with an error before response status code was sent or received,
|
||||
|
@ -544,8 +544,8 @@ This metric is optional.
|
|||
| [`http.response.status_code`](../attributes-registry/http.md) | int | [HTTP response status code](https://tools.ietf.org/html/rfc7231#section-6). | `200` | Conditionally Required: If and only if one was received/sent. |
|
||||
| [`network.protocol.name`](../attributes-registry/network.md) | string | [OSI application layer](https://osi-model.com/application-layer/) or non-OSI equivalent. [3] | `http`; `spdy` | Conditionally Required: [4] |
|
||||
| [`network.protocol.version`](../attributes-registry/network.md) | string | Version of the protocol specified in `network.protocol.name`. [5] | `1.0`; `1.1`; `2`; `3` | Recommended |
|
||||
| [`server.address`](../general/attributes.md) | string | Host identifier of the ["URI origin"](https://www.rfc-editor.org/rfc/rfc9110.html#name-uri-origin) HTTP request is sent to. [6] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | Required |
|
||||
| [`server.port`](../general/attributes.md) | int | Port identifier of the ["URI origin"](https://www.rfc-editor.org/rfc/rfc9110.html#name-uri-origin) HTTP request is sent to. [7] | `80`; `8080`; `443` | Required |
|
||||
| [`server.address`](../attributes-registry/server.md) | string | Host identifier of the ["URI origin"](https://www.rfc-editor.org/rfc/rfc9110.html#name-uri-origin) HTTP request is sent to. [6] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | Required |
|
||||
| [`server.port`](../attributes-registry/server.md) | int | Port identifier of the ["URI origin"](https://www.rfc-editor.org/rfc/rfc9110.html#name-uri-origin) HTTP request is sent to. [7] | `80`; `8080`; `443` | Required |
|
||||
| [`url.scheme`](../attributes-registry/url.md) | string | The [URI scheme](https://www.rfc-editor.org/rfc/rfc3986#section-3.1) component identifying the used protocol. | `http`; `https` | Opt-In |
|
||||
|
||||
**[1]:** If the request fails with an error before response status code was sent or received,
|
||||
|
@ -634,8 +634,8 @@ This metric is optional.
|
|||
| [`http.response.status_code`](../attributes-registry/http.md) | int | [HTTP response status code](https://tools.ietf.org/html/rfc7231#section-6). | `200` | Conditionally Required: If and only if one was received/sent. |
|
||||
| [`network.protocol.name`](../attributes-registry/network.md) | string | [OSI application layer](https://osi-model.com/application-layer/) or non-OSI equivalent. [3] | `http`; `spdy` | Conditionally Required: [4] |
|
||||
| [`network.protocol.version`](../attributes-registry/network.md) | string | Version of the protocol specified in `network.protocol.name`. [5] | `1.0`; `1.1`; `2`; `3` | Recommended |
|
||||
| [`server.address`](../general/attributes.md) | string | Host identifier of the ["URI origin"](https://www.rfc-editor.org/rfc/rfc9110.html#name-uri-origin) HTTP request is sent to. [6] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | Required |
|
||||
| [`server.port`](../general/attributes.md) | int | Port identifier of the ["URI origin"](https://www.rfc-editor.org/rfc/rfc9110.html#name-uri-origin) HTTP request is sent to. [7] | `80`; `8080`; `443` | Required |
|
||||
| [`server.address`](../attributes-registry/server.md) | string | Host identifier of the ["URI origin"](https://www.rfc-editor.org/rfc/rfc9110.html#name-uri-origin) HTTP request is sent to. [6] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | Required |
|
||||
| [`server.port`](../attributes-registry/server.md) | int | Port identifier of the ["URI origin"](https://www.rfc-editor.org/rfc/rfc9110.html#name-uri-origin) HTTP request is sent to. [7] | `80`; `8080`; `443` | Required |
|
||||
| [`url.scheme`](../attributes-registry/url.md) | string | The [URI scheme](https://www.rfc-editor.org/rfc/rfc3986#section-3.1) component identifying the used protocol. | `http`; `https` | Opt-In |
|
||||
|
||||
**[1]:** If the request fails with an error before response status code was sent or received,
|
||||
|
|
|
@ -229,8 +229,8 @@ For an HTTP client span, `SpanKind` MUST be `Client`.
|
|||
|---|---|---|---|---|
|
||||
| [`http.request.header.<key>`](../attributes-registry/http.md) | string[] | HTTP request headers, `<key>` being the normalized HTTP Header name (lowercase), the value being the header values. [1] | `http.request.header.content-type=["application/json"]`; `http.request.header.x-forwarded-for=["1.2.3.4", "1.2.3.5"]` | Opt-In |
|
||||
| [`http.request.resend_count`](../attributes-registry/http.md) | int | The ordinal number of request resending attempt (for any reason, including redirects). [2] | `3` | Recommended: if and only if request was retried. |
|
||||
| [`server.address`](../general/attributes.md) | string | Host identifier of the ["URI origin"](https://www.rfc-editor.org/rfc/rfc9110.html#name-uri-origin) HTTP request is sent to. [3] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | Required |
|
||||
| [`server.port`](../general/attributes.md) | int | Port identifier of the ["URI origin"](https://www.rfc-editor.org/rfc/rfc9110.html#name-uri-origin) HTTP request is sent to. [4] | `80`; `8080`; `443` | Required |
|
||||
| [`server.address`](../attributes-registry/server.md) | string | Host identifier of the ["URI origin"](https://www.rfc-editor.org/rfc/rfc9110.html#name-uri-origin) HTTP request is sent to. [3] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | Required |
|
||||
| [`server.port`](../attributes-registry/server.md) | int | Port identifier of the ["URI origin"](https://www.rfc-editor.org/rfc/rfc9110.html#name-uri-origin) HTTP request is sent to. [4] | `80`; `8080`; `443` | Required |
|
||||
| [`url.full`](../attributes-registry/url.md) | string | Absolute URL describing a network resource according to [RFC3986](https://www.rfc-editor.org/rfc/rfc3986) [5] | `https://www.foo.bar/search?q=OpenTelemetry#SemConv`; `//localhost` | Required |
|
||||
| [`url.scheme`](../attributes-registry/url.md) | string | The [URI scheme](https://www.rfc-editor.org/rfc/rfc3986#section-3.1) component identifying the used protocol. | `http`; `https` | Opt-In |
|
||||
| [`user_agent.original`](../attributes-registry/user-agent.md) | string | Value of the [HTTP User-Agent](https://www.rfc-editor.org/rfc/rfc9110.html#field.user-agent) header sent by the client. | `CERN-LineMode/2.15 libwww/2.17b3`; `Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.1.2 Mobile/15E148 Safari/604.1` | Opt-In |
|
||||
|
@ -251,8 +251,8 @@ The attribute value MUST consist of either multiple header values as an array of
|
|||
|
||||
The following attributes can be important for making sampling decisions and SHOULD be provided **at span creation time** (if provided at all):
|
||||
|
||||
* [`server.address`](../general/attributes.md)
|
||||
* [`server.port`](../general/attributes.md)
|
||||
* [`server.address`](../attributes-registry/server.md)
|
||||
* [`server.port`](../attributes-registry/server.md)
|
||||
* [`url.full`](../attributes-registry/url.md)
|
||||
<!-- endsemconv -->
|
||||
|
||||
|
@ -339,14 +339,14 @@ For an HTTP server span, `SpanKind` MUST be `Server`.
|
|||
<!-- semconv trace.http.server -->
|
||||
| Attribute | Type | Description | Examples | Requirement Level |
|
||||
|---|---|---|---|---|
|
||||
| [`client.address`](../general/attributes.md) | string | Client address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. [1] | `83.164.160.102` | Recommended |
|
||||
| [`client.port`](../general/attributes.md) | int | The port of whichever client was captured in `client.address`. [2] | `65123` | Opt-In |
|
||||
| [`client.address`](../attributes-registry/client.md) | string | Client address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. [1] | `83.164.160.102` | Recommended |
|
||||
| [`client.port`](../attributes-registry/client.md) | int | The port of whichever client was captured in `client.address`. [2] | `65123` | Opt-In |
|
||||
| [`http.request.header.<key>`](../attributes-registry/http.md) | string[] | HTTP request headers, `<key>` being the normalized HTTP Header name (lowercase), the value being the header values. [3] | `http.request.header.content-type=["application/json"]`; `http.request.header.x-forwarded-for=["1.2.3.4", "1.2.3.5"]` | Opt-In |
|
||||
| [`http.route`](../attributes-registry/http.md) | string | The matched route, that is, the path template in the format used by the respective server framework. [4] | `/users/:userID?`; `{controller}/{action}/{id?}` | Conditionally Required: If and only if it's available |
|
||||
| [`network.local.address`](../attributes-registry/network.md) | string | Local socket address. Useful in case of a multi-IP host. | `10.1.2.80`; `/tmp/my.sock` | Opt-In |
|
||||
| [`network.local.port`](../attributes-registry/network.md) | int | Local socket port. Useful in case of a multi-port host. | `65123` | Opt-In |
|
||||
| [`server.address`](../general/attributes.md) | string | Name of the local HTTP server that received the request. [5] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | Recommended |
|
||||
| [`server.port`](../general/attributes.md) | int | Port of the local HTTP server that received the request. [6] | `80`; `8080`; `443` | Conditionally Required: If `server.address` is set. |
|
||||
| [`server.address`](../attributes-registry/server.md) | string | Name of the local HTTP server that received the request. [5] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | Recommended |
|
||||
| [`server.port`](../attributes-registry/server.md) | int | Port of the local HTTP server that received the request. [6] | `80`; `8080`; `443` | Conditionally Required: If `server.address` is set. |
|
||||
| [`url.path`](../attributes-registry/url.md) | string | The [URI path](https://www.rfc-editor.org/rfc/rfc3986#section-3.3) component | `/search` | Required |
|
||||
| [`url.query`](../attributes-registry/url.md) | string | The [URI query](https://www.rfc-editor.org/rfc/rfc3986#section-3.4) component [7] | `q=OpenTelemetry` | Conditionally Required: If and only if one was received/sent. |
|
||||
| [`url.scheme`](../attributes-registry/url.md) | string | The [URI scheme](https://www.rfc-editor.org/rfc/rfc3986#section-3.1) component identifying the used protocol. [8] | `http`; `https` | Required |
|
||||
|
@ -373,10 +373,10 @@ SHOULD include the [application root](/docs/http/http-spans.md#http-server-defin
|
|||
|
||||
The following attributes can be important for making sampling decisions and SHOULD be provided **at span creation time** (if provided at all):
|
||||
|
||||
* [`client.address`](../general/attributes.md)
|
||||
* [`client.address`](../attributes-registry/client.md)
|
||||
* [`http.request.header.<key>`](../attributes-registry/http.md)
|
||||
* [`server.address`](../general/attributes.md)
|
||||
* [`server.port`](../general/attributes.md)
|
||||
* [`server.address`](../attributes-registry/server.md)
|
||||
* [`server.port`](../attributes-registry/server.md)
|
||||
* [`url.path`](../attributes-registry/url.md)
|
||||
* [`url.query`](../attributes-registry/url.md)
|
||||
* [`url.scheme`](../attributes-registry/url.md)
|
||||
|
|
|
@ -294,7 +294,7 @@ messages were received). For each message it accounts for, the "Deliver" or
|
|||
| [`network.protocol.version`](../attributes-registry/network.md) | string | Version of the protocol specified in `network.protocol.name`. [17] | `3.1.1` | Recommended |
|
||||
| [`network.transport`](../attributes-registry/network.md) | string | [OSI transport layer](https://osi-model.com/transport-layer/) or [inter-process communication method](https://wikipedia.org/wiki/Inter-process_communication). [18] | `tcp`; `udp` | Recommended |
|
||||
| [`network.type`](../attributes-registry/network.md) | string | [OSI network layer](https://osi-model.com/network-layer/) or non-OSI equivalent. [19] | `ipv4`; `ipv6` | Recommended |
|
||||
| [`server.address`](../general/attributes.md) | string | Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. [20] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | Conditionally Required: If available. |
|
||||
| [`server.address`](../attributes-registry/server.md) | string | Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. [20] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | Conditionally Required: If available. |
|
||||
|
||||
**[1]:** Instrumentations SHOULD NOT set `messaging.batch.message_count` on spans that operate with a single message. When a messaging client library supports both batch and single-message API for the same operation, instrumentations SHOULD use `messaging.batch.message_count` for batching APIs and SHOULD NOT use it for single-message APIs.
|
||||
|
||||
|
|
|
@ -225,8 +225,8 @@ measurements.
|
|||
| [`rpc.method`](../attributes-registry/rpc.md) | string | The name of the (logical) method being called, must be equal to the $method part in the span name. [3] | `exampleMethod` | Recommended |
|
||||
| [`rpc.service`](../attributes-registry/rpc.md) | string | The full (logical) name of the service being called, including its package name, if applicable. [4] | `myservice.EchoService` | Recommended |
|
||||
| [`rpc.system`](../attributes-registry/rpc.md) | string | A string identifying the remoting system. See below for a list of well-known identifiers. | `grpc` | Required |
|
||||
| [`server.address`](../general/attributes.md) | string | Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. [5] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | Recommended |
|
||||
| [`server.port`](../general/attributes.md) | int | Server port number. [6] | `80`; `8080`; `443` | Recommended |
|
||||
| [`server.address`](../attributes-registry/server.md) | string | Server domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. [5] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | Recommended |
|
||||
| [`server.port`](../attributes-registry/server.md) | int | Server port number. [6] | `80`; `8080`; `443` | Recommended |
|
||||
|
||||
**[1]:** The value SHOULD be normalized to lowercase.
|
||||
|
||||
|
|
|
@ -90,8 +90,8 @@ Examples of span names:
|
|||
| [`rpc.method`](../attributes-registry/rpc.md) | string | The name of the (logical) method being called, must be equal to the $method part in the span name. [3] | `exampleMethod` | Recommended |
|
||||
| [`rpc.service`](../attributes-registry/rpc.md) | string | The full (logical) name of the service being called, including its package name, if applicable. [4] | `myservice.EchoService` | Recommended |
|
||||
| [`rpc.system`](../attributes-registry/rpc.md) | string | A string identifying the remoting system. See below for a list of well-known identifiers. | `grpc` | Required |
|
||||
| [`server.address`](../general/attributes.md) | string | RPC server [host name](https://grpc.github.io/grpc/core/md_doc_naming.html). [5] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | Required |
|
||||
| [`server.port`](../general/attributes.md) | int | Server port number. [6] | `80`; `8080`; `443` | Conditionally Required: [7] |
|
||||
| [`server.address`](../attributes-registry/server.md) | string | RPC server [host name](https://grpc.github.io/grpc/core/md_doc_naming.html). [5] | `example.com`; `10.1.2.80`; `/tmp/my.sock` | Required |
|
||||
| [`server.port`](../attributes-registry/server.md) | int | Server port number. [6] | `80`; `8080`; `443` | Conditionally Required: [7] |
|
||||
|
||||
**[1]:** The value SHOULD be normalized to lowercase.
|
||||
|
||||
|
@ -166,8 +166,8 @@ Generally, a user SHOULD NOT set `peer.service` to a fully qualified RPC service
|
|||
<!-- semconv rpc.server -->
|
||||
| Attribute | Type | Description | Examples | Requirement Level |
|
||||
|---|---|---|---|---|
|
||||
| [`client.address`](../general/attributes.md) | string | Client address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. [1] | `client.example.com`; `10.1.2.80`; `/tmp/my.sock` | Recommended |
|
||||
| [`client.port`](../general/attributes.md) | int | Client port number. [2] | `65123` | Recommended |
|
||||
| [`client.address`](../attributes-registry/client.md) | string | Client address - domain name if available without reverse DNS lookup; otherwise, IP address or Unix domain socket name. [1] | `client.example.com`; `10.1.2.80`; `/tmp/my.sock` | Recommended |
|
||||
| [`client.port`](../attributes-registry/client.md) | int | Client port number. [2] | `65123` | Recommended |
|
||||
| [`network.peer.address`](../attributes-registry/network.md) | string | Peer address of the network connection - IP address or Unix domain socket name. | `10.1.2.80`; `/tmp/my.sock` | Recommended |
|
||||
| [`network.peer.port`](../attributes-registry/network.md) | int | Peer port number of the network connection. | `65123` | Recommended: If `network.peer.address` is set. |
|
||||
| [`network.transport`](../attributes-registry/network.md) | string | [OSI transport layer](https://osi-model.com/transport-layer/) or [inter-process communication method](https://wikipedia.org/wiki/Inter-process_communication). [3] | `tcp`; `udp` | Recommended |
|
||||
|
|
|
@ -1,4 +1,32 @@
|
|||
groups:
|
||||
- id: general.client
|
||||
type: attribute_group
|
||||
brief: >
|
||||
General client attributes.
|
||||
attributes:
|
||||
- ref: client.address
|
||||
- ref: client.port
|
||||
- id: general.server
|
||||
type: attribute_group
|
||||
brief: >
|
||||
General server attributes.
|
||||
attributes:
|
||||
- ref: server.address
|
||||
- ref: server.port
|
||||
- id: general.source
|
||||
type: attribute_group
|
||||
brief: >
|
||||
General source attributes.
|
||||
attributes:
|
||||
- ref: source.address
|
||||
- ref: source.port
|
||||
- id: general.destination
|
||||
type: attribute_group
|
||||
brief: >
|
||||
General destination attributes.
|
||||
attributes:
|
||||
- ref: destination.address
|
||||
- ref: destination.port
|
||||
- id: peer
|
||||
prefix: peer
|
||||
type: span
|
||||
|
|
|
@ -2,7 +2,8 @@ groups:
|
|||
- id: destination
|
||||
prefix: destination
|
||||
type: attribute_group
|
||||
brief: These attributes may be used to describe the receiver of a network exchange/packet. These should be used
|
||||
brief: >
|
||||
These attributes may be used to describe the receiver of a network exchange/packet. These should be used
|
||||
when there is no client/server relationship between the two sides, or when that relationship is unknown.
|
||||
This covers low-level network interactions (e.g. packet tracing) where you don't know if
|
||||
there was a connection or which side initiated it.
|
|
@ -2,7 +2,8 @@ groups:
|
|||
- id: source
|
||||
prefix: source
|
||||
type: attribute_group
|
||||
brief: These attributes may be used to describe the sender of a network exchange/packet. These should be used
|
||||
brief: >
|
||||
These attributes may be used to describe the sender of a network exchange/packet. These should be used
|
||||
when there is no client/server relationship between the two sides, or when that relationship is unknown.
|
||||
This covers low-level network interactions (e.g. packet tracing) where you don't know if
|
||||
there was a connection or which side initiated it.
|
Loading…
Reference in New Issue