PerformanceProfile.json no Teams: tudo sobre segurança, limpeza e análise de logs

Descobriu o ficheiro PerformanceProfile.json dentro da pasta PerfLogs do Microsoft Teams e ficou inseguro? Este guia completo explica, em linguagem clara, o propósito do log, a sua relevância para a segurança, como geri‑lo ou eliminá‑lo, e quando vale a pena analisá‑lo em detalhe.

Índice

O que é o ficheiro PerformanceProfile.json?

Trata‑se de um arquivo JSON gerado automaticamente pelo cliente Microsoft Teams para registar métricas de performance enquanto a aplicação está em execução. Entre os principais pontos de recolha encontram‑se:

  • CPU: percentagem média e picos instantâneos de utilização.
  • Memória: consumo total, uso de memória privada vs. partilhada e taxa de crescimento do heap.
  • Latência de renderização: tempo gasto a apresentar interfaces React/Fluent UI.
  • Tempos de arranque: duração desde o clique no ícone até a janela estar pronta.
  • Eventos de bloqueio (jank): detecções de frames congelados ou UI não responsiva.

A captura destes dados ocorre em segundo plano, sem impacto perceptível no desempenho diário. O objetivo é fornecer informações de diagnóstico que permitam à equipa de engenharia do Teams (ou ao suporte corporativo) isolar causas de lentidão, consumo anómalo de recursos ou falhas de renderização.

Por que o Teams cria logs de desempenho?

Aplicações ricas em funcionalidades, como o Teams, evoluem rapidamente e correm em dezenas de configurações de hardware e cenários de rede. Medições de telemetria local são essenciais para:

  1. Detetar regressões: após uma atualização, comparar métricas garante que novas funcionalidades não degradam a experiência.
  2. Otimizar a experiência: identificar cenários de utilização comum (por exemplo, chamadas de vídeo com background blur) que exijam otimizações adicionais.
  3. Facilitar suporte: quando um utilizador abre um ticket, pode‑se solicitar o ficheiro de log para acelerar o diagnóstico.

É um risco de segurança?

Não. O ficheiro não contém conteúdo sensível, credenciais nem mensagens. Guarda apenas números e “samples” de performance, como tempos de execução em milissegundos ou contagem de bytes. A estrutura típica é semelhante a:

{
  "sessionId": "c647e3e2-47e9-4cd3...",
  "metrics": {
    "cpuAveragePct": 14.2,
    "memoryPrivateMB": 622,
    "domContentLoadedMs": 5328,
    ...
  },
  "timestamp": "2025-09-10T12:34:56Z"
}

Se, por políticas de privacidade, for proibido reter identificadores como sessionId, pode remover ou mascarar esses campos antes de partilhar o log com terceiros.

Quando devo preocupar‑me?

Na maioria dos casos, a presença do ficheiro é inofensiva e invisível. Entretanto, é aconselhável inspecioná‑lo se observar:

  • Arranques muito lentos: o Teams demora vários minutos a abrir.
  • Picos de CPU > 80 % estáveis: sobretudo durante videoconferências.
  • Consumo de memória > 1,5 GB: em PCs com 8 GB de RAM, pode forçar paginação.
  • Congelamentos frequentes: a UI fica congelada ao trocar de chat ou canal.

Nestas situações, abra o JSON num editor de texto ou numa ferramenta de análise (descrita mais abaixo) e verifique os valores dos campos. Se confirmar anomalias, envie o ficheiro para o suporte Microsoft junto com um Teams Problem Report.

Posso apagar ou limitar a criação do ficheiro?

Sim. O Teams recria o log em cada sessão, por isso apagar arquivos antigos é seguro. Existem três estratégias principais:

Limpeza manual

Navegue até %LOCALAPPDATA%\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\Microsoft\MSTeams\PerfLogs, selecione os ficheiros .json antigos e elimine-os. É simples, mas requer disciplina periódica.

Script PowerShell agendado

$folder = "$env:LOCALAPPDATA\Packages\MSTeams_8wekyb3d8bbwe\LocalCache\Microsoft\MSTeams\PerfLogs"
Get-ChildItem -Path $folder -Filter *.json -Recurse |
  Where-Object { $_.CreationTime -lt (Get-Date).AddDays(-30) } |
  Remove-Item -Force

