-
Notifications
You must be signed in to change notification settings - Fork 243
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
Proposal: Go Compile Time Instrumentation SIG #2490
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -194,6 +194,7 @@ words: | |
- proto | ||
- protos | ||
- pytest | ||
- Quesma | ||
- raesene | ||
- reiley | ||
- rolldice | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
# Go compile time instrumentation | ||
|
||
## Description | ||
|
||
The primary objective of the Go Compile time Instrumentation SIG is to streamline and automate the code instrumentation process around the Go compiler. By integrating automatic instrumentation into the Go compilation process, we aim to provide developers a seamless, efficient, and safe way to instrument their Go applications for observability (and more). | ||
|
||
This SIG will focus on: | ||
|
||
- Developing compiler plugins or enhancements that inject instrumentation code automatically, ensuring minimal runtime performance overhead and compatibility with existing Go projects. | ||
- Providing standardized instrumentation patterns aligned with OpenTelemetry and other monitoring frameworks. | ||
|
||
We want to ensure: | ||
|
||
- Comprehensive Coverage: Automatic instrumentation covers common frameworks and libraries used in Go applications, fully compatible with OpenTelemetry’s APIs and SDKs. | ||
- Performance Efficiency: Instrumentation introduces minimal runtime overhead, maintaining the high-performance standards of Go applications while utilizing OpenTelemetry’s optimized data collection mechanisms. | ||
- Ease of Use: Developers can enable instrumentation with simple/zero configuration changes without manual code modifications. | ||
- Extensibility: The instrumentation framework can be extended to support new libraries and frameworks as they emerge in the Go ecosystem, ensuring ongoing compatibility with the evolving OpenTelemetry landscape. | ||
- Flexibility: Developers are enabled to control their tracing experience (i.e, specifying custom span tags in certain places; opting certain code paths or instances out of tracing, etc...), which can be delivered via a declarative/programmable scheme. | ||
|
||
By closely aligning with OpenTelemetry, the Go Compile Instrumentation SIG ensures that Go applications benefit from standardized, vendor-neutral, high-quality observability solutions that are both robust and easy to implement. Having one single, standard tool removes decision points from prospective developers, which makes the path to observability shorter & easier. | ||
|
||
## Deliverables | ||
|
||
- A flexible and extensible instrumentation framework for Go at compile time | ||
- Out-of-box instrumentation for common libraries and frameworks in Go application | ||
- Comprehensive documentation that covers a wide array of topics, including how to use the framework, configuration options, advanced usage scenarios, and answers to FAQs | ||
|
||
## Staffing/Help Wanted | ||
The following vendors are interested in improving this area: | ||
|
||
- Alibaba | ||
- Datadog | ||
- QuesmaOrg | ||
ralf0131 marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
We also welcome everyone interested in this area to participate in the discussion. | ||
|
||
### Required staffing | ||
|
||
- Project Lead: @ralf0131(Alibaba Cloud), @dineshg13(Datadog), @pdelewski(QuesmaOrg) | ||
- Sponsoring GC Members: @jpkrohling | ||
|
||
Additionally, the following people will participate in the SIG and be added as approvers once they are OpenTelemetry Github org members: | ||
|
||
- Future Approvers: @yiyang0(Alibaba Cloud), @123liuziming(Alibaba Cloud), @RomainMuller(Datadog) | ||
|
||
## Meeting Times | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. do you think it's feasible to start already with rotating meeting times like the collector has? this way, most people will be able to attend 2/3 of the sessions There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I am leaning towards start the first couple round of meeting, and adjust if there is anyone who is interested. Of course, other comments are welcome. |
||
|
||
- Biweekly Meetings: Every Thursday | ||
- China (UTC+8): 16:00 – 17:00 | ||
- Europe (UTC+2): 10:00 – 11:00 | ||
- UTC: 08:00 – 09:00 | ||
|
||
Note that members from UTC-5 would not be able to attend the meeting, so the project members will try and make things work asynchronously as possible. | ||
|
||
## Timeline | ||
|
||
- Step 1: SIG Formation and Initial Setup | ||
- Step 2: Collaborative Architectural Design (1-2 months) | ||
- Step 3: Assignment of Implementation Owners | ||
- Step 4: Implementation and Integration (1-2 months) | ||
|
||
## Repo | ||
|
||
open-telemetry/opentelemetry-go-compile-instrumentation | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do you know already which ones will be done first?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We should deliver the framework first, as it is a prerequisite and serves as the foundation for library instrumentation.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Agreed.