66 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
0.16.0 - 2020-01-13
Added
- Add the ReadOnlySpanandReadWriteSpaninterfaces to provide better control for accessing span data. (#1360)
- NewGRPCDriverfunction returns a- ProtocolDriverthat 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)
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)
- NewExporterfrom- exporters/otlpnow takes a- ProtocolDriveras 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)
- SamplingResultnow passed a- Tracestatefrom the parent- SpanContext(#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()and- Start()to configure Push behavior
- Start()is optional; use- Collect()and- ForEach()for Pull behavior
- Start()and- Stop()accept Context. (#1378)
 
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 underlying- export.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)
- NewExporterand- Startfunctions in- go.opentelemetry.io/otel/exporters/otlpnow receive- context.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)
- SpanContextFromContextreturns- SpanContextfrom context. (#1255)
- TraceStatehas been added to- SpanContext. (#1340)
- DeploymentEnvironmentKeyadded to- go.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 to- TraceID.
- IDFromHexhas been renamed to- TraceIDFromHex.
- EmptySpanContextis removed.
 
- Move the go.opentelemetry.io/otel/api/trace/tracetestpackage intogo.opentelemetry.io/otel/oteltest. (#1229)
- OTLP Exporter updates:
- 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 from- go.opentelemetry.io/otel/exporters/otlp. (#1350)
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)
- Noopand- InMemory- SpanBatcherimplementations 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 with- kv.BoolValue.
- value.Int64was replaced with- kv.Int64Value.
- value.Uint64was replaced with- kv.Uint64Value.
- value.Float64was replaced with- kv.Float64Value.
- value.Int32was replaced with- kv.Int32Value.
- value.Uint32was replaced with- kv.Uint32Value.
- value.Float32was replaced with- kv.Float32Value.
- value.Stringwas replaced with- kv.StringValue.
- value.Intwas replaced with- kv.IntValue.
- value.Uintwas replaced with- kv.UintValue.
- value.Arraywas replaced with- kv.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)
- Meterand- Tracerimplementations 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 by- 0where 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)
- Stringerand- Infermethods to- keys. (#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
- Dockerfileand- docker-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)
- TraceIDand- SpanIDimplementations for- Stringerinterface. (#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 after- Update; Keep records in the- sync.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's- Meterinterface. (#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)
- The StatusMessagefield was add 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 on- Spans 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 an- HTTPSupplierinto a context. (#467)
- HTTPInjectorinterface in the propagation API to inject information into an- HTTPSupplier.(#467)
- Configand configuring- Optionto 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 an- HTTPSupplier.(#467)
- WithInjectorsand- WithExtractorsfunctions to the propagator API to configure injectors and extractors to use. (#467)
- ExtractHTTPand- InjectHTTPfunctions to apply configured HTTP extractors and injectors to a passed context. (#467)
- Histogram aggregator. (#433)
- DefaultPropagatorfunction and have it return- trace.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)
- Propagators extrac
- Tracer.WithSpanupdated to accept- StartOptions. (#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
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
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
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 the- Spaninterface in the trace API. (#361)
- AddLinkfrom the- Spaninterface in the trace API. (#349)
- Linkfrom the- Spaninterface 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, and- WithComponentmethods 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 an- inttype. (#288)
Fixed
- URL to OpenTelemetry website in README. (#323)
- Name of othttp default tracer. (#321)
- ExportSpansfor the stackdriver exporter now handles- nilcontext. (#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.