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

# Ordem de carregamento do AppSignal para Ruby

A gem AppSignal para Ruby pode ser configurada de algumas formas diferentes. Através de um
initializer, com um arquivo de configuração ou através de variáveis de ambiente.

<Warning>
  Na versão 2.0 da gem Ruby, a ordem de carregamento mudou! As etapas 4 e 5 foram trocadas,
  garantindo que as variáveis de ambiente sejam carregadas após o arquivo
  de configuração `appsignal.yml`. Leia mais sobre isso no [Pull Request no
  GitHub](https://github.com/appsignal/appsignal-ruby/pull/180).
</Warning>

A configuração é carregada em um processo de cinco etapas. Começando com os padrões
da gem e terminando com a leitura das variáveis de ambiente. As opções de
configuração podem ser misturadas sem perder a configuração de uma opção diferente.
Usar um initializer, um arquivo de configuração e variáveis de ambiente juntos
funciona.

## Fontes de configuração

* 1. [Padrões da gem - `default`](#1-gem-defaults)
* 2. [Configurações detectadas pelo sistema - `system`](#2-system-detected-settings)
* 3. [Configuração inicial - `initial`](#3-initial-configuration-given-to-config-initializer)
* 4. [Arquivo de configuração `appsignal.yml` - `file`](#4-appsignalyml-config-file)
* 5. [Variáveis de ambiente - `env`](#5-environment-variables)
* 6. [Arquivo de configuração `appsignal.rb` - `dsl`](#appsignal-rb-config-file)
* 7. [`Appsignal.configure` - `dsl`](#appsignal-configure-helper)

## 1. Padrões da gem

A gem do AppSignal começa carregando sua configuração padrão, definindo caminhos
e habilitando certos recursos.

Os padrões do agente podem ser encontrados no [código-fonte da gem](https://github.com/appsignal/appsignal-ruby/blob/main/lib/appsignal/config.rb)
como `Appsignal::Config::DEFAULT_CONFIG`.

Esta fonte é listada como `default` na saída do [diagnose](/ruby/command-line/diagnose).

## 2. Configurações detectadas pelo sistema

A gem detecta em que tipo de sistema está rodando e se configura
conforme necessário.

Por exemplo, quando está rodando dentro de um sistema baseado em container (como Docker
e Heroku) ela define a opção de configuração `:running_in_container` como `true`.

Esta fonte é listada como `system` na saída do [diagnose](/ruby/command-line/diagnose).

## 3. Configuração inicial passada para o inicializador `Config`

<Warning>
  Este método de configuração foi obsoletado desde a gem Ruby 3.12 e removido na gem Ruby 4.0.0 em favor de [`Appsignal.configure`](#appsignal-configure-helper).
</Warning>

Ao criar manualmente uma classe `Appsignal::Config`, você pode passar a
configuração inicial que deseja aplicar. Este é um hash de qualquer uma das
opções descritas abaixo.

<CodeGroup>
  ```ruby Ruby theme={null}
  Appsignal.config = Appsignal::Config.new(Dir.pwd, "production", {
    active: true,
    name: "My app!",
    push_api_key: "e55f8e96-62df-4817-b672-d10c8d924065"
  })
  ```
</CodeGroup>

Esta etapa sobrescreverá todas as opções fornecidas a partir dos padrões ou
da configuração detectada pelo sistema.

Esta fonte é listada como `initial` na saída do [diagnose](/ruby/command-line/diagnose).

## 4. Arquivo de configuração `appsignal.yml`

<Warning>
  Este método de configuração será removido na próxima versão major da gem Ruby.
  Recomendamos usar o [arquivo de configuração `appsignal.rb`](#6-appsignal-dsl) em vez disso.
</Warning>

Uma forma de configurar sua aplicação é usando o arquivo `appsignal.yml`.
Quando você usa o comando `appsignal install`, a gem criará um para você.

O caminho deste arquivo de configuração é `{project_root}/config/appsignal.yml`.

Esta etapa sobrescreverá todas as opções fornecidas a partir dos padrões, configuração
detectada pelo sistema e configuração do initializer.

Leia a documentação do [arquivo de configuração `appsignal.yml`](/ruby/configuration#yaml-configuration-file) para mais informações sobre como esse método de configuração funciona.

Esta fonte é listada como `file` na saída do [diagnose](/ruby/command-line/diagnose).

<a id="environment-variables" />

## 5. Variáveis de ambiente

O AppSignal procurará sua configuração em variáveis de ambiente.
Quando encontradas, estas sobrescreverão todas as opções de configuração fornecidas
das etapas anteriores.

<CodeGroup>
  ```bash Bash theme={null}
  export APPSIGNAL_APP_NAME="my custom app name"
  # start your app here
  ```
</CodeGroup>

Leia a documentação das [variáveis de ambiente do sistema](/ruby/configuration#system-environment-variables) para mais informações sobre como esse método de configuração funciona.

Esta fonte é listada como `env` na saída do [diagnose](/ruby/command-line/diagnose).

## 6. Arquivo de configuração `appsignal.rb` {/* id: appsignal-rb-config-file */}

Uma forma de configurar sua aplicação é usando o arquivo `appsignal.rb`.

O caminho deste arquivo de configuração é `{project_root}/config/appsignal.rb`.
Este caminho de carregamento não pode ser personalizado.

Esta etapa sobrescreverá todas as opções fornecidas a partir dos padrões, configuração detectada pelo sistema e variáveis de ambiente.

Se tanto um [arquivo de configuração `appsignal.yml`](#4-appsignalyml-config-file) quanto um arquivo de configuração `appsignal.rb` estiverem presentes, apenas o arquivo de configuração `appsignal.rb` será carregado.

Leia a documentação do [arquivo de configuração `appsignal.rb`](/ruby/configuration#ruby-configuration-file) para mais informações sobre como esse método de configuração funciona.

Esta fonte é listada como `dsl` na saída do [diagnose](/ruby/command-line/diagnose).

## 7. Helper Appsignal.configure {/* id: configure-helper */}

<Warning>
  Nas versões 3 e 4 da gem Ruby, chamar o helper `Appsignal.configure` também carregará o arquivo `appsignal.yml`, se presente.
  Este comportamento será *removido* na próxima versão major da gem Ruby.
  Por favor, use apenas o [arquivo de configuração `appsignal.rb`](#appsignal-rb-config-file) ou o [helper `Appsignal.configure`](#configure-helper).
</Warning>

Por último, a gem Ruby pode ser configurada usando o helper `Appsignal.configure` na aplicação.
Quando chamado, qualquer opção de configuração definida usando este helper sobrescreverá todas as opções de configuração fornecidas pelas fontes anteriores.

Se um arquivo de configuração `config/appsignal.rb` também estiver presente no projeto, ele **não será carregado** se o helper `Appsignal.configure` for chamado primeiro na sua aplicação.

Leia a documentação do [helper `Appsignal.configure`](/ruby/configuration#appsignalconfigure-helper) para mais informações sobre como este método de configuração funciona.

Esta fonte é listada como `dsl` na saída do [diagnose](/ruby/command-line/diagnose).
