Partilhar via


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

  1. No portal do Azure, abra seu recurso de aplicativo lógico padrão.

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

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

  4. 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.

  1. No portal do Azure, no menu do aplicativo lógico, em Configurações, selecione Application Insights.

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

A captura de tela mostra o portal do Azure e o designer de fluxo de trabalho padrão com gatilho e ações.

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:

A captura de tela mostra o portal do Azure, o fluxo de trabalho padrão, o gatilho de solicitação selecionado, a guia Configurações e a ID de acompanhamento personalizada.

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 captura de tela mostra o portal do Azure, o fluxo de trabalho padrão, a ação de composição selecionada, a guia Configurações e a propriedade rastreada.

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.

  1. Se necessário, selecione o intervalo de tempo que deseja revisar. Por padrão, esse valor é as últimas 24 horas.

  2. 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:

    A captura de tela mostra o Application Insights, a consulta, a guia Resultados e os eventos de operação da execução do fluxo de trabalho.

    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.
  3. 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 :

    A captura de tela mostra o Application Insights, a guia Resultados para o gatilho Request e detalhes.

    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 :

    A captura de tela mostra o Application Insights, a guia Resultados para a ação Compor e os detalhes.

    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.

  1. Se necessário, selecione o intervalo de tempo que deseja revisar. Por padrão, esse valor é as últimas 24 horas.

  2. 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"
    

    A captura de tela mostra a consulta da tabela Solicitações somente para gatilhos.

  3. 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"
    

    A captura de tela mostra a consulta da tabela Solicitações apenas para ações.

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.

  1. Se necessário, selecione o intervalo de tempo que deseja revisar. Por padrão, esse valor é as últimas 24 horas.

  2. 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"
    

    A captura de tela mostra a consulta da tabela Solicitações para o tipo de gatilho Solicitação.

  3. 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"
    

    A captura de tela mostra a consulta da tabela Solicitações para o tipo de ação Compor.

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.

  1. Se necessário, selecione o intervalo de tempo que deseja revisar. Por padrão, esse valor é as últimas 24 horas.

  2. 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"
    

    A captura de tela mostra a consulta da tabela Solicitações com base na ID de execução do fluxo de trabalho.

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.

  1. Se necessário, selecione o intervalo de tempo que deseja revisar. Por padrão, esse valor é as últimas 24 horas.

  2. 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"
    

    A captura de tela mostra os resultados da consulta usando o nome da operação e o ID de acompanhamento do cliente.

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.

  1. Se necessário, selecione o intervalo de tempo que deseja revisar. Por padrão, esse valor é as últimas 24 horas.

  2. 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"
    

    A captura de tela mostra os resultados da consulta usando o nome da operação e o nome da solução.

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.

A captura de tela mostra o portal do Azure, o fluxo de trabalho padrão, a ação HTTP selecionada, a guia Configurações e a política de novas tentativas.

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.

  1. Se necessário, selecione o intervalo de tempo que deseja revisar. Por padrão, esse valor é as últimas 24 horas.

  2. 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)
    
  3. 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 :

    A captura de tela mostra o Application Insights, a guia Resultados para a ação HTTP e detalhes.

    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.

  1. Se necessário, selecione o intervalo de tempo que deseja revisar. Por padrão, esse valor é as últimas 24 horas.

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

    A captura de tela mostra o Application Insights, guia Resultados para eventos de gatilho do Microsoft Dataverse com conexão ApiConnectionWebhook.

  3. 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"
    

    A captura de tela mostra o Application Insights, guia Resultados para eventos de ação do Microsoft Office 365 Outlook com conexão ApiConnection.

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:

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.

  1. Se necessário, selecione o intervalo de tempo que deseja revisar. Por padrão, esse valor é as últimas 24 horas.

  2. Crie e execute uma consulta com o valor customDimensions.Category definido como Workflow.Operations.Runs, por exemplo:

    traces
    | where customDimensions.Category == "Workflow.Operations.Runs"
    

    A captura de tela mostra o Application Insights, a guia Resultados para iniciar e eventos em todas as execuções do fluxo de trabalho.

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.

  1. Se necessário, selecione o intervalo de tempo que deseja revisar. Por padrão, esse valor é as últimas 24 horas.

  2. 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"
    

    A captura de tela mostra o Application Insights, a guia Resultados para iniciar e eventos para uma execução específica.

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.

  1. Se necessário, selecione o intervalo de tempo que deseja revisar. Por padrão, esse valor é as últimas 24 horas.

  2. 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"
    

    A captura de tela mostra o Application Insights, a guia Resultados para envio em lote e eventos de recebimento em lote em todas as execuções de fluxo de trabalho.

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:

A captura de tela mostra o portal do Azure, o designer de fluxo de trabalho padrão, o gatilho Solicitar, a ação Redigir com uma expressão geradora de exceção e a ação Resposta.

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.

  1. Se necessário, selecione o intervalo de tempo que deseja revisar. Por padrão, esse valor é as últimas 24 horas.

  2. Para exibir todos os eventos de exceção, crie e execute a seguinte consulta no Application Insights:

    exceptions
    | sort by timestamp desc
    
  3. 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:

    A captura de tela mostra o Application Insights, a guia Resultados para eventos de exceção com o evento de exceção para a ação Redigir expandido e detalhes da 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
  4. 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 :

A captura de tela mostra o portal do Azure, designer de fluxo de trabalho padrão com fluxo de trabalho pai usando a ação HTTP para chamar um fluxo de trabalho filho.

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.

  1. Se necessário, selecione o intervalo de tempo que deseja revisar. Por padrão, esse valor é as últimas 24 horas.

  2. 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:

    A captura de tela mostra o Guia Application Insights, Resultados com eventos de dependência para um fluxo de trabalho específico.

    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.

A captura de tela mostra o Application Insights e o mapa do aplicativo com dependência entre o fluxo de trabalho pai e o fluxo de trabalho filho.

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:

A captura de tela mostra a tabela do Application Insights com Solicitações e o registro de um evento de gatilho de mensagens em lote.

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"
      }
   }
}
  1. No portal do Azure, abra seu recurso de aplicativo lógico padrão.

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

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

  4. 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

  1. No portal do Azure, abra seu recurso do Application Insights, se ainda não tiver sido aberto.

  2. No menu de recursos do Application Insights, em Monitoramento, selecione Métricas.

  3. Na lista Escopo, selecione sua instância do Application Insights.

  4. Na lista Metric Namespace , selecione workflow.operations.

  5. Na lista Métrica , selecione uma métrica, por exemplo, Execuções Concluídas.

  6. 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.

    A captura de tela mostra o painel e o gráfico do Application Insights with Metrics que mostra o número de execuções de fluxo de trabalho concluídas ao longo do tempo.

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.

  1. No recurso do Application Insights, habilite métricas multidimensionais.

  2. No Application Insights, abra o painel Métricas.

  3. Na barra de ferramentas do gráfico, selecione Adicionar filtro.

  4. Na lista Propriedade , selecione Fluxo de trabalho.

  5. Na lista Operador , selecione o sinal de igual (=).

  6. Na lista Valores, selecione os fluxos de trabalho desejados.

    A captura de tela mostra o painel do Application Insights com métricas e o gráfico com métricas multidimensionais.

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.

  1. No portal do Azure, abra seu recurso do Application Insights, se ainda não tiver sido aberto.

  2. 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:

    A captura de tela mostra o portal do Azure e o menu do Application Insights com o item selecionado chamado Métricas dinâmicas.

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.

  1. No portal do Azure, abra seu recurso de aplicativo lógico padrão.

  2. 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:

    A captura de tela mostra o portal do Azure e o menu do aplicativo lógico padrão com o item selecionado chamado Fluxo de log.

Próximos passos

Habilitar ou abrir o Application Insights