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 Azure documentation.

Configuration

You can disable the Azure App Service sensor and filter the Azure App Service sensor by using tags and resource groups. To configure the Azure App Service sensor, edit the agent configuration file <agentinstall_dir>/etc/instana/configuration.yaml as follows:

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 and separated by a comma. Tags must be provided as a key-value pair, which is separated by :. You can also define which tags and resource groups you want to include in discovery or exclude from discovery. If you define tags or resource groups in both lists (include and exclude list), the exclude list has higher priority. If you don't need to use service filtering, do not define values to enable filtering.

To include services by tags into discovery, use the 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 the 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)

You can enable the discovery filter on the global level for all Azure services. You can also define filters for a specific Azure service, and then these filters will override global filters for this Azure service. For more information about global filters, see 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 can also add the Instana Tracing AppService extension.

After the Instana Tracing AppService extension is installed, you need to configure the extension before it can be used. To do so, go to the Advanced Tools menu, and click Go.

Advanced Tools Menu

You are presented with the Kudu Tool. Click Site Extensions, and then you can see the Instana Tracing AppService extension box, which contains a play button.

Kudu Tool

Click the play button. In the Instana Tracing for AppServices page, configure the Instana Tracing AppService extension.

Instrumentation configuration

Complete the following configurations:

  1. Select whether you want to enable the Instana Tracing feature by using the Enable Tracing toggle.

  2. Select whether your AppServices application is 32 bit or 64 bit by using the Enable 64 bit toggle. For more information, see Bitness of the application.

  3. In the Agent Key field, enter the license key of your Instana host agent.

  4. In the Endpoint URL field, enter the endpoint URL for serverless monitoring.

  5. In the Log-Level field, enter the log level that you want to use. Values are NONE, DEBUG, INFO, WARN, and ERROR.

    The log information is generated in the root folder of the AppService application.

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 are set correctly in the Instana Tracing for AppServices page. For more information, see Endpoint URL for serverless monitoring.

  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

  5. Get the Instana debugging logs from the Kudu tool. In the Kudu Tool, go to Debug Console, and then go to the C:\home\site\wwwroot> folder. There, you can find two type of log files:

  • CLR debug logs: 1.log_YYYY-MM-DD-HH_MM_SS
  • Instrumentation logs: YYYY-MM-DD_HH_MM_SSPID