Comments (10)
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.
We are actively working on a build compiled against musl-libc
to officially support Alpine Linux. See #621.
from dd-trace-dotnet.
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 thelibc6-compat
package usingapk 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 thelibc6-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.
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.
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.
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.
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.
Related: #561
from dd-trace-dotnet.
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.
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)
- MQ integration prepends BOM to message body HOT 4
- Bundled Tracer fails to load with .NET 8 and COMPlus_EnableDiagnostics=0 HOT 11
- System.NullReferenceException in RedisExecuteAsyncIntegration.OnMethodBegin(RedisBase , Message& , ResultProcessor`1& , ServerEndPoint& ) HOT 2
- Support `Microsoft.Azure.WebJobs.Extensions.Kafka.KafkaTrigger` in Azure Functions
- Understand correct approach to encapsulating the `dd-trace-dotnet` sdk HOT 2
- Instrument Quartz.Net HOT 1
- Auto-instrumentation for Blazor HOT 4
- Support Span LInks HOT 3
- Tracer agent stops reporting APM data HOT 2
- OpSysTools::IsSafeToStartProfiler always returns false HOT 2
- CosmosDB autoinstumentation of addtional container methods
- Image "gcr.io/datadoghq/dd-lib-dotnet-init:latest" NotFound desc = failed to pull and unpack image "gcr.io/datadoghq/dd-lib-dotnet-init:latest": no match for platform in manifest: not found HOT 5
- Problem with Azure ServiceBus distributed trace HOT 4
- Tracer logs are written to disk instead of stdout/stderr in kubernetes
- dd-trace CLI does not respect the DD_CIVISIBILITY_CODE_COVERAGE_ENABLED env variable HOT 1
- Using native tracer on .NET 6+ app significantly impacts performance and scalability of Azure Function Isolated Worker w/ ASP.net Core Integration
- Optimise dependencies HOT 4
- AspNetCore OutputCacheMiddleware throws NullReferenceException from BlockingMIddleware HOT 3
- Splitting DB Service by Database IP/Hostname
- APM Tracing in .NET Native AOT apps HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dd-trace-dotnet.