I am trying to profiler .NET Core application in linux environment.
Here, I have installed and configured .NET core agent in my Centos.
I given the environmental variable in service file as follows,
Environment=CORECLR_PROFILER={57e1aa68-2229-41aa-9931-a6e93bbc64d8} \
CORECLR_ENABLE_PROFILING=1 \
CORECLR_PROFILER_PATH=/opt/appdynamics/dotnet/libappdprofiler.so
Then restarted the app service and apache server.
To check appdynamics profiler installation by running the following command,
lsof -p 2268 | grep -i appd
dotnet 2268 root mem REG 253,0 6443304 69595618 /opt/appdynamics/dotnet/libappdprofiler_glibc.so
dotnet 2268 root mem REG 253,0 6776 69595628 /opt/appdynamics/dotnet/libappdprofiler.so
<2268> is my dotnet process id and confirmed profiler loaded successfully.
My question is...
We have given only one profiler path which is libappdprofiler.so, then How this file "libappdprofiler_glibc" is loading? What is the use of this file?
Thanks in advance.
Hi, @Rohit.sharma
I found this information. Please let me know if it helps.
Regarding the "libappdprofiler_glibc.so" and "libappdprofiler_musl.so" libraries, all platforms use the "libappdprofiler.so" as the profiler which deploys "libappdprofiler_musl.so" if the platform is Alpine and "libappdprofiler_glibc.so" for all other Linux platforms. The pseudo profiler in the 21.5+ version detects the platform and then uses the correct profiler to deploy using either "libappdprofiler_glibc.so" or "libappdprofiler_musl.so".
While in the version before 21.5, the "libappdprofiler.so" was the actual profiler and there were 2 different agents for Alpine and other Linux platforms.