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

# Ordre de chargement d'AppSignal pour Ruby

La gem Ruby AppSignal peut être configurée de plusieurs façons différentes. Via un
initializer, avec un fichier de configuration ou via des variables d'environnement.

<Warning>
  Dans la version 2.0 de la gem Ruby, l'ordre de chargement a changé ! Les étapes 4 et 5 ont été interverties,
  garantissant que les variables d'environnement sont chargées après le fichier
  de configuration `appsignal.yml`. Pour en savoir plus, consultez la [Pull Request sur
  GitHub](https://github.com/appsignal/appsignal-ruby/pull/180).
</Warning>

La configuration est chargée en un processus de cinq étapes. En commençant par les valeurs par
défaut de la gem et en terminant par la lecture des variables d'environnement. Les options de
configuration peuvent être mélangées sans perdre la configuration d'une autre option.
L'utilisation conjointe d'un initializer, d'un fichier de configuration et de variables d'environnement
fonctionnera.

## Sources de configuration

* 1. [Valeurs par défaut de la gem - `default`](#1-gem-defaults)
* 2. [Paramètres détectés par le système - `system`](#2-system-detected-settings)
* 3. [Configuration initiale - `initial`](#3-initial-configuration-given-to-config-initializer)
* 4. [Fichier de configuration `appsignal.yml` - `file`](#4-appsignalyml-config-file)
* 5. [Variables d'environnement - `env`](#5-environment-variables)
* 6. [Fichier de configuration `appsignal.rb` - `dsl`](#appsignal-rb-config-file)
* 7. [`Appsignal.configure` - `dsl`](#appsignal-configure-helper)

## 1. Valeurs par défaut de la gem

La gem AppSignal commence par charger sa configuration par défaut, en définissant les chemins
et en activant certaines fonctionnalités.

Les valeurs par défaut de l'agent peuvent être trouvées dans la [source de la gem](https://github.com/appsignal/appsignal-ruby/blob/main/lib/appsignal/config.rb)
sous le nom `Appsignal::Config::DEFAULT_CONFIG`.

Cette source est listée comme `default` dans la sortie de [diagnose](/ruby/command-line/diagnose).

## 2. Paramètres détectés par le système

La gem détecte le type de système sur lequel elle s'exécute et se configure
en conséquence.

Par exemple, lorsqu'elle s'exécute dans un système basé sur des conteneurs (comme Docker
et Heroku), elle définit l'option de configuration `:running_in_container` sur `true`.

Cette source est listée comme `system` dans la sortie de [diagnose](/ruby/command-line/diagnose).

## 3. Configuration initiale donnée à l'initializer `Config`

<Warning>
  Cette méthode de configuration est obsolète depuis la version 3.12 de la gem Ruby et a été supprimée dans la version 4.0.0 de la gem Ruby au profit de [`Appsignal.configure`](#appsignal-configure-helper).
</Warning>

Lorsque vous créez manuellement une classe `Appsignal::Config`, vous pouvez passer la
configuration initiale que vous souhaitez appliquer. Il s'agit d'un hash de l'une des
options décrites ci-dessous.

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

Cette étape remplacera toutes les options données depuis les valeurs par défaut ou la configuration
détectée par le système.

Cette source est listée comme `initial` dans la sortie de [diagnose](/ruby/command-line/diagnose).

## 4. Fichier de configuration `appsignal.yml`

<Warning>
  Cette méthode de configuration sera supprimée dans la prochaine version majeure de la gem Ruby.
  Nous recommandons d'utiliser le [fichier de configuration `appsignal.rb`](#6-appsignal-dsl) à la place.
</Warning>

Une façon de configurer votre application consiste à utiliser le fichier `appsignal.yml`.
Lorsque vous utilisez la commande `appsignal install`, la gem en créera un pour vous.

Le chemin de ce fichier de configuration est `{project_root}/config/appsignal.yml`.

Cette étape remplacera toutes les options données depuis les valeurs par défaut, la configuration
détectée par le système et l'initializer.

Lisez la documentation du [fichier de configuration `appsignal.yml`](/ruby/configuration#yaml-configuration-file) pour plus d'informations sur le fonctionnement de cette méthode de configuration.

Cette source est listée comme `file` dans la sortie de [diagnose](/ruby/command-line/diagnose).

<a id="environment-variables" />

## 5. Variables d'environnement

AppSignal recherchera sa configuration dans les variables d'environnement.
Lorsqu'elles sont trouvées, celles-ci remplaceront toutes les options de configuration données aux
étapes précédentes.

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

Lisez la documentation sur les [variables d'environnement système](/ruby/configuration#system-environment-variables) pour plus d'informations sur le fonctionnement de cette méthode de configuration.

Cette source est listée comme `env` dans la sortie de [diagnose](/ruby/command-line/diagnose).

## 6. Fichier de configuration `appsignal.rb` {/* id: appsignal-rb-config-file */}

Une façon de configurer votre application consiste à utiliser le fichier `appsignal.rb`.

Le chemin de ce fichier de configuration est `{project_root}/config/appsignal.rb`.
Ce chemin de chargement ne peut pas être personnalisé.

Cette étape remplacera toutes les options données depuis les valeurs par défaut, la configuration détectée par le système et les variables d'environnement.

Si à la fois un [fichier de configuration `appsignal.yml`](#4-appsignalyml-config-file) et un fichier de configuration `appsignal.rb` sont présents, seul le fichier de configuration `appsignal.rb` est chargé.

Lisez la documentation du [fichier de configuration `appsignal.rb`](/ruby/configuration#ruby-configuration-file) pour plus d'informations sur le fonctionnement de cette méthode de configuration.

Cette source est listée comme `dsl` dans la sortie de [diagnose](/ruby/command-line/diagnose).

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

<Warning>
  Dans les versions 3 et 4 de la gem Ruby, l'appel de l'assistant `Appsignal.configure` chargera également le fichier `appsignal.yml`, s'il est présent.
  Ce comportement sera *supprimé* dans la prochaine version majeure de la gem Ruby.
  Veuillez utiliser uniquement le [fichier de configuration `appsignal.rb`](#appsignal-rb-config-file) ou l'[assistant `Appsignal.configure`](#configure-helper).
</Warning>

Enfin, la gem Ruby peut être configurée à l'aide de l'assistant `Appsignal.configure` dans l'application.
Lorsqu'il est appelé, toutes les options de configuration configurées avec cet assistant remplaceront toutes les options de configuration données depuis les sources précédentes.

Si un fichier de configuration `config/appsignal.rb` est également présent dans le projet, il **ne sera pas chargé** si l'assistant `Appsignal.configure` est appelé en premier dans votre application.

Lisez la documentation de l'[assistant `Appsignal.configure`](/ruby/configuration#appsignalconfigure-helper) pour plus d'informations sur le fonctionnement de cette méthode de configuration.

Cette source est listée comme `dsl` dans la sortie de [diagnose](/ruby/command-line/diagnose).
