Releases: open-telemetry/opentelemetry-go
Release v1.6.1
Fixed
- The
go.opentelemetry.io/otel/schema/*packages now use the correct schema URL for theirSchemaURLconstant. Instead of using"https://opentelemetry.io/schemas/v<version>"they now use the correct URL without avprefix,"https://opentelemetry.io/schemas/<version>". (#2743, #2744)
Security
- Upgrade
go.opentelemetry.io/proto/otlpfromv0.12.0tov0.12.1. This includes an indirect upgrade ofgithub.com/grpc-ecosystem/grpc-gatewaywhich resolves a vulnerability fromgopkg.in/yaml.v2in versionv2.2.3. (#2724, #2728)
Release v1.6.0/v0.28.0
⚠️ Notice ⚠️
This update is a breaking change of the unstable Metrics API.
Code instrumented with the go.opentelemetry.io/otel/metric will need to be modified.
Added
- Add metrics exponential histogram support.
New mapping functions have been made available insdk/metric/aggregator/exponential/mappingfor other OpenTelemetry projects to take dependencies on. (#2502) - Add Go 1.18 to our compatibility tests. (#2679)
- Allow configuring the Sampler with the
OTEL_TRACES_SAMPLERandOTEL_TRACES_SAMPLER_ARGenvironment variables. (#2305, #2517) - Add the
metric/globalfor obtaining and setting the globalMeterProvider. (#2660)
Changed
-
The metrics API has been significantly changed to match the revised OpenTelemetry specification.
High-level changes include:- Synchronous and asynchronous instruments are now handled by independent
InstrumentProviders.
TheseInstrumentProviders are managed with aMeter. - Synchronous and asynchronous instruments are grouped into their own packages based on value types.
- Asynchronous callbacks can now be registered with a
Meter.
Be sure to check out the metric module documentation for more information on how to use the revised API. (#2587, #2660)
- Synchronous and asynchronous instruments are now handled by independent
Fixed
Release v1.5.0
Added
-
Log the Exporters configuration in the TracerProviders message. (#2578)
-
Added support to configure the span limits with environment variables.
The following environment variables are supported. (#2606, #2637)OTEL_SPAN_ATTRIBUTE_VALUE_LENGTH_LIMITOTEL_SPAN_ATTRIBUTE_COUNT_LIMITOTEL_SPAN_EVENT_COUNT_LIMITOTEL_EVENT_ATTRIBUTE_COUNT_LIMITOTEL_SPAN_LINK_COUNT_LIMITOTEL_LINK_ATTRIBUTE_COUNT_LIMIT
If the provided environment variables are invalid (negative), the default values would be used.
-
Rename the
gcruntime name togo(#2560) -
Add resource container ID detection. (#2418)
-
Add span attribute value length limit.
The newAttributeValueLengthLimitfield is added to the"go.opentelemetry.io/otel/sdk/trace".SpanLimitstype to configure this limit for aTracerProvider.
The default limit for this resource is "unlimited". (#2637) -
Add the
WithRawSpanLimitsoption togo.opentelemetry.io/otel/sdk/trace.
This option replaces theWithSpanLimitsoption.
Zero or negative values will not be changed to the default value likeWithSpanLimitsdoes.
Setting a limit to zero will effectively disable the related resource it limits and setting to a negative value will mean that resource is unlimited.
Consequentially, limits should be constructed usingNewSpanLimitsand updated accordingly. (#2637)
Changed
- Drop oldest tracestate
Memberwhen capacity is reached. (#2592) - Add event and link drop counts to the exported data from the
oltptraceexporter. (#2601) - Unify path cleaning functionally in the
otlpmetricandotlptraceconfiguration. (#2639) - Change the debug message from the
sdk/trace.BatchSpanProcessorto reflect the count is cumulative. (#2640) - Introduce new internal
envconfigpackage for OTLP exporters. (#2608) - If
http.Request.Hostis empty, fall back to useURL.Hostwhen populatinghttp.hostin thesemconvpackages. (#2661)
Fixed
- Remove the OTLP trace exporter limit of SpanEvents when exporting. (#2616)
- Default to port
4318instead of4317for theotlpmetrichttpandotlptracehttpclient. (#2614, #2625) - Unlimited span limits are now supported (negative values). (#2636, #2637)
Deprecated
- Deprecated
"go.opentelemetry.io/otel/sdk/trace".WithSpanLimits.
UseWithRawSpanLimitsinstead.
That option allows setting unlimited and zero limits, this option does not.
This option will be kept until the next major version incremented release. (#2637)
Release v1.4.1
Fixed
- Fix race condition in reading the dropped spans number for the
BatchSpanProcessor. (#2615)
Release v1.4.0/v0.27.0
Added
- Use
OTEL_EXPORTER_ZIPKIN_ENDPOINTenvironment variable to specify zipkin collector endpoint. (#2490) - Log the configuration of
TracerProviders, andTracers for debugging.
To enable use a logger with Verbosity (V level)>=1. (#2500) - Added support to configure the batch span-processor with environment variables.
The following environment variables are used. (#2515)OTEL_BSP_SCHEDULE_DELAYOTEL_BSP_EXPORT_TIMEOUTOTEL_BSP_MAX_QUEUE_SIZE.OTEL_BSP_MAX_EXPORT_BATCH_SIZE
Changed
- Zipkin exporter exports
Resourceattributes in theTagsfield. (#2589)
Deprecated
- Deprecate module the
go.opentelemetry.io/otel/sdk/export/metric.
Use thego.opentelemetry.io/otel/sdk/metricmodule instead. (#2382) - Deprecate
"go.opentelemetry.io/otel/sdk/metric".AtomicFieldOffsets. (#2445)
Fixed
- Fixed the instrument kind for noop async instruments to correctly report an implementation. (#2461)
- Fix UDP packets overflowing with Jaeger payloads. (#2489, #2512)
- Change the
otlpmetric.Clientinterface'sUploadMetricsmethod to accept a singleResourceMetricsinstead of a slice of them. (#2491) - Specify explicit buckets in Prometheus example, fixing issue where example only has
+infbucket. (#2419, #2493) - W3C baggage will now decode urlescaped values. (#2529)
- Baggage members are now only validated once, when calling
NewMemberand not also when adding it to the baggage itself. (#2522) - The order attributes are dropped from spans in the
go.opentelemetry.io/otel/sdk/tracepackage when capacity is reached is fixed to be in compliance with the OpenTelemetry specification.
Instead of dropping the least-recently-used attribute, the last added attribute is dropped.
This drop order still only applies to attributes with unique keys not already contained in the span.
If an attribute is added with a key already contained in the span, that attribute is updated to the new value being added. (#2576)
Removed
- Updated
go.opentelemetry.io/proto/otlpfromv0.11.0tov0.12.0. This version removes a number of deprecated methods. (#2546)
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
WithRetryOptionand theRetryConfigtype to thego.opentelemetry.io/otel/exporter/otel/otlpmetric/otlpmetrichttppackage to specify retry behavior consistently. (#2425) - Add
SpanStatusFromHTTPStatusCodeAndSpanKindto allsemconvpackages to return a span status code similar toSpanStatusFromHTTPStatusCode, but exclude4XXHTTP errors as span errors if the span is of server kind. (#2296)
Changed
- The
"go.opentelemetry.io/otel/exporter/otel/otlptrace/otlptracegrpc".Clientnow uses the underlying gRPCClientConnto 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".Clientnow uses the underlying gRPCClientConnto 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".RetrySettingstype 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 andWithInsecureis not specified. (#2432) - Change
resource.Defaultto be evaluated the first time it is called, rather than on import. This allows the caller the option to updateOTEL_RESOURCE_ATTRIBUTESfirst, 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>_ENDPOINTenvironment variable is now used without modification of the path.
WhenOTEL_EXPORTER_OTLP_ENDPOINTis 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/jaegercorrectly sets theotel.status_codevalue to be a string ofERRORorOKinstead of an integer code. (#2439, #2440)
Deprecated
- Deprecated the
"go.opentelemetry.io/otel/exporter/otel/otlpmetric/otlpmetrichttp".WithMaxAttemptsOption, use the newWithRetryOptioninstead. (#2425) - Deprecated the
"go.opentelemetry.io/otel/exporter/otel/otlpmetric/otlpmetrichttp".WithBackoffOption, use the newWithRetryOptioninstead. (#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.ExportKindSelectortypes have been renamed toaggregation.Temporalityandaggregation.TemporalitySelectorrespectively to keep in line with current specification and protocol along with built-in selectors (e.g.,aggregation.CumulativeTemporalitySelector, ...). (#2274) - The Metric
Exporterinterface now requires aTemporalitySelectormethod instead of anExportKindSelector. (#2274) - Metrics API cleanup. The
metric/sdkapipackage has been created to relocate the API-to-SDK interface:- The following interface types simply moved from
metrictometric/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
BatchSpanProcessorto export all queued spans whenForceFlushis called. (#2080, #2335)
Added
- Add the
"go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc".WithGRPCConnoption so the exporter can reuse an existing gRPC connection. (#2002) - Added a new
schemamodule to help parse Schema Files in OTEP 0152 format. (#2267) - Added a new
MapCarrierto thego.opentelemetry.io/otel/propagationpackage to hold propagated coss-cutting concerns as amap[string]stringheld in memory. (#2334)
Release v1.1.0
Added
- Add the
"go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc".WithGRPCConnoption so the exporter can reuse an existing gRPC connection. (#2002) - Add the
go.opentelemetry.io/otel/semconv/v1.7.0package.
The package contains semantic conventions from thev1.7.0version of the OpenTelemetry specification. (#2320) - Add the
go.opentelemetry.io/otel/semconv/v1.6.1package.
The package contains semantic conventions from thev1.6.1version of the OpenTelemetry specification. (#2321) - Add the
go.opentelemetry.io/otel/semconv/v1.5.0package.
The package contains semantic conventions from thev1.5.0version of the OpenTelemetry specification. (#2322)- When upgrading from the
semconv/v1.4.0package note the following name changes:K8SReplicasetUIDKey->K8SReplicaSetUIDKeyK8SReplicasetNameKey->K8SReplicaSetNameKeyK8SStatefulsetUIDKey->K8SStatefulSetUIDKeyk8SStatefulsetNameKey->K8SStatefulSetNameKeyK8SDaemonsetUIDKey->K8SDaemonSetUIDKeyK8SDaemonsetNameKey->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".HTTPServerAttributesFromHTTPRequestnow correctly only sets the HTTP client IP attribute even if the connection was routed with proxies and there are multiple addresses in theX-Forwarded-Forheader. (#2282, #2284) - The
"go.opentelemetry.io/otel/semconv/v1.4.0".NetAttributesFromHTTPRequestfunction 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".CheckpointSetis 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".WithSDKOptionsfunction. (#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/attributepackage.
Use the typed functions and methods added to the package instead. (#2235)- The
Key.Arraymethod is removed. - The
Arrayfunction is removed. - The
Anyfunction is removed. - The
ArrayValuefunction is removed. - The
AsArrayfunction is removed.
- The