Releases: open-telemetry/opentelemetry-go
Releases · open-telemetry/opentelemetry-go
Release v1.3.0/v0.26.0
⚠️ Notice ⚠️
We have updated the project minimum supported Go version to 1.16
Added
- Added an internal Logger.
This can be used by the SDK and API to provide users with feedback of the internal state.
To enable verbose logs configure the logger which will print V(1) logs. For debugging information configure to print V(5) logs. (#2343) - Add the
WithRetry
Option
and theRetryConfig
type to thego.opentelemetry.io/otel/exporter/otel/otlpmetric/otlpmetrichttp
package to specify retry behavior consistently. (#2425) - Add
SpanStatusFromHTTPStatusCodeAndSpanKind
to allsemconv
packages to return a span status code similar toSpanStatusFromHTTPStatusCode
, but exclude4XX
HTTP errors as span errors if the span is of server kind. (#2296)
Changed
- The
"go.opentelemetry.io/otel/exporter/otel/otlptrace/otlptracegrpc".Client
now uses the underlying gRPCClientConn
to handle name resolution, TCP connection establishment (with retries and backoff) and TLS handshakes, and handling errors on established connections by re-resolving the name and reconnecting. (#2329) - The
"go.opentelemetry.io/otel/exporter/otel/otlpmetric/otlpmetricgrpc".Client
now uses the underlying gRPCClientConn
to handle name resolution, TCP connection establishment (with retries and backoff) and TLS handshakes, and handling errors on established connections by re-resolving the name and reconnecting. (#2425) - The
"go.opentelemetry.io/otel/exporter/otel/otlpmetric/otlpmetricgrpc".RetrySettings
type is renamed toRetryConfig
. (#2425) - The
go.opentelemetry.io/otel/exporter/otel/*
gRPC exporters now default to using the host's root CA set if none are provided by the user andWithInsecure
is not specified. (#2432) - Change
resource.Default
to be evaluated the first time it is called, rather than on import. This allows the caller the option to updateOTEL_RESOURCE_ATTRIBUTES
first, such as withos.Setenv
. (#2371)
Fixed
- The
go.opentelemetry.io/otel/exporter/otel/*
exporters are updated to handle per-signal and universal endpoints according to the OpenTelemetry specification.
Any per-signal endpoint set via anOTEL_EXPORTER_OTLP_<signal>_ENDPOINT
environment variable is now used without modification of the path.
WhenOTEL_EXPORTER_OTLP_ENDPOINT
is set, if it contains a path, that path is used as a base path which per-signal paths are appended to. (#2433) - Basic metric controller updated to use sync.Map to avoid blocking calls (#2381)
- The
go.opentelemetry.io/otel/exporter/jaeger
correctly sets theotel.status_code
value to be a string ofERROR
orOK
instead of an integer code. (#2439, #2440)
Deprecated
- Deprecated the
"go.opentelemetry.io/otel/exporter/otel/otlpmetric/otlpmetrichttp".WithMaxAttempts
Option
, use the newWithRetry
Option
instead. (#2425) - Deprecated the
"go.opentelemetry.io/otel/exporter/otel/otlpmetric/otlpmetrichttp".WithBackoff
Option
, use the newWithRetry
Option
instead. (#2425)
Removed
- Remove the metric Processor's ability to convert cumulative to delta aggregation temporality. (#2350)
- Remove the metric Bound Instruments interface and implementations. (#2399)
- Remove the metric MinMaxSumCount kind aggregation and the corresponding OTLP export path. (#2423)
- Metric SDK removes the "exact" aggregator for histogram instruments, as it performed a non-standard aggregation for OTLP export (creating repeated Gauge points) and worked its way into a number of confusing examples. (#2348)
Release v1.2.0/v0.25.0
Changed
- Metric SDK
export.ExportKind
,export.ExportKindSelector
types have been renamed toaggregation.Temporality
andaggregation.TemporalitySelector
respectively to keep in line with current specification and protocol along with built-in selectors (e.g.,aggregation.CumulativeTemporalitySelector
, ...). (#2274) - The Metric
Exporter
interface now requires aTemporalitySelector
method instead of anExportKindSelector
. (#2274) - Metrics API cleanup. The
metric/sdkapi
package has been created to relocate the API-to-SDK interface:- The following interface types simply moved from
metric
tometric/sdkapi
:Descriptor
,MeterImpl
,InstrumentImpl
,SyncImpl
,BoundSyncImpl
,AsyncImpl
,AsyncRunner
,AsyncSingleRunner
, andAsyncBatchRunner
- The following struct types moved and are replaced with type aliases, since they are exposed to the user:
Observation
,Measurement
. - The No-op implementations of sync and async instruments are no longer exported, new functions
sdkapi.NewNoopAsyncInstrument()
andsdkapi.NewNoopSyncInstrument()
are provided instead. (#2271)
- The following interface types simply moved from
- Update the SDK
BatchSpanProcessor
to export all queued spans whenForceFlush
is called. (#2080, #2335)
Added
- Add the
"go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc".WithGRPCConn
option so the exporter can reuse an existing gRPC connection. (#2002) - Added a new
schema
module to help parse Schema Files in OTEP 0152 format. (#2267) - Added a new
MapCarrier
to thego.opentelemetry.io/otel/propagation
package to hold propagated coss-cutting concerns as amap[string]string
held in memory. (#2334)
Release v1.1.0
Added
- Add the
"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc".WithGRPCConn
option so the exporter can reuse an existing gRPC connection. (#2002) - Add the
go.opentelemetry.io/otel/semconv/v1.7.0
package.
The package contains semantic conventions from thev1.7.0
version of the OpenTelemetry specification. (#2320) - Add the
go.opentelemetry.io/otel/semconv/v1.6.1
package.
The package contains semantic conventions from thev1.6.1
version of the OpenTelemetry specification. (#2321) - Add the
go.opentelemetry.io/otel/semconv/v1.5.0
package.
The package contains semantic conventions from thev1.5.0
version of the OpenTelemetry specification. (#2322)- When upgrading from the
semconv/v1.4.0
package note the following name changes:K8SReplicasetUIDKey
->K8SReplicaSetUIDKey
K8SReplicasetNameKey
->K8SReplicaSetNameKey
K8SStatefulsetUIDKey
->K8SStatefulSetUIDKey
k8SStatefulsetNameKey
->K8SStatefulSetNameKey
K8SDaemonsetUIDKey
->K8SDaemonSetUIDKey
K8SDaemonsetNameKey
->K8SDaemonSetNameKey
- When upgrading from the
Changed
- Links added to a span will be dropped by the SDK if they contain an invalid span context (#2275).
Fixed
- The
"go.opentelemetry.io/otel/semconv/v1.4.0".HTTPServerAttributesFromHTTPRequest
now correctly only sets the HTTP client IP attribute even if the connection was routed with proxies and there are multiple addresses in theX-Forwarded-For
header. (#2282, #2284) - The
"go.opentelemetry.io/otel/semconv/v1.4.0".NetAttributesFromHTTPRequest
function correctly handles IPv6 addresses as IP addresses and sets the correct net peer IP instead of the net peer hostname attribute. (#2283, #2285) - The simple span processor shutdown method deterministically returns the exporter error status if it simultaneously finishes when the deadline is reached. (#2290, #2289)
Release v1.0.1/Metrics v0.24.0
1.0.1 - 2021-10-01
Fixed
- json stdout exporter no longer crashes due to concurrency bug. (#2265)
Metrics 0.24.0 - 2021-10-01
Changed
- NoopMeterProvider is now private and NewNoopMeterProvider must be used to obtain a noopMeterProvider. (#2237)
- The Metric SDK
Export()
function takes a new two-level reader interface for iterating over results one instrumentation library at a time. (#2197)- The former
"go.opentelemetry.io/otel/sdk/export/metric".CheckpointSet
is renamedReader
. - The new interface is named
"go.opentelemetry.io/otel/sdk/export/metric".InstrumentationLibraryReader
.
- The former
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...