-
Notifications
You must be signed in to change notification settings - Fork 21
Description
This umbrella issue tracks the convergence of the two donated Go compile-time auto-instrumentation projects into a single OpenTelemetry implementation, under the Go Compile-Time Instrumentation SIG.
Tasks
Orchestrion
Orchestrion is Datadog's compile-time auto-instrumentation tool that was proposed for donation (#2497). The following tasks track feature parity with Orchestrion's capabilities.
Note: Some items may already be implemented. This checklist serves as a roadmap for tracking convergence progress and ensuring comprehensive feature parity.
Configuration Flexibility
Orchestrion sources its instrumentation configuration from user-controlled files and can load configurations from arbitrary packages outside of the tool itself, providing significant flexibility for users and vendors to customize instrumentation behavior.
- OP1: User control over instrumentation
- OP1.1: Documented configuration format for the tool
- OP1.2: Configuration loader, validator, and interpreter
- OP2: External configuration sources
- OP2.1: Documented schema or protocol for specifying integrations
- OP2.2: Configuration loader, validator, and interpreter for external sources
Instrumentation Capabilities
Orchestrion offers comprehensive instrumentation capabilities including call-side instrumentation ("around" aspects in AoP), library-side instrumentation ("before" and "after" aspects), and the ability to affect structure and variable declarations. It supports addressing functions by signature in addition to by name.
- OP3: Join point support
- OP3.1: Function call
- OP3.2: Named declaration (function, type, global variable or constant)
- OP3.3: Value declaration of a given type
- OP3.4: Metaprogramming annotations (magical comments)
- OP3.5: Function or method with specific signature
- OP4: Join point composition & filtering
- OP4.1: Intersection combinator (all-of)
- OP4.2: Union combinator (one-of)
- OP4.3: Negation combinator (not)
- OP4.4: Import path filtering
- OP4.5: Package name filtering (possibly limited to "main")
- OP4.6: Test package filtering ("test main" needed for CI Visibility)
- OP5: Advice operators
- OP5.1: Add field to matched struct
- OP5.2: Replace value of matched variable or constant
- OP5.3: Wrap matched expression
- OP5.4: Add arguments to matched variadic call
User Experience & Documentation
Orchestrion provides extensive documentation including setup guides, configuration references, and troubleshooting resources across its documentation site and Datadog's public documentation, serving as an effective on-ramp for new users.
- OP6: Website builds from Rule declarations
- OP6.1: Getting started guide and Quick start guide
- OP6.2: Configuration fine-tuning guide
- OP6.3: Troubleshooting guide
Quality Assurance
Orchestrion has mature quality assurance infrastructure including comprehensive test coverage, performance benchmarking, and integration testing across multiple scenarios and use cases.
- OP7: Quality assurance infrastructure
- OP7.1: Comprehensive integration testing suite
- OP7.2: Minimal unit-test coverage (≥70% target)
- OP7.3: On-going performance benchmarking (overhead vs vanilla go)
Alibaba Compile-time Instrumentatiosn
- TBD
Source donation threads: