Skip to content

.NET support #161

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

Open
brancz opened this issue Dec 8, 2021 · 6 comments
Open

.NET support #161

brancz opened this issue Dec 8, 2021 · 6 comments
Labels
area/jit Something to do with Just-In-Time compilation enhancement New feature or request feature/language-support This feature describes support for a new language/runtime.

Comments

@brancz
Copy link
Member

brancz commented Dec 8, 2021

.NET (dotnet) support has been requested a number of times now.

It should already work with perf-map enabled: https://docs.microsoft.com/en-us/dotnet/core/run-time-config/debugging-profiling#write-perf-map

That said, it should also work automatically without any change to a user's deployment.

@brancz brancz added enhancement New feature or request feature/language-support This feature describes support for a new language/runtime. labels Dec 8, 2021
@LarsBingBong
Copy link

LarsBingBong commented Nov 24, 2022

Any news on this? We're mostly dot netting around ... so would be great to have this in a smooth way. It seems we can get Parca to work. But, with a little extra work. So getting the experience to be smoother would be great.

@brancz
Copy link
Member Author

brancz commented Nov 24, 2022

Perhaps this is what you meant, but just in case if not, we did recently add an example of what to do to get .NET application working today: parca-dev/parca-demo#18

We're still trying to figure out why ahead-of-time compiled .NET binaries aren't working (they should to our knowledge, it might be something small): parca-dev/parca-demo#23

The ultimate goal is that what needs to be enabled in parca-dev/parca-demo#18 is not necessary, which we haven't started the work for yet, so in the meantime that is the best way to use Parca with .NET.

@LarsBingBong
Copy link

ahead-of-time compiled ... that's good old CI stage build *.dll files containing dotnet code? Is that what you mean? Thanks.

@brancz
Copy link
Member Author

brancz commented Nov 24, 2022

I know next to nothing about .NET, so I can only go by docs or other web searches. From the docs, I understand that ahead-of-time compilation to a regular self-contained Linux ELF binary (which should work just fine with Parca Agent if debuginfos are available) is only supported since .NET 7, which appears to have only been released on November 8th, 2022, so it appears to me it's rather the bleeding edge than an old feature.

@LarsBingBong
Copy link

Thank you for taking the time @brancz to look into this even further. Much appreciated. I'll see what I can get going here on the tracing side of things when workloads are coded in dotnet. Thank you!

@maxbrunet
Copy link
Member

Yes, AOT is the bleeding edge, you are likely interest by what's here (JIT): https://github.com/parca-dev/parca-demo/tree/main/dotnet (See link in README and ENV in Dockerfile)

@kakkoyun kakkoyun added the area/jit Something to do with Just-In-Time compilation label May 17, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/jit Something to do with Just-In-Time compilation enhancement New feature or request feature/language-support This feature describes support for a new language/runtime.
Projects
None yet
Development

No branches or pull requests

4 participants