Extensions in general are not supported for App Services on Linux. However, there is a workaround which isn't supported by Dynatrace. It is based on the runtime OA script for Kubernetes and Docker. The Azure App Service on Linux is essentially a Docker container. The Java image used is a "musl" type. I've created a basic script which will deploy OA under /home; this must be done in this directory as any changes outside of it will be lost when the container restarts.
Is your app Java or .NET? We are using Java in ours and was able to deploy OA successfully to our PROD and TEST environments.
Also, In your application environment, you have to add "LD_PRELOAD=<*/agent/lib64/liboneagentproc.so> path
And then restart your application.
Let me know if you need/want to talk about this offline.
Our app is an ASP.NET Core app. Thank you for your assistance thus far. I'll continue to toy around with it and see if I can make any progress and if not I might just take you up on your offer.
Again, thank you!
This is what has been provided by Dynatrace support. I tried a few times and it works quite well.
You would need to do the following steps:
-) Set 3 environment variables via the Azure Portal
-) Download and execute a script from us
-) Set 1 environment variable via the Azure Portal
-) Restart the WebApp
For this approach Dynatrace prepared a script which is comparable to our buildpacks:
In this script do the following steps:
Steps to do
The customer needs to set the following environment variables through the Azure Portal:
DT_TENANT - only the tenant ID (skj22538), not the entire URL (skj22538.live.dynatrace.com)
DT_API_TOKEN – It needs to be a PaaS Token
DT_API_URL – needs to be the tenant URL followed by /api (ie skj22538.live.dynatrace.com/api)
Then the customer needs to ssh to his container and execute the following command:
wget https://raw.githubusercontent.com/DTMad/azure_webapp_linux/master/dynatrace_installer.sh && bash dynatrace_installer.sh
This downloads the script mentioned above and runs it.
After the agent installation is finished the customer then needs to set another environment variable via Azure Portal: 'LD_PRELOAD'
The value for variable 'LD_PRELOAD' will be this path:
NOTE: Let’s make sure the path in LD_PREDLOAD is correct, otherwise OneAgent will not load.
I hope this helps !
Thanks for share the solution. This is to install OneAgent after a container is built. In other words, if the appservices are swapped to another image, then we lost the OneAgent. Wonder if this can be included in the dockerfile to install during the container build time.
Hi @bill_scheuernst . I'm not able to install it in non-containerized Linux AppServices solutions. It seems that for Linux AppServices, it is only possible for containers. -->
I opened an idea the past 16th February -> https://community.dynatrace.com/t5/Dynatrace-product-ideas/App-Services-for-NON-CONTAINERIZED-Web-Ap...