BREAKING: Remove `server.socket.address` attribute from http and rpc metrics (#350)
This commit is contained in:
parent
fe1797ef86
commit
56286849c9
|
|
@ -125,6 +125,8 @@ release.
|
|||
([#289](https://github.com/open-telemetry/semantic-conventions/pull/289))
|
||||
- BREAKING: Add `url.scheme` to `http.client.*` metrics
|
||||
([#357](https://github.com/open-telemetry/semantic-conventions/pull/357))
|
||||
- BREAKING: Remove `server.socket.address` from HTTP and RPC client metrics.
|
||||
([#350](https://github.com/open-telemetry/semantic-conventions/pull/350))
|
||||
|
||||
## v1.21.0 (2023-07-13)
|
||||
|
||||
|
|
|
|||
|
|
@ -463,7 +463,6 @@ 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
|
|||
| [`network.protocol.version`](../general/attributes.md) | string | Version of the application layer protocol used. See note below. [3] | `3.1.1` | 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. [4] | `example.com` | 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. [5] | `80`; `8080`; `443` | Conditionally Required: [6] |
|
||||
| [`server.socket.address`](../general/attributes.md) | string | Server address of the socket connection - IP address or Unix domain socket name. [7] | `10.5.3.2` | Recommended: If different than `server.address`. |
|
||||
| [`url.scheme`](../url/url.md) | string | The [URI scheme](https://www.rfc-editor.org/rfc/rfc3986#section-3.1) component identifying the used protocol. | `https`; `ftp`; `telnet` | Required |
|
||||
|
||||
**[1]:** If the request fails with an error before response status code was sent or received,
|
||||
|
|
@ -511,9 +510,6 @@ SHOULD NOT be set if capturing it would require an extra DNS lookup.
|
|||
|
||||
**[6]:** If not default (`80` for `http` scheme, `443` for `https`).
|
||||
|
||||
**[7]:** When observed from the client side, this SHOULD represent the immediate server peer address.
|
||||
When observed from the server side, this SHOULD represent the physical server address.
|
||||
|
||||
`error.type` has the following list of well-known values. If one of them applies, then the respective value MUST be used, otherwise a custom value MAY be used.
|
||||
|
||||
| Value | Description |
|
||||
|
|
@ -560,7 +556,6 @@ This metric is optional.
|
|||
| [`network.protocol.version`](../general/attributes.md) | string | Version of the application layer protocol used. See note below. [3] | `3.1.1` | 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. [4] | `example.com` | 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. [5] | `80`; `8080`; `443` | Conditionally Required: [6] |
|
||||
| [`server.socket.address`](../general/attributes.md) | string | Server address of the socket connection - IP address or Unix domain socket name. [7] | `10.5.3.2` | Recommended: If different than `server.address`. |
|
||||
| [`url.scheme`](../url/url.md) | string | The [URI scheme](https://www.rfc-editor.org/rfc/rfc3986#section-3.1) component identifying the used protocol. | `https`; `ftp`; `telnet` | Required |
|
||||
|
||||
**[1]:** If the request fails with an error before response status code was sent or received,
|
||||
|
|
@ -608,9 +603,6 @@ SHOULD NOT be set if capturing it would require an extra DNS lookup.
|
|||
|
||||
**[6]:** If not default (`80` for `http` scheme, `443` for `https`).
|
||||
|
||||
**[7]:** When observed from the client side, this SHOULD represent the immediate server peer address.
|
||||
When observed from the server side, this SHOULD represent the physical server address.
|
||||
|
||||
`error.type` has the following list of well-known values. If one of them applies, then the respective value MUST be used, otherwise a custom value MAY be used.
|
||||
|
||||
| Value | Description |
|
||||
|
|
@ -657,7 +649,6 @@ This metric is optional.
|
|||
| [`network.protocol.version`](../general/attributes.md) | string | Version of the application layer protocol used. See note below. [3] | `3.1.1` | 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. [4] | `example.com` | 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. [5] | `80`; `8080`; `443` | Conditionally Required: [6] |
|
||||
| [`server.socket.address`](../general/attributes.md) | string | Server address of the socket connection - IP address or Unix domain socket name. [7] | `10.5.3.2` | Recommended: If different than `server.address`. |
|
||||
| [`url.scheme`](../url/url.md) | string | The [URI scheme](https://www.rfc-editor.org/rfc/rfc3986#section-3.1) component identifying the used protocol. | `https`; `ftp`; `telnet` | Required |
|
||||
|
||||
**[1]:** If the request fails with an error before response status code was sent or received,
|
||||
|
|
@ -705,9 +696,6 @@ SHOULD NOT be set if capturing it would require an extra DNS lookup.
|
|||
|
||||
**[6]:** If not default (`80` for `http` scheme, `443` for `https`).
|
||||
|
||||
**[7]:** When observed from the client side, this SHOULD represent the immediate server peer address.
|
||||
When observed from the server side, this SHOULD represent the physical server address.
|
||||
|
||||
`error.type` has the following list of well-known values. If one of them applies, then the respective value MUST be used, otherwise a custom value MAY be used.
|
||||
|
||||
| Value | Description |
|
||||
|
|
|
|||
|
|
@ -217,39 +217,41 @@ This metric is [recommended][MetricRecommended].
|
|||
Below is a table of attributes that SHOULD be included on client and server RPC
|
||||
measurements.
|
||||
|
||||
<!-- semconv rpc -->
|
||||
<!-- semconv attributes.metrics.rpc(full) -->
|
||||
| Attribute | Type | Description | Examples | Requirement Level |
|
||||
|---|---|---|---|---|
|
||||
| [`rpc.system`](rpc-spans.md) | string | A string identifying the remoting system. See below for a list of well-known identifiers. | `grpc` | Required |
|
||||
| [`rpc.service`](rpc-spans.md) | string | The full (logical) name of the service being called, including its package name, if applicable. [1] | `myservice.EchoService` | Recommended |
|
||||
| [`rpc.method`](rpc-spans.md) | string | The name of the (logical) method being called, must be equal to the $method part in the span name. [2] | `exampleMethod` | Recommended |
|
||||
| [`network.transport`](../general/attributes.md) | string | [OSI Transport Layer](https://osi-model.com/transport-layer/) or [Inter-process Communication method](https://en.wikipedia.org/wiki/Inter-process_communication). The value SHOULD be normalized to lowercase. Consider always setting the transport when setting a port number, since a port number is ambiguous without knowing the transport, for example different processes could be listening on TCP port 12345 and UDP port 12345. | `tcp`; `udp` | Recommended |
|
||||
| [`network.type`](../general/attributes.md) | string | [OSI Network Layer](https://osi-model.com/network-layer/) or non-OSI equivalent. The value SHOULD be normalized to lowercase. | `ipv4`; `ipv6` | Recommended |
|
||||
| [`server.address`](../general/attributes.md) | string | RPC server [host name](https://grpc.github.io/grpc/core/md_doc_naming.html). [3] | `example.com` | Required |
|
||||
| [`server.port`](../general/attributes.md) | int | Server port number [4] | `80`; `8080`; `443` | Conditionally Required: See below |
|
||||
| [`server.socket.address`](../general/attributes.md) | string | Server address of the socket connection - IP address or Unix domain socket name. [5] | `10.5.3.2` | See below |
|
||||
| [`server.socket.port`](../general/attributes.md) | int | Server port number of the socket connection. [6] | `16456` | Recommended: [7] |
|
||||
| [`rpc.method`](rpc-spans.md) | string | The name of the (logical) method being called, must be equal to the $method part in the span name. [1] | `exampleMethod` | Recommended |
|
||||
| [`rpc.service`](rpc-spans.md) | string | The full (logical) name of the service being called, including its package name, if applicable. [2] | `myservice.EchoService` | Recommended |
|
||||
| [`rpc.system`](rpc-spans.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 address - domain name if available without reverse DNS lookup, otherwise IP address or Unix domain socket name. [3] | `example.com` | Recommended |
|
||||
| [`server.port`](../general/attributes.md) | int | Server port number [4] | `80`; `8080`; `443` | Recommended |
|
||||
|
||||
**[1]:** This is the logical name of the service from the RPC interface perspective, which can be different from the name of any implementing class. The `code.namespace` attribute may be used to store the latter (despite the attribute name, it may include a class name; e.g., class with method actually executing the call on the server side, RPC client stub class on the client side).
|
||||
**[1]:** This is the logical name of the method from the RPC interface perspective, which can be different from the name of any implementing method/function. The `code.function` attribute may be used to store the latter (e.g., method actually executing the call on the server side, RPC client stub method on the client side).
|
||||
|
||||
**[2]:** This is the logical name of the method from the RPC interface perspective, which can be different from the name of any implementing method/function. The `code.function` attribute may be used to store the latter (e.g., method actually executing the call on the server side, RPC client stub method on the client side).
|
||||
**[2]:** This is the logical name of the service from the RPC interface perspective, which can be different from the name of any implementing class. The `code.namespace` attribute may be used to store the latter (despite the attribute name, it may include a class name; e.g., class with method actually executing the call on the server side, RPC client stub class on the client side).
|
||||
|
||||
**[3]:** 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.
|
||||
**[3]:** When observed from the client side, and when communicating through an intermediary, `server.address` SHOULD represent
|
||||
the server address behind any intermediaries (e.g. proxies) if it's available.
|
||||
|
||||
**[4]:** When observed from the client side, and when communicating through an intermediary, `server.port` SHOULD represent the server port behind any intermediaries (e.g. proxies) if it's available.
|
||||
|
||||
**[5]:** When observed from the client side, this SHOULD represent the immediate server peer address.
|
||||
When observed from the server side, this SHOULD represent the physical server address.
|
||||
`network.transport` has the following list of well-known values. If one of them applies, then the respective value MUST be used, otherwise a custom value MAY be used.
|
||||
|
||||
**[6]:** When observed from the client side, this SHOULD represent the immediate server peer port.
|
||||
When observed from the server side, this SHOULD represent the physical server port.
|
||||
| Value | Description |
|
||||
|---|---|
|
||||
| `tcp` | TCP |
|
||||
| `udp` | UDP |
|
||||
| `pipe` | Named or anonymous pipe. See note below. |
|
||||
| `unix` | Unix domain socket |
|
||||
|
||||
**[7]:** If different than `server.port` and if `server.socket.address` is set.
|
||||
`network.type` has the following list of well-known values. If one of them applies, then the respective value MUST be used, otherwise a custom value MAY be used.
|
||||
|
||||
**Additional attribute requirements:** At least one of the following sets of attributes is required:
|
||||
|
||||
* [`server.socket.address`](../general/attributes.md)
|
||||
* [`server.address`](../general/attributes.md)
|
||||
| Value | Description |
|
||||
|---|---|
|
||||
| `ipv4` | IPv4 |
|
||||
| `ipv6` | IPv6 |
|
||||
|
||||
`rpc.system` has the following list of well-known values. If one of them applies, then the respective value MUST be used, otherwise a custom value MAY be used.
|
||||
|
||||
|
|
|
|||
|
|
@ -66,7 +66,6 @@ groups:
|
|||
- ref: http.response.status_code
|
||||
- ref: network.protocol.name
|
||||
- ref: network.protocol.version
|
||||
- ref: server.socket.address
|
||||
- ref: error.type
|
||||
requirement_level:
|
||||
conditionally_required: If request has ended with an error.
|
||||
|
|
|
|||
|
|
@ -13,8 +13,6 @@ groups:
|
|||
- ref: network.type
|
||||
- ref: server.address
|
||||
- ref: server.port
|
||||
- ref: server.socket.address
|
||||
- ref: server.socket.port
|
||||
|
||||
# RPC Server metrics
|
||||
- id: metric.rpc.server.duration
|
||||
|
|
|
|||
Loading…
Reference in New Issue