From 0218e81d78f2346d1f6663b47897ad27239e7b24 Mon Sep 17 00:00:00 2001 From: Huxing Zhang Date: Sat, 14 Dec 2024 09:26:48 +0800 Subject: [PATCH 1/5] Add go-compile-instrumentation SIG proposal --- projects/go-compile-instrumentation.md | 62 ++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 projects/go-compile-instrumentation.md diff --git a/projects/go-compile-instrumentation.md b/projects/go-compile-instrumentation.md new file mode 100644 index 000000000..c91009f01 --- /dev/null +++ b/projects/go-compile-instrumentation.md @@ -0,0 +1,62 @@ +# 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 + +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 +- Seed Approvers: @yiyang0(Alibaba Cloud), @123liuziming(Alibaba Cloud), @RomainMuller(Datadog) + +## Meeting Times + +- 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 + +https://github.com/open-telemetry/opentelemetry-go-compile-instrumentation + From 4e44b15ea3f8273aac6adc02d3cfd06855431289 Mon Sep 17 00:00:00 2001 From: Huxing Zhang Date: Tue, 17 Dec 2024 22:57:13 +0800 Subject: [PATCH 2/5] Update .cspell.yaml --- .cspell.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.cspell.yaml b/.cspell.yaml index 4425db285..8d5700aa9 100644 --- a/.cspell.yaml +++ b/.cspell.yaml @@ -194,6 +194,7 @@ words: - proto - protos - pytest + - Quesma - raesene - reiley - rolldice From 81f34cd270dd3b7700ec6184f1145d63f08ce4bd Mon Sep 17 00:00:00 2001 From: Huxing Zhang Date: Thu, 19 Dec 2024 08:29:37 +0800 Subject: [PATCH 3/5] Fix dead link --- projects/go-compile-instrumentation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/go-compile-instrumentation.md b/projects/go-compile-instrumentation.md index c91009f01..490a236d4 100644 --- a/projects/go-compile-instrumentation.md +++ b/projects/go-compile-instrumentation.md @@ -58,5 +58,5 @@ Note that members from UTC-5 would not be able to attend the meeting, so the pro ## Repo -https://github.com/open-telemetry/opentelemetry-go-compile-instrumentation +open-telemetry/opentelemetry-go-compile-instrumentation From b0fb2ffe1d4b9820b36cce576c103813c9085324 Mon Sep 17 00:00:00 2001 From: Huxing Zhang Date: Tue, 7 Jan 2025 21:45:18 +0800 Subject: [PATCH 4/5] Polish seed approvers. Co-authored-by: Pablo Baeyens --- projects/go-compile-instrumentation.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/projects/go-compile-instrumentation.md b/projects/go-compile-instrumentation.md index 490a236d4..284770f42 100644 --- a/projects/go-compile-instrumentation.md +++ b/projects/go-compile-instrumentation.md @@ -38,7 +38,10 @@ We also welcome everyone interested in this area to participate in the discussio - Project Lead: @ralf0131(Alibaba Cloud), @dineshg13(Datadog), @pdelewski(QuesmaOrg) - Sponsoring GC Members: @jpkrohling -- Seed Approvers: @yiyang0(Alibaba Cloud), @123liuziming(Alibaba Cloud), @RomainMuller(Datadog) + +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 From 9f287a052b99e8ea486b156bb08f534e22398be3 Mon Sep 17 00:00:00 2001 From: Huxing Zhang Date: Fri, 10 Jan 2025 21:09:17 +0800 Subject: [PATCH 5/5] Update go-compile-instrumentation.md --- projects/go-compile-instrumentation.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/projects/go-compile-instrumentation.md b/projects/go-compile-instrumentation.md index 284770f42..da23ad8ce 100644 --- a/projects/go-compile-instrumentation.md +++ b/projects/go-compile-instrumentation.md @@ -1,4 +1,4 @@ -# Go compile time instrumentation +# Bootstrap Go compile time instrumentation ## Description @@ -22,7 +22,11 @@ By closely aligning with OpenTelemetry, the Go Compile Instrumentation SIG ensur ## Deliverables - A flexible and extensible instrumentation framework for Go at compile time -- Out-of-box instrumentation for common libraries and frameworks in Go application +- Out-of-box instrumentation for common libraries and frameworks in Go application. Initial support will be provided for key areas, each with one or two libraries. The proposed initial support for library instrumentation includes as follows and is subject to change: + - HTTP/RPC: gin, grpc + - Messaging: kafka + - Database: mysql + - NoSQL: redis - 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 @@ -63,3 +67,7 @@ Note that members from UTC-5 would not be able to attend the meeting, so the pro open-telemetry/opentelemetry-go-compile-instrumentation +## Reference +The project is a joint effort of donation proposal coming from Alibaba and Datadog, which are listed as follows: +- https://github.com/open-telemetry/community/issues/2344 +- https://github.com/open-telemetry/community/issues/2497