Pular para o conteúdo principal
A instrumentação do AppSignal cria eventos para trechos de código que são instrumentados. Esses eventos são usados para calcular a duração da execução do código e o Garbage Collection de bibliotecas e blocos de código separados. A instrumentação permite que o AppSignal detecte áreas problemáticas no código. Isso possibilita ver se as consultas ao banco de dados de uma aplicação estão lentas ou se uma única chamada de API está causando a maior parte da lentidão em uma requisição. Para instrumentar o código com precisão, cada nome de evento segue um método de nomenclatura muito específico. Escolher um bom nome pode ajudar bastante na forma como o AppSignal processa e exibe os dados recebidos. Nomear eventos pode ser difícil, mas esperamos que essa breve explicação sobre como um nome de evento é usado ajude você a escolher um bom nome. Para saber mais sobre instrumentação, leia nossos guias de instrumentação personalizada:

Grupos de eventos

Todo evento criado pela instrumentação do AppSignal tem um nome. Neste nome também está presente o grupo pai do evento. Esse nome de grupo permite que o AppSignal agrupe eventos de consultas ao banco de dados e renderização de views. Usando esse agrupamento, podemos criar visões gerais que mostram tempos de execução por grupo, bem como eventos individuais. Por exemplo, nossa integração com Rails cria estes grupos: active_record, action_view, action_controller, etc.

Nomenclatura de eventos

Um nome de evento é uma string composta por caracteres alfanuméricos, sublinhados e pontos. Espaços e traços não são aceitos. Pense nesta regex, ([a-zA-Z0-9_.]+); se for aceita por esta regex, o nome do evento é aceito. Vamos começar com um nome de evento simples.
Shell
A ação de um nome de evento é tudo até o último ponto . em uma chave. O grupo é tudo após esse ponto. O grupo de um evento é a biblioteca de código à qual ele pertence ou o tipo de ação que ele representa, como uma consulta ao banco de dados ou uma requisição HTTP. Também funciona com vários pontos em uma chave.
Shell
Nós mesmos usamos esse esquema de nomenclatura final para a instrumentação de métodos em Ruby. Quando um nome com apenas uma parte é encontrado, o evento será automaticamente agrupado sob o grupo other.

Exemplos

Alguns exemplos de chaves usadas pelas integrações do AppSignal:
  • ActiveRecord: sql.active_record
  • Redis: query.redis
  • Elasticsearch: search.elasticsearch
  • ActionView: render_template.action_view e render_partial.action_view
  • Net::HTTP do Ruby: request.net_http
  • Sidekiq: perform_job.sidekiq
  • Instrumentação de métodos em Ruby:
    • method_name.ClassName.other, e;
    • method_name.class_method.NestedClassName.ParentModule.other