tracethat.dev

tracethat.dev

Kacper Pietrzak · Programação

A depuração sem configuração é a proposta do tracethat.dev: você envolve funções em JavaScript, Python ou Go e ela transmite os argumentos, os valores de retorno, os tempos e os erros delas para uma interface de depuração ao vivo.

Prévia da interface de tracethat.dev

Sobre tracethat.dev

About

O que é o tracethat.dev

O tracethat.dev é uma ferramenta de depuração remota de código aberto criada por Kacper Pietrzak para quem já se cansou de espalhar print pelo código. Em vez de imprimir uma parede de logs e rolar por uma saída que não tem nada a ver, você envolve uma função e a ferramenta recolhe os detalhes úteis sozinha. O alvo são times e desenvolvedores que trabalham por conta própria e depuram código que roda onde não dá para acoplar um depurador tradicional, como um servidor remoto, um contêiner ou um job em segundo plano.

A ideia por trás é simples. Depurar com print obriga você a decidir de antemão o que registrar e a rodar o código de novo a cada vez que erra. O tracethat.dev inverte isso. O reporter captura os argumentos, os valores de retorno, o tempo de execução, a pilha de chamadas e qualquer exceção lançada, então uma execução costuma bastar para achar o problema.

O custo disso é o alcance. O reporter de Go não consegue envolver funções arbitrárias por causa de como funciona o sistema de tipos da linguagem, então quem usa Go registra eventos na mão. Os eventos só ficam no servidor por um tempo, então não serve como arquivo de logs de longo prazo. E você ainda precisa adicionar o reporter ao seu código por conta própria.

Como começar

  1. Acesse tracethat.dev e inicie uma sessão nova. O site gera um token que funciona ao mesmo tempo como identificador de sala e como chave de criptografia.
  2. Instale o reporter da sua linguagem: npm install tracethat.dev, pip install tracethat ou go get github.com/pietrzakacper/tracethat.dev/reporters/golang/tt.
  3. Registre o token no seu app com registerToken("seu-token") (JavaScript) ou register_token('seu-token') (Python).
  4. Envolva a função que você quer acompanhar, ou registre um evento solto com tracethat.log, e depois rode o código.
  5. Veja os eventos chegando no navegador em tempo real e expanda, recolha ou filtre para focar no que interessa.

Informações do produto

Uma visão rápida dos preços, das plataformas compatíveis e do desempenho de tracethat.dev.

Plano gratuitoSim
Planos pagosFree
PlataformaWeb, JavaScript/TypeScript, Python, Go
DesenvolvedorKacper Pietrzak
CategoriaProgramação
Data de lançamentoDec 2023
Última atualizaçãoJan 2025
Visitas ao siteN/A
Ranking global do siteN/A
Disponibilidade da APIN/A

Ideal para

Os usuários, tarefas e cenários em que esta ferramenta se encaixa melhor.

Usuários

  • Desenvolvedores de backend
  • Desenvolvedores de JavaScript e TypeScript
  • Desenvolvedores de Python

Tarefas

  • Depurar uma função que você não consegue reproduzir na máquina local
  • Medir trechos de código lentos
  • Pegar exceções silenciosas

Cenários

  • Um job em segundo plano num servidor de homologação lança um erro que você não reproduz no seu notebook; envolver a etapa que falha manda as entradas reais direto para o navegador.
  • Um app web só se comporta mal em produção; o reporter de tag `script` entra no seu HTML e começa a transmitir sem etapa de build.
  • Você está depurando em dupla ou pedindo ajuda a alguém do time; compartilhar o token da sessão deixa os dois acompanharem o mesmo fluxo ao vivo.

Principais recursos

Rastreamento de função em uma linha

O movimento central do reporter é envolver uma função para que cada chamada seja registrada como evento de rastreamento. Em JavaScript você escreve traceThat(hello)("world") e a ferramenta pega os argumentos, o valor de retorno, quanto durou a chamada, a pilha de chamadas e qualquer exceção lançada. O Python usa a mesma ideia por meio de um decorador @tracethat. Você obtém tudo isso sem escrever um único print. E o rastreamento de funções fica em uma linha.

Interface web com transmissão ao vivo

Os eventos não esperam você atualizar a página. O cliente web mantém um socket com o servidor e empurra cada evento novo para a sua sala conforme ele acontece. Você pode expandir uma chamada para ver todos os detalhes, recolher as que não interessam e filtrar por valores específicos. A proposta é ler uma lista enxuta de eventos, não um buffer de rolagem.

Criptografia baseada em token

