cncf / cncf/mentoring

[CNCF LFX Proposal] Opentelemetry - Declarative instrumentation configuration for otelc

Open
#1,939 16 comments 4 reactions 0 assignees View on GitHub
2026 CNCF Approved Exported lfx mentorship Maintainer/Contribex Approved Mentors Confirmed Proposal Term 3: Sept-Nov Validation Passed
Dominant language
JavaScript
Stars
3.1k
Forks
816
Avg merge
12h 32m
Merged PRs (30d)
8

Description

### CNCF Project

OpenTelemetry

### Term

2026 Term 3 (Sep-Nov)

### Program Name

Declarative instrumentation configuration for otelc

### Program Description

## Description

[`otelc`](https://github.com/open-telemetry/opentelemetry-go-compile-instrumentation) instruments Go applications at compile time with zero code changes. Today it can only switch instrumentations on and off through environment variables. There is no way to capture a specific HTTP header, redact a sensitive URL query parameter, or gate a semantic convention migration. Configuration granularity has been one of the top adopter asks since v1.0.

OpenTelemetry already defines the data model for this. The [declarative configuration](https://github.com/open-telemetry/opentelemetry-configuration) spec has an `instrumentation/development` node with a cross-language `general` section and a free-form `go` section that each language owns.

This project makes instrumentation configurable in otelc by implementing that node. The mentee will build the subsystem that reads and validates the config file at build time, bakes it into the generated runtime package, and exposes a typed API to hooks, then prove the design on instrumentation that already ships. To keep it maintainable, each instrumentation declares its options in a manifest that generates the schema, the docs catalog, and the defaults, following the Java agent's `metadata.yaml` pattern.

## Qualifications

Comfortable with Go and with YAML or JSON Schema, and familiar with OpenTelemetry basics such as semantic conventions and SDK configuration. Exposure to code generation or Go build tooling is a plus, not a requirement.

## Expected Outcomes

- A working configuration subsystem in otelc, so users can tune instrumentation behavior through a declarative config file instead of coarse environment variables
- A sustainable way for instrumentations to declare their options, keeping schema, defaults, and documentation in sync as the project grows
- Real instrumentations consuming the new configuration, with tests, documentation, and a runnable example
- Backward compatibility with the existing environment-variable controls
- A written RFC recording the configuration model, so future contributors know where new options belong
- Feedback and contributions upstream to the OpenTelemetry declarative configuration spec

### Technologies

Go, OpenTelemetry, JSON

### Skills same as Technologies?

- [x] Yes, the required skills are the same as the technologies listed above.

### Required/Desirable Skills

_No response_

### Mentors

Xabier Martinez Beneitez | @txabman42 | x42.martinez@gmail.com | x42.martinez
Azhar Momin | @amazingakai | azhar-momin@outlook.com | azharmomin

### Upstream Issue URL

https://github.com/open-telemetry/opentelemetry-go-compile-instrumentation/issues/705

### Application Prerequisites

- [x] Resume
- [x] Cover Letter
- [ ] School Enrollment Verification
- [ ] Participation Permission from school or employer
- [ ] Coding Challenge
- [ ] Custom Prerequisite (fill in details below)

### Coding Challenge URL

_No response_

### Custom Prerequisite Name

_No response_

### Custom Prerequisite Description

_No response_

### Custom Prerequisite — File Upload

- [ ] Yes — completion of this task requires the mentee to submit a file.

---
**LFX program:** [CNCF - OpenTelemetry: Declarative instrumentation configuration for otelc (2026 Term 3)](https://mentorship.lfx.linuxfoundation.org/project/3db981bf-404b-4c8e-96f8-b0433688e8cf)

Contributor guide

Open the contributing guide

Research direction

Start with the linked upstream issue and the declarative configuration specification's instrumentation/development node, then review otelc's existing environment-variable controls. Done means a validated build-time configuration subsystem, generated runtime API, manifest-driven schema and documentation, instrumentations using it, tests, an example, backward compatibility, and an RFC.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.