Skip to content

Commit e4b417d

Browse files
ralf0131mx-psitrask
authored
Proposal: Go Compile Time Instrumentation SIG (#2490)
* Add go-compile-instrumentation SIG proposal * Update .cspell.yaml * Fix dead link * Polish seed approvers. Co-authored-by: Pablo Baeyens <[email protected]> * Update go-compile-instrumentation.md * Update go-compile-instrumentation.md --------- Co-authored-by: Pablo Baeyens <[email protected]> Co-authored-by: Trask Stalnaker <[email protected]>
1 parent 814bea7 commit e4b417d

File tree

2 files changed

+74
-0
lines changed

2 files changed

+74
-0
lines changed

.cspell.yaml

+1
Original file line numberDiff line numberDiff line change
@@ -196,6 +196,7 @@ words:
196196
- proto
197197
- protos
198198
- pytest
199+
- Quesma
199200
- raesene
200201
- reiley
201202
- rolldice
+73
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# Bootstrap Go compile time instrumentation
2+
3+
## Description
4+
5+
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).
6+
7+
This SIG will focus on:
8+
9+
- Developing compiler plugins or enhancements that inject instrumentation code automatically, ensuring minimal runtime performance overhead and compatibility with existing Go projects.
10+
- Providing standardized instrumentation patterns aligned with OpenTelemetry and other monitoring frameworks.
11+
12+
We want to ensure:
13+
14+
- Comprehensive Coverage: Automatic instrumentation covers common frameworks and libraries used in Go applications, fully compatible with OpenTelemetry’s APIs and SDKs.
15+
- Performance Efficiency: Instrumentation introduces minimal runtime overhead, maintaining the high-performance standards of Go applications while utilizing OpenTelemetry’s optimized data collection mechanisms.
16+
- Ease of Use: Developers can enable instrumentation with simple/zero configuration changes without manual code modifications.
17+
- 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.
18+
- 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.
19+
20+
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.
21+
22+
## Deliverables
23+
24+
- A flexible and extensible instrumentation framework for Go at compile time
25+
- 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:
26+
- HTTP/RPC: gin, grpc
27+
- Messaging: kafka
28+
- Database: mysql
29+
- NoSQL: redis
30+
- Comprehensive documentation that covers a wide array of topics, including how to use the framework, configuration options, advanced usage scenarios, and answers to FAQs
31+
32+
## Staffing/Help Wanted
33+
The following vendors are interested in improving this area:
34+
35+
- Alibaba
36+
- Datadog
37+
- QuesmaOrg
38+
39+
We also welcome everyone interested in this area to participate in the discussion.
40+
41+
### Required staffing
42+
43+
- Project Lead: @ralf0131(Alibaba Cloud), @dineshg13(Datadog), @pdelewski(QuesmaOrg)
44+
- Sponsoring GC Members: @jpkrohling
45+
46+
Additionally, the following people will participate in the SIG and be added as approvers once they are OpenTelemetry Github org members:
47+
48+
- Future Approvers: @yiyang0(Alibaba Cloud), @123liuziming(Alibaba Cloud), @RomainMuller(Datadog)
49+
50+
## Meeting Times
51+
52+
- Biweekly Meetings: Every Thursday
53+
- China (UTC+8): 16:00 – 17:00
54+
- Europe (UTC+2): 10:00 – 11:00
55+
- UTC: 08:00 – 09:00
56+
57+
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.
58+
59+
## Timeline
60+
61+
- Step 1: SIG Formation and Initial Setup
62+
- Step 2: Collaborative Architectural Design (1-2 months)
63+
- Step 3: Assignment of Implementation Owners
64+
- Step 4: Implementation and Integration (1-2 months)
65+
66+
## Repo
67+
68+
open-telemetry/opentelemetry-go-compile-instrumentation
69+
70+
## Reference
71+
The project is a joint effort of donation proposal coming from Alibaba and Datadog to replace [Instrgen](https://github.com/open-telemetry/opentelemetry-go-contrib/tree/main/instrgen). The proposals are listed as follows:
72+
- https://github.com/open-telemetry/community/issues/2344
73+
- https://github.com/open-telemetry/community/issues/2497

0 commit comments

Comments
 (0)