> ## 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.

# Breadcrumbs

<Tip>
  Breadcrumbs estão disponíveis desde a versão `2.11.2` da gem Ruby.
</Tip>

Os breadcrumbs foram inicialmente implementados em nossa [biblioteca JavaScript front-end](/front-end/breadcrumbs) com a ideia de que ajudariam a depurar um problema quando você tem uma trilha de breadcrumbs com ações (do usuário) que levaram ao erro.

Então percebemos que isso também poderia ser útil para requisições back-end, onde você pode adicionar uma lista ordenada por tempo das ações que levaram ao erro. Por exemplo, adicionando breadcrumbs através de árvores de decisão que de outra forma não são instrumentadas.

<img src="https://mintcdn.com/appsignal-715f5a51/nF8c1Rwq1cS7b5hg/assets/images/screenshots/frontend/breadcrumbs.svg?fit=max&auto=format&n=nF8c1Rwq1cS7b5hg&q=85&s=1f7cb85f6a8662c46a42a3aa90340eb4" alt="Breadcrumbs" width="648" height="366" data-path="assets/images/screenshots/frontend/breadcrumbs.svg" />

## Uso

Por padrão, nenhum breadcrumb é rastreado, mas é muito fácil rastrear os seus próprios.

Sempre que um evento interessante, operação ou mudança de estado ocorrer no seu app, você pode deixar um breadcrumb assim:

<CodeGroup>
  ```ruby Ruby theme={null}
  Appsignal.add_breadcrumb("Navigation", "https://example.com", "", { :response => 200 }, Time.now.utc)
  Appsignal.add_breadcrumb("Network", "[GET] https://example.com", "", { :response => 500 })
  Appsignal.add_breadcrumb("UI", "closed modal(change_password)", "User closed modal without actions")
  ```
</CodeGroup>

Apenas os últimos 20 breadcrumbs adicionados serão adicionados à transaction atual.

## Opções de Breadcrumb

| Opção    | Tipo                     | Descrição                                                               |
| -------- | ------------------------ | ----------------------------------------------------------------------- |
| category | String                   | Categoria para rotular o evento                                         |
| action   | String                   | Informações contextuais relacionadas ao evento                          |
| message  | String                   | (opcional) Uma mensagem de log ou outra string para enviar ao AppSignal |
| metadata | `Object<String, String>` | (opcional) Um objeto de metadados relacionados ao evento                |
| time     | Time object              | (opcional) Objeto Time que responde a `.to_i`, o padrão é `Time.utc`    |
