問題描述
比較早期建立的Azure Funciton服務,近期發現在門戶中已經啟用了Application Insights功能,但是正确配置Applicaiton Insights後,卻無法擷取關聯的Azure Function的監控資料?
問題分析
到目前為止,Azure Function已經經曆了三個版本的發展,可以通過 FUNCTIONS_EXTENSION_VERSION 檢視目前Azure Funciton的版本:
從官方的文檔中,發現Application Insights已經在 Function V1.x, V2.x及V3.x的版本支援了。但是經過實測,V2.x, V3.x都能成功發送監控資料到Application Insights中,而最早的V1.x版本卻無法發送監控資料。這與本文問題比對。
最後經過咨詢确認, 在中國區Function V1.X的內建除了要在門戶中配置Applcation Insights外,還需要再Funciton的host.json中的applicationInsights一節修改endpoint并指向中國區的終結點:
Function host.json示例内容:
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[1.*, 2.0.0)"
},
"applicationInsights": {
"ingestionEndpoint": "https://dc.applicationinsights.azure.cn/v2/track",
"liveEndpoint": "https://live.applicationinsights.azure.cn/QuickPulseService.svc"
}
}
問題解決
1) Azure Function 頁面中啟用Application Insights
2) 修改Funciton的host.json檔案,添加applicationInsights,ingestionEndpoint和liveEndpoint
參考資料
如何為 Azure Functions 配置監視: https://docs.azure.cn/zh-cn/azure-functions/configure-monitoring?tabs=v1
Azure Functions 運作時版本概述: https://docs.azure.cn/zh-cn/azure-functions/functions-versions
Application Insights Regions that require endpoint modification: https://docs.microsoft.com/en-us/azure/azure-monitor/app/custom-endpoints?tabs=net#regions-that-require-endpoint-modification
當在複雜的環境中面臨問題,格物之道需:濁而靜之徐清,安以動之徐生。 雲中,恰是如此!