Skip to content

Commit

Permalink
Add table for well-known rpc.system values (#2377)
Browse files Browse the repository at this point in the history
  • Loading branch information
trask authored Mar 3, 2022
1 parent 0986b9d commit 038a270
Show file tree
Hide file tree
Showing 4 changed files with 34 additions and 5 deletions.
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,9 @@ release.

### Semantic Conventions

- Changed `rpc.system` to an enum (allowing custom values), and changed the
`rpc.system` value for .NET WCF from `wcf` to `dotnet_wcf`.
([#2377](https:/open-telemetry/opentelemetry-specification/pull/2377))
- Define JavaScript runtime semantic conventions.
([#2290](https:/open-telemetry/opentelemetry-specification/pull/2290))

Expand Down
16 changes: 13 additions & 3 deletions semantic_conventions/trace/rpc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,20 @@ groups:
events: [rpc.message]
attributes:
- id: system
type: string
required: always
brief: 'A string identifying the remoting system.'
examples: ["grpc", "java_rmi", "wcf"]
brief: 'A string identifying the remoting system. See below for a list of well-known identifiers.'
type:
allow_custom_values: true
members:
- id: grpc
value: 'grpc'
brief: 'gRPC'
- id: java_rmi
value: 'java_rmi'
brief: 'Java RMI'
- id: dotnet_wcf
value: 'dotnet_wcf'
brief: '.NET WCF'
- id: service
type: string
required:
Expand Down
10 changes: 9 additions & 1 deletion specification/metrics/semantic_conventions/rpc.md
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ or not they should be on the server, client or both.
<!-- semconv rpc -->
| Attribute | Type | Description | Examples | Required |
|---|---|---|---|---|
| [`rpc.system`](../../trace/semantic_conventions/rpc.md) | string | A string identifying the remoting system. | `grpc`; `java_rmi`; `wcf` | Yes |
| [`rpc.system`](../../trace/semantic_conventions/rpc.md) | string | A string identifying the remoting system. See below for a list of well-known identifiers. | `grpc` | Yes |
| [`rpc.service`](../../trace/semantic_conventions/rpc.md) | string | The full (logical) name of the service being called, including its package name, if applicable. [1] | `myservice.EchoService` | No, but recommended |
| [`rpc.method`](../../trace/semantic_conventions/rpc.md) | string | The name of the (logical) method being called, must be equal to the $method part in the span name. [2] | `exampleMethod` | No, but recommended |
| [`net.peer.ip`](../../trace/semantic_conventions/span-general.md) | string | Remote address of the peer (dotted decimal for IPv4 or [RFC5952](https://tools.ietf.org/html/rfc5952) for IPv6) | `127.0.0.1` | See below |
Expand All @@ -76,6 +76,14 @@ or not they should be on the server, client or both.

* [`net.peer.ip`](../../trace/semantic_conventions/span-general.md)
* [`net.peer.name`](../../trace/semantic_conventions/span-general.md)

`rpc.system` MUST be one of the following or, if none of the listed values apply, a custom value:

| Value | Description |
|---|---|
| `grpc` | gRPC |
| `java_rmi` | Java RMI |
| `dotnet_wcf` | .NET WCF |
<!-- endsemconv -->

To avoid high cardinality, implementations should prefer the most stable of `net.peer.name` or
Expand Down
10 changes: 9 additions & 1 deletion specification/trace/semantic_conventions/rpc.md
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ Examples of span names:
<!-- semconv rpc -->
| Attribute | Type | Description | Examples | Required |
|---|---|---|---|---|
| `rpc.system` | string | A string identifying the remoting system. | `grpc`; `java_rmi`; `wcf` | Yes |
| `rpc.system` | string | A string identifying the remoting system. See below for a list of well-known identifiers. | `grpc` | Yes |
| `rpc.service` | string | The full (logical) name of the service being called, including its package name, if applicable. [1] | `myservice.EchoService` | No, but recommended |
| `rpc.method` | string | The name of the (logical) method being called, must be equal to the $method part in the span name. [2] | `exampleMethod` | No, but recommended |
| [`net.peer.ip`](span-general.md) | string | Remote address of the peer (dotted decimal for IPv4 or [RFC5952](https://tools.ietf.org/html/rfc5952) for IPv6) | `127.0.0.1` | See below |
Expand All @@ -72,6 +72,14 @@ Examples of span names:

* [`net.peer.ip`](span-general.md)
* [`net.peer.name`](span-general.md)

`rpc.system` MUST be one of the following or, if none of the listed values apply, a custom value:

| Value | Description |
|---|---|
| `grpc` | gRPC |
| `java_rmi` | Java RMI |
| `dotnet_wcf` | .NET WCF |
<!-- endsemconv -->

For client-side spans `net.peer.port` is required if the connection is IP-based and the port is available (it describes the server port they are connecting to).
Expand Down

0 comments on commit 038a270

Please sign in to comment.