> ## 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 for Elixir

O AppSignal Elixir pode ser configurado de algumas formas diferentes. Por meio da
configuração do Mix ou por meio de variáveis de ambiente.

A configuração é carregada em um processo de quatro etapas. Começando pelos
padrões do pacote 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.

## Ordem de carregamento

* 1. [Padrões do pacote - `default`](#1-package-defaults)
* 2. [Configurações detectadas do sistema - `system`](#2-system-detected-settings)
* 3. [Arquivo de configuração do Mix - `file`](#3-mix-configuration)
* 4. [Variáveis de ambiente - `env`](#4-environment-variables)
* 5. [Overrides - `override`](#5-overrides)

## 1. Padrões do pacote

O pacote AppSignal começa carregando sua configuração padrão, definindo
caminhos e habilitando certos recursos.

Os padrões do agente podem ser encontrados na [documentação das opções de configuração](/elixir/configuration/options).

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

## 2. Configurações detectadas do sistema

O pacote detecta em que tipo de sistema está rodando e se configura
de acordo.

Por exemplo, quando está rodando no Heroku, ele define a opção de configuração
`:running_in_container` como `true` e `:log` como `"stdout"`.

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

## 3. Configuração do Mix

O pacote AppSignal é mais comumente configurado com configuração no arquivo
de configuração do Mix.

<CodeGroup>
  ```elixir Elixir theme={null}
  # config/config.exs
  # ou config/prod.exs
  config :appsignal, :config,
    otp_app: :appsignal_phoenix_example,
    name: "AppsignalPhoenixExample",
    push_api_key: "your-push-api-key",
    env: Mix.env,
    active: true
  ```
</CodeGroup>

Esta etapa sobrescreverá todas as opções fornecidas pelos padrões ou pela
configuração detectada do sistema.

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

## 4. Variáveis de ambiente

Nossa integração procurará sua configuração em variáveis de ambiente.
Quando encontradas, elas sobrescreverão todas as opções de configuração fornecidas nas
etapas anteriores.

<CodeGroup>
  ```bash Bash theme={null}
  export APPSIGNAL_APP_NAME="AppsignalPhoenixExample"
  # inicie seu app aqui
  ```
</CodeGroup>

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

## 5. Overrides

Quando toda a configuração é conhecida, nossa integração fará uma verificação final para descobrir se a configuração não se contradiz ou se algumas opções padrão de configuração não estão definidas.

A fonte de configuração "override" incluirá essas últimas alterações de configuração feitas pela integração. Quando ela sobrescreve um valor de opção de configuração, esse valor prevalece.

Por exemplo, em determinado momento descontinuamos a opção `skip_session_data` em favor da opção `send_session_data`. Quando a opção de configuração `skip_session_data` foi configurada pela aplicação, mas `send_session_data` não, a integração usaria o valor de `skip_session_data` para definir o valor da opção de configuração `send_session_data`.
