Skip to content

Releases: open-telemetry/opentelemetry-go

Release v1.3.0/v0.26.0

10 Dec 16:47
v1.3.0
aedef05
Compare
Choose a tag to compare

⚠️ Notice ⚠️

We have updated the project minimum supported Go version to 1.16

Added

  • Added an internal Logger.
    This can be used by the SDK and API to provide users with feedback of the internal state.
    To enable verbose logs configure the logger which will print V(1) logs. For debugging information configure to print V(5) logs. (#2343)
  • Add the WithRetry Option and the RetryConfig type to the go.opentelemetry.io/otel/exporter/otel/otlpmetric/otlpmetrichttp package to specify retry behavior consistently. (#2425)
  • Add SpanStatusFromHTTPStatusCodeAndSpanKind to all semconv packages to return a span status code similar to SpanStatusFromHTTPStatusCode, but exclude 4XX HTTP errors as span errors if the span is of server kind. (#2296)

Changed

  • The "go.opentelemetry.io/otel/exporter/otel/otlptrace/otlptracegrpc".Client now uses the underlying gRPC ClientConn to handle name resolution, TCP connection establishment (with retries and backoff) and TLS handshakes, and handling errors on established connections by re-resolving the name and reconnecting. (#2329)
  • The "go.opentelemetry.io/otel/exporter/otel/otlpmetric/otlpmetricgrpc".Client now uses the underlying gRPC ClientConn to handle name resolution, TCP connection establishment (with retries and backoff) and TLS handshakes, and handling errors on established connections by re-resolving the name and reconnecting. (#2425)
  • The "go.opentelemetry.io/otel/exporter/otel/otlpmetric/otlpmetricgrpc".RetrySettings type is renamed to RetryConfig. (#2425)
  • The go.opentelemetry.io/otel/exporter/otel/* gRPC exporters now default to using the host's root CA set if none are provided by the user and WithInsecure is not specified. (#2432)
  • Change resource.Default to be evaluated the first time it is called, rather than on import. This allows the caller the option to update OTEL_RESOURCE_ATTRIBUTES first, such as with os.Setenv. (#2371)

Fixed

  • The go.opentelemetry.io/otel/exporter/otel/* exporters are updated to handle per-signal and universal endpoints according to the OpenTelemetry specification.
    Any per-signal endpoint set via an OTEL_EXPORTER_OTLP_<signal>_ENDPOINT environment variable is now used without modification of the path.
    When OTEL_EXPORTER_OTLP_ENDPOINT is set, if it contains a path, that path is used as a base path which per-signal paths are appended to. (#2433)
  • Basic metric controller updated to use sync.Map to avoid blocking calls (#2381)
  • The go.opentelemetry.io/otel/exporter/jaeger correctly sets the otel.status_code value to be a string of ERROR or OK instead of an integer code. (#2439, #2440)

Deprecated

  • Deprecated the "go.opentelemetry.io/otel/exporter/otel/otlpmetric/otlpmetrichttp".WithMaxAttempts Option, use the new WithRetry Option instead. (#2425)
  • Deprecated the "go.opentelemetry.io/otel/exporter/otel/otlpmetric/otlpmetrichttp".WithBackoff Option, use the new WithRetry Option instead. (#2425)

Removed

  • Remove the metric Processor's ability to convert cumulative to delta aggregation temporality. (#2350)
  • Remove the metric Bound Instruments interface and implementations. (#2399)
  • Remove the metric MinMaxSumCount kind aggregation and the corresponding OTLP export path. (#2423)
  • Metric SDK removes the "exact" aggregator for histogram instruments, as it performed a non-standard aggregation for OTLP export (creating repeated Gauge points) and worked its way into a number of confusing examples. (#2348)

Release v1.2.0/v0.25.0

12 Nov 16:48
v1.2.0
a65d50a
Compare
Choose a tag to compare

Changed

  • Metric SDK export.ExportKind, export.ExportKindSelector types have been renamed to aggregation.Temporality and aggregation.TemporalitySelector respectively to keep in line with current specification and protocol along with built-in selectors (e.g., aggregation.CumulativeTemporalitySelector, ...). (#2274)
  • The Metric Exporter interface now requires a TemporalitySelector method instead of an ExportKindSelector. (#2274)
  • Metrics API cleanup. The metric/sdkapi package has been created to relocate the API-to-SDK interface:
    • The following interface types simply moved from metric to metric/sdkapi: Descriptor, MeterImpl, InstrumentImpl, SyncImpl, BoundSyncImpl, AsyncImpl, AsyncRunner, AsyncSingleRunner, and AsyncBatchRunner
    • The following struct types moved and are replaced with type aliases, since they are exposed to the user: Observation, Measurement.
    • The No-op implementations of sync and async instruments are no longer exported, new functions sdkapi.NewNoopAsyncInstrument() and sdkapi.NewNoopSyncInstrument() are provided instead. (#2271)
  • Update the SDK BatchSpanProcessor to export all queued spans when ForceFlush is called. (#2080, #2335)

Added

  • Add the "go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc".WithGRPCConn option so the exporter can reuse an existing gRPC connection. (#2002)
  • Added a new schema module to help parse Schema Files in OTEP 0152 format. (#2267)
  • Added a new MapCarrier to the go.opentelemetry.io/otel/propagation package to hold propagated coss-cutting concerns as a map[string]string held in memory. (#2334)

Release v1.1.0

27 Oct 19:25
v1.1.0
4021872
Compare
Choose a tag to compare

Added

  • Add the "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc".WithGRPCConn option so the exporter can reuse an existing gRPC connection. (#2002)
  • Add the go.opentelemetry.io/otel/semconv/v1.7.0 package.
    The package contains semantic conventions from the v1.7.0 version of the OpenTelemetry specification. (#2320)
  • Add the go.opentelemetry.io/otel/semconv/v1.6.1 package.
    The package contains semantic conventions from the v1.6.1 version of the OpenTelemetry specification. (#2321)
  • Add the go.opentelemetry.io/otel/semconv/v1.5.0 package.
    The package contains semantic conventions from the v1.5.0 version of the OpenTelemetry specification. (#2322)
    • When upgrading from the semconv/v1.4.0 package note the following name changes:
      • K8SReplicasetUIDKey -> K8SReplicaSetUIDKey
      • K8SReplicasetNameKey -> K8SReplicaSetNameKey
      • K8SStatefulsetUIDKey -> K8SStatefulSetUIDKey
      • k8SStatefulsetNameKey -> K8SStatefulSetNameKey
      • K8SDaemonsetUIDKey -> K8SDaemonSetUIDKey
      • K8SDaemonsetNameKey -> K8SDaemonSetNameKey

Changed

  • Links added to a span will be dropped by the SDK if they contain an invalid span context (#2275).

Fixed

  • The "go.opentelemetry.io/otel/semconv/v1.4.0".HTTPServerAttributesFromHTTPRequest now correctly only sets the HTTP client IP attribute even if the connection was routed with proxies and there are multiple addresses in the X-Forwarded-For header. (#2282, #2284)
  • The "go.opentelemetry.io/otel/semconv/v1.4.0".NetAttributesFromHTTPRequest function correctly handles IPv6 addresses as IP addresses and sets the correct net peer IP instead of the net peer hostname attribute. (#2283, #2285)
  • The simple span processor shutdown method deterministically returns the exporter error status if it simultaneously finishes when the deadline is reached. (#2290, #2289)

Release v1.0.1/Metrics v0.24.0

01 Oct 20:26
v1.0.1
7372752
Compare
Choose a tag to compare

1.0.1 - 2021-10-01

Fixed

  • json stdout exporter no longer crashes due to concurrency bug. (#2265)

Metrics 0.24.0 - 2021-10-01

Changed

  • NoopMeterProvider is now private and NewNoopMeterProvider must be used to obtain a noopMeterProvider. (#2237)
  • The Metric SDK Export() function takes a new two-level reader interface for iterating over results one instrumentation library at a time. (#2197)
    • The former "go.opentelemetry.io/otel/sdk/export/metric".CheckpointSet is renamed Reader.
    • The new interface is named "go.opentelemetry.io/otel/sdk/export/metric".InstrumentationLibraryReader.

Release v1.0.0

20 Sep 20:21
v1.0.0
92551d3
Compare
Choose a tag to compare

This is the first stable release for the project.
This release includes an API and SDK for the tracing signal that will comply with the stability guarantees defined by the projects versioning policy.

Added

  • OTLP trace exporter now sets the SchemaURL field in the exported telemetry if the Tracer has WithSchemaURL option. (#2242)

Fixed

  • Slice-valued attributes can correctly be used as map keys. (#2223)

Removed

  • Removed the "go.opentelemetry.io/otel/exporters/zipkin".WithSDKOptions function. (#2248)
  • Removed the deprecated package go.opentelemetry.io/otel/oteltest. (#2234)
  • Removed the deprecated package go.opentelemetry.io/otel/bridge/opencensus/utils. (#2233)
  • Removed deprecated functions, types, and methods from go.opentelemetry.io/otel/attribute package.
    Use the typed functions and methods added to the package instead. (#2235)
    • The Key.Array method is removed.
    • The Array function is removed.
    • The Any function is removed.
    • The ArrayValue function is removed.
    • The AsArray function is removed.

Release v1.0.0-RC3

03 Sep 15:29
v1.0.0-RC3
4bfa003
Compare
Choose a tag to compare

1.0.0-RC3 - 2021-09-03

Added

  • Added ErrorHandlerFunc to use a function as an "go.opentelemetry.io/otel".ErrorHandler. (#2149)
  • Added "go.opentelemetry.io/otel/trace".WithStackTrace option to add a stack trace when using span.RecordError or when panic is handled in span.End. (#2163)
  • Added typed slice attribute types and functionality to the go.opentelemetry.io/otel/attribute package to replace the existing array type and functions. (#2162)
    • BoolSlice, IntSlice, Int64Slice, Float64Slice, and StringSlice replace the use of the Array function in the package.
  • Added the go.opentelemetry.io/otel/example/fib example package.
    Included is an example application that computes Fibonacci numbers. (#2203)

Changed

  • Metric instruments have been renamed to match the (feature-frozen) metric API specification:
    • ValueRecorder becomes Histogram
    • ValueObserver becomes Gauge
    • SumObserver becomes CounterObserver
    • UpDownSumObserver becomes UpDownCounterObserver
      The API exported from this project is still considered experimental. (#2202)
  • Metric SDK/API implementation type InstrumentKind moves into sdkapi sub-package. (#2091)
  • The Metrics SDK export record no longer contains a Resource pointer, the SDK "go.opentelemetry.io/otel/sdk/trace/export/metric".Exporter.Export() function for push-based exporters now takes a single Resource argument, pull-based exporters use "go.opentelemetry.io/otel/sdk/metric/controller/basic".Controller.Resource(). (#2120)
  • The JSON output of the go.opentelemetry.io/otel/exporters/stdout/stdouttrace is harmonized now such that the output is "plain" JSON objects after each other of the form { ... } { ... } { ... }. Earlier the JSON objects describing a span were wrapped in a slice for each Exporter.ExportSpans call, like [ { ... } ][ { ... } { ... } ]. Outputting JSON object directly after each other is consistent with JSON loggers, and a bit easier to parse and read. (#2196)
  • Update the NewTracerConfig, NewSpanStartConfig, NewSpanEndConfig, and NewEventConfig function in the go.opentelemetry.io/otel/trace package to return their respective configurations as structs instead of pointers to the struct. (#2212)

Deprecated

  • The go.opentelemetry.io/otel/bridge/opencensus/utils package is deprecated.
    All functionality from this package now exists in the go.opentelemetry.io/otel/bridge/opencensus package.
    The functions from that package should be used instead. (#2166)
  • The "go.opentelemetry.io/otel/attribute".Array function and the related ARRAY value type is deprecated.
    Use the typed *Slice functions and types added to the package instead. (#2162)
  • The "go.opentelemetry.io/otel/attribute".Any function is deprecated.
    Use the typed functions instead. (#2181)
  • The go.opentelemetry.io/otel/oteltest package is deprecated.
    The "go.opentelemetry.io/otel/sdk/trace/tracetest".SpanRecorder can be registered with the default SDK (go.opentelemetry.io/otel/sdk/trace) as a SpanProcessor and used as a replacement for this deprecated package. (#2188)

Removed

  • Removed metrics test package go.opentelemetry.io/otel/sdk/export/metric/metrictest. (#2105)

Fixed

  • The fromEnv detector no longer throws an error when OTEL_RESOURCE_ATTRIBUTES environment variable is not set or empty. (#2138)
  • Setting the global ErrorHandler with "go.opentelemetry.io/otel".SetErrorHandler multiple times is now supported. (#2160, #2140)
  • The "go.opentelemetry.io/otel/attribute".Any function now supports int32 values. (#2169)
  • Multiple calls to "go.opentelemetry.io/otel/sdk/metric/controller/basic".WithResource() are handled correctly, and when no resources are provided "go.opentelemetry.io/otel/sdk/resource".Default() is used. (#2120)
  • The WithoutTimestamps option for the go.opentelemetry.io/otel/exporters/stdout/stdouttrace exporter causes the exporter to correctly ommit timestamps. (#2195)
  • Fixed typos in resources.go. (#2201)

Release v1.0.0-RC2

26 Jul 19:13
v1.0.0-RC2
7939841
Compare
Choose a tag to compare

Added

  • Added WithOSDescription resource configuration option to set OS (Operating System) description resource attribute (os.description). (#1840)
  • Added WithOS resource configuration option to set all OS (Operating System) resource attributes at once. (#1840)
  • Added the WithRetry option to the go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp package.
    This option is a replacement for the removed WithMaxAttempts and WithBackoff options. (#2095)
  • Added API LinkFromContext to return Link which encapsulates SpanContext from provided context and also encapsulates attributes. (#2115)
  • Added a new Link type under the SDK otel/sdk/trace package that counts the number of attributes that were dropped for surpassing the AttributePerLinkCountLimit configured in the Span's SpanLimits.
    This new type replaces the equal-named API Link type found in the otel/trace package for most usages within the SDK.
    For example, instances of this type are now returned by the Links() function of ReadOnlySpans provided in places like the OnEnd function of SpanProcessor implementations. (#2118)

Changed

  • The SpanModels function is now exported from the go.opentelemetry.io/otel/exporters/zipkin package to convert OpenTelemetry spans into Zipkin model spans. (#2027)
  • Rename the "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc".RetrySettings to RetryConfig. (#2095)
  • Rename the "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp".RetrySettings to RetryConfig. (#2095)

Deprecated

  • The TextMapCarrier and TextMapPropagator from the go.opentelemetry.io/otel/oteltest package and their associated creation functions (TextMapCarrier, NewTextMapPropagator) are deprecated. (#2114)
  • The Harness type from the go.opentelemetry.io/otel/oteltest package and its associated creation function, NewHarness are deprecated and will be removed in the next release. (#2123)
  • The TraceStateFromKeyValues function from the go.opentelemetry.io/otel/oteltest package is deprecated.
    Use the trace.ParseTraceState function instead. (#2122)

Removed

  • Removed the deprecated package go.opentelemetry.io/otel/exporters/trace/jaeger. (#2020)
  • Removed the deprecated package go.opentelemetry.io/otel/exporters/trace/zipkin. (#2020)
  • Removed the "go.opentelemetry.io/otel/sdk/resource".WithBuiltinDetectors function.
    The explicit With* options for every built-in detector should be used instead. (#2026 #2097)
  • Removed the WithMaxAttempts and WithBackoff options from the go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp package.
    The retry logic of the package has been updated to match the otlptracegrpc package and accordingly a WithRetry option is added that should be used instead. (#2095)
  • Removed DroppedAttributeCount field from otel/trace.Link struct. (#2118)

Fixed

  • When using WithNewRoot, don't use the parent context for making sampling decisions. (#2032)
  • oteltest.Tracer now creates a valid SpanContext when using WithNewRoot. (#2073)
  • OS type detector now sets the correct dragonflybsd value for DragonFly BSD. (#2092)
  • The OTel span status is correctly transformed into the OTLP status in the go.opentelemetry.io/otel/exporters/otlp/otlptrace package.
    This fix will by default set the status to Unset if it is not explicitly set to Ok or Error. (#2099 #2102)
  • The Inject method for the "go.opentelemetry.io/otel/propagation".TraceContext type no longer injects empty tracestate values. (#2108)

Experimental Metrics Release v0.22.0

19 Jul 21:03
metric/v0.22.0
647af3a
Compare
Choose a tag to compare

[Experimental Metrics v0.22.0] - 2021-07-19

Added

  • Adds HTTP support for OTLP metrics exporter. (#2022)

Removed

  • Removed the deprecated package go.opentelemetry.io/otel/exporters/metric/prometheus. (#2020)

Release v1.0.0-RC1

18 Jun 15:35
v1.0.0-RC1
ced177b
Compare
Choose a tag to compare

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 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. (#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. (#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. (#1873)
  • Adds support for scheme in OTEL_EXPORTER_OTLP_ENDPOINT according to the spec. (#1886)
  • Adds trace.WithSchemaURL option for configuring the tracer with a Schema URL. (#1889)
  • Added an example of using OpenTelemetry Go as a trace context forwarder. (#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 .(#1922)
  • Added Baggage, Member, and Property types to the go.opentelemetry.io/otel/baggage package along with their related functions. (#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. (#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. (#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. (#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. (#1938)
  • Several builtin resource detectors now correctly populate the schema URL. (#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.(#1991)
  • Added go.opentelemetry.io/otel/exporters/stdout/stdouttrace exporter. (#2005)
  • Added go.opentelemetry.io/otel/exporters/stdout/stdoutmetric exporter. (#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. (#2009)

Changed

  • Make NewSplitDriver from go.opentelemetry.io/otel/exporters/otlp take variadic arguments instead of a SplitConfig item.
    NewSplitDriver now automatically implements an internal noopDriver for SplitConfig fields that are not initialized. (#1798)
  • resource.New() now creates a Resource without builtin detectors. Previous behavior is now achieved by using WithBuiltinDetectors Option. (#1810)
  • Move the Event type from the go.opentelemetry.io/otel package to the go.opentelemetry.io/otel/sdk/trace package. (#1846)
  • CI builds validate against last two versions of Go, dropping 1.14 and adding 1.16. (#1865)
  • BatchSpanProcessor now report export failures when calling ForceFlush() method. (#1860)
  • Set.Encoded(Encoder) no longer caches the result of an encoding. (#1855)
  • Renamed CloudZoneKey to CloudAvailabilityZoneKey in Resource semantic conventions according to spec. (#1871)
  • The StatusCode and StatusMessage methods of the ReadOnlySpan interface and the Span produced by the go.opentelemetry.io/otel/sdk/trace package have been replaced with a single Status method.
    This method returns the status of a span using the new Status type. (#1874)
  • Updated ExportSpans method of theSpanExporter interface type to accept ReadOnlySpans instead of the removed SpanSnapshot.
    This brings the export interface into compliance with the specification in that it now accepts an explicitly immutable type instead of just an implied one. (#1873)
  • Unembed SpanContext in Link. (#1877)
  • Generate Semantic conventions from the specification YAML. (#1891)
  • Spans created by the global Tracer obtained from go.opentelemetry.io/otel, prior to a functioning TracerProvider being set, now propagate the span context from their parent if one exists. (#1901)
  • The "go.opentelemetry.io/otel".Tracer function now accepts tracer options. (#1902)
  • Move the go.opentelemetry.io/otel/unit package to go.opentelemetry.io/otel/metric/unit. (#1903)
  • Changed go.opentelemetry.io/otel/trace.TracerConfig to conform to the Contributing guidelines (#1921)
  • Changed go.opentelemetry.io/otel/trace.SpanConfig to conform to the Contributing guidelines. (#1921)
  • Changed span.End() now only accepts Options that are allowed at End(). (#1921)
  • Changed go.opentelemetry.io/otel/metric.InstrumentConfig to conform to the Contributing guidelines. (#1921)
  • Changed go.opentelemetry.io/otel/metric.MeterConfig to conform to the Contributing guidelines. (#1921)
  • Refactored option types according to the contribution style guide. (#1882)
  • Move the go.opentelemetry.io/otel/trace.TraceStateFromKeyValues function to the go.opentelemetry.io/otel/oteltest package.
    This function is preserved for testing purposes where it may be useful to create a TraceState from attribute.KeyValues, but it is not intended for production use.
    The new ParseTraceState function should be used to create a TraceState. (#1931)
  • Updated MarshalJSON method of the go.opentelemetry.io/otel/trace.TraceState type to marshal the type into the string representation of the TraceState. (#1931)
  • The TraceState.Delete method from the go.opentelemetry.io/otel/trace package no longer returns an error in addition to a TraceState. (#1931)
  • Updated Get method of the TraceState type from the go.opentelemetry.io/otel/trace package to accept a string instead of an attribute.Key type. (#1931)
  • Updated Insert method of the TraceState type from the go.opentelemetry.io/otel/trace package to accept a pair of strings instead of an attribute.KeyValue type. (#1931)
  • Updated Delete method of the TraceState type from the go.opentelemetry.io/otel/trace package to accept a string instead of an attribute.Key type. (#1931)
  • Renamed NewExporter to New in the go.opentelemetry.io/otel/exporters/stdout package. (#1985)
  • Renamed NewExporter to New in the go.opentelemetry.io/otel/exporters/metric/prometheus package. (#1985)
  • Renamed NewExporter to New in the go.opentelemetry.io/otel/exporters/trace/jaeger package. (#1985)
  • Renamed NewExporter to New in the go.opentelemetry.io/otel/exporters/trace/zipkin package. (#1985)
  • Renamed NewExporter to New in the go.opentelemetry.io/otel/exporters/otlp package. (#1985)
  • Renamed NewUnstartedExporter to NewUnstarted in the go.opentelemetry.io/otel/exporters/otlp package. (#1985)
  • The go.opentelemetry.io/otel/semconv package has been moved to go.opentelemetry.io/otel/semconv/v1.4.0 to allow for multiple telemetry schema versions to be used concurrently. (#1987)
  • Metrics test helpers in go.opentelemetry.io/otel/oteltest have been moved to go.opentelemetry.io/otel/metric/metrictest. (#1988)

Deprecated

  • The go.opentelemetry.io/otel/exporters/metric/prometheus is deprecated, use go.opentelemetry.io/otel/exporters/prometheus instead. (#1993)
  • The go.opentelemetry.io/otel/exporters/trace/jaeger is deprecated, use go.opentelemetry.io/otel/exporters/jaeger instead. (#1993)
  • The go.opentelemetry.io/otel/exporters/trace/zipkin is deprecated, use go.opentelemetry.io/otel/exporters/zipkin instead. (#1993)

Removed

  • Removed resource.WithoutBuiltin(). Use resource.New(). (#1810)
  • Unexported types resource.FromEnv, resource.Host, and resource.TelemetrySDK, Use the corresponding With*() to use individually. (#1810)
  • Removed the `Trac...
Read more

Release v0.20.0

23 Apr 18:26
v0.20.0
02d8bdd
Compare
Choose a tag to compare

Added

  • The OTLP exporter now has two new convenience functions, NewExportPipeline and InstallNewPipeline, setup and install the exporter in tracing and metrics pipelines. (#1373)
  • Adds semantic conventions for exceptions. (#1492)
  • Added Jaeger Environment variables: OTEL_EXPORTER_JAEGER_AGENT_HOST, OTEL_EXPORTER_JAEGER_AGENT_PORT
    These environment variables can be used to override Jaeger agent hostname and port (#1752)
  • Option ExportTimeout was added to batch span processor. (#1755)
  • trace.TraceFlags is now a defined type over byte and WithSampled(bool) TraceFlags and IsSampled() bool methods have been added to it. (#1770)
  • The Event and Link struct types from the go.opentelemetry.io/otel package now include a DroppedAttributeCount field to record the number of attributes that were not recorded due to configured limits being reached. (#1771)
  • The Jaeger exporter now reports dropped attributes for a Span event in the exported log. (#1771)
  • Adds test to check BatchSpanProcessor ignores OnEnd and ForceFlush post Shutdown. (#1772)
  • Extract resource attributes from the OTEL_RESOURCE_ATTRIBUTES environment variable and merge them with the resource.Default resource as well as resources provided to the TracerProvider and metric Controller. (#1785)
  • Added WithOSType resource configuration option to set OS (Operating System) type resource attribute (os.type). (#1788)
  • Added WithProcess* resource configuration options to set Process resource attributes. (#1788)
    • process.pid
    • process.executable.name
    • process.executable.path
    • process.command_args
    • process.owner
    • process.runtime.name
    • process.runtime.version
    • process.runtime.description
  • Adds k8s.node.name and k8s.node.uid attribute keys to the semconv package. (#1789)
  • Added support for configuring OTLP/HTTP and OTLP/gRPC Endpoints, TLS Certificates, Headers, Compression and Timeout via Environment Variables. (#1758, #1769 and #1811)
    • OTEL_EXPORTER_OTLP_ENDPOINT
    • OTEL_EXPORTER_OTLP_TRACES_ENDPOINT
    • OTEL_EXPORTER_OTLP_METRICS_ENDPOINT
    • OTEL_EXPORTER_OTLP_HEADERS
    • OTEL_EXPORTER_OTLP_TRACES_HEADERS
    • OTEL_EXPORTER_OTLP_METRICS_HEADERS
    • OTEL_EXPORTER_OTLP_COMPRESSION
    • OTEL_EXPORTER_OTLP_TRACES_COMPRESSION
    • OTEL_EXPORTER_OTLP_METRICS_COMPRESSION
    • OTEL_EXPORTER_OTLP_TIMEOUT
    • OTEL_EXPORTER_OTLP_TRACES_TIMEOUT
    • OTEL_EXPORTER_OTLP_METRICS_TIMEOUT
    • OTEL_EXPORTER_OTLP_CERTIFICATE
    • OTEL_EXPORTER_OTLP_TRACES_CERTIFICATE
    • OTEL_EXPORTER_OTLP_METRICS_CERTIFICATE
  • Adds otlpgrpc.WithTimeout option for configuring timeout to the otlp/gRPC exporter. (#1821)

Fixed

  • The Span.IsRecording implementation from go.opentelemetry.io/otel/sdk/trace always returns false when not being sampled. (#1750)
  • The Jaeger exporter now correctly sets tags for the Span status code and message.
    This means it uses the correct tag keys ("otel.status_code", "otel.status_description") and does not set the status message as a tag unless it is set on the span. (#1761)
  • The Jaeger exporter now correctly records Span event's names using the "event" key for a tag.
    Additionally, this tag is overridden, as specified in the OTel specification, if the event contains an attribute with that key. (#1768)
  • Zipkin Exporter: Ensure mapping between OTel and Zipkin span data complies with the specification. (#1688)
  • Fixed typo for default service name in Jaeger Exporter. (#1797)
  • Fix flaky OTLP for the reconnnection of the client connection. (#1527, #1814)

Changed

  • Span RecordError now records an exception event to comply with the semantic convention specification. (#1492)
  • Jaeger exporter was updated to use thrift v0.14.1. (#1712)
  • Migrate from using internally built and maintained version of the OTLP to the one hosted at go.opentelemetry.io/proto/otlp. (#1713)
  • Migrate from using github.com/gogo/protobuf to google.golang.org/protobuf to match go.opentelemetry.io/proto/otlp. (#1713)
  • The storage of a local or remote Span in a context.Context using its SpanContext is unified to store just the current Span.
    The Span's SpanContext can now self-identify as being remote or not.
    This means that "go.opentelemetry.io/otel/trace".ContextWithRemoteSpanContext will now overwrite any existing current Span, not just existing remote Spans, and make it the current Span in a context.Context. (#1731)
  • Improve OTLP/gRPC exporter connection errors. (#1737)
  • Information about a parent span context in a "go.opentelemetry.io/otel/export/trace".SpanSnapshot is unified in a new Parent field.
    The existing ParentSpanID and HasRemoteParent fields are removed in favor of this. (#1748)
  • The ParentContext field of the "go.opentelemetry.io/otel/sdk/trace".SamplingParameters is updated to hold a context.Context containing the parent span.
    This changes it to make SamplingParameters conform with the OpenTelemetry specification. (#1749)
  • Updated Jaeger Environment Variables: JAEGER_ENDPOINT, JAEGER_USER, JAEGER_PASSWORD
    to OTEL_EXPORTER_JAEGER_ENDPOINT, OTEL_EXPORTER_JAEGER_USER, OTEL_EXPORTER_JAEGER_PASSWORD
    in compliance with OTel spec (#1752)
  • Modify BatchSpanProcessor.ForceFlush to abort after timeout/cancellation. (#1757)
  • The DroppedAttributeCount field of the Span in the go.opentelemetry.io/otel package now only represents the number of attributes dropped for the span itself.
    It no longer is a conglomerate of itself, events, and link attributes that have been dropped. (#1771)
  • Make ExportSpans in Jaeger Exporter honor context deadline. (#1773)
  • Modify Zipkin Exporter default service name, use default resouce's serviceName instead of empty. (#1777)
  • The go.opentelemetry.io/otel/sdk/export/trace package is merged into the go.opentelemetry.io/otel/sdk/trace package. (#1778)
  • The prometheus.InstallNewPipeline example is moved from comment to example test (#1796)
  • The convenience functions for the stdout exporter have been updated to return the TracerProvider implementation and enable the shutdown of the exporter. (#1800)
  • Replace the flush function returned from the Jaeger exporter's convenience creation functions (InstallNewPipeline and NewExportPipeline) with the TracerProvider implementation they create.
    This enables the caller to shutdown and flush using the related TracerProvider methods. (#1822)
  • Updated the Jaeger exporter to have a default enpoint, http://localhost:14250, for the collector. (#1824)
  • Changed the function WithCollectorEndpoint in the Jaeger exporter to no longer accept an endpoint as an argument.
    The endpoint can be passed with the CollectorEndpointOption using the WithEndpoint function or by setting the OTEL_EXPORTER_JAEGER_ENDPOINT environment variable value appropriately. (#1824)
  • The Jaeger exporter no longer batches exported spans itself, instead it relies on the SDK's BatchSpanProcessor for this functionality. (#1830)
  • The Jaeger exporter creation functions (NewRawExporter, NewExportPipeline, and InstallNewPipeline) no longer accept the removed Option type as a variadic argument. (#1830)

Removed

  • Removed Jaeger Environment variables: JAEGER_SERVICE_NAME, JAEGER_DISABLED, JAEGER_TAGS
    These environment variables will no longer be used to override values of the Jaeger exporter (#1752)
  • No longer set the links for a Span in go.opentelemetry.io/otel/sdk/trace that is configured to be a new root.
    This is unspecified behavior that the OpenTelemetry community plans to standardize in the future.
    To prevent backwards incompatible changes when it is specified, these links are removed. (#1726)
  • Setting error status while recording error with Span from oteltest package. (#1729)
  • The concept of a remote and local Span stored in a context is unified to just the current Span.
    Because of this "go.opentelemetry.io/otel/trace".RemoteSpanContextFromContext is removed as it is no longer needed.
    Instead, "go.opentelemetry.io/otel/trace".SpanContextFromContex can be used to return the current Span.
    If needed, that Span's SpanContext.IsRemote() can then be used to determine if it is remote or not. (#1731)
  • The HasRemoteParent field of the "go.opentelemetry.io/otel/sdk/trace".SamplingParameters is removed.
    This field is redundant to the information returned from the Remote method of the SpanContext held in the ParentContext field. (#1749)
  • The trace.FlagsDebug and trace.FlagsDeferred constants have been removed and will be localized to the B3 propagator. (#1770)
  • Remove Process configuration, WithProcessFromEnv and ProcessFromEnv, and type from the Jaeger exporter package.
    The information that could be configured in the Process struct should be configured in a Resource instead. (#1776, #1804)
  • Remove the WithDisabled option from the Jaeger exporter.
    To disable the exporter unregister it from the TracerProvider or use a no-operation TracerProvider. (#1806)
  • Removed the functions CollectorEndpointFromEnv and WithCollectorEndpointOptionFromEnv from the Jaeger exporter.
    These functions for retrieving specific environment variable values are redundant of other internal functions and
    are not intended for end user use. (#1824)
  • Removed the Jaeger exporter WithSDKOptions Option.
    This option was used to set SDK options for the exporter creation convenience functions.
    These functions are provided as a way to easily setup or install the exporter with what are deemed reasonable SDK settings for common use cases.
    If the SDK needs to be configured differently, the NewRawExporter function and direct setup of the SDK with the desired settings should be used. (#1825)
  • The WithBufferMaxCount and WithBatchMaxCount `Optio...
Read more