How Does eG Enterprise Monitor the Microsoft Azure App Service?

eG Enterprise collects metrics from the Azure App Service in an agentless manner only - i.e., an eG remote agent deployed on any Windows/Linux host/VM in the environment. In order to collect metrics, the eG remote agent communicates with the Microsoft Azure cloud hosting the service, using Java API calls.

For connecting to the Azure App Service and making these calls, the eG agent should communicate with an Azure Active Directory (AD) tenant as an 'Application' with 'monitoring rights'. An Azure AD Application is a digital identity and some associated configuration, which informs Azure AD about how to treat software which uses that digital identity.

If such an Application pre-exists with the target tenant, then you can configure the eG agent with the access credentials of that application. However, if no such application pre-exists, then you need to do the following:

  • Register an Application with an Azure AD Tenant;
  • Determine the Tenant ID, the Application (Client) ID and Secret Key value associated with the registered Application;
  • Assign API permissions to the registered Application;
  • Assign the Application to a Subscription and grant 'monitoring' rights to it

To know how to perform each of these steps, refer to Configuring the eG Agent to Monitor the Microsoft Azure App Service.

Also, the eG remote agent can also be configured to perform business transaction monitoring for .NET applications that may be deployed on the Azure App Service. For this purpose, you first need to install and configure a .NET profiler on the Azure cloud. To know how to install the.NET profiler, refer toInstalling and Configuring the .NET Profiler on Azure.

Typically, transaction requests to .NET applications are handled by worker processes. Upon receipt of a request, the worker process automatically invokes an instance of the .NET CLR to process the request. At the same time, the worker process also loads an instance of the .NET profiler. Once the profiler latches on to a worker process, it injects a .NET code into the .NET application code. The injected code adds a GUID to each unique transaction to the application, and performs the following tasks:

  • Traces the path of a transaction;
  • Measures the responsiveness of a transaction by computing the time difference between when the transaction started and when it ended;
  • Identifies the slow, stalled, and error transactions, and computes the count of such transactions;
  • Discovers the exit calls made by a transaction, determines the destination of the calls, and measures the average time taken by each call to process the requests for a transaction;

The profiler then sends all these statistics to the eG agent. To know how and when the profiler transmits metrics to the eG agent, refer to How Does the .NET Profiler Communicate with the eG Agent?