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

TC Review of Trace API / SDK #299

Closed
21 of 23 tasks
jsuereth opened this issue Oct 26, 2021 · 6 comments
Closed
21 of 23 tasks

TC Review of Trace API / SDK #299

jsuereth opened this issue Oct 26, 2021 · 6 comments
Labels
spec A change to the SDK specification that must be implemented.

Comments

@jsuereth
Copy link

jsuereth commented Oct 26, 2021

This tracks the status of the TC review for 1.0 Trace release of OpenTelemetry C++

Status

  • Review Compliance Matrix
    • Traces
    • Baggage
    • Resource
    • Context Propagation
    • Environment Variables
    • Exporters
  • Review Versioning and Stability policy enforcement
    • API
    • SDK
  • Ensure Consistent names across implementation
  • Avoid confusions across implementation (e.g. same public API has different behaviors)
  • Ensure no experimental features (signals) are part of the released packages (e.g. api, sdk, etc.).

Open TODOs / Cleanups

Optional Cleanup TODOs

  • Jaeger exporter should fast-follow GA. Looks like it can be added in a non-breaking way
  • HTTP OTLP exporter retries.

See open-telemetry/opentelemetry-specification#1418 for process details.

@jsuereth jsuereth added the spec A change to the SDK specification that must be implemented. label Oct 26, 2021
@tsloughter
Copy link
Member

tsloughter commented Oct 28, 2021

Did a rundown of the compliance matrix and noted what I need to update and what we need to still do. I'm including everything here even though some we will not want to do before the 1.0 release.

I'll send a PR to the spec repo in the morning to update the matrix to mark the following as completed:

  • TracerProvider:
    • ForceFlush
    • Shutdown
  • Span Linking:
    • Links can be recorded on span creation
    • Link order is preserved
  • Span exceptions:
    • RecordException
    • RecordException with extra parameters
  • SpanProcessor ForceFlush
  • Composite Propagator
  • Environment variables:
    • OTEL_EXPORTER_OTLP_*
  • Exporter:
    • ForceFlush

For what is still not done in the matrix there is a mix of what should be done before 1.0 and what we can probably wait to do after, but I'm not positive about each.

What we should probably get done:

All the exporter ones can probably wait, though I have already started on some rework of the exporter that will make some of it easier.

  • Exporter:
    • OTLP/HTTP JSON Protobuf Exporter
    • OTLP/HTTP gzip Content-Encoding support
    • Concurrent sending
    • Honors retryable responses with backoff
    • Honors non-retryable responses
    • Honors throttling response
    • Multi-destination spec compliance
      • This works for grpc already
    • SchemaURL in ResourceSpans and InstrumentationLibrarySpans
    • Zipkin:
      • InstrumentationLibrary mapping
      • Error Status mapping
      • Integer microseconds in timestamps
    • Jaeger

@bryannaegele
Copy link
Contributor

bryannaegele commented Nov 28, 2021

Just doing some organization over to issues.

1.0 GA Items

  • Simple Span Processor
  • IdGenerators
  • Size limits:
    • events collection size limit
    • attribute collection size limit
    • links collection size limit
  • SpanLimits
  • Attribute Limits
  • Environment Variables:
    • =OTEL_SERVICE_NAME=
  • Schema URL
  • Resource detectors populate Schema URL
  • Tracer:

Post 1.0 GA Items - Exporters

  • OTLP/HTTP JSON Protobuf Exporter
  • OTLP/HTTP gzip Content-Encoding support
  • Concurrent sending
  • Honors retryable responses with backoff
  • Honors non-retryable responses
  • Honors throttling response
  • Multi-destination spec compliance
    • grpc
  • SchemaURL in ResourceSpans and InstrumentationLibrarySpans
  • Zipkin:
    • Env variable: =OTEL_EXPORTER_ZIPKIN_*=
    • InstrumentationLibrary mapping
    • Error Status mapping
    • Integer microseconds in timestamps
  • Jaeger

@tsloughter
Copy link
Member

I've been procrastinating on limits again because they are a little annoying.

They are yet another global configuration that I guess I have to shove in a persistent term to be read every time a span operation is done.

I wish these, like a number of other things (like propagators, which won't be configurable per-library like other stuff if Tracers become configurable per instrumentation library) were just part of the Tracer and modifying Spans went through the Tracer, but they aren't.

But I will knock it out this week I guess.

@jsuereth
Copy link
Author

AFAIK - span limits don't need to change post-startup. Is that an expectation in erlang?

@bryannaegele
Copy link
Contributor

Nah. We just have no limits at all right now

@tsloughter
Copy link
Member

Closing, 1.0 was released a month ago. Thanks everyone!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
spec A change to the SDK specification that must be implemented.
Projects
None yet
Development

No branches or pull requests

3 participants