-
Notifications
You must be signed in to change notification settings - Fork 932
Updated Zipkin spec for remoteEndpoint mapping. #534
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 1 commit
ad32e17
8c2d6c2
0ea77a9
bdf39cb
6b29667
03066b7
a3abf90
86090a3
c04041e
d749036
e0bd417
46fd2dc
bfb060b
494bb6d
d692dfb
1c5f504
1a64b25
1c0135a
e2fd00b
f8f8dc3
89efe15
be41164
c03fe50
e7fe34a
7f64aef
e2ff02d
27e5c89
eef502f
1de415d
18b2752
784635d
f9aabe2
237ab5f
0121fc9
1a0395e
df48497
5b78ee1
e2f6ff4
cbeb0ec
77693e4
1729bc4
f78d35f
a4c012a
b8566d0
5aae909
6f47d03
95ec22d
d46c361
99b31d4
4a8ee03
0905ea6
9e8c5f1
462b64a
4a2fd06
1d9006d
4daee3a
b70565d
0c6f484
b338f9f
6c86748
c8554d8
8b25420
4ea4d27
e69bde6
709293f
f4e6d6e
0434a7b
3e34565
c5b1dfd
27010e5
b610b07
363e339
bd98664
15c41b1
587beba
29fccfe
b8948d9
6b6ca2a
cfb6e9e
36a95cd
d2665fd
f26c57a
619b588
b054648
de3b65e
c33919e
7ae3d06
6468f8a
fcc4ac6
ea15a2d
b4e327c
66a6dc6
8e7b2cc
3891524
3fce938
98bc818
91590d9
0bc38e4
e8b5802
e6a4a8d
4d879e0
a719697
ebcee97
0231d7b
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -42,7 +42,6 @@ Zipkin fields: | |
|
|
||
| - Service name | ||
| - Local_endpoint | ||
| - Remote_endpoint | ||
| - debug | ||
| - Shared | ||
|
|
||
|
|
@@ -64,6 +63,22 @@ Zipkin. | |
| | `SpanKind.PRODUCER`|`SpanKind.PRODUCER` || | ||
| |`SpanKind.INTERNAL`|`null` |must be omitted (set to `null`)| | ||
|
|
||
| ### Remote endpoint | ||
|
|
||
| If Zipkin `SpanKind` resolves to either `SpanKind.CLIENT` or `SpanKind.PRODUCER` then the service SHOULD specify remote endpoint otherwise Zipkin won't treat the Span as a dependency. OpenTelemetry doesn't have a perfectly expressive field for the destination service, so the following mapping is applied: | ||
|
|
||
| |Priority|Attribute Name|Reason| | ||
| |---|---|---| | ||
| |1|net.peer.name|[OpenTelemetry adopted attribute for remote hostname, or similar.](./data-span-general.md#general-network-connection-attributes)| | ||
| |1|peer.service|Remote service name defined in OpenTracing specification.| | ||
| |2|peer.hostname|Remote hostname defined in OpenTracing specification.| | ||
| |2|peer.address|Remote address defined in OpenTracing specification.| | ||
| |2|net.peer.ip & net.peer.port|[OpenTelemetry adopted attribute for remote address of the peer.](./data-span-general.md#general-network-connection-attributes)| | ||
| |3|http.host|Commonly used address attribute for Http Spans.| | ||
| |3|db.instance|Commonly used address attribute for DB Spans.| | ||
|
|
||
| Lowest priority match should be selected. In the event that multiple hits occur at the same priority level (Ex: `net.peer.name` & `peer.service` are both specified), take the value from the first attribute matched. `net.peer.ip` can be used by itself as remote endpoint but should be combined with `net.peer.port` if it is also present. | ||
|
||
|
|
||
| ### Attribute | ||
|
|
||
| OpenTelemetry Span `Attribute`(s) MUST be reported as `tags` to Zipkin. | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
peer.servicewas added to OpenTelemetry with this use case in mind, I think we can use it as the highest priority.https://github.com/open-telemetry/opentelemetry-specification/blob/master/specification/trace/semantic_conventions/span-general.md#general-remote-service-attributes
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Oh actually I noticed some values have same priority - what's the decision mechanism within a priority?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@anuraaga There was a note in there below the table about what to do in that case, but I cleaned it up and simplified things for #776. I put
peer.serviceat the top. We have been using that in opentelemetry-dotnet for a while, just didn't update this doc 😄