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

REQUEST: Move the donated profiling agent elastic/otel-profiling-agent to open-telemetry/opentelemetry-profiling-agent #2149

Closed
rockdaboot opened this issue Jun 12, 2024 · 32 comments
Labels
area/repo-maintenance Maintenance of repos in the open-telemetry org

Comments

@rockdaboot
Copy link

rockdaboot commented Jun 12, 2024

The OpenTelemetry GC has accepted the donation proposal of the Elastic profiling agent.

Blog post

In order to get the agent code into the open-telemetry Github namespace, we can either

  1. Create a new repository and move the code into it.
  2. Rename the existing repository elastic/otel-profling-agent into open-telemetry/opentelemetry-profiling-agent.

(The name opentelemetry-profiling-agent is just a suggestion and open to change.)

Option 2 is preferred, because it has the benefit of keeping existing issues, pull requests stars, watchers and forks. It had already significant exposure to the public (2k stars, 200+ forks).

Affected Repositories

https://github.com/elastic/otel-profiling-agent

https://github.com/open-telemetry/opentelemetry-profiling-agent

Requested changes

Move the elastic repository to open-telemetry.

Purpose

Further work on the profiling agent should be done under the umbrella of OpenTelemetry.

Expected Duration

ASAP

Repository Maintainers

tbd

@rockdaboot rockdaboot added the area/repo-maintenance Maintenance of repos in the open-telemetry org label Jun 12, 2024
@AlexanderWert
Copy link
Member

@open-telemetry/technical-committee
@open-telemetry/governance-committee

Can you help us with that, please? We'd like to kick-off the repo asap, so we can start the work on integrating the agent into OTel.

@tigrannajaryan
Copy link
Member

I personally like option 2. As far as I remember we have never done this in the past, so we will need to double check the implications. I will add this to tomorrow's TC meeting agenda and will post back here.

@svrnm
Copy link
Member

svrnm commented Jun 13, 2024

I personally like option 2. As far as I remember we have never done this in the past, so we will need to double check the implications. I will add this to tomorrow's TC meeting agenda and will post back here.

Although preferred, the challenge is that you need someone who has the permission to move a repository in both organisations, so either someone from Elastic gets (temporary) permissions in the otel org to move, or someone from OpenTelemetry gets (temporary) permissions in the elastic org to move.

@rockdaboot
Copy link
Author

I personally like option 2. As far as I remember we have never done this in the past, so we will need to double check the implications. I will add this to tomorrow's TC meeting agenda and will post back here.

Although preferred, the challenge is that you need someone who has the permission to move a repository in both organisations, so either someone from Elastic gets (temporary) permissions in the otel org to move, or someone from OpenTelemetry gets (temporary) permissions in the elastic org to move.

I think you refer to a move/rename from one org to another when staying the owner. In this case you need permissions on both orgs.

