run/shop.send_waitlist_notification em celery/background. As abas abaixo do cabeçalho alternam entre visões da mesma action: Summary, Traces e Charts.
Mapa de serviços
O mapa de serviços mostra o trace do ponto de vista dos serviços envolvidos: quais serviços a requisição alcançou, e quanto tempo cada chamada entre eles levou. Ele aparece apenas quando um trace atravessa mais de um serviço, porque um trace que permanece dentro de um único serviço não tem nada para mapear.- Uma caixa por serviço, agrupada por
service_name. Cada caixa é identificada com o nome do serviço e a aplicação do AppSignal para a qual ele reporta. Dentro dela, uma linha por chamada que o serviço tratou, de forma que um serviço chamado duas vezes no mesmo trace mostra duas linhas. Selecione uma linha para abrir a visão desse serviço sobre o trace. - As arestas são as chamadas entre serviços, identificadas com sua duração e chegando na linha da action que chamaram. Isso cobre chamadas síncronas, como uma requisição HTTP, e assíncronas, como um app web enfileirando um job em background.
- A cor da aresta avalia cada chamada em relação à própria linha de base do trace, como rápida, lenta ou crítica, de forma que os saltos mais lentos se destaquem sem que você precise ler cada duração. Uma aresta tracejada indica um trace vinculado, e uma caixa tracejada indica um serviço de outro trace.
- Erros marcam o serviço em que ocorreram, não o serviço que o chamou.

O mapa de serviços do trace, mostrando os serviços em um trace e as chamadas entre eles
Linha do tempo do trace
Ao selecionar um trace em um horário específico, a linha do tempo organiza os spans do trace ao longo do tempo, do início do trace até seu fim. A posição de cada barra mostra quando um span começou, sua largura mostra por quanto tempo o span rodou, e sua cor mostra o grupo de spans ao qual ele pertence. O AppSignal também sinaliza problemas aqui, como um evento N+1: a mesma query repetida muitas vezes em uma operação. A linha do tempo acompanha a operação através dos serviços. Em uma loja de stroopwafels, uma requisição Django pode enfileirar uma tarefa Celery, a tarefa envia um e-mail, e um serviço de auditoria registra o resultado. Cada serviço é identificado na linha do tempo, para que você veja onde um serviço passa o trabalho para o próximo. Selecione All spans para abrir a linha do tempo em tela cheia, onde você pode:- Buscar spans por nome, atributo ou evento.
- Filtrar por tipo de evento: errors, queries ou events.
- Filtrar por issue, como queries N+1.
- Filtrar por grupo de spans, como servidor web, banco de dados e ORM, HTTP ou outro.
- Filtrar por serviço, ou restringir a linha do tempo a uma parte da duração do trace.
- Expandir e recolher spans aninhados. Um badge mostra quantos spans filhos um span tem, e um badge de repetição como
x6mostra com que frequência o mesmo span rodou. - Selecionar um span para abrir seus detalhes.

