From eb773fecdf6c8f2dcb283ca664db5a718b54bcf9 Mon Sep 17 00:00:00 2001 From: Yash Tibrewal Date: Tue, 20 Feb 2024 11:55:26 +0000 Subject: [PATCH] Revert breaking changes --- CHANGELOG.md | 2 -- docs/attributes-registry/rpc.md | 3 ++- docs/rpc/README.md | 1 + docs/rpc/rpc-metrics.md | 11 +++-------- docs/rpc/rpc-spans.md | 3 ++- model/registry/rpc.yaml | 3 +++ 6 files changed, 11 insertions(+), 12 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d4bfaed417..86d2bb5ec2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -29,8 +29,6 @@ release. - `type` to `process.context_switch_type` - Rename attributes for `process.paging.faults` - `type` to `process.paging.fault_type` - - Link to proposal for gRPC metrics - ([#627](https://github.com/open-telemetry/semantic-conventions/pull/627)) ### Features diff --git a/docs/attributes-registry/rpc.md b/docs/attributes-registry/rpc.md index f348a5d6ab..fd112b1d2b 100644 --- a/docs/attributes-registry/rpc.md +++ b/docs/attributes-registry/rpc.md @@ -22,7 +22,7 @@ RPC attributes are intended to be used in the context of events related to remot | `rpc.jsonrpc.version` | string | Protocol version as in `jsonrpc` property of request/response. Since JSON-RPC 1.0 doesn't specify this, the value can be omitted. | `2.0`; `1.0` | | `rpc.method` | string | The name of the (logical) method being called, must be equal to the $method part in the span name. [5] | `exampleMethod` | | `rpc.service` | string | The full (logical) name of the service being called, including its package name, if applicable. [6] | `myservice.EchoService` | -| `rpc.system` | string | A string identifying the remoting system. See below for a list of well-known identifiers. | `java_rmi` | +| `rpc.system` | string | A string identifying the remoting system. See below for a list of well-known identifiers. | `grpc` | **[1]:** Instrumentations SHOULD require an explicit configuration of which metadata values are to be captured. Including all request metadata values can be a security risk - explicit configuration helps avoid leaking sensitive information. @@ -83,6 +83,7 @@ RPC attributes are intended to be used in the context of events related to remot | Value | Description | |---|---| +| `grpc` | gRPC | | `java_rmi` | Java RMI | | `dotnet_wcf` | .NET WCF | | `apache_dubbo` | Apache Dubbo | diff --git a/docs/rpc/README.md b/docs/rpc/README.md index a30f41d372..303e1f3145 100644 --- a/docs/rpc/README.md +++ b/docs/rpc/README.md @@ -20,6 +20,7 @@ Semantic conventions for RPC are defined for the following signals: Technology specific semantic conventions are defined for the following RPC systems: * [Connect](connect-rpc.md): Semantic Conventions for *Connect RPC*. +* [gRPC](grpc.md): Semantic Conventions for *gRPC*. * [JSON-RPC](json-rpc.md): Semantic Conventions for *JSON-RPC*. Specifications defined by maintainers of RPC systems: diff --git a/docs/rpc/rpc-metrics.md b/docs/rpc/rpc-metrics.md index 3836275cd2..1c4f96a00a 100644 --- a/docs/rpc/rpc-metrics.md +++ b/docs/rpc/rpc-metrics.md @@ -60,13 +60,6 @@ metrics can be filtered for finer grain analysis. > * SHOULD maintain (security patching at a minimum) the existing major version > for at least six months after it starts emitting both sets of conventions. > * SHOULD drop the environment variable in the next major version. -> -> **Note** -> Maintainers of gRPC have decided to create a different -> [spec](https://github.com/grpc/proposal/blob/master/A66-otel-stats.md) due to -> limitations on what information can be recorded by the various implementations -> of gRPC and differences in concepts such as a `call` and an `attempt` compared -> to other RPC systems. ## Metric instruments @@ -230,7 +223,7 @@ measurements. | [`network.type`](../attributes-registry/network.md) | string | [OSI network layer](https://osi-model.com/network-layer/) or non-OSI equivalent. [2] | `ipv4`; `ipv6` | Recommended | | [`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. | `java_rmi` | Required | +| [`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`](../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 | @@ -270,6 +263,7 @@ different processes could be listening on TCP port 12345 and UDP port 12345. | Value | Description | |---|---| +| `grpc` | gRPC | | `java_rmi` | Java RMI | | `dotnet_wcf` | .NET WCF | | `apache_dubbo` | Apache Dubbo | @@ -291,6 +285,7 @@ One process can expose multiple RPC endpoints and thus have multiple RPC service More specific Semantic Conventions are defined for the following RPC technologies: * [Connect](connect-rpc.md): Semantic Conventions for *Connect RPC*. +* [gRPC](grpc.md): Semantic Conventions for *gRPC*. * [JSON-RPC](json-rpc.md): Semantic Conventions for *JSON-RPC*. Specifications defined by maintainers of RPC systems: diff --git a/docs/rpc/rpc-spans.md b/docs/rpc/rpc-spans.md index 26dde428bd..c3a9554350 100644 --- a/docs/rpc/rpc-spans.md +++ b/docs/rpc/rpc-spans.md @@ -88,7 +88,7 @@ Examples of span names: | [`network.type`](../attributes-registry/network.md) | string | [OSI network layer](https://osi-model.com/network-layer/) or non-OSI equivalent. [2] | `ipv4`; `ipv6` | Recommended | | [`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. | `java_rmi` | Required | +| [`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`](../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] | @@ -130,6 +130,7 @@ different processes could be listening on TCP port 12345 and UDP port 12345. | Value | Description | |---|---| +| `grpc` | gRPC | | `java_rmi` | Java RMI | | `dotnet_wcf` | .NET WCF | | `apache_dubbo` | Apache Dubbo | diff --git a/model/registry/rpc.yaml b/model/registry/rpc.yaml index cae9fafbcc..64f1f9a667 100644 --- a/model/registry/rpc.yaml +++ b/model/registry/rpc.yaml @@ -173,6 +173,9 @@ groups: type: allow_custom_values: true members: + - id: grpc + value: 'grpc' + brief: 'gRPC' - id: java_rmi value: 'java_rmi' brief: 'Java RMI'