This release dramatically improves interoperability with Go's log/slog package. In particular, logr.NewContext and logr.NewContextWithSlogLogger use the same context key, which allows logr.FromContext and logr.FromContextAsSlogLogger to return logr.Logger or *slog.Logger respectively, including transparently converting each to the other as needed.
Functions logr/slogr.NewLogr and logr/slogr.ToSlogHandler have been superceded by logr.FromSlogHandler and logr.ToSlogHandler respectively, and type logr/slogr.SlogSink has been superceded by logr.SlogSink. All of the old names in logr/slogr remain, for compatibility.
Package logr/funcr now supports logr.SlogSink, meaning that it's output passes all but one of the Slog conformance tests (that exception being that funcr handles the timestamp itself).
Users who have a logr.Logger and need a *slog.Logger can call slog.New(logr.ToSlogHandler(...)) and all output will go through the same stack.
Users who have a *slog.Logger or slog.Handler can call logr.FromSlogHandler(...) and all output will go through the same stack.
[breaking] Add err chan to log producer and don't panic on error (#1971) @Tofel
If you are starting a log producer, it's now possible to pass log options in a variadic manner (at this moment only the log producer timeout option is available). So this breaking change will affect you if and only if you are assigning the StartLogProducer method of a container to a variable.
🚀 Features
feat: include PostReady hook, defining proper execution order for container lifecycle hooks (#1922) @mdelapenya
Add client metric support to go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp. (#4707)
Add peer attributes to spans recorded by NewClientHandler, NewServerHandler in go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc. (#4873)
Add support for cloud.account.id, cloud.availability_zone and cloud.region in the AWS ECS detector. (#4860)
Changed
The fallback options in go.opentelemetry.io/contrib/exporters/autoexport now accept factory functions. (#4891)
WithFallbackMetricReader(metric.Reader) MetricOption is replaced with func WithFallbackMetricReader(func(context.Context) (metric.Reader, error)) MetricOption.
WithFallbackSpanExporter(trace.SpanExporter) SpanOption is replaced with WithFallbackSpanExporter(func(context.Context) (trace.SpanExporter, error)) SpanOption.
The http.server.request_content_length metric in go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp is changed to http.server.request.size.(#4707)
The http.server.response_content_length metric in go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp is changed to http.server.response.size.(#4707)
Deprecated
The RequestCount, RequestContentLength, ResponseContentLength, ServerLatency constants in go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp are deprecated. (#4707)
Fixed
Do not panic in go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc if MeterProvider returns a nil instrument. (#4875)
Add SDK.Shutdown method in "go.opentelemetry.io/contrib/config". (#4583)
NewSDK in go.opentelemetry.io/contrib/config now returns a configured SDK with a valid TracerProvider. (#4741)
Changed
The semantic conventions used by go.opentelemetry.io/contrib/instrumentation/github.com/emicklei/go-restful/otelrestful are upgraded to v1.20.0. (#4320)
The semantic conventions used by go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin are upgraded to v1.20.0. (#4320)
The semantic conventions used by go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux are upgraded to v1.20.0. (#4320)
The semantic conventions used by go.opentelemetry.io/contrib/instrumentation/github.com/labstack/echo/otelecho are upgraded to v1.20.0. (#4320)
The semantic conventions used by go.opentelemetry.io/contrib/instrumentation/gopkg.in/macaron.v1/otelmacaron are upgraded to v1.20.0. (#4320)
The semantic conventions used by go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace are upgraded to v1.20.0. (#4320)
The semantic conventions used by go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace/example are upgraded to v1.20.0. (#4320)
The semantic conventions used by go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/example are upgraded to v1.20.0. (#4320)
The semantic conventions used by go.opentelemetry.io/contrib/instrumentation/net/http/otelhttpare upgraded to v1.20.0. (#4320)
Updated configuration schema to include schema_url for resource definition and without_type_suffix and without_units for the Prometheus exporter. (#4727)
The semantic conventions used by the go.opentelemetry.io/contrib/detectors/aws/ecs resource detector are upgraded to v1.24.0. (#4803)
Add client metric support to go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp. (#4707)
Add peer attributes to spans recorded by NewClientHandler, NewServerHandler in go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc. (#4873)
Add support for cloud.account.id, cloud.availability_zone and cloud.region in the AWS ECS detector. (#4860)
Changed
The fallback options in go.opentelemetry.io/contrib/exporters/autoexport now accept factory functions. (#4891)
WithFallbackMetricReader(metric.Reader) MetricOption is replaced with func WithFallbackMetricReader(func(context.Context) (metric.Reader, error)) MetricOption.
WithFallbackSpanExporter(trace.SpanExporter) SpanOption is replaced with WithFallbackSpanExporter(func(context.Context) (trace.SpanExporter, error)) SpanOption.
The http.server.request_content_length metric in go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp is changed to http.server.request.size.(#4707)
The http.server.response_content_length metric in go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp is changed to http.server.response.size.(#4707)
Deprecated
The RequestCount, RequestContentLength, ResponseContentLength, ServerLatency constants in go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp are deprecated. (#4707)
Fixed
Do not panic in go.opentelemetry.io/contrib/instrumentation/google.golang.org/grpc/otelgrpc if MeterProvider returns a nil instrument. (#4875)
[1.22.0/0.47.0/0.16.0/0.2.0] - 2024-01-18
Added
Add SDK.Shutdown method in "go.opentelemetry.io/contrib/config". (#4583)
NewSDK in go.opentelemetry.io/contrib/config now returns a configured SDK with a valid TracerProvider. (#4741)
Changed
The semantic conventions used by go.opentelemetry.io/contrib/instrumentation/github.com/emicklei/go-restful/otelrestful are upgraded to v1.20.0. (#4320)
The semantic conventions used by go.opentelemetry.io/contrib/instrumentation/github.com/gin-gonic/gin/otelgin are upgraded to v1.20.0. (#4320)
The semantic conventions used by go.opentelemetry.io/contrib/instrumentation/github.com/gorilla/mux/otelmux are upgraded to v1.20.0. (#4320)
The semantic conventions used by go.opentelemetry.io/contrib/instrumentation/github.com/labstack/echo/otelecho are upgraded to v1.20.0. (#4320)
The semantic conventions used by go.opentelemetry.io/contrib/instrumentation/gopkg.in/macaron.v1/otelmacaron are upgraded to v1.20.0. (#4320)
The semantic conventions used by go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace are upgraded to v1.20.0. (#4320)
The semantic conventions used by go.opentelemetry.io/contrib/instrumentation/net/http/httptrace/otelhttptrace/example are upgraded to v1.20.0. (#4320)
The semantic conventions used by go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp/example are upgraded to v1.20.0. (#4320)
The semantic conventions used by go.opentelemetry.io/contrib/instrumentation/net/http/otelhttpare upgraded to v1.20.0. (#4320)
Updated configuration schema to include schema_url for resource definition and without_type_suffix and without_units for the Prometheus exporter. (#4727)
The semantic conventions used by the go.opentelemetry.io/contrib/detectors/aws/ecs resource detector are upgraded to v1.24.0. (#4803)
The semantic conventions used by the go.opentelemetry.io/contrib/detectors/aws/lambda resource detector are upgraded to v1.24.0. (#4803)
The semantic conventions used by the go.opentelemetry.io/contrib/detectors/aws/ec2 resource detector are upgraded to v1.24.0. (#4803)
The semantic conventions used by the go.opentelemetry.io/contrib/detectors/aws/eks resource detector are upgraded to v1.24.0. (#4803)
The semantic conventions used by the go.opentelemetry.io/contrib/detectors/gcp resource detector are upgraded to v1.24.0. (#4803)
The semantic conventions used in go.opentelemetry.io/contrib/instrumentation/github.com/aws/aws-lambda-go/otellambda/test are upgraded to v1.24.0. (#4803)
See our versioning policy for more information about these stability guarantees.
Added
Add WithEndpointURL option to the exporters/otlp/otlpmetric/otlpmetricgrpc, exporters/otlp/otlpmetric/otlpmetrichttp, exporters/otlp/otlptrace/otlptracegrpc and exporters/otlp/otlptrace/otlptracehttp packages. (#4808)
Experimental exemplar exporting is added to the metric SDK.
See metric documentation for more information about this feature and how to enable it. (#4871)
ErrSchemaURLConflict is added to go.opentelemetry.io/otel/sdk/resource.
This error is returned when a merge of two Resources with different (non-empty) schema URL is attempted. (#4876)
Changed
The Merge and New functions in go.opentelemetry.io/otel/sdk/resource now returns a partial result if there is a schema URL merge conflict.
Instead of returning nil when two Resources with different (non-empty) schema URLs are merged the merged Resource, along with the new ErrSchemaURLConflict error, is returned.
It is up to the user to decide if they want to use the returned Resource or not.
It may have desired attributes overwritten or include stale semantic conventions. (#4876)
Fixed
Fix ContainerID resource detection on systemd when cgroup path has a colon. (#4449)
Fix go.opentelemetry.io/otel/sdk/metric to cache instruments to avoid leaking memory when the same instrument is created multiple times. (#4820)
Fix missing Mix and Max values for go.opentelemetry.io/otel/exporters/stdout/stdoutmetric by introducing MarshalText and MarshalJSON for the Extrema type in go.opentelemetry.io/sdk/metric/metricdata. (#4827)
[1.23.0-rc.1] 2024-01-18
This is a release candidate for the v1.23.0 release.
That release is expected to include the v1 release of the following modules:
See our versioning policy for more information about these stability guarantees.
Added
Add WithEndpointURL option to the exporters/otlp/otlpmetric/otlpmetricgrpc, exporters/otlp/otlpmetric/otlpmetrichttp, exporters/otlp/otlptrace/otlptracegrpc and exporters/otlp/otlptrace/otlptracehttp packages. (#4808)
Experimental exemplar exporting is added to the metric SDK.
See metric documentation for more information about this feature and how to enable it. (#4871)
ErrSchemaURLConflict is added to go.opentelemetry.io/otel/sdk/resource.
This error is returned when a merge of two Resources with different (non-empty) schema URL is attempted. (#4876)
Changed
The Merge and New functions in go.opentelemetry.io/otel/sdk/resource now returns a partial result if there is a schema URL merge conflict.
Instead of returning nil when two Resources with different (non-empty) schema URLs are merged the merged Resource, along with the new ErrSchemaURLConflict error, is returned.
It is up to the user to decide if they want to use the returned Resource or not.
It may have desired attributes overwritten or include stale semantic conventions. (#4876)
Fixed
Fix ContainerID resource detection on systemd when cgroup path has a colon. (#4449)
Fix go.opentelemetry.io/otel/sdk/metric to cache instruments to avoid leaking memory when the same instrument is created multiple times. (#4820)
Fix missing Mix and Max values for go.opentelemetry.io/otel/exporters/stdout/stdoutmetric by introducing MarshalText and MarshalJSON for the Extrema type in go.opentelemetry.io/sdk/metric/metricdata. (#4827)
[1.23.0-rc.1] 2024-01-18
This is a release candidate for the v1.23.0 release.
That release is expected to include the v1 release of the following modules:
See our versioning policy for more information about these stability guarantees.
Added
Add WithEndpointURL option to the exporters/otlp/otlpmetric/otlpmetricgrpc, exporters/otlp/otlpmetric/otlpmetrichttp, exporters/otlp/otlptrace/otlptracegrpc and exporters/otlp/otlptrace/otlptracehttp packages. (#4808)
Experimental exemplar exporting is added to the metric SDK.
See metric documentation for more information about this feature and how to enable it. (#4871)
ErrSchemaURLConflict is added to go.opentelemetry.io/otel/sdk/resource.
This error is returned when a merge of two Resources with different (non-empty) schema URL is attempted. (#4876)
Changed
The Merge and New functions in go.opentelemetry.io/otel/sdk/resource now returns a partial result if there is a schema URL merge conflict.
Instead of returning nil when two Resources with different (non-empty) schema URLs are merged the merged Resource, along with the new ErrSchemaURLConflict error, is returned.
It is up to the user to decide if they want to use the returned Resource or not.
It may have desired attributes overwritten or include stale semantic conventions. (#4876)
Fixed
Fix ContainerID resource detection on systemd when cgroup path has a colon. (#4449)
Fix go.opentelemetry.io/otel/sdk/metric to cache instruments to avoid leaking memory when the same instrument is created multiple times. (#4820)
Fix missing Mix and Max values for go.opentelemetry.io/otel/exporters/stdout/stdoutmetric by introducing MarshalText and MarshalJSON for the Extrema type in go.opentelemetry.io/sdk/metric/metricdata. (#4827)
[1.23.0-rc.1] 2024-01-18
This is a release candidate for the v1.23.0 release.
That release is expected to include the v1 release of the following modules:
Bumps the go-modules group with 9 updates:
1.0.3
1.0.4
1.3.0
1.4.1
0.27.0
0.28.0
0.45.0
0.48.0
1.19.0
1.23.0
1.19.0
1.23.0
1.19.0
1.23.0
0.17.0
0.18.0
1.61.0
1.61.1
Updates
github.com/felixge/httpsnoop
from 1.0.3 to 1.0.4Release notes
Sourced from github.com/felixge/httpsnoop's releases.
Commits
c5817c2
codegen: fix generated header comment (#25)661666c
Support (ignore) 1xx status codes. (#24)8b7a371
tests: refactor benchmarks to remove test server overhead (#20)dcf093d
chore: switch to github actions (#21)Updates
github.com/go-logr/logr
from 1.3.0 to 1.4.1Release notes
Sourced from github.com/go-logr/logr's releases.
Commits
dcdc3f2
slogr: fix unintended API break in v0.8.0 (#253)5d88f52
funcr: Add LogInfoLevel Option to skip logging level in the info log (#240)177005d
build(deps): bump actions/upload-artifact from 3.1.3 to 4.0.0e7f489a
build(deps): bump github/codeql-action from 2.22.9 to 3.22.11cf56c3b
build(deps): bump actions/setup-go from 4 to 52ad296e
build(deps): bump github/codeql-action from 2.22.8 to 2.22.9d55b4e2
Merge pull request #241 from thockin/master98ee9d9
Clean up slog testing and restore coverageb228ba8
Break examples to new file6432877
Add benchmarks for slogSinkUpdates
github.com/testcontainers/testcontainers-go
from 0.27.0 to 0.28.0Release notes
Sourced from github.com/testcontainers/testcontainers-go's releases.
... (truncated)
Commits
357cff8
chore: use new version (v0.28.0) in modules and examplesc906e65
chore: define proper execution order for container lifecycle hooks (#1922)50fc8e7
Added Consul module (#2194)1f628e2
fix: wait more time in test (#2211)4bf9515
chore(ci): do not fail fast main tests in different Go versions (#2210)48fc228
feat (postgres): support for creating and restoring Snapshots (#2199)54b1d8a
fix: apply volume options only to volumes (#2201)f012d34
redpanda/test: add admin client call (#2200)0e16af2
chore(deps): bump cloud.google.com/go/spanner from 1.55.0 to 1.56.0 in /modul...3562ef7
chore(deps): bump github.com/docker/docker from 25.0.1+incompatible to 25.0.2...Updates
go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp
from 0.45.0 to 0.48.0Release notes
Sourced from go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp's releases.
... (truncated)
Changelog
Sourced from go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp's changelog.
... (truncated)
Commits
087fdd4
Release v1.23.0/v0.48.0/v0.17.0/v0.3.0 (#4893)de64a47
implement cloud.{account.id,availability_zone,region} in AWS ECS detector (#4...144c933
feat(autoexport): change WithFallback options signatures (#4891)a1b4b4d
dependabot updates Sun Feb 4 18:15:18 UTC 2024 (#4890)b76d81c
otelhttp: client metrics (#4707)5047be2
Remove unused portions of the internal semconvutil (#4878)8437075
[otelgrpc] Do not panic for nil instruments (#4875)ef8063b
otelgrpc: Add peer attributes to spans generated by stats handlers (#4873)bfae9a3
build(deps): bump codecov/codecov-action from 3.1.4 to 3.1.5 (#4862)0facbff
Prometheus bridge: Add test for verify that start timestamps are working corr...Updates
go.opentelemetry.io/otel
from 1.19.0 to 1.23.0Release notes
Sourced from go.opentelemetry.io/otel's releases.
Changelog
Sourced from go.opentelemetry.io/otel's changelog.
... (truncated)
Commits
e3eb3f7
Release v1.23.0/v0.45.1 (#4885)eabcef4
Return merged Resource on schema conflict (#4876)2c7761d
Bump benchmark-action/github-action-benchmark from 1.19.2 to 1.19.3 (#4883)f4e1e04
Bump lycheeverse/lychee-action from 1.9.2 to 1.9.3 (#4882)569854e
sdk/metric/metricdata: Add MarshalJSON for Extrema (#4827)242d23a
Remove the Flush method from Exemplar (#4873)fecb92e
Add the experimental exemplar feature (#4871)d9d9507
stdouttrace: Refine example (#4872)bf1ae8c
[chore] Fix changelog entry for #4754 (#4874)8d3ae4c
fix: Fix stdouttrace/example_test to make the trace_id same. (#4855)Updates
go.opentelemetry.io/otel/metric
from 1.19.0 to 1.23.0Release notes
Sourced from go.opentelemetry.io/otel/metric's releases.
Changelog
Sourced from go.opentelemetry.io/otel/metric's changelog.
... (truncated)
Commits
e3eb3f7
Release v1.23.0/v0.45.1 (#4885)eabcef4
Return merged Resource on schema conflict (#4876)2c7761d
Bump benchmark-action/github-action-benchmark from 1.19.2 to 1.19.3 (#4883)f4e1e04
Bump lycheeverse/lychee-action from 1.9.2 to 1.9.3 (#4882)569854e
sdk/metric/metricdata: Add MarshalJSON for Extrema (#4827)242d23a
Remove the Flush method from Exemplar (#4873)fecb92e
Add the experimental exemplar feature (#4871)d9d9507
stdouttrace: Refine example (#4872)bf1ae8c
[chore] Fix changelog entry for #4754 (#4874)8d3ae4c
fix: Fix stdouttrace/example_test to make the trace_id same. (#4855)Updates
go.opentelemetry.io/otel/trace
from 1.19.0 to 1.23.0Release notes
Sourced from go.opentelemetry.io/otel/trace's releases.
Changelog
Sourced from go.opentelemetry.io/otel/trace's changelog.
... (truncated)
Commits
e3eb3f7
Release v1.23.0/v0.45.1 (#4885)eabcef4
Return merged Resource on schema conflict (#4876)2c7761d
Bump benchmark-action/github-action-benchmark from 1.19.2 to 1.19.3 (#4883)f4e1e04
Bump lycheeverse/lychee-action from 1.9.2 to 1.9.3 (#4882)569854e
sdk/metric/metricdata: Add MarshalJSON for Extrema (#4827)242d23a
Remove the Flush method from Exemplar (#4873)fecb92e
Add the experimental exemplar feature (#4871)d9d9507
stdouttrace: Refine example (#4872)bf1ae8c
[chore] Fix changelog entry for #4754 (#4874)8d3ae4c
fix: Fix stdouttrace/example_test to make the trace_id same. (#4855)Updates
golang.org/x/tools
from 0.17.0 to 0.18.0Commits
c5643e9
gopls/internal/server: fix two bugs related to dynamic configuration50b4f1b
gopls/internal/golang: close open filef0ef3c6
gopls: update x/telemetry dependency to fix crash8cf0a8e
gopls: record that v0.15 will be the last to support go1.18730dc3c
Looks like these dependencies are updatable in another way, so this is no longer needed.