A linha do tempo do trace em tela cheia, com os detalhes do span selecionado
Detalhes do span
O painel de detalhes nomeia o span e mostra seu tipo, comoconsumer, seu status, sua hora de início e sua duração. Três abas fornecem o restante:
- Attributes: os atributos do span, como
celery.task_nameemessaging.destination, e os atributos de recurso, comohost.nameeservice.name. Selecione Show internal attributes para listar também os atributos que o AppSignal adiciona. O ID do trace e o ID do span ficam visíveis somente enquanto Show internal attributes está selecionado. - Exceptions ou Events: os erros e outros eventos registrados no span. Um span que gerou um erro também mostra um resumo no topo do painel, com uma ação para ver a exceção.
- Related logs: as linhas de log vinculadas ao span. Selecione View in logs para continuar no explorador de logs.
Detalhamento do trace
O detalhamento do trace resume o trace inteiro em duas barras empilhadas. Em ambas, cada segmento é uma das bibliotecas que fez o trabalho, comoactive_record, http_rb ou sidekiq, e a legenda lista cada biblioteca com seu próprio total, a maior primeiro.
- Durations: quanto do tempo do trace cada biblioteca representa.
- Allocations: quantos objetos cada biblioteca alocou, com o total do trace no título.
Tags
Tags são os pares de chave e valor registrados com o trace, comohostname, queue, message_id e revision.
Cada tag tem duas ações:
- Filter restringe a lista de Traces aos traces desta action que carregam o mesmo valor. O valor permanece visível acima da lista, e Reset o limpa.
- Search abre uma visão geral de tudo que o AppSignal registrou com aquele valor. Você pode restringir a visão geral por app, namespace, período e tipo, de forma que veja apenas os erros ou apenas os traces de performance que o compartilham. Selecione Go to trace em qualquer resultado para abri-lo.
Logs relacionados
As linhas de log vinculadas a este trace, com seu horário, severidade e mensagem. No exemplo dos stroopwafels, elas mostram o início da tarefa de lista de espera, a falha no envio do e-mail e a nova tentativa que se segue. Selecione Open in the log view para continuar no explorador de logs. O painel informa quando não encontra linhas de log relacionadas. O AppSignal vincula uma linha de log a um trace por umrequest_id ou trace_id compartilhado, então o painel permanece vazio quando a operação não registrou nada, quando sua aplicação ainda não envia logs ao AppSignal, ou quando o identificador está ausente em um dos dois. Veja configurar logging para enviar logs, e vincular traces com logs para os identificadores.
Detalhes da requisição
Para requisições web, a página também mostra os dados brutos recebidos pelo AppSignal, em três painéis:- Cabeçalhos da requisição: os cabeçalhos HTTP enviados com a requisição. Use a filtragem de cabeçalhos para escolher quais cabeçalhos sua aplicação envia.
- Payload da requisição: o corpo da requisição, como uma query GraphQL e suas variáveis. Use a filtragem de parâmetros para manter valores sensíveis fora.
- Dados de sessão da requisição: os valores de sessão da requisição. Use a filtragem de dados de sessão para manter valores sensíveis fora.
Tendências de desempenho
Um gráfico da performance da action nas últimas 24 horas ou 30 dias.Triggers
Triggers alertam você quando esta action fica lenta. O painel lista os triggers que já existem para a action, comoMean > 200 ms.
Selecione Add new para abrir o formulário de trigger com o namespace e o nome da action já preenchidos. No formulário, você:
- Escolhe o valor a ser monitorado, como a média, e o limite acima do qual o AppSignal alerta, como 200 ms.
- Define um warm-up e um cooldown de alerta em minutos.
- Adiciona uma descrição para as pessoas que recebem o alerta.
- Seleciona os notifiers que o recebem, como e-mail, Slack, PagerDuty ou OpsGenie.
Actions
- Time Detective: revise os dados da sua aplicação como estavam no momento do trace.
- Send to your issue tracker: crie uma issue a partir do trace. Essa ação aparece quando um tracker está conectado, e seu rótulo corresponde a esse tracker, como GitHub, GitLab, Jira ou Linear. Veja integrações.
Traces
O painel Traces lista os outros traces armazenados para essa action, cada um com seu timestamp e duração. Selecione qualquer um deles para abrir esse trace. Para encontrar um trace específico:- Insira um valor no campo de filtro de tag, ou use a ação Filter em uma tag, para manter apenas os traces que carregam esse valor.
- Abra o controle de data para escolher uma data e horário, ou escolha Today, Yesterday, Last week ou Latest. Selecione Jump to latest para voltar aos traces mais recentes.
- Selecione Load newer traces ou Load older traces para navegar pela lista.
- Selecione Reset para limpar os filtros e ver novamente todos os traces armazenados.
O AppSignal não armazena um trace para cada requisição. Em vez disso, ele armazena um conjunto representativo, então a lista mostra uma amostra do tráfego da action.