Azure App Services
The Azure extension has two runtime halves: the profiler runs in the main application sandbox, while RaygunAgent.exe runs in the RaygunAPM continuous WebJob in the SCM/Kudu sandbox. Check each half and the transport between them.
1. Check the App Service requirements
- The App Service must use Windows.
- Always On must be enabled.
WEBJOBS_STOPPEDmust be absent orfalse.- Application Insights Profiler and other CLR profilers must be disabled.
Raygun_ApiKeymust contain the intended Raygun application API key.- The whole App Service must have been restarted after installing or upgrading the extension.
A .NET process can load only one CLR profiler.
2. Check the Agent WebJob
In the Azure portal or Kudu, confirm that the RaygunAPM continuous WebJob is running. In Kudu Process Explorer, confirm that it started RaygunAgent.exe.
DaasRunner.exe is Azure Diagnostics as a Service. It is not the Raygun Agent.
Review Agent logs under:
%HOME%\LogFiles\Raygun\AgentLogs\
If the extension provides RaygunAPM-Status, run that triggered WebJob and review its output. Treat each reported layer independently.
3. Check the profiler environment
Open Kudu Process Explorer, select the main application worker rather than the SCM worker, and inspect its environment. Confirm these settings exist:
CORECLR_ENABLE_PROFILING=1
CORECLR_PROFILER={e2338988-38cc-48cd-a6b6-b441c31f34f1}
CORECLR_PROFILER_PATH_32=<installed x86 profiler path>
CORECLR_PROFILER_PATH_64=<installed x64 profiler path>
PROTON_API_KEY=<value mapped from Raygun_ApiKey>
PROTON_NETWORK_MODE=Udp
PROTON_USE_MULTICAST=1
PROTON_WIRE_COMMAND_PORT=<ephemeral port>
If these values are absent or stale, restart the whole App Service. Restarting only the application worker or only the WebJob can leave the two sandboxes on different configurations.
4. Confirm the profiler loaded
In the main worker's loaded modules, confirm the expected architecture of RaygunProfiler.dll is present.
A “profiler loaded” event confirms only that the CLR loaded the DLL. It does not confirm that the profiler stayed operational, reached the Agent, or sent accepted traces to Raygun.
5. Check the dynamic transport
The extension selects an unused UDP port during installation. Confirm all of these values agree:
PROTON_WIRE_COMMAND_PORTin the application environment;TraceUdpListeningPortin the Agent WebJob configuration; and- the port reported in Agent startup logs.
The Agent configuration must also use multicast address:
239.100.15.215
Do not copy a port number from an example, configure port 3000, use a private sandbox IP, or set WEBSITES_PORT/WEBJOBS_PORT for profiler traffic. Azure does not reliably route loopback or private-IP unicast between the main-site and SCM sandboxes.
6. Generate representative traffic
Invoke real application routes, not only /health. Exercise routes that perform the database, Redis, Elasticsearch, Druid, or outbound HTTP work that should appear in traces.
Confirm that:
- the endpoint returns the expected status;
- Agent input counters increase;
- traces contain application work rather than only request shells; and
- new traces continue after several minutes.
7. Enable temporary profiler logging
Add these App Service settings temporarily:
PROTON_DEBUG_LOGLEVEL=Info
PROTON_DEBUG_LOGTOCONSOLE=true
Restart the whole App Service and inspect application logs. Info logging is intentionally noisy, so remove these settings and restart again after diagnosis.
Reinstall the extension
If the package files or XDT are incomplete:
- Stop the whole App Service.
- Remove .NET Raygun APM from Extensions.
- Install the required extension version again.
- Start and restart the whole App Service.
- Repeat every check above.
Older versioned profiler files can remain while an existing worker may still have them loaded. Do not delete them from a running site.
Contact support
If the issue remains, contact Raygun Support and include:
- App Service plan and Windows/.NET runtime;
- extension, Agent, and profiler version;
- installation and restart time in UTC;
- selected UDP port and multicast address;
- endpoint request time window;
- Agent and profiler logs with API keys removed; and
- whether the failure is Agent startup, profiler load, profiler-to-Agent transport, or Raygun ingestion.