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

Define the list of standard exporters that SDK should support #6

Closed
bogdandrutu opened this issue May 13, 2019 · 6 comments · Fixed by #284
Closed

Define the list of standard exporters that SDK should support #6

bogdandrutu opened this issue May 13, 2019 · 6 comments · Fixed by #284
Assignees
Labels
area:sdk Related to the SDK needs discussion Need more information before all suitable labels can be applied
Milestone

Comments

@bogdandrutu
Copy link
Member

Proposal for trace:

  1. OpenTelemetry exporter (decide if HTTP vs gRPC).
  2. Jaeger exporter (decide if the new gRPC or Thrift).
  3. Zipkin exporter (probably v2)

Proposal for metrics:

  1. OpenTelemetry exporter (decide if HTTP vs gRPC).
  2. Prometheus exporter.

Another question is, do we want to have these standard exporters in the SDK artifact/package?

@AdaptiveThinking
Copy link

I would suggest also have a simple exporter to stdout (e.g. with JSON, like a Log).
This would make certain scenarios (like PaaS/FaaS), which have default ways for Logs with stdout easyer to operate.

@SergeyKanzhelev
Copy link
Member

JSON log can be used for FluentBit. We can consider defining message pack as well for telemetry types.

@bogdandrutu
Copy link
Member Author

I think just for JSON we should use proto to JSON, what do you think? Then we don't need to define anything for this.

@SergeyKanzhelev
Copy link
Member

I think just for JSON we should use proto to JSON, what do you think? Then we don't need to define anything for this.

@bogdandrutu let's have it as a primary plan. I have never dealt with proto JSON and not sure if we will discover any issues with this. From the looks of it - must be straightforward

@SergeyKanzhelev SergeyKanzhelev added this to the SDK complete milestone Jun 3, 2019
@iredelmeier
Copy link
Member

My experience with proto JSON has been subpar:

  • The produced JSON is generally verbose and unidiomatic
    • This is especially true for oneof fields, of which we'd often have many - I believe @jmacd has more to say on this
  • Support across languages is spotty
  • Documentation for the conversion is sparse. Using something like the grpc-gateway works, but is overkill and requires a lot of overhead

For me, the first point re: verbose and unidiomatic JSON is the biggest concern, and should be sufficient alone to give us pause since one of the biggest values is supposed to be human readability, e.g., for use during development.

@jmacd
Copy link
Contributor

jmacd commented Jun 5, 2019

I see a desire expressed here to support a human readable debugging log. One of the challenges there is that in the SpanData exporter model, the exporter doesn't see a span until it finishes. For debugging, I think it's pretty useful to see a log message when the span starts, and to see Span Events logged as they happen. To help demonstrate how we can achieve this outcome without sacrificing the other kinds of exporter, I put together a Golang prototype that supports observing events as they happen, without buffering, with the intention that higher-level exporters could be defined in terms of a lower-level exporter.

open-telemetry/opentelemetry-go#4

I also agree with @iredelmeier that the Protobuf-to-JSON support in Google's protobuf makes for human-unreadable JSON, mainly because of oneof fields.

@SergeyKanzhelev SergeyKanzhelev added area:sdk Related to the SDK and removed area:sdk Related to the SDK labels Jun 21, 2019
@iredelmeier iredelmeier added the needs discussion Need more information before all suitable labels can be applied label Jul 30, 2019
@SergeyKanzhelev SergeyKanzhelev modified the milestones: SDK proposal complete, Alpha v0.2 Sep 27, 2019
tigrannajaryan pushed a commit to tigrannajaryan/opentelemetry-specification that referenced this issue Oct 3, 2019
Based on previous discussion [1] this PR adds a recommendation to include
exporters for several open-source protocols in language libraries.

Addresses issue open-telemetry#6

[1] - open-telemetry#277 (comment)
bogdandrutu pushed a commit that referenced this issue Oct 5, 2019
* Add list of exporters that are recommended for SDK

Based on previous discussion [1] this PR adds a recommendation to include
exporters for several open-source protocols in language libraries.

Addresses issue #6

[1] - #277 (comment)

* PR fixes
SergeyKanzhelev pushed a commit to SergeyKanzhelev/opentelemetry-specification that referenced this issue Feb 18, 2020
* Add list of exporters that are recommended for SDK

Based on previous discussion [1] this PR adds a recommendation to include
exporters for several open-source protocols in language libraries.

Addresses issue open-telemetry#6

[1] - open-telemetry#277 (comment)

* PR fixes
rockb1017 pushed a commit to rockb1017/opentelemetry-specification that referenced this issue Nov 18, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area:sdk Related to the SDK needs discussion Need more information before all suitable labels can be applied
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants