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

# Eventos do Tracer

> Eventos de domínio emitidos pelo Tracer para regras e limites de gastos.

O Tracer emite eventos de domínio como mensagens **CloudEvents 1.0** em modo de conteúdo binário sobre Kafka, publicados através da `lib-streaming`. Todo evento viaja no [envelope compartilhado](/pt/reference/events/overview): `ce-type` nomeia o evento como `studio.lerian.<resource>.<event>`, `ce-subject` carrega o id do agregado (a regra ou o limite), `ce-tenantid` o tenant proprietário (ausente no escopo de tenant único) e `ce-schemaversion` a versão do payload — `1.0.0` para todos os eventos abaixo.

`ce-source` tem o valor padrão `lerian.midaz.tracer`; a variável de ambiente `STREAMING_CLOUDEVENTS_SOURCE` o sobrescreve quando definida — diferente do ledger e do Consignado, o Tracer nunca falha ao subir por uma fonte não definida. Os tópicos não derivam da fonte — o Tracer roteia cada evento para um tópico explícito no formato `lerian.streaming.tracer_<resource>.<event>`, incorporando o nome do serviço ao primeiro segmento (por exemplo, `lerian.streaming.tracer_rule.created`).

Os payloads de regra e de limite carregam apenas identidade, status e carimbos de tempo do ciclo de vida. A expressão da regra, o nome, a descrição e os valores do limite são detalhe de configuração e nunca trafegam pelo fio.

## Eventos de regra

Fatos que o Tracer emite à medida que uma regra de gastos passa pelo seu ciclo de vida.

| Evento (`ce-type`)               | Tópico                                     | Quando dispara                                                     | Payload principal                                            |
| -------------------------------- | ------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------ |
| `studio.lerian.rule.created`     | `lerian.streaming.tracer_rule.created`     | Uma regra é criada.                                                | `id`, `status`, `action`, `scopes`, `createdAt`, `updatedAt` |
| `studio.lerian.rule.updated`     | `lerian.streaming.tracer_rule.updated`     | Os campos mutáveis de uma regra mudam.                             | `id`, `status`, `action`, `scopes`, `createdAt`, `updatedAt` |
| `studio.lerian.rule.activated`   | `lerian.streaming.tracer_rule.activated`   | Uma regra passa para ativa e começa a avaliar o tráfego.           | `id`, `status`, `activatedAt`, `updatedAt`                   |
| `studio.lerian.rule.deactivated` | `lerian.streaming.tracer_rule.deactivated` | Uma regra passa para inativa e para de avaliar.                    | `id`, `status`, `deactivatedAt`, `updatedAt`                 |
| `studio.lerian.rule.drafted`     | `lerian.streaming.tracer_rule.drafted`     | Uma regra é salva como rascunho (status `DRAFT`), ainda não ativa. | `id`, `status`, `updatedAt`                                  |
| `studio.lerian.rule.deleted`     | `lerian.streaming.tracer_rule.deleted`     | Uma regra é excluída.                                              | `id`, `deletedAt`                                            |

## Eventos de limite

Fatos que o Tracer emite à medida que um limite de gastos passa pelo seu ciclo de vida.

| Evento (`ce-type`)                | Tópico                                      | Quando dispara                                                     | Payload principal                                                                                                                                              |
| --------------------------------- | ------------------------------------------- | ------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `studio.lerian.limit.created`     | `lerian.streaming.tracer_limit.created`     | Um limite é criado.                                                | `id`, `status`, `limitType`, `currency`, `scopes`, `activeTimeStart`, `activeTimeEnd`, `customStartDate`, `customEndDate`, `resetAt`, `createdAt`, `updatedAt` |
| `studio.lerian.limit.updated`     | `lerian.streaming.tracer_limit.updated`     | Os campos mutáveis de um limite mudam.                             | `id`, `status`, `limitType`, `currency`, `scopes`, `activeTimeStart`, `activeTimeEnd`, `customStartDate`, `customEndDate`, `resetAt`, `createdAt`, `updatedAt` |
| `studio.lerian.limit.activated`   | `lerian.streaming.tracer_limit.activated`   | Um limite passa para ativo.                                        | `id`, `status`, `updatedAt`                                                                                                                                    |
| `studio.lerian.limit.deactivated` | `lerian.streaming.tracer_limit.deactivated` | Um limite passa para inativo.                                      | `id`, `status`, `updatedAt`                                                                                                                                    |
| `studio.lerian.limit.drafted`     | `lerian.streaming.tracer_limit.drafted`     | Um limite é salvo como rascunho (status `DRAFT`), ainda não ativo. | `id`, `status`, `updatedAt`                                                                                                                                    |
| `studio.lerian.limit.deleted`     | `lerian.streaming.tracer_limit.deleted`     | Um limite é excluído.                                              | `id`, `deletedAt`                                                                                                                                              |
