Computação em nuvem e centros de dados

A Cloudflare permite a criação instantânea de perfis para Workers e Durable Objects por meio de flame graphs

A Cloudflare lançou a possibilidade de criar, sob demanda, perfis de uso de CPU e memória para serviços Workers e Durable Objects em ambiente de produção, exibindo os resultados como flame graphs interativos. A ferramenta ajuda a identificar gargalos de desempenho e vazamentos de memória, mas exige a existência de tráfego durante a sessão de criação do perfil e não captura todos os problemas de inicialização.

2026-10-09
4 min de leitura
2 visualizações
certi.news Editorial Team
A Cloudflare permite a criação instantânea de perfis para Workers e Durable Objects por meio de flame graphs

A Cloudflare anunciou a disponibilidade da criação, sob demanda, de perfis de uso de CPU e memória para serviços Workers e Durable Objects, permitindo que os desenvolvedores coletem perfis no próprio ambiente de produção e os exibam como flame graphs interativos. O recurso permite identificar as funções que consomem tempo de CPU ou alocam mais memória, em vez de depender apenas de logs e métricas agregadas.

A criação do perfil pode ser iniciada na página Workers Observability do painel da Cloudflare ou por meio da interface de linha de comando. O desenvolvedor define o tipo de perfil, CPU ou memória, e a duração da coleta, além de poder escolher diferentes versões do Worker. Após o término da sessão, é possível visualizar o gráfico interativo e baixar o arquivo de perfil para analisá-lo com outras ferramentas.

O que os flame graphs exibem?

Cada retângulo no gráfico representa uma chamada de função, enquanto sua largura reflete a quantidade de tempo de CPU ou memória associada a ela. É possível clicar nas funções para ampliar o foco sobre elas ou usar a visualização em tabela para ordenar os resultados de acordo com o número de amostras. A Cloudflare recomenda capturar mais de um perfil e procurar as funções mais largas, além de ativar os source maps em projetos TypeScript para que os nomes das funções não apareçam de forma ambígua.

A criação do perfil exige a seleção de uma versão publicada que esteja recebendo tráfego suficiente; o serviço não cria um isolamento novo para fins de medição, pois o objetivo é monitorar a execução real em produção. O comando a seguir pode ser usado para capturar um perfil de CPU com duração de cinco segundos:

cf workers versions profile latest --worker-id "$WORKER_ID_OR_NAME" --duration-ms 5000 --profile-type cpu > worker-cpu.pprof

Resultados práticos apresentados pela Cloudflare

A Cloudflare usou a ferramenta para analisar um Worker que implementa a integração com R2. A criação do perfil mostrou que a função genericR2JsonReplacer percorria novamente uma árvore JSON durante a execução de JSON.stringify, fazendo com que um valor aninhado fosse processado cinco vezes em alguns casos. A correção tornou a função 2,7 vezes mais rápida. A criação do perfil também revelou uma chamada repetida a metrics, e armazenar o resultado e reutilizá-lo foi suficiente para reduzir o consumo de CPU.

Em outro caso, um dos Workers ultrapassava o limite de memória de 128 megabytes: o consumo P999 chegou a cerca de 133 megabytes, causando erros “Exceeded Memory”. O perfil de heap mostrou que o código do Prometheus responsável por cerca de 66,7% das alocações ainda estava parcialmente em execução, apesar da crença de que estivesse desativado. Após a remoção completa do caminho de código, o P999 caiu de 133 para 118 megabytes, enquanto o P50 recuou de 70 para 54 megabytes.

O que muda na prática?

O recurso oferece às equipes de desenvolvimento uma visão direta da execução dos Workers em suas condições reais, nas quais o tráfego e a distribuição dos isolamentos podem diferir do ambiente de desenvolvimento local. A plataforma lida com a complexidade da distribuição dos Workers entre vários data centers e dispositivos, enquanto, no caso dos Durable Objects, o desenvolvedor pode especificar o objeto pelo nome para obter um perfil do isolamento que o executa especificamente.

O mecanismo de execução mantém o recebimento de solicitações durante a coleta; o bloqueio do isolamento é retido apenas ao iniciar e interromper a criação do perfil, e as amostras de CPU são coletadas em intervalos de um milissegundo durante o período definido. Os Durable Objects, por sua vez, aproveitam sua natureza com estado para encaminhar a solicitação de criação do perfil ao isolamento e à entidade proprietária do objeto especificado.

Limitações e o próximo passo

A criação do perfil não começa automaticamente e, por isso, a sessão pode perder períodos curtos ou raros nos quais o problema ocorre. O criador de perfil de memória também exibe apenas as alocações ocorridas durante a janela de medição e necessariamente não capturará o consumo resultante da inicialização. A Cloudflare afirma que está trabalhando na criação contínua de perfis, que coletará amostras automaticamente e permitirá visualizá-las posteriormente no painel de controle.

Fonte da notícia
Cloudflare Blog
Abrir fonte original ↗
c
Autor

certi.news Editorial Team

Na mesma categoria

Você também pode gostar

Ver todas as notícias