Bird
Raised Fist0
Azurecloud~5 mins

Application Insights for apps in Azure - Commands & Configuration

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction
When you run an app, you want to know if it works well and if users have problems. Application Insights helps you see how your app behaves and find issues quickly.
When you want to track how many users visit your app and what they do.
When you want to find errors or slow parts in your app automatically.
When you want to see if your app is healthy and running smoothly.
When you want to get alerts if your app stops working or is too slow.
When you want to understand how your app performs over time.
Config File - azure-pipelines.yml
azure-pipelines.yml
trigger:
- main

pool:
  vmImage: 'ubuntu-latest'

steps:
- task: AzureCLI@2
  inputs:
    azureSubscription: 'example-subscription'
    scriptType: 'bash'
    scriptLocation: 'inlineScript'
    inlineScript: |
      az monitor app-insights component create --app my-app-insights --location eastus --resource-group example-rg --application-type web
      az monitor app-insights component update --app my-app-insights --resource-group example-rg --retention-time 90
  displayName: 'Create and configure Application Insights'

This YAML file is for Azure Pipelines to automate creating Application Insights.

trigger: Runs this pipeline when code is pushed to the main branch.

pool: Uses a Linux machine to run commands.

steps: Runs Azure CLI commands to create Application Insights resource named my-app-insights in eastus region inside resource group example-rg. It also sets data retention to 90 days.

Commands
This command creates a new Application Insights resource named 'my-app-insights' in the 'eastus' region inside the resource group 'example-rg'. It sets the type to monitor web applications.
Terminal
az monitor app-insights component create --app my-app-insights --location eastus --resource-group example-rg --application-type web
Expected OutputExpected
{ "appId": "12345678-90ab-cdef-1234-567890abcdef", "applicationType": "web", "connectionString": "InstrumentationKey=abcdef12-3456-7890-abcd-ef1234567890;IngestionEndpoint=https://eastus-0.in.applicationinsights.azure.com/", "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/example-rg/providers/microsoft.insights/components/my-app-insights", "location": "eastus", "name": "my-app-insights", "resourceGroup": "example-rg", "retentionInDays": 30, "status": "Healthy", "tags": {}, "type": "microsoft.insights/components" }
→
--app - Sets the name of the Application Insights resource.
→
--location - Specifies the Azure region where the resource is created.
→
--resource-group - Specifies the Azure resource group to contain the resource.
This command updates the data retention period of the Application Insights resource to 90 days so that telemetry data is kept longer.
Terminal
az monitor app-insights component update --app my-app-insights --resource-group example-rg --retention-time 90
Expected OutputExpected
{ "appId": "12345678-90ab-cdef-1234-567890abcdef", "retentionInDays": 90, "status": "Healthy" }
→
--retention-time - Sets how many days telemetry data is kept.
This command shows the current settings and status of the Application Insights resource to verify it was created and configured correctly.
Terminal
az monitor app-insights component show --app my-app-insights --resource-group example-rg
Expected OutputExpected
{ "appId": "12345678-90ab-cdef-1234-567890abcdef", "applicationType": "web", "location": "eastus", "name": "my-app-insights", "resourceGroup": "example-rg", "retentionInDays": 90, "status": "Healthy" }
Key Concept

If you remember nothing else from this pattern, remember: Application Insights helps you watch your app's health and usage by collecting data automatically.

Common Mistakes
Not specifying the correct resource group when creating Application Insights.
The resource will be created in the wrong group or the command will fail if the group doesn't exist.
Always use the --resource-group flag with an existing resource group name.
Forgetting to update the retention time, so data is kept only for the default 30 days.
You might lose important telemetry data too soon for analysis.
Use the --retention-time flag to set a longer retention period if needed.
Not verifying the resource after creation.
You might miss errors or misconfigurations that prevent data collection.
Run 'az monitor app-insights component show' to check the resource status.
Summary
Create Application Insights resource with az monitor app-insights component create to start monitoring your app.
Update the retention time to keep telemetry data longer using az monitor app-insights component update.
Verify the resource and its settings with az monitor app-insights component show.

Practice

(1/5)
1. What is the main purpose of Azure Application Insights?
easy
A. To monitor the health and usage of applications
B. To create virtual machines in Azure
C. To store large amounts of data
D. To manage user identities and access

Solution

  1. Step 1: Understand Application Insights role

    Application Insights is designed to monitor apps by collecting data about their performance and usage.
  2. Step 2: Compare with other Azure services

    Other options like virtual machines, data storage, or identity management are handled by different Azure services.
  3. Final Answer:

    To monitor the health and usage of applications -> Option A
  4. Quick Check:

    Monitoring apps = To monitor the health and usage of applications [OK]
