How to integrate application insight with API Management Service via ARM template - JackyChiou/jackychiou.github.io GitHub Wiki
- Please save two attachments to a folder. Using a command-line tool, navigate to the directory.
- 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.
- 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