community icon indicating copy to clipboard operation
community copied to clipboard

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

Open rockdaboot opened this issue 1 year ago • 21 comments
trafficstars

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 avatar Jun 12 '24 11:06 rockdaboot

@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.

AlexanderWert avatar Jun 13 '24 10:06 AlexanderWert

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.

tigrannajaryan avatar Jun 13 '24 13:06 tigrannajaryan

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.

svrnm avatar Jun 13 '24 13:06 svrnm

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.

rockdaboot avatar Jun 13 '24 14:06 rockdaboot

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.

dmathieu avatar Jun 13 '24 14:06 dmathieu

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.

dmathieu avatar Jun 13 '24 14:06 dmathieu

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?

AlexanderWert avatar Jun 13 '24 14:06 AlexanderWert

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.

tigrannajaryan avatar Jun 14 '24 17:06 tigrannajaryan

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)

trask avatar Jun 14 '24 20:06 trask

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).

brancz avatar Jun 15 '24 12:06 brancz

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.

tigrannajaryan avatar Jun 17 '24 23:06 tigrannajaryan

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.

felixge avatar Jun 18 '24 12:06 felixge

+1 to Felix’s name suggestions, I was meaning to to reply with the same feedback


From: Felix Geisendörfer @.> Sent: Tuesday, June 18, 2024 5:21:06 AM To: open-telemetry/community @.> Cc: Morgan McLean @.>; Team mention @.> Subject: Re: [open-telemetry/community] REQUEST: Move the donated profiling agent elastic/otel-profiling-agent to open-telemetry/opentelemetry-profiling-agent (Issue #2149)

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 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 here think.

— Reply to this email directly, view it on GitHubhttps://github.com/open-telemetry/community/issues/2149#issuecomment-2175967640, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AAIXLKZJDTRYUYSSJRVAE2DZIAQ3FAVCNFSM6AAAAABJGFHJWSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNZVHE3DONRUGA. You are receiving this because you are on a team that was mentioned.Message ID: @.***>

mtwo avatar Jun 18 '24 13:06 mtwo

+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.

svrnm avatar Jun 18 '24 13:06 svrnm

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.

felixge avatar Jun 18 '24 14:06 felixge

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 avatar Jun 20 '24 07:06 rockdaboot

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.

rockdaboot avatar Jun 20 '24 07:06 rockdaboot

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

AlexanderWert avatar Jun 21 '24 15:06 AlexanderWert

nothing yet, I just followed up

trask avatar Jun 21 '24 17:06 trask

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.

felixge avatar Jun 25 '24 18:06 felixge

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?

rockdaboot avatar Jun 26 '24 06:06 rockdaboot

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

yanglong1010 avatar Jul 02 '24 02:07 yanglong1010

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.

AlexanderWert avatar Jul 02 '24 06:07 AlexanderWert

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

trask avatar Jul 09 '24 00:07 trask

it has been officially escalated now 🤞

trask avatar Jul 09 '24 16:07 trask

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 avatar Jul 15 '24 22:07 trask

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!

trask avatar Jul 25 '24 17:07 trask

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

mtwo avatar Jul 25 '24 17:07 mtwo

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

rockdaboot avatar Aug 07 '24 09:08 rockdaboot

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 avatar Aug 07 '24 18:08 austinlparker