Hint: Think monitoring and diagnostics for apps [OK]
Common Mistakes:
  • Confusing Application Insights with storage services
  • Mixing it up with Azure Active Directory
  • Assuming it creates or manages infrastructure
2. Which of the following is the correct way to enable Application Insights in an Azure Web App?
easy
A. Create a virtual machine and install Application Insights manually
B. Add Application Insights SDK and configure instrumentation key
C. Enable Azure Monitor logs only
D. Use Azure Blob Storage to store telemetry data

Solution

  1. Step 1: Identify how to enable Application Insights

    Enabling Application Insights requires adding its SDK to the app and setting the instrumentation key for telemetry.
  2. Step 2: Eliminate incorrect options

    Creating VMs or using Blob Storage does not enable Application Insights. Azure Monitor logs are related but separate.
  3. Final Answer:

    Add Application Insights SDK and configure instrumentation key -> Option B
  4. Quick Check:

    SDK + instrumentation key = Add Application Insights SDK and configure instrumentation key [OK]
Hint: SDK plus key enables monitoring [OK]
Common Mistakes:
  • Thinking Application Insights runs on VMs only
  • Confusing Azure Monitor logs with Application Insights
  • Using storage services for telemetry data
3. Given this snippet in an Azure Function app:
var telemetryClient = new TelemetryClient();
telemetryClient.TrackEvent("OrderPlaced");

What will Application Insights record?
medium
A. An error log with message 'OrderPlaced'
B. A performance metric for function execution time
C. An event named 'OrderPlaced' in the telemetry data
D. No data because TelemetryClient is not initialized

Solution

  1. Step 1: Understand TrackEvent method

    TrackEvent sends a custom event named as the string argument to Application Insights.
  2. Step 2: Check the code behavior

    The code creates a TelemetryClient and tracks an event called 'OrderPlaced', so this event will be recorded.
  3. Final Answer:

    An event named 'OrderPlaced' in the telemetry data -> Option C
  4. Quick Check:

    TrackEvent sends event = An event named 'OrderPlaced' in the telemetry data [OK]
Hint: TrackEvent logs custom events [OK]
Common Mistakes:
  • Assuming TrackEvent logs errors
  • Thinking it measures performance automatically
  • Believing TelemetryClient needs extra setup to send events
4. You added Application Insights to your app but see no telemetry data in the Azure portal. What is the most likely cause?
medium
A. Application Insights service is not available in your region
B. Azure subscription is expired
C. You need to restart the Azure portal
D. Instrumentation key is missing or incorrect in app configuration

Solution

  1. Step 1: Check telemetry data flow requirements

    Telemetry requires the correct instrumentation key configured in the app to send data to Application Insights.
  2. Step 2: Evaluate other options

    Subscription expiry or service region issues would cause broader failures, and restarting the portal does not affect telemetry data.
  3. Final Answer:

    Instrumentation key is missing or incorrect in app configuration -> Option D
  4. Quick Check:

    Missing key blocks telemetry = Instrumentation key is missing or incorrect in app configuration [OK]
Hint: Check instrumentation key first [OK]
Common Mistakes:
  • Restarting portal expecting data to appear
  • Assuming regional availability blocks telemetry silently
  • Ignoring app configuration settings
5. You want to monitor a multi-service app with Application Insights and correlate requests across services. What should you do?
hard
A. Enable distributed tracing and use the same Application Insights resource for all services
B. Create separate Application Insights resources for each service without linking
C. Use Azure Monitor logs only without Application Insights
D. Send telemetry data manually to a storage account

Solution

  1. Step 1: Understand distributed tracing in Application Insights

    Distributed tracing allows tracking requests across multiple services by sharing context and using the same Application Insights resource.
  2. Step 2: Compare options for multi-service monitoring

    Using separate resources without linking breaks correlation. Azure Monitor logs alone do not provide this tracing. Manual telemetry to storage lacks correlation features.
  3. Final Answer:

    Enable distributed tracing and use the same Application Insights resource for all services -> Option A
  4. Quick Check:

    Distributed tracing + shared resource = Enable distributed tracing and use the same Application Insights resource for all services [OK]
Hint: Use distributed tracing with shared resource [OK]
Common Mistakes:
  • Splitting telemetry into unlinked resources
  • Ignoring distributed tracing setup
  • Relying only on logs without correlation