Partilhar via


Configurar o Azure Log Analytics para Power BI

O Power BI está se integrando ao Azure Log Analytics para permitir que administradores e proprietários de espaços de trabalho Premium configurem uma conexão do Log Analytics com sua assinatura do Power BI. Este artigo descreve como funciona a integração entre o Log Analytics e o Power BI e como configurá-la para o seu ambiente.

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

  • Configure sua assinatura do Azure no portal do Azure.
  • Habilite a Análise de log para o Power BI no portal de administração do Power BI.

As seções a seguir levam você pelas etapas para fazer as duas coisas.

Captura de ecrã do separador Ligações do Azure aberto no painel de definições.

Pré-requisitos

Antes de configurar a integração do Log Analytics a partir do Power BI, você precisa criar um Espaço de Trabalho do Log Analytics no portal do Azure. Você também deve 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.
  • Registre o provedor de recursos 'microsoft.insights' na assinatura do Azure onde você coletará 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 de Colaborador do Log Analytics para o Espaço de Trabalho do Log Analytics. Consulte Perguntas frequentes para obter soluções alternativas se a função Proprietário não puder ser fornecida.

Habilite o provedor de recursos 'microsoft.insights'

O Log Analytics requer o provedor de recursos 'microsoft.insights' habilitado no nível de assinatura do Azure. Os passos seguintes guiá-lo através do processo.

  1. Entre no portal do Azure, selecione a assinatura que você deseja usar com o Log Analytics e que contém seus espaços de trabalho 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, provedores de recursos está selecionado.

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

    A captura de tela dos provedores de recursos no painel principal com 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 de Colaborador do Log Analytics no espaço de trabalho do Log Analytics. Quando você seleciona Controle de acesso (IAM) para a assinatura no portal do Azure e, em seguida, seleciona Atribuições de função nas seleções superiores do painel, o usuário atual deve ver uma entrada: Colaborador do Log Analytics para o usuário que configura o Log Analytics:

    Captura de ecrã do painel Controlo de acesso com a função realçada.

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

Permitir o registo no nível da área de trabalho a partir do Portal de Administração

Um administrador do Power BI deve concluir a etapa a seguir para habilitar o Azure Log Analytics para espaços de trabalho do Power BI Premium. Essa configuração permite que os administradores do espaço de trabalho Power BI Premium enviem seus logs de espaço de trabalho para o Azure Log Analytics quando os pré-requisitos forem atendidos.

  1. No portal de Administração do Power BI, vá para Auditoria de Configurações > do Locatário e configurações de uso e expanda Conexões do Azure Log Analytics para administradores de espaço de trabalho. Para permitir que os administradores do espaço de trabalho habilitem o Log Analytics, defina 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 ecrã das definições do inquilino no Portal de administração. As conexões de análise de log do Azure para administradores de espaço de trabalho são expandidas e habilitadas.

Configurar o registro em log em um espaço de trabalho Premium

  1. No espaço de trabalho Premium, os administradores do espaço de trabalho podem ativar o Log Analytics. Para fazer isso, vá para Configurações , conforme mostrado na imagem a seguir.

    Captura de ecrã do painel de definições numa área de trabalho Premium.

  2. No painel Configurações, selecione Conexões do Azure e expanda Análise de Log, conforme mostrado na imagem a seguir.

    Captura de ecrã do separador Ligações do Azure aberta no painel de definições, o Log Analytics está expandido.

  3. Selecione a assinatura do Azure, o grupo de recursos e, em seguida, o espaço de trabalho do Log Analytics configurado na seção anterior. Em seguida, escolha Guardar. Quando concluída com êxito, a seção expandida Análise de Log no nível do locatário deve ser semelhante à imagem a seguir.

    Captura de tela da guia 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 parar de enviar logs para o Azure. Para desconectar, nas Configurações do Espaço de Trabalho do Power BI, vá para as configurações do Log Analytics. Selecione Desconectar do Azure. Em seguida, escolha Salvar para desconectar.

Captura de ecrã do aviso de desconexão no painel de definições.

Nota

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

Cenários de utilização

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

  • Identifique períodos de atividade alta ou incomum do mecanismo do Analysis Services por capacidade, espaço de trabalho, relatório ou usuário.
  • Analise o desempenho e as tendências da consulta, incluindo operações externas do DirectQuery.
  • Analise a duração da atualização do modelo semântico, as sobreposições e as etapas de processamento.
  • Analise operações personalizadas enviadas usando o endpoint XMLA Premium.

