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
Option
s from the Jaeger exporter are removed.
The exporter no longer batches exports, instead relying on the SDK'sBatchSpanProcessor
for this functionality. (#1830) - The Jaeger exporter
Option
type is removed.
The type is no longer used by the exporter to configure anything.
All of the previous configuration these options provided were duplicates of SDK configuration.
They have all been removed in favor of using the SDK configuration and focuses the exporter configuration to be only about the endpoints it will send telemetry to. (#1830)
Raw changes made between v0.19.0 and v0.20.0
02d8bdd (HEAD -> main, tag: v0.20.0, tag: trace/v0.20.0, tag: sdk/v0.20.0, tag: sdk/metric/v0.20.0, tag: sdk/export/metric/v0.20.0, tag: oteltest/v0.20.0, tag: metric/v0.20.0, tag: exporters/trace/zipkin/v0.20.0, tag: exporters/trace/jaeger/v0.20.0, tag: exporters/stdout/v0.20.0, tag: exporters/otlp/v0.20.0, tag: exporters/metric/prometheus/v0.20.0, tag: example/zipkin/v0.20.0, tag: example/prometheus/v0.20.0, tag: example/prom-collector/v0.20.0, tag: example/otel-collector/v0.20.0, tag: example/opencensus/v0.20.0, tag: example/namedtracer/v0.20.0, tag: example/jaeger/v0.20.0, tag: bridge/opentracing/v0.20.0, tag: bridge/opencensus/v0.20.0, upstream/main, origin/main) Release v0.20.0 (#1837)
aa66fe7 OS and Process resource detectors (#1788)
7374d67 Fix Links documents (#1835)
856f5b8 Add feature request issue template (#1831)
0fdc3d7 Remove bundler from Jaeger exporter (#1830)
738ef11 Fix flaky global ErrorHandler delegation test (#1829)
e43d9c0 Update Default Value for Jaeger Exporter Endpoint (#1824)
0032bd6 Fix default merging of resource attributes from environment variable (#1785)
96c5e4b Add SpanProcessor example for Span annotation on start (#1733)
543c814 Remove the WithSDKOptions from the Jaeger exporter (#1825)
66389ad Update function docs in sdk.go (#1826)
70bc9eb Adds support for timeout on the otlp/gRPC exporter (#1821)
081cc61 Update Jaeger exporter convenience functions (#1822)
1b9f16d Remove the WithDisabled option from Jaeger exporter (#1806)
6867faa Bump actions/cache from v2.1.4 to v2.1.5 (#1818)
a2bf04d Build context pipeline in Jaeger upload process (#1809)
2de86f2 Remove locking from Jaeger exporter shutdown/export (#1807)
4f9fec2 Add ExportSpans benchmark to Jaeger exporter (#1805)
d9566ab Fix OTLP testing flake: signal connection from mock collector (#1816)
a2cecb6 add support for env var configuration to otlp/gRPC (#1811)
d616df6 (fix-1527) Fix flaky OTLP exporter reconnect test (#1814)
b09df84 Changes stdout to expose the *sdktrace.TracerProvider
(#1800)
0489060 Remove options field from Jaeger exporter (#1808)
6db20e0 Remove the abandoned Process struct in Jaeger exporter (#1804)
086abf3 docs: use test example to document prometheus.InstallNewPipeline (#1796)
d0cea04 Bump google.golang.org/api from 0.43.0 to 0.44.0 in /exporters/trace/jaeger (#1792)
99c477f Fixed typo for default service name in Jaeger Exporter (#1797)
95fd8f5 Bump google.golang.org/grpc from 1.36.1 to 1.37.0 in /exporters/otlp (#1791)
9b25164 Zipkin Exporter: Use default resouce's serviceName as default serivce name (#1777) (#1786)
4d141e4 Add k8s.node.name and k8s.node.uid to semconv (#1789)
5c99a34 Fix golint issue caused by incorrect comment (#1795)
c5d006c Update Jaeger environment variables (#1752)
5843280 add NewExportPipeline and InstallNewPipeline for otlp (#1373)
7d8e6bd Zipkin Exporter: Adjust span transformation to comply with the spec (#1688)
2817c09 (ro-span) Merge sdk/export/trace into sdk/trace (#1778)
c61e654 Refactor prometheus exporter tests to match file headers as well (#1470)
23422c5 Remove process config for Jaeger exporter (#1776)
0d49b59 Add test to check bsp ignores OnEnd
and ForceFlush
post Shutdown (#1772)
e9aaa04 Record links/events attribute drops independently (#1771)
5bbfc22 Make ExportSpans for Jaeger Exporter honor deadline (#1773)
0786fe3 (default-res) Add Bug report issue templates (#1775)
3c7face Add ExportTimeout
option to batch span processor (#1755)
c6b92d5 Make TraceFlags spec-compliant (#1770)
ee687ca Bump github.com/itchyny/gojq from 0.12.2 to 0.12.3 in /internal/tools (#1774)
52a2477 add support for configuring tls certs via env var to otlp/HTTP (#1769)
35cfbc7 Update precedence of event name in Jaeger exporter (#1768)
33699d2 Adds semantic conventions for exceptions (#1492)
928e3c3 Modify ForceFlush to abort after timeout/cancellation (#1757)
3947cab Fix testCollectorEndpoint typo and add tag assertions in jaeger_test (#1753)
ecc635d add website docs (#1747)
07a8d19 Fix Jaeger span status reporting and unify tag keys (#1761)
4fa35c9 add partial support for env var config to otlp/HTTP (#1758)
bf180d0 improve OTLP/gRPC connection errors (#1737)
d575865 Fix span IsRecording when not sampling (#1750)
20c93b0 Update SamplingParameters (#1749)
97501a3 Update SpanSnapshot to use parent SpanContext (#1748)
604b05c Store current Span instead of local and remote SpanContext in context.Context (#1731)
c61f4b6 Set @lizthegrey to emeritus status (#1745)
b1342fe Bump github.com/golangci/golangci-lint in /internal/tools (#1743)
54e1bd1 Bump google.golang.org/api from 0.41.0 to 0.43.0 in /exporters/trace/jaeger (#1741)
4d25b6a Bump github.com/prometheus/client_golang from 1.9.0 to 1.10.0 in /exporters/metric/prometheus (#1740)
0a47b66 Bump google.golang.org/grpc from 1.36.0 to 1.36.1 in /exporters/otlp (#1739)
26f006b Reinstate @paivagustavo as an Approver (#1734)
382c7ce Remove hasRemoteParent field from SDK span (#1728)
862a5a6 Remove setting error status while recording error with Span from oteltest package (#1729)
6defcfd Remove links on NewRoot spans (#1726)
a9b2f85 upgrade thrift to v0.14.1 in jaeger exporter (#1712)
5a6a854 Bump google.golang.org/protobuf from 1.25.0 to 1.26.0 in /exporters/otlp (#1724)
2348621 Migrate to using go.opentelemetry.io/proto/otlp (#1713)
5d559b4 Remove makeSamplingDecision func (#1711)
e24702d Update the TraceContext.Extract docs (#1720)
9d4eb1f Update dates in CHANGELOG.md for 2021 releases (#1723)