Configurar o Log Analytics para o Power BI

O Power BI está se integrando ao Azure Log Analytics para permitir que administradores e proprietários de workspace Premium configurem, nas respectivas assinaturas do Power BI, uma conexão do Log Analytics. Este artigo descreve como funciona a integração entre o Log Analytics e o Power BI e como configurar o Log Analytics para o seu ambiente.

Há dois elementos para fazer com que o Azure Log Analytics funcione para o Power BI:

  • Navegue até sua assinatura no portal do Azure.
  • Habilite o Log Analytics para o Power BI no portal de Administração do Power BI.

As seções a seguir conduzem você pelas etapas de cada um deles, respectivamente.

Captura de tela da guia de conexões do Azure aberta no painel de configurações.

Pré-requisitos

Para configurar a integração do Log Analytics com o Power BI, crie um workspace do Log Analytics no portal do Azure. Você também precisa dar permissão no Azure para o serviço do Power BI gravar logs. Os requisitos exatos são:

  • Acesso de colaborador à assinatura do Azure.
  • Registrar o provedor de recursos 'microsoft.insights' na assinatura do Azure em que você coleta os dados de log do Power BI.
  • O usuário que configura a integração do Log Analytics no Power BI deve estar na função Log Analytics Contributor para o Log Analytics Workspace. Confira as perguntas frequentes para obter soluções alternativas se a função de Proprietário não puder ser atribuída.

Habilite o provedor de recursos 'microsoft.insights'

O Log Analytics requer que o provedor de recursos 'microsoft.insights' esteja habilitado no nível da assinatura do Azure. As etapas a seguir conduzirão você pelo processo.

  1. Entre no portal do Azure, selecione a assinatura que você deseja usar com o Log Analytics e que contém os seus workspaces do Log Analytics. Na seção Configurações, selecione Provedores de recursos, conforme mostrado na imagem a seguir.

    Captura de tela das opções do menu de configurações, os provedores de recursos estão selecionados.

  2. Pesquise microsoft.insights em Provedores de recursos. Em seguida, selecione Registrar.

    A captura de tela dos provedores de recursos no painel principal com o Microsoft.insights está registrada.

Definir permissões

  1. Verifique se o usuário que está configurando a integração do Log Analytics tem a função Colaborador do Log Analytics do workspace do Log Analytics. Ao selecionar Controle de acesso (IAM) para a assinatura no portal do Azure e, em seguida, seleciona Atribuições de função nas seleções principais no painel, o usuário atual precisa ver pelo uma entrada: Colaborador do Log Analytics para o usuário que configura o Log Analytics:

    Captura de tela do painel de controle de acesso com a função destacada.

Depois de concluir essas etapas, a parte de configuração do Azure Log Analytics está concluída. A próxima seção mostra como prosseguir e concluir a configuração no Portal de administração do Power BI.

Permitir registro em log no nível do workspace no Portal de administração

Um administrador do Power BI precisa concluir a etapa a seguir para habilitar o Azure Log Analytics para workspaces do Power BI Premium. Isso permite que administradores de workspace do Power BI Premium enviem os respectivos logs de workspace para o Azure Log Analytics quando os pré-requisitos tiverem sido atendidos.

  1. No portal de Administração do Power BI, navegue até as Configurações de locatário > Configurações de auditoria e uso e expanda as Conexões do Azure Log Analytics para administradores de workspace. Para permitir que os administradores do workspace habilitem o Log Analytics, configure o controle deslizante como Habilitado e especifique os grupos de segurança necessários em Aplicar a, conforme mostrado na imagem a seguir.

    Captura de tela das configurações de locatário no portal do Administração. As conexões de análise de log do Azure para administradores de workspace são expandidas e habilitadas.

Configurar o registro em log em um workspace Premium

  1. No workspace Premium, os administradores do workspace podem habilitar o Log Analytics. Para fazer isso, vá até Configurações, conforme mostrado na imagem a seguir.

    Captura de tela do painel de configurações em um workspace Premium.

  2. No painel Configurações, selecione Conexões do Azure e, em seguida, expanda Log Analytics, conforme mostrado na imagem a seguir.

    Captura de tela da guia Conexões do Azure aberta no painel de configurações, o Log Analytics é expandido.

  3. Selecione a assinatura do Azure, o grupo de recursos e, por fim, o workspace do Log Analytics configurado na seção anterior. Depois escolha Salvar. Quando concluída com êxito, a seção expandida Log Analytics no nível do locatário é semelhante à imagem a seguir.

    Captura de tela da guia de conexões do azure aberta no painel de configurações mostrando informações de exemplo.

