How-to-integrate-application-insight-with-API-Management-Service-via-ARM-template

  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:

    1
    2
    3
    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.

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

application-insights.template.json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
{
"$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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
{
"$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