-
Notifications
You must be signed in to change notification settings - Fork 440
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
Add arm64 artefacts to dotnet autoinstrumentation container. #3270
base: main
Are you sure you want to change the base?
Conversation
This will allow the the operator to instrument `arm64` containers. (Including k8s on OSX M1/M2/M3 etc)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- As I know, there is a possibility to have separate images for architectures (arm64/x64). It could reduce image size to download. I am not telling that it is mandatory for this PR.
- It will not work without additional changes on the operator side. See code around
opentelemetry-operator/pkg/instrumentation/dotnet.go
Lines 48 to 51 in 5497a49
const ( dotNetRuntimeLinuxGlibc = "linux-x64" dotNetRuntimeLinuxMusl = "linux-musl-x64" )
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please document changes around lines 7 and 8 - CORECLR_PROFILER_PATH
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It doesn't look like this fully addresses the issue. The operator will still set the CORECLR_PROFILER_PATH
to the x64 path.
I think a clean way to implement this would be:
- Make the image multi-platform, changing the path to just
linux
. Add alinux-x64
symbolic link for backwards compatibility. - Use the new path when injecting instrumentation.
For 1, you just need to add the built-in ARG TARGETARCH
and use this variable in your urls.
Just a note that I will get back to this PR either this or next week. |
I have this working with v0.113 by setting opentelemetry-operator/versions.txt Line 30 in 99b6c6f
|
This will allow the operator to auto instrument dotnet applications on
arm64
containers. (Including k8s on OSX M1/M2/M3 etc)Validated manually as part of Elastic's distribution of OpenTelemetry .NET
elastic/elastic-otel-dotnet#155
CC @Kielek & @RassK who did the bulk of the work actually creating the artefacts 🙏