How to integrate application insight with API Management Service via ARM template - JackyChiou/jackychiou.github.io GitHub Wiki

  1. Please save two attachments to a folder. Using a command-line tool, navigate to the directory.
  2. Run following Azure CLI command to start the process:
az login

az group deployment create --resource-group <resource-group> --template-file ./application-insights.template.json --parameters ApimServiceName=<apim-instance-name> --parameters @application-insights.parameters.json

Note: be sure to replace as well as with their corresponding parameters and update the application-insights.parameters.json file with appropriate parameters that pertain to your environment.

  1. Once completed, your existing API Management instance should be integrated with a newly created Application Insights instance.

application-insights.template.json

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
      "ApimServiceName": {
          "type": "string"
      },
      "ApplicationInsightsLocation": {
          "type": "string"
      },
      "ApplicationInsightsInstanceName": {
          "type": "string"
      },
      "SamplingRate": {
          "type": "int"
      }
  },
  "variables": {},
  "resources": [
      {
          "name": "[parameters('ApplicationInsightsInstanceName')]",
          "type": "Microsoft.Insights/components",
          "apiVersion": "2015-05-01",
          "location": "[parameters('ApplicationInsightsLocation')]",
          "tags": {},
          "kind": "other",
          "properties": {
            "Application_Type": "other"
          }
      },
      {
          "type": "Microsoft.ApiManagement/service/loggers",
          "name": "[concat(parameters('ApimServiceName'), '/', parameters('ApplicationInsightsInstanceName'))]",
          "apiVersion": "2018-06-01-preview",
          "properties": {
            "loggerType": "applicationInsights",
            "description": "Logger resources to APIM",
            "credentials": {
                "instrumentationKey": "[reference(resourceId('Microsoft.Insights/components', parameters('ApplicationInsightsInstanceName')), '2015-05-01').InstrumentationKey]"
            }
          }
      },
      {
          "type": "Microsoft.ApiManagement/service/diagnostics",
          "name": "[concat(parameters('ApimServiceName'), '/applicationinsights')]",
          "apiVersion": "2018-06-01-preview",
          "properties": {
              "alwaysLog": "allErrors",
              "loggerId": "[concat('/loggers/', parameters('ApplicationInsightsInstanceName'))]",
              "sampling": {
              "samplingType": "fixed",
              "percentage": "[parameters('SamplingRate')]"
              },
              "frontend": {
                  "request": {
                    "headers": [],
                    "body": {}
                  },
                  "response": {
                    "headers": [],
                    "body": {}
                  }
                },
                "backend": {
                  "request": {
                    "headers": [],
                    "body": {}
                  },
                  "response": {
                    "headers": [],
                    "body": {}
                  }
                },
              "enableHttpCorrelationHeaders": false
          },
          "dependsOn": [
              "[resourceId('Microsoft.ApiManagement/service/loggers', parameters('ApimServiceName'), parameters('ApplicationInsightsInstanceName'))]"
          ]
      }

  ]
}

application-insights.parameters.json

{
  "$schema":
      "http://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
      "ApplicationInsightsLocation": {
          "value": "centralus"
      },
      "ApplicationInsightsInstanceName": {
          "value": "jackyapimai2"
      },
      "SamplingRate": {
          "value": 50
      }
  }
}

Enjoy. By Jacky 2020-Feb.-26