Desconectar o Azure Log Analytics

Você pode se desconectar do Azure Log Analytics para interromper o envio de logs para o Azure. Para desconectar, nas Configurações de Workspace do Power BI, vá até as configurações do Log Analytics. Selecione Desconectar do Azure. Em seguida, escolha Salvar para desconectar.

Captura de tela do aviso de desconexão no painel de configurações.

Observação

Quando você desconecta um workspace do Power BI do Azure Log Analytics, os logs não são excluídos. Os dados permanecem e seguem as políticas de armazenamento e retenção que você definiu lá.

Cenários de uso

Há muitas maneiras pelas quais o Azure Log Analytics e Power BI podem ajudar a resolver desafios do mundo real para sua organização. Considere o seguinte:

  • Identificação de períodos de atividade alta ou incomum do mecanismo do Analysis Services por capacidade, workspace, relatório ou usuário.
  • Análise do desempenho e das tendências de consulta, incluindo operações externas do DirectQuery.
  • Análise de sobreposições, etapas de processamento e duração da atualização do modelo semântico.
  • Análise de operações personalizadas enviadas usando o ponto de extremidade XMLA Premium.

Envie-nos comentários na Comunidade do Power BI sobre como você está usando o registro em log e como ele ajudou sua organização.

Condições de erro e resoluções

A tabela a seguir fornece uma coleção de erros comuns, os eventos ou configurações que os dispararam e as resoluções sugeridas.

Condição gatilho Tipo Mensagem
Você não tem permissão para gravar no workspace do Log Analytics Erro – não é possível continuar Você precisa de permissões de gravação nesse workspace do Log Analytics para conectá-lo ao Power BI. Para corrigir esse problema, entre em contato com a pessoa em sua organização responsável por gerenciar as assinaturas do Azure.
Você não tem permissão para gravar na conta do workspace do Log Analytics Erro – não é possível continuar Você precisa de permissões de gravação nesse workspace do Log Analytics para conectá-lo ao Power BI.
Você não tem acesso a nenhuma assinatura do Azure Erro – não é possível continuar Você não tem acesso a nenhuma assinatura do Azure. Peça à pessoa que gerencia as assinaturas do Azure em sua organização para conceder a você acesso de colaborador ou superior.
Você não tem acesso a nenhum workspace do Azure Log Analytics dentro dessa assinatura Erro – não é possível continuar Você não tem acesso a nenhum workspace do Azure Log Analytics. Peça à pessoa que gerencia assinaturas do Azure em sua organização para atribuir a você a função colaborador ou proprietário do Log Analytics.
Log Analytics no nível do workspace desabilitado ao tentar se conectar Informações Peça que o seu administrador de locatários conceda permissão aos administradores de workspace para que eles conectem aos workspaces do Log Analytics.
Log Analytics no nível do workspace desabilitado ao tentar se desconectar Informações O administrador de locatários revogou a permissão para que os administradores do workspace se conectem aos próprios workspaces do Azure Log Analytics. Se você se desconectar, não poderá se conectar a outro.

Eventos e esquema

Depois de habilitar o Azure Log Analytics, ele começa a registrar as categorias de evento a seguir. Para obter mais informações sobre esses eventos, confira Eventos de Rastreamento do Analysis Services.

  • AggregateTableRewriteQuery
  • Comando
  • Deadlock
  • DirectQuery
  • Descobrir
  • Erro do
  • ProgressReport
  • Consulta
  • Inicialização de sessão
  • VertiPaqSEQuery
  • Notificação

A tabela a seguir descreve os exemplos do esquema.

