Releases: open-telemetry/opentelemetry-go
Release v1.0.0
This is the first stable release for the project.
This release includes an API and SDK for the tracing signal that will comply with the stability guarantees defined by the projects versioning policy.
Added
- OTLP trace exporter now sets the SchemaURL field in the exported telemetry if the Tracer has WithSchemaURL option. (#2242)
Fixed
- Slice-valued attributes can correctly be used as map keys. (#2223)
Removed
- Removed the
"go.opentelemetry.io/otel/exporters/zipkin".WithSDKOptions
function. (#2248) - Removed the deprecated package
go.opentelemetry.io/otel/oteltest
. (#2234) - Removed the deprecated package
go.opentelemetry.io/otel/bridge/opencensus/utils
. (#2233) - Removed deprecated functions, types, and methods from
go.opentelemetry.io/otel/attribute
package.
Use the typed functions and methods added to the package instead. (#2235)- The
Key.Array
method is removed. - The
Array
function is removed. - The
Any
function is removed. - The
ArrayValue
function is removed. - The
AsArray
function is removed.
- The
Release v1.0.0-RC3
1.0.0-RC3 - 2021-09-03
Added
- Added
ErrorHandlerFunc
to use a function as an"go.opentelemetry.io/otel".ErrorHandler
. (#2149) - Added
"go.opentelemetry.io/otel/trace".WithStackTrace
option to add a stack trace when usingspan.RecordError
or when panic is handled inspan.End
. (#2163) - Added typed slice attribute types and functionality to the
go.opentelemetry.io/otel/attribute
package to replace the existing array type and functions. (#2162)BoolSlice
,IntSlice
,Int64Slice
,Float64Slice
, andStringSlice
replace the use of theArray
function in the package.
- Added the
go.opentelemetry.io/otel/example/fib
example package.
Included is an example application that computes Fibonacci numbers. (#2203)
Changed
- Metric instruments have been renamed to match the (feature-frozen) metric API specification:
- ValueRecorder becomes Histogram
- ValueObserver becomes Gauge
- SumObserver becomes CounterObserver
- UpDownSumObserver becomes UpDownCounterObserver
The API exported from this project is still considered experimental. (#2202)
- Metric SDK/API implementation type
InstrumentKind
moves intosdkapi
sub-package. (#2091) - The Metrics SDK export record no longer contains a Resource pointer, the SDK
"go.opentelemetry.io/otel/sdk/trace/export/metric".Exporter.Export()
function for push-based exporters now takes a single Resource argument, pull-based exporters use"go.opentelemetry.io/otel/sdk/metric/controller/basic".Controller.Resource()
. (#2120) - The JSON output of the
go.opentelemetry.io/otel/exporters/stdout/stdouttrace
is harmonized now such that the output is "plain" JSON objects after each other of the form{ ... } { ... } { ... }
. Earlier the JSON objects describing a span were wrapped in a slice for eachExporter.ExportSpans
call, like[ { ... } ][ { ... } { ... } ]
. Outputting JSON object directly after each other is consistent with JSON loggers, and a bit easier to parse and read. (#2196) - Update the
NewTracerConfig
,NewSpanStartConfig
,NewSpanEndConfig
, andNewEventConfig
function in thego.opentelemetry.io/otel/trace
package to return their respective configurations as structs instead of pointers to the struct. (#2212)
Deprecated
- The
go.opentelemetry.io/otel/bridge/opencensus/utils
package is deprecated.
All functionality from this package now exists in thego.opentelemetry.io/otel/bridge/opencensus
package.
The functions from that package should be used instead. (#2166) - The
"go.opentelemetry.io/otel/attribute".Array
function and the relatedARRAY
value type is deprecated.
Use the typed*Slice
functions and types added to the package instead. (#2162) - The
"go.opentelemetry.io/otel/attribute".Any
function is deprecated.
Use the typed functions instead. (#2181) - The
go.opentelemetry.io/otel/oteltest
package is deprecated.
The"go.opentelemetry.io/otel/sdk/trace/tracetest".SpanRecorder
can be registered with the default SDK (go.opentelemetry.io/otel/sdk/trace
) as aSpanProcessor
and used as a replacement for this deprecated package. (#2188)
Removed
- Removed metrics test package
go.opentelemetry.io/otel/sdk/export/metric/metrictest
. (#2105)
Fixed
- The
fromEnv
detector no longer throws an error whenOTEL_RESOURCE_ATTRIBUTES
environment variable is not set or empty. (#2138) - Setting the global
ErrorHandler
with"go.opentelemetry.io/otel".SetErrorHandler
multiple times is now supported. (#2160, #2140) - The
"go.opentelemetry.io/otel/attribute".Any
function now supportsint32
values. (#2169) - Multiple calls to
"go.opentelemetry.io/otel/sdk/metric/controller/basic".WithResource()
are handled correctly, and when no resources are provided"go.opentelemetry.io/otel/sdk/resource".Default()
is used. (#2120) - The
WithoutTimestamps
option for thego.opentelemetry.io/otel/exporters/stdout/stdouttrace
exporter causes the exporter to correctly ommit timestamps. (#2195) - Fixed typos in resources.go. (#2201)
Release v1.0.0-RC2
Added
- Added
WithOSDescription
resource configuration option to set OS (Operating System) description resource attribute (os.description
). (#1840) - Added
WithOS
resource configuration option to set all OS (Operating System) resource attributes at once. (#1840) - Added the
WithRetry
option to thego.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp
package.
This option is a replacement for the removedWithMaxAttempts
andWithBackoff
options. (#2095) - Added API
LinkFromContext
to return Link which encapsulates SpanContext from provided context and also encapsulates attributes. (#2115) - Added a new
Link
type under the SDKotel/sdk/trace
package that counts the number of attributes that were dropped for surpassing theAttributePerLinkCountLimit
configured in the Span'sSpanLimits
.
This new type replaces the equal-named APILink
type found in theotel/trace
package for most usages within the SDK.
For example, instances of this type are now returned by theLinks()
function ofReadOnlySpan
s provided in places like theOnEnd
function ofSpanProcessor
implementations. (#2118)
Changed
- The
SpanModels
function is now exported from thego.opentelemetry.io/otel/exporters/zipkin
package to convert OpenTelemetry spans into Zipkin model spans. (#2027) - Rename the
"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc".RetrySettings
toRetryConfig
. (#2095) - Rename the
"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp".RetrySettings
toRetryConfig
. (#2095)
Deprecated
- The
TextMapCarrier
andTextMapPropagator
from thego.opentelemetry.io/otel/oteltest
package and their associated creation functions (TextMapCarrier
,NewTextMapPropagator
) are deprecated. (#2114) - The
Harness
type from thego.opentelemetry.io/otel/oteltest
package and its associated creation function,NewHarness
are deprecated and will be removed in the next release. (#2123) - The
TraceStateFromKeyValues
function from thego.opentelemetry.io/otel/oteltest
package is deprecated.
Use thetrace.ParseTraceState
function instead. (#2122)
Removed
- Removed the deprecated package
go.opentelemetry.io/otel/exporters/trace/jaeger
. (#2020) - Removed the deprecated package
go.opentelemetry.io/otel/exporters/trace/zipkin
. (#2020) - Removed the
"go.opentelemetry.io/otel/sdk/resource".WithBuiltinDetectors
function.
The explicitWith*
options for every built-in detector should be used instead. (#2026 #2097) - Removed the
WithMaxAttempts
andWithBackoff
options from thego.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp
package.
The retry logic of the package has been updated to match theotlptracegrpc
package and accordingly aWithRetry
option is added that should be used instead. (#2095) - Removed
DroppedAttributeCount
field fromotel/trace.Link
struct. (#2118)
Fixed
- When using WithNewRoot, don't use the parent context for making sampling decisions. (#2032)
oteltest.Tracer
now creates a validSpanContext
when usingWithNewRoot
. (#2073)- OS type detector now sets the correct
dragonflybsd
value for DragonFly BSD. (#2092) - The OTel span status is correctly transformed into the OTLP status in the
go.opentelemetry.io/otel/exporters/otlp/otlptrace
package.
This fix will by default set the status toUnset
if it is not explicitly set toOk
orError
. (#2099 #2102) - The
Inject
method for the"go.opentelemetry.io/otel/propagation".TraceContext
type no longer injects emptytracestate
values. (#2108)
Experimental Metrics Release v0.22.0
Release v1.0.0-RC1
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.WithRetry
option 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
Status
type to thego.opentelemetry.io/otel/sdk/trace
package to represent the status of a span. (#1874) - Added
SpanStub
type and its associated functions to thego.opentelemetry.io/otel/sdk/trace/tracetest
package.
This type can be used as a testing replacement for theSpanSnapshot
that was removed from thego.opentelemetry.io/otel/sdk/trace
package. (#1873) - Adds support for scheme in
OTEL_EXPORTER_OTLP_ENDPOINT
according to the spec. (#1886) - Adds
trace.WithSchemaURL
option for configuring the tracer with a Schema URL. (#1889) - Added an example of using OpenTelemetry Go as a trace context forwarder. (#1912)
ParseTraceState
is added to thego.opentelemetry.io/otel/trace
package.
It can be used to decode aTraceState
from atracestate
header string value. (#1937)- Added
Len
method to theTraceState
type in thego.opentelemetry.io/otel/trace
package.
This method returns the number of list-members theTraceState
holds. (#1937) - Creates package
go.opentelemetry.io/otel/exporters/otlp/otlptrace
that defines a trace exporter that uses aotlptrace.Client
to send data.
Creates packagego.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc
implementing a gRPCotlptrace.Client
and offers convenience functions,NewExportPipeline
andInstallNewPipeline
, to setup and install aotlptrace.Exporter
in tracing .(#1922) - Added
Baggage
,Member
, andProperty
types to thego.opentelemetry.io/otel/baggage
package along with their related functions. (#1967) - Added
ContextWithBaggage
,ContextWithoutBaggage
, andFromContext
functions to thego.opentelemetry.io/otel/baggage
package.
These functions replace theSet
,Value
,ContextWithValue
,ContextWithoutValue
, andContextWithEmpty
functions from that package and directly work with the newBaggage
type. (#1967) - The
OTEL_SERVICE_NAME
environment 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/otlptracehttp
implementing an HTTPotlptrace.Client
and offers convenience functions,NewExportPipeline
andInstallNewPipeline
, to setup and install aotlptrace.Exporter
in tracing. (#1963) - Changes
go.opentelemetry.io/otel/sdk/resource.NewWithAttributes
to 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/otlpmetric
that defines a metrics exporter that uses aotlpmetric.Client
to send data. - Creates package
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc
implementing a gRPCotlpmetric.Client
and offers convenience functions,New
andNewUnstarted
, to create anotlpmetric.Exporter
.(#1991) - Added
go.opentelemetry.io/otel/exporters/stdout/stdouttrace
exporter. (#2005) - Added
go.opentelemetry.io/otel/exporters/stdout/stdoutmetric
exporter. (#2005) - Added a
TracerProvider()
method to the"go.opentelemetry.io/otel/trace".Span
interface. This can be used to obtain aTracerProvider
from a given span that utilizes the same trace processing pipeline. (#2009)
Changed
- Make
NewSplitDriver
fromgo.opentelemetry.io/otel/exporters/otlp
take variadic arguments instead of aSplitConfig
item.
NewSplitDriver
now automatically implements an internalnoopDriver
forSplitConfig
fields that are not initialized. (#1798) resource.New()
now creates a Resource without builtin detectors. Previous behavior is now achieved by usingWithBuiltinDetectors
Option. (#1810)- Move the
Event
type from thego.opentelemetry.io/otel
package to thego.opentelemetry.io/otel/sdk/trace
package. (#1846) - CI builds validate against last two versions of Go, dropping 1.14 and adding 1.16. (#1865)
- BatchSpanProcessor now report export failures when calling
ForceFlush()
method. (#1860) Set.Encoded(Encoder)
no longer caches the result of an encoding. (#1855)- Renamed
CloudZoneKey
toCloudAvailabilityZoneKey
in Resource semantic conventions according to spec. (#1871) - The
StatusCode
andStatusMessage
methods of theReadOnlySpan
interface and theSpan
produced by thego.opentelemetry.io/otel/sdk/trace
package have been replaced with a singleStatus
method.
This method returns the status of a span using the newStatus
type. (#1874) - Updated
ExportSpans
method of theSpanExporter
interface type to acceptReadOnlySpan
s 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
SpanContext
inLink
. (#1877) - Generate Semantic conventions from the specification YAML. (#1891)
- Spans created by the global
Tracer
obtained fromgo.opentelemetry.io/otel
, prior to a functioningTracerProvider
being set, now propagate the span context from their parent if one exists. (#1901) - The
"go.opentelemetry.io/otel".Tracer
function now accepts tracer options. (#1902) - Move the
go.opentelemetry.io/otel/unit
package togo.opentelemetry.io/otel/metric/unit
. (#1903) - Changed
go.opentelemetry.io/otel/trace.TracerConfig
to conform to the Contributing guidelines (#1921) - Changed
go.opentelemetry.io/otel/trace.SpanConfig
to conform to the Contributing guidelines. (#1921) - Changed
span.End()
now only accepts Options that are allowed atEnd()
. (#1921) - Changed
go.opentelemetry.io/otel/metric.InstrumentConfig
to conform to the Contributing guidelines. (#1921) - Changed
go.opentelemetry.io/otel/metric.MeterConfig
to conform to the Contributing guidelines. (#1921) - Refactored option types according to the contribution style guide. (#1882)
- Move the
go.opentelemetry.io/otel/trace.TraceStateFromKeyValues
function to thego.opentelemetry.io/otel/oteltest
package.
This function is preserved for testing purposes where it may be useful to create aTraceState
fromattribute.KeyValue
s, but it is not intended for production use.
The newParseTraceState
function should be used to create aTraceState
. (#1931) - Updated
MarshalJSON
method of thego.opentelemetry.io/otel/trace.TraceState
type to marshal the type into the string representation of theTraceState
. (#1931) - The
TraceState.Delete
method from thego.opentelemetry.io/otel/trace
package no longer returns an error in addition to aTraceState
. (#1931) - Updated
Get
method of theTraceState
type from thego.opentelemetry.io/otel/trace
package to accept astring
instead of anattribute.Key
type. (#1931) - Updated
Insert
method of theTraceState
type from thego.opentelemetry.io/otel/trace
package to accept a pair ofstring
s instead of anattribute.KeyValue
type. (#1931) - Updated
Delete
method of theTraceState
type from thego.opentelemetry.io/otel/trace
package to accept astring
instead of anattribute.Key
type. (#1931) - Renamed
NewExporter
toNew
in thego.opentelemetry.io/otel/exporters/stdout
package. (#1985) - Renamed
NewExporter
toNew
in thego.opentelemetry.io/otel/exporters/metric/prometheus
package. (#1985) - Renamed
NewExporter
toNew
in thego.opentelemetry.io/otel/exporters/trace/jaeger
package. (#1985) - Renamed
NewExporter
toNew
in thego.opentelemetry.io/otel/exporters/trace/zipkin
package. (#1985) - Renamed
NewExporter
toNew
in thego.opentelemetry.io/otel/exporters/otlp
package. (#1985) - Renamed
NewUnstartedExporter
toNewUnstarted
in thego.opentelemetry.io/otel/exporters/otlp
package. (#1985) - The
go.opentelemetry.io/otel/semconv
package has been moved togo.opentelemetry.io/otel/semconv/v1.4.0
to allow for multiple telemetry schema versions to be used concurrently. (#1987) - Metrics test helpers in
go.opentelemetry.io/otel/oteltest
have been moved togo.opentelemetry.io/otel/metric/metrictest
. (#1988)
Deprecated
- The
go.opentelemetry.io/otel/exporters/metric/prometheus
is deprecated, usego.opentelemetry.io/otel/exporters/prometheus
instead. (#1993) - The
go.opentelemetry.io/otel/exporters/trace/jaeger
is deprecated, usego.opentelemetry.io/otel/exporters/jaeger
instead. (#1993) - The
go.opentelemetry.io/otel/exporters/trace/zipkin
is deprecated, usego.opentelemetry.io/otel/exporters/zipkin
instead. (#1993)
Removed
Release v0.20.0
Added
- The OTLP exporter now has two new convenience functions,
NewExportPipeline
andInstallNewPipeline
, setup and install the exporter in tracing and metrics pipelines. (#1373) - Adds semantic conventions for exceptions. (#1492)
- Added Jaeger Environment variables:
OTEL_EXPORTER_JAEGER_AGENT_HOST
,OTEL_EXPORTER_JAEGER_AGENT_PORT
These environment variables can be used to override Jaeger agent hostname and port (#1752) - Option
ExportTimeout
was added to batch span processor. (#1755) trace.TraceFlags
is now a defined type overbyte
andWithSampled(bool) TraceFlags
andIsSampled() bool
methods have been added to it. (#1770)- The
Event
andLink
struct types from thego.opentelemetry.io/otel
package now include aDroppedAttributeCount
field to record the number of attributes that were not recorded due to configured limits being reached. (#1771) - The Jaeger exporter now reports dropped attributes for a Span event in the exported log. (#1771)
- Adds test to check BatchSpanProcessor ignores
OnEnd
andForceFlush
postShutdown
. (#1772) - Extract resource attributes from the
OTEL_RESOURCE_ATTRIBUTES
environment variable and merge them with theresource.Default
resource as well as resources provided to theTracerProvider
and metricController
. (#1785) - Added
WithOSType
resource configuration option to set OS (Operating System) type resource attribute (os.type
). (#1788) - Added
WithProcess*
resource configuration options to set Process resource attributes. (#1788)process.pid
process.executable.name
process.executable.path
process.command_args
process.owner
process.runtime.name
process.runtime.version
process.runtime.description
- Adds
k8s.node.name
andk8s.node.uid
attribute keys to thesemconv
package. (#1789) - Added support for configuring OTLP/HTTP and OTLP/gRPC Endpoints, TLS Certificates, Headers, Compression and Timeout via Environment Variables. (#1758, #1769 and #1811)
OTEL_EXPORTER_OTLP_ENDPOINT
OTEL_EXPORTER_OTLP_TRACES_ENDPOINT
OTEL_EXPORTER_OTLP_METRICS_ENDPOINT
OTEL_EXPORTER_OTLP_HEADERS
OTEL_EXPORTER_OTLP_TRACES_HEADERS
OTEL_EXPORTER_OTLP_METRICS_HEADERS
OTEL_EXPORTER_OTLP_COMPRESSION
OTEL_EXPORTER_OTLP_TRACES_COMPRESSION
OTEL_EXPORTER_OTLP_METRICS_COMPRESSION
OTEL_EXPORTER_OTLP_TIMEOUT
OTEL_EXPORTER_OTLP_TRACES_TIMEOUT
OTEL_EXPORTER_OTLP_METRICS_TIMEOUT
OTEL_EXPORTER_OTLP_CERTIFICATE
OTEL_EXPORTER_OTLP_TRACES_CERTIFICATE
OTEL_EXPORTER_OTLP_METRICS_CERTIFICATE
- Adds
otlpgrpc.WithTimeout
option for configuring timeout to the otlp/gRPC exporter. (#1821)
Fixed
- The
Span.IsRecording
implementation fromgo.opentelemetry.io/otel/sdk/trace
always returns false when not being sampled. (#1750) - The Jaeger exporter now correctly sets tags for the Span status code and message.
This means it uses the correct tag keys ("otel.status_code"
,"otel.status_description"
) and does not set the status message as a tag unless it is set on the span. (#1761) - The Jaeger exporter now correctly records Span event's names using the
"event"
key for a tag.
Additionally, this tag is overridden, as specified in the OTel specification, if the event contains an attribute with that key. (#1768) - Zipkin Exporter: Ensure mapping between OTel and Zipkin span data complies with the specification. (#1688)
- Fixed typo for default service name in Jaeger Exporter. (#1797)
- Fix flaky OTLP for the reconnnection of the client connection. (#1527, #1814)
Changed
- Span
RecordError
now records anexception
event to comply with the semantic convention specification. (#1492) - Jaeger exporter was updated to use thrift v0.14.1. (#1712)
- Migrate from using internally built and maintained version of the OTLP to the one hosted at
go.opentelemetry.io/proto/otlp
. (#1713) - Migrate from using
github.com/gogo/protobuf
togoogle.golang.org/protobuf
to matchgo.opentelemetry.io/proto/otlp
. (#1713) - The storage of a local or remote Span in a
context.Context
using its SpanContext is unified to store just the current Span.
The Span's SpanContext can now self-identify as being remote or not.
This means that"go.opentelemetry.io/otel/trace".ContextWithRemoteSpanContext
will now overwrite any existing current Span, not just existing remote Spans, and make it the current Span in acontext.Context
. (#1731) - Improve OTLP/gRPC exporter connection errors. (#1737)
- Information about a parent span context in a
"go.opentelemetry.io/otel/export/trace".SpanSnapshot
is unified in a newParent
field.
The existingParentSpanID
andHasRemoteParent
fields are removed in favor of this. (#1748) - The
ParentContext
field of the"go.opentelemetry.io/otel/sdk/trace".SamplingParameters
is updated to hold acontext.Context
containing the parent span.
This changes it to makeSamplingParameters
conform with the OpenTelemetry specification. (#1749) - Updated Jaeger Environment Variables:
JAEGER_ENDPOINT
,JAEGER_USER
,JAEGER_PASSWORD
toOTEL_EXPORTER_JAEGER_ENDPOINT
,OTEL_EXPORTER_JAEGER_USER
,OTEL_EXPORTER_JAEGER_PASSWORD
in compliance with OTel spec (#1752) - Modify
BatchSpanProcessor.ForceFlush
to abort after timeout/cancellation. (#1757) - The
DroppedAttributeCount
field of theSpan
in thego.opentelemetry.io/otel
package now only represents the number of attributes dropped for the span itself.
It no longer is a conglomerate of itself, events, and link attributes that have been dropped. (#1771) - Make
ExportSpans
in Jaeger Exporter honor context deadline. (#1773) - Modify Zipkin Exporter default service name, use default resouce's serviceName instead of empty. (#1777)
- The
go.opentelemetry.io/otel/sdk/export/trace
package is merged into thego.opentelemetry.io/otel/sdk/trace
package. (#1778) - The prometheus.InstallNewPipeline example is moved from comment to example test (#1796)
- The convenience functions for the stdout exporter have been updated to return the
TracerProvider
implementation and enable the shutdown of the exporter. (#1800) - Replace the flush function returned from the Jaeger exporter's convenience creation functions (
InstallNewPipeline
andNewExportPipeline
) with theTracerProvider
implementation they create.
This enables the caller to shutdown and flush using the relatedTracerProvider
methods. (#1822) - Updated the Jaeger exporter to have a default enpoint,
http://localhost:14250
, for the collector. (#1824) - Changed the function
WithCollectorEndpoint
in the Jaeger exporter to no longer accept an endpoint as an argument.
The endpoint can be passed with theCollectorEndpointOption
using theWithEndpoint
function or by setting theOTEL_EXPORTER_JAEGER_ENDPOINT
environment variable value appropriately. (#1824) - The Jaeger exporter no longer batches exported spans itself, instead it relies on the SDK's
BatchSpanProcessor
for this functionality. (#1830) - The Jaeger exporter creation functions (
NewRawExporter
,NewExportPipeline
, andInstallNewPipeline
) no longer accept the removedOption
type as a variadic argument. (#1830)
Removed
- Removed Jaeger Environment variables:
JAEGER_SERVICE_NAME
,JAEGER_DISABLED
,JAEGER_TAGS
These environment variables will no longer be used to override values of the Jaeger exporter (#1752) - No longer set the links for a
Span
ingo.opentelemetry.io/otel/sdk/trace
that is configured to be a new root.
This is unspecified behavior that the OpenTelemetry community plans to standardize in the future.
To prevent backwards incompatible changes when it is specified, these links are removed. (#1726) - Setting error status while recording error with Span from oteltest package. (#1729)
- The concept of a remote and local Span stored in a context is unified to just the current Span.
Because of this"go.opentelemetry.io/otel/trace".RemoteSpanContextFromContext
is removed as it is no longer needed.
Instead,"go.opentelemetry.io/otel/trace".SpanContextFromContex
can be used to return the current Span.
If needed, that Span'sSpanContext.IsRemote()
can then be used to determine if it is remote or not. (#1731) - The
HasRemoteParent
field of the"go.opentelemetry.io/otel/sdk/trace".SamplingParameters
is removed.
This field is redundant to the information returned from theRemote
method of theSpanContext
held in theParentContext
field. (#1749) - The
trace.FlagsDebug
andtrace.FlagsDeferred
constants have been removed and will be localized to the B3 propagator. (#1770) - Remove
Process
configuration,WithProcessFromEnv
andProcessFromEnv
, and type from the Jaeger exporter package.
The information that could be configured in theProcess
struct should be configured in aResource
instead. (#1776, #1804) - Remove the
WithDisabled
option from the Jaeger exporter.
To disable the exporter unregister it from theTracerProvider
or use a no-operationTracerProvider
. (#1806) - Removed the functions
CollectorEndpointFromEnv
andWithCollectorEndpointOptionFromEnv
from the Jaeger exporter.
These functions for retrieving specific environment variable values are redundant of other internal functions and
are not intended for end user use. (#1824) - Removed the Jaeger exporter
WithSDKOptions
Option
.
This option was used to set SDK options for the exporter creation convenience functions.
These functions are provided as a way to easily setup or install the exporter with what are deemed reasonable SDK settings for common use cases.
If the SDK needs to be configured differently, theNewRawExporter
function and direct setup of the SDK with the desired settings should be used. (#1825) - The
WithBufferMaxCount
andWithBatchMaxCount
`Optio...
Release v0.19.0
Added
- Added
Marshaler
config option tootlphttp
to enable otlp over json or protobufs. (#1586) - A
ForceFlush
method to the"go.opentelemetry.io/otel/sdk/trace".TracerProvider
to flush all registeredSpanProcessor
s. (#1608) - Added
WithSampler
andWithSpanLimits
to tracer provider. (#1633, #1702) "go.opentelemetry.io/otel/trace".SpanContext
now has aremote
property, andIsRemote()
predicate, that is true when theSpanContext
has been extracted from remote context data. (#1701)- A
Valid
method to the"go.opentelemetry.io/otel/attribute".KeyValue
type. (#1703)
Changed
trace.SpanContext
is now immutable and has no exported fields. (#1573)trace.NewSpanContext()
can be used in conjunction with thetrace.SpanContextConfig
struct to initialize a newSpanContext
where all values are known.
- Update the
ForceFlush
method signature to the"go.opentelemetry.io/otel/sdk/trace".SpanProcessor
to accept acontext.Context
and return an error. (#1608) - Update the
Shutdown
method to the"go.opentelemetry.io/otel/sdk/trace".TracerProvider
return an error on shutdown failure. (#1608) - The SimpleSpanProcessor will now shut down the enclosed
SpanExporter
and gracefully ignore subsequent calls toOnEnd
afterShutdown
is called. (#1612) "go.opentelemetry.io/sdk/metric/controller.basic".WithPusher
is replaced withWithExporter
to provide consistent naming across project. (#1656)- Added non-empty string check for trace
Attribute
keys. (#1659) - Add
description
to SpanStatus only whenStatusCode
is set to error. (#1662) - Jaeger exporter falls back to
resource.Default
'sservice.name
if the exported Span does not have one. (#1673) - Jaeger exporter populates Jaeger's Span Process from Resource. (#1673)
- Renamed the
LabelSet
method of"go.opentelemetry.io/otel/sdk/resource".Resource
toSet
. (#1692) - Changed
WithSDK
toWithSDKOptions
to accept variadic arguments ofTracerProviderOption
type ingo.opentelemetry.io/otel/exporters/trace/jaeger
package. (#1693) - Changed
WithSDK
toWithSDKOptions
to accept variadic arguments ofTracerProviderOption
type ingo.opentelemetry.io/otel/exporters/trace/zipkin
package. (#1693) "go.opentelemetry.io/otel/sdk/resource".NewWithAttributes
will now drop any invalid attributes passed. (#1703)"go.opentelemetry.io/otel/sdk/resource".StringDetector
will now error if the produced attribute is invalid. (#1703)
Removed
- Removed
serviceName
parameter from Zipkin exporter and uses resource instead. (#1549) - Removed
WithConfig
from tracer provider to avoid overriding configuration. (#1633) - Removed the exported
SimpleSpanProcessor
andBatchSpanProcessor
structs.
These are now returned as a SpanProcessor interface from their respective constructors. (#1638) - Removed
WithRecord()
fromtrace.SpanOption
when creating a span. (#1660) - Removed setting status to
Error
while recording an error as a span event inRecordError
. (#1663) - Removed
jaeger.WithProcess
configuration option. (#1673) - Removed
ApplyConfig
method from"go.opentelemetry.io/otel/sdk/trace".TracerProvider
and the now unneededConfig
struct. (#1693)
Fixed
- Jaeger Exporter: Ensure mapping between OTEL and Jaeger span data complies with the specification. (#1626)
SamplingResult.TraceState
is correctly propagated to a newly created span'sSpanContext
. (#1655)- The
otel-collector
example now correctly flushes metric events prior to shutting down the exporter. (#1678) - Do not set span status message in
SpanStatusFromHTTPStatusCode
if it can be inferred fromhttp.status_code
. (#1681) - Synchronization issues in global trace delegate implementation. (#1686)
- Reduced excess memory usage by global
TracerProvider
. (#1687)
Raw changes made between v0.18.0 and v0.19.0
2b4fa96 (HEAD -> main, tag: v0.19.0, tag: trace/v0.19.0, tag: sdk/v0.19.0, tag: sdk/metric/v0.19.0, tag: sdk/export/metric/v0.19.0, tag: oteltest/v0.19.0, tag: metric/v0.19.0, tag: exporters/trace/zipkin/v0.19.0, tag: exporters/trace/jaeger/v0.19.0, tag: exporters/stdout/v0.19.0, tag: exporters/otlp/v0.19.0, tag: exporters/metric/prometheus/v0.19.0, tag: example/zipkin/v0.19.0, tag: example/prometheus/v0.19.0, tag: example/prom-collector/v0.19.0, tag: example/otel-collector/v0.19.0, tag: example/opencensus/v0.19.0, tag: example/namedtracer/v0.19.0, tag: example/jaeger/v0.19.0, tag: bridge/opentracing/v0.19.0, tag: bridge/opencensus/v0.19.0, upstream/main, origin/main) Release v0.19.0 (#1710)
4beb704 sdk/trace: removing ApplyConfig and Config (#1693)
1d42be1 Rename WithDefaultSampler TracerProvider option to WithSampler and update docs (#1702)
860d5d8 Add flag to determine whether SpanContext is remote (#1701)
0fe65e6 Comply with OpenTelemetry attributes specification (#1703)
8888435 Bump google.golang.org/api from 0.40.0 to 0.41.0 in /exporters/trace/jaeger (#1700)
345f264 (global-docs) breaking(zipkin): removes servicName from zipkin exporter. (#1697)
62cbf0f Populate Jaeger's Span.Process from Resource (#1673)
28eaaa9 Add a test to prove the Tracer is safe for concurrent calls (#1665)
8b1be11 Rename resource pkg label vars and methods (#1692)
a1539d4 OpenCensus metric exporter bridge (#1444)
77aa218 Fix issue #1490, apply same logic as in the SDK (#1687)
9d3416c Fix synchronization issues in global trace delegate implementation (#1686)
58f69f0 Span status from HTTP code: Do not set status message if it can be inferred (#1681)
9c305bd Flush metric events prior to shutdown in OTLP example (#1678)
66b1135 Fix CHANGELOG (#1680)
90bd4ab Update employer information for maintainers (#1683)
3684191 Remove WithRecord() option from trace.SpanOption when starting a span (#1660)
65c7de2 Remove trace prefix from NoOp src files. (#1679)
e88a091 Make SpanContext Immutable (#1573)
d75e268 Avoid overriding configuration of tracer provider (#1633)
2b4d5ac Bump github.com/golangci/golangci-lint in /internal/tools (#1671)
150b868 Bump github.com/google/go-cmp from 0.5.4 to 0.5.5 (#1667)
76aa924 Fix the examples target info messaging (#1676)
a3aa9fd Bump github.com/itchyny/gojq from 0.12.1 to 0.12.2 in /internal/tools (#1672)
a5edd79 Removed setting error status while recording err as span event (#1663)
e981475 chore(zipkin): improves zipkin example to not to depend on timeouts. (#1566)
3dc91f2 Add ForceFlush method to TracerProvider (#1608)
bd0bba4 exporter: swap pusher for exporter (#1656)
5690485 Update the SimpleSpanProcessor (#1612)
a7f7aba SpanStatus description set only when status code is set to Error (#1662)
05252f4 Jaeger Exporter: Fix minor mapping discrepancies (#1626)
238e7c6 Add non-empty string check for attribute keys (#1659)
e9b9aca Add tests for propagation of Sampler Tracestate changes (#1655)
875a258 Add docs on when reviews should be cleared (#1556)
7153ef2 Add HTTP/JSON to the otlp exporter (#1586)
62e2a0f Unexport the simple and batch SpanProcessors (#1638)
992837f Add TracerProvider tests to oteltest harness (#1607)
Release v0.18.0
Added
- Added
resource.Default()
for use with meter and tracer providers. (#1507) AttributePerEventCountLimit
andAttributePerLinkCountLimit
forSpanLimits
. (#1535)- Added
Keys()
method topropagation.TextMapCarrier
andpropagation.HeaderCarrier
to adapthttp.Header
to this interface. (#1544) - Added
code
attributes togo.opentelemetry.io/otel/semconv
package. (#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.SpanRecorder
with its existing implementation
StandardSpanRecorder
(#1542). - Default span limit values to 128. (#1535)
- Rename
MaxEventsPerSpan
,MaxAttributesPerSpan
andMaxLinksPerSpan
toEventCountLimit
,AttributeCountLimit
andLinkCountLimit
, and move these fields intoSpanLimits
. (#1535) - Renamed the
otel/label
package 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-benchmark
is no longer a dependency of theprecommit
make target. (#1567) - Removed the
test-386
make 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 vedors according to the W3C TraceContext specification (#1475). (#1581)
- The OTLP exporter includes related labels for translations of a GaugeArray (#1563). (#1570)
Raw changes made between v0.17.0 and v0.18.0
bb4c297 Pre release v0.18.0 (#1635)
712c3dc Fix makefile ci target and coverage test packages (#1634)
841d2a5 Rename local var new to not collide with builtin (#1610)
13938ab Update SpanProcessor docs (#1611)
e25503a Add compatibility tests to CI (#1567)
1519d95 Use reasonable interval in sdktrace.WithBatchTimeout (#1621)
7d4496e Pass metric labels when transforming to gaugeArray (#1570)
6d4a5e0 Bump google.golang.org/grpc from 1.35.0 to 1.36.0 in /exporters/otlp (#1619)
a93393a Bump google.golang.org/grpc in /example/prom-collector (#1620)
e499ca8 Fix validation for tracestate with vendor and add tests (#1581)
43886e5 Make timestamps sequential in lastvalue agg check (#1579)
37688ef revent end-users from implementing some interfaces (#1575)
85e696d Updating documentation with an working example for creating NewExporter (#1513)
562eb28 Unify the Added sections of the unreleased changes (#1580)
c4cf1af Fix Windows build of Jaeger tests (#1577)
4a163be Fix stdout TestStdoutTimestamp failure with sleep (#1572)
bd4701e Stagger timestamps in exact aggregator tests (#1569)
b94cd4b add code attributes to semconv package (#1558)
78c06ce Update docs from gitter to slack for communication (#1554)
1307c91 Remove vendor exclude from license-check (#1552)
5d2636e Bump github.com/golangci/golangci-lint in /internal/tools (#1565)
d7aff47 Vendor Thrift dependency (#1551)
298c5a1 Update span limits to conform with OpenTelemetry specification (#1535)
ecf65d7 Rename otel/label -> otel/attribute (#1541)
1b5b662 Remove resampling on span.SetName (#1545)
8da5299 fix: grpc reconnection (#1521)
3bce9c9 Add Keys() method to propagation.TextMapCarrier (#1544)
0b1a1c7 Make oteltest.SpanRecorder into a concrete type (#1542)
7d0e3e5 SDK span no modification after ended (#1543)
7de3b58 Remove extra labels types (#1314)
73194e4 Bump google.golang.org/api from 0.39.0 to 0.40.0 in /exporters/trace/jaeger (#1536)
8fae0a6 Create resource.Default() with required attributes/default values (#1507)
Release v0.17.0
Changed
- Rename project default branch from
master
tomain
. - Reverse order in which
Resource
attributes 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)
9b242bc (upstream/main, origin/main, main) Organize API into Go modules based on stability and dependencies (#1528)
e50a1c8 Bump actions/cache from v2 to v2.1.4 (#1518)
a6aa7f0 Bump google.golang.org/api from 0.38.0 to 0.39.0 in /exporters/trace/jaeger (#1517)
38efc87 Code Improvement - Error strings should not be capitalized (#1488)
6b34050 Update default branch name (#1505)
b39fd05 nit: Fix comment to be up-to-date (#1510)
186c295 Fix golint error of package comment form (#1487)
9308d66 Bump google.golang.org/api from 0.37.0 to 0.38.0 in /exporters/trace/jaeger (#1506)
1952d7b Reverse order of attribute precedence when merging two Resources (#1501)
ad7b471 Remove build flags for runtime/trace support (#1498)
4bf4b69 Remove inaccurate and unnecessary import comment (#1481)
7e19eb6 Bump google.golang.org/api from 0.36.0 to 0.37.0 in /exporters/trace/jaeger (#1504)
c6a4406 Bump github.com/golangci/golangci-lint in /internal/tools (#1503)
9524ac0 (upstream/master, origin/master, origin/HEAD) Update workflows to include main branch as trigger (#1497)
c066f15 Bump github.com/gogo/protobuf from 1.3.1 to 1.3.2 in /internal/tools (#1478)
894e024 Bump github.com/golangci/golangci-lint in /internal/tools (#1477)
71ffba3 Bump google.golang.org/grpc from 1.34.0 to 1.35.0 in /exporters/otlp (#1471)
515809a Bump github.com/itchyny/gojq from 0.12.0 to 0.12.1 in /internal/tools (#1472)
3e96ad1 gitignore: remove unused example path (#1474)
c562277 Histogram aggregator functional options (#1434)
0df8cd6 Rename Makefile.proto to avoid interpretation as proto file (#1468)
979ff51 Bump github.com/stretchr/testify from 1.6.1 to 1.7.0 (#1453)
1df8b3b Bump github.com/gogo/protobuf from 1.3.1 to 1.3.2 in /exporters/otlp (#1456)
4c30a90 Bump github.com/stretchr/testify from 1.6.1 to 1.7.0 in /sdk (#1455)
5a9f8f6 Bump github.com/stretchr/testify from 1.6.1 to 1.7.0 in /exporters/stdout (#1454)
7786f34 Bump github.com/stretchr/testify from 1.6.1 to 1.7.0 in /exporters/trace/zipkin (#1457)
4352a7a Bump github.com/stretchr/testify from 1.6.1 to 1.7.0 in /exporters/otlp (#1460)
6990b3b Bump github.com/stretchr/testify from 1.6.1 to 1.7.0 in /exporters/metric/prometheus (#1461)
7af40d2 Bump github.com/stretchr/testify from 1.6.1 to 1.7.0 in /exporters/trace/jaeger (#1463)
f16f189 Bump google.golang.org/grpc in /example/otel-collector (#1465)
fe363be Move Span Event to API (#1452)
4392224 Bump google.golang.org/grpc in /example/prom-collector (#1466)
Release v0.16.0
Added
- Add the
ReadOnlySpan
andReadWriteSpan
interfaces to provide better control for accessing span data. (#1360) NewGRPCDriver
function returns aProtocolDriver
that maintains a single gRPC connection to the collector. (#1369)- Added documentation about the project's versioning policy. (#1388)
- Added
NewSplitDriver
for 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/testing
tointernal/internaltest
. (#1449) - Rename
export.SpanData
toexport.SpanSnapshot
and use it only for exporting spans. (#1360) - Store the parent's full
SpanContext
rather than just its span ID in thespan
struct. (#1360) - Improve span duration accuracy. (#1360)
- Migrated CI/CD from CircleCI to GitHub Actions (#1382)
- Remove duplicate checkout from GitHub Actions workflow (#1407)
- Metric
array
aggregator renamedexact
to match itsaggregation.Kind
(#1412) - Metric
exact
aggregator includes per-point timestamps (#1412) - Metric stdout exporter uses MinMaxSumCount aggregator for ValueRecorder instruments (#1412)
NewExporter
fromexporters/otlp
now takes aProtocolDriver
as 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) SamplingResult
now passed aTracestate
from the parentSpanContext
(#1432)- Moved gRPC driver for OTLP exporter to
exporters/otlp/otlpgrpc
. (#1420) - The
TraceContext
propagator now correctly propagatesTraceState
through 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)
Removed
- Remove
errUninitializedSpan
as 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)
Raw changes made between v0.15.0 and v0.16.0
0aadfb2 Prepare release v0.16.0 (#1464)
207587b Metric histogram aggregator: Swap in SynchronizedMove to avoid allocations (#1435)
c29c6fd Shutdown underlying span exporter while shutting down BatchSpanProcessor (#1443)
dfece3d Combine the Push and Pull metric controllers (#1378)
74deedd Handle tracestate in TraceContext propagator (#1447)
49f699d Remove Quantile aggregation, DDSketch aggregator; add Exact timestamps (#1412)
9c94941 Rename internal/testing to internal/internaltest (#1449)
8d80981 Move gRPC driver to a subpackage and add an HTTP driver (#1420)
9332af1 Bump github.com/golangci/golangci-lint in /internal/tools (#1445)
5ed96e9 Update exporters/otlp Readme.md (#1441)
bc9cb5e Switch CircleCI badge to GitHub Actions (#1440)
716ad08 Remove CircleCI config (#1439)
0682db1 Adding Security Workflows to GitHub Actions (2/2): gosec workflow (#1429)
11f732b Adding Security Workflows to GitHub Actions (1/2): codeql workflow (#1428)
40f1c00 Add Tracestate into the SamplingResult struct (#1432)
db06c8d Flush metric events before shutdown in collector example (#1438)
f6f458e Fix golint issue caused by typo in trace.go (#1436)
fe9d1f7 Use uint64 Count consistently in metric aggregation (#1430)
3a337d0 Bump github.com/golangci/golangci-lint in /internal/tools (#1433)
1e4c832 cleanup: drop the removed examples in gitignore (#1427)
5c9221c Unify endpoint API that related to OTel exporter (#1401)
045c3ff Build scripts: Replace mapfile with read loop for old bash versions (#1425)
2def8c3 Add Versioning Documentation (#1388)
6bcd108 Bump github.com/itchyny/gojq from 0.11.2 to 0.12.0 in /internal/tools (#1424)
38e76ef Add a split protocol driver for otlp exporter (#1418)
439cd31 Add TraceState to SpanContext in API (#1340)
3521526 Split connection management away from exporter (#1369)
add9d93 Bump github.com/prometheus/client_golang from 1.8.0 to 1.9.0 in /exporters/metric/prometheus (#1414)
93d426a Add @dashpole as a project Approver (#1410)
6fe20ef Fix small typo (#1409)
b22d0d7 Mention the getting started guide (#1406)
3fb80fb Fix duplicate checkout action in GitHub workflow (#1407)
2051927 Correct CI workflow syntax (#1403)
f11a86f Fix typo in comment (#1402)
bdf87a7 Migrate CircleCI ci.yml workflow to GitHub Actions (#1382)
4e59dd1 Bump google.golang.org/grpc from 1.32.0 to 1.34.0 in /example/otel-collector (#1400)
83513f7 Bump google.golang.org/api from 0.32.0 to 0.36.0 in /exporters/trace/jaeger (#1398)
a354fc4 Bump github.com/prometheus/client_golang from 1.7.1 to 1.8.0 in /exporters/metric/prometheus (#1397)
3528e42 Bump google.golang.org/grpc from 1.32.0 to 1.34.0 in /exporters/otlp (#1396)
af114ba Call otel.Handle with non-nil errors (#1384)
c3c4273 Add RO/RW span interfaces (#1360)