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

# AppSignal für Ruby: Ladereihenfolge

Das AppSignal Ruby-Gem kann auf verschiedene Arten konfiguriert werden: über einen
Initializer, mit einer Konfigurationsdatei oder über Umgebungsvariablen.

<Warning>
  In Ruby-Gem-Version 2.0 hat sich die Ladereihenfolge geändert! Schritt 4 und 5 wurden vertauscht,
  sodass sichergestellt ist, dass Umgebungsvariablen nach der Konfigurationsdatei
  `appsignal.yml` geladen werden. Mehr dazu im [Pull Request auf
  GitHub](https://github.com/appsignal/appsignal-ruby/pull/180).
</Warning>

Die Konfiguration wird in einem fünfstufigen Prozess geladen. Es beginnt mit den
Standardwerten des Gems und endet mit dem Lesen der Umgebungsvariablen. Die Konfigurationsoptionen
können kombiniert werden, ohne dass Konfiguration aus einer anderen Option verloren geht.
Die Verwendung eines Initializers, einer Konfigurationsdatei und von Umgebungsvariablen zusammen funktioniert.

## Konfigurationsquellen

* 1. [Gem-Standardwerte - `default`](#1-gem-defaults)
* 2. [Systemerkannte Einstellungen - `system`](#2-system-detected-settings)
* 3. [Initiale Konfiguration - `initial`](#3-initial-configuration-given-to-config-initializer)
* 4. [`appsignal.yml`-Konfigurationsdatei - `file`](#4-appsignalyml-config-file)
* 5. [Umgebungsvariablen - `env`](#5-environment-variables)
* 6. [`appsignal.rb`-Konfigurationsdatei - `dsl`](#appsignal-rb-config-file)
* 7. [`Appsignal.configure` - `dsl`](#appsignal-configure-helper)

## 1. Gem-Standardwerte

Das AppSignal-Gem beginnt mit dem Laden seiner Standardkonfiguration, dem Setzen von Pfaden
und dem Aktivieren bestimmter Funktionen.

Die Standardwerte des Agents finden Sie in der [Gem-Quelle](https://github.com/appsignal/appsignal-ruby/blob/main/lib/appsignal/config.rb)
als `Appsignal::Config::DEFAULT_CONFIG`.

Diese Quelle wird in der [Diagnose](/ruby/command-line/diagnose)-Ausgabe als `default` aufgeführt.

## 2. Systemerkannte Einstellungen

Das Gem erkennt, auf welchem System es läuft, und konfiguriert sich
entsprechend.

Wenn es z. B. innerhalb eines containerbasierten Systems (wie Docker
und Heroku) läuft, setzt es die Konfigurationsoption `:running_in_container` auf `true`.

Diese Quelle wird in der [Diagnose](/ruby/command-line/diagnose)-Ausgabe als `system` aufgeführt.

## 3. Initiale Konfiguration, die dem `Config`-Initializer übergeben wird

<Warning>
  Diese Konfigurationsmethode ist seit Ruby-Gem 3.12 veraltet und wurde in Ruby-Gem 4.0.0 zugunsten von [`Appsignal.configure`](#appsignal-configure-helper) entfernt.
</Warning>

Wenn Sie eine `Appsignal::Config`-Klasse manuell erstellen, können Sie die
initiale Konfiguration übergeben, die angewendet werden soll. Dies ist ein Hash mit einer der
unten beschriebenen Optionen.

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

Dieser Schritt überschreibt alle angegebenen Optionen aus den Standardwerten oder der
systemerkannten Konfiguration.

Diese Quelle wird in der [Diagnose](/ruby/command-line/diagnose)-Ausgabe als `initial` aufgeführt.

## 4. `appsignal.yml`-Konfigurationsdatei

<Warning>
  Diese Konfigurationsmethode wird in der nächsten Major-Version des Ruby-Gems entfernt.
  Wir empfehlen, stattdessen die [`appsignal.rb`-Konfigurationsdatei](#6-appsignal-dsl) zu verwenden.
</Warning>

Eine Möglichkeit, Ihre Anwendung zu konfigurieren, ist die `appsignal.yml`-Datei.
Wenn Sie den Befehl `appsignal install` verwenden, erstellt das Gem eine für Sie.

Der Pfad dieser Konfigurationsdatei ist `{project_root}/config/appsignal.yml`.

Dieser Schritt überschreibt alle angegebenen Optionen aus den Standardwerten, der systemerkannten
und der Initializer-Konfiguration.

Lesen Sie [die `appsignal.yml`-Konfigurationsdatei](/ruby/configuration#yaml-configuration-file)-Dokumentation für weitere Informationen, wie diese Konfigurationsmethode funktioniert.

Diese Quelle wird in der [Diagnose](/ruby/command-line/diagnose)-Ausgabe als `file` aufgeführt.

<a id="environment-variables" />

## 5. Umgebungsvariablen

AppSignal sucht in Umgebungsvariablen nach seiner Konfiguration.
Wenn gefunden, überschreiben diese alle in vorherigen Schritten gesetzten Konfigurationsoptionen.

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

Lesen Sie [die System-Umgebungsvariablen](/ruby/configuration#system-environment-variables)-Dokumentation für weitere Informationen, wie diese Konfigurationsmethode funktioniert.

Diese Quelle wird in der [Diagnose](/ruby/command-line/diagnose)-Ausgabe als `env` aufgeführt.

## 6. `appsignal.rb`-Konfigurationsdatei {/* id: appsignal-rb-config-file */}

Eine Möglichkeit, Ihre Anwendung zu konfigurieren, ist die `appsignal.rb`-Datei.

Der Pfad dieser Konfigurationsdatei ist `{project_root}/config/appsignal.rb`.
Dieser Ladepfad kann nicht angepasst werden.

Dieser Schritt überschreibt alle angegebenen Optionen aus den Standardwerten, der systemerkannten und den Umgebungsvariablen.

Wenn sowohl eine [`appsignal.yml`-Konfigurationsdatei](#4-appsignalyml-config-file) als auch eine `appsignal.rb`-Konfigurationsdatei vorhanden sind, wird nur die `appsignal.rb`-Konfigurationsdatei geladen.

Lesen Sie [die `appsignal.rb`-Konfigurationsdatei](/ruby/configuration#ruby-configuration-file)-Dokumentation für weitere Informationen, wie diese Konfigurationsmethode funktioniert.

Diese Quelle wird in der [Diagnose](/ruby/command-line/diagnose)-Ausgabe als `dsl` aufgeführt.

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

<Warning>
  In Version 3 und 4 des Ruby-Gems wird beim Aufruf des `Appsignal.configure`-Helpers auch die `appsignal.yml`-Datei geladen, falls vorhanden.
  Dieses Verhalten wird in der nächsten Major-Version des Ruby-Gems *entfernt*.
  Bitte verwenden Sie nur die [`appsignal.rb`-Konfigurationsdatei](#appsignal-rb-config-file) oder den [`Appsignal.configure`-Helper](#configure-helper).
</Warning>

Schließlich kann das Ruby-Gem mit dem `Appsignal.configure`-Helper in der Anwendung konfiguriert werden.
Beim Aufruf überschreiben alle mit diesem Helper konfigurierten Konfigurationsoptionen alle in vorherigen Quellen angegebenen Konfigurationsoptionen.

Wenn auch eine `config/appsignal.rb`-Konfigurationsdatei im Projekt vorhanden ist, wird sie **nicht geladen**, wenn der `Appsignal.configure`-Helper zuerst in Ihrer Anwendung aufgerufen wird.

Lesen Sie die Dokumentation zum [`Appsignal.configure`-Helper](/ruby/configuration#appsignalconfigure-helper) für weitere Informationen, wie diese Konfigurationsmethode funktioniert.

Diese Quelle wird in der [Diagnose](/ruby/command-line/diagnose)-Ausgabe als `dsl` aufgeführt.
