For highlights and announcements pertaining to this release see: Release Notes > 1.20.1.
The following changes are from the previous release 1.20.0.
-
NuGet: OpenTelemetry v1.20.1
-
Fixed a possible race condition on ARM64 when multiple threads record the
first measurement with no tags, or the first overflow measurement, that could
cause the measurement to be recorded incorrectly.
(#7951) -
Fixed self-diagnostics preamble redaction of quoted or encoded PEM material
and prefixed JWTs.
(#7955) -
Fixed default HTTP client log filtering when registering the OTLP log exporter
throughOpenTelemetryLoggerOptions.
(#7959) -
Fixed legacy self-diagnostics logging terminating the process when the log
file is truncated or the log volume runs out of space.
(#7956) -
Experimental (pre-release builds only): Fixed
Logger.EmitLogignoring
instrumentation suppression, which could cause recursive exports or deadlocks.
(#7961) -
Fixed delta double counters losing subsequent measurements after a non-finite
or large value and idle metric points with aNaNvalue failing to be reclaimed.
(#7963) -
Improve the assignment of values to exponential histogram buckets when the
value is near a bucket boundary by using a pre-computed lookup table.
(#7911) -
Fixed
LogRecords being returned to the shared pool while still queued for
export when an exporter stops enumerating a single-item or array
Batch<LogRecord>early which could cause aBatchLogRecordExportProcessor
on the same provider to export missing or incorrect data.
(#7965) -
Fixed a
SuppressInstrumentationScope.Enter()reference count never being
released when theActivityit was entered for is not recorded, which caused
all subsequent telemetry in that execution context to be suppressed.
(#7966) -
Self-diagnostics log files, whether configured through
OTEL_DIAGNOSTICS.json
orSelfDiagnosticsOptions, are now always created as new files.
(#7968) -
Self-diagnostics messages written to the sinks configured by
SelfDiagnosticsOptionsare now truncated to 16,384 characters so that the
memory used by entries waiting to be written is bounded.
(#7969) -
The self-diagnostics file sink now creates its log directory and log files
so that only the owner can access them (0700/0600) on Linux and macOS,
instead of inheriting the process umask.
(#7967) -
Fixed pooled log records retaining completed log data until reused.
(#7978) -
Fixed slow metric recording when distinct wide tag values, such as
longor
Guid, share the same built-in hash code.
(#7979) -
Fixed
ObservableCounterandObservableUpDownCounteroverflow points
reporting only the last observation instead of the sum for each collection.
(#7985) -
Fixed replaced log attributes being exported together with their original
values when buffering or updatingLogRecord.State.
(#7987)
See CHANGELOG for details.
-
-
NuGet: OpenTelemetry.Api v1.20.1
- Fixed
TracerProvider.GetTracercaching a new tracer for each call with equal
array-valued scope tags.
(#7960)
See CHANGELOG for details.
- Fixed
-
NuGet: OpenTelemetry.Api.ProviderBuilderExtensions v1.20.1
No notable changes.
See CHANGELOG for details.
-
NuGet: OpenTelemetry.Exporter.Console v1.20.1
No notable changes.
See CHANGELOG for details.
-
NuGet: OpenTelemetry.Exporter.InMemory v1.20.1
No notable changes.
See CHANGELOG for details.
-
NuGet: OpenTelemetry.Exporter.OpenTelemetryProtocol v1.20.1
-
Fixed informational HTTP client logs not being suppressed by default when the
OTLP log exporter is registered usingOpenTelemetryLoggerOptions.AddOtlpExporter.
(#7959) -
Breaking:
HttpClientinstances created by the exporter directly no
longer follow HTTP redirects. A3xxresponse is now treated as a failed
export. See Configure HttpClient
to preventHttpClientcreated byIHttpClientFactoryfrom following
redirects.
(#7958) -
The value of
OTEL_EXPORTER_OTLP_ENDPOINT, or of its signal-specific
variants, is no longer written to the exporter's diagnostic log when it is
not a valid URI.
(#7971) -
Hardened the experimental disk retry feature.
- When running on .NET on non-Windows platforms, the retry directory and
the blob files within it are now created accessible to the current user
only, including when the directory is recreated after being deleted. - Directory size accounting no longer follows subdirectories, avoiding
a symbolic-link/junction walk. - Expired lease-file cleanup now correctly locates the lease timestamp
delimiter within the file name rather than the whole path. - Storage maintenance no longer deletes or renames files with a
.blob,
.tmpor.lockextension that the exporter did not create when the
retry directory is shared with other files. Only files named the way the
exporter names its blobs, and the temporary and lease files derived from
them, are now removed or renamed, and only blobs named that way are now
retried. - Timestamps in blob and lease file names are now always written using the
Gregorian calendar. Previously, when the current culture used a different
calendar, files were given timestamps that caused them never to be
removed or released when the storage was maintained. - A stored request whose lease has expired is no longer deleted after it has
been retried, as it may have since been leased again for another retry. - Stored blobs that are empty or that are larger than the maximum size of
the storage are no longer read. When running on .NET, stored blobs that
are symbolic links are also no longer read.
(#7857)
- When running on .NET on non-Windows platforms, the retry directory and
-
Only the first 4 KiB of the body of an unsuccessful response is now read and
written to the exporter's diagnostic log, instead of up to
MaxResponseSizeBytes.
(#7969) -
Fixed reading the body of a failed export response for the exporter's
diagnostic log not being bounded by the export timeout.
(#7970) -
Fixed the body of a failed export response never being written to the
exporter's diagnostic log when running on .NET Framework.
(#7970) -
Fixed attributes whose value is converted with
ToString()(for example
enums,UriorStringValues) being dropped as unsupported, and for metric
data points omitted from every later export, when the export buffer had to
be resized while the attribute was being written.
(#7973) -
Breaking: Fixed telemetry stored by the experimental disk retry feature
for one exporter being resent by another exporter for the same signal to its
own endpoint and with its own headers. Disk retry storage is now additionally
separated by a subdirectory derived from the exporter'sProtocol,
EndpointandHeaders. Telemetry stored on disk by earlier versions is
not resent.
(#7972) -
Exponential histogram bucket counts are now serialized in the packed
encoding, which reduces the size of the exported payload.
(#7897) -
Fixed inline certificate or private key material being included in OTLP
diagnostic events and exceptions when supplied instead of a file path.
(#7981) -
Fixed early metric collections permanently omitting resource attributes from
subsequent exports while theMeterProvideris being built.
(#7984)
See CHANGELOG for details.
-
-
NuGet: OpenTelemetry.Exporter.Zipkin v1.20.1
- The value of
OTEL_EXPORTER_ZIPKIN_ENDPOINTis no longer written to the
exporter's diagnostic log when it is not a valid URI.
(#7971)
See CHANGELOG for details.
- The value of
-
NuGet: OpenTelemetry.Extensions.Hosting v1.20.1
No notable changes.
See CHANGELOG for details.
-
NuGet: OpenTelemetry.Extensions.Propagators v1.20.1
No notable changes.
See CHANGELOG for details.