Agende o script no Task Scheduler semanalmente para manter apenas logs dos últimos 30 dias.

Política de Grupo (GPO)/Intune

Em ambientes empresariais, configure uma regra de storage sense ou um configuration profile no Intune para limpar a pasta LocalCache. Assim garante‑se consistência sem intervenção manual.

Como interpretar o conteúdo do log

Apesar de ser legível em texto, o JSON pode ficar extenso. Recomenda‑se:

  • Visual Studio Code com JSON Viewer.
  • Edge ou Chrome DevTools – abra o ficheiro no separador Performance para ter gráficos interativos.
  • Power BI Desktop – importe o JSON, expandindo arrays para criar dashboards de evolução temporal.
CampoDescriçãoValor saudávelAção sugerida se fora do normal
cpuAveragePctMédia de utilização de CPU na sessão< 25 %Atualizar GPU driver; verificar extensões
memoryPrivateMBMemória usada só pelo processo Teams< 900 MBFechar outras instâncias Chrome/Edge; impedir plug‑ins
domContentLoadedMsTempo de carregamento do DOM< 8000 msLimpar cache do Teams; reinstalar app
rendererBlockingEventsNúmero de janks detectados0 – 5Desativar hardware acceleration; mudar para Teams PWA

Ferramentas práticas para análise

Abaixo segue um fluxo rápido que qualquer administrador pode aplicar sem softwares pagos:

  1. Copiar o JSON para uma pasta temporária.
  2. Abrir no Edge DevTools: pressione F12, clique em Performance Insights > Load Profile.
  3. Gerar um gráfico de linha de CPU e memória. Dessa forma, picos anómalos saltam à vista sem leitura linha a linha.
  4. Anotar timestamps que coincidam com a experiência do utilizador; por exemplo, “lag ao alternar de chat às 14h32”.
  5. Cruzar eventos de bloqueio com log do Windows (Event Viewer > Applications) para encontrar DLLs ou drivers envolvidos.

Procedimento passo a passo para troubleshooting com suporte Microsoft

  1. No Teams, clique em Ajuda > Relatar um problema e descreva o sintoma.
  2. Aplique Shift + Ctrl + Alt + 1 para gerar automaticamente desktop‑logs.zip.
  3. Anexe o PerformanceProfile.json correspondente à sessão em que o erro ocorreu.
  4. Partilhe screenshots ou gravações (por exemplo, com Steps Recorder) para contexto.
  5. A equipa de suporte correlacionará os counters do JSON com rastreamentos internos do serviço Teams.

Impacto em ambientes empresariais

Organizações com centenas ou milhares de endpoints devem equilibrar:

  • Espaço em disco: cada JSON pesa ~200 KB, mas pode multiplicar‑se por máquina.
  • Proteção de dados: se o sessionId for considerado “pseudodado”, as normas GDPR exigem limitação de retenção.
  • Visibilidade centralizada: exportar logs para um repositório SIEM permite correlações com telemetria do Microsoft 365.

Uma arquitetura recomendada é usar o agente Log Analytics para encaminhar os JSON para o Azure Monitor, aplicando uma política de retenção de 90 dias.

Boas práticas de governança de logs

  • Documentar no runbook de TI que o ficheiro é benigno e qual é o ciclo de vida previsto.
  • Ajustar storage quotas de perfil de utilizador para impedir que logs antigos ocupem espaço de roaming.
  • Automatizar a limpeza mas manter pelo menos um log recente para triagem rápida de incidentes.
  • Monitorizar hash do executável Teams; se alterar sem patch oficial, investigar.

Resumo

O ficheiro PerformanceProfile.json é um log de diagnóstico criado pelo Microsoft Teams para recolher métricas de desempenho. Não contém informação sensível nem representa risco de segurança. Ao notar problemas de lentidão ou consumo excessivo de recursos, examine‑o ou partilhe‑o com o suporte; caso contrário, pode ignorar ou eliminar o ficheiro sem impacto na aplicação. Em ambientes corporativos, recomenda‑se automatizar a retenção e o envio para ferramentas de monitorização a fim de maximizar a visibilidade e minimizar o espaço em disco.

Índice