Skip to content
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

Donation proposal: OpenTelemetry source level automatic Go instrumentation #3

Closed
pdelewski opened this issue Jul 8, 2022 · 11 comments

Comments

@pdelewski
Copy link
Member

pdelewski commented Jul 8, 2022

Description of project

This project adds OpenTelemetry instrumentation (https://github.com/open-telemetry/opentelemetry-go) to Go applications by automatically modifying their source code in similar way as compiler. It can instrument any golang project. It depends only on standard libraries and is platform agnostic.

Current github repo:
https://github.com/SumoLogic-Labs/autotel

Summary of existing usage of donated project

The project is developed and maintained by Sumo Logic
We are actively testing it with different Go applications and open source projects,
extending test coverage and eliminating gaps. We are planning to start beta tests with customers soon.

Benefits to the OpenTelemetry community

Project offers automatic instrumentation by modifying source code. It has similar goals as
https://github.com/keyval-dev/opentelemetry-go-instrumentation
#2

but tackles problem from different angle and has different tradeoffs:

  • does not depend on external mechanisms like eBPF
  • platform agnostic
  • depends only on standard golang libraries and tooling
  • require access to source code as modifies it (that might be advantage or disadvantage, depending on view, but if something will fail, it will fail at compile time)
  • does not require elevated privileges

Maintenance plan

We will continue to develop and maintain project. Our main goal is to expand awareness of existence of this project and
get feedback from community about needed features and usage scenarios. Another aspect is to get more
people involved contributing to this project. We are open to suggestions and ideas.

Our current roadmap is as follows:

  1. Reliability and robustness, extending test coverage, testing with more applications and open source projects
  2. Distributed tracing. Tracing services, processes that are using different types of IO in between
  3. Integration with already intrumented code
  4. Configurability. Selecting specific functions on the call graph to instrument, exporting output to different backends, etc...

Existing software licenses

This project is licensed under the terms of the Apache 2.0 open source license.

List of Trademarks (if any)

None

Misc

Not sure if that's right place or maybe better would be a https://github.com/open-telemetry/community cc @tigrannajaryan

@tigrannajaryan
Copy link
Member

I will move this to the https://github.com/open-telemetry/community/ since that's where the donations are discussed.

@tigrannajaryan tigrannajaryan transferred this issue from open-telemetry/opentelemetry-go-contrib Jul 8, 2022
@tigrannajaryan
Copy link
Member

tigrannajaryan commented Jul 8, 2022

@pdelewski thank you for the proposal. I will add this to the next TC meeting to discuss.

Just to confirm: this is an independent effort, unrelated to #2 ?

@tigrannajaryan
Copy link
Member

@open-telemetry/technical-committee FYI.

@tigrannajaryan tigrannajaryan changed the title OpenTelemetry source level automatic instrumentation addition (donation) Donation proposal: OpenTelemetry source level automatic Go instrumentation Jul 8, 2022
@pdelewski
Copy link
Member Author

@pdelewski thank you for the proposal. I will add this to the next TC meeting to discuss.

Just to confirm: this is an independent effort, unrelated to #2 ?

Yes, it's independent

@yurishkuro
Copy link
Member

Please provide answers to all questions asked in the form, specifically:

  • Summary of existing usage of donated project
  • Maintenance plan

Also, please explain why you want to donate this code, what goals you want to achieve ("we don't want to support it" is a valid goal, but...), and why those goals are easier achieved by the project being in OTEL rather than in a standalone repo.

@jmacd
Copy link
Contributor

jmacd commented Jul 29, 2022

@pdelewski See my comments in the parallel donation proposal here:
#2

@pdelewski are you willing to take ownership of the code that you propose donating and eventually become a maintainer of the (proposed) new opentelemetry-go-instrumentation repository?

@pdelewski
Copy link
Member Author

@jmacd Yes, I agree to take ownership of the proposed code and I will be happy to become maintainer of new repo.

Thank you for feedback and review.

@jmacd
Copy link
Contributor

jmacd commented Aug 3, 2022

@pdelewski I created https://github.com/open-telemetry/opentelemetry-go-instrumentation. One of the first tasks for you and @edeNFed will be to become members of the OpenTelemetry org and begin sending and reviewing PRs in this repository. I copied the current Go maintainers in as maintainers of this project temporarily; please consider me your sponsor, I will be glad to help review the first steps in this repository as we work to establish you as new a new maintainer.

@jmacd jmacd transferred this issue from open-telemetry/community Aug 3, 2022
@jmacd
Copy link
Contributor

jmacd commented Aug 3, 2022

I've tranfered this issue. We can close this when the donation has been merged. Thanks, @pdelewski

@MrAlias
Copy link
Contributor

MrAlias commented Oct 4, 2022

It has been suggested that this is hosted in the otel Go contrib repository. Before that can happen open-telemetry/opentelemetry-go-contrib#2834 needs to be resolved.

@pdelewski
Copy link
Member Author

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants