Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Donation Proposal]: DataDog/orchestrion - Compile-time instrumentation for golang #2497

Open
RomainMuller opened this issue Dec 19, 2024 · 0 comments

Comments

@RomainMuller
Copy link

Description

Orchestrion is a compile-time automatic instrumentation tool for Go applications.It leverages the standard Go toolchain’s -toolexec mechanism to re-write Go source code before it is passed to the Go compiler, adding instrumentation in all relevant places (including dependencies as well as the Go standard library).

Benefits to the OpenTelemetry community

Orchestrion provides a simple & fast way to instrument Go applications for observability without having to modify a single line of code, while providing maximum coverage (beyond what eBPF-based solutions could provide).

This addresses a very common frustration expressed by Go developers on their journey towards onboarding an observability solution.

In particular, Orchestrion makes it really quick to get started with observability and users can see immediate value from a very small initial investment; and not having to modify their code base in depth means they can try it without necessarily having to be committed to it upfront.

Finally, the OpenTelemetry community would benefit from an industry-standard solution for automatic instrumentation of Go applications, as this simplifies the decision making for prospective telemetry users and dramatically improves the onboarding experience for Go developers.

Reasons for donation

@DataDog strongly believes automatic compile-time instrumentation benefits the entire observability community, and these benefits are multiplied if there is an industry standard solution; as efforts and ideas can be shared across the entire community, and onboarding is easier for all users in the community/industry.

Repository

github.com/DataDog/orchestrion

Existing usage

Orchestrion has had usage by @DataDog customers since early preview versions dating back to September 2023, and has seen continued growth over the course of 2024 as the project was productized.

@DataDog has declared Orchestrion “Generally Available” in December 2024 and is now advertising it as the preferred way to onboard new Go applications.

In addition to this, @DataDog is using Orchestrion to enable some of its Application Security features (Exploit Prevention / Runtime Application Self-Protection), which are currently not possible to deliver in Go without Orchestrion.

Maintenance

Should the donation be accepted (whether “as-is” or not), @DataDog is set on continued active participation in the maintenance of Orchestrion going forward. The exact details of the post-donation governance would have to be agreed upon as part of the proposed Go Compile Time Instrumentation SIG proceedings.

Licenses

Apache-2.0

Trademarks

None

Other notes

This donation has commonalities with a donation proposal by Alibaba Cloud; which prompted both organizations to propose getting a Go Compile Time Instrumentation SIG created to drive the process of converging both proposals.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant