Compartilhar via


Analisar logs gerados pelo sistema usando o Application Insights

Você pode conectar seus aplicativos de tela a Application Insights, um recurso do Azure Monitor. O Application Insights inclui ferramentas de análise poderosas para ajudar você a diagnosticar problemas e a entender o que os usuários realmente fazem com seus aplicativos. É possível coletar informações para a tomar decisões comerciais melhores e aprimorar a qualidade de seus aplicativos.

Neste início rápido, usamos um aplicativo de tela chamado Kudos para explorar os conceitos de logs gerados pelo sistema em aplicativos de tela e aplicá-los aos seus aplicativos. O aplicativo de exemplo Kudos faz parte de um pacote de aplicativos para participação de funcionários disponível para download no Kit de Início da Experiência do Funcionário.

Pré-requisitos

Observação

Para exibir informações de telemetria, o administrador do locatário deve habilitar Insights de aplicativo de tela. Entre como administrador no centro de administração do Power Platform. Acesse Configurações > Configurações do locatário > Insights de aplicativo de tela. No painel Insights do aplicativo de tela, defina a alternância como Ativado e salve as alterações. Para obter mais informações, consulte Configurações do locatário.

Opcional

Criar um recurso do Application Insights

Antes que possa enviar logs gerados pelo sistema a partir de um aplicativo, é necessário criar um recurso do Application Insights para armazenar os eventos.

  1. Entre no portal do Azure.

  2. Procure Application Insights:

    Application Insights.

  3. Criar um recurso do Application Insights:

    Adicionar um recurso do Application Insights.

  4. Insira os valores apropriados e selecione Revisar + criar.

    Para obter mais detalhes, leia Criar um recurso do Application Insights.

    Crie um recurso.

  5. Depois que as instância do Application Insights for criada, copie o Chave de instrumentação na visão geral da instância para uso em uma próxima etapa.

    Copie a chave de instrumentação.

Conectar seu aplicativo ao Application Insights

Observação

  • Ao especificar uma chave de instrumentação, esteja ciente de que os dados podem ser enviados entre locatários. Os eventos de rastreamento são enviados para o recurso do de insights de aplicativo que corresponde à chave de instrumentação que você definiu para seu aplicativo, mesmo que a instância de destino do de insights de aplicativo esteja em um locatário diferente do aplicativo.
  • Tenha cuidado ao importar arquivos .msapp existentes, pois as chaves de instrumentação para insights de aplicativo podem estar presentes. Abra manualmente o aplicativo após a importação para verificar se a chave de instrumentação correta dos insights de aplicativo está sendo usada.
  1. Entre no Power Apps.

  2. Selecione Aplicativos no painel de navegação esquerdo. Na lista de aplicativos, selecione o aplicativo Kudos e, em seguida, selecione Editar:

    Editar o aplicativo Kudos.

    Observação

    Você também pode criar um aplicativo ou editar qualquer aplicativo existente.

  3. Selecione o objeto Aplicativo na exibição da árvore de navegação à esquerda e cole a Chave de Instrumentação:

    Adicione a chave de instrumentação.

  4. Salve e Publique seu aplicativo.

  5. Execute o aplicativo publicado e navegue nas diferentes telas.

Conforme navega pelas telas do aplicativo, os eventos serão registrados automaticamente no Application Insights, incluindo os detalhes de uso, como:

  • De onde o aplicativo foi acessado
  • Quais dispositivos foram usados
  • Os tipos de navegador usados

Importante

Você deve executar o aplicativo publicado para enviar eventos para o Application Insights. Os eventos não são enviados para o Application Insights quando você visualiza o aplicativo no Power Apps Studio.

Exibir eventos no Application Insights

  1. Entre no portal do Azure e abra o recurso do Application Insights que você criou anteriormente.

  2. Role para baixo no painel de navegação esquerdo e selecione Usuários na seção Uso.

    Observação

    A exibição de Usuários mostra os detalhes de uso do aplicativo, como:

    • Número de usuários que visualizaram o aplicativo
    • Número de sessões de usuário
    • Número de eventos registrados
    • Detalhes dos sistemas operacionais e da versão do navegador dos usuários
    • Região e localização dos usuários

    Saiba mais sobre usuários, sessões e análise de eventos no Application Insights.

  3. Selecione uma das sessões do usuário para analisar detalhes específicos. É possível ver informações como a duração da sessão e as telas visitadas:

    Detalhes de uso de usuários.

  4. Selecione a exibição de Eventos no painel de navegação esquerdo na seção Uso. É possível ver um resumo de todas as telas exibidas em todas as sessões do aplicativo:

    Detalhes do evento para o aplicativo.

Dica

Há mais recursos do Application Insights disponíveis, como:

Criar eventos de rastreamento personalizados

Você pode gravar rastreamentos personalizados diretamente no Application Insights e começar a analisar informações específicas para o seu cenário. A função Rastreamento permite coletar:

  • Informações granulares de uso de controles nas telas
  • Quais usuários específicos estão acessando seu aplicativo
  • Quais erros ocorrem

O rastreamento também pode ajudar a diagnosticar problemas porque é possível enviar uma trilha de informações à medida que os usuários navegam pelo aplicativo e executam ações diferentes. Mensagens de rastreamento enviadas ao Application Insights têm uma das três gravidades:

  • Informações
  • Aviso
  • Error

Dependendo de seu cenário, você pode optar por enviar uma mensagem de rastreamento com a severidade apropriada. É possível consultar os dados e executar ações específicas com base na severidade.

Observação

Se você estiver registrando quaisquer dados pessoais, esteja ciente de suas obrigações com relação a várias leis e regulamentos de privacidade. Consulte a Central de Confiabilidade da Microsoft e o Portal de Confiança do Serviço para maiores informações.

Agora, crie um componente no seu aplicativo para coletar feedback em cada tela e grave os eventos no Application Insights.

  1. Entre no Power Apps.

  2. Selecione Aplicativos no painel de navegação esquerdo. Na lista de aplicativos, selecione o aplicativo Kudos e, em seguida, selecione Editar.

    Observação

    Você também pode criar um aplicativo ou editar um aplicativo existente.

  3. Selecione a opção Componentes na Exibição de árvore:

    Componentes.

  4. Selecione Novo componente e redimensione a largura para 200 e a altura para 75:

    Altura e largura.

  5. Selecione Inserir no menu e, em seguida, selecione Ícones para adicionar o Emoji — Triste e o Emoji — Feliz:

    Adicionar ícones.

  6. Selecione Nova propriedade personalizada para criar uma propriedade personalizada:

    Criar propriedade personalizada.

  7. Insira o Nome e o Nome de exibição da propriedade, como FeedbackSceen.

  8. Insira a Descrição da propriedade.

  9. Selecione Tipo de Propriedade como Entrada e Tipo de dados como Tela:

    Propriedade personalizada.

    Observação

    A propriedade de entrada permite capturar o nome da tela e seu componente para que você possa registrar essas informações no Application Insights.

  10. Selecione o componente na Exibição de Árvore, selecione Mais ações () e, em seguida, selecione Renomear para renomear o componente com um nome representativo, como FeedbackComponent.

    Renomear componentes e ícones.

  11. Selecione os ícones, selecione Mais ações (), em seguida, selecione Renomear para renomear os ícones com nomes representativos, como FrownIcon e SmileIcon.

  12. Selecione FrownIcon, selecione a propriedade OnSelect e insira a seguinte expressão na barra de fórmulas:

    Trace(
       "App Feedback",
       TraceSeverity.Information,
           {
             UserName: User().FullName,
             UserEmail: User().Email,
             Screen: FeedbackComponent.FeedbackScreen.Name,
             FeedbackValue: "-1"
           }
         );
    Notify("Thanks for your feedback!");
    

    Fórmula do ícone de triste.

    Observação

    A expressão da fórmula envia UserName, UserEmail, Tela e Comentários (com o valor -1) para o Application Insights.

  13. Selecione SmileIcon, selecione a propriedade OnSelect e insira a seguinte expressão na barra de fórmulas:

    Trace(
       "App Feedback",
       TraceSeverity.Information,
           {
             UserName: User().FullName,
             UserEmail: User().Email,
             Screen: FeedbackComponent.FeedbackScreen.Name,
             FeebackValue: "1"
           }
         );
    Notify("Thanks for your feedback!");
    
  14. Adicione o componente a uma das telas no aplicativo:

    Adicionar componente de comentários.

  15. Selecione Salvar e, em seguida, selecione Publicar para salvar e publicar o aplicativo.

  16. Execute o aplicativo publicado e envie um comentário de feliz e de triste de suas telas.

    Importante

    Você deve executar o aplicativo publicado para enviar eventos para o Application Insights. Os eventos não são enviados para o Application Insights quando você visualiza o aplicativo no Power Apps Studio.

    Reproduzir aplicativo publicado.

Analisar dados no Application Insights

Agora, é possível começar a analisar os dados enviados usando a função Trace do aplicativo no Application Insights.

  1. Entre no portal do Azure e abra o recurso do Application Insights que você criou anteriormente:

    Selecione Application Insights.

  2. Selecione Logs em Monitoramento no painel de navegação esquerdo:

    Selecionar Logs.

  3. Digite a seguinte consulta e selecione Executar para ver o feedback recebido de seu aplicativo:

    traces
    | where message == "App Feedback"
    | order by timestamp
    

    Exibir comentários do aplicativo.

  4. Selecione uma linha nos resultados e expanda o campo customDimensions.

    Os valores de Tela, UserName, UserEmail e FeedbackValue para o evento OnSelect do ícone de feliz ou de triste em seu componente foram gravados. Valores também são registrados para cada evento enviado ao Application Insights, como appId, appName e appSessionId.

    Expandir dimensões personalizadas.

  5. Com a consulta de exemplo a seguir, é possível estender as propriedades das dimensões JSON personalizadas e projetar as colunas na exibição de resultados.

    traces
        | extend customdims = parse_json(customDimensions)
        | where message == "App Feedback"
        | project timestamp
            , message
            , AppName = customdims.['ms-appName']
            , AppId = customdims.['ms-appId']
            , FeedbackFrom = customdims.UserEmail
            , Screen = customdims.Screen
            , FeedbackValue = customdims.FeedbackValue
        | order by timestamp desc
    

    Estender a consulta customDimensions.

    Dica

    As Consultas de log são extremamente poderosas. Elas podem ser usadas para unir várias tabelas, agregar grandes quantidades de dados e executar operações complexas. Saiba mais sobre o uso de logs.

Monitorar erros não tratados (experimental)

[Esta seção contém a documentação de pré-lançamento e está sujeita a alterações.]

Importante

  • Este é um recurso experimental.
  • Os recursos experimentais não foram criados para uso em ambientes de produção e podem ter funcionalidade restrita. Esses recursos são disponibilizados antes de um lançamento oficial para que os clientes possam ter acesso antecipado e forneçam comentários.

Nem sempre é possível antecipar e planejar todos os erros que podem ocorrer durante a execução do aplicativo. Erros de fórmula do Power Fx não tratados são relatados aos usuários como mensagens de banner. Eles também podem ser relatados ao Application Insights para ajudar você a entender sua frequência e gravidade sem depender dos usuários do seu aplicativo para relatar problemas. Você também pode configurar alertas em tempo real quando ocorrem erros no runtime para adotar uma abordagem mais proativa.

Habilitar transmissão de erros ao Application Insights

Você precisa ativar a configuração que permite que o Power Apps passe erros do runtime não tratados para o Azure Application Insights.

Aviso

A habilitação dessa configuração pode gerar custos adicionais relacionados ao armazenamento de logs do Application Insights.

Para habilitar a transmissão de erros, vá para Configurações > Próximos recursos > Experimental > Transmitir erros ao Azure Application Insights enquanto mantém seu aplicativo de tela aberto para edição. Salve e publique seu aplicativo.

Habilite a configuração Transmitir erros ao Azure Application Insights.

Eventos de erros no Application Insights

Erros não tratados do Power Fx observados pelos usuários do runtime do aplicativo são relatados à tabela rastros. Erros não tratados podem ser identificados e diferenciados de outros eventos de erros pela mensagem de evento "Erro não tratado". A dimensão "severityLevel" desses eventos é 3 (TraceSeverity.Error).

Mensagens de erro detalhadas são fornecidas na dimensão "erros" da propriedade customDimension. Nas situações em que ocorreram vários erros durante a mesma operação, os erros são consolidados na dimensão "erros" de um único evento de rastreamento. As mensagens de erro são as mesmas relatadas no Monitor durante uma sessão de depuração ao vivo.

A consulta de exemplo a seguir identifica erros não tratados e expande todas as mensagens de erro incluídas no evento de rastreamento:

traces
    | where message == "Unhandled error"
    | extend customdims = parse_json(customDimensions)
    | extend errors = parse_json(tostring(customdims.['errors']))
    | mv-expand errors
    | project timestamp
        , itemId //unique identifier for the trace event
        , AppName = customdims.['ms-appName']
        , AppId = customdims.['ms-appId']
        , errors = errors.['Message']
    | order by timestamp desc

Exemplo de saída para exemplo de consulta.

Rastreamento de correlação (experimental)

[Esta seção contém a documentação de pré-lançamento e está sujeita a alterações.]

Importante

  • Este é um recurso experimental.
  • Os recursos experimentais não foram criados para uso em ambientes de produção e podem ter funcionalidade restrita. Esses recursos são disponibilizados antes de um lançamento oficial para que os clientes possam ter acesso antecipado e forneçam comentários.

As conexões com dados e serviços externos são fundamentais para a maioria dos aplicativos. O rastreamento de correlação gera e propaga informações de contexto para unir logs gerados pelo sistema em um aplicativo de tela e suas conexões, sujeito a determinadas limitações. Por exemplo, o aplicativo pode chamar um conector personalizado que, por sua vez, chama uma Função do Azure ou outra API REST. O rastreamento de correlação permite correlacionar as ações realizadas no aplicativo com as chamadas de API subjacentes entre as camadas. Isso pode ser útil na solução de problemas.

O rastreamento de correlação do aplicativo de tela é uma implementação do rastreamento de contexto e segue a Especificação W3C.

Habilitar rastreamento de correlação

Aviso

A habilitação dessa configuração pode gerar custos adicionais relacionados ao armazenamento de logs do Application Insights.

Para habilitar o recurso de rastreamento de correlação, vá para Configurações > Próximos recursos > Experimental > Habilitar o rastreamento de correlação do Azure Application Insights enquanto mantém o aplicativo de tela aberto para edição. Salve e publique seu aplicativo.

Habilite o rastreamento de correlação do Azure Application Insights.

Limitações

  • O rastreamento de correlação está disponível apenas para conectores personalizados. Outros tipos de conectores não são suportados.
  • As solicitações HTTP são capturadas no Application Insights somente se o serviço conectado também é conectado ao Application Insights.

Usar rastreamento de correlação

Quando ativado, o rastreamento de correlação adiciona um novo evento de log gerado pelo sistema na tabela dependências dos aplicativos de tela da instância do Application Insights. Este evento é registrado no momento em que uma resposta de uma chamada de rede é recebida. Os eventos de dependência capturam detalhes da chamada de rede, incluindo os cabeçalhos de solicitação e resposta, o código de status de resposta e a duração da chamada.

Evento de exemplo registrado na tabela de dependências.

Se o serviço conectado também estiver conectado ao Application Insights, um evento de log gerado pelo sistema adicional capturando a solicitação é gerado na tabela solicitações do serviço da instância do Application Insights. Alguns serviços do Azure, como o Azure Functions, podem ser conectados sem nenhuma codificação no portal do Azure. Tanto o aplicativo de tela quanto vários aplicativos e serviços conectados podem ser conectados à mesma instância do Application Insights.

Evento de exemplo registrado na tabela de solicitações.

As chamadas de rede para conectores com suporte podem ser associadas a outros logs gerados pelo sistema na dimensão "operation_Id". A consulta de exemplo a seguir mostra uma chamada de rede sendo feita juntamente com eventos de rastreamento emitidos durante uma sessão de aplicativo.

traces | union dependencies | union requests | union pageViews | union customEvents
| project timestamp
    , itemType
    , name
    , operation_Name
    , message
    , severityLevel
    , customDimensions
    , operation_Id
    , operation_ParentId
| where operation_Id == "0a7729e3e83c4e4d93cb4f51149f73b9" //placeholder operation_Id, replace
| order by timestamp asc

Exemplo de saída para o exemplo de consulta anterior.

Exportar dados para o Power BI

Você pode exportar seus dados do Application Insights e os resultados da consulta para o Power BI para análise e apresentação de dados.

  1. Entre no portal do Azure e abra o recurso do Application Insights que você criou anteriormente:

  2. Selecione Logs em Monitoramento no painel de navegação esquerdo:

  3. Na janela de consulta de análise de logs, selecione o menu Exportar.

  4. Selecione a opção Exportar para Power BI (consulta M) de baixar um arquivo de consulta do Power BI:

    Exportar consulta do Power BI.

  5. Abra o arquivo baixado em um editor de texto e copie a consulta na área de transferência.

  6. Abra Power BI.

  7. Selecione o menu Obter Dados na faixa de opções da Página Inicial e selecione Consulta em branco:

    Consulta em branco do Power BI.

  8. Na janela de consulta, selecione Editor Avançado. Cole a consulta na janela, selecione Concluído e selecione Fechar e Aplicar:

    Consulta avançada do Power BI.

Também é possível criar gráficos e visualizações no Power BI para representar os comentários recebidos no aplicativo, bem como tomar decisões e executar ações com base nos dados.

Gráficos e visualizações.

Contexto e dimensões do evento de Rastreamento padrão

Um conjunto de dimensões padrão também é adicionado à propriedade customDimensions em cada evento de Rastreamento. Essas dimensões podem ser usadas para identificar o aplicativo e as sessões do aplicativo em que os eventos ocorreram. Se você registrar em log dados personalizados adicionais usando a função de rastreamento, eles também serão exibidos nas dimensões personalizadas.

Nome da Dimensão Representa
ms-appId A ID do aplicativo que enviou o evento.
ms-appname O nome do aplicativo que enviou o evento.
ms-appSessionId A ID da sessão do aplicativo. Esse valor pode não ser preenchido em alguns cenários. Quando disponível, esse valor substitui a dimensão sessionID padrão do Application Insights.
ms-tenantID O identificador exclusivo do locatário em que o aplicativo é publicado.
ms-environmentId O nome do ambiente em que o aplicativo é publicado.
userId Um identificador exclusivo para o usuário final associado à sessão.
ms-duration Um valor calculado que mede o tempo que um usuário leva para navegar de uma tela para outra. Esse valor substitui a dimensão padrão de duração PageView do Application Insights.
sessionId Uma ID de sessão que pode ser usada para correlacionar todos os eventos associados a uma única sessão do aplicativo. Esse valor sempre estará presente e é recomendado para entender a contagem de sessões exclusivas. Esse valor é obtido da ID da sessão do player e é exibido ao visualizar os detalhes da sessão durante a reprodução do aplicativo. Às vezes, a ID de sessão pode obter um valor gerado pelo Application Insights padrão, aleatório e exclusivo. Esse valor padrão não é confiável e não se correlaciona com nenhum parâmetro específico do aplicativo.
Duração Um valor calculado que mede o tempo que um usuário leva para navegar de uma tela para outra. Esse valor é igual à duração relatada pela dimensão ms-duration.
ms-isTest Indica se a sessão está associada ao executor de teste do Test Studio.
ms-currentScreenName O nome da página na qual um usuário final está navegando (presente para eventos de navegação de página).
ms-targetScreenName O nome da página para a qual um usuário final está navegando (presente para eventos de navegação de página).

Cenários sem suporte

O Application Insights não oferece suporte aos cenários a seguir.

  • Os eventos do jogador offline não são capturados.
  • Os eventos do aplicativo móvel (iOS e Android) não são capturados quando o aplicativo é suspenso.
  • GCC e nuvens não públicas não são compatíveis.

Observação

Você pode nos falar mais sobre suas preferências de idioma para documentação? Faça uma pesquisa rápida. (Observe que esta pesquisa está em inglês)

A pesquisa levará cerca de sete minutos. Nenhum dado pessoal é coletado (política de privacidade).