Monitoring Azure App-Services

The Azure App-Services sensor is automatically deployed and installed after you install the Instana agent.

Restriction: Azure App-Services support only Windows workload.

Note: Learn about the other supported Azure services with our Azure documentation.

Configuration

Azure App Service sensor can be disabled and it can be filtered by tags and resource groups. It is possible to configure Azure App Service sensor via agent configuration in <agentinstall_dir>/etc/instana/configuration.yaml by:

com.instana.plugin.azure.appservice:
  # Valid values: true, false
  enabled: false # enabled (true) by default
  # Comma separated list of tags in key:value format
  include_tags:
  # Comma separated list of tags in key:value format
  exclude_tags:
  # Comma separated list of resource groups
  include_resource_groups:
  # Comma separated list of resource groups
  exclude_resource_groups:

Azure App Service sensor can be disabled. To disable monitoring of the Azure App Services use the following configuration:

com.instana.plugin.azure.appservice:
  enabled: false

Multiple tags and resource groups can be defined, separated by a comma. Tags should be provided as a key-value pair separated by :. In order to make configuration easier, it is possible to define which tags and resource groups you want to include in discovery or exclude from discovery. In case of defining tag or resource group in both lists (include and exclude), exclude list has higher priority. If there is no need for services filtering, the configuration should not be defined. It's not mandatory to define all values in order to enable filtering.

To include services by tags into discovery use following configuration:

com.instana.plugin.azure.appservice:
  include_tags: # Comma separated list of tags in key:value format (e.g. env:prod,env:staging)

To exclude services by tags from discovery use following configuration:

com.instana.plugin.azure.appservice:
  exclude_tags: # Comma separated list of tags in key:value format (e.g. env:dev,env:test)

To include services by resource groups into discovery use following configuration:

com.instana.plugin.azure.appservice:
  include_resource_groups: # Comma separated list of resource groups (e.g. rg_prod,rg_staging)

To exclude services by resource groups from discovery use following configuration:

com.instana.plugin.azure.appservice:
  exclude_resource_groups: # Comma separated list of resource groups (e.g. rg_dev,rg_test)

Discovery filtering can be configured on the global level for all Azure services. In case of defining filters for Azure App Service, global filters will be overridden. For more details about global Azure service discovery filtering visit Azure Configuration.

Metrics collection

To view the metrics, select Infrastructure in the sidebar of the Instana User interface, click a specific monitored host, and then you can see a host dashboard with all the collected metrics and monitored processes.

Metrics for App-Services are pulled every minute, which is the resolution Azure provides for monitoring of these services.

Configuration data

App-Service Details Description
Name The name of the app-service.
Resource Group The resource-group the app-service belongs to
Location The region where the app-service is located
Subscription Id The subscription ID of the app-service
State The current state of the app-service

Performance metrics

App-Service Metric Description
Response-Times and Requests
Response Time The response-time for requests to your app-service
Total Requests Total number of requests within a minute
Queued Requests Number of requests that have been queued in a minute
Http Status-Codes
Http 2xx Responses Number of http-responses with an http-status between 200 and 299
Http 4xx Responses Number of http-responses with an http-status between 400 and 499
Http 5xx Responses Number of http-responses with an http-status between 500 and 599
Network traffic Metrics
Bytes sent Number of bytes sent
Bytes received Number of bytes received by the app-service
Garbage Collection Metrics
Generation 0 Number of GC-runs on Generation 0 within a minute
Generation 1 Number of GC-runs on Generation 1 within a minute
Generation 2 Number of GC-runs on Generation 2 within a minute

Instrumentation

Currently, only instrumentation of AppService for .Net Framework 4.5.1+ workloads is supported. To make the instrumentation work, an Instana agent needs to be running where you want to monitor AppServices. For more information about how to configure Instana agent to monitor Azure, see Monitoring and Instrumenting Microsoft Azure.

Go to Azure Portal, and locate the AppService that you want to instrument. After you open the AppService in Azure Portal, click the Extensions link from the navigation menu.

Extensions menu

In the Extensions page, you can add a new extension, check the extensions that are installed, and update or remove an extension. You must add the Instana Tracing AppService extension.

After the Instana Tracing AppService extension is installed, open the extension, and then you can see the details of the extension:

Instana Tracing AppService Extension details

Click Browse. It leads you to a page where you can configure the instrumentation:

Instrumentation configuration

After you enter all the information there, click Update Config. Then, the information is saved within the context of the AppService.

Now, the only thing that needs to be done is to restart the AppService. You can do that from the Dashboard of the AppService. When you run your application, an Instana rewriter is attached to the application, and you need to start collecting traces.

To see the traces, go back to Instana UI. You can open the dashboard of your AppService entity, and from there click Upstream / Downstream. Then, you can see traces that are collected for this entity.

Traces

Troubleshooting

Bitness of the application

When you configure the Instana instrumentation by using the installed extension in Azure, you can see an Enable 64 bit checkbox. This might be confusing at first, but, depending on the the number of bit of your application, you need to attach the appropriate rewriter. The thing is, you don't know at that point what is the number of bit of your application. By default, when you deploy the application through Visual Studio to Azure AppService, the application is installed in 32-bit mode. This can be changed in the configuration of the AppService by going to Configuration > General Settings:

App Service Platform configuration

If you are using a 64-bit mode, select 64 Bit in the Instana Tracing AppService Extension configuration. Otherwise, you will fail to attach and collect traces.

Tracing doesn't work

Before you contact with Instana support team, complete the following steps:

  1. Check that the previously mentioned number of bit is correctly configured both in the AppService configuration and in the Instana Tracing AppService extension configuration.

  2. Make sure that the Agent Key and Endpoint URL in the Instana Tracing AppService extension is set correctly. You can get the information by using the Instana UI or by checking the documentation.

  3. Check for errors in Event logs by opening Diagnose and solve problems > Application Event Logs.

    Event logs

  4. Open the Kudu Process Explorer by clicking Advanced Tools from the navigation menu, and then check whether the w3wp process is attached with the Instana.Profiler_x64.dll module.

    Open Kudu

    Process Explorer