Envie-nos comentários na Comunidade do Power BI sobre como está a utilizar o registo e como tem ajudado a 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 acionaram e resoluções sugeridas.

Condição do gatilho Tipo Mensagem
Você não tem permissão para gravar no espaço de trabalho do Log Analytics Erro - não é possível continuar Você precisa de permissões de gravação neste espaço de trabalho do Log Analytics para conectá-lo ao Power BI. Entre em contato com a pessoa em sua organização que gerencia assinaturas do Azure para corrigir esse problema.
Você não tem permissão para gravar na conta do espaço de trabalho do Log Analytics Erro - não é possível continuar Você precisa de permissões de gravação neste espaço de trabalho 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 gere subscrições do Azure na sua organização para lhe conceder acesso de colaborador ou superior.
Você não tem acesso a nenhum espaço de trabalho do Azure Log Analytics dentro dessa assinatura Erro - não é possível continuar Você não tem acesso a um espaço de trabalho do Azure Log Analytics. Peça à pessoa que gerencia assinaturas do Azure em sua organização para adicioná-lo à função de proprietário ou colaborador do Log Analytics.
Análise de log no nível do espaço de trabalho desabilitada ao tentar se conectar Informação Peça ao administrador do locatário para conceder aos administradores do espaço de trabalho permissão para conectar espaços de trabalho do Log Analytics.
Análise de log no nível do espaço de trabalho desabilitada ao tentar se desconectar Informação O administrador do locatário revogou a permissão para os administradores do espaço de trabalho conectarem seus próprios espaços de trabalho do Azure Log Analytics. Se você desconectar, não poderá se conectar a outro.

Eventos e esquema

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

  • AggregateTableRewriteQuery
  • Comando
  • Impasse
  • DirectQuery
  • Detetar
  • Erro
  • Relatório intercalar
  • Query
  • Inicialização da sessão
  • VertiPaqSEQuery
  • Notificação

A tabela a seguir descreve o esquema.

Property Propriedade existente do Azure Analysis Services Description
Gerado por tempo O carimbo de data/hora (UTC) de quando o log foi gerado.
Nome da operação EventClass_s A operação associada ao registro de log.
CorrelationId A ID para eventos correlacionados. Pode ser usado para identificar eventos correlacionados entre várias tabelas.
PowerBIWorkspaceId Identificador exclusivo do espaço de trabalho que contém o artefato que está sendo operado.
PremiumCapacityId Identificador único da capacidade Premium que hospeda o artefato que está sendo operado.
ApplicationContext ApplicationContext_s Pacote de propriedades de identificadores exclusivos fornecendo detalhes sobre o aplicativo que executa a solicitação. por exemplo, ID do relatório.
ApplicationName ApplicationName_s Contém o nome do aplicativo cliente que criou a conexão com o servidor. Esta coluna é preenchida com os valores passados pelo aplicativo em vez do nome exibido do programa.
ArtifactId Identificador exclusivo do recurso que registra os dados.
ArtifactKind Tipo de artefato registrando a operação, por exemplo, modelo semântico.
CpuTimeMs CPUTime_s Quantidade de tempo de CPU (em milissegundos) usada pelo evento.
Nome do artefato DatabaseName_s O nome do artefato do Power BI que registra essa operação.
LogAnalyticsCategoria Exclusivo Categoria dos eventos, como Auditoria/Segurança/Solicitação.
DatasetMode O modo do modelo semântico. Importar, DirectQuery ou Composite.
DuraçãoMs Duration_s Quantidade de tempo (em milissegundos) tomada pela operação.
Utilizador User_s O usuário associado à operação em execução. Usado quando uma identidade de usuário final deve ser representada no servidor.
ExecutingUser EffectiveUsername_s O usuário que executa a operação.
OperationDetailName EventSubclass_s Mais detalhes sobre a operação.
XmlaObjectPath ObjectPath_s Caminho do objeto. Uma lista de pais separados por vírgula, começando com o pai do objeto.
PowerBIWorkspaceName Nome do espaço de trabalho do Power BI que contém o artefato.
Código de status Error_s Código de status da operação. Abrange o sucesso e o fracasso.
Contador de Progressos ProgressTotal_s Contador de progressos.
XmlaProperties RequestProperties_s Propriedades da solicitação XMLA.
XmlaSessionId SPID_s Identificador de sessão do Analysis Services.
Nível Severity_s Contém o nível de gravidade da operação que está sendo registrada. Sucesso, Informativo, Aviso ou Erro.
Identidade Informações sobre usuários e reivindicações.
Status Estado da operação.
EventText TextData_s Contém informações detalhadas associadas à operação, por exemplo, DAX Query.
CustomerTenantId Identificador de locatário do Power BI do cliente.
XmlaRequestId RootActivityId_g Identificador único do pedido.
ReplicaId Identificador de réplica que permitirá identificar a réplica quando o QSO (Query Scale out) estiver habilitado. A réplica de leitura-gravação sempre tem ReplicaId='AAA' e as réplicas somente leitura têm ReplicaId iniciando 'AAB' em diante. Para modelos semânticos não habilitados para QSO, o 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 rastreamento ExecutionMetrics está correlacionado com o [Discover| mais próximo Comando|Query]End evento.

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 espaço de trabalho, 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 , consulte 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.

