159 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
This project adheres to Semantic Versioning.
Unreleased
1.14.0/0.37.0/0.0.4 2023-02-27
This release is the last to support Go 1.18. The next release will require at least Go 1.19.
Added
- The
eventtype semantic conventions are added togo.opentelemetry.io/otel/semconv/v1.17.0. (#3697) - Support Go 1.20. (#3693)
- The
go.opentelemetry.io/otel/semconv/v1.18.0package. The package contains semantic conventions from thev1.18.0version of the OpenTelemetry specification. (#3719)- The following
constrenames fromgo.opentelemetry.io/otel/semconv/v1.17.0are included:OtelScopeNameKey->OTelScopeNameKeyOtelScopeVersionKey->OTelScopeVersionKeyOtelLibraryNameKey->OTelLibraryNameKeyOtelLibraryVersionKey->OTelLibraryVersionKeyOtelStatusCodeKey->OTelStatusCodeKeyOtelStatusDescriptionKey->OTelStatusDescriptionKeyOtelStatusCodeOk->OTelStatusCodeOkOtelStatusCodeError->OTelStatusCodeError
- The following
funcrenames fromgo.opentelemetry.io/otel/semconv/v1.17.0are included:OtelScopeName->OTelScopeNameOtelScopeVersion->OTelScopeVersionOtelLibraryName->OTelLibraryNameOtelLibraryVersion->OTelLibraryVersionOtelStatusDescription->OTelStatusDescription
- The following
- A
IsSampledmethod is added to theSpanContextimplementation ingo.opentelemetry.io/otel/bridge/opentracingto expose the span sampled state. See the README for more information. (#3570) - The
WithInstrumentationAttributesoption togo.opentelemetry.io/otel/metric. (#3738) - The
WithInstrumentationAttributesoption togo.opentelemetry.io/otel/trace. (#3739) - The following environment variables are supported by the periodic
Readeringo.opentelemetry.io/otel/sdk/metric. (#3763)OTEL_METRIC_EXPORT_INTERVALsets the time between collections and exports.OTEL_METRIC_EXPORT_TIMEOUTsets the timeout an export is attempted.
Changed
- Fall-back to
TextMapCarrierwhen it's notHttpHeaders ingo.opentelemetry.io/otel/bridge/opentracing. (#3679) - The
Collectmethod of the"go.opentelemetry.io/otel/sdk/metric".Readerinterface is updated to accept themetricdata.ResourceMetricsvalue the collection will be made into. This change is made to enable memory reuse by SDK users. (#3732) - The
WithUnitoption ingo.opentelemetry.io/otel/sdk/metric/instrumentis updated to accept astringfor the unit value. (#3776)
Fixed
- Ensure
go.opentelemetry.io/oteldoes not use generics. (#3723, #3725) - Multi-reader
MeterProviders now export metrics for all readers, instead of just the first reader. (#3720, #3724) - Remove use of deprecated
"math/rand".Seedingo.opentelemetry.io/otel/example/prometheus. (#3733) - Do not silently drop unknown schema data with
Parseingo.opentelemetry.io/otel/schema/v1.1. (#3743) - Data race issue in OTLP exporter retry mechanism. (#3755, #3756)
- Wrapping empty errors when exporting in
go.opentelemetry.io/otel/sdk/metric. (#3698, #3772) - Incorrect "all" and "resource" definition for schema files in
go.opentelemetry.io/otel/schema/v1.1. (#3777)
Deprecated
- The
go.opentelemetry.io/otel/metric/unitpackage is deprecated. Use the equivalent unit string instead. (#3776)- Use
"1"instead ofunit.Dimensionless - Use
"By"instead ofunit.Bytes - Use
"ms"instead ofunit.Milliseconds
- Use
1.13.0/0.36.0 2023-02-07
Added
- Attribute
KeyValuecreations functions togo.opentelemetry.io/otel/semconv/v1.17.0for all non-enum semantic conventions. These functions ensure semantic convention type correctness. (#3675)
Fixed
- Removed the
http.targetattribute from being added byServerRequestin the following packages. (#3687)go.opentelemetry.io/otel/semconv/v1.13.0/httpconvgo.opentelemetry.io/otel/semconv/v1.14.0/httpconvgo.opentelemetry.io/otel/semconv/v1.15.0/httpconvgo.opentelemetry.io/otel/semconv/v1.16.0/httpconvgo.opentelemetry.io/otel/semconv/v1.17.0/httpconv
Removed
- The deprecated
go.opentelemetry.io/otel/metric/instrument/asyncfloat64package is removed. (#3631) - The deprecated
go.opentelemetry.io/otel/metric/instrument/asyncint64package is removed. (#3631) - The deprecated
go.opentelemetry.io/otel/metric/instrument/syncfloat64package is removed. (#3631) - The deprecated
go.opentelemetry.io/otel/metric/instrument/syncint64package is removed. (#3631)
1.12.0/0.35.0 2023-01-28
Added
- The
WithInt64Callbackoption togo.opentelemetry.io/otel/metric/instrument. This options is used to configureint64Observer callbacks during their creation. (#3507) - The
WithFloat64Callbackoption togo.opentelemetry.io/otel/metric/instrument. This options is used to configurefloat64Observer callbacks during their creation. (#3507) - The
Producerinterface andReader.RegisterProducer(Producer)togo.opentelemetry.io/otel/sdk/metric. These additions are used to enable external metric Producers. (#3524) - The
Callbackfunction type togo.opentelemetry.io/otel/metric. This new named function type is registered with aMeter. (#3564) - The
go.opentelemetry.io/otel/semconv/v1.13.0package. The package contains semantic conventions from thev1.13.0version of the OpenTelemetry specification. (#3499)- The
EndUserAttributesFromHTTPRequestfunction ingo.opentelemetry.io/otel/semconv/v1.12.0is merged intoClientRequestandServerRequestingo.opentelemetry.io/otel/semconv/v1.13.0/httpconv. - The
HTTPAttributesFromHTTPStatusCodefunction ingo.opentelemetry.io/otel/semconv/v1.12.0is merged intoClientResponseingo.opentelemetry.io/otel/semconv/v1.13.0/httpconv. - The
HTTPClientAttributesFromHTTPRequestfunction ingo.opentelemetry.io/otel/semconv/v1.12.0is replaced byClientRequestingo.opentelemetry.io/otel/semconv/v1.13.0/httpconv. - The
HTTPServerAttributesFromHTTPRequestfunction ingo.opentelemetry.io/otel/semconv/v1.12.0is replaced byServerRequestingo.opentelemetry.io/otel/semconv/v1.13.0/httpconv. - The
HTTPServerMetricAttributesFromHTTPRequestfunction ingo.opentelemetry.io/otel/semconv/v1.12.0is replaced byServerRequestingo.opentelemetry.io/otel/semconv/v1.13.0/httpconv. - The
NetAttributesFromHTTPRequestfunction ingo.opentelemetry.io/otel/semconv/v1.12.0is split intoTransportingo.opentelemetry.io/otel/semconv/v1.13.0/netconvandClientRequestorServerRequestingo.opentelemetry.io/otel/semconv/v1.13.0/httpconv. - The
SpanStatusFromHTTPStatusCodefunction ingo.opentelemetry.io/otel/semconv/v1.12.0is replaced byClientStatusingo.opentelemetry.io/otel/semconv/v1.13.0/httpconv. - The
SpanStatusFromHTTPStatusCodeAndSpanKindfunction ingo.opentelemetry.io/otel/semconv/v1.12.0is split intoClientStatusandServerStatusingo.opentelemetry.io/otel/semconv/v1.13.0/httpconv. - The
Clientfunction is included ingo.opentelemetry.io/otel/semconv/v1.13.0/netconvto generate attributes for anet.Conn. - The
Serverfunction is included ingo.opentelemetry.io/otel/semconv/v1.13.0/netconvto generate attributes for anet.Listener.
- The
- The
go.opentelemetry.io/otel/semconv/v1.14.0package. The package contains semantic conventions from thev1.14.0version of the OpenTelemetry specification. (#3566) - The
go.opentelemetry.io/otel/semconv/v1.15.0package. The package contains semantic conventions from thev1.15.0version of the OpenTelemetry specification. (#3578) - The
go.opentelemetry.io/otel/semconv/v1.16.0package. The package contains semantic conventions from thev1.16.0version of the OpenTelemetry specification. (#3579) - Metric instruments to
go.opentelemetry.io/otel/metric/instrument. These instruments are use as replacements of the depreactedgo.opentelemetry.io/otel/metric/instrument/{asyncfloat64,asyncint64,syncfloat64,syncint64}packages.(#3575, #3586)Float64ObservableCounterreplaces theasyncfloat64.CounterFloat64ObservableUpDownCounterreplaces theasyncfloat64.UpDownCounterFloat64ObservableGaugereplaces theasyncfloat64.GaugeInt64ObservableCounterreplaces theasyncint64.CounterInt64ObservableUpDownCounterreplaces theasyncint64.UpDownCounterInt64ObservableGaugereplaces theasyncint64.GaugeFloat64Counterreplaces thesyncfloat64.CounterFloat64UpDownCounterreplaces thesyncfloat64.UpDownCounterFloat64Histogramreplaces thesyncfloat64.HistogramInt64Counterreplaces thesyncint64.CounterInt64UpDownCounterreplaces thesyncint64.UpDownCounterInt64Histogramreplaces thesyncint64.Histogram
NewTracerProvidertogo.opentelemetry.io/otel/bridge/opentracing. This is used to createWrapperTracerinstances from aTracerProvider. (#3116)- The
Extrematype togo.opentelemetry.io/otel/sdk/metric/metricdata. This type is used to represent min/max values and still be able to distinguish unset and zero values. (#3487) - The
go.opentelemetry.io/otel/semconv/v1.17.0package. The package contains semantic conventions from thev1.17.0version of the OpenTelemetry specification. (#3599)
Changed
- Jaeger and Zipkin exporter use
github.com/go-logr/logras the logging interface, and add theWithLogroption. (#3497, #3500) - Instrument configuration in
go.opentelemetry.io/otel/metric/instrumentis split into specific options and confguration based on the instrument type. (#3507)- Use the added
Int64Optiontype to configure instruments fromgo.opentelemetry.io/otel/metric/instrument/syncint64. - Use the added
Float64Optiontype to configure instruments fromgo.opentelemetry.io/otel/metric/instrument/syncfloat64. - Use the added
Int64ObserverOptiontype to configure instruments fromgo.opentelemetry.io/otel/metric/instrument/asyncint64. - Use the added
Float64ObserverOptiontype to configure instruments fromgo.opentelemetry.io/otel/metric/instrument/asyncfloat64.
- Use the added
- Return a
Registrationfrom theRegisterCallbackmethod of aMeterin thego.opentelemetry.io/otel/metricpackage. ThisRegistrationcan be used to unregister callbacks. (#3522) - Global error handler uses an atomic value instead of a mutex. (#3543)
- Add
NewMetricProducertogo.opentelemetry.io/otel/bridge/opencensus, which can be used to pass OpenCensus metrics to an OpenTelemetry Reader. (#3541) - Global logger uses an atomic value instead of a mutex. (#3545)
- The
Shutdownmethod of the"go.opentelemetry.io/otel/sdk/trace".TracerProviderreleases all computational resources when called the first time. (#3551) - The
Samplerreturned fromTraceIDRatioBasedgo.opentelemetry.io/otel/sdk/tracenow uses the rightmost bits for sampling decisions. This fixes random sampling when using ID generators likexray.IDGeneratorand increasing parity with other language implementations. (#3557) - Errors from
go.opentelemetry.io/otel/exporters/otlp/otlptraceexporters are wrapped in erros identifying their signal name. Existing users of the exporters attempting to identify specific errors will need to useerrors.Unwrap()to get the underlying error. (#3516) - Exporters from
go.opentelemetry.io/otel/exporters/otlpwill print the final retryable error message when attempts to retry time out. (#3514) - The instrument kind names in
go.opentelemetry.io/otel/sdk/metricare updated to match the API. (#3562)InstrumentKindSyncCounteris renamed toInstrumentKindCounterInstrumentKindSyncUpDownCounteris renamed toInstrumentKindUpDownCounterInstrumentKindSyncHistogramis renamed toInstrumentKindHistogramInstrumentKindAsyncCounteris renamed toInstrumentKindObservableCounterInstrumentKindAsyncUpDownCounteris renamed toInstrumentKindObservableUpDownCounterInstrumentKindAsyncGaugeis renamed toInstrumentKindObservableGauge
- The
RegisterCallbackmethod of theMeteringo.opentelemetry.io/otel/metricchanged.- The named
Callbackreplaces the inline function parameter. (#3564) Callbackis required to return an error. (#3576)Callbackaccepts the addedObserverparameter added. This new parameter is used byCallbackimplementations to observe values for asynchronous instruments instead of calling theObservemethod of the instrument directly. (#3584)- The slice of
instrument.Asynchronousis now passed as a variadic argument. (#3587)
- The named
- The exporter from
go.opentelemetry.io/otel/exporters/zipkinis updated to use thev1.16.0version of semantic conventions. This means it no longer uses the removednet.peer.iporhttp.hostattributes to determine the remote endpoint. Instead it uses thenet.sock.peerattributes. (#3581) - The
MinandMaxfields of theHistogramDataPointingo.opentelemetry.io/otel/sdk/metric/metricdataare now defined with the addedExtrematype instead of a*float64. (#3487)
Fixed
- Asynchronous instruments that use sum aggregators and attribute filters correctly add values from equivalent attribute sets that have been filtered. (#3439, #3549)
- The
RegisterCallbackmethod of theMeterfromgo.opentelemetry.io/otel/sdk/metriconly registers a callback for instruments created by that meter. Trying to register a callback with instruments from a different meter will result in an error being returned. (#3584)
Deprecated
- The
NewMetricExporteringo.opentelemetry.io/otel/bridge/opencensusis deprecated. UseNewMetricProducerinstead. (#3541) - The
go.opentelemetry.io/otel/metric/instrument/asyncfloat64package is deprecated. Use the instruments fromgo.opentelemetry.io/otel/metric/instrumentinstead. (#3575) - The
go.opentelemetry.io/otel/metric/instrument/asyncint64package is deprecated. Use the instruments fromgo.opentelemetry.io/otel/metric/instrumentinstead. (#3575) - The
go.opentelemetry.io/otel/metric/instrument/syncfloat64package is deprecated. Use the instruments fromgo.opentelemetry.io/otel/metric/instrumentinstead. (#3575) - The
go.opentelemetry.io/otel/metric/instrument/syncint64package is deprecated. Use the instruments fromgo.opentelemetry.io/otel/metric/instrumentinstead. (#3575) - The
NewWrappedTracerProvideringo.opentelemetry.io/otel/bridge/opentracingis now deprecated. UseNewTracerProviderinstead. (#3116)
Removed
- The deprecated
go.opentelemetry.io/otel/sdk/metric/viewpackage is removed. (#3520) - The
InstrumentProviderfromgo.opentelemetry.io/otel/sdk/metric/asyncint64is removed. Use the new creation methods of theMeteringo.opentelemetry.io/otel/sdk/metricinstead. (#3530)- The
Countermethod is replaced byMeter.Int64ObservableCounter - The
UpDownCountermethod is replaced byMeter.Int64ObservableUpDownCounter - The
Gaugemethod is replaced byMeter.Int64ObservableGauge
- The
- The
InstrumentProviderfromgo.opentelemetry.io/otel/sdk/metric/asyncfloat64is removed. Use the new creation methods of theMeteringo.opentelemetry.io/otel/sdk/metricinstead. (#3530)- The
Countermethod is replaced byMeter.Float64ObservableCounter - The
UpDownCountermethod is replaced byMeter.Float64ObservableUpDownCounter - The
Gaugemethod is replaced byMeter.Float64ObservableGauge
- The
- The
InstrumentProviderfromgo.opentelemetry.io/otel/sdk/metric/syncint64is removed. Use the new creation methods of theMeteringo.opentelemetry.io/otel/sdk/metricinstead. (#3530)- The
Countermethod is replaced byMeter.Int64Counter - The
UpDownCountermethod is replaced byMeter.Int64UpDownCounter - The
Histogrammethod is replaced byMeter.Int64Histogram
- The
- The
InstrumentProviderfromgo.opentelemetry.io/otel/sdk/metric/syncfloat64is removed. Use the new creation methods of theMeteringo.opentelemetry.io/otel/sdk/metricinstead. (#3530)- The
Countermethod is replaced byMeter.Float64Counter - The
UpDownCountermethod is replaced byMeter.Float64UpDownCounter - The
Histogrammethod is replaced byMeter.Float64Histogram
- The
1.11.2/0.34.0 2022-12-05
Added
- The
WithViewOptionis added to thego.opentelemetry.io/otel/sdk/metricpackage. This option is used to configure the view(s) aMeterProviderwill use for allReaders that are registered with it. (#3387) - Add Instrumentation Scope and Version as info metric and label in Prometheus exporter.
This can be disabled using the
WithoutScopeInfo()option added to that package.(#3273, #3357) - OTLP exporters now recognize: (#3363)
OTEL_EXPORTER_OTLP_INSECUREOTEL_EXPORTER_OTLP_TRACES_INSECUREOTEL_EXPORTER_OTLP_METRICS_INSECUREOTEL_EXPORTER_OTLP_CLIENT_KEYOTEL_EXPORTER_OTLP_TRACES_CLIENT_KEYOTEL_EXPORTER_OTLP_METRICS_CLIENT_KEYOTEL_EXPORTER_OTLP_CLIENT_CERTIFICATEOTEL_EXPORTER_OTLP_TRACES_CLIENT_CERTIFICATEOTEL_EXPORTER_OTLP_METRICS_CLIENT_CERTIFICATE
- The
Viewtype and relatedNewViewfunction to create a view according to the OpenTelemetry specification are added togo.opentelemetry.io/otel/sdk/metric. These additions are replacements for theViewtype andNewfunction fromgo.opentelemetry.io/otel/sdk/metric/view. (#3459) - The
InstrumentandInstrumentKindtype are added togo.opentelemetry.io/otel/sdk/metric. These additions are replacements for theInstrumentandInstrumentKindtypes fromgo.opentelemetry.io/otel/sdk/metric/view. (#3459) - The
Streamtype is added togo.opentelemetry.io/otel/sdk/metricto define a metric data stream a view will produce. (#3459) - The
AssertHasAttributesallows instrument authors to test that datapoints returned have appropriate attributes. (#3487)
Changed
- The
"go.opentelemetry.io/otel/sdk/metric".WithReaderoption no longer accepts views to associate with theReader. Instead, views are now registered directly with theMeterProvidervia the newWithViewoption. The views registered with theMeterProviderapply to allReaders. (#3387) - The
Temporality(view.InstrumentKind) metricdata.TemporalityandAggregation(view.InstrumentKind) aggregation.Aggregationmethods are added to the"go.opentelemetry.io/otel/sdk/metric".Exporterinterface. (#3260) - The
Temporality(view.InstrumentKind) metricdata.TemporalityandAggregation(view.InstrumentKind) aggregation.Aggregationmethods are added to the"go.opentelemetry.io/otel/exporters/otlp/otlpmetric".Clientinterface. (#3260) - The
WithTemporalitySelectorandWithAggregationSelectorReaderOptions have been changed toManualReaderOptions in thego.opentelemetry.io/otel/sdk/metricpackage. (#3260) - The periodic reader in the
go.opentelemetry.io/otel/sdk/metricpackage now uses the temporality and aggregation selectors from its configured exporter instead of accepting them as options. (#3260)
Fixed
- The
go.opentelemetry.io/otel/exporters/prometheusexporter fixes duplicated_totalsuffixes. (#3369) - Remove comparable requirement for
Readers. (#3387) - Cumulative metrics from the OpenCensus bridge (
go.opentelemetry.io/otel/bridge/opencensus) are defined as monotonic sums, instead of non-monotonic. (#3389) - Asynchronous counters (
CounterandUpDownCounter) from the metric SDK now produce delta sums when configured with delta temporality. (#3398) - Exported
Statuscodes in thego.opentelemetry.io/otel/exporters/zipkinexporter are now exported as all upper case values. (#3340) Aggregations fromgo.opentelemetry.io/otel/sdk/metricwith no data are not exported. (#3394, #3436)- Reenabled Attribute Filters in the Metric SDK. (#3396)
- Asynchronous callbacks are only called if they are registered with at least one instrument that does not use drop aggragation. (#3408)
- Do not report empty partial-success responses in the
go.opentelemetry.io/otel/exporters/otlpexporters. (#3438, #3432) - Handle partial success responses in
go.opentelemetry.io/otel/exporters/otlp/otlpmetricexporters. (#3162, #3440) - Prevent duplicate Prometheus description, unit, and type. (#3469)
- Prevents panic when using incorrect
attribute.Value.As[Type]Slice(). (#3489)
Removed
- The
go.opentelemetry.io/otel/exporters/otlp/otlpmetric.Clientinterface is removed. (#3486) - The
go.opentelemetry.io/otel/exporters/otlp/otlpmetric.Newfunction is removed. Use theotlpmetric[http|grpc].Newdirectly. (#3486)
Deprecated
- The
go.opentelemetry.io/otel/sdk/metric/viewpackage is deprecated. UseInstrument,InstrumentKind,View, andNewViewingo.opentelemetry.io/otel/sdk/metricinstead. (#3476)
1.11.1/0.33.0 2022-10-19
Added
- The Prometheus exporter in
go.opentelemetry.io/otel/exporters/prometheusregisters with a Prometheus registerer on creation. By default, it will register with the default Prometheus registerer. A non-default registerer can be used by passing theWithRegistereroption. (#3239) - Added the
WithAggregationSelectoroption to thego.opentelemetry.io/otel/exporters/prometheuspackage to change the defaultAggregationSelectorused. (#3341) - The Prometheus exporter in
go.opentelemetry.io/otel/exporters/prometheusconverts theResourceassociated with metric exports into atarget_infometric. (#3285)
Changed
- The
"go.opentelemetry.io/otel/exporters/prometheus".Newfunction is updated to return an error. It will return an error if the exporter fails to register with Prometheus. (#3239)
Fixed
- The URL-encoded values from the
OTEL_RESOURCE_ATTRIBUTESenvironment variable are decoded. (#2963) - The
baggage.NewMemberfunction decodes thevalueparameter instead of directly using it. This fixes the implementation to be compliant with the W3C specification. (#3226) - Slice attributes of the
attributepackage are now comparable based on their value, not instance. (#3108 #3252) - The
ShutdownandForceFlushmethods of the"go.opentelemetry.io/otel/sdk/trace".TraceProviderno longer return an error when no processor is registered. (#3268) - The Prometheus exporter in
go.opentelemetry.io/otel/exporters/prometheuscumulatively sums histogram buckets. (#3281) - The sum of each histogram data point is now uniquely exported by the
go.opentelemetry.io/otel/exporters/otlpmetricexporters. (#3284, #3293) - Recorded values for asynchronous counters (
CounterandUpDownCounter) are interpreted as exact, not incremental, sum values by the metric SDK. (#3350, #3278) UpDownCountersare now correctly output as Prometheus gauges in thego.opentelemetry.io/otel/exporters/prometheusexporter. (#3358)- The Prometheus exporter in
go.opentelemetry.io/otel/exporters/prometheusno longer describes the metrics it will send to Prometheus on startup. Instead the exporter is defined as an "unchecked" collector for Prometheus. This fixes thereader is not registeredwarning currently emitted on startup. (#3291 #3342) - The
go.opentelemetry.io/otel/exporters/prometheusexporter now correctly adds_totalsuffixes to counter metrics. (#3360) - The
go.opentelemetry.io/otel/exporters/prometheusexporter now adds a unit suffix to metric names. This can be disabled using theWithoutUnits()option added to that package. (#3352)
1.11.0/0.32.3 2022-10-12
Added
- Add default User-Agent header to OTLP exporter requests (
go.opentelemetry.io/otel/exporters/otlptrace/otlptracegrpcandgo.opentelemetry.io/otel/exporters/otlptrace/otlptracehttp). (#3261)
Changed
span.SetStatushas been updated such that calls that lower the status are now no-ops. (#3214)- Upgrade
golang.org/x/sys/unixfromv0.0.0-20210423185535-09eb48e85fd7tov0.0.0-20220919091848-fb04ddd9f9c8. This addresses GO-2022-0493. (#3235)
0.32.2 Metric SDK (Alpha) - 2022-10-11
Added
- Added an example of using metric views to customize instruments. (#3177)
- Add default User-Agent header to OTLP exporter requests (
go.opentelemetry.io/otel/exporters/otlpmetric/otlpmetricgrpcandgo.opentelemetry.io/otel/exporters/otlpmetric/otlpmetrichttp). (#3261)
Changed
- Flush pending measurements with the
PeriodicReaderin thego.opentelemetry.io/otel/sdk/metricwhenForceFlushorShutdownare called. (#3220) - Update histogram default bounds to match the requirements of the latest specification. (#3222)
- Encode the HTTP status code in the OpenTracing bridge (
go.opentelemetry.io/otel/bridge/opentracing) as an integer. (#3265)
Fixed
- Use default view if instrument does not match any registered view of a reader. (#3224, #3237)
- Return the same instrument every time a user makes the exact same instrument creation call. (#3229, #3251)
- Return the existing instrument when a view transforms a creation call to match an existing instrument. (#3240, #3251)
- Log a warning when a conflicting instrument (e.g. description, unit, data-type) is created instead of returning an error. (#3251)
- The OpenCensus bridge no longer sends empty batches of metrics. (#3263)
0.32.1 Metric SDK (Alpha) - 2022-09-22
Changed
- The Prometheus exporter sanitizes OpenTelemetry instrument names when exporting.
Invalid characters are replaced with
_. (#3212)
Added
- The metric portion of the OpenCensus bridge (
go.opentelemetry.io/otel/bridge/opencensus) has been reintroduced. (#3192) - The OpenCensus bridge example (
go.opentelemetry.io/otel/example/opencensus) has been reintroduced. (#3206)
Fixed
- Updated go.mods to point to valid versions of the sdk. (#3216)
- Set the
MeterProviderresource on all exported metric data. (#3218)
0.32.0 Revised Metric SDK (Alpha) - 2022-09-18
Changed
- The metric SDK in
go.opentelemetry.io/otel/sdk/metricis completely refactored to comply with the OpenTelemetry specification. Please see the package documentation for how the new SDK is initialized and configured. (#3175) - Update the minimum supported go version to go1.18. Removes support for go1.17 (#3179)
Removed
- The metric portion of the OpenCensus bridge (
go.opentelemetry.io/otel/bridge/opencensus) has been removed. A new bridge compliant with the revised metric SDK will be added back in a future release. (#3175) - The
go.opentelemetry.io/otel/sdk/metric/aggregator/aggregatortestpackage is removed, see the new metric SDK. (#3175) - The
go.opentelemetry.io/otel/sdk/metric/aggregator/histogrampackage is removed, see the new metric SDK. (#3175) - The
go.opentelemetry.io/otel/sdk/metric/aggregator/lastvaluepackage is removed, see the new metric SDK. (#3175) - The
go.opentelemetry.io/otel/sdk/metric/aggregator/sumpackage is removed, see the new metric SDK. (#3175) - The
go.opentelemetry.io/otel/sdk/metric/aggregatorpackage is removed, see the new metric SDK. (#3175) - The
go.opentelemetry.io/otel/sdk/metric/controller/basicpackage is removed, see the new metric SDK. (#3175) - The
go.opentelemetry.io/otel/sdk/metric/controller/controllertestpackage is removed, see the new metric SDK. (#3175) - The
go.opentelemetry.io/otel/sdk/metric/controller/timepackage is removed, see the new metric SDK. (#3175) - The
go.opentelemetry.io/otel/sdk/metric/export/aggregationpackage is removed, see the new metric SDK. (#3175) - The
go.opentelemetry.io/otel/sdk/metric/exportpackage is removed, see the new metric SDK. (#3175) - The
go.opentelemetry.io/otel/sdk/metric/metrictestpackage is removed. A replacement package that supports the new metric SDK will be added back in a future release. (#3175) - The
go.opentelemetry.io/otel/sdk/metric/numberpackage is removed, see the new metric SDK. (#3175) - The
go.opentelemetry.io/otel/sdk/metric/processor/basicpackage is removed, see the new metric SDK. (#3175) - The
go.opentelemetry.io/otel/sdk/metric/processor/processortestpackage is removed, see the new metric SDK. (#3175) - The
go.opentelemetry.io/otel/sdk/metric/processor/reducerpackage is removed, see the new metric SDK. (#3175) - The
go.opentelemetry.io/otel/sdk/metric/registrypackage is removed, see the new metric SDK. (#3175) - The
go.opentelemetry.io/otel/sdk/metric/sdkapipackage is removed, see the new metric SDK. (#3175) - The
go.opentelemetry.io/otel/sdk/metric/selector/simplepackage is removed, see the new metric SDK. (#3175) - The
"go.opentelemetry.io/otel/sdk/metric".ErrUninitializedInstrumentvariable was removed. (#3175) - The
"go.opentelemetry.io/otel/sdk/metric".ErrBadInstrumentvariable was removed. (#3175) - The
"go.opentelemetry.io/otel/sdk/metric".Accumulatortype was removed, see theMeterProviderin the new metric SDK. (#3175) - The
"go.opentelemetry.io/otel/sdk/metric".NewAccumulatorfunction was removed, seeNewMeterProviderin the new metric SDK. (#3175) - The deprecated
"go.opentelemetry.io/otel/sdk/metric".AtomicFieldOffsetsfunction was removed. (#3175)
1.10.0 - 2022-09-09
Added
- Support Go 1.19. (#3077) Include compatibility testing and document support. (#3077)
- Support the OTLP ExportTracePartialSuccess response; these are passed to the registered error handler. (#3106)
- Upgrade go.opentelemetry.io/proto/otlp from v0.18.0 to v0.19.0 (#3107)
Changed
- Fix misidentification of OpenTelemetry
SpanKindin OpenTracing bridge (go.opentelemetry.io/otel/bridge/opentracing). (#3096) - Attempting to start a span with a nil
contextwill no longer cause a panic. (#3110) - All exporters will be shutdown even if one reports an error (#3091)
- Ensure valid UTF-8 when truncating over-length attribute values. (#3156)
1.9.0/0.0.3 - 2022-08-01
Added
- Add support for Schema Files format 1.1.x (metric "split" transform) with the new
go.opentelemetry.io/otel/schema/v1.1package. (#2999) - Add the
go.opentelemetry.io/otel/semconv/v1.11.0package. The package contains semantic conventions from thev1.11.0version of the OpenTelemetry specification. (#3009) - Add the
go.opentelemetry.io/otel/semconv/v1.12.0package. The package contains semantic conventions from thev1.12.0version of the OpenTelemetry specification. (#3010) - Add the
http.methodattribute to HTTP server metric from allgo.opentelemetry.io/otel/semconv/*packages. (#3018)
Fixed
- Invalid warning for context setup being deferred in
go.opentelemetry.io/otel/bridge/opentracingpackage. (#3029)
1.8.0/0.31.0 - 2022-07-08
Added
- Add support for
opentracing.TextMapformat in theInjectandExtractmethods of the"go.opentelemetry.io/otel/bridge/opentracing".BridgeTracertype. (#2911)
Changed
- The
crosslinkmake target has been updated to use thego.opentelemetry.io/build-tools/crosslinkpackage. (#2886) - In the
go.opentelemetry.io/otel/sdk/instrumentationpackage renameLibrarytoScopeand aliasLibraryasScope(#2976) - Move metric no-op implementation form
nonrecordingtometricpackage. (#2866)
Removed
- Support for go1.16. Support is now only for go1.17 and go1.18 (#2917)
Deprecated
- The
Librarystruct in thego.opentelemetry.io/otel/sdk/instrumentationpackage is deprecated. Use the equivalentScopestruct instead. (#2977) - The
ReadOnlySpan.InstrumentationLibrarymethod from thego.opentelemetry.io/otel/sdk/tracepackage is deprecated. Use the equivalentReadOnlySpan.InstrumentationScopemethod instead. (#2977)
1.7.0/0.30.0 - 2022-04-28
Added
- Add the
go.opentelemetry.io/otel/semconv/v1.8.0package. The package contains semantic conventions from thev1.8.0version of the OpenTelemetry specification. (#2763) - Add the
go.opentelemetry.io/otel/semconv/v1.9.0package. The package contains semantic conventions from thev1.9.0version of the OpenTelemetry specification. (#2792) - Add the
go.opentelemetry.io/otel/semconv/v1.10.0package. The package contains semantic conventions from thev1.10.0version of the OpenTelemetry specification. (#2842) - Added an in-memory exporter to metrictest to aid testing with a full SDK. (#2776)
Fixed
- Globally delegated instruments are unwrapped before delegating asynchronous callbacks. (#2784)
- Remove import of
testingpackage in non-tests builds of thego.opentelemetry.io/otelpackage. (#2786)
Changed
- The
WithLabelEncoderoption from thego.opentelemetry.io/otel/exporters/stdout/stdoutmetricpackage is renamed toWithAttributeEncoder. (#2790) - The
LabelFilterSelectorinterface fromgo.opentelemetry.io/otel/sdk/metric/processor/reduceris renamed toAttributeFilterSelector. The method included in the renamed interface also changed fromLabelFilterFortoAttributeFilterFor. (#2790) - The
Metadata.Labelsmethod from thego.opentelemetry.io/otel/sdk/metric/exportpackage is renamed toMetadata.Attributes. Consequentially, theRecordtype from the same package also has had the embedded method renamed. (#2790)
Deprecated
- The
Iterator.Labelmethod in thego.opentelemetry.io/otel/attributepackage is deprecated. Use the equivalentIterator.Attributemethod instead. (#2790) - The
Iterator.IndexedLabelmethod in thego.opentelemetry.io/otel/attributepackage is deprecated. Use the equivalentIterator.IndexedAttributemethod instead. (#2790) - The
MergeIterator.Labelmethod in thego.opentelemetry.io/otel/attributepackage is deprecated. Use the equivalentMergeIterator.Attributemethod instead. (#2790)
Removed
- Removed the
Batchtype from thego.opentelemetry.io/otel/sdk/metric/metrictestpackage. (#2864) - Removed the
Measurementtype from thego.opentelemetry.io/otel/sdk/metric/metrictestpackage. (#2864)
0.29.0 - 2022-04-11
Added
- The metrics global package was added back into several test files. (#2764)
- The
Meterfunction is added back to thego.opentelemetry.io/otel/metric/globalpackage. This function is a convenience function equivalent to callingglobal.MeterProvider().Meter(...). (#2750)
Removed
- Removed module the
go.opentelemetry.io/otel/sdk/export/metric. Use thego.opentelemetry.io/otel/sdk/metricmodule instead. (#2720)
Changed
- Don't panic anymore when setting a global MeterProvider to itself. (#2749)
- Upgrade
go.opentelemetry.io/proto/otlpingo.opentelemetry.io/otel/exporters/otlp/otlpmetricfromv0.12.1tov0.15.0. This replaces the use of the now deprecatedInstrumentationLibraryandInstrumentationLibraryMetricstypes and fields in the proto library with the equivalentInstrumentationScopeandScopeMetrics. (#2748)
1.6.3 - 2022-04-07
Fixed
- Allow non-comparable global
MeterProvider,TracerProvider, andTextMapPropagatortypes to be set. (#2772, #2773)
1.6.2 - 2022-04-06
Changed
- Don't panic anymore when setting a global TracerProvider or TextMapPropagator to itself. (#2749)
- Upgrade
go.opentelemetry.io/proto/otlpingo.opentelemetry.io/otel/exporters/otlp/otlptracefromv0.12.1tov0.15.0. This replaces the use of the now deprecatedInstrumentationLibraryandInstrumentationLibrarySpanstypes and fields in the proto library with the equivalentInstrumentationScopeandScopeSpans. (#2748)
1.6.1 - 2022-03-28
Fixed
- The
go.opentelemetry.io/otel/schema/*packages now use the correct schema URL for theirSchemaURLconstant. Instead of using"https://opentelemetry.io/schemas/v<version>"they now use the correct URL without avprefix,"https://opentelemetry.io/schemas/<version>". (#2743, #2744)
Security
- Upgrade
go.opentelemetry.io/proto/otlpfromv0.12.0tov0.12.1. This includes an indirect upgrade ofgithub.com/grpc-ecosystem/grpc-gatewaywhich resolves a vulnerability fromgopkg.in/yaml.v2in versionv2.2.3. (#2724, #2728)
1.6.0/0.28.0 - 2022-03-23
⚠️ Notice ⚠️
This update is a breaking change of the unstable Metrics API.
Code instrumented with the go.opentelemetry.io/otel/metric will need to be modified.
Added
- Add metrics exponential histogram support.
New mapping functions have been made available in
sdk/metric/aggregator/exponential/mappingfor other OpenTelemetry projects to take dependencies on. (#2502) - Add Go 1.18 to our compatibility tests. (#2679)
- Allow configuring the Sampler with the
OTEL_TRACES_SAMPLERandOTEL_TRACES_SAMPLER_ARGenvironment variables. (#2305, #2517) - Add the
metric/globalfor obtaining and setting the globalMeterProvider. (#2660)
Changed
-
The metrics API has been significantly changed to match the revised OpenTelemetry specification. High-level changes include:
- Synchronous and asynchronous instruments are now handled by independent
InstrumentProviders. TheseInstrumentProviders are managed with aMeter. - Synchronous and asynchronous instruments are grouped into their own packages based on value types.
- Asynchronous callbacks can now be registered with a
Meter.
Be sure to check out the metric module documentation for more information on how to use the revised API. (#2587, #2660)
- Synchronous and asynchronous instruments are now handled by independent
Fixed
- Fallback to general attribute limits when span specific ones are not set in the environment. (#2675, #2677)
1.5.0 - 2022-03-16
Added
-
Log the Exporters configuration in the TracerProviders message. (#2578)
-
Added support to configure the span limits with environment variables. The following environment variables are supported. (#2606, #2637)
OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMITOTEL_SPAN_ATTRIBUTE_COUNT_LIMITOTEL_SPAN_EVENT_COUNT_LIMITOTEL_EVENT_ATTRIBUTE_COUNT_LIMITOTEL_SPAN_LINK_COUNT_LIMITOTEL_LINK_ATTRIBUTE_COUNT_LIMIT
If the provided environment variables are invalid (negative), the default values would be used.
-
Rename the
gcruntime name togo(#2560) -
Add resource container ID detection. (#2418)
-
Add span attribute value length limit. The new
AttributeValueLengthLimitfield is added to the"go.opentelemetry.io/otel/sdk/trace".SpanLimitstype to configure this limit for aTracerProvider. The default limit for this resource is "unlimited". (#2637) -
Add the
WithRawSpanLimitsoption togo.opentelemetry.io/otel/sdk/trace. This option replaces theWithSpanLimitsoption. Zero or negative values will not be changed to the default value likeWithSpanLimitsdoes. Setting a limit to zero will effectively disable the related resource it limits and setting to a negative value will mean that resource is unlimited. Consequentially, limits should be constructed usingNewSpanLimitsand updated accordingly. (#2637)
Changed
- Drop oldest tracestate
Memberwhen capacity is reached. (#2592) - Add event and link drop counts to the exported data from the
oltptraceexporter. (#2601) - Unify path cleaning functionally in the
otlpmetricandotlptraceconfiguration. (#2639) - Change the debug message from the
sdk/trace.BatchSpanProcessorto reflect the count is cumulative. (#2640) - Introduce new internal
envconfigpackage for OTLP exporters. (#2608) - If
http.Request.Hostis empty, fall back to useURL.Hostwhen populatinghttp.hostin thesemconvpackages. (#2661)
Fixed
- Remove the OTLP trace exporter limit of SpanEvents when exporting. (#2616)
- Default to port
4318instead of4317for theotlpmetrichttpandotlptracehttpclient. (#2614, #2625) - Unlimited span limits are now supported (negative values). (#2636, #2637)
Deprecated
- Deprecated
"go.opentelemetry.io/otel/sdk/trace".WithSpanLimits. UseWithRawSpanLimitsinstead. That option allows setting unlimited and zero limits, this option does not. This option will be kept until the next major version incremented release. (#2637)
1.4.1 - 2022-02-16
Fixed
- Fix race condition in reading the dropped spans number for the
BatchSpanProcessor. (#2615)
1.4.0 - 2022-02-11
Added
- Use
OTEL_EXPORTER_ZIPKIN_ENDPOINTenvironment variable to specify zipkin collector endpoint. (#2490) - Log the configuration of
TracerProviders, andTracers for debugging. To enable use a logger with Verbosity (V level)>=1. (#2500) - Added support to configure the batch span-processor with environment variables.
The following environment variables are used. (#2515)
OTEL_BSP_SCHEDULE_DELAYOTEL_BSP_EXPORT_TIMEOUTOTEL_BSP_MAX_QUEUE_SIZE.OTEL_BSP_MAX_EXPORT_BATCH_SIZE
Changed
- Zipkin exporter exports
Resourceattributes in theTagsfield. (#2589)
Deprecated
- Deprecate module the
go.opentelemetry.io/otel/sdk/export/metric. Use thego.opentelemetry.io/otel/sdk/metricmodule instead. (#2382) - Deprecate
"go.opentelemetry.io/otel/sdk/metric".AtomicFieldOffsets. (#2445)
Fixed
- Fixed the instrument kind for noop async instruments to correctly report an implementation. (#2461)
- Fix UDP packets overflowing with Jaeger payloads. (#2489, #2512)
- Change the
otlpmetric.Clientinterface'sUploadMetricsmethod to accept a singleResourceMetricsinstead of a slice of them. (#2491) - Specify explicit buckets in Prometheus example, fixing issue where example only has
+infbucket. (#2419, #2493) - W3C baggage will now decode urlescaped values. (#2529)
- Baggage members are now only validated once, when calling
NewMemberand not also when adding it to the baggage itself. (#2522) - The order attributes are dropped from spans in the
go.opentelemetry.io/otel/sdk/tracepackage when capacity is reached is fixed to be in compliance with the OpenTelemetry specification. Instead of dropping the least-recently-used attribute, the last added attribute is dropped. This drop order still only applies to attributes with unique keys not already contained in the span. If an attribute is added with a key already contained in the span, that attribute is updated to the new value being added. (#2576)
Removed
- Updated
go.opentelemetry.io/proto/otlpfromv0.11.0tov0.12.0. This version removes a number of deprecated methods. (#2546)
1.3.0 - 2021-12-10
⚠️ 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
WithRetryOptionand theRetryConfigtype to thego.opentelemetry.io/otel/exporter/otel/otlpmetric/otlpmetrichttppackage to specify retry behavior consistently. (#2425) - Add
SpanStatusFromHTTPStatusCodeAndSpanKindto allsemconvpackages to return a span status code similar toSpanStatusFromHTTPStatusCode, but exclude4XXHTTP errors as span errors if the span is of server kind. (#2296)
Changed
- The
"go.opentelemetry.io/otel/exporter/otel/otlptrace/otlptracegrpc".Clientnow uses the underlying gRPCClientConnto 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".Clientnow uses the underlying gRPCClientConnto 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".RetrySettingstype is renamed toRetryConfig. (#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 andWithInsecureis not specified. (#2432) - Change
resource.Defaultto be evaluated the first time it is called, rather than on import. This allows the caller the option to updateOTEL_RESOURCE_ATTRIBUTESfirst, such as withos.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 anOTEL_EXPORTER_OTLP_<signal>_ENDPOINTenvironment variable is now used without modification of the path. WhenOTEL_EXPORTER_OTLP_ENDPOINTis 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/jaegercorrectly sets theotel.status_codevalue to be a string ofERRORorOKinstead of an integer code. (#2439, #2440)
Deprecated
- Deprecated the
"go.opentelemetry.io/otel/exporter/otel/otlpmetric/otlpmetrichttp".WithMaxAttemptsOption, use the newWithRetryOptioninstead. (#2425) - Deprecated the
"go.opentelemetry.io/otel/exporter/otel/otlpmetric/otlpmetrichttp".WithBackoffOption, use the newWithRetryOptioninstead. (#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)
1.2.0 - 2021-11-12
Changed
- Metric SDK
export.ExportKind,export.ExportKindSelectortypes have been renamed toaggregation.Temporalityandaggregation.TemporalitySelectorrespectively to keep in line with current specification and protocol along with built-in selectors (e.g.,aggregation.CumulativeTemporalitySelector, ...). (#2274) - The Metric
Exporterinterface now requires aTemporalitySelectormethod instead of anExportKindSelector. (#2274) - Metrics API cleanup. The
metric/sdkapipackage has been created to relocate the API-to-SDK interface:- The following interface types simply moved from
metrictometric/sdkapi:Descriptor,MeterImpl,InstrumentImpl,SyncImpl,BoundSyncImpl,AsyncImpl,AsyncRunner,AsyncSingleRunner, andAsyncBatchRunner - 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()andsdkapi.NewNoopSyncInstrument()are provided instead. (#2271)
- The following interface types simply moved from
- Update the SDK
BatchSpanProcessorto export all queued spans whenForceFlushis called. (#2080, #2335)
Added
- Add the
"go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc".WithGRPCConnoption so the exporter can reuse an existing gRPC connection. (#2002) - Added a new
schemamodule to help parse Schema Files in OTEP 0152 format. (#2267) - Added a new
MapCarrierto thego.opentelemetry.io/otel/propagationpackage to hold propagated cross-cutting concerns as amap[string]stringheld in memory. (#2334)
1.1.0 - 2021-10-27
Added
- Add the
"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc".WithGRPCConnoption so the exporter can reuse an existing gRPC connection. (#2002) - Add the
go.opentelemetry.io/otel/semconv/v1.7.0package. The package contains semantic conventions from thev1.7.0version of the OpenTelemetry specification. (#2320) - Add the
go.opentelemetry.io/otel/semconv/v1.6.1package. The package contains semantic conventions from thev1.6.1version of the OpenTelemetry specification. (#2321) - Add the
go.opentelemetry.io/otel/semconv/v1.5.0package. The package contains semantic conventions from thev1.5.0version of the OpenTelemetry specification. (#2322)- When upgrading from the
semconv/v1.4.0package note the following name changes:K8SReplicasetUIDKey->K8SReplicaSetUIDKeyK8SReplicasetNameKey->K8SReplicaSetNameKeyK8SStatefulsetUIDKey->K8SStatefulSetUIDKeyk8SStatefulsetNameKey->K8SStatefulSetNameKeyK8SDaemonsetUIDKey->K8SDaemonSetUIDKeyK8SDaemonsetNameKey->K8SDaemonSetNameKey
- When upgrading from the
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".HTTPServerAttributesFromHTTPRequestnow correctly only sets the HTTP client IP attribute even if the connection was routed with proxies and there are multiple addresses in theX-Forwarded-Forheader. (#2282, #2284) - The
"go.opentelemetry.io/otel/semconv/v1.4.0".NetAttributesFromHTTPRequestfunction 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)
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".CheckpointSetis renamedReader. - The new interface is named
"go.opentelemetry.io/otel/sdk/export/metric".InstrumentationLibraryReader.
- The former
1.0.0 - 2021-09-20
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
SchemaURLfield in the exported telemetry if the Tracer hasWithSchemaURLoption. (#2242)
Fixed
- Slice-valued attributes can correctly be used as map keys. (#2223)
Removed
- Removed the
"go.opentelemetry.io/otel/exporters/zipkin".WithSDKOptionsfunction. (#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/attributepackage. Use the typed functions and methods added to the package instead. (#2235)- The
Key.Arraymethod is removed. - The
Arrayfunction is removed. - The
Anyfunction is removed. - The
ArrayValuefunction is removed. - The
AsArrayfunction is removed.
- The
1.0.0-RC3 - 2021-09-02
Added
- Added
ErrorHandlerFuncto use a function as an"go.opentelemetry.io/otel".ErrorHandler. (#2149) - Added
"go.opentelemetry.io/otel/trace".WithStackTraceoption to add a stack trace when usingspan.RecordErroror when panic is handled inspan.End. (#2163) - Added typed slice attribute types and functionality to the
go.opentelemetry.io/otel/attributepackage to replace the existing array type and functions. (#2162)BoolSlice,IntSlice,Int64Slice,Float64Slice, andStringSlicereplace the use of theArrayfunction in the package.
- Added the
go.opentelemetry.io/otel/example/fibexample 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
InstrumentKindmoves intosdkapisub-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/stdouttraceis 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 eachExporter.ExportSpanscall, 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, andNewEventConfigfunction in thego.opentelemetry.io/otel/tracepackage to return their respective configurations as structs instead of pointers to the struct. (#2212)
Deprecated
- The
go.opentelemetry.io/otel/bridge/opencensus/utilspackage is deprecated. All functionality from this package now exists in thego.opentelemetry.io/otel/bridge/opencensuspackage. The functions from that package should be used instead. (#2166) - The
"go.opentelemetry.io/otel/attribute".Arrayfunction and the relatedARRAYvalue type is deprecated. Use the typed*Slicefunctions and types added to the package instead. (#2162) - The
"go.opentelemetry.io/otel/attribute".Anyfunction is deprecated. Use the typed functions instead. (#2181) - The
go.opentelemetry.io/otel/oteltestpackage is deprecated. The"go.opentelemetry.io/otel/sdk/trace/tracetest".SpanRecordercan be registered with the default SDK (go.opentelemetry.io/otel/sdk/trace) as aSpanProcessorand 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
fromEnvdetector no longer throws an error whenOTEL_RESOURCE_ATTRIBUTESenvironment variable is not set or empty. (#2138) - Setting the global
ErrorHandlerwith"go.opentelemetry.io/otel".SetErrorHandlermultiple times is now supported. (#2160, #2140) - The
"go.opentelemetry.io/otel/attribute".Anyfunction now supportsint32values. (#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
WithoutTimestampsoption for thego.opentelemetry.io/otel/exporters/stdout/stdouttraceexporter causes the exporter to correctly ommit timestamps. (#2195) - Fixed typos in resources.go. (#2201)
1.0.0-RC2 - 2021-07-26
Added
- Added
WithOSDescriptionresource configuration option to set OS (Operating System) description resource attribute (os.description). (#1840) - Added
WithOSresource configuration option to set all OS (Operating System) resource attributes at once. (#1840) - Added the
WithRetryoption to thego.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttppackage. This option is a replacement for the removedWithMaxAttemptsandWithBackoffoptions. (#2095) - Added API
LinkFromContextto return Link which encapsulates SpanContext from provided context and also encapsulates attributes. (#2115) - Added a new
Linktype under the SDKotel/sdk/tracepackage that counts the number of attributes that were dropped for surpassing theAttributePerLinkCountLimitconfigured in the Span'sSpanLimits. This new type replaces the equal-named APILinktype found in theotel/tracepackage for most usages within the SDK. For example, instances of this type are now returned by theLinks()function ofReadOnlySpans provided in places like theOnEndfunction ofSpanProcessorimplementations. (#2118) - Added the
SpanRecordertype to thego.opentelemetry.io/otel/skd/trace/tracetestpackage. This type can be used with the default SDK as aSpanProcessorduring testing. (#2132)
Changed
- The
SpanModelsfunction is now exported from thego.opentelemetry.io/otel/exporters/zipkinpackage to convert OpenTelemetry spans into Zipkin model spans. (#2027) - Rename the
"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc".RetrySettingstoRetryConfig. (#2095)
Deprecated
- The
TextMapCarrierandTextMapPropagatorfrom thego.opentelemetry.io/otel/oteltestpackage and their associated creation functions (TextMapCarrier,NewTextMapPropagator) are deprecated. (#2114) - The
Harnesstype from thego.opentelemetry.io/otel/oteltestpackage and its associated creation function,NewHarnessare deprecated and will be removed in the next release. (#2123) - The
TraceStateFromKeyValuesfunction from thego.opentelemetry.io/otel/oteltestpackage is deprecated. Use thetrace.ParseTraceStatefunction 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".WithBuiltinDetectorsfunction. The explicitWith*options for every built-in detector should be used instead. (#2026 #2097) - Removed the
WithMaxAttemptsandWithBackoffoptions from thego.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttppackage. The retry logic of the package has been updated to match theotlptracegrpcpackage and accordingly aWithRetryoption is added that should be used instead. (#2095) - Removed
DroppedAttributeCountfield fromotel/trace.Linkstruct. (#2118)
Fixed
- When using WithNewRoot, don't use the parent context for making sampling decisions. (#2032)
oteltest.Tracernow creates a validSpanContextwhen usingWithNewRoot. (#2073)- OS type detector now sets the correct
dragonflybsdvalue for DragonFly BSD. (#2092) - The OTel span status is correctly transformed into the OTLP status in the
go.opentelemetry.io/otel/exporters/otlp/otlptracepackage. This fix will by default set the status toUnsetif it is not explicitly set toOkorError. (#2099 #2102) - The
Injectmethod for the"go.opentelemetry.io/otel/propagation".TraceContexttype no longer injects emptytracestatevalues. (#2108) - Use
6831as default Jaeger agent port instead of6832. (#2131)
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)
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
- The following status codes are defined as transient errors:
- Added
Statustype to thego.opentelemetry.io/otel/sdk/tracepackage to represent the status of a span. (#1874) - Added
SpanStubtype and its associated functions to thego.opentelemetry.io/otel/sdk/trace/tracetestpackage. This type can be used as a testing replacement for theSpanSnapshotthat was removed from thego.opentelemetry.io/otel/sdk/tracepackage. (#1873) - Adds support for scheme in
OTEL_EXPORTER_OTLP_ENDPOINTaccording to the spec. (#1886) - Adds
trace.WithSchemaURLoption for configuring the tracer with a Schema URL. (#1889) - Added an example of using OpenTelemetry Go as a trace context forwarder. (#1912)
ParseTraceStateis added to thego.opentelemetry.io/otel/tracepackage. It can be used to decode aTraceStatefrom atracestateheader string value. (#1937)- Added
Lenmethod to theTraceStatetype in thego.opentelemetry.io/otel/tracepackage. This method returns the number of list-members theTraceStateholds. (#1937) - Creates package
go.opentelemetry.io/otel/exporters/otlp/otlptracethat defines a trace exporter that uses aotlptrace.Clientto send data. Creates packagego.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpcimplementing a gRPCotlptrace.Clientand offers convenience functions,NewExportPipelineandInstallNewPipeline, to setup and install aotlptrace.Exporterin tracing .(#1922) - Added
Baggage,Member, andPropertytypes to thego.opentelemetry.io/otel/baggagepackage along with their related functions. (#1967) - Added
ContextWithBaggage,ContextWithoutBaggage, andFromContextfunctions to thego.opentelemetry.io/otel/baggagepackage. These functions replace theSet,Value,ContextWithValue,ContextWithoutValue, andContextWithEmptyfunctions from that package and directly work with the newBaggagetype. (#1967) - The
OTEL_SERVICE_NAMEenvironment variable is the preferred source forservice.name, used by the environment resource detector if a service name is present both there and inOTEL_RESOURCE_ATTRIBUTES. (#1969) - Creates package
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttpimplementing an HTTPotlptrace.Clientand offers convenience functions,NewExportPipelineandInstallNewPipeline, to setup and install aotlptrace.Exporterin tracing. (#1963) - Changes
go.opentelemetry.io/otel/sdk/resource.NewWithAttributesto require a schema URL. The old function is still available asresource.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/otlpmetricthat defines a metrics exporter that uses aotlpmetric.Clientto send data. - Creates package
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpcimplementing a gRPCotlpmetric.Clientand offers convenience functions,NewandNewUnstarted, to create anotlpmetric.Exporter.(#1991) - Added
go.opentelemetry.io/otel/exporters/stdout/stdouttraceexporter. (#2005) - Added
go.opentelemetry.io/otel/exporters/stdout/stdoutmetricexporter. (#2005) - Added a
TracerProvider()method to the"go.opentelemetry.io/otel/trace".Spaninterface. This can be used to obtain aTracerProviderfrom a given span that utilizes the same trace processing pipeline. (#2009)
Changed
- Make
NewSplitDriverfromgo.opentelemetry.io/otel/exporters/otlptake variadic arguments instead of aSplitConfigitem.NewSplitDrivernow automatically implements an internalnoopDriverforSplitConfigfields that are not initialized. (#1798) resource.New()now creates a Resource without builtin detectors. Previous behavior is now achieved by usingWithBuiltinDetectorsOption. (#1810)- Move the
Eventtype from thego.opentelemetry.io/otelpackage to thego.opentelemetry.io/otel/sdk/tracepackage. (#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
CloudZoneKeytoCloudAvailabilityZoneKeyin Resource semantic conventions according to spec. (#1871) - The
StatusCodeandStatusMessagemethods of theReadOnlySpaninterface and theSpanproduced by thego.opentelemetry.io/otel/sdk/tracepackage have been replaced with a singleStatusmethod. This method returns the status of a span using the newStatustype. (#1874) - Updated
ExportSpansmethod of theSpanExporterinterface type to acceptReadOnlySpans instead of the removedSpanSnapshot. 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
SpanContextinLink. (#1877) - Generate Semantic conventions from the specification YAML. (#1891)
- Spans created by the global
Tracerobtained fromgo.opentelemetry.io/otel, prior to a functioningTracerProviderbeing set, now propagate the span context from their parent if one exists. (#1901) - The
"go.opentelemetry.io/otel".Tracerfunction now accepts tracer options. (#1902) - Move the
go.opentelemetry.io/otel/unitpackage togo.opentelemetry.io/otel/metric/unit. (#1903) - Changed
go.opentelemetry.io/otel/trace.TracerConfigto conform to the Contributing guidelines (#1921) - Changed
go.opentelemetry.io/otel/trace.SpanConfigto conform to the Contributing guidelines. (#1921) - Changed
span.End()now only accepts Options that are allowed atEnd(). (#1921) - Changed
go.opentelemetry.io/otel/metric.InstrumentConfigto conform to the Contributing guidelines. (#1921) - Changed
go.opentelemetry.io/otel/metric.MeterConfigto conform to the Contributing guidelines. (#1921) - Refactored option types according to the contribution style guide. (#1882)
- Move the
go.opentelemetry.io/otel/trace.TraceStateFromKeyValuesfunction to thego.opentelemetry.io/otel/oteltestpackage. This function is preserved for testing purposes where it may be useful to create aTraceStatefromattribute.KeyValues, but it is not intended for production use. The newParseTraceStatefunction should be used to create aTraceState. (#1931) - Updated
MarshalJSONmethod of thego.opentelemetry.io/otel/trace.TraceStatetype to marshal the type into the string representation of theTraceState. (#1931) - The
TraceState.Deletemethod from thego.opentelemetry.io/otel/tracepackage no longer returns an error in addition to aTraceState. (#1931) - Updated
Getmethod of theTraceStatetype from thego.opentelemetry.io/otel/tracepackage to accept astringinstead of anattribute.Keytype. (#1931) - Updated
Insertmethod of theTraceStatetype from thego.opentelemetry.io/otel/tracepackage to accept a pair ofstrings instead of anattribute.KeyValuetype. (#1931) - Updated
Deletemethod of theTraceStatetype from thego.opentelemetry.io/otel/tracepackage to accept astringinstead of anattribute.Keytype. (#1931) - Renamed
NewExportertoNewin thego.opentelemetry.io/otel/exporters/stdoutpackage. (#1985) - Renamed
NewExportertoNewin thego.opentelemetry.io/otel/exporters/metric/prometheuspackage. (#1985) - Renamed
NewExportertoNewin thego.opentelemetry.io/otel/exporters/trace/jaegerpackage. (#1985) - Renamed
NewExportertoNewin thego.opentelemetry.io/otel/exporters/trace/zipkinpackage. (#1985) - Renamed
NewExportertoNewin thego.opentelemetry.io/otel/exporters/otlppackage. (#1985) - Renamed
NewUnstartedExportertoNewUnstartedin thego.opentelemetry.io/otel/exporters/otlppackage. (#1985) - The
go.opentelemetry.io/otel/semconvpackage has been moved togo.opentelemetry.io/otel/semconv/v1.4.0to allow for multiple telemetry schema versions to be used concurrently. (#1987) - Metrics test helpers in
go.opentelemetry.io/otel/oteltesthave been moved togo.opentelemetry.io/otel/metric/metrictest. (#1988)
Deprecated
- The
go.opentelemetry.io/otel/exporters/metric/prometheusis deprecated, usego.opentelemetry.io/otel/exporters/prometheusinstead. (#1993) - The
go.opentelemetry.io/otel/exporters/trace/jaegeris deprecated, usego.opentelemetry.io/otel/exporters/jaegerinstead. (#1993) - The
go.opentelemetry.io/otel/exporters/trace/zipkinis deprecated, usego.opentelemetry.io/otel/exporters/zipkininstead. (#1993)
Removed
- Removed
resource.WithoutBuiltin(). Useresource.New(). (#1810) - Unexported types
resource.FromEnv,resource.Host, andresource.TelemetrySDK, Use the correspondingWith*()to use individually. (#1810) - Removed the
TracerandIsRecordingmethod from theReadOnlySpanin thego.opentelemetry.io/otel/sdk/trace. TheTracermethod 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. TheIsRecordingmethod 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. (#1873) - Removed the
SpanSnapshottype from thego.opentelemetry.io/otel/sdk/tracepackage. The use of this type has been replaced with the use of the explicitly immutableReadOnlySpantype. When a concrete representation of a read-only span is needed for testing, the newly addedSpanStubin thego.opentelemetry.io/otel/sdk/trace/tracetestpackage should be used. (#1873) - Removed the
Tracermethod from theSpaninterface in thego.opentelemetry.io/otel/tracepackage. Using the same tracer that created a span introduces the error where an instrumentation library'sTraceris used by other code instead of their own. The"go.opentelemetry.io/otel".Tracerfunction or aTracerProvidershould be used to acquire a library specificTracerinstead. (#1900)- The
TracerProvider()method on theSpaninterface may also be used to obtain aTracerProviderusing the same trace processing pipeline. (#2009)
- The
- The
http.urlattribute generated byHTTPClientAttributesFromHTTPRequestwill no longer include username or password information. (#1919) - Removed
IsEmptymethod of theTraceStatetype in thego.opentelemetry.io/otel/tracepackage in favor of using the addedTraceState.Lenmethod. (#1931) - Removed
Set,Value,ContextWithValue,ContextWithoutValue, andContextWithEmptyfunctions in thego.opentelemetry.io/otel/baggagepackage. Handling of baggage is now done using the addedBaggagetype and related context functions (ContextWithBaggage,ContextWithoutBaggage, andFromContext) in that package. (#1967) - The
InstallNewPipelineandNewExportPipelinecreation 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. (#1985) - The
go.opentelemetry.io/otel/exporters/otlpexporter has been removed. Usego.opentelemetry.io/otel/exporters/otlp/otlptraceinstead. (#1990) - The
go.opentelemetry.io/otel/exporters/stdoutexporter has been removed. Usego.opentelemetry.io/otel/exporters/stdout/stdouttraceorgo.opentelemetry.io/otel/exporters/stdout/stdoutmetricinstead. (#2005)
Fixed
- Only report errors from the
"go.opentelemetry.io/otel/sdk/resource".Environmentfunction when they are notnil. (#1850, #1851) - The
Shutdownmethod of the simpleSpanProcessorin thego.opentelemetry.io/otel/sdk/tracepackage now honors the context deadline or cancellation. (#1616, #1856) - BatchSpanProcessor now drops span batches that failed to be exported. (#1860)
- Use
http://localhost:14268/api/tracesas default Jaeger collector endpoint instead ofhttp://localhost:14250. (#1898) - Allow trailing and leading whitespace in the parsing of a
tracestateheader. (#1931) - Add logic to determine if the channel is closed to fix Jaeger exporter test panic with close closed channel. (#1870, #1973)
- Avoid transport security when OTLP endpoint is a Unix socket. (#2001)
Security
0.20.0 - 2021-04-23
Added
- The OTLP exporter now has two new convenience functions,
NewExportPipelineandInstallNewPipeline, 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_PORTThese environment variables can be used to override Jaeger agent hostname and port (#1752) - Option
ExportTimeoutwas added to batch span processor. (#1755) trace.TraceFlagsis now a defined type overbyteandWithSampled(bool) TraceFlagsandIsSampled() boolmethods have been added to it. (#1770)- The
EventandLinkstruct types from thego.opentelemetry.io/otelpackage now include aDroppedAttributeCountfield 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
OnEndandForceFlushpostShutdown. (#1772) - Extract resource attributes from the
OTEL_RESOURCE_ATTRIBUTESenvironment variable and merge them with theresource.Defaultresource as well as resources provided to theTracerProviderand metricController. (#1785) - Added
WithOSTyperesource 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.pidprocess.executable.nameprocess.executable.pathprocess.command_argsprocess.ownerprocess.runtime.nameprocess.runtime.versionprocess.runtime.description
- Adds
k8s.node.nameandk8s.node.uidattribute keys to thesemconvpackage. (#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_ENDPOINTOTEL_EXPORTER_OTLP_TRACES_ENDPOINTOTEL_EXPORTER_OTLP_METRICS_ENDPOINTOTEL_EXPORTER_OTLP_HEADERSOTEL_EXPORTER_OTLP_TRACES_HEADERSOTEL_EXPORTER_OTLP_METRICS_HEADERSOTEL_EXPORTER_OTLP_COMPRESSIONOTEL_EXPORTER_OTLP_TRACES_COMPRESSIONOTEL_EXPORTER_OTLP_METRICS_COMPRESSIONOTEL_EXPORTER_OTLP_TIMEOUTOTEL_EXPORTER_OTLP_TRACES_TIMEOUTOTEL_EXPORTER_OTLP_METRICS_TIMEOUTOTEL_EXPORTER_OTLP_CERTIFICATEOTEL_EXPORTER_OTLP_TRACES_CERTIFICATEOTEL_EXPORTER_OTLP_METRICS_CERTIFICATE
- Adds
otlpgrpc.WithTimeoutoption for configuring timeout to the otlp/gRPC exporter. (#1821) - Adds
jaeger.WithMaxPacketSizeoption for configuring maximum UDP packet size used when connecting to the Jaeger agent. (#1853)
Fixed
- The
Span.IsRecordingimplementation fromgo.opentelemetry.io/otel/sdk/tracealways 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)
- Fix Jaeger exporter dropping of span batches that exceed the UDP packet size limit. Instead, the exporter now splits the batch into smaller sendable batches. (#1828)
Changed
- Span
RecordErrornow records anexceptionevent 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/protobuftogoogle.golang.org/protobufto matchgo.opentelemetry.io/proto/otlp. (#1713) - The storage of a local or remote Span in a
context.Contextusing 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".ContextWithRemoteSpanContextwill now overwrite any existing current Span, not just existing remote Spans, and make it the current Span in acontext.Context. (#1731) - Improve OTLP/gRPC exporter connection errors. (#1737)
- Information about a parent span context in a
"go.opentelemetry.io/otel/export/trace".SpanSnapshotis unified in a newParentfield. The existingParentSpanIDandHasRemoteParentfields are removed in favor of this. (#1748) - The
ParentContextfield of the"go.opentelemetry.io/otel/sdk/trace".SamplingParametersis updated to hold acontext.Contextcontaining the parent span. This changes it to makeSamplingParametersconform with the OpenTelemetry specification. (#1749) - Updated Jaeger Environment Variables:
JAEGER_ENDPOINT,JAEGER_USER,JAEGER_PASSWORDtoOTEL_EXPORTER_JAEGER_ENDPOINT,OTEL_EXPORTER_JAEGER_USER,OTEL_EXPORTER_JAEGER_PASSWORDin compliance with OTel specification. (#1752) - Modify
BatchSpanProcessor.ForceFlushto abort after timeout/cancellation. (#1757) - The
DroppedAttributeCountfield of theSpanin thego.opentelemetry.io/otelpackage 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
ExportSpansin Jaeger Exporter honor context deadline. (#1773) - Modify Zipkin Exporter default service name, use default resource's serviceName instead of empty. (#1777)
- The
go.opentelemetry.io/otel/sdk/export/tracepackage is merged into thego.opentelemetry.io/otel/sdk/tracepackage. (#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
TracerProviderimplementation and enable the shutdown of the exporter. (#1800) - Replace the flush function returned from the Jaeger exporter's convenience creation functions (
InstallNewPipelineandNewExportPipeline) with theTracerProviderimplementation they create. This enables the caller to shutdown and flush using the relatedTracerProvidermethods. (#1822) - Updated the Jaeger exporter to have a default endpoint,
http://localhost:14250, for the collector. (#1824) - Changed the function
WithCollectorEndpointin the Jaeger exporter to no longer accept an endpoint as an argument. The endpoint can be passed with theCollectorEndpointOptionusing theWithEndpointfunction or by setting theOTEL_EXPORTER_JAEGER_ENDPOINTenvironment variable value appropriately. (#1824) - The Jaeger exporter no longer batches exported spans itself, instead it relies on the SDK's
BatchSpanProcessorfor this functionality. (#1830) - The Jaeger exporter creation functions (
NewRawExporter,NewExportPipeline, andInstallNewPipeline) no longer accept the removedOptiontype as a variadic argument. (#1830)
Removed
- Removed Jaeger Environment variables:
JAEGER_SERVICE_NAME,JAEGER_DISABLED,JAEGER_TAGSThese environment variables will no longer be used to override values of the Jaeger exporter (#1752) - No longer set the links for a
Spaningo.opentelemetry.io/otel/sdk/tracethat 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".RemoteSpanContextFromContextis removed as it is no longer needed. Instead,"go.opentelemetry.io/otel/trace".SpanContextFromContexcan be used to return the current Span. If needed, that Span'sSpanContext.IsRemote()can then be used to determine if it is remote or not. (#1731) - The
HasRemoteParentfield of the"go.opentelemetry.io/otel/sdk/trace".SamplingParametersis removed. This field is redundant to the information returned from theRemotemethod of theSpanContextheld in theParentContextfield. (#1749) - The
trace.FlagsDebugandtrace.FlagsDeferredconstants have been removed and will be localized to the B3 propagator. (#1770) - Remove
Processconfiguration,WithProcessFromEnvandProcessFromEnv, and type from the Jaeger exporter package. The information that could be configured in theProcessstruct should be configured in aResourceinstead. (#1776, #1804) - Remove the
WithDisabledoption from the Jaeger exporter. To disable the exporter unregister it from theTracerProvideror use a no-operationTracerProvider. (#1806) - Removed the functions
CollectorEndpointFromEnvandWithCollectorEndpointOptionFromEnvfrom 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
WithSDKOptionsOption. 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, theNewRawExporterfunction and direct setup of the SDK with the desired settings should be used. (#1825) - The
WithBufferMaxCountandWithBatchMaxCountOptions from the Jaeger exporter are removed. The exporter no longer batches exports, instead relying on the SDK'sBatchSpanProcessorfor this functionality. (#1830) - The Jaeger exporter
Optiontype is removed. The type is no longer used by the exporter to configure anything. All the previous configurations these options provided were duplicates of SDK configuration. They have been removed in favor of using the SDK configuration and focuses the exporter configuration to be only about the endpoints it will send telemetry to. (#1830)
0.19.0 - 2021-03-18
Added
- Added
Marshalerconfig option tootlphttpto enable otlp over json or protobufs. (#1586) - A
ForceFlushmethod to the"go.opentelemetry.io/otel/sdk/trace".TracerProviderto flush all registeredSpanProcessors. (#1608) - Added
WithSamplerandWithSpanLimitsto tracer provider. (#1633, #1702) "go.opentelemetry.io/otel/trace".SpanContextnow has aremoteproperty, andIsRemote()predicate, that is true when theSpanContexthas been extracted from remote context data. (#1701)- A
Validmethod to the"go.opentelemetry.io/otel/attribute".KeyValuetype. (#1703)
Changed
trace.SpanContextis now immutable and has no exported fields. (#1573)trace.NewSpanContext()can be used in conjunction with thetrace.SpanContextConfigstruct to initialize a newSpanContextwhere all values are known.
- Update the
ForceFlushmethod signature to the"go.opentelemetry.io/otel/sdk/trace".SpanProcessorto accept acontext.Contextand return an error. (#1608) - Update the
Shutdownmethod to the"go.opentelemetry.io/otel/sdk/trace".TracerProviderreturn an error on shutdown failure. (#1608) - The SimpleSpanProcessor will now shut down the enclosed
SpanExporterand gracefully ignore subsequent calls toOnEndafterShutdownis called. (#1612) "go.opentelemetry.io/sdk/metric/controller.basic".WithPusheris replaced withWithExporterto provide consistent naming across project. (#1656)- Added non-empty string check for trace
Attributekeys. (#1659) - Add
descriptionto SpanStatus only whenStatusCodeis set to error. (#1662) - Jaeger exporter falls back to
resource.Default'sservice.nameif the exported Span does not have one. (#1673) - Jaeger exporter populates Jaeger's Span Process from Resource. (#1673)
- Renamed the
LabelSetmethod of"go.opentelemetry.io/otel/sdk/resource".ResourcetoSet. (#1692) - Changed
WithSDKtoWithSDKOptionsto accept variadic arguments ofTracerProviderOptiontype ingo.opentelemetry.io/otel/exporters/trace/jaegerpackage. (#1693) - Changed
WithSDKtoWithSDKOptionsto accept variadic arguments ofTracerProviderOptiontype ingo.opentelemetry.io/otel/exporters/trace/zipkinpackage. (#1693)
Removed
- Removed
serviceNameparameter from Zipkin exporter and uses resource instead. (#1549) - Removed
WithConfigfrom tracer provider to avoid overriding configuration. (#1633) - Removed the exported
SimpleSpanProcessorandBatchSpanProcessorstructs. These are now returned as a SpanProcessor interface from their respective constructors. (#1638) - Removed
WithRecord()fromtrace.SpanOptionwhen creating a span. (#1660) - Removed setting status to
Errorwhile recording an error as a span event inRecordError. (#1663) - Removed
jaeger.WithProcessconfiguration option. (#1673) - Removed
ApplyConfigmethod from"go.opentelemetry.io/otel/sdk/trace".TracerProviderand the now unneededConfigstruct. (#1693)
Fixed
- Jaeger Exporter: Ensure mapping between OTEL and Jaeger span data complies with the specification. (#1626)
SamplingResult.TraceStateis correctly propagated to a newly created span'sSpanContext. (#1655)- The
otel-collectorexample now correctly flushes metric events prior to shutting down the exporter. (#1678) - Do not set span status message in
SpanStatusFromHTTPStatusCodeif it can be inferred fromhttp.status_code. (#1681) - Synchronization issues in global trace delegate implementation. (#1686)
- Reduced excess memory usage by global
TracerProvider. (#1687)
0.18.0 - 2021-03-03
Added
- Added
resource.Default()for use with meter and tracer providers. (#1507) AttributePerEventCountLimitandAttributePerLinkCountLimitforSpanLimits. (#1535)- Added
Keys()method topropagation.TextMapCarrierandpropagation.HeaderCarrierto adapthttp.Headerto this interface. (#1544) - Added
codeattributes togo.opentelemetry.io/otel/semconvpackage. (#1558) - Compatibility testing suite in the CI system for the following systems. (#1567)
OS Go Version Architecture Ubuntu 1.15 amd64 Ubuntu 1.14 amd64 Ubuntu 1.15 386 Ubuntu 1.14 386 MacOS 1.15 amd64 MacOS 1.14 amd64 Windows 1.15 amd64 Windows 1.14 amd64 Windows 1.15 386 Windows 1.14 386
Changed
-
Replaced interface
oteltest.SpanRecorderwith its existing implementationStandardSpanRecorder. (#1542) -
Default span limit values to 128. (#1535)
-
Rename
MaxEventsPerSpan,MaxAttributesPerSpanandMaxLinksPerSpantoEventCountLimit,AttributeCountLimitandLinkCountLimit, and move these fields intoSpanLimits. (#1535) -
Renamed the
otel/labelpackage tootel/attribute. (#1541) -
Vendor the Jaeger exporter's dependency on Apache Thrift. (#1551)
-
Parallelize the CI linting and testing. (#1567)
-
Stagger timestamps in exact aggregator tests. (#1569)
-
Changed all examples to use
WithBatchTimeout(5 * time.Second)rather thanWithBatchTimeout(5). (#1621) -
Prevent end-users from implementing some interfaces (#1575)
"otel/exporters/otlp/otlphttp".Option "otel/exporters/stdout".Option "otel/oteltest".Option "otel/trace".TracerOption "otel/trace".SpanOption "otel/trace".EventOption "otel/trace".LifeCycleOption "otel/trace".InstrumentationOption "otel/sdk/resource".Option "otel/sdk/trace".ParentBasedSamplerOption "otel/sdk/trace".ReadOnlySpan "otel/sdk/trace".ReadWriteSpan
Removed
- Removed attempt to resample spans upon changing the span name with
span.SetName(). (#1545) - The
test-benchmarkis no longer a dependency of theprecommitmake target. (#1567) - Removed the
test-386make target. This was replaced with a full compatibility testing suite (i.e. multi OS/arch) in the CI system. (#1567)
Fixed
- The sequential timing check of timestamps in the stdout exporter are now setup explicitly to be sequential (#1571). (#1572)
- Windows build of Jaeger tests now compiles with OS specific functions (#1576). (#1577)
- The sequential timing check of timestamps of go.opentelemetry.io/otel/sdk/metric/aggregator/lastvalue are now setup explicitly to be sequential (#1578). (#1579)
- Validate tracestate header keys with vendors according to the W3C TraceContext specification (#1475). (#1581)
- The OTLP exporter includes related labels for translations of a GaugeArray (#1563). (#1570)
0.17.0 - 2021-02-12
Changed
- Rename project default branch from
mastertomain. (#1505) - Reverse order in which
Resourceattributes are merged, per change in spec. (#1501) - Add tooling to maintain "replace" directives in go.mod files automatically. (#1528)
- Create new modules: otel/metric, otel/trace, otel/oteltest, otel/sdk/export/metric, otel/sdk/metric (#1528)
- Move metric-related public global APIs from otel to otel/metric/global. (#1528)
Fixed
- Fixed otlpgrpc reconnection issue.
- The example code in the README.md of
go.opentelemetry.io/otel/exporters/otlpis moved to a compiled example test and used the newWithAddressinstead ofWithEndpoint. (#1513) - The otel-collector example now uses the default OTLP receiver port of the collector.
0.16.0 - 2021-01-13
Added
- Add the
ReadOnlySpanandReadWriteSpaninterfaces to provide better control for accessing span data. (#1360) NewGRPCDriverfunction returns aProtocolDriverthat maintains a single gRPC connection to the collector. (#1369)- Added documentation about the project's versioning policy. (#1388)
- Added
NewSplitDriverfor OTLP exporter that allows sending traces and metrics to different endpoints. (#1418) - Added codeql worfklow to GitHub Actions (#1428)
- Added Gosec workflow to GitHub Actions (#1429)
- Add new HTTP driver for OTLP exporter in
exporters/otlp/otlphttp. Currently it only supports the binary protobuf payloads. (#1420) - Add an OpenCensus exporter bridge. (#1444)
Changed
- Rename
internal/testingtointernal/internaltest. (#1449) - Rename
export.SpanDatatoexport.SpanSnapshotand use it only for exporting spans. (#1360) - Store the parent's full
SpanContextrather than just its span ID in thespanstruct. (#1360) - Improve span duration accuracy. (#1360)
- Migrated CI/CD from CircleCI to GitHub Actions (#1382)
- Remove duplicate checkout from GitHub Actions workflow (#1407)
- Metric
arrayaggregator renamedexactto match itsaggregation.Kind(#1412) - Metric
exactaggregator includes per-point timestamps (#1412) - Metric stdout exporter uses MinMaxSumCount aggregator for ValueRecorder instruments (#1412)
NewExporterfromexporters/otlpnow takes aProtocolDriveras a parameter. (#1369)- Many OTLP Exporter options became gRPC ProtocolDriver options. (#1369)
- Unify endpoint API that related to OTel exporter. (#1401)
- Optimize metric histogram aggregator to re-use its slice of buckets. (#1435)
- Metric aggregator Count() and histogram Bucket.Counts are consistently
uint64. (1430) - Histogram aggregator accepts functional options, uses default boundaries if none given. (#1434)
SamplingResultnow passed aTracestatefrom the parentSpanContext(#1432)- Moved gRPC driver for OTLP exporter to
exporters/otlp/otlpgrpc. (#1420) - The
TraceContextpropagator now correctly propagatesTraceStatethrough theSpanContext. (#1447) - Metric Push and Pull Controller components are combined into a single "basic" Controller:
WithExporter()andStart()to configure Push behaviorStart()is optional; useCollect()andForEach()for Pull behaviorStart()andStop()accept Context. (#1378)
- The
Eventtype is moved from theotel/sdk/export/tracepackage to theotel/traceAPI package. (#1452)
Removed
- Remove
errUninitializedSpanas its only usage is now obsolete. (#1360) - Remove Metric export functionality related to quantiles and summary data points: this is not specified (#1412)
- Remove DDSketch metric aggregator; our intention is to re-introduce this as an option of the histogram aggregator after new OTLP histogram data types are released (#1412)
Fixed
BatchSpanProcessor.Shutdown()will now shutdown underlyingexport.SpanExporter. (#1443)
0.15.0 - 2020-12-10
Added
- The
WithIDGeneratorTracerProviderOptionis added to thego.opentelemetry.io/otel/tracepackage to configure anIDGeneratorfor theTracerProvider. (#1363)
Changed
- The Zipkin exporter now uses the Span status code to determine. (#1328)
NewExporterandStartfunctions ingo.opentelemetry.io/otel/exporters/otlpnow receivecontext.Contextas a first parameter. (#1357)- Move the OpenCensus example into
exampledirectory. (#1359) - Moved the SDK's
internal.IDGeneratorinterface in to thesdk/tracepackage to enable support for externally-defined ID generators. (#1363) - Bump
github.com/google/go-cmpfrom 0.5.3 to 0.5.4 (#1374) - Bump
github.com/golangci/golangci-lintin/internal/tools(#1375)
Fixed
- Metric SDK
SumObserverandUpDownSumObserverinstruments correctness fixes. (#1381)
0.14.0 - 2020-11-19
Added
- An
EventOptionand the relatedNewEventConfigfunction are added to thego.opentelemetry.io/otelpackage to configure Span events. (#1254) - A
TextMapPropagatorand associatedTextMapCarrierare added to thego.opentelemetry.io/otel/oteltestpackage to testTextMaptype propagators and their use. (#1259) SpanContextFromContextreturnsSpanContextfrom context. (#1255)TraceStatehas been added toSpanContext. (#1340)DeploymentEnvironmentKeyadded togo.opentelemetry.io/otel/semconvpackage. (#1323)- Add an OpenCensus to OpenTelemetry tracing bridge. (#1305)
- Add a parent context argument to
SpanProcessor.OnStartto follow the specification. (#1333) - Add missing tests for
sdk/trace/attributes_map.go. (#1337)
Changed
- Move the
go.opentelemetry.io/otel/api/tracepackage intogo.opentelemetry.io/otel/tracewith the following changes. (#1229) (#1307)IDhas been renamed toTraceID.IDFromHexhas been renamed toTraceIDFromHex.EmptySpanContextis removed.
- Move the
go.opentelemetry.io/otel/api/trace/tracetestpackage intogo.opentelemetry.io/otel/oteltest. (#1229) - OTLP Exporter updates:
- supports OTLP v0.6.0 (#1230, #1354)
- supports configurable aggregation temporality (default: Cumulative, optional: Stateless). (#1296)
- The Sampler is now called on local child spans. (#1233)
- The
Kindtype from thego.opentelemetry.io/otel/api/metricpackage was renamed toInstrumentKindto more specifically describe what it is and avoid semantic ambiguity. (#1240) - The
MetricKindmethod of theDescriptortype in thego.opentelemetry.io/otel/api/metricpackage was renamed toDescriptor.InstrumentKind. This matches the returned type and fixes misuse of the term metric. (#1240) - Move test harness from the
go.opentelemetry.io/otel/api/apitestpackage intogo.opentelemetry.io/otel/oteltest. (#1241) - Move the
go.opentelemetry.io/otel/api/metric/metrictestpackage intogo.opentelemetry.io/oteltestas part of #964. (#1252) - Move the
go.opentelemetry.io/otel/api/metricpackage intogo.opentelemetry.io/otel/metricas part of #1303. (#1321) - Move the
go.opentelemetry.io/otel/api/metric/registrypackage intogo.opentelemetry.io/otel/metric/registryas a part of #1303. (#1316) - Move the
Numbertype (together with related functions) fromgo.opentelemetry.io/otel/api/metricpackage intogo.opentelemetry.io/otel/metric/numberas a part of #1303. (#1316) - The function signature of the Span
AddEventmethod ingo.opentelemetry.io/otelis updated to no longer take an unused context and instead take a required name and a variable number ofEventOptions. (#1254) - The function signature of the Span
RecordErrormethod ingo.opentelemetry.io/otelis updated to no longer take an unused context and instead take a required error value and a variable number ofEventOptions. (#1254) - Move the
go.opentelemetry.io/otel/api/globalpackage togo.opentelemetry.io/otel. (#1262) (#1330) - Move the
Versionfunction fromgo.opentelemetry.io/otel/sdktogo.opentelemetry.io/otel. (#1330) - Rename correlation context header from
"otcorrelations"to"baggage"to match the OpenTelemetry specification. (#1267) - Fix
Code.UnmarshalJSONto work with valid JSON only. (#1276) - The
resource.New()method changes signature to support builtin attributes and functional options, includingtelemetry.sdk.*andhost.namesemantic conventions; the former method is renamedresource.NewWithAttributes. (#1235) - The Prometheus exporter now exports non-monotonic counters (i.e.
UpDownCounters) as gauges. (#1210) - Correct the
Span.Endmethod documentation in theotelAPI to state updates are not allowed on a span after it has ended. (#1310) - Updated span collection limits for attribute, event and link counts to 1000 (#1318)
- Renamed
semconv.HTTPUrlKeytosemconv.HTTPURLKey. (#1338)
Removed
- The
ErrInvalidHexID,ErrInvalidTraceIDLength,ErrInvalidSpanIDLength,ErrInvalidSpanIDLength, orErrNilSpanIDfrom thego.opentelemetry.io/otelpackage are unexported now. (#1243) - The
AddEventWithTimestampmethod on theSpaninterface ingo.opentelemetry.io/otelis removed due to its redundancy. It is replaced by using theAddEventmethod with aWithTimestampoption. (#1254) - The
MockSpanandMockTracertypes are removed fromgo.opentelemetry.io/otel/oteltest.TracerandSpanfrom the same module should be used in their place instead. (#1306) WorkerCountoption is removed fromgo.opentelemetry.io/otel/exporters/otlp. (#1350)- Remove the following labels types: INT32, UINT32, UINT64 and FLOAT32. (#1314)
Fixed
- Rename
MergeItereratortoMergeIteratorin thego.opentelemetry.io/otel/labelpackage. (#1244) - The
go.opentelemetry.io/otel/api/globalpackages global TextMapPropagator now delegates functionality to a globally set delegate for all previously returned propagators. (#1258) - Fix condition in
label.Any. (#1299) - Fix global
TracerProviderto pass options to its configured provider. (#1329) - Fix missing handler for
ExactKindaggregator in OTLP metrics transformer (#1309)
0.13.0 - 2020-10-08
Added
- OTLP Metric exporter supports Histogram aggregation. (#1209)
- The
Codestruct from thego.opentelemetry.io/otel/codespackage now supports JSON marshaling and unmarshaling as well as implements theStringerinterface. (#1214) - A Baggage API to implement the OpenTelemetry specification. (#1217)
- Add Shutdown method to sdk/trace/provider, shutdown processors in the order they were registered. (#1227)
Changed
- Set default propagator to no-op propagator. (#1184)
- The
HTTPSupplier,HTTPExtractor,HTTPInjector, andHTTPPropagatorfrom thego.opentelemetry.io/otel/api/propagationpackage were replaced with unifiedTextMapCarrierandTextMapPropagatorin thego.opentelemetry.io/otel/propagationpackage. (#1212) (#1325) - The
Newfunction from thego.opentelemetry.io/otel/api/propagationpackage was replaced withNewCompositeTextMapPropagatorin thego.opentelemetry.io/otelpackage. (#1212) - The status codes of the
go.opentelemetry.io/otel/codespackage have been updated to match the latest OpenTelemetry specification. They now areUnset,Error, andOk. They no longer track the gRPC codes. (#1214) - The
StatusCodefield of theSpanDatastruct in thego.opentelemetry.io/otel/sdk/export/tracepackage now uses the codes package from this package instead of the gRPC project. (#1214) - Move the
go.opentelemetry.io/otel/api/baggagepackage intogo.opentelemetry.io/otel/baggage. (#1217) (#1325) - A
Shutdownmethod ofSpanProcessorand all its implementations receives a context and returns an error. (#1264)
Fixed
- Copies of data from arrays and slices passed to
go.opentelemetry.io/otel/label.ArrayValue()are now used in the returnedValueinstead of using the mutable data itself. (#1226)
Removed
- The
ExtractHTTPandInjectHTTPfunctions from thego.opentelemetry.io/otel/api/propagationpackage were removed. (#1212) - The
Propagatorsinterface from thego.opentelemetry.io/otel/api/propagationpackage was removed to conform to the OpenTelemetry specification. The explicitTextMapPropagatortype can be used in its place as this is thePropagatortype the specification defines. (#1212) - The
SetAttributemethod of theSpanfrom thego.opentelemetry.io/otel/api/tracepackage was removed given its redundancy with theSetAttributesmethod. (#1216) - The internal implementation of Baggage storage is removed in favor of using the new Baggage API functionality. (#1217)
- Remove duplicate hostname key
HostHostNameKeyin Resource semantic conventions. (#1219) - Nested array/slice support has been removed. (#1226)
0.12.0 - 2020-09-24
Added
- A
SpanConfigurefunction ingo.opentelemetry.io/otel/api/traceto create a newSpanConfigfromSpanOptions. (#1108) - In the
go.opentelemetry.io/otel/api/tracepackage,NewTracerConfigwas added to construct newTracerConfigs. This addition was made to conform with our project option conventions. (#1155) - Instrumentation library information was added to the Zipkin exporter. (#1119)
- The
SpanProcessorinterface now has aForceFlush()method. (#1166) - More semantic conventions for k8s as resource attributes. (#1167)
Changed
- Add reconnecting udp connection type to Jaeger exporter. This change adds a new optional implementation of the udp conn interface used to detect changes to an agent's host dns record. It then adopts the new destination address to ensure the exporter doesn't get stuck. This change was ported from jaegertracing/jaeger-client-go#520. (#1063)
- Replace
StartOptionandEndOptioningo.opentelemetry.io/otel/api/tracewithSpanOption. This change is matched by replacing theStartConfigandEndConfigwith a unifiedSpanConfig. (#1108) - Replace the
LinkedTospan option ingo.opentelemetry.io/otel/api/tracewithWithLinks. This is be more consistent with our other option patterns, i.e. passing the item to be configured directly instead of its component parts, and provides a cleaner function signature. (#1108) - The
go.opentelemetry.io/otel/api/traceTracerOptionwas changed to an interface to conform to project option conventions. (#1109) - Move the
B3andTraceContextfrom within thego.opentelemetry.io/otel/api/tracepackage to their owngo.opentelemetry.io/otel/propagatorspackage. This removal of the propagators is reflective of the OpenTelemetry specification for these propagators as well as cleans up thego.opentelemetry.io/otel/api/traceAPI. (#1118) - Rename Jaeger tags used for instrumentation library information to reflect changes in OpenTelemetry specification. (#1119)
- Rename
ProbabilitySamplertoTraceIDRatioBasedand change semantics to ignore parent span sampling status. (#1115) - Move
toolspackage underinternal. (#1141) - Move
go.opentelemetry.io/otel/api/correlationpackage togo.opentelemetry.io/otel/api/baggage. (#1142) Thecorrelation.CorrelationContextpropagator has been renamedbaggage.Baggage. Other exported functions and types are unchanged. - Rename
ParentOrElsesampler toParentBasedand allow setting samplers depending on parent span. (#1153) - In the
go.opentelemetry.io/otel/api/tracepackage,SpanConfigurewas renamed toNewSpanConfig. (#1155) - Change
dependabot.ymlto add aSkip Changeloglabel to dependabot-sourced PRs. (#1161) - The configuration style guide has been updated to
recommend the use of
newConfig()instead ofconfigure(). (#1163) - The
otlp.Configtype has been unexported and changed tootlp.config, along with its initializer. (#1163) - Ensure exported interface types include parameter names and update the Style Guide to reflect this styling rule. (#1172)
- Don't consider unset environment variable for resource detection to be an error. (#1170)
- Rename
go.opentelemetry.io/otel/api/metric.ConfigureInstrumenttoNewInstrumentConfigandgo.opentelemetry.io/otel/api/metric.ConfigureMetertoNewMeterConfig. - ValueObserver instruments use LastValue aggregator by default. (#1165)
- OTLP Metric exporter supports LastValue aggregation. (#1165)
- Move the
go.opentelemetry.io/otel/api/unitpackage togo.opentelemetry.io/otel/unit. (#1185) - Rename
ProvidertoMeterProviderin thego.opentelemetry.io/otel/api/metricpackage. (#1190) - Rename
NoopProvidertoNoopMeterProviderin thego.opentelemetry.io/otel/api/metricpackage. (#1190) - Rename
NewProvidertoNewMeterProviderin thego.opentelemetry.io/otel/api/metric/metrictestpackage. (#1190) - Rename
ProvidertoMeterProviderin thego.opentelemetry.io/otel/api/metric/registrypackage. (#1190) - Rename
NewProvidertoNewMeterProviderin thego.opentelemetry.io/otel/api/metri/registrycpackage. (#1190) - Rename
ProvidertoTracerProviderin thego.opentelemetry.io/otel/api/tracepackage. (#1190) - Rename
NoopProvidertoNoopTracerProviderin thego.opentelemetry.io/otel/api/tracepackage. (#1190) - Rename
ProvidertoTracerProviderin thego.opentelemetry.io/otel/api/trace/tracetestpackage. (#1190) - Rename
NewProvidertoNewTracerProviderin thego.opentelemetry.io/otel/api/trace/tracetestpackage. (#1190) - Rename
WrapperProvidertoWrapperTracerProviderin thego.opentelemetry.io/otel/bridge/opentracingpackage. (#1190) - Rename
NewWrapperProvidertoNewWrapperTracerProviderin thego.opentelemetry.io/otel/bridge/opentracingpackage. (#1190) - Rename
Providermethod of the pull controller toMeterProviderin thego.opentelemetry.io/otel/sdk/metric/controller/pullpackage. (#1190) - Rename
Providermethod of the push controller toMeterProviderin thego.opentelemetry.io/otel/sdk/metric/controller/pushpackage. (#1190) - Rename
ProviderOptionstoTracerProviderConfigin thego.opentelemetry.io/otel/sdk/tracepackage. (#1190) - Rename
ProviderOptiontoTracerProviderOptionin thego.opentelemetry.io/otel/sdk/tracepackage. (#1190) - Rename
ProvidertoTracerProviderin thego.opentelemetry.io/otel/sdk/tracepackage. (#1190) - Rename
NewProvidertoNewTracerProviderin thego.opentelemetry.io/otel/sdk/tracepackage. (#1190) - Renamed
SamplingDecisionvalues to comply with OpenTelemetry specification change. (#1192) - Renamed Zipkin attribute names from
ot.status_code & ot.status_descriptiontootel.status_code & otel.status_description. (#1201) - The default SDK now invokes registered
SpanProcessors in the order they were registered with theTracerProvider. (#1195) - Add test of spans being processed by the
SpanProcessors in the order they were registered. (#1203)
Removed
- Remove the B3 propagator from
go.opentelemetry.io/otel/propagators. It is now located in thego.opentelemetry.io/contrib/propagators/module. (#1191) - Remove the semantic convention for HTTP status text,
HTTPStatusTextKeyfrom packagego.opentelemetry.io/otel/semconv. (#1194)
Fixed
- Zipkin example no longer mentions
ParentSampler, corrected toParentBased. (#1171) - Fix missing shutdown processor in otel-collector example. (#1186)
- Fix missing shutdown processor in basic and namedtracer examples. (#1197)
0.11.0 - 2020-08-24
Added
- Support for exporting array-valued attributes via OTLP. (#992)
NoopandInMemorySpanBatcherimplementations to help with testing integrations. (#994)- Support for filtering metric label sets. (#1047)
- A dimensionality-reducing metric Processor. (#1057)
- Integration tests for more OTel Collector Attribute types. (#1062)
- A new
WithSpanProcessorProviderOptionis added to thego.opentelemetry.io/otel/sdk/tracepackage to create aProviderand automatically register theSpanProcessor. (#1078)
Changed
- Rename
sdk/metric/processor/testtosdk/metric/processor/processortest. (#1049) - Rename
sdk/metric/controller/testtosdk/metric/controller/controllertest. (#1049) - Rename
api/testharnesstoapi/apitest. (#1049) - Rename
api/trace/testtracetoapi/trace/tracetest. (#1049) - Change Metric Processor to merge multiple observations. (#1024)
- The
go.opentelemetry.io/otel/bridge/opentracingbridge package has been made into its own module. This removes the package dependencies of this bridge from the rest of the OpenTelemetry based project. (#1038) - Renamed
go.opentelemetry.io/otel/api/standardpackage togo.opentelemetry.io/otel/semconvto avoid the ambiguous and generic namestandardand better describe the package as containing OpenTelemetry semantic conventions. (#1016) - The environment variable used for resource detection has been changed from
OTEL_RESOURCE_LABELStoOTEL_RESOURCE_ATTRIBUTES(#1042) - Replace
WithSyncerwithWithBatcherin examples. (#1044) - Replace the
google.golang.org/grpc/codesdependency in the API with an equivalentgo.opentelemetry.io/otel/codespackage. (#1046) - Merge the
go.opentelemetry.io/otel/api/labelandgo.opentelemetry.io/otel/api/kvinto the newgo.opentelemetry.io/otel/labelpackage. (#1060) - Unify Callback Function Naming.
Rename
*Callbackwith*Func. (#1061) - CI builds validate against last two versions of Go, dropping 1.13 and adding 1.15. (#1064)
- The
go.opentelemetry.io/otel/sdk/export/traceinterfacesSpanSyncerandSpanBatcherhave been replaced with a specification compliantExporterinterface. This interface still supports the export ofSpanData, but only as a slice. Implementation are also required now to return any error fromExportSpansif one occurs as well as implement aShutdownmethod for exporter clean-up. (#1078) - The
go.opentelemetry.io/otel/sdk/traceNewBatchSpanProcessorfunction no longer returns an error. If anilexporter is passed as an argument to this function, instead of it returning an error, it now returns aBatchSpanProcessorthat handles the export ofSpanDataby not taking any action. (#1078) - The
go.opentelemetry.io/otel/sdk/traceNewProviderfunction to create aProviderno longer returns an error, instead only a*Provider. This change is related toNewBatchSpanProcessornot returning an error which was the only error this function would return. (#1078)
Removed
- Duplicate, unused API sampler interface. (#999)
Use the
Samplerinterface provided by the SDK instead. - The
grpctraceinstrumentation was moved to thego.opentelemetry.io/contribrepository and out of this repository. This move includes moving thegrpcexample to thego.opentelemetry.io/contribas well. (#1027) - The
WithSpanmethod of theTracerinterface. The functionality this method provided was limited compared to what a user can provide themselves. It was removed with the understanding that if there is sufficient user need it can be added back based on actual user usage. (#1043) - The
RegisterSpanProcessorandUnregisterSpanProcessorfunctions. These were holdovers from an approach prior to the TracerProvider design. They were not used anymore. (#1077) - The
oterrorpackage. (#1026) - The
othttpandhttptraceinstrumentations were moved togo.opentelemetry.io/contrib. (#1032)
Fixed
- The
semconv.HTTPServerMetricAttributesFromHTTPRequest()function no longer generates the high-cardinalityhttp.request.content.lengthlabel. (#1031) - Correct instrumentation version tag in Jaeger exporter. (#1037)
- The SDK span will now set an error event if the
Endmethod is called during a panic (i.e. it was deferred). (#1043) - Move internally generated protobuf code from the
go.opentelemetry.io/otelto the OTLP exporter to reduce dependency overhead. (#1050) - The
otel-collectorexample referenced outdated collector processors. (#1006)
0.10.0 - 2020-07-29
This release migrates the default OpenTelemetry SDK into its own Go module, decoupling the SDK from the API and reducing dependencies for instrumentation packages.
Added
- The Zipkin exporter now has
NewExportPipelineandInstallNewPipelineconstructor functions to match the common pattern. These function build a new exporter with default SDK options and register the exporter with theglobalpackage respectively. (#944) - Add propagator option for gRPC instrumentation. (#986)
- The
testtracepackage now tracks thetrace.SpanKindfor each span. (#987)
Changed
- Replace the
RegisterGlobalOptionin the Jaeger exporter with anInstallNewPipelineconstructor function. This matches the other exporter constructor patterns and will register a new exporter after building it with default configuration. (#944) - The trace (
go.opentelemetry.io/otel/exporters/trace/stdout) and metric (go.opentelemetry.io/otel/exporters/metric/stdout)stdoutexporters are now merged into a single exporter atgo.opentelemetry.io/otel/exporters/stdout. This new exporter was made into its own Go module to follow the pattern of all exporters and decouple it from thego.opentelemetry.io/otelmodule. (#956, #963) - Move the
go.opentelemetry.io/otel/exporters/testtest package togo.opentelemetry.io/otel/sdk/export/metric/metrictest. (#962) - The
go.opentelemetry.io/otel/api/kv/valuepackage was merged into the parentgo.opentelemetry.io/otel/api/kvpackage. (#968)value.Boolwas replaced withkv.BoolValue.value.Int64was replaced withkv.Int64Value.value.Uint64was replaced withkv.Uint64Value.value.Float64was replaced withkv.Float64Value.value.Int32was replaced withkv.Int32Value.value.Uint32was replaced withkv.Uint32Value.value.Float32was replaced withkv.Float32Value.value.Stringwas replaced withkv.StringValue.value.Intwas replaced withkv.IntValue.value.Uintwas replaced withkv.UintValue.value.Arraywas replaced withkv.ArrayValue.
- Rename
InfertoAnyin thego.opentelemetry.io/otel/api/kvpackage. (#972) - Change
othttpto use thehttpsnooppackage to wrap theResponseWriterso that optional interfaces (http.Hijacker,http.Flusher, etc.) that are implemented by the originalResponseWriterare also implemented by the wrappedResponseWriter. (#979) - Rename
go.opentelemetry.io/otel/sdk/metric/aggregator/testpackage togo.opentelemetry.io/otel/sdk/metric/aggregator/aggregatortest. (#980) - Make the SDK into its own Go module called
go.opentelemetry.io/otel/sdk. (#985) - Changed the default trace
SamplerfromAlwaysOntoParentOrElse(AlwaysOn). (#989)
Removed
- The
IndexedAttributefunction from thego.opentelemetry.io/otel/api/labelpackage was removed in favor ofIndexedLabelwhich it was synonymous with. (#970)
Fixed
- Bump github.com/golangci/golangci-lint from 1.28.3 to 1.29.0 in /tools. (#953)
- Bump github.com/google/go-cmp from 0.5.0 to 0.5.1. (#957)
- Use
global.Handlefor span export errors in the OTLP exporter. (#946) - Correct Go language formatting in the README documentation. (#961)
- Remove default SDK dependencies from the
go.opentelemetry.io/otel/apipackage. (#977) - Remove default SDK dependencies from the
go.opentelemetry.io/otel/instrumentationpackage. (#983) - Move documented examples for
go.opentelemetry.io/otel/instrumentation/grpctraceinterceptors into Go example tests. (#984)
0.9.0 - 2020-07-20
Added
- A new Resource Detector interface is included to allow resources to be automatically detected and included. (#939)
- A Detector to automatically detect resources from an environment variable. (#939)
- Github action to generate protobuf Go bindings locally in
internal/opentelemetry-proto-gen. (#938) - OTLP .proto files from
open-telemetry/opentelemetry-protoimported as a git submodule underinternal/opentelemetry-proto. References togithub.com/open-telemetry/opentelemetry-protochanged togo.opentelemetry.io/otel/internal/opentelemetry-proto-gen. (#942)
Changed
- Non-nil value
structs for key-value pairs will be marshalled using JSON rather thanSprintf. (#948)
Removed
- Removed dependency on
github.com/open-telemetry/opentelemetry-collector. (#943)
0.8.0 - 2020-07-09
Added
- The
B3Encodingtype to represent the B3 encoding(s) the B3 propagator can inject. A value for HTTP supported encodings (Multiple Header:MultipleHeader, Single Header:SingleHeader) are included. (#882) - The
FlagsDeferredtrace flag to indicate if the trace sampling decision has been deferred. (#882) - The
FlagsDebugtrace flag to indicate if the trace is a debug trace. (#882) - Add
peer.servicesemantic attribute. (#898) - Add database-specific semantic attributes. (#899)
- Add semantic convention for
faas.coldstartandcontainer.id. (#909) - Add http content size semantic conventions. (#905)
- Include
http.request_content_lengthin HTTP request basic attributes. (#905) - Add semantic conventions for operating system process resource attribute keys. (#919)
- The Jaeger exporter now has a
WithBatchMaxCountoption to specify the maximum number of spans sent in a batch. (#931)
Changed
- Update
CONTRIBUTING.mdto ask for updates toCHANGELOG.mdwith each pull request. (#879) - Use lowercase header names for B3 Multiple Headers. (#881)
- The B3 propagator
SingleHeaderfield has been replaced withInjectEncoding. This new field can be set to combinations of theB3Encodingbitmasks and will inject trace information in these encodings. If no encoding is set, the propagator will default toMultipleHeaderencoding. (#882) - The B3 propagator now extracts from either HTTP encoding of B3 (Single Header or Multiple Header) based on what is contained in the header. Preference is given to Single Header encoding with Multiple Header being the fallback if Single Header is not found or is invalid. This behavior change is made to dynamically support all correctly encoded traces received instead of having to guess the expected encoding prior to receiving. (#882)
- Extend semantic conventions for RPC. (#900)
- To match constant naming conventions in the
api/standardpackage, theFaaS*key names are appended with a suffix ofKey. (#920)"api/standard".FaaSName->FaaSNameKey"api/standard".FaaSID->FaaSIDKey"api/standard".FaaSVersion->FaaSVersionKey"api/standard".FaaSInstance->FaaSInstanceKey
Removed
- The
FlagsUnusedtrace flag is removed. The purpose of this flag was to act as the inverse ofFlagsSampled, the inverse ofFlagsSampledis used instead. (#882) - The B3 header constants (
B3SingleHeader,B3DebugFlagHeader,B3TraceIDHeader,B3SpanIDHeader,B3SampledHeader,B3ParentSpanIDHeader) are removed. If B3 header keys are needed the authoritative OpenZipkin package constants should be used instead. (#882)
Fixed
- The B3 Single Header name is now correctly
b3instead of the previousX-B3. (#881) - The B3 propagator now correctly supports sampling only values (
b3: 0,b3: 1, orb3: d) for a Single B3 Header. (#882) - The B3 propagator now propagates the debug flag.
This removes the behavior of changing the debug flag into a set sampling bit.
Instead, this now follow the B3 specification and omits the
X-B3-Samplingheader. (#882) - The B3 propagator now tracks "unset" sampling state (meaning "defer the decision") and does not set the
X-B3-Samplingheader when injecting. (#882) - Bump github.com/itchyny/gojq from 0.10.3 to 0.10.4 in /tools. (#883)
- Bump github.com/opentracing/opentracing-go from v1.1.1-0.20190913142402-a7454ce5950e to v1.2.0. (#885)
- The tracing time conversion for OTLP spans is now correctly set to
UnixNano. (#896) - Ensure span status is not set to
Unknownwhen no HTTP status code is provided as it is assumed to be200 OK. (#908) - Ensure
httptrace.clientTracercloseshttp.headersspan. (#912) - Prometheus exporter will not apply stale updates or forget inactive metrics. (#903)
- Add test for api.standard
HTTPClientAttributesFromHTTPRequest. (#905) - Bump github.com/golangci/golangci-lint from 1.27.0 to 1.28.1 in /tools. (#901, #913)
- Update otel-colector example to use the v0.5.0 collector. (#915)
- The
grpctraceinstrumentation uses a span name conforming to the OpenTelemetry semantic conventions (does not contain a leading slash (/)). (#922) - The
grpctraceinstrumentation includes anrpc.methodattribute now set to the gRPC method name. (#900, #922) - The
grpctraceinstrumentationrpc.serviceattribute now contains the package name if one exists. This is in accordance with OpenTelemetry semantic conventions. (#922) - Correlation Context extractor will no longer insert an empty map into the returned context when no valid values are extracted. (#923)
- Bump google.golang.org/api from 0.28.0 to 0.29.0 in /exporters/trace/jaeger. (#925)
- Bump github.com/itchyny/gojq from 0.10.4 to 0.11.0 in /tools. (#926)
- Bump github.com/golangci/golangci-lint from 1.28.1 to 1.28.2 in /tools. (#930)
0.7.0 - 2020-06-26
This release implements the v0.5.0 version of the OpenTelemetry specification.
Added
- The othttp instrumentation now includes default metrics. (#861)
- This CHANGELOG file to track all changes in the project going forward.
- Support for array type attributes. (#798)
- Apply transitive dependabot go.mod dependency updates as part of a new automatic Github workflow. (#844)
- Timestamps are now passed to exporters for each export. (#835)
- Add new
Accumulationtype to metric SDK to transport telemetry fromAccumulators toProcessors. This replaces the priorRecordstructuse for this purpose. (#835) - New dependabot integration to automate package upgrades. (#814)
MeterandTracerimplementations accept instrumentation version version as an optional argument. This instrumentation version is passed on to exporters. (#811) (#805) (#802)- The OTLP exporter includes the instrumentation version in telemetry it exports. (#811)
- Environment variables for Jaeger exporter are supported. (#796)
- New
aggregation.Kindin the export metric API. (#808) - New example that uses OTLP and the collector. (#790)
- Handle errors in the span
SetNameduring span initialization. (#791) - Default service config to enable retries for retry-able failed requests in the OTLP exporter and an option to override this default. (#777)
- New
go.opentelemetry.io/otel/api/oterrorpackage to uniformly support error handling and definitions for the project. (#778) - New
globaldefault implementation of thego.opentelemetry.io/otel/api/oterror.Handlerinterface to be used to handle errors prior to an user definedHandler. There is also functionality for the user to register theirHandleras well as a convenience functionHandleto handle an error with this globalHandler(#778) - Options to specify propagators for httptrace and grpctrace instrumentation. (#784)
- The required
application/jsonheader for the Zipkin exporter is included in all exports. (#774) - Integrate HTTP semantics helpers from the contrib repository into the
api/standardpackage. #769
Changed
- Rename
IntegratortoProcessorin the metric SDK. (#863) - Rename
AggregationSelectortoAggregatorSelector. (#859) - Rename
SynchronizedCopytoSynchronizedMove. (#858) - Rename
simpleintegrator tobasicintegrator. (#857) - Merge otlp collector examples. (#841)
- Change the metric SDK to support cumulative, delta, and pass-through exporters directly. With these changes, cumulative and delta specific exporters are able to request the correct kind of aggregation from the SDK. (#840)
- The
Aggregator.CheckpointAPI is renamed toSynchronizedCopyand adds an argument, a differentAggregatorinto which the copy is stored. (#812) - The
export.Aggregatorcontract is thatUpdate()andSynchronizedCopy()are synchronized with each other. All the aggregation interfaces (Sum,LastValue, ...) are not meant to be synchronized, as the caller is expected to synchronize aggregators at a higher level after theAccumulator. Some of theAggregatorsused unnecessary locking and that has been cleaned up. (#812) - Use of
metric.Numberwas replaced byint64now that we usesync.Mutexin theMinMaxSumCountandHistogramAggregators. (#812) - Replace
AlwaysParentSamplewithParentSample(fallback)to match the OpenTelemetry v0.5.0 specification. (#810) - Rename
sdk/export/metric/aggregatortosdk/export/metric/aggregation. #808 - Send configured headers with every request in the OTLP exporter, instead of just on connection creation. (#806)
- Update error handling for any one off error handlers, replacing, instead, with the
global.Handlefunction. (#791) - Rename
plugindirectory toinstrumentationto match the OpenTelemetry specification. (#779) - Makes the argument order to Histogram and DDSketch
New()consistent. (#781)
Removed
Uint64NumberKindand related functions from the API. (#864)- Context arguments from
Aggregator.CheckpointandIntegrator.Processas they were unused. (#803) SpanIDis no longer included in parameters for sampling decision to match the OpenTelemetry specification. (#775)
Fixed
- Upgrade OTLP exporter to opentelemetry-proto matching the opentelemetry-collector v0.4.0 release. (#866)
- Allow changes to
go.sumandgo.modwhen running dependabot tidy-up. (#871) - Bump github.com/stretchr/testify from 1.4.0 to 1.6.1. (#824)
- Bump github.com/prometheus/client_golang from 1.7.0 to 1.7.1 in /exporters/metric/prometheus. (#867)
- Bump google.golang.org/grpc from 1.29.1 to 1.30.0 in /exporters/trace/jaeger. (#853)
- Bump google.golang.org/grpc from 1.29.1 to 1.30.0 in /exporters/trace/zipkin. (#854)
- Bumps github.com/golang/protobuf from 1.3.2 to 1.4.2 (#848)
- Bump github.com/stretchr/testify from 1.4.0 to 1.6.1 in /exporters/otlp (#817)
- Bump github.com/golangci/golangci-lint from 1.25.1 to 1.27.0 in /tools (#828)
- Bump github.com/prometheus/client_golang from 1.5.0 to 1.7.0 in /exporters/metric/prometheus (#838)
- Bump github.com/stretchr/testify from 1.4.0 to 1.6.1 in /exporters/trace/jaeger (#829)
- Bump github.com/benbjohnson/clock from 1.0.0 to 1.0.3 (#815)
- Bump github.com/stretchr/testify from 1.4.0 to 1.6.1 in /exporters/trace/zipkin (#823)
- Bump github.com/itchyny/gojq from 0.10.1 to 0.10.3 in /tools (#830)
- Bump github.com/stretchr/testify from 1.4.0 to 1.6.1 in /exporters/metric/prometheus (#822)
- Bump google.golang.org/grpc from 1.27.1 to 1.29.1 in /exporters/trace/zipkin (#820)
- Bump google.golang.org/grpc from 1.27.1 to 1.29.1 in /exporters/trace/jaeger (#831)
- Bump github.com/google/go-cmp from 0.4.0 to 0.5.0 (#836)
- Bump github.com/google/go-cmp from 0.4.0 to 0.5.0 in /exporters/trace/jaeger (#837)
- Bump github.com/google/go-cmp from 0.4.0 to 0.5.0 in /exporters/otlp (#839)
- Bump google.golang.org/api from 0.20.0 to 0.28.0 in /exporters/trace/jaeger (#843)
- Set span status from HTTP status code in the othttp instrumentation. (#832)
- Fixed typo in push controller comment. (#834)
- The
Aggregatortesting has been updated and cleaned. (#812) metric.Number(0)expressions are replaced by0where possible. (#812)- Fixed
globalhandler_test.gotest failure. #804 - Fixed
BatchSpanProcessor.Shutdownto wait until all spans are processed. (#766) - Fixed OTLP example's accidental early close of exporter. (#807)
- Ensure zipkin exporter reads and closes response body. (#788)
- Update instrumentation to use
api/standardkeys instead of custom keys. (#782) - Clean up tools and RELEASING documentation. (#762)
0.6.0 - 2020-05-21
Added
- Support for
Resources in the prometheus exporter. (#757) - New pull controller. (#751)
- New
UpDownSumObserverinstrument. (#750) - OpenTelemetry collector demo. (#711)
- New
SumObserverinstrument. (#747) - New
UpDownCounterinstrument. (#745) - New timeout
Optionand configuration functionWithTimeoutto the push controller. (#742) - New
api/standardspackage to implement semantic conventions and standard key-value generation. (#731)
Changed
- Rename
Register*functions in the metric API toNew*for allObserverinstruments. (#761) - Use
[]float64for histogram boundaries, not[]metric.Number. (#758) - Change OTLP example to use exporter as a trace
Syncerinstead of as an unneededBatcher. (#756) - Replace
WithResourceAttributes()withWithResource()in the trace SDK. (#754) - The prometheus exporter now uses the new pull controller. (#751)
- Rename
ScheduleDelayMillistoBatchTimeoutin the traceBatchSpanProcessor.(#752) - Support use of synchronous instruments in asynchronous callbacks (#725)
- Move
Resourcefrom theExportmethod parameter into the metric exportRecord. (#739) - Rename
Observerinstrument toValueObserver. (#734) - The push controller now has a method (
Provider()) to return ametric.Providerinstead of the oldMetermethod that acted as ametric.Provider. (#738) - Replace
Measureinstrument byValueRecorderinstrument. (#732) - Rename correlation context header from
"Correlation-Context"to"otcorrelations"to match the OpenTelemetry specification. (#727)
Fixed
- Ensure gRPC
ClientStreamoverride methods do not panic in grpctrace package. (#755) - Disable parts of
BatchSpanProcessortest until a fix is found. (#743) - Fix
stringcase inkvInferfunction. (#746) - Fix panic in grpctrace client interceptors. (#740)
- Refactor the
api/metricspush controller and addCheckpointSetsynchronization. (#737) - Rewrite span batch process queue batching logic. (#719)
- Remove the push controller named Meter map. (#738)
- Fix Histogram aggregator initial state (fix #735). (#736)
- Ensure golang alpine image is running
golang-1.14for examples. (#733) - Added test for grpctrace
UnaryInterceptorClient. (#695) - Rearrange
api/metriccode layout. (#724)
0.5.0 - 2020-05-13
Added
- Batch
Observercallback support. (#717) - Alias
apitypes to root package of project. (#696) - Create basic
othttp.Transportfor simple client instrumentation. (#678) SetAttribute(string, interface{})to the trace API. (#674)- Jaeger exporter option that allows user to specify custom http client. (#671)
StringerandInfermethods tokeys. (#662)
Changed
- Rename
NewKeyin thekvpackage to justKey. (#721) - Move
coreandkeytokvpackage. (#720) - Make the metric API
Meterastructso the abstractMeterImplcan be passed and simplify implementation. (#709) - Rename SDK
BatchertoIntegratorto match draft OpenTelemetry SDK specification. (#710) - Rename SDK
Ungroupedintegrator tosimple.Integratorto match draft OpenTelemetry SDK specification. (#710) - Rename SDK
SDKstructtoAccumulatorto match draft OpenTelemetry SDK specification. (#710) - Move
Numberfromcoretoapi/metricpackage. (#706) - Move
SpanContextfromcoretotracepackage. (#692) - Change traceparent header from
Traceparenttotraceparentto implement the W3C specification. (#681)
Fixed
- Update tooling to run generators in all submodules. (#705)
- gRPC interceptor regexp to match methods without a service name. (#683)
- Use a
constfor padding 64-bit B3 trace IDs. (#701) - Update
mockZipkinlisten address from:0to127.0.0.1:0. (#700) - Left-pad 64-bit B3 trace IDs with zero. (#698)
- Propagate at least the first W3C tracestate header. (#694)
- Remove internal
StateLockerimplementation. (#688) - Increase instance size CI system uses. (#690)
- Add a
keybenchmark and use reflection inkey.Infer(). (#679) - Fix internal
globaltest by usingglobal.MeterwithRecordBatch(). (#680) - Reimplement histogram using mutex instead of
StateLocker. (#669) - Switch
MinMaxSumCountto a mutex lock implementation instead ofStateLocker. (#667) - Update documentation to not include any references to
WithKeys. (#672) - Correct misspelling. (#668)
- Fix clobbering of the span context if extraction fails. (#656)
- Bump
golangci-lintand work around the corrupting bug. (#666) (#670)
0.4.3 - 2020-04-24
Added
Dockerfileanddocker-compose.ymlto run example code. (#635)- New
grpctracepackage that provides gRPC client and server interceptors for both unary and stream connections. (#621) - New
api/labelpackage, providing common label set implementation. (#651) - Support for JSON marshaling of
Resources. (#654) TraceIDandSpanIDimplementations forStringerinterface. (#642)RemoteAddrKeyin the othttp plugin to include the HTTP client address in top-level spans. (#627)WithSpanFormatteroption to the othttp plugin. (#617)- Updated README to include section for compatible libraries and include reference to the contrib repository. (#612)
- The prometheus exporter now supports exporting histograms. (#601)
- A
Stringmethod to theResourceto return a hashable identifier for a now unique resource. (#613) - An
Itermethod to theResourceto return an arrayAttributeIterator. (#613) - An
Equalmethod to theResourcetest the equivalence of resources. (#613) - An iterable structure (
AttributeIterator) forResourceattributes.
Changed
- zipkin export's
NewExporternow requires aserviceNameargument to ensure this needed values is provided. (#644) - Pass
Resourcesthrough the metrics export pipeline. (#659)
Removed
WithKeysoption from the metric API. (#639)
Fixed
- Use the
label.Set.Equivalentvalue instead of an encoding in the batcher. (#658) - Correct typo
trace.Exportertotrace.SpanSyncerin comments. (#653) - Use type names for return values in jaeger exporter. (#648)
- Increase the visibility of the
api/keypackage by updating comments and fixing usages locally. (#650) Checkpointonly afterUpdate; Keep records in thesync.Maplonger. (#647)- Do not cache
reflect.ValueOf()in metric Labels. (#649) - Batch metrics exported from the OTLP exporter based on
Resourceand labels. (#626) - Add error wrapping to the prometheus exporter. (#631)
- Update the OTLP exporter batching of traces to use a unique
stringrepresentation of an associatedResourceas the batching key. (#623) - Update OTLP
SpanDatatransform to only include theParentSpanIDif one exists. (#614) - Update
Resourceinternal representation to uniquely and reliably identify resources. (#613) - Check return value from
CheckpointSet.ForEachin prometheus exporter. (#622) - Ensure spans created by httptrace client tracer reflect operation structure. (#618)
- Create a new recorder rather than reuse when multiple observations in same epoch for asynchronous instruments. #610
- The default port the OTLP exporter uses to connect to the OpenTelemetry collector is updated to match the one the collector listens on by default. (#611)
0.4.2 - 2020-03-31
Fixed
- Fix
pre_release.shto update version insdk/opentelemetry.go. (#607) - Fix time conversion from internal to OTLP in OTLP exporter. (#606)
0.4.1 - 2020-03-31
Fixed
- Update
tag.shto create signed tags. (#604)
0.4.0 - 2020-03-30
Added
- New API package
api/metric/registrythat exposes aMeterImplwrapper for use by SDKs to generate unique instruments. (#580) - Script to verify examples after a new release. (#579)
Removed
- The dogstatsd exporter due to lack of support. This additionally removes support for statsd. (#591)
LabelSetfrom the metric API. This is replaced by a[]core.KeyValueslice. (#595)Labelsfrom the metric API'sMeterinterface. (#595)
Changed
- The metric
export.Labelsbecame an interface which the SDK implements and theexportpackage provides a simple, immutable implementation of this interface intended for testing purposes. (#574) - Renamed
internal/metric.MetertoMeterImpl. (#580) - Renamed
api/global/internal.obsImpltoasyncImpl. (#580)
Fixed
- Corrected missing return in mock span. (#582)
- Update License header for all source files to match CNCF guidelines and include a test to ensure it is present. (#586) (#596)
- Update to v0.3.0 of the OTLP in the OTLP exporter. (#588)
- Update pre-release script to be compatible between GNU and BSD based systems. (#592)
- Add a
RecordBatchbenchmark. (#594) - Moved span transforms of the OTLP exporter to the internal package. (#593)
- Build both go-1.13 and go-1.14 in circleci to test for all supported versions of Go. (#569)
- Removed unneeded allocation on empty labels in OLTP exporter. (#597)
- Update
BatchedSpanProcessorto process the queue until no data but respect max batch size. (#599) - Update project documentation godoc.org links to pkg.go.dev. (#602)
0.3.0 - 2020-03-21
This is a first official beta release, which provides almost fully complete metrics, tracing, and context propagation functionality. There is still a possibility of breaking changes.
Added
- Add
Observermetric instrument. (#474) - Add global
Propagatorsfunctionality to enable deferred initialization for propagators registered before the first Meter SDK is installed. (#494) - Simplified export setup pipeline for the jaeger exporter to match other exporters. (#459)
- The zipkin trace exporter. (#495)
- The OTLP exporter to export metric and trace telemetry to the OpenTelemetry collector. (#497) (#544) (#545)
- Add
StatusMessagefield to the traceSpan. (#524) - Context propagation in OpenTracing bridge in terms of OpenTelemetry context propagation. (#525)
- The
Resourcetype was added to the SDK. (#528) - The global API now supports a
TracerandMeterfunction as shortcuts to getting a global*Providerand calling these methods directly. (#538) - The metric API now defines a generic
MeterImplinterface to support general purposeMeterconstruction. Additionally,SyncImplandAsyncImplare added to support general purpose instrument construction. (#560) - A metric
Kindis added to represent theMeasureKind,ObserverKind, andCounterKind. (#560) - Scripts to better automate the release process. (#576)
Changed
- Default to to use
AlwaysSamplerinstead ofProbabilitySamplerto match OpenTelemetry specification. (#506) - Renamed
AlwaysSampleSamplertoAlwaysOnSamplerin the trace API. (#511) - Renamed
NeverSampleSamplertoAlwaysOffSamplerin the trace API. (#511) - The
Statusfield of theSpanwas changed toStatusCodeto disambiguate with the addedStatusMessage. (#524) - Updated the trace
Samplerinterface conform to the OpenTelemetry specification. (#531) - Rename metric API
OptionstoConfig. (#541) - Rename metric
Counteraggregator to beSum. (#541) - Unify metric options into
Optionfrom instrument specific options. (#541) - The trace API's
TraceProvidernow supportResources. (#545) - Correct error in zipkin module name. (#548)
- The jaeger trace exporter now supports
Resources. (#551) - Metric SDK now supports
Resources. TheWithResourceoption was added to configure aResourceon creation and theResourcemethod was added to the metricDescriptorto return the associatedResource. (#552) - Replace
ErrNoLastValueandErrEmptyDataSetbyErrNoDatain the metric SDK. (#557) - The stdout trace exporter now supports
Resources. (#558) - The metric
Descriptoris now included at the API instead of the SDK. (#560) - Replace
Orderedwith an iterator inexport.Labels. (#567)
Removed
- The vendor specific Stackdriver. It is now hosted on 3rd party vendor infrastructure. (#452)
- The
Unregistermethod for metric observers as it is not in the OpenTelemetry specification. (#560) GetDescriptorfrom the metric SDK. (#575)- The
Gaugeinstrument from the metric API. (#537)
Fixed
- Make histogram aggregator checkpoint consistent. (#438)
- Update README with import instructions and how to build and test. (#505)
- The default label encoding was updated to be unique. (#508)
- Use
NewRootin the othttp plugin for public endpoints. (#513) - Fix data race in
BatchedSpanProcessor. (#518) - Skip test-386 for Mac OS 10.15.x (Catalina and upwards). #521
- Use a variable-size array to represent ordered labels in maps. (#523)
- Update the OTLP protobuf and update changed import path. (#532)
- Use
StateLockerimplementation inMinMaxSumCount. (#546) - Eliminate goroutine leak in histogram stress test. (#547)
- Update OTLP exporter with latest protobuf. (#550)
- Add filters to the othttp plugin. (#556)
- Provide an implementation of the
Header*filters that do not depend on Go 1.14. (#565) - Encode labels once during checkpoint. The checkpoint function is executed in a single thread so we can do the encoding lazily before passing the encoded version of labels to the exporter. This is a cheap and quick way to avoid encoding the labels on every collection interval. (#572)
- Run coverage over all packages in
COVERAGE_MOD_DIR. (#573)
0.2.3 - 2020-03-04
Added
RecordErrormethod onSpans in the trace API to Simplify adding error events to spans. (#473)- Configurable push frequency for exporters setup pipeline. (#504)
Changed
- Rename the
exporterdirectory toexporters. Thego.opentelemetry.io/otel/exporter/trace/jaegerpackage was mistakenly released with av1.0.0tag instead ofv0.1.0. This resulted in all subsequent releases not becoming the default latest. A consequence of this was that allgo gets pulled in the incompatiblev0.1.0release of that package when pulling in more recent packages from other otel packages. Renaming theexporterdirectory toexportersfixes this issue by renaming the package and therefore clearing any existing dependency tags. Consequentially, this action also renames all exporter packages. (#502)
Removed
- The
CorrelationContextHeaderconstant in thecorrelationpackage is no longer exported. (#503)
0.2.2 - 2020-02-27
Added
HTTPSupplierinterface in the propagation API to specify methods to retrieve and store a single value for a key to be associated with a carrier. (#467)HTTPExtractorinterface in the propagation API to extract information from anHTTPSupplierinto a context. (#467)HTTPInjectorinterface in the propagation API to inject information into anHTTPSupplier.(#467)Configand configuringOptionto the propagator API. (#467)Propagatorsinterface in the propagation API to contain the set of injectors and extractors for all supported carrier formats. (#467)HTTPPropagatorinterface in the propagation API to inject and extract from anHTTPSupplier.(#467)WithInjectorsandWithExtractorsfunctions to the propagator API to configure injectors and extractors to use. (#467)ExtractHTTPandInjectHTTPfunctions to apply configured HTTP extractors and injectors to a passed context. (#467)- Histogram aggregator. (#433)
DefaultPropagatorfunction and have it returntrace.TraceContextas the default context propagator. (#456)AlwaysParentSamplesampler to the trace API. (#455)WithNewRootoption function to the trace API to specify the created span should be considered a root span. (#451)
Changed
- Renamed
WithMaptoContextWithMapin the correlation package. (#481) - Renamed
FromContexttoMapFromContextin the correlation package. (#481) - Move correlation context propagation to correlation package. (#479)
- Do not default to putting remote span context into links. (#480)
Tracer.WithSpanupdated to acceptStartOptions. (#472)- Renamed
MetricKindtoKindto not stutter in the type usage. (#432) - Renamed the
exportpackage tometricto match directory structure. (#432) - Rename the
api/distributedcontextpackage toapi/correlation. (#444) - Rename the
api/propagatorspackage toapi/propagation. (#444) - Move the propagators from the
propagatorspackage into thetraceAPI package. (#444) - Update
Float64Gauge,Int64Gauge,Float64Counter,Int64Counter,Float64Measure, andInt64Measuremetric methods to use value receivers instead of pointers. (#462) - Moved all dependencies of tools package to a tools directory. (#466)
Removed
- Binary propagators. (#467)
- NOOP propagator. (#467)
Fixed
- Upgraded
github.com/golangci/golangci-lintfromv1.21.0tov1.23.6intools/. (#492) - Fix a possible nil-dereference crash (#478)
- Correct comments for
InstallNewPipelinein the stdout exporter. (#483) - Correct comments for
InstallNewPipelinein the dogstatsd exporter. (#484) - Correct comments for
InstallNewPipelinein the prometheus exporter. (#482) - Initialize
onErrorbased onConfigin prometheus exporter. (#486) - Correct module name in prometheus exporter README. (#475)
- Removed tracer name prefix from span names. (#430)
- Fix
aggregator_test.goimport package comment. (#431) - Improved detail in stdout exporter. (#436)
- Fix a dependency issue (generate target should depend on stringer, not lint target) in Makefile. (#442)
- Reorders the Makefile targets within
precommittarget so we generate files and build the code before doing linting, so we can get much nicer errors about syntax errors from the compiler. (#442) - Reword function documentation in gRPC plugin. (#446)
- Send the
span.kindtag to Jaeger from the jaeger exporter. (#441) - Fix
metadataSupplierin the jaeger exporter to overwrite the header if existing instead of appending to it. (#441) - Upgraded to Go 1.13 in CI. (#465)
- Correct opentelemetry.io URL in trace SDK documentation. (#464)
- Refactored reference counting logic in SDK determination of stale records. (#468)
- Add call to
runtime.Goschedin instrumentacquireHandlelogic to not block the collector. (#469)
0.2.1.1 - 2020-01-13
Fixed
- Use stateful batcher on Prometheus exporter fixing regresion introduced in #395. (#428)
0.2.1 - 2020-01-08
Added
- Global meter forwarding implementation. This enables deferred initialization for metric instruments registered before the first Meter SDK is installed. (#392)
- Global trace forwarding implementation. This enables deferred initialization for tracers registered before the first Trace SDK is installed. (#406)
- Standardize export pipeline creation in all exporters. (#395)
- A testing, organization, and comments for 64-bit field alignment. (#418)
- Script to tag all modules in the project. (#414)
Changed
- Renamed
propagationpackage topropagators. (#362) - Renamed
B3Propagatorpropagator toB3. (#362) - Renamed
TextFormatPropagatorpropagator toTextFormat. (#362) - Renamed
BinaryPropagatorpropagator toBinary. (#362) - Renamed
BinaryFormatPropagatorpropagator toBinaryFormat. (#362) - Renamed
NoopTextFormatPropagatorpropagator toNoopTextFormat. (#362) - Renamed
TraceContextPropagatorpropagator toTraceContext. (#362) - Renamed
SpanOptiontoStartOptionin the trace API. (#369) - Renamed
StartOptionstoStartConfigin the trace API. (#369) - Renamed
EndOptionstoEndConfigin the trace API. (#369) Numbernow has a pointer receiver for its methods. (#375)- Renamed
CurrentSpantoSpanFromContextin the trace API. (#379) - Renamed
SetCurrentSpantoContextWithSpanin the trace API. (#379) - Renamed
Messagein Event toNamein the trace API. (#389) - Prometheus exporter no longer aggregates metrics, instead it only exports them. (#385)
- Renamed
HandleImpltoBoundInstrumentImplin the metric API. (#400) - Renamed
Float64CounterHandletoFloat64CounterBoundInstrumentin the metric API. (#400) - Renamed
Int64CounterHandletoInt64CounterBoundInstrumentin the metric API. (#400) - Renamed
Float64GaugeHandletoFloat64GaugeBoundInstrumentin the metric API. (#400) - Renamed
Int64GaugeHandletoInt64GaugeBoundInstrumentin the metric API. (#400) - Renamed
Float64MeasureHandletoFloat64MeasureBoundInstrumentin the metric API. (#400) - Renamed
Int64MeasureHandletoInt64MeasureBoundInstrumentin the metric API. (#400) - Renamed
Releasemethod for bound instruments in the metric API toUnbind. (#400) - Renamed
AcquireHandlemethod for bound instruments in the metric API toBind. (#400) - Renamed the
Fileoption in the stdout exporter toWriter. (#404) - Renamed all
OptionstoConfigfor all metric exports where this wasn't already the case.
Fixed
- Aggregator import path corrected. (#421)
- Correct links in README. (#368)
- The README was updated to match latest code changes in its examples. (#374)
- Don't capitalize error statements. (#375)
- Fix ignored errors. (#375)
- Fix ambiguous variable naming. (#375)
- Removed unnecessary type casting. (#375)
- Use named parameters. (#375)
- Updated release schedule. (#378)
- Correct http-stackdriver example module name. (#394)
- Removed the
http.requestspan inhttptracepackage. (#397) - Add comments in the metrics SDK (#399)
- Initialize checkpoint when creating ddsketch aggregator to prevent panic when merging into a empty one. (#402) (#403)
- Add documentation of compatible exporters in the README. (#405)
- Typo fix. (#408)
- Simplify span check logic in SDK tracer implementation. (#419)
0.2.0 - 2019-12-03
Added
- Unary gRPC tracing example. (#351)
- Prometheus exporter. (#334)
- Dogstatsd metrics exporter. (#326)
Changed
- Rename
MaxSumCountaggregation toMinMaxSumCountand add theMininterface for this aggregation. (#352) - Rename
GetMetertoMeter. (#357) - Rename
HTTPTraceContextPropagatortoTraceContextPropagator. (#355) - Rename
HTTPB3PropagatortoB3Propagator. (#355) - Rename
HTTPTraceContextPropagatortoTraceContextPropagator. (#355) - Move
/globalpackage to/api/global. (#356) - Rename
GetTracertoTracer. (#347)
Removed
SetAttributefrom theSpaninterface in the trace API. (#361)AddLinkfrom theSpaninterface in the trace API. (#349)Linkfrom theSpaninterface in the trace API. (#349)
Fixed
- Exclude example directories from coverage report. (#365)
- Lint make target now implements automatic fixes with
golangci-lintbefore a second run to report the remaining issues. (#360) - Drop
GO111MODULEenvironment variable in Makefile as Go 1.13 is the project specified minimum version and this is environment variable is not needed for that version of Go. (#359) - Run the race checker for all test. (#354)
- Redundant commands in the Makefile are removed. (#354)
- Split the
generateandlinttargets of the Makefile. (#354) - Renames
circle-citarget to more genericciin Makefile. (#354) - Add example Prometheus binary to gitignore. (#358)
- Support negative numbers with the
MaxSumCount. (#335) - Resolve race conditions in
push_test.goidentified in #339. (#340) - Use
/usr/bin/env bashas a shebang in scripts rather than/bin/bash. (#336) - Trace benchmark now tests both
AlwaysSampleandNeverSample. Previously it was testingAlwaysSampletwice. (#325) - Trace benchmark now uses a
[]byteforTraceIDto fix failing test. (#325) - Added a trace benchmark to test variadic functions in
setAttributevssetAttributes(#325) - The
defaultkeysbatcher was only using the encoded label set as its map key while building a checkpoint. This allowed distinct label sets through, but any metrics sharing a label set could be overwritten or merged incorrectly. This was corrected. (#333)
0.1.2 - 2019-11-18
Fixed
- Optimized the
simplelrumap for attributes to reduce the number of allocations. (#328) - Removed unnecessary unslicing of parameters that are already a slice. (#324)
0.1.1 - 2019-11-18
This release contains a Metrics SDK with stdout exporter and supports basic aggregations such as counter, gauges, array, maxsumcount, and ddsketch.
Added
- Metrics stdout export pipeline. (#265)
- Array aggregation for raw measure metrics. (#282)
- The core.Value now have a
MarshalJSONmethod. (#281)
Removed
WithService,WithResources, andWithComponentmethods of tracers. (#314)- Prefix slash in
Tracer.Start()for the Jaeger example. (#292)
Changed
- Allocation in LabelSet construction to reduce GC overhead. (#318)
trace.WithAttributesto append values instead of replacing (#315)- Use a formula for tolerance in sampling tests. (#298)
- Move export types into trace and metric-specific sub-directories. (#289)
SpanKindback to being based on aninttype. (#288)
Fixed
- URL to OpenTelemetry website in README. (#323)
- Name of othttp default tracer. (#321)
ExportSpansfor the stackdriver exporter now handlesnilcontext. (#294)- CI modules cache to correctly restore/save from/to the cache. (#316)
- Fix metric SDK race condition between
LoadOrStoreand the assignmentrec.recorder = i.meter.exporter.AggregatorFor(rec). (#293) - README now reflects the new code structure introduced with these changes. (#291)
- Make the basic example work. (#279)
0.1.0 - 2019-11-04
This is the first release of open-telemetry go library. It contains api and sdk for trace and meter.
Added
- Initial OpenTelemetry trace and metric API prototypes.
- Initial OpenTelemetry trace, metric, and export SDK packages.
- A wireframe bridge to support compatibility with OpenTracing.
- Example code for a basic, http-stackdriver, http, jaeger, and named tracer setup.
- Exporters for Jaeger, Stackdriver, and stdout.
- Propagators for binary, B3, and trace-context protocols.
- Project information and guidelines in the form of a README and CONTRIBUTING.
- Tools to build the project and a Makefile to automate the process.
- Apache-2.0 license.
- CircleCI build CI manifest files.
- CODEOWNERS file to track owners of this project.