> ## Documentation Index
> Fetch the complete documentation index at: https://docs.appsignal.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Nomes de eventos

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:

* [Instrumentação personalizada em Ruby](/ruby/instrumentation/instrumentation)
* [Instrumentação personalizada em Elixir](/elixir/instrumentation/instrumentation)
* [Instrumentação personalizada em Node.js](/nodejs/3.x/instrumentation/instrumentation)
* [Instrumentação personalizada em Python](/python/instrumentation/instrumentation)

## 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 Shell theme={null}
sql.active_record
^   ^
|   segunda parte (grupo)
primeira parte (ação)
```

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 Shell theme={null}
fetch.partition3.database
^                ^
|                segunda parte (grupo)
primeira parte (ação)
```

Nós mesmos usamos esse esquema de nomenclatura final para a [instrumentação de
métodos em Ruby](/ruby/instrumentation/method-instrumentation).

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](/ruby/instrumentation/method-instrumentation):
  * `method_name.ClassName.other`, e;
  * `method_name.class_method.NestedClassName.ParentModule.other`