But here it may be different (from https://docs.github.com/en/repositories/creating-and-managing-repositories/transferring-a-repository):

When you transfer a repository that you own to another personal account, the new owner will receive a confirmation email. The confirmation email includes instructions for accepting the transfer. If the new owner doesn't accept the transfer within one day, the invitation will expire.

@dmathieu
Copy link
Member

another personal account

This transfer is not to a personal account.

In this case, I think this rule from the doc you linked applies:

To transfer repositories to an organization, you must have repository creation permissions in the receiving organization. If organization owners have disabled repository creation by organization members, only organization owners can transfer repositories out of or into the organization.

@trask trask changed the title REQUEST: Move the donated profiling agent elastic/otel-profling-agent to open-telemetry/opentelemetry-profiling-agent REQUEST: Move the donated profiling agent elastic/otel-profiling-agent to open-telemetry/opentelemetry-profiling-agent Jun 13, 2024
@dmathieu
Copy link
Member

One (rather intricate) way to do this could be to move the repository from the elastic organization into the personal account of an open-telemetry owner, who would then be able to move it to the open-telemetry organization.

@AlexanderWert
Copy link
Member

AlexanderWert commented Jun 13, 2024

I personally like option 2. As far as I remember we have never done this in the past, so we will need to double check the implications. I will add this to tomorrow's TC meeting agenda and will post back here.

Although preferred, the challenge is that you need someone who has the permission to move a repository in both organisations, so either someone from Elastic gets (temporary) permissions in the otel org to move, or someone from OpenTelemetry gets (temporary) permissions in the elastic org to move.

Since it's something that shouldn't take too long, we could do that "transaction" maybe even in a sync call between someone with corresponding rights from Otel and Elastic. So in that call we could:

  • grant permission to the other org
  • transfer the repo
  • remove the permission again

Would that work?

@tigrannajaryan
Copy link
Member

Update from the TC:

  • We will need the GC's help to figure the legal aspects of the transfer and how the CLA should be applied if the repo is moved and not created from scratch.
  • We would like to seed the repo with 1 or 2 maintainers from Elastic and also add 1 or 2 maintainers from other companies. We will ask the current maintainers of Profiling SIG to see if they are interested.

@trask
Copy link
Member

trask commented Jun 14, 2024

We will need the GC's help to figure the legal aspects of the transfer and how the CLA should be applied if the repo is moved and not created from scratch.

I've opened a legal ticket with the CNCF service desk to ask if we need Elastic to sign an IP transfer (https://cncfservicedesk.atlassian.net/servicedesk/customer/portal/1/CNCFSD-2343)

@brancz
Copy link

brancz commented Jun 15, 2024

I would propose @umanwizard and @gnurizen to participate in maintaining it. They are maintainers of the Parca Agent (a very similar project that we expect to merge with or make a consumer of the otel agent as a library, it doesn’t make sense to reinvent the same things).

@tigrannajaryan
Copy link
Member

As posted earlier we will be seeding the profiling agent maintainers from 2 sources: current Profiling SIG maintainers and current agent maintainers suggested by Elastic (1 or 2 maintainers).

@felixge @petethepig will be the Profiling SIG maintainers that will become profiling agent maintainers.

More maintainers can be added in the future via the process describe here.

@felixge
Copy link
Member

felixge commented Jun 18, 2024

Option 2 (rename repo) sounds good to me.

(The name opentelemetry-profiling-agent is just a suggestion and open to change.)

I think the name is okay, but maybe it's worth considering some other options as well. A few ideas in my personal order of preference:

  1. opentelemetry-host-profiler
  2. opentelemetry-ebpf-profiler
  3. opentelemetry-system-profiler

What I like about these names is that they make it more clear that there will also be other OTel SDK profilers. The term agent is also often used in Java for byte code instrumentation. I'm curious what other people think.

@mtwo
Copy link
Member

mtwo commented Jun 18, 2024 via email

@svrnm
Copy link
Member

svrnm commented Jun 18, 2024

+1 for not using the term agent, we had way to many discussions where to use it and where to not use it and since the much better term "profiler" exists, I also prefer that.

In the part between opentelemetry and profiler: is there any possibility that there is a host (or system?) profiler that is not ebpf based? Even if it is not created or maintained within the otel project. Being specific about the technology (so picking 'ebpf') might help to avoid future confusion.

@felixge
Copy link
Member

felixge commented Jun 18, 2024

In the part between opentelemetry and profiler: is there any possibility that there is a host (or system?) profiler that is not ebpf based?

Yes. There are many host profilers that don't use eBPF, e.g. perf, samply, bytehound or ddprof (see profilerpedia for more).

Even if it is not created or maintained within the otel project. Being specific about the technology (so picking 'ebpf') might help to avoid future confusion.

That would make sense to me. The elastic profiler seems to be pretty tied to eBPF right now, and even if it gains non-eBPF based capabilities in the future, I don't see the eBPF core going away anytime soon. But the elastic folks should obviously chime in on this.

@rockdaboot
Copy link
Author

rockdaboot commented Jun 20, 2024

As posted earlier we will be seeding the profiling agent maintainers from 2 sources: current Profiling SIG maintainers and current agent maintainers suggested by Elastic (1 or 2 maintainers).

As current agent maintainers from Elastic, we'd like @athre0z and @fabled to become profiling agent maintainers.

@rockdaboot
Copy link
Author

I think the name is okay, but maybe it's worth considering some other options as well. A few ideas in my personal order of preference:

1. opentelemetry-host-profiler
2. opentelemetry-ebpf-profiler
3. opentelemetry-system-profiler

Thanks for your suggestions, @felixge

The profiling agent team at Elastic prefers 2 or 3, without a particular tendency to either one of them.

@AlexanderWert
Copy link
Member

@trask is there an update already on the legal ticket?

@trask
Copy link
Member

trask commented Jun 21, 2024

nothing yet, I just followed up

@felixge
Copy link
Member

felixge commented Jun 25, 2024

The profiling agent team at Elastic prefers 2 or 3, without a particular tendency to either one of them.

@rockdaboot I think I'd prefer opentelemetry-ebpf-profiler over opentelemetry-system-profiler for the reasons outlined above.

@rockdaboot
Copy link
Author

The profiling agent team at Elastic prefers 2 or 3, without a particular tendency to either one of them.

@rockdaboot I think I'd prefer opentelemetry-ebpf-profiler over opentelemetry-system-profiler for the reasons outlined above.

Then we are at 3:0 for opentelemetry-ebpf-profiler. Is there anyone else pro or con this name?

@yanglong1010
Copy link

Is there an expected time for the migration of otel-profiling-agent to open-telemetry?

@AlexanderWert
Copy link
Member

Is there an expected time for the migration of otel-profiling-agent to open-telemetry?

We are blocked by / waiting for the reply on the above-mentioned legal ticket.

@trask
Copy link
Member

trask commented Jul 9, 2024

sorry all, I've followed up multiple times with CNCF legal and no response yet 😞

@trask
Copy link
Member

trask commented Jul 9, 2024

it has been officially escalated now 🤞

@trask
Copy link
Member

trask commented Jul 15, 2024

Got a response back from CNCF legal, they're drafting a contribution agreement to document the movement of the repo and the project name. They say that's all we need. They'll ping me when that's ready.

@trask
Copy link
Member

trask commented Jul 25, 2024

CNCF Legal sent us a draft agreement. We just need to review the doc and make sure everything looks good. And get it signed.

@mtwo @AlexanderWert I'll share the agreement with you over Slack, let me know if I should include anyone else, thanks!

@mtwo
Copy link
Member

mtwo commented Jul 25, 2024

Thanks @trask! Replied on Slack, but @AlexanderWert I think that the next step is to get Elastic legal to sign this?

@rockdaboot
Copy link
Author

Update: The legal topics have been cleared, now the transfer is mostly a matter of coordination, which is in progress.

@austinlparker
Copy link
Member

The repository has been moved. For future reference, this is the least privileged way we discovered to move it:

  • Invite an admin (or other member with appropriate permissions) from the transferring side to the open-telemetry GH org.
  • Temporarily change the organization permissions to allow for org members to create public repositories.
  • Initiate the transfer, then once completed, reset the repo creation permissions and remove the transferrer from the org.

@austinlparker
Copy link
Member

ok, should be good to go

@rockdaboot
Copy link
Author

The new repository for the agent code is https://github.com/open-telemetry/opentelemetry-ebpf-profiler.

The repository maintainers are
https://github.com/athre0z (Elastic)
https://github.com/fabled (Elastic)
https://github.com/felixge (Datadog)
https://github.com/petethepig (Grafana/Pyroscope)

I'd like to thank everybody who was involved in the transfer, discussions and background work!

Happy contributing 🎉

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/repo-maintenance Maintenance of repos in the open-telemetry org
Projects
None yet
Development

No branches or pull requests