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

Pre-release 1.0.0-RC1 #2013

Merged
merged 11 commits into from
Jun 18, 2021
Merged

Conversation

Aneurysm9
Copy link
Member

1.0.0-RC1 / 0.21.0

With this release we are introducing a split in module versions. The tracing API and SDK are entering the v1.0.0 Release Candidate phase with v1.0.0-RC1 while the experimental metrics API and SDK continue with v0.x releases at v0.21.0. Modules at major version 1 or greater will not depend on modules with major version 0.

Added

  • Adds otlpgrpc.WithRetryoption for configuring the retry policy for transient errors on the otlp/gRPC exporter. (Implement retry policy for the OTLP/gRPC exporter #1832)
    • The following status codes are defined as transient errors:
      gRPC Status Code Description
      1 Cancelled
      4 Deadline Exceeded
      8 Resource Exhausted
      10 Aborted
      10 Out of Range
      14 Unavailable
      15 Data Loss
  • Added Status type to the go.opentelemetry.io/otel/sdk/trace package to represent the status of a span. (Add Status type to SDK #1874)
  • Added SpanStub type and its associated functions to the go.opentelemetry.io/otel/sdk/trace/tracetest package.
    This type can be used as a testing replacement for the SpanSnapshot that was removed from the go.opentelemetry.io/otel/sdk/trace package. (Redefine ExportSpans of SpanExporter with ReadOnlySpan #1873)
  • Adds support for scheme in OTEL_EXPORTER_OTLP_ENDPOINT according to the spec. (Add support for scheme in OTEL_EXPORTER_OTLP_ENDPOINT #1886)
  • Adds trace.WithSchemaURL option for configuring the tracer with a Schema URL. (Add schema URL support to Tracer #1889)
  • Added an example of using OpenTelemetry Go as a trace context forwarder. (Add Passthrough example #1912)
  • ParseTraceState is added to the go.opentelemetry.io/otel/trace package.
    It can be used to decode a TraceState from a tracestate header string value. (#1937)
  • Added Len method to the TraceState type in the go.opentelemetry.io/otel/trace package.
    This method returns the number of list-members the TraceState holds. (#1937)
  • Creates package go.opentelemetry.io/otel/exporters/otlp/otlptrace that defines a trace exporter that uses a otlptrace.Client to send data.
    Creates package go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc implementing a gRPC otlptrace.Client and offers convenience functions, NewExportPipeline and InstallNewPipeline, to setup and install a otlptrace.Exporter in tracing .(OTLP trace gRPC exporter #1922)
  • Added Baggage, Member, and Property types to the go.opentelemetry.io/otel/baggage package along with their related functions. (Add baggage implementation based on the W3C and OpenTelemetry specification #1967)
  • Added ContextWithBaggage, ContextWithoutBaggage, and FromContext functions to the go.opentelemetry.io/otel/baggage package.
    These functions replace the Set, Value, ContextWithValue, ContextWithoutValue, and ContextWithEmpty functions from that package and directly work with the new Baggage type. (Add baggage implementation based on the W3C and OpenTelemetry specification #1967)
  • The OTEL_SERVICE_NAME environment variable is the preferred source for service.name, used by the environment resource detector if a service name is present both there and in OTEL_RESOURCE_ATTRIBUTES. (sdk/resource: honor OTEL_SERVICE_NAME in fromEnv resource detector #1969)
  • Creates package go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp implementing an HTTP otlptrace.Client and offers convenience functions, NewExportPipeline and InstallNewPipeline, to setup and install a otlptrace.Exporter in tracing. (add otlp trace http exporter #1963)
  • Changes go.opentelemetry.io/otel/sdk/resource.NewWithAttributes to require a schema URL. The old function is still available as resource.NewSchemaless. This is a breaking change. (Add Schema URL support to Resource #1938)
  • Several builtin resource detectors now correctly populate the schema URL. (Add Schema URL support to Resource #1938)
  • Creates package go.opentelemetry.io/otel/exporters/otlp/otlpmetric that defines a metrics exporter that uses a otlpmetric.Client to send data.
  • Creates package go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc implementing a gRPC otlpmetric.Client and offers convenience functions, New and NewUnstarted, to create an otlpmetric.Exporter.(OTLP metrics gRPC exporter #1991)
  • Added go.opentelemetry.io/otel/exporters/stdout/stdouttrace exporter. (Split stdout exporter into stdouttrace and stdoutmetric #2005)
  • Added go.opentelemetry.io/otel/exporters/stdout/stdoutmetric exporter. (Split stdout exporter into stdouttrace and stdoutmetric #2005)
  • Added a TracerProvider() method to the "go.opentelemetry.io/otel/trace".Span interface. This can be used to obtain a TracerProvider from a given span that utilizes the same trace processing pipeline. (Add span.TracerProvider() #2009)

Changed

Deprecated

Removed

  • Removed resource.WithoutBuiltin(). Use resource.New(). (Removed different types of Detectors for Resources. #1810)
  • Unexported types resource.FromEnv, resource.Host, and resource.TelemetrySDK, Use the corresponding With*() to use individually. (Removed different types of Detectors for Resources. #1810)
  • Removed the Tracer and IsRecording method from the ReadOnlySpan in the go.opentelemetry.io/otel/sdk/trace.
    The Tracer method is not a required to be included in this interface and given the mutable nature of the tracer that is associated with a span, this method is not appropriate.
    The IsRecording method returns if the span is recording or not.
    A read-only span value does not need to know if updates to it will be recorded or not.
    By definition, it cannot be updated so there is no point in communicating if an update is recorded. (Redefine ExportSpans of SpanExporter with ReadOnlySpan #1873)
  • Removed the SpanSnapshot type from the go.opentelemetry.io/otel/sdk/trace package.
    The use of this type has been replaced with the use of the explicitly immutable ReadOnlySpan type.
    When a concrete representation of a read-only span is needed for testing, the newly added SpanStub in the go.opentelemetry.io/otel/sdk/trace/tracetest package should be used. (Redefine ExportSpans of SpanExporter with ReadOnlySpan #1873)
  • Removed the Tracer method from the Span interface in the go.opentelemetry.io/otel/trace package.
    Using the same tracer that created a span introduces the error where an instrumentation library's Tracer is used by other code instead of their own.
    The "go.opentelemetry.io/otel".Tracer function or a TracerProvider should be used to acquire a library specific Tracer instead. (Remove the Tracer method from the Span API #1900)
    • The TracerProvider() method on the Span interface may also be used to obtain a TracerProvider using the same trace processing pipeline. (Add span.TracerProvider() #2009)
  • The http.url attribute generated by HTTPClientAttributesFromHTTPRequest will no longer include username or password information. (Do not include authentication information in the http.url attribute #1919)
  • Removed IsEmpty method of the TraceState type in the go.opentelemetry.io/otel/trace package in favor of using the added TraceState.Len method. (Refactor Tracestate #1931)
  • Removed Set, Value, ContextWithValue, ContextWithoutValue, and ContextWithEmpty functions in the go.opentelemetry.io/otel/baggage package.
    Handling of baggage is now done using the added Baggage type and related context functions (ContextWithBaggage, ContextWithoutBaggage, and FromContext) in that package. (Add baggage implementation based on the W3C and OpenTelemetry specification #1967)
  • The InstallNewPipeline and NewExportPipeline creation functions in all the exporters (prometheus, otlp, stdout, jaeger, and zipkin) have been removed.
    These functions were deemed premature attempts to provide convenience that did not achieve this aim. (Refactor exporter creation functions #1985)
  • The go.opentelemetry.io/otel/exporters/otlp exporter has been removed. Use go.opentelemetry.io/otel/exporters/otlp/otlptrace instead. (Remove old OTLP exporter #1990)
  • The go.opentelemetry.io/otel/exporters/stdout exporter has been removed. Use go.opentelemetry.io/otel/exporters/stdout/stdouttrace or go.opentelemetry.io/otel/exporters/stdout/stdoutmetric instead. (Split stdout exporter into stdouttrace and stdoutmetric #2005)

Fixed

@codecov
Copy link

codecov bot commented Jun 17, 2021

Codecov Report

Merging #2013 (728cb35) into main (694c9a4) will not change coverage.
The diff coverage is 100.0%.

Impacted file tree graph

@@          Coverage Diff          @@
##            main   #2013   +/-   ##
=====================================
  Coverage   73.0%   73.0%           
=====================================
  Files        171     171           
  Lines       8687    8687           
=====================================
  Hits        6348    6348           
  Misses      2070    2070           
  Partials     269     269           
Impacted Files Coverage Δ
version.go 100.0% <100.0%> (ø)

Copy link
Contributor

@MrAlias MrAlias left a comment

Choose a reason for hiding this comment

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

Looks good 🏅. As mentioned in the SIG meeting this needs updates to the website docs. My approval should persist with those changes added.

Signed-off-by: Anthony J Mirabella <[email protected]>
Copy link
Contributor

@jmacd jmacd left a comment

Choose a reason for hiding this comment

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

🎉

Copy link
Member

@XSAM XSAM left a comment

Choose a reason for hiding this comment

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

💯


## [1.0.0-RC1] / 0.21.0 - 2021-06-18

With this release we are introducing a split in module versions. The tracing API and SDK are entering the `v1.0.0` Release Candidate phase with `v1.0.0-RC1`
Copy link
Member

@pellared pellared Jun 18, 2021

Choose a reason for hiding this comment

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

How about changing the tag name to v1.0.0-rc.1
This is the convention that SemVer uses itself.
Example: https://semver.org/spec/v2.0.0-rc.1.html

Or at least v1.0.0-rc1 - I have never seen the capitals RC in tags before 😉

Copy link
Member Author

Choose a reason for hiding this comment

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

This was discussed in the SIG meeting and it is valid semver accepted by the Go module tooling. There's not a strong reason to change it. Plus, RC is an initialism and Go conventions dictate it be in all caps :)

Copy link
Member

Choose a reason for hiding this comment

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

OK😉

I also saw such patterns under: https://blog.golang.org/publishing-go-modules
And https://golang.org/ref/mod also has lowercase.
But it is not anything critical. Just a matter of taste 😄

@Aneurysm9 Aneurysm9 merged commit ced177b into open-telemetry:main Jun 18, 2021
@pellared pellared mentioned this pull request Sep 13, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants