Releases: DataDog/orchestrion
v1.0.1
Orchestrion, a compile-time auto-instrumentation tool for Go applications, is now generally available. It enables you to set up Datadog Application Performance Monitoring (APM) for your applications written in Go without any code changes. Orchestrion processes Go source code at compilation time and inserts instrumentation to produce Datadog APM traces, so that you don’t have to do it manually.
With Orchestrion now you can:
- Instrument your code and all supported dependencies, including the Go standard library resulting in richer traces
- Prevent gaps in traces created due to overlooked manual instrumentation
- Enable the Exploit Prevention capability of Datadog Application Security Management
To set up Datadog APM for your Go applications and to learn more about Orchestrion, check out the blog post or the documentation.
Highlights
As we declare v1.0.0
, we are signaling that the overall API and experience of orchestrion is now deemed stable, and ready for use with production workloads. Orchestrion's versioning scheme adheres to semantic versioning.
Starting with release v1.0.0
, the //dd:ignore
directive was renamed to //orchestrion:ignore
. To ensure a smooth transition, the //dd:ignore
directive still applies, although it emits a warning indicating it should be renamed.
Release v1.0.0
also marks the introduction of a completely re-designed orchestrion pin
mechanism, which enables orchestrion to discover and use integrations from any Go package. In the coming few releases, we will be moving all existing built-in integrations over to gopkg.in/DataDog/dd-trace-go.v1
, making it easier than ever to control exactly what instrumentation is added by Orchestrion; and making it possible for third-party vendors to offer their own instrumentation if they wish to.
A new github.com/DataDog/orchestrion/runtime/built
package exposes a built.WithOrchestrion
constant that can be used to implement a runtime check to ensure the application was built using orchestrion
.
What's Changed
- fix: fingerprint mismatch when using
-tags
that affect injected packages by @RomainMuller in #429
Full Changelog: v1.0.0...v1.0.1
v1.0.0
Orchestrion, a compile-time auto-instrumentation tool for Go applications, is now generally available. It enables you to set up Datadog Application Performance Monitoring (APM) for your applications written in Go without any code changes. Orchestrion processes Go source code at compilation time and inserts instrumentation to produce Datadog APM traces, so that you don’t have to do it manually.
With Orchestrion now you can:
- Instrument your code and all supported dependencies, including the Go standard library resulting in richer traces
- Prevent gaps in traces created due to overlooked manual instrumentation
- Enable the Exploit Prevention capability of Datadog Application Security Management
To set up Datadog APM for your Go applications and to learn more about Orchestrion, check out the blog post or the documentation .
Highlights
As we declare v1.0.0
, we are signaling that the overall API and experience of orchestrion is now deemed stable, and ready for use with production workloads. Orchestrion's versioning scheme adheres to semantic versioning.
Starting with release v1.0.0
, the //dd:ignore
directive was renamed to //orchestrion:ignore
. To ensure a smooth transition, the //dd:ignore
directive still applies, although it emits a warning indicating it should be renamed.
Release v1.0.0
also marks the introduction of a completely re-designed orchestrion pin
mechanism, which enables orchestrion to discover and use integrations from any Go package. In the coming few releases, we will be moving all existing built-in integrations over to gopkg.in/DataDog/dd-trace-go.v1
, making it easier than ever to control exactly what instrumentation is added by Orchestrion; and making it possible for third-party vendors to offer their own instrumentation if they wish to.
A new github.com/DataDog/orchestrion/runtime/built
package exposes a built.WithOrchestrion
constant that can be used to implement a runtime check to ensure the application was built using orchestrion
.
What's Changed
- feat: injector config loader API by @RomainMuller in #391
- feat: mechanism to fingerprint arbitrary data by @RomainMuller in #392
- feat: rename
dd:ignore
toorchestrion:ignore
by @RomainMuller in #405 - fix(pin): segfault orchestrion.tool.go is not valid go code by @eliottness in #407
- fix: net/http server-side instrumentation by @rarguelloF in #403
- fix(injector: builtin: sql): driver is not registered from non-instrumented sql calls by @eliottness in #411
- feat: dynamically load injector configuration by @RomainMuller in #393
- fix(grpc): the unary server interceptor was already set and may not be reset by @RomainMuller in #419
- fix(injector: builtin: net-http-client): treat 4XX as errors, not 5XXs by @eliottness in #426
Full Changelog: v0.9.4...v1.0.0
v1.0.0-rc.1
What's Changed
- feat(injector: aspects): adding testing aspect to README.md by @tonyredondo in #398
- feat(injector): config loader API by @RomainMuller in #391
- feat: mechanism to fingerprint arbitrary data by @RomainMuller in #392
- feat(injector: aspects): rename
dd:ignore
toorchestrion:ignore
by @RomainMuller in #405 - fix(pin): nil pointer deref when orchestrion.tool.go is not valid go code by @eliottness in #407
- fix(injector: aspects): net/http server-side instrumentation by @rarguelloF in #403
- fix(injector: aspects: sql): driver is not registered from non-instrumented sql calls by @eliottness in #411
- feat(injector): dynamically load injector configuration by @RomainMuller in #393
Full Changelog: v0.9.4...v1.0.0-rc.1
v0.9.4
What's Changed
- feat: support github.com/jackc/pgx/v5 by @rarguelloF in #342
- fix(injector: redigo) fix bad argument type from []redis.DialOption to []any by @eliottness in #351
- feat: support github.com/elastic/go-elasticsearch by @rarguelloF in #347
- feat: code templates can declare required go langage level by @RomainMuller in #357
- feat: support github.com/twitchtv/twirp by @rarguelloF in #352
- fix(pin): packages.Load().Module is nil by @eliottness in #372
- feat: support segmentio/kafka.go.v0 by @rarguelloF in #293
- feat: support confluent-kafka-go v1 and v2 by @rarguelloF in #320
- feat: support julienschmidt/httprouter by @rarguelloF in #332
- feat: support github.com/sirupsen/logrus by @rarguelloF in #370
- feat:
orchestrion pin
can track enabled integrations by @RomainMuller in #376 - feat: new
built.WithOrchestrion
constant by @RomainMuller in #387 - fix(goenv.GOMOD): never rely on the environment variable by @RomainMuller in #384
Full Changelog: v0.9.3...v0.9.4
v0.9.4-rc.1
What's Changed
- feat: support github.com/jackc/pgx/v5 by @rarguelloF in #342
- fix(injector: redigo) fix bad argument type from []redis.DialOption to []any by @eliottness in #351
- feat: support github.com/elastic/go-elasticsearch by @rarguelloF in #347
- release: v0.9.4-rc.1 by @darccio in #356
This updates the dd-trace-go
tracer library to v1.69.1-rc.4
Full Changelog: v0.9.3...v0.9.4-rc.1
v0.9.3
What's Changed
- feat(injector: stdlib): instrument testing.[M, T, B] with CI Visibility by @tonyredondo in #340
- release: v0.9.3 by @RomainMuller in #345
New Contributors
- @tonyredondo made their first contribution in #340
Full Changelog: v0.9.2...v0.9.3
v0.9.2
What's Changed
- release: v0.9.2 by @eliottness in #339
- Upgraded
dd-trace-go
to1.69.0
- Upgraded
Full Changelog: v0.9.1...v0.9.2
v0.9.1
What's Changed
- feat: instrument source files in parallel by @RomainMuller in #302
- feat: add support go-redis/redis.v0 by @rarguelloF in #312
- fix(injector): nil-dereference on a specific import order by @eliottness in #315
- feat: support for GraphQL integrations by @RomainMuller in #310
- fix:
//dd:span
onfunc main()
does not work by @RomainMuller in #316
Full Changelog: v0.9.0...v0.9.1
v0.9.0
⚠️ Breaking Changes
The canonical name of the Orchestrion package was changed to github.com/DataDog/orchestrion
, in order to prevent issues happening when using go mod vendor
across systems with file systems of differing case sensitivity. This change aligns Orchestrion with other modules published by Datadog under github.com/DataDog/*
.
Users of Orchestrion releases earlier than this one may need to manually re-install orchestrion with the new name & re-run orchestrion pin
on their project (or manually update go.mod
and orchestrion.tool.go
with new new capitalization):
go install github.com/DataDog/orchestrion@latest
orchestrion pin
What's Changed
- fix:
go mod vendor
case-based name conflict betweendatadog
andDataDog
by @RomainMuller in #288 - feat: add support for gcp pubsub by @rarguelloF in #266
- release: v0.9.0 by @RomainMuller in #290
Full Changelog: v0.8.1...v0.9.0
v0.8.1
What's Changed
- fix: CompileCommand may return extraneous files by @RomainMuller in #281
- release: v0.8.1 with tracer version
v1.68.0
by @nsrip-dd in #284
Full Changelog: v0.8.0...v0.8.1