Property Description
timeStart O carimbo de data/hora (UTC) de quando a solicitação foi iniciada.
timeFim 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 depois de atingir o limite de conexão da fonte de dados. Saiba mais sobre o máximo de conexões simultâneas aqui.
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 DirectQuery.
directQueryTotalTimeMs Tempo total gasto na execução e leitura de todas as consultas DirectQuery durante a solicitação.
execuçãoDelayMs Tempo total gasto aguardando a disponibilidade do thread do pool de threads do mecanismo do Analysis Services.
totalCpuTimeMs Tempo total de CPU da solicitação.
vertipaqJobCpuTimeMs Tempo total da CPU gasto pelo motor Vertipaq.
mEngineCpuTimeMs Tempo total de CPU gasto pelo mecanismo PowerQuery.
queryProcessingCpuTimeMs Tempo total da CPU gasto por tarefas no thread do pool de threads de consulta do Analysis Services.
aproximaPeakMemoryConsumptionKB Pico aproximado de consumo total de memória durante a solicitação.
mEnginePeakMemoryKB Tamanho aproximado de confirmação de pico de memória (em kilobytes) 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 fonte de dados tabulares externas (e.g. SQL).
refreshParalelismo MaxParallelism eficaz usado na solicitação.
vertipaqTotalRows Número total de linhas processadas pelo motor 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 das várias consultas DirectQuery.
directQueryRequestCount Número total de consultas do mecanismo de armazenamento DirectQuery executadas pelo mecanismo DAX.
errorCount Número total de erros para a solicitação atual.
qsoReplicaVersion Versão de réplica para modelos semânticos habilitados para QSO, representados no formato FILETIME .
intendedUsage Uso pretendido: Padrão (0); Atualização programada ou API (1); Atualização sob demanda (2); Bloco do painel/Atualização do cache de consulta (3)
discoverType Tipo de Discover solicitado pelo cliente. Consulte EventSubclass para obter uma lista de tipos de descoberta.
queryDialect Tipo de cliente dialeto usado para consultar o servidor: Desconhecido (-1); MDX (0); DMX (1); SQL (2); DAX (3); JSON (4)
capacidadeThrottlingMs Tempo total em que a solicitação foi atrasada devido à limitação de capacidade. Saiba mais sobre o estrangulamento aqui.
  • Todas as durações e tempos de CPU são apresentados em milissegundos.
  • Propriedades adicionais além das descritas na tabela acima podem ser encontradas e devem ser consideradas como não documentadas e sujeitas a alterações.

Exemplos de consultas KQL do Log Analytics

A coleção de consultas de exemplo a seguir pode ser útil quando você usa o Azure Log Analytics com o Power BI. Eles podem ser executados diretamente no portal do Azure ou por meio de APIs para consultar os dados mais recentes, geralmente com cerca de 5 a 10 minutos de idade.

// 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

Modelo de relatório de exemplo do Power BI

Explore e obtenha informações 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 ajudá-lo a saber mais sobre o Power BI e sobre sua integração com o Azure Log Analytics.