All notable changes to OpenTelemetry Go Automatic Instrumentation are documented in this file.
The format is based on Keep a Changelog.
OpenTelemetry Go Automatic Instrumentation adheres to Semantic Versioning.
- Cache offsets for
google.golang.org/grpc1.77.0-dev. (#2820) - Cache offsets for
google.golang.org/grpc1.76.0. (#2899) - Cache offsets for
golang.org/x/net0.45.0. (#2905) - Cache offsets for Go
1.24.8. (#2905) - Cache offsets for Go
1.25.2. (#2905) - Cache offsets for
golang.org/x/net0.46.0. (#2915) - Cache offsets for Go
1.24.9. (#2920) - Cache offsets for Go
1.25.3. (#2920) - Cache offsets for
google.golang.org/grpc1.78.0-dev. (#2989) - Cache offsets for Go
1.24.10. (#3001) - Cache offsets for Go
1.25.4. (#3001) - Cache offsets for
golang.org/x/net0.47.0. (#3015) - Cache offsets for
google.golang.org/grpc1.77.0. (#3015) - Cache offsets for Go
1.24.11. (#3078) - Cache offsets for Go
1.25.5. (#3078) - Cache offsets for
go.opentelemetry.io/otelv1.39.0. (#3101) - Cache offsets for
golang.org/x/net0.48.0. (#3105) - Cache offsets for
google.golang.org/grpc1.79.0-dev. (#3122) - Cache offsets for
google.golang.org/grpc1.78.0. (#3165) - Cache offsets for
golang.org/x/net0.49.0. (#3198) - Cache offsets for
github.com/segmentio/kafka-go0.4.50. (#3213) - Cache offsets for Go
1.24.12. (#3213) - Cache offsets for Go
1.25.6. (#3213) - Cache offsets for
google.golang.org/grpc1.80.0-dev. (#3232) - Cache offsets for
go.opentelemetry.io/otelv1.40.0. (#3268) - Cache offsets for Go
1.24.13. (#3280) - Cache offsets for Go
1.25.7. (#3280) - Cache offsets for
golang.org/x/net0.50.0. (#3297) - Cache offsets for
google.golang.org/grpc1.79.0. (#3303) - Cache offsets for Go
1.26.0. (#3303) - Cache offsets for
google.golang.org/grpc1.79.1. (#3319) - Cache offsets for
golang.org/x/net0.51.0. (#3351) - Cache offsets for
go.opentelemetry.io/otelv1.41.0. (#3361) - Cache offsets for
go.opentelemetry.io/otelv1.42.0. (#3365) - Cache offsets for
golang.org/x/net0.52.0. (#3365) - Cache offsets for
google.golang.org/grpc1.79.2. (#3365) - Cache offsets for
google.golang.org/grpc1.80.0-dev. (#3365) - Cache offsets for
google.golang.org/grpc1.81.0-dev. (#3365) - Cache offsets for Go
1.25.8. (#3365) - Cache offsets for Go
1.26.0. (#3365) - Cache offsets for Go
1.26.1. (#3365) - Cache offsets for
google.golang.org/grpc1.79.3. (#3402) - Cache offsets for
google.golang.org/grpc1.80.0. (#3402) - Cache offsets for
go.opentelemetry.io/otelv1.43.0. (#3430)
- Build support for Go 1.23 has been removed. Use Go >= 1.24 to develop and build the project. (#2799)
go.opentelemetry.io/auto/sdk v1.2.1 - 2025-09-15
- Fix
uint32bounding on 32 bit architectures in thego.opentelemetry.io/auto/sdkmodule. (#2810) - Fix
go.opentelemetry.io/auto/examples/rolldicebuild. (#2894)
v0.23.0/v1.2.0 - 2025-09-10
Note
This is the last release version that will support building the auto-instrumentation CLI using Go 1.23. The next release will require development to be done using Go >= 1.24.
- Cache offsets for
golang.org/x/net0.42.0. (#2503) - Cache offsets for
google.golang.org/grpc1.74.2. (#2546) - Cache offsets for
google.golang.org/grpc1.76.0-dev. (#2596) - Allow configuration of the resource using a resource.Detector. (#2598)
- The
WithResourceDetectorfunction is added togo.opentelemetry.io/auto/pipeline/otelsdk. - The
WithEnvfunction is updated to parse theOTEL_RESOURCE_DETECTORenvironment variable. Values are expected to be a comma-separated list of resource detector IDs registered with theautodetectpackage.
- The
- Cache offsets for Go
1.23.12. (#2603) - Cache offsets for Go
1.24.6. (#2603) - Cache offsets for
golang.org/x/net0.43.0. (#2615) - Cache offsets for Go
1.25.0. (#2651) - Cache offsets for
google.golang.org/grpc1.75.0. (#2686) - Cache offsets for
github.com/segmentio/kafka-go0.4.49. (#2699) - Cache offsets for
go.opentelemetry.io/otelv1.38.0. (#2726) - Cache offsets for Go
1.24.7. (#2747) - Cache offsets for Go
1.25.1. (#2747) - Cache offsets for
golang.org/x/net0.44.0. (#2773) - Cache offsets for
google.golang.org/grpc1.72.3. (#2787) - Cache offsets for
google.golang.org/grpc1.73.1. (#2787) - Cache offsets for
google.golang.org/grpc1.74.3. (#2787) - Cache offsets for
google.golang.org/grpc1.75.1. (#2787)
- Upgrade
go.opentelemetry.io/autosemconv tov1.37.0. (#2763) - Upgrade
go.opentelemetry.io/auto/sdksemconv tov1.37.0. (#2763)
- Add
telemetry.distro.versionresource attribute to theotelsdkhandler. (#2383) active_spans_by_span_ptreBPF map used in the traceglobal probe changed to LRU. (#2509)
v0.22.1 - 2025-07-01
- Cache offsets for
google.golang.org/grpc1.71.3. (#2374) - Cache offsets for
google.golang.org/grpc1.72.2. (#2374) - Cache offsets for
golang.org/x/net0.41.0. (#2402) - Cache offsets for
google.golang.org/grpc1.73.0. (#2402) - Cache offsets for Go
1.23.10. (#2402) - Cache offsets for Go
1.24.4. (#2402) - Cache offsets for
go.opentelemetry.io/otelv1.37.0. (#2450) - Cache offsets for
google.golang.org/grpc1.75.0-dev. (#2450)
- Build go binaries using the provided
TARGETARCHof the Dockerfile. This fixes the bug where images for alternate architectures (e.g.arm64) were built using theamd64architecture. (#2411) - Do not fail run when a module has a version of
(devel). (#2437)
v0.22.0 - 2025-05-23
- Cache offsets for
google.golang.org/grpc1.72.0-dev. (#1849) - The
go.opentelemtry.io/auto/pipelinepackage is added. This package contains interface definitions for types that want to handle the telemetry generated by auto-instrumentation. (#1859) - The
go.opentelemtry.io/auto/pipeline/otelsdkpackage is added. This package a default handler that uses the OpenTelemetry Go SDK to handle telemetry generated by auto-instrumentation. (#1859) - The
WithHandlerfunction is added to configureInstrumentationingo.opentelemtry.io/autowith the desired handler implementation. (#1859) - The auto binary (built from
auto/cli) can now be passed the target process PID directly using the-target-pidCLI option. (#1890) - The auto binary (built from
auto/cli) can now be passed the path of the target process executable directly using the-target-exeCLI option. (#1890) - The auto binary (built from
auto/cli) now resolves the target PID from the environment variable"OTEL_GO_AUTO_TARGET_PID"if no target options are passed. (#1890) - The auto binary (built from
auto/cli) will now only resolve the target process executable from the environment variable"OTEL_GO_AUTO_TARGET_EXE"if no target options are passed and"OTEL_GO_AUTO_TARGET_PID"is not set. (#1890) - Cache offsets for
golang.org/x/net0.36.0. (#1940) - Cache offsets for
google.golang.org/grpc1.71.0. (#1940) - Cache offsets for Go
1.23.7. (#1940) - Cache offsets for Go
1.24.1. (#1940) - Cache offsets for
go.opentelemetry.io/otelv1.35.0. (#1948) - Cache offsets for
golang.org/x/net0.37.0. (#1948) - Cache offsets for
golang.org/x/net0.38.0. (#2063) - Cache offsets for
google.golang.org/grpc1.71.1. (#2078) - Cache offsets for Go
1.23.8. (#2081) - Cache offsets for Go
1.24.2. (#2081) - Cache offsets for
google.golang.org/grpc1.73.0-dev. (#2091) - Cache offsets for
golang.org/x/net0.39.0. (#2107) - The new
Multiplexertype is added togo.opentelemetry.io/auto/pipeline/otelsdk. This type is used to support multiple process instrumentation using the same telemetry pipeline. (#2016) - Cache offsets for
google.golang.org/grpc1.72.0. (#2190) - Cache offsets for
golang.org/x/net0.40.0. (#2281) - Cache offsets for Go
1.23.9. (#2292) - Cache offsets for Go
1.24.3. (#2292) - Cache offsets for
github.com/segmentio/kafka-go0.4.48. (#2319) - Cache offsets for
google.golang.org/grpc1.71.2. (#2319) - Cache offsets for
google.golang.org/grpc1.72.1. (#2319) - Cache offsets for
google.golang.org/grpc1.74.0-dev. (#2337) - Cache offsets for
go.opentelemetry.io/otelv1.36.0. (#2352)
- The
WithEnvfunction no longer parsesOTEL_GO_AUTO_GLOBAL. This is included by default. (#1859) - The
WithEnvfunction no longer parsesOTEL_SERVICE_NAMEorOTEL_TRACES_EXPORTER. Use theHandlerfromgo.opentelemtry.io/auto/pipeline/otelsdkwith its ownWithEnvto replace functionality. (#1859) - Instrument spans created with the OpenTelemetry trace API from an empty context. (#2001)
- Upgrade OpenTelemetry semantic conventions to
v1.30.0. (#2032) - Modify how the pattern is fetch from
net/http.Request. Now it usesRequest.Patterninstead ofRequest.pat.strunless using go1.22, which continue usingRequest.pat.str. (#2090)
- Build support for Go 1.22 has been removed. Use Go >= 1.23 to develop and build the project. (#1841)
- The
WithGlobalfunction is removed fromgo.opentelemtry.io/auto. This option is on by default. (#1859) - The
WithServiceNamefunction is removed fromgo.opentelemtry.io/auto. UseWithServiceNameingo.opentelemtry.io/auto/pipeline/otelsdkalong withWithHandlerto replace functionality. (#1859) - The
WithTraceExporterfunction is removed fromgo.opentelemtry.io/auto. UseWithTraceExporteringo.opentelemtry.io/auto/pipeline/otelsdkalong withWithHandlerto replace functionality. (#1859) - The
WithResourceAttributesfunction is removed fromgo.opentelemtry.io/auto. UseWithResourceAttributesingo.opentelemtry.io/auto/pipeline/otelsdkalong withWithHandlerto replace functionality. (#1859) - Resolution of the environment variable
"OTEL_GO_AUTO_TARGET_EXE"has been removed fromWithEnv. Note, the built binary (auto/cli) still supports resolution and use of this value. If using theautopackage directly, you will need to resolve this value yourself and pass the discovered process PID usingWithPID. (#1890) - The
WithTargetfunction is removed. Theautopackage no longer supports process discovery (note: the built binary (auto/cli) still supports process discovery). Once a target process has been identified, useWithPIDto configureInstrumentationinstead. (#1890)
- Fix spans parsing from eBPF for the legacy (go version < 1.24 otel-go < 1.33) otel global instrumentation. (#1960)
- The
process.runtime.versionresource attribute is now the exact value returned fromdebugto match what OpenTelemetry semantic conventions recommend. (#1985) - Stop adding
process.runtime.descriptiontoResourceto follow OpenTelemetry semantic conventions. (#1986) - Reset Kafka producer span underlying memory before each span. (#1937)
- Stop pinning collector image in e2e tests. (#2072)
- Fallback to avoid context propagation in
kafka-goinstrumentation if the kernel does not supportbpf_probe_write_user. (#2105) - Make sure Go strings being read from eBPF are null terminated. (#1936)
- Handle dynamic goroutine stack resizes in the
autosdkandotel/traceprobes. (#2263)
v0.21.0 - 2025-02-18
Warning
The net/http instrumentation support for versions < 1.19 has been dropped.
Warning
The database/sql instrumentation support for versions < 1.19 has been dropped.
Note
This is the last release version that will support building the auto-instrumentation CLI using Go 1.22. The next release will require development to be done using Go >= 1.23.
- Update instrumentation for
net/httpto support Go1.24SwissMap. (#1636) - Cache offsets for Go
1.22.12. (#1743) - Cache offsets for Go
1.23.6. (#1743) - Cache offsets for
golang.org/x/net0.35.0. (#1783) - Cache offsets for Go
1.24.0. (#1795, #1798)
- Unused support for instrumentation of Go < 1.19 has been dropped. (#1815)
v0.20.0 - 2025-01-29
- Support
SELECT,INSERT,UPDATE, andDELETEfor database span names anddb.operation.nameattribute. (#1253) - Support the full tracing API with the
otelglobalprobe. (#1405) - Support
go.opentelemetry.io/otel@v1.33.0. (#1417) - Support
google.golang.org/grpc1.69.0. (#1417) - Update
google.golang.org/grpcprobe to work with versions>= 1.69.0. (#1431) - Support
google.golang.org/grpc1.67.3. (#1452) - Support
google.golang.org/grpc1.68.2. (#1462) - Support
google.golang.org/grpc1.69.2. (#1467) - Support
google.golang.org/grpc1.71.0-dev. (#1467) - Support
golang.org/x/net0.33.0. (#1471) - Use
OTEL_GO_AUTO_PARSE_DB_STATEMENTenvironment variable in thehttpPlusdbdemo. (#1523) - Include gRPC error message for client spans. (#1528)
- Support
golang.org/x/net0.34.0. (#1552) - Support
google.golang.org/grpc1.69.4. (#1590) - Support
go.opentelemetry.io/otel@v1.34.0. (#1638) - Support Go
1.22.11. (#1638) - Support Go
1.23.5. (#1638) - Support
google.golang.org/grpc1.70.0. (#1682)
- Update the
rolldiceexample to better show the functionality of the project. (#1566) - Preemptively drop support for the
traceglobalprobe whenGo >= 1.24is used. (#1573) - Support non-cached offsets. If the target process uses an unknown version of an instrumented package but has DAWRF data included, the offset is now found on startup instead of returning an error. (#1593)
- Respect
OTEL_EXPORTER_OTLP_PROTOCOLwhenOTEL_TRACES_EXPORTERis not set. (#1572) - Support stripped binaries, including those built with CGO libraries. (#1641)
v0.19.0-alpha - 2024-12-05
- Support span attribute limits to
go.opentelemtry.io/auto/sdk. (#1315) - Support span link limits to
go.opentelemtry.io/auto/sdk. (#1320) - Support span event limits to
go.opentelemtry.io/auto/sdk. (#1324) - Support attribute value limits to
go.opentelemtry.io/auto/sdk. (#1325) - Support Go
1.22.10. (#1367) - Support Go
1.23.4. (#1367) - Support
golang.org/x/net0.32.0. (#1382) - Support
google.golang.org/grpc1.67.2. (#1382) - Support
google.golang.org/grpc1.68.1. (#1382) - Support
google.golang.org/grpc1.70.0-dev. (#1382)
- The parsing of the tracers map for
go.opentelemetry.io/otel@v1.32.0is fixed. (#1319)
v0.18.0-alpha - 2024-11-20
- Split the functionality of
Instrumentation.RuntoInstrumentation.LoadandInstrumentation.Run.Loadwill report any errors in the loading and attaching phase of the probes. (#1245)
- Include
server.addressandserver.portin gRPC spans (>=v1.60.0). (#1242) - Support Go standard libraries for 1.22.9 and 1.23.3. (#1250)
- Support
google.golang.org/grpc1.68.0. (#1251) - Support
golang.org/x/net0.31.0. (#1254) - Support
go.opentelemetry.io/otel@v1.32.0. (#1302)
- Don't include
db.query.textattribute indatabase/sqlif the query string is empty or not collected. (#1246) - Handle a
ConfigProviderwhich doesn't provide a sampling config in the initial configuration by applying the default sampler. (#1292)
- The deprecated
go.opentelemetry.io/auto/sdk/telemetrypackage is removed. (#1252) - The deprecated
go.opentelemetry.io/auto/sdk/telemetry/testmodule is removed. (#1252) - Remove the
WithLoadedIndicatorInstrumentationOptionsince theInstrumentation.Loadwill indicate whether the probes are loaded in a synchronous way. (#1245)
v0.17.0-alpha - 2024-11-05
- The SDK provided in
go.opentelemtry.io/auto/sdknow defaults to No-Op behavior for unimplemented methods of the OpenTelemetry API. This is changed from causing a compilation error for unimplemented methods. (#1230) - The
GetTracerProviderfunction ingo.opentelemtry.io/auto/sdkis renamed toTracerProvider. (#1231)
- Sporadic shutdown deadlock. (#1220)
- Only support status codes for versions of
google.golang.org/grpc>=1.40. (#1235)
- The
go.opentelemetry.io/auto/sdk/telemetrypackage is deprecated. This package will be removed in the next release. (#1238) - The
go.opentelemetry.io/auto/sdk/telemetry/testmodule is deprecated. This module will be removed in the next release. (#1238)
v0.16.0-alpha - 2024-10-22
- Support
golang.org/x/netv0.30.0. (#1149) - Support
google.golang.org/grpc1.65.1. (#1174) - Support
go.opentelemetry.io/otel@v1.31.0. (#1178) - Support
google.golang.org/grpc1.69.0-dev. (#1203) - Implement traceID ratio and parent-based samplers. (#1150)
- The
go.opentelemetry.io/auto/sdkmodule. This module is used directly when you want to explicilty use auto-instrumentation to process OTel API telemetry. It is also provided so the default OTel global API will use this when auto-instrumentation is loaded (WIP). (#1210)
- The
"golang.org/x/net/http2".FrameHeader.StreamIDoffset for version0.8.0is corrected. (#1208) - The
"golang.org/x/net/http2".MetaHeadersFrame.Fieldsoffset for version0.8.0is corrected. (#1208)
v0.15.0-alpha - 2024-10-01
- Support Go
v1.21.13. (#988) - Support Go
v1.22.6. (#988) - Support
golang.org/x/netv0.28.0. (#988) - Support
google.golang.org/grpc1.67.0-dev. (#1007) - Support Go
1.23.0. (#1007) - Introduce
config.Provideras an option to set the initial configuration and update it in runtime. (#1010) - Support
go.opentelemetry.io/otel@v1.29.0. (#1032) - Support
google.golang.org/grpc1.66.0. (#1046) Samplerinterface that can be passed toInstrumentationvia the newWithSampleroption. This is wireframe configuration, it currently has not effect. It will be used to allows customization of what sampler is used by theInstrumentation. Implementation, of this feature is expected in the next release. (#982)- The
OTEL_TRACES_SAMPLERandOTEL_TRACES_SAMPLER_ARGenvironment variables are now supported when theWithEnvoption is used. (#982) - Support
golang.org/x/netv0.29.0. (#1051) - Support Go
1.22.7. (#1051) - Support Go
1.23.1. (#1051) - Log version information in the CLI. (#1077)
- Support
google.golang.org/grpc1.66.1. (#1078) - Add gRPC status code attribute for client spans (
rpc.grpc.status_code). (#1044) - Support
google.golang.org/grpc1.68.0-dev. (#1044) - Support
go.opentelemetry.io/otel@v1.30.0. (#1044) - The
WithLoggerInstrumentationOptionis added as a replacement forWithLogLevel. Anslog.Loggercan now be configured by the user any way they want and then passed to theInstrumentationfor its logging with this option. (#1080) - Support
google.golang.org/grpc1.66.2. (#1083) - Support
google.golang.org/grpc1.67.0. (#1116) - Support
google.golang.org/grpc1.66.3. (#1143) - Support
google.golang.org/grpc1.67.1. (#1143) - Support Go
1.22.8. (#1143) - Support Go
1.23.2. (#1143) - Add gRPC status code attribute for server spans (
rpc.grpc.status_code). (#1127)
- The
WithSampleroption function now accepts the newSamplerinterface instead oftrace.Sampler. (#982)
WithLogLevelis removed. UseWithLoggerinstead. (#1080)- The unused
LogLevelDebugconstant is removed. (#1080) - The unused
LogLevelInfoconstant is removed. (#1080) - The unused
LogLevelWarnconstant is removed. (#1080) - The unused
LogLevelErrorconstant is removed. (#1080) - The unused
LogLeveltype is removed. (#1080) - The unused
ParseLogLevelfunction is removed. (#1080) - Drop agent build support for Go 1.21. (#1115)
v0.14.0-alpha - 2024-07-15
- Add support to log level through command line flag. (#842)
- The
WithLogLevelfunction andLogLeveltype are added to set the log level forInstrumentation. (#842) - The
otelglobalprobe now collects the user provided tracer name, version and schemaURL. (#844) - Add
codespellmake target. (#863) - Initial support for
trace-flags. (#868) - Support
google.golang.org/grpc1.66.0-dev. (#872) - Add telemetry distro name & version resource attributes. (#897)
- Support
google.golang.org/grpc1.65.0. (#904) - Support Go
v1.21.12. (#905) - Support Go
v1.22.5. (#905) - Support
go.opentelemetry.io/otel@v1.28.0. (#905) - Support
google.golang.org/grpc1.63.3. (#916) - Support
google.golang.org/grpc1.64.1. (#916) - Support
golang.org/x/netv0.27.0. (#917)
- Upgrade semconv from
v1.24.0tov1.26.0ingithub.com/segmentio/kafka-goinstrumentation. (#909)- The
messaging.operationattribute key is renamed tomessaging.operation.type. - The
messaging.kafka.destination.partitionkey is renamed tomessaging.destination.partition.id
- The
- Upgrade semconv from
v1.21.0tov1.26.0indatabase/sqlinstrumentation. (#911)- The
db.statementattribute key is renamed todb.query.text.
- The
- Upgrade semconv from
v1.24.0tov1.26.0ingoogle.golang.org/grpcinstrumentation. (#912)- The
net.peer.nameattribute key in client instrumentation is renamed toserver.address.
- The
- Upgrade semconv to
v1.26.0innet/httpinstrumentation. (#913) - Upgrade
go.opentelemetry.io/autosemconv tov1.26.0. (#914)
- The HTTP client now uses the
Hostfield from the URL if theRequest.Hostis not present. (#888)
v0.13.0-alpha - 2024-06-04
github.com/segmentio/kafka-goinstrumentation. (#709)- Support
go.opentelemetry.io/otel@v1.26.0. (#796) - Support HTTP server path template added in Go version 1.22.
- The
http.routeattribute is included and the span name updated to use this information. (#740) - Support
golang.org/x/netv0.25.0. (#821) - Support Go
v1.21.10. (#824) - Support Go
v1.22.3. (#824) - Support
google.golang.org/grpc1.65.0-dev. (#827) - Support
google.golang.org/grpc1.64.0. (#843) WithLoadedIndicatorInstrumentationOptionto configure an Instrumentation to notify the caller once all the eBPF probes are loaded. (#848)- Add env var equivalent to the WithGlobal InstrumentationOption. (#849)
- Support
go.opentelemetry.io/otel@v1.27.0. (#850) - Support
golang.org/x/netv0.26.0. (#871) - Support Go
v1.21.11. (#871) - Support Go
v1.22.4. (#871)
- Change HTTP client span name to
{http.request.method}. (#775) - Don't set empty URL path in HTTP client probe. (#810)
- Don't fail HTTP client probe attribute resolution on empty URL path. (#810)
- Extract
process.runtime.versionandprocess.runtime.namefrom instrumented process. (#811) - Support Go versions from apps defining GOEXPERIMENT. (#813)
- Update
net/httpinstrumentation to comply with semantic conventions v1.25.0. (#790) - Update existing 3rd party licenses. (#864)
v0.12.0-alpha - 2024-04-10
- Support
golang.org/x/net/http2@v0.23.0. (#744) - Support
google.golang.org/grpc@v1.61.2. (#744) - Support
google.golang.org/grpc@v1.62.2. (#744) - Support
google.golang.org/grpc@v1.63.0. (#744) - Support
google.golang.org/grpc@v1.63.1. (#761) - Support
google.golang.org/grpc@v1.63.2. (#761) - Support Go
v1.21.9. (#744) - Support Go
v1.22.2. (#744) - Support
golang.org/x/net/http2@v0.24.0. (#746) - Support
go.opentelemetry.io/otel@v1.25.0. (#748) - Update project Go version used to build to 1.21 (#747)
- Handle Ctrl-C signal while searching for the target PID (#731)
- Pass PID to
UprobeOptions(#742) - Remove Gin duplicate probe (#780)
v0.11.0-alpha - 2024-03-26
- Test build using Go 1.22. (#672)
- Base Dockerfile and build caching (#683)
- Add
server.address,server.portandnetwork.protocol.versionto HTTP client spans (#696) - Update http server attributes to latest semantic conventions (#708)
- Don't use external memory for http client header injection (#705)
- Don't call
manager.Close()whenAnalyze()fails. (#638) - Close
procfile when done discovering PID. (#649) - Use
debugpackages to parse Go and modules' versions. (#653) - Clean up warn in otelglobal
SetStatus()when grabbing the status code. (#675) - Reset
procoffset after a failed iteration. (#681) - Avoid using runtime.NumCPU to get the number of CPUs on the system before remote mmap (#680)
- Cleanup eBPF maps only when we stop using the memory (#682)
- Fix start offset calculation in mmaped memory area (#738)
v0.10.1-alpha - 2024-01-10
- Support version
v0.20.0ofgolang.org/x/net. (#587) - Support version
v1.20.13andv1.21.6of Go. (#589) - Add support for manual instrumentation with Span
SetName. (#590) - Add support for manual instrumentation with Span
SetStatus(#591])
- Log any failures to close running probes. (#586)
- Log explanatory error message on Linux kernel lockdown (#290)
- (otelglobal) Fixed case where multiple span.SetAttributes() calls would overwrite existing attributes (#634)
v0.10.0-alpha - 2024-01-03
- Add
net.host.name,net.protocol.name,net.peer.name, andnet.peer.portattributes to HTTP server spans. (#470 - Support version
v1.60.1ofgoogle.golang.org/grpc. (#568)
- Correct the target probe argument positions for the
v1.60.0and greater versions of thegoogle.golang.org/grpcserver instrumentation. (#574, #576) - Do not instrument the OpenTelemetry default global implementation if the user has already set a delegate. (#569)
v0.9.0-alpha - 2023-12-14
- The CLI flag
global-implis added. This flag, when used, enables the instrumentation of the OpenTelemetry default global implementation (https://pkg.go.dev/go.opentelemetry.io/otel). This means that all trace telemetry from this implementation that would normally be dropped will instead be recorded with the auto-instrumentation pipeline. (#523) - Add
WithResourceAttributesInstrumentationOptionto configureInstrumentationto add additional resource attributes. (#522) - Support versions
v0.18.0andv0.19.0ofgolang.org/x/net. (#524) - Add the status code to HTTP client instrumentation. (#527)
- Support versions
v1.20.12,v1.21.4, andv1.21.5of Go standard library. (#535) - Support version
v1.60.0ofgoogle.golang.org/grpc. (#555)
- The instrumentation scope name for the
database/sqlinstrumentation is nowgo.opentelemtry.io/auto/database/sql. (#507) - The instrumentation scope name for the
gininstrumentation is nowgo.opentelemtry.io/auto/github.com/gin-gonic/gin. (#507) - The instrumentation scope name for the
google.golang.org/grpc/clientinstrumentation is nowgo.opentelemtry.io/auto/google.golang.org/grpc. (#507) - The instrumentation scope name for the
google.golang.org/grpc/serverinstrumentation is nowgo.opentelemtry.io/auto/google.golang.org/grpc. (#507) - The instrumentation scope name for the
net/http/clientinstrumentation is nowgo.opentelemtry.io/auto/net/http. (#507) - The instrumentation scope name for the
net/http/serverinstrumentation is nowgo.opentelemtry.io/auto/net/http. (#507) - The instrumentation for
client.Dowas changed to instrumentation forTransport.roundTrip. (#529)
- Support commit hash version for dependencies. If a dependency falls within a known version range used by instrumentation, and its offset structure has not changed, instrumentation will default to the known offset value instead of failing to run. (#503)
v0.8.0-alpha - 2023-11-14
- Add the
WithEnvInstrumentationOptionto configureInstrumentationto parse the environment. TheInstrumentationwill no longer by default parse the environment. This option needs to be used to enable environment parsing, and the order it is passed influences the environment precedence. All options passed before this one will be overridden if there are conflicts, and those passed after will override the environment. (#417) - Add the
WithTraceExporterInstrumentationOptionto configure the traceSpanExporterused by anInstrumentation. (#426) - Add HTTP status code attribute to
net/httpserver instrumentation. (#428) - The instrumentation scope now includes the version of the auto-instrumentation project. (#442)
- Add a new
WithSamplermethod allowing end-users to provide their own implementation of OpenTelemetry sampler directly through the package API. (#468). - Add uprobes to
execDCin order to instrument SQL DML. (#475)
- Documentation no longer says that
SYS_PTRACEcapability is needed. (#388) - The
NewInstrumentationno longer parses environment variables by default. Use the newWithEnvoption to enable environment parsing. (#417) NewInstrumentationnow requires acontext.Contextas its first argument. This context is used in the instantiation of exporters. (#426)Instrumentationnow uses an OTLP over HTTP/protobuf exporter (changed from gRPC/protobuf). (#426)
- Parse Go versions that contain
GOEXPERIMENTsuffixes. (#389) - Include the schema URL for the semantic convention used in the exported resource. (#426)
- Support Go module
replacedirectives for thegolang.org/x/netwithin thegoogle.golang.org/grpcserver instrumentation. (#450)
- The deprecated
go.opentelemetry.io/auto/examples/rolldicemodule is removed. (#423)
v0.7.0-alpha - 2023-10-15
- Add
WithServiceNameconfig option for instrumentation. (#353) - Add
WithPIDconfig option for instrumentation. (#355)
- Fix bug in the
net/httpserver instrumentation which always created a new span context. (#266) - Fix runtime panic if OTEL_GO_AUTO_TARGET_EXE is not set. (#339)
- Improve eBPF context propagation stability (#368)
- The
go.opentelemetry.io/auto/examples/rolldicemodule is deprecated. It will be moved into thego.opentelemetry.io/auto/examplesmodule in the following release. (#304)
- The deprecated
go.opentelemetry.io/auto/offsets-trackermodule is removed. (#302) - The deprecated
go.opentelemetry.io/auto/pkg/instrumentors/bpf/github.com/gorilla/muxpackage is removed. (#302) - The deprecated
go.opentelemetry.io/auto/test/e2e/gorillamuxmodule is removed. (#302) - The deprecated
go.opentelemetry.io/auto/pkg/injectpackage is removed. (#302) - The deprecated
go.opentelemetry.io/auto/pkg/errorspackage is removed. (#302) - The deprecated
go.opentelemetry.io/auto/pkg/processpackage is removed. (#302) - The deprecated
go.opentelemetry.io/auto/pkg/process/ptracepackage is removed. (#302) - The deprecated
go.opentelemetry.io/auto/pkg/opentelemetrypackage is removed. (#302) - The deprecated
go.opentelemetry.io/auto/pkg/instrumentors/bpf/net/http/clientpackage is removed. (#302) - The deprecated
go.opentelemetry.io/auto/pkg/instrumentors/bpf/net/http/serverpackage is removed. (#302) - The deprecated
go.opentelemetry.io/auto/pkg/instrumentors/bpf/github.com/gin-gonic/ginpackage is removed. (#302) - The deprecated
go.opentelemetry.io/auto/pkg/instrumentors/bpf/github.com/gorilla/muxpackage is removed. (#302) - The deprecated
go.opentelemetry.io/auto/pkg/instrumentors/bpf/google/golang/org/grpcpackage is removed. (#302) - The deprecated
go.opentelemetry.io/auto/pkg/instrumentors/bpf/google/golang/org/grpc/serverpackage is removed. (#302) - The deprecated
go.opentelemetry.io/auto/pkg/instrumentors/utilspackage is removed. (#302) - The deprecated
go.opentelemetry.io/auto/pkg/instrumentors/contextpackage is removed. (#302) - The deprecated
go.opentelemetry.io/auto/pkg/instrumentorspackage is removed. (#302) - The deprecated
go.opentelemetry.io/auto/pkg/instrumentors/allocatorpackage is removed. (#302) - The deprecated
go.opentelemetry.io/auto/pkg/instrumentors/bpffspackage is removed. (#302) - The deprecated
go.opentelemetry.io/auto/pkg/instrumentors/eventspackage is removed. (#302) - The deprecated
go.opentelemetry.io/auto/pkg/logpackage is removed. (#302) - The deprecated
go.opentelemetry.io/auto/test/e2e/ginmodule is removed. (#302) - The deprecated
go.opentelemetry.io/auto/test/e2e/gorillamuxmodule is removed. (#302) - The deprecated
go.opentelemetry.io/auto/test/e2e/nethttpmodule is removed. (#302) - The deprecated instrumentation support for
github.com/gorilla/muxis removed. (#303)
v0.3.0-alpha - 2023-09-12
- Add database/sql instrumentation (#240)
- Support Go 1.21. (#264)
- Add
Instrumentationtogo.opentelemetry.io/autoto manage and run the auto-instrumentation provided by the project. (#284)- Use the
NewInstrumentationto create aInstrumentationwith the desired configuration by passing zero or moreInstrumentationOptions. - Use
WithTargetwhen creating anInstrumentationto specify its target binary.
- Use the
- The function signature of
"go.opentelemetry.io/auto/offsets-tracker/downloader".DownloadBinaryhas changed. It now has an additional flag indicating whether it'll build a dummy app for Go stdlib packages or not. (#256) - The function signature of
"go.opentelemetry.io/auto/offsets-tracker/target".Newhas changed. It now accepts a flag to determine if the returnedDatais from the Go stdlib or not. (#256) - Use UPROBE_RETURN to declare the common uprobe return logic (finding the corresponding context, setting up end time, and sending the event via perf buffer) (#257)
- BASE_SPAN_PROPERTIES as common fields (start time, end time, SpanContext and ParentSpanContext) for all instrumentations events (consistent between C and Go structs). (#257)
- Header guards in eBPF code. (#257)
- Fix context propagation across different goroutines. (#118)
- The offset tracker can once again build binaries for the Go stdlib. (#256)
- The
go.opentelemetry.io/auto/offsets-trackermodule is deprecated. It will be removed in the following release. (#281) - The
go.opentelemetry.io/auto/pkg/instrumentors/bpf/github.com/gorilla/muxpackage is deprecated. It will be removed in the following release. (#262) - The
go.opentelemetry.io/auto/test/e2e/gorillamuxmodule is deprecated. It will be removed in the following release. (#262) - The
go.opentelemetry.io/auto/pkg/injectpackage is deprecated. It will be removed in the following release. (#282) - The
go.opentelemetry.io/auto/pkg/errorspackage is deprecated. It will be removed in the following release. (#282) - The
go.opentelemetry.io/auto/pkg/processpackage is deprecated. It will be removed in the following release. (#282) - The
go.opentelemetry.io/auto/pkg/process/ptracepackage is deprecated. It will be removed in the following release. (#282) - The
go.opentelemetry.io/auto/pkg/opentelemetrypackage is deprecated. It will be removed in the following release. (#282) - The
go.opentelemetry.io/auto/pkg/instrumentors/bpf/net/http/clientpackage is deprecated. It will be removed in the following release. (#282) - The
go.opentelemetry.io/auto/pkg/instrumentors/bpf/net/http/serverpackage is deprecated. It will be removed in the following release. (#282) - The
go.opentelemetry.io/auto/pkg/instrumentors/bpf/github.com/gin-gonic/ginpackage is deprecated. It will be removed in the following release. (#282) - The
go.opentelemetry.io/auto/pkg/instrumentors/bpf/github.com/gorilla/muxpackage is deprecated. It will be removed in the following release. (#282) - The
go.opentelemetry.io/auto/pkg/instrumentors/bpf/google/golang/org/grpcpackage is deprecated. It will be removed in the following release. (#282) - The
go.opentelemetry.io/auto/pkg/instrumentors/bpf/google/golang/org/grpc/serverpackage is deprecated. It will be removed in the following release. (#282) - The
go.opentelemetry.io/auto/pkg/instrumentors/utilspackage is deprecated. It will be removed in the following release. (#282) - The
go.opentelemetry.io/auto/pkg/instrumentors/contextpackage is deprecated. It will be removed in the following release. (#282) - The
go.opentelemetry.io/auto/pkg/instrumentorspackage is deprecated. It will be removed in the following release. (#282) - The
go.opentelemetry.io/auto/pkg/instrumentors/allocatorpackage is deprecated. It will be removed in the following release. (#282) - The
go.opentelemetry.io/auto/pkg/instrumentors/bpffspackage is deprecated. It will be removed in the following release. (#282) - The
go.opentelemetry.io/auto/pkg/instrumentors/eventspackage is deprecated. It will be removed in the following release. (#282) - The
go.opentelemetry.io/auto/pkg/logpackage is deprecated. It will be removed in the following release. (#282) - The
go.opentelemetry.io/auto/test/e2e/ginmodule is deprecated. It will be removed in the following release. (#282) - The
go.opentelemetry.io/auto/test/e2e/gorillamuxmodule is deprecated. It will be removed in the following release. (#282) - The
go.opentelemetry.io/auto/test/e2e/nethttpmodule is deprecated. It will be removed in the following release. (#282)
v0.2.2-alpha - 2023-07-12
- The
net/httpclient instrumentor. (#91) - Context propagation to the
net/httpserver instrumentation. (#92) - Simplified example of an HTTP service in
go.opentelemtry.io/auto/examples/rolldice. (#195)
- Upgrade OpenTelemetry semantic conventions to v1.18.0. (#162)
- Remove the HTTP path from span names in
net/http,gin-gonic/gin, andgorilla/muxinstrumentations. (#161) - Update generated offsets. (#186)
- Reduce Docker image size by using different base image. (#182)
- Support for multiple processes in BPF FS. (#211)
v0.2.1-alpha - 2023-05-15
- Fix gRPC instrumentation memory access issue on newer kernels. (#150)
- Only pull docker image if not present for the emojivoto example. (#149)
- Update HTTP span names to include method and route to match semantic conventions. (#143)
- Fix missing spans in gorillamux instrumentation. (#86)
- Update HTTP span names to include method and route to match semantic conventions. (#143)
- Add DockerHub to release destinations. (#152)
v0.2.0-alpha - 2023-05-03
- Add gin-gonic/gin instrumentation. (#100)
- Add ARM64 support. (#82)
- Add
OTEL_GO_AUTO_SHOW_VERIFIER_LOGenvironment variable to control whether the verifier log is shown. (#128)
- Use verion spans in
offsets_results.jsoninstead of storing each version. (#45) - Change
OTEL_TARGET_EXEenvironment variable toOTEL_GO_AUTO_TARGET_EXE. (#97)
v0.1.0-alpha - 2023-04-17
This is the first release of OpenTelemetry Go Automatic Instrumentation.