ApplicationInsights: Как запросить полную трассировку выполнения функций Azure, содержащих ошибки?

#azure #azure-functions #azure-application-insights

#azure #azure-функции #azure-application-insights

Вопрос:

Я хочу использовать Application Insights для анализа выходных данных журнала моих функций Azure. Если выходные данные журнала выполнения функции содержат хотя бы одну ошибку, я хочу увидеть все выходные данные журнала этого выполнения.

Отправная точка:

 traces 
| where severityLevel == 3
| where operation_Name == "MyFunctionName" 
| project timestamp, operation_Name, message
  

Но это обеспечивает только сами ошибки, но не другой результат выполнения функции.

Ответ №1:

Для Azure Functions V1:

 traces 
| where severityLevel == 3
| where operation_Id != ""
| where operation_Name == "MyFunctionName" 
| project operation_Name , operation_Id, severityLevel    
| join (traces | project timestamp, operation_Id,  message ) on operation_Id 
| project timestamp, operation_Name, operation_Id, message
  

Все строки с одинаковым operation_Id принадлежат одному выполнению функции.

Для Azure Functions V2:

 traces 
| extend invocationId = tostring(customDimensions.InvocationId)
| where severityLevel == 3
| where invocationId != ""
| where operation_Name == "MyFunctionName" 
| project operation_Name, severityLevel, invocationId    
| join (traces |extend invocationId = tostring(customDimensions.InvocationId)| project timestamp, invocationId,  message ) on invocationId  
| project timestamp, operation_Name, message, invocationId
  

Все строки с одинаковым идентификатором вызова относятся к одному выполнению функции.

Комментарии:

1. Пожалуйста, примите это как ответ, чтобы это помогло другим членам сообщества.