Seu token cumpre duas funções: identificador de sala e chave de criptografia. O reporter criptografa cada evento antes que ele saia do seu app, e o cliente web só consegue descriptografar os eventos se receber o mesmo token. A sala é identificada pelo hash SHA-256 do token, então o servidor entrega à sua sessão apenas os eventos destinados a ela.

Reporters para várias linguagens

Existem reporters para JavaScript/TypeScript, Python e Go. O de JS instala pelo npm e também roda a partir de uma tag script simples, o que ajuda quando você não tem um pipeline de build. O Python instala pelo PyPI. O Go instala direto do GitHub. Todos falam com o mesmo servidor e a mesma interface, então uma stack mista ainda cai num só lugar.

Registro manual de eventos

Quando você não quer envolver uma função inteira, pode colocar uma marca num ponto específico. tracethat.log('hello function started') registra um evento, e você pode passar dados extras junto. Essa é a opção padrão para Go, cujo reporter não envolve funções de forma genérica, e para quem só quer um ponto de checagem entre duas linhas.

Servidor em memória com limpeza automática

O servidor guarda os eventos na memória em vez de gravá-los em armazenamento durável, e depois os limpa após um tempo. Isso mantém a configuração leve e evita um log sobrando para gerenciar. Também significa que os eventos servem para depurar ao vivo, não para revisar o que aconteceu na semana passada.

Prós e contras

Prós

  • Não existe configuração além de adicionar o reporter: você não monta agente, coletor nem armazenamento.
  • Os dados capturados são mais amplos que os `print` e cobrem argumentos, valores de retorno, tempos, pilhas de chamadas e exceções numa única passada.
  • A interface ao vivo com filtros e expandir/recolher deixa uma execução bem mais fácil de ler que logs crus.
  • Código aberto sob licença MIT, então você pode ler o código, hospedar sozinho ou contribuir.
  • Funciona com JavaScript, Python e Go, o que atende times com backend misto.

Contras

  • O reporter de Go não consegue envolver funções arbitrárias, então quem usa Go registra eventos na mão, o que dá mais trabalho manual que em JS ou Python.
  • Os eventos ficam na memória e são apagados após um tempo, então você não pode tratá-lo como log durável para revisar um incidente passado.
  • Você ainda precisa mexer no código-fonte para adicionar o reporter, então não é zero toque em apps que você não pode editar.
  • É um projeto pequeno, de um único mantenedor e com base de usuários modesta, então o suporte da comunidade é mais fino que numa plataforma comercial grande, e você pode acabar resolvendo casos raros por conta própria.

Perguntas frequentes

É uma ferramenta de depuração remota para ver o que um app em execução realmente faz. Você envolve funções e a ferramenta transmite os argumentos, os valores de retorno, os tempos e os erros para uma interface no navegador, então você depura código que é difícil alcançar com um depurador comum.

Conteúdo relacionado

Explore ferramentas, skills e artigos relacionados a tracethat.dev.

Alternativas a tracethat.dev

Forefront

Forefront

Forefront · Programação

O Forefront é uma plataforma web para construir com IA de código aberto. Você ajusta os principais modelos de linguagem de código aberto com seus próprios dados, avalia o desempenho deles e os roda por uma API ou os exporta para hospedar por conta própria. Desenvolvedores que querem a conveniência de uma plataforma fechada, mas fazem questão de ser donos dos modelos e dos dados, são o público-alvo aqui.

Grátis / $0 - $99/moVer detalhes
Startkit

Startkit

StartKit.AI · Programação

Startkit é um boilerplate para criar produtos de SaaS com IA e wrappers de IA. Pense nele como um boilerplate para startups de IA com as partes chatas já conectadas: autenticação, pagamentos com Stripe e Lemon Squeezy, limites de uso, e-mail transacional e um kit inicial de API de IA que conversa com OpenAI, Anthropic, Groq ou Llama. Você clona o repositório, define seu preço e começa pela parte do produto que as pessoas realmente pagam. Ele é feito em Next.js sobre React e Tailwind, então boa parte do código boilerplate já parece familiar.

Pago / $99 - $499 one-timeVer detalhes
Testim

Testim

Tricentis · Programação

O Testim é uma plataforma de automação de testes com IA para criar e executar testes de ponta a ponta em aplicações web, mobile e Salesforce. Ele se apoia no aprendizado de máquina para manter os testes estáveis quando uma interface muda, então as equipes gastam menos tempo consertando seletores quebrados. Nada mal para uma ferramenta de testes automatizados que você pode começar a usar hoje. Você cria testes gravando ações no navegador e depois adiciona JavaScript quando precisa de mais controle. É uma escolha sólida para equipes de QA ocupadas.

Grátis / Custom pricing on requestVer detalhes