112 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.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 coss-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.