GithubHelp home page GithubHelp logo

Comments (10)

d47id avatar d47id commented on June 7, 2024 3

All the suggestions in this thread involve adding packages to enable glibc support on alpine. What the original requester is asking for is a copy of Datadog.Trace.ClrProfiler.Native that's compiled against musl-libc so it works out of the box on alpine.

We used libc6-compat on alpine 3.7 successfully for some time, but the last supported .net core version with an alpine 3.7 base is 2.2.7.

We attempted to use both gcompat and https://github.com/sgerrand/alpine-pkg-glibc on alpine 3.11. Although this allowed some of our services to start, others still failed and we saw random core dumps until we finally gave up and started using Debian-based runtime images.

For now, I think you guys should explicitly say you DO NOT SUPPORT Alpine, and I wouldn't consider this resolved until you provide a copy of Datadog.Trace.ClrProfiler.Native that was compiled on Alpine against musl-libc.

from dd-trace-dotnet.

lucaspimentel avatar lucaspimentel commented on June 7, 2024 1

We are actively working on a build compiled against musl-libc to officially support Alpine Linux. See #621.

from dd-trace-dotnet.

lucaspimentel avatar lucaspimentel commented on June 7, 2024

Hey, @chris-cummings. Sorry for the delayed response. We recently tested the profiler on different Linux environments and found out the following:

  • works out of the box on Ubuntu 18.04 (mcr.microsoft.com/dotnet/core/runtime:2.1-bionic)
  • works out of the box on Debian 9 (mcr.microsoft.com/dotnet/core/runtime:2.1-stretch-slim)
  • on Alpine 3.7 (mcr.microsoft.com/dotnet/core/runtime:2.1-alpine3.7), requires adding the libc6-compat package using apk add libc6-compat as documented
  • on Alpine 3.9 (mcr.microsoft.com/dotnet/core/runtime:2.1-alpine3.9), the profiler does not load, even after adding the libc6-compat package

We will investigate that last one (Alpine 3.9) and leave this issue open until it is resolved.

Thanks again for your feedback!

(edit: formatting)

from dd-trace-dotnet.

franck-schmidlin avatar franck-schmidlin commented on June 7, 2024

just been faffing around this.
Works well with microsoft/dotnet:2.2-sdk-alpine
but not with mcr.microsoft.com/dotnet/core/aspnet:2.2-alpine3.9

I'm still hoping to figre out why

from dd-trace-dotnet.

chris-cummings avatar chris-cummings commented on June 7, 2024

Thanks guys, looks like the piece we were missing was the libc6-compat package. I will stay tuned for what you learn in from your alpine 3.9 testing.

from dd-trace-dotnet.

franck-schmidlin avatar franck-schmidlin commented on June 7, 2024

Works here with mcr.microsoft.com/dotnet/core/aspnet:2.2-alpine3.8 (+libc6-compat)
Issue seems to be specific to 3.9

from dd-trace-dotnet.

zacharycmontoya avatar zacharycmontoya commented on June 7, 2024

It looks like on Alpine 3.9 we're missing the shared library ld-linux-x86-64.so.2, which can be found in the gcompat package. I've tested locally that adding this package allows our profiler to be launched on Alpine 3.9 and it successfully performs automatic instrumentation.

@franck-schmidlin can you verify that installing gcompat on top of mcr.microsoft.com/dotnet/core/aspnet:2.2-alpine3.9 succeeds?

from dd-trace-dotnet.

lucaspimentel avatar lucaspimentel commented on June 7, 2024

Related: #561

from dd-trace-dotnet.

seanamosw avatar seanamosw commented on June 7, 2024

I believe I'm bumping into this as well.

Using the Microsoft image: mcr.microsoft.com/dotnet/core/aspnet:3.1.1-alpine3.10
Installing the apks: ibc6-compat, gcompat

The automatic instrumentation fails to start:

/var/log/datadog # cat dotnet-profiler.log 
[dotnet] 1: [info] Datadog CLR Profiler 1.12.0
[dotnet] 1: [debug] Initialize
[dotnet] 1: [info] Environment variables:
[dotnet] 1: [info]   DD_TRACE_ENABLED=
[dotnet] 1: [info]   DD_TRACE_DEBUG=true
[dotnet] 1: [info]   DD_DOTNET_TRACER_HOME=/opt/datadog
[dotnet] 1: [info]   DD_INTEGRATIONS=/opt/datadog/integrations.json
[dotnet] 1: [info]   DD_PROFILER_PROCESSES=
[dotnet] 1: [info]   DD_PROFILER_EXCLUDE_PROCESSES=
[dotnet] 1: [info]   DD_AGENT_HOST=
[dotnet] 1: [info]   DD_TRACE_AGENT_PORT=
[dotnet] 1: [info]   DD_ENV=
[dotnet] 1: [info]   DD_SERVICE_NAME=
[dotnet] 1: [info]   DD_DISABLED_INTEGRATIONS=
[dotnet] 1: [info]   DD_CLR_DISABLE_OPTIMIZATIONS=
[dotnet] 1: [debug] Loading integrations from file: /opt/datadog/integrations.json
[dotnet] 1: [warn] Failed to load integrations: No error information
[dotnet] 1: [warn] Profiler disabled: no enabled integrations found.

To answer the obvious, yes /opt/datadog/integrations.json exists.

from dd-trace-dotnet.

colin-higgins avatar colin-higgins commented on June 7, 2024

Hello all, we now officially support automatic instrumentation with the new package (datadog-dotnet-apm-1.13.0-musl.tar.gz) available in the 1.13 release (https://github.com/DataDog/dd-trace-dotnet/releases/tag/v1.13.0)

from dd-trace-dotnet.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.