Propriedade Propriedade existente do Azure Analysis Services Descrição
TimeGenerated O carimbo de data/hora (UTC) de quando o log foi gerado.
OperationName EventClass_s O evento de rastreamento do Analysis Services associado ao registro de log. Consulte a página de documentação do evento de rastreamento de AS para obter mais detalhes sobre possíveis eventos em cada categoria.
CorrelationId A ID de eventos correlacionados. Pode ser usada para identificar os eventos correlacionados entre várias tabelas.
ID do PowerbiWorkspace Identificador exclusivo do workspace que contém o artefato em que a operação está sendo realizada.
PremiumCapacityId Identificador exclusivo da capacidade Premium que hospeda o artefato que está sendo operado.
ApplicationContext ApplicationContext_s O pacote de propriedades de identificadores exclusivos fornecendo detalhes sobre o aplicativo que está executando a solicitação. Por exemplo, a ID do relatório.
ApplicationName ApplicationName_s Contém o nome do aplicativo cliente que criou a conexão com o servidor. Essa coluna é populada com os valores passados pelo aplicativo e não com o nome exibido do programa.
ArtifactId Identificador exclusivo do recurso que registra os dados em log.
ArtifactKind Tipo de artefato que registra a operação em log, por exemplo, modelo semântico.
CpuTimeMs CPUTime_s Tempo da CPU (em milissegundos) usado pelo evento.
ArtifactName DatabaseName_s O nome do artefato do Power BI que registra essa operação em log.
LogAnalyticsCategory Exclusivo A categoria de eventos de rastreamento do Analysis Services associado ao registro de log. Consulte a página de documentação do evento de rastreamento de AS para obter mais detalhes sobre possíveis eventos em cada categoria.
DatasetMode O modo do modelo semântico. Importação, DirectQuery ou Composto.
DurationMs Duration_s Quantidade de tempo (em milissegundos) tomada pela operação.
Usuário User_s O usuário associado à operação em execução. Usado quando uma identidade de usuário final precisar ser representada no servidor.
ExecutingUser EffectiveUsername_s O usuário que está executando a operação.
OperationDetailName EventSubclass_s Mais detalhes sobre o evento de rastreamento do Analysis Services associado ao registro de log. Consulte a propriedade “Subclasse” da página de documentação do evento de rastreamento para obter mais detalhes sobre valores possíveis, por exemplo, Command Begin.
XmlaObjectPath ObjectPath_s Caminho do objeto. Uma lista de pais separados por vírgulas, começando com o pai do objeto.
PowerBIWorkspaceName Nome do workspace do Power BI que contém o artefato.
StatusCode Error_s O código de status da operação. Ele aborda o êxito e a falha.
ProgressCounter ProgressTotal_s Contador de progresso.
XmlaProperties RequestProperties_s Propriedades da solicitação XMLA.
XmlaSessionId SPID_s Identificador de sessão do Analysis Services.
Level Severity_s Contém o nível de severidade da operação que está sendo registrada. Êxito, Informacional, Aviso ou Erro.
Identidade Informações sobre o usuário e as declarações.
Status Status da operação.
EventText TextData_s Contém informações detalhadas associadas à operação, por exemplo, Consulta DAX.
CustomerTenantId Identificador de locatário do Power BI do cliente.
XmlaRequestId RootActivityId_g Identificador exclusivo da solicitação.
ReplicaId Identificador de réplica que permitirá identificar a réplica quando o Query Scale Out (QSO) estiver habilitado. As réplica de leitura sempre têm ReplicaId="AAA" e as réplicas somente leitura têm ReplicaId iniciando de "AAB" em diante. Para modelos semânticos não habilitados para QSO, a ReplicaId é sempre "AAA"

Evento ExecutionMetrics

Para cada solicitação Discover, Command e Query, um evento chamado ExecutionMetrics é produzido no final da solicitação. Esse evento contém métricas de execução para a solicitação, que podem ajudá-lo a diagnosticar e solucionar problemas de forma mais eficaz. O rastreio ExecutionMetrics está correlacionado com o evento [Discover|Command|Query]End mais próximo.

A consulta KQL a seguir recupera os eventos ExecutionMetrics para todas as operações de atualização de um modelo semântico no último dia:

let commands = PowerBIDatasetsWorkspace
    | where TimeGenerated > ago(1d)
    | where ArtifactId =~ "[Semantic Model Id]"
    | where OperationName in ("CommandEnd")
    | where EventText contains "<Refresh"
    | project TimeGenerated, ArtifactId, CommandOperationName = OperationName, XmlaRequestId, CorrelationId, CommandText = EventText;
let executionMetrics = PowerBIDatasetsWorkspace        
    | where OperationName == "ExecutionMetrics"
    | project TimeGenerated, XmlaRequestId, CorrelationId, EventText;
commands
| join kind=leftouter executionMetrics on XmlaRequestId

A consulta KQL a seguir recupera eventos que foram limitados no último dia por workspace, item e usuário:

let executionMetrics = PowerBIDatasetsWorkspace
    | where TimeGenerated > ago(1d)    
    | where OperationName == "ExecutionMetrics"    
    | extend eventTextJson = parse_json(EventText)      
    | extend capacityThrottlingMs=toint(eventTextJson.capacityThrottlingMs)
    | where capacityThrottlingMs > 0;
let commands = PowerBIDatasetsWorkspace    
    | where OperationName in ("CommandEnd", "QueryEnd", "DiscoverEnd")    
    | project
        TimeGenerated,
        ExecutingUser,
        ArtifactId,
        PowerBIWorkspaceId,
        CommandOperationName = OperationName,
        XmlaRequestId,
        CorrelationId,
        CommandText = EventText;
commands
| join kind=inner executionMetrics on XmlaRequestId
| project
    TimeGenerated,
    ArtifactId,
    PowerBIWorkspaceId,
    ExecutingUser,
    CommandOperationName,
    XmlaRequestId,
    EventText,
    CommandText,
    capacityThrottlingMs
| summarize countThrottling = count(), avgThrottlingDuration = avg(capacityThrottlingMs) by PowerBIWorkspaceId, ArtifactId, ExecutingUser, CommandOperationName

As estatísticas são apresentadas como um texto JSON na propriedade EventText, veja os exemplos a seguir.

{
    "timeStart": "2024-03-20T12:39:59.681Z",
    "timeEnd": "2024-03-20T13:01:14.241Z",
    "durationMs": 1274559,    
    "vertipaqJobCpuTimeMs": 156,
    "mEngineCpuTimeMs": 9617484,
    "totalCpuTimeMs": 9618469,
    "executionDelayMs": 10,
    "approximatePeakMemConsumptionKB": 1683409,
    "mEnginePeakMemoryKB": 1676816,
    "tabularConnectionTimeoutMs": 18000000,    
    "refreshParallelism": 16,
    "vertipaqTotalRows": 114,
    "intendedUsage": 2
}

A tabela a seguir descreve todas as propriedades possíveis. Nem todas as propriedades são emitidas em cada evento, pois o conteúdo dependerá da solicitação e do modelo semântico.

