Skip to content
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

[GH-75][GH-76] Document "component" tag and all other standardized tags in spec #81

Closed
wants to merge 1 commit into from
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 14 additions & 0 deletions spec.md
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,20 @@ Note that `Inject` and `Join` are not entirely symmetrical interfaces since `Spa

A note about **"format identifiers"** per the `Inject` and `Join` methods above: the nature of the "format identifier" may vary from platform to platform, but in all cases they should be drawn from a global namespace. New formats must not *require* changes to the core OpenTracing platform APIs, though those core platform APIs must define a few basic/general formats (like string maps and binary blobs). For example, if the maintainer of EsotericRPCFramework wanted to define an EsotericRPCFramework inject/join format, she or he must be able to do so without sending a PR to OpenTracing maintainers (though of course OpenTracing implementations are not required to support the EsotericRPCFramework format). There is [an end-to-end injector and extractor example below](#propagation-example) to make this more concrete.

### Standardized Tags

There is a number of standardized tags that should be used accross platforms and tracing implementations:

- `peer.service` records the service name of the peer
- `peer.host` records the host name of the peer
- `peer.ipv4` records IP v4 host address of the peer
- `peer.ipv6` records IP v6 host address of the peer
- `peer.port` records port number of the peer
- `span.kind` hints at relationship between spans, e.g. values for client `c` and server `s`.
- `component` optionally records the component that the current span belongs to.

Implementations should provide constants for these tag names.

### Required Inject/Join carrier formats

At a minimum, all platforms require OpenTracing implementations to support two carrier formats: the "text map" format and the "binary" format.
Expand Down