Habilitar e exibir telemetria aprimorada em fluxos de trabalho do Application Insights for Standard em Aplicativos Lógicos do Azure
Aplica-se a: Aplicativos Lógicos do Azure (Padrão)
No Application Insights, você pode habilitar a coleta de telemetria aprimorada para seu recurso de aplicativo lógico padrão e, em seguida, exibir os dados coletados depois que o fluxo de trabalho concluir uma execução. Esse recurso oferece uma experiência simplificada para descobrir informações sobre seus fluxos de trabalho e mais controle sobre a filtragem de eventos na fonte de dados, o que ajuda a reduzir os custos de armazenamento. Essas melhorias se concentram em métricas de desempenho em tempo real que fornecem informações sobre a integridade e o comportamento do seu sistema. Isso pode ajudá-lo a detetar e resolver problemas proativamente mais cedo.
Com seu aplicativo lógico conectado ao Application Insights, você pode exibir dados de log e outras métricas quase em tempo real por meio do portal do Azure usando o Live Metrics Stream. Você também tem visualizações para ajudá-lo a plotar solicitações de entrada, solicitações de saída, integridade geral e acesso a uma tabela de diagnósticos de nível de rastreamento.
A lista a seguir descreve alguns exemplos de melhorias de telemetria:
- Os eventos de gatilho e ação agora incluem o tipo de gatilho ou ação e o nome da API, que permite consultar o uso específico do conector.
- Torne os eventos de repetição mais fáceis de rastrear.
- Capture exceções para falhas de gatilho e ação.
- Mais controle sobre a filtragem de eventos não relacionados ao fluxo de trabalho.
- Filtragem avançada que lhe dá mais controlo sobre a forma como os eventos são emitidos, incluindo gatilhos e ações.
Este guia mostra como ativar a coleta de telemetria aprimorada no Application Insights para seu aplicativo lógico Padrão.
Pré-requisitos
Uma conta e subscrição do Azure. Se não tiver uma subscrição, inscreva-se numa conta do Azure gratuita.
Uma instância do Application Insights . Você cria esse recurso com antecedência, ao criar seu aplicativo lógico padrão ou após a implantação do aplicativo lógico.
Um aplicativo lógico padrão e fluxo de trabalho, no portal do Azure ou no Visual Studio Code.
Seu recurso ou projeto de aplicativo lógico deve usar o tempo de execução do Azure Functions v4, que é habilitado por padrão.
Seu aplicativo lógico deve ter habilitado o Application Insights para registro e rastreamento de diagnósticos. Você pode fazer isso ao criar seu aplicativo lógico ou após a implantação.
Habilite a telemetria aprimorada no Application Insights
No portal do Azure, abra seu recurso de aplicativo lógico padrão.
No menu do aplicativo lógico, em Ferramentas de Desenvolvimento, selecione Ferramentas Avançadas. Na página Ferramentas Avançadas, selecione Ir, que abre as ferramentas Kudu.
Na página Kudu, no menu Debug console, selecione CMD. Na tabela de diretórios de pastas, navegue até o seguinte arquivo e selecione Editar: site/wwwroot/host.json
No arquivo host.json, adicione o seguinte código JSON:
{ "version": "2.0", "extensionBundle": { "id": "Microsoft.Azure.Functions.ExtensionBundle.Workflows", "version": "[1, 2.00]" }, "extensions": { "workflow": { "Settings": { "Runtime.ApplicationInsightTelemetryVersion": "v2" } } } }
Essa configuração permite o nível padrão de detalhamento. Para outras opções, consulte Aplicar filtragem na origem.
Abrir o Application Insights
Depois que o fluxo de trabalho terminar uma execução e passarem alguns minutos, abra o recurso do Application Insights.
No portal do Azure, no menu do aplicativo lógico, em Configurações, selecione Application Insights.
No menu de recursos do Application Insights, em Monitoramento, selecione Logs.
Exibir logs aprimorados no Application Insights
As seções a seguir descrevem as tabelas no Application Insights onde você pode encontrar e exibir a telemetria aprimorada gerada a partir da execução do fluxo de trabalho.
Nome da tabela | Description |
---|---|
Pedidos | Detalhes sobre os seguintes eventos em execuções de fluxo de trabalho: - Eventos de gatilho e ação - Tentativas de repetição - Utilização do conector |
Rastreios | Detalhes sobre os seguintes eventos em execuções de fluxo de trabalho: - Eventos de início e fim do fluxo de trabalho - Envio e recebimento de lotes |
Exceções | Detalhes sobre eventos de exceção em execuções de fluxo de trabalho |
Dependências | Detalhes sobre eventos de dependência em execuções de fluxo de trabalho |
Tabela de pedidos
A tabela Solicitações contém campos que controlam dados sobre os seguintes eventos em execuções de fluxo de trabalho padrão:
- Eventos desencadeadores e de ação
- Tentativas de repetição
- Utilização do conector
Para mostrar como os dados entram nesses campos, suponha que você tenha o seguinte exemplo de fluxo de trabalho padrão que começa com o gatilho Solicitação, seguido pela ação Redigir e pela ação Resposta.
As configurações do gatilho têm um parâmetro chamado Custom Tracking Id. O valor do parâmetro é definido como uma expressão que extrai o valor da propriedade orderId do corpo de uma mensagem de entrada:
Em seguida, as configurações de ação Compor do fluxo de trabalho têm uma propriedade controlada adicionada chamada solutionName. O valor da propriedade é definido como o nome do recurso do aplicativo lógico.
A ação Redigir é seguida por uma ação Resposta que retorna uma resposta ao chamador.
A lista a seguir tem consultas de exemplo que você pode criar e executar na tabela Solicitações:
Task | Passos |
---|---|
Ver todos os eventos de acionamento e ação | Consulta de todos os eventos de gatilho e ação |
Exibir apenas eventos de gatilho ou eventos de ação | Consultar apenas eventos de gatilho ou ação |
Exibir eventos de gatilho ou ação com um tipo de operação específico | Eventos de acionamento ou gatilho de consulta por tipo de operação |
Exibir eventos de gatilho e ação com um ID de execução de fluxo de trabalho específico | Acionador de consulta e eventos de ação por ID de execução do fluxo de trabalho |
Visualize eventos de gatilho e ação com um ID de acompanhamento de cliente específico | Acionador de consulta e eventos de ação por ID de acompanhamento do cliente |
Exibir eventos de gatilho e ação com um nome de solução específico | Acionador de consulta e eventos de ação por nome da solução |
Visualize eventos de gatilho e ação com tentativas de repetição | Gatilho de consulta e eventos de ação para tentativas de repetição |
Exibir eventos de gatilho e ação com o uso do conector | Consulta de eventos de gatilho e ação para uso do conector |
Consulta de todos os eventos de gatilho e ação
Depois que o fluxo de trabalho é executado e alguns minutos passam, você pode criar uma consulta na tabela Solicitações para exibir todos os eventos da operação.
Se necessário, selecione o intervalo de tempo que deseja revisar. Por padrão, esse valor é as últimas 24 horas.
Para exibir todos os eventos de gatilho e ação, crie e execute a seguinte consulta:
requests | sort by timestamp desc | take 10
O exemplo a seguir mostra a guia Resultados com as colunas e os dados anotados em cada linha:
Column Description Exemplo Designação Nome da operação do fluxo de trabalho Neste exemplo, as linhas mostram manual (gatilho de solicitação), Composição e Resposta. sucesso Estado de execução da operação Neste exemplo, todas as linhas mostram True para uma execução bem-sucedida. Se ocorreu um erro, o valor é False. Código de resultados Código de status de execução da operação Neste exemplo, todas as linhas mostram Succeeded (200). Duração Duração da execução da operação Varia para cada operação. Para exibir os detalhes de uma operação específica, expanda a linha do gatilho ou ação:
O exemplo a seguir mostra os detalhes expandidos para o gatilho Request :
Property Description Exemplo Categoria Categoria de operação, que é sempre Workflow.Operations.Triggers ou Workflow.Operations.Actions, com base na operação Workflow.Operations.Triggers. clientTrackingId ID de acompanhamento personalizado, se especificado 123456 runId ID da instância de execução do fluxo de trabalho 08585358375819913417237801890CU00 nome_gatilho Nome do gatilho Manual workflowId ID do fluxo de trabalho que executou o gatilho C7711D107E6647179C2E15FE2C2720CE nome do fluxo de trabalho Nome do fluxo de trabalho que executou o gatilho Fluxo de trabalho de solicitação-resposta-fluxo de trabalho operation_Name Nome da operação que executou o gatilho. Nesse caso, esse nome é o mesmo que o nome do fluxo de trabalho. Fluxo de trabalho de solicitação-resposta-fluxo de trabalho operation_Id ID do componente ou fluxo de trabalho que acabou de ser executado. Esse ID é o mesmo que o valor runId para a instância de execução do fluxo de trabalho. Se existirem exceções ou dependências, esse valor transcende as tabelas para que você possa vincular esse registro de gatilho a essas exceções ou dependências. 08585358375819913417237801890CU00 operation_ParentId ID vinculável para o fluxo de trabalho que chamou o gatilho f95138daff8ab129 O exemplo a seguir mostra os detalhes expandidos para a ação Compor :
Property Description Exemplo Categoria Categoria de operação, que é sempre Workflow.Operations.Triggers ou Workflow.Operations.Actions, com base na operação Workflow.Operations.Actions clientTrackingId ID de acompanhamento personalizado, se especificado 123456 actionName Nome da ação Compose runId ID da instância de execução do fluxo de trabalho 08585358375819913417237801890CU00 workflowId ID do fluxo de trabalho que executou a ação C7711D107E6647179C2E15FE2C2720CE nome do fluxo de trabalho Nome do fluxo de trabalho que executou a ação Fluxo de trabalho de solicitação-resposta-fluxo de trabalho nome_da_solução Nome da propriedade controlada, se especificado LA-AppInsights operation_Name Nome da operação que executou a ação. Nesse caso, esse nome é o mesmo que o nome do fluxo de trabalho. Fluxo de trabalho de solicitação-resposta-fluxo de trabalho operation_Id ID do componente ou fluxo de trabalho que acabou de ser executado. Esse ID é o mesmo que o valor runId para a instância de execução do fluxo de trabalho. Se existirem exceções ou dependências, esse valor transcende as tabelas para que você possa vincular esse registro de ação a essas exceções ou dependências. 08585358375819913417237801890CU00 operation_ParentId ID vinculável para o fluxo de trabalho que chamou a ação f95138daff8ab129
Consultar apenas eventos de gatilho ou ação
Você pode criar uma consulta na tabela Solicitações para exibir um subconjunto de eventos de operação, com base na categoria de operação e no nome do fluxo de trabalho.
Se necessário, selecione o intervalo de tempo que deseja revisar. Por padrão, esse valor é as últimas 24 horas.
Para exibir todos os eventos de gatilho em um fluxo de trabalho específico, crie e execute uma consulta com o valor da propriedade customDimensions.Category definido como Workflow.Operations.Triggers e operation_Name definido como o nome do fluxo de trabalho, por exemplo:
requests | where customDimensions.Category == "Workflow.Operations.Triggers" and operation_Name == "Request-Response-Workflow"
Para exibir todos os eventos de ação em um fluxo de trabalho específico, crie uma consulta com o valor da propriedade customDimensions.Category definido como Workflow.Operations.Actions e operation_Name definido como o nome do fluxo de trabalho, por exemplo:
requests | where customDimensions.Category == "Workflow.Operations.Actions" and operation_Name == "Request-Response-Workflow"
Eventos de acionamento ou gatilho de consulta por tipo de operação
Você pode criar uma consulta na tabela Solicitações para exibir eventos para um gatilho ou tipo de ação específico.
Se necessário, selecione o intervalo de tempo que deseja revisar. Por padrão, esse valor é as últimas 24 horas.
Para exibir todos os eventos de operação com um tipo de gatilho específico, crie e execute uma consulta com o valor customDimensions.triggerType definido para o tipo de gatilho desejado, por exemplo:
requests | where customDimensions.triggerType == "Request"
Para exibir todos os eventos de operação com um tipo de ação específico, crie e execute uma consulta com o valor customDimensions.actionType definido para o tipo de ação desejado, por exemplo:
requests | where customDimensions.actionType == "Compose"
Acionador de consulta e eventos de ação por ID de execução do fluxo de trabalho
Você pode criar uma consulta na tabela Solicitações para exibir um subconjunto de eventos de operação, com base na ID de execução do fluxo de trabalho. Esse ID de execução do fluxo de trabalho é o mesmo ID que você pode encontrar no histórico de execução do fluxo de trabalho.
Se necessário, selecione o intervalo de tempo que deseja revisar. Por padrão, esse valor é as últimas 24 horas.
Para exibir todos os eventos de operação com uma ID de execução de fluxo de trabalho específica, crie e execute uma consulta com o valor operation_Id definido como ID de execução do fluxo de trabalho, por exemplo:
requests | where operation_Id == "08585287554177334956853859655CU00"
Acionador de consulta e eventos de ação por ID de acompanhamento do cliente
Você pode criar uma consulta na tabela Solicitações para exibir um subconjunto de eventos de operação, com base no nome do fluxo de trabalho e na ID de acompanhamento do cliente.
Se necessário, selecione o intervalo de tempo que deseja revisar. Por padrão, esse valor é as últimas 24 horas.
Para exibir todos os eventos de operação com um ID de acompanhamento de cliente específico em um fluxo de trabalho específico, crie e execute uma consulta com o valor operation_Name definido como o nome do fluxo de trabalho e o valor da propriedade clientTrackingId definido como o valor desejado, por exemplo:
requests | where operation_Name == "Request-Response-Workflow" | extend correlation = todynamic(tostring(customDimensions.correlation)) | where correlation.clientTrackingId == "123456"
Acionador de consulta e eventos de ação por nome da solução
Você pode criar uma consulta na tabela Solicitações para exibir um subconjunto de eventos de operação, com base no nome do fluxo de trabalho e no nome da solução.
Se necessário, selecione o intervalo de tempo que deseja revisar. Por padrão, esse valor é as últimas 24 horas.
Para exibir todos os eventos de operação com um ID de acompanhamento de cliente específico em um fluxo de trabalho específico, crie e execute uma consulta com o valor operation_Name definido como o nome do fluxo de trabalho e o valor da propriedade solutionName definido como o valor desejado, por exemplo:
requests | where operation_Name == "Request-Response-Workflow" and customDimensions has "trackedProperties" | extend trackedProperties = todynamic(tostring(customDimensions.trackedProperties)) | where trackedProperties.solutionName == "LA-AppInsights"
Tentativas de repetição
Para mostrar como esses dados entram na tabela Solicitações, o exemplo de fluxo de trabalho padrão a seguir usa uma ação HTTP que chama uma URL, que não resolve. O fluxo de trabalho também tem uma política de repetição definida como um intervalo fixo que tenta novamente três vezes, uma vez a cada 60 segundos.
Gatilho de consulta e eventos de ação para tentativas de repetição
Você pode criar uma consulta na tabela Solicitações para exibir um subconjunto de eventos de operação com tentativas de repetição.
Se necessário, selecione o intervalo de tempo que deseja revisar. Por padrão, esse valor é as últimas 24 horas.
Para exibir apenas eventos de gatilho e ação com histórico de novas tentativas, crie e execute a seguinte consulta no Application Insights:
requests | extend retryHistory = tostring(tostring(customDimensions.retryHistory)) | where isnotempty(retryHistory)
Para exibir as tentativas de repetição de uma operação específica com uma política de repetição, expanda a linha dessa operação.
O exemplo a seguir mostra os detalhes expandidos para a ação HTTP :
Os valores da propriedade success e resultCode indicam que a ação HTTP falhou. Junto com as propriedades descritas na tabela Consultar as Solicitações para todos os eventos de gatilho e ação, o registro contém as seguintes informações, que incluem três tentativas de repetição:
Property Description Exemplo retryHistory Detalhes do histórico de uma ou mais tentativas de repetição code Tipo de erro para uma tentativa de repetição específica erro Detalhes sobre o erro específico que aconteceu
Eventos de acionamento e ação de consulta para uso do conector
Você pode criar uma consulta na tabela Solicitações para exibir um subconjunto de eventos de operação, com base no uso específico do conector.
Se necessário, selecione o intervalo de tempo que deseja revisar. Por padrão, esse valor é as últimas 24 horas.
Para exibir todos os eventos de gatilho usando um tipo de conector específico, crie e execute uma consulta com as seguintes propriedades e valores:
requests | where customDimensions.Category == "Workflow.Operations.Triggers" and customDimensions.triggerType =="ApiConnectionWebhook" and customDimensions.apiName =="commondataservice"
Property Valor de exemplo customDimensions.Category Workflow.Operations.Triggers customDimensions.triggerType O tipo de operação, por exemplo, ApiConnectionWebhook customDimensions.apiName O nome da API do conector no formato JSON, por exemplo, commondataservice para o conector Microsoft Dataverse Para exibir todos os eventos de ação com uso específico do conector, crie e execute uma consulta com o valor customDimensions.Category definido como Workflow.Operations.Actions, o valor customDimensions.triggerType definido como o tipo de operação e o customDimensions.apiName definido como o nome da API do conector no formato JSON, por exemplo:
Property Valor de exemplo customDimensions.Category Workflow.Operations.Actions customDimensions.triggerType O tipo de operação, por exemplo, ApiConnection customDimensions.apiName O nome da API do conector no formato JSON, por exemplo, office365 para o conector do Microsoft Office 365 Outlook requests | where customDimensions.Category == "Workflow.Operations.Actions" and customDimensions.actionType == "ApiConnection" and customDimensions.apiName == "office365"
Para gatilhos e ações, o Application Insights diferencia entre os tipos de conexões existentes. Você pode ver valores diferentes nos campos actionType e triggerType com base no fato de a conexão ter ApiConnection, ApiConnectionWebhook, o tipo básico interno, como Request, ou o tipo ServiceProvider baseado em provedor de serviços interno.
Tabela de rastreamentos
A tabela Rastreamentos contém campos que controlam dados sobre os seguintes eventos em execuções de fluxo de trabalho padrão:
Eventos de início e fim do fluxo de trabalho
Essas informações são representadas como dois eventos distintos devido ao potencial para execuções de fluxo de trabalho de longa duração.
Envio e recebimento de eventos em lote
Para obter mais informações, consulte Usando operações em lote internas em aplicativos lógicos do Azure (padrão)
A lista a seguir tem consultas de exemplo que você pode criar e executar na tabela Traces:
Task | Passos |
---|---|
Exibir eventos de início e término em todas as execuções de fluxo de trabalho | Consulta de eventos de início e fim em todas as execuções de fluxo de trabalho |
Exibir eventos de início e término em uma execução de fluxo de trabalho específica | Consulta de eventos iniciais e finais em uma execução de fluxo de trabalho |
Exibir eventos de envio e recebimento em lote em todas as execuções de fluxo de trabalho | Consulta de eventos de envio e recebimento em lote em todas as execuções de fluxo de trabalho |
Consulta de eventos de início e fim em todas as execuções de fluxo de trabalho
Você pode criar uma consulta na tabela Rastreamentos para exibir todos os eventos de início e fim de todas as execuções de fluxo de trabalho.
Se necessário, selecione o intervalo de tempo que deseja revisar. Por padrão, esse valor é as últimas 24 horas.
Crie e execute uma consulta com o valor customDimensions.Category definido como Workflow.Operations.Runs, por exemplo:
traces | where customDimensions.Category == "Workflow.Operations.Runs"
Consulta de eventos de início e fim em uma execução de fluxo de trabalho específica
Você pode criar uma consulta na tabela Rastreamentos para exibir os eventos de início e fim de uma execução de fluxo de trabalho específica.
Se necessário, selecione o intervalo de tempo que deseja revisar. Por padrão, esse valor é as últimas 24 horas.
Crie e execute uma consulta com o valor customDimensions.Category definido como Workflow.Operations.Runs e o valor operation_Id definido como ID de execução do fluxo de trabalho, por exemplo:
traces | where customDimensions.Category == "Workflow.Operations.Runs" | and operation_Id == "08585287571846573488078100997CU00"
Consulta de eventos de envio e recebimento em lote em todas as execuções de fluxo de trabalho
Você pode criar uma consulta na tabela Rastreamentos para exibir os eventos de envio e recebimento em lote em todas as execuções de fluxo de trabalho.
Se necessário, selecione o intervalo de tempo que deseja revisar. Por padrão, esse valor é as últimas 24 horas.
Crie e execute uma consulta com o valor customDimensions.Category definido como Workflow.Operations.Runs e o valor operation_Id definido como ID de execução do fluxo de trabalho, por exemplo:
traces | where customDimensions.Category == "Workflow.Operations.Batch"
Tabela de exceções
A tabela Exceptions contém campos que controlam dados sobre eventos de exceção em execuções de fluxo de trabalho padrão. Para mostrar como os dados entram nesses campos, suponha que você tenha o seguinte exemplo de fluxo de trabalho padrão que começa com o gatilho Solicitação, seguido pela ação Redigir e pela ação Resposta. A ação Compor usa uma expressão que divide um valor por zero, o que gera uma exceção:
Consulta de eventos de exceção em todas as execuções de fluxo de trabalho
Você pode criar uma consulta na tabela Exceptions para exibir os eventos de exceção em todas as execuções de fluxo de trabalho.
Se necessário, selecione o intervalo de tempo que deseja revisar. Por padrão, esse valor é as últimas 24 horas.
Para exibir todos os eventos de exceção, crie e execute a seguinte consulta no Application Insights:
exceptions | sort by timestamp desc
Para exibir os detalhes de uma exceção específica, expanda a linha dessa exceção:
O exemplo a seguir mostra a exceção expandida para a ação Compor e detalhes sobre a exceção:
Property Description problemId Tipo de exceção ou uma breve descrição sobre a exceção que aconteceu outerMessage Descrição mais detalhada sobre a exceção detalhes Informações detalhadas e mais completas sobre a exceção clientTrackingId ID de acompanhamento do cliente, se especificado workflowId ID do fluxo de trabalho que sofreu a exceção nome do fluxo de trabalho Nome do fluxo de trabalho que sofreu a exceção runId ID da instância de execução do fluxo de trabalho actionName Nome da ação que falhou com a exceção operation_Name Nome do fluxo de trabalho que sofreu a exceção operation_Id ID do componente ou fluxo de trabalho que acabou de ser executado. Esse ID é o mesmo que o valor runId para a instância de execução do fluxo de trabalho. Esse valor transcende as tabelas para que você possa vincular esse registro de exceção à instância de execução do fluxo de trabalho. operation_ParentId ID do fluxo de trabalho que chamou a ação, que você pode vincular à ID da ação na tabela Solicitações Para exibir as exceções para um fluxo de trabalho específico, crie e execute a seguinte consulta:
exceptions | where operation_Name contains "Request-Response-Workflow-Exception"
Tabela de dependências
A tabela Dependências contém campos que controlam dados sobre eventos de dependência em execuções de fluxo de trabalho padrão. Esses eventos são emitidos quando um recurso chama outro recurso e quando ambos os recursos usam o Application Insights. Exemplos de Aplicativos Lógicos do Azure incluem um serviço chamando outro serviço por HTTP, um banco de dados ou sistema de arquivos. O Application Insights mede a duração das chamadas de dependência e se essas chamadas são bem-sucedidas ou falham, juntamente com informações, como o nome da dependência. Você pode investigar chamadas de dependência específicas e correlacioná-las a solicitações e exceções.
Para mostrar como os dados entram nesses campos, suponha que você tenha o seguinte exemplo de fluxo de trabalho pai padrão que chama um fluxo de trabalho filho por HTTP usando a ação HTTP :
Consulta de eventos de dependência em um fluxo de trabalho específico
Você pode criar uma consulta na tabela Dependências para exibir os eventos de dependência em uma execução de fluxo de trabalho específica.
Se necessário, selecione o intervalo de tempo que deseja revisar. Por padrão, esse valor é as últimas 24 horas.
Para exibir eventos de dependência entre o fluxo de trabalho pai e o fluxo de trabalho filho, crie e execute a seguinte consulta:
union requests, dependencies | where operation_Id contains "<runId>"
Essa consulta usa o operador union para retornar registros da tabela Solicitações e da tabela Dependências. A consulta também usa o valor da propriedade operation_Id para fornecer o link entre registros, especificando o valor runId do fluxo de trabalho desejado, por exemplo:
union requests, dependencies | where operation_Id contains "08585355753671110236506928546CU00"
O exemplo a seguir mostra um evento de dependência para o fluxo de trabalho especificado, incluindo registros para os eventos de operação no fluxo de trabalho pai da tabela Requests e, em seguida, um registro de dependência da tabela Dependencies:
Para os registros de eventos de operação, a coluna itemType mostra seus tipos de registro como solicitação. Para o registro de dependência, a coluna itemType indica o tipo de registro como dependência.
Property Description runId ID da instância de execução do fluxo de trabalho actionName Nome da ação onde o evento de dependência acontece operation_Id ID para o fluxo de trabalho especificado. Esse ID é o mesmo que o valor runId para a instância de execução do fluxo de trabalho. Esse valor transcende as tabelas para que você possa vincular esse registro de dependência à instância de execução do fluxo de trabalho. operation_ParentId ID da ação em que o evento de dependência acontece, que também vincula o registro de evento de operação e o registro de evento de dependência juntos
Com sua consulta, você também pode visualizar a chamada de dependência de um fluxo de trabalho pai para um fluxo de trabalho filho ao usar o mapa do aplicativo no Application Insights. O valor operation_Id em sua consulta fornece o link que torna essa visualização possível.
Para abrir o mapa do aplicativo, no menu de recursos do Application Insights, em Investigar, selecione Mapa do aplicativo.
Filtrar eventos
No Application Insights, você pode filtrar eventos das seguintes maneiras:
Crie e execute consultas conforme descrito nas seções anteriores.
Filtre na origem especificando critérios a serem avaliados antes de emitir eventos.
Ao aplicar filtros na origem, você pode reduzir a quantidade de armazenamento necessário e, como resultado, os custos operacionais.
Aplicar filtragem na origem
Na tabela Requests ou na tabela Traces, um registro tem um nó chamado customDimensions, que contém uma propriedade Category . Por exemplo, na tabela Requests, o registro de solicitação para um evento de gatilho Batch é semelhante ao exemplo a seguir:
Na tabela Solicitações, os seguintes valores de propriedade Category podem ajudá-lo a diferenciar e associar diferentes níveis de verbosidade:
Valor da categoria | Description |
---|---|
Workflow.Operations.Triggers | Identifica um registro de solicitação para um evento de gatilho |
Workflow.Operations.Actions | Identifica um registro de solicitação para um evento de ação |
Para cada valor de Categoria , você pode definir de forma independente o nível de detalhamento no arquivo de host.json para seu recurso ou projeto de aplicativo lógico. Por exemplo, para retornar somente os registros de eventos de gatilho ou ação com erros, no arquivo host.json , você pode adicionar o seguinte objeto JSON de log , que contém um objeto JSON logLevel com os níveis de detalhamento desejados:
{
"logging": {
"logLevel": {
"Workflow.Operations.Actions": "Error",
"Workflow.Operations.Triggers": "Error"
}
}
}
Para registros de tabela Traces, os exemplos a seguir mostram maneiras de alterar o nível de detalhamento de eventos:
{
"logging": {
"logLevel": {
"Workflow.Host": "Warning",
"Workflow.Jobs": "Warning",
"Workflow.Runtime": "Warning"
}
}
}
O exemplo a seguir define o nível de verbosidade padrão do log como Warning, mas mantém o nível de verbosidade em Information para eventos de execução de gatilho, ação e fluxo de trabalho:
{
"logging": {
"logLevel": {
"default": "Warning",
"Workflow.Operations.Actions": "Information",
"Workflow.Operations.Runs": "Information",
"Workflow.Operations.Triggers": "Information"
}
}
}
Se você não especificar nenhum valor logLevel , o nível de verbosidade padrão será Information. Para obter mais informações, consulte Configurar níveis de log.
Remover erros de dependência de armazenamento
Para filtrar erros de dependência de armazenamento, como erros 404 Não Encontrados e 412 Falha de Pré-condição, defina o nível de log Host.Workflow como Nenhum, por exemplo:
{
"logging": {
"logLevel": {
"Workflow.Host": "Warning",
"Workflow.Jobs": "Warning",
"Workflow.Runtime": "Warning",
"Host.Workflow": "None"
}
}
}
No portal do Azure, abra seu recurso de aplicativo lógico padrão.
No menu do aplicativo lógico, em Ferramentas de Desenvolvimento, selecione Ferramentas Avançadas. Na página Ferramentas Avançadas, selecione Ir, que abre as ferramentas Kudu.
Na página Kudu, no menu Debug console, selecione CMD. Na tabela de diretórios de pastas, navegue até o seguinte arquivo e selecione Editar: site/wwwroot/host.json
No arquivo host.json, adicione o objeto JSON de log com os valores logLevel definidos para os níveis de detalhamento desejados:
{ "logging": { "logLevel": { "Workflow.Operations.Actions": "<verbosity-level>", "Workflow.Operations.Triggers": "<verbosity-level>" } } }
Exibir métricas de fluxo de trabalho no Application Insights
Com os aprimoramentos de telemetria no Application Insights, você também obtém informações sobre o fluxo de trabalho no painel Métricas.
Abra o painel Métricas e configure filtros básicos
No portal do Azure, abra seu recurso do Application Insights, se ainda não tiver sido aberto.
No menu de recursos do Application Insights, em Monitoramento, selecione Métricas.
Na lista Escopo, selecione sua instância do Application Insights.
Na lista Metric Namespace , selecione workflow.operations.
Na lista Métrica , selecione uma métrica, por exemplo, Execuções Concluídas.
Na lista Agregação, selecione um tipo, por exemplo, Contagem ou Média.
Quando terminar, o painel Métricas mostra um gráfico com as execuções do fluxo de trabalho concluídas.
Filtrar com base em um fluxo de trabalho específico
Ao habilitar métricas multidimensionais no painel Métricas, você pode direcionar um subconjunto dos eventos gerais capturados no Application Insights e filtrar eventos com base em um fluxo de trabalho específico.
No recurso do Application Insights, habilite métricas multidimensionais.
No Application Insights, abra o painel Métricas.
Na barra de ferramentas do gráfico, selecione Adicionar filtro.
Na lista Propriedade , selecione Fluxo de trabalho.
Na lista Operador , selecione o sinal de igual (=).
Na lista Valores, selecione os fluxos de trabalho desejados.
Visualizar dados e métricas de log "ao vivo"
Com a telemetria aprimorada do Application Insights habilitada, você pode exibir dados de log quase em tempo real e outras métricas de sua instância do Application Insights no portal do Azure. Você pode usar essa visualização para plotar solicitações de entrada, solicitações de saída e integridade geral. Você também obtém uma tabela para diagnósticos de nível de rastreamento.
No portal do Azure, abra seu recurso do Application Insights, se ainda não tiver sido aberto.
No menu de recursos do Application Insights, em Investigar, selecione Métricas dinâmicas.
A página Métricas em tempo real mostra os dados de log e outras métricas, por exemplo:
Para obter mais informações, veja Live Metrics: Monitorizar e diagnosticar com latência de 1 segundo.
Nota
Como os fluxos de trabalho do aplicativo lógico padrão são baseados no Azure Functions, o Live Metrics dá suporte a esses fluxos de trabalho do aplicativo lógico.
Transmitir e visualizar a saída de depuração dos arquivos de log do aplicativo
Com a telemetria aprimorada do Application Insights habilitada, você pode transmitir informações detalhadas de depuração no portal do Azure para os arquivos de log do seu aplicativo. Essas informações são equivalentes à saída gerada pela depuração do fluxo de trabalho no ambiente local do Visual Studio Code.
No portal do Azure, abra seu recurso de aplicativo lógico padrão.
No menu de recursos do aplicativo lógico, em Monitoramento, selecione Fluxo de log.
A página Fluxo de log se conecta à sua instância do Application Insights e mostra a saída de depuração. Por exemplo, a saída a seguir inclui chamadas de solicitação e resposta, entre outras informações: