Skip to content
Merged
Changes from 1 commit
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
10 changes: 9 additions & 1 deletion specification/library-guidelines.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,15 @@ _Note to Language Library Authors:_ OpenTelemetry specification, API and SDK imp

4. Language library implementation must be clearly separated into wire protocol-independent parts that implement common logic (e.g. batching, tag enrichment by process information, etc.) and protocol-dependent telemetry exporters. Telemetry exporters must contain minimal functionality, thus enabling vendors to easily add support for their specific protocol.

5. Language library implementation should include an exporter for OpenTelemetry Protocol (when the protocol is specified and approved) and may include an exporter that writes to standard output (to use for debugging and testing). Vendor-specific exporters (exporters that implement vendor protocols) should not be included in language libraries and should be placed elsewhere (the exact approach for storing and maintaining vendor-specific exporters will be defined in the future).
5. Language library implementation should include the following exporters:
- Jaeger.
- Zipkin.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  1. Jaeger and Zipkin backends support multiple encodings and transports, e.g. thrift, json, proto, udp, http, grpc. Which makes this recommendation pretty broad. Is the SDK in each language expected to implement all of those? Or at minimum one of those?
  2. This recommendation only applies to OTel SDKs, not to any implementation of OTel API. Perhaps this file should be renamed and scoped differently, e.g. sdk-guidelines.md

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@yurishkuro I added a note that exact list of protocol is to be defined and also replaced "language library" by "SDK" in a few relevant places.
I think we should keep the name of the file since it is not only about SDK but touches the API package as well.

- OpenCensus.
- Prometheus.
- OpenTelemetry Protocol (when the protocol is specified and approved).
- Standard output to use for debugging and testing.
Comment thread
tigrannajaryan marked this conversation as resolved.
Outdated
Comment thread
tigrannajaryan marked this conversation as resolved.
Outdated

Other vendor-specific exporters (exporters that implement vendor protocols) should not be included in language libraries and should be placed elsewhere (the exact approach for storing and maintaining vendor-specific exporters will be defined in the future).

# Language Library Generic Design

Expand Down