Propriedade Descrição
timeStart O carimbo de data/hora (UTC) de quando a solicitação foi iniciada.
timeEnd O carimbo de data/hora (UTC) de quando a solicitação terminou.
durationMs Duração total da execução.
datasourceConnectionThrottleTimeMs Tempo total de aceleração após atingir o limite de conexão da fonte de dados. Saiba mais sobre o máximo de conexão simultânea aqui.
externalQueryExecutionTimeMs Tempo total gasto na execução de todas as consultas de fontes de dados externas durante a solicitação.
directQueryConnectionTimeMs Tempo total gasto na criação de uma nova conexão DirectQuery durante a solicitação
directQueryIterationTimeMs Tempo total gasto na iteração dos resultados retornados pelas consultas do DirectQuery.
directQueryTotalTimeMs Tempo total gasto na execução e leitura de todas as consultas DirectQuery durante a solicitação.
executionDelayMs Tempo total gasto aguardando a disponibilidade de threads do pool de threads do mecanismo do Analysis Services.
totalCpuTimeMs Tempo total de CPU da solicitação.
vertipaqJobCpuTimeMs Tempo total de CPU gasto pelo mecanismo Vertipaq.
mEngineCpuTimeMs Tempo total de CPU gasto pelo mecanismo PowerQuery.
queryProcessingCpuTimeMs Tempo total de CPU gasto por tarefas no thread do pool de threads de consulta do Analysis Services.
approximatePeakMemoryConsumptionKB Pico aproximado de consumo total de memória durante a solicitação.
mEnginePeakMemoryKB Tamanho aproximado de confirmação de memória máxima (em quilobytes) em todos os contêineres de mashup do mecanismo PowerQuery.
directQueryTimeoutMs Tempo limite associado a consultas DirectQuery.
externalQueryTimeoutMs Tempo limite associado a consultas a fontes de dados externas.
tabularConnectionTimeoutMs Tempo limite associado a conexões de fontes de dados tabulares externas (por exemplo, SQL).
refreshParallelism MaxParallelism efetivo usado na solicitação.
vertipaqTotalRows Número total de linhas processadas pelo mecanismo Vertipaq durante uma operação de atualização.
queryResultRows Número total de linhas retornadas como resultado da consulta DAX.
directQueryTotalRows Número total de linhas lidas nas diversas consultas do DirectQuery.
directQueryRequestCount Número total de consultas do mecanismo de armazenamento DirectQuery executadas pelo mecanismo DAX.
errorCount Número total de erros da solicitação atual.
qsoReplicaVersion Versão réplica para modelos semânticos habilitados para QSO, representados no formato FILETIME.
intendedUsage Uso pretendido: Padrão (0); Atualização agendada ou de API (1); Atualização sob demanda (2); Bloco do painel/atualização do cache de consulta (3)
commandType Tipo de comando do Analysis Services solicitado pelo cliente (por exemplo, lote, instrução, backup...)
discoverType Tipo de Discover solicitado pelo cliente. Consulte EventSubclass para obter uma lista de tipos de descoberta.
queryDialect Tipo de cliente Dialect usado para consultar o servidor: Desconhecido (-1); MDX (0); DMX (1); SQL(2); DAX(3); JSON (4)
capacityThrottlingMs Tempo total em que a solicitação atrasou devido à limitação de capacidade. Saiba mais sobre limitação aqui.
  • Todas as durações e tempos de CPU são apresentados em milissegundos.
  • Propriedades adicionais além daquelas descritas na tabela acima podem ser encontradas e devem ser consideradas como não documentadas e sujeitas a alterações.

Consultas KQL de exemplo do Log Analytics

A coleção de consultas de exemplo a seguir pode ser útil ao usar o Azure Log Analytics com o Power BI. Elas podem ser executadas diretamente no portal do Azure ou por meio de APIs para consultar os dados mais recentes, normalmente com cerca de cinco a dez minutos.

// log count per day for last 30d
PowerBIDatasetsWorkspace
| where TimeGenerated > ago(30d)
| summarize count() by format_datetime(TimeGenerated, 'yyyy-MM-dd')


// average query duration by day for last 30d
PowerBIDatasetsWorkspace
| where TimeGenerated > ago(30d)
| where OperationName == 'QueryEnd'
| summarize avg(DurationMs) by format_datetime(TimeGenerated, 'yyyy-MM-dd')


//query duration percentiles for a single day in 1 hour bins
PowerBIDatasetsWorkspace
| where TimeGenerated >= todatetime('2021-04-28') and TimeGenerated <= todatetime('2021-04-29')
| where OperationName == 'QueryEnd'
| summarize percentiles(DurationMs, 0.5, 0.9) by bin(TimeGenerated, 1h)


// refresh durations by workspace and semantic model for last 30d
PowerBIDatasetsWorkspace
| where TimeGenerated > ago(30d)
| where OperationName == 'CommandEnd'
| where ExecutingUser contains 'Power BI Service'
| where EventText contains 'refresh'
| project PowerBIWorkspaceName, DatasetName = ArtifactName, DurationMs

// query count, distinctUsers, avgCPU, avgDuration by workspace for last 30d
PowerBIDatasetsWorkspace  
| where TimeGenerated > ago(30d)
| where OperationName == "QueryEnd" 
| summarize QueryCount=count()
    , Users = dcount(ExecutingUser)
    , AvgCPU = avg(CpuTimeMs)
    , AvgDuration = avg(DurationMs)
by PowerBIWorkspaceId

Exemplo de Modelo de Relatório do Power BI

Explore e obtenha insights sobre os dados do Power BI do Azure Log Analytics usando um Modelo de Relatório do Power BI de código aberto no GitHub.

Os artigos a seguir podem ajudar você a saber mais sobre o Power BI e a integração dele com o Azure Log Analytics.