Zum Hauptinhalt springen
AppSignal für Elixir kann auf verschiedene Arten konfiguriert werden. Über die Mix-Konfiguration oder über Umgebungsvariablen. Die Konfiguration wird in einem vierstufigen Prozess geladen. Beginnend mit den Paket-Standardwerten und endend mit dem Lesen von Umgebungsvariablen. Die Konfigurationsoptionen können kombiniert werden, ohne die Konfiguration aus einer anderen Option zu verlieren. Die Verwendung eines Initialisierers, einer Konfigurationsdatei und Umgebungsvariablen zusammen funktioniert.

Ladereihenfolge

1. Paket-Standardwerte

Das AppSignal-Paket beginnt mit dem Laden seiner Standardkonfiguration, indem es Pfade festlegt und bestimmte Funktionen aktiviert. Die Standardwerte des Agents finden Sie in der Dokumentation der Konfigurationsoptionen. Diese Quelle wird in der diagnose-Ausgabe als default aufgeführt.

2. Systemerkannte Einstellungen

Das Paket erkennt, auf welcher Art von System es läuft, und konfiguriert sich entsprechend. Wenn es z. B. auf Heroku läuft, setzt es die Konfigurationsoption :running_in_container auf true und :log auf "stdout". Diese Quelle wird in der diagnose-Ausgabe als system aufgeführt.

3. Mix-Konfiguration

Das AppSignal-Paket wird am häufigsten mit einer Konfiguration in der Mix-Konfigurationsdatei konfiguriert.
# config/config.exs
# or 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
Dieser Schritt überschreibt alle angegebenen Optionen aus den Standardwerten oder der systemerkannten Konfiguration. Diese Quelle wird in der diagnose-Ausgabe als file aufgeführt.

4. Umgebungsvariablen

Unsere Integration sucht in Umgebungsvariablen nach ihrer Konfiguration. Wenn diese gefunden werden, überschreiben sie alle in den vorherigen Schritten angegebenen Konfigurationsoptionen.
export APPSIGNAL_APP_NAME="AppsignalPhoenixExample"
# start your app here
Diese Quelle wird in der diagnose-Ausgabe als env aufgeführt.

5. Overrides

Wenn die gesamte Konfiguration bekannt ist, führt unsere Integration eine letzte Prüfung durch, um festzustellen, ob die Konfiguration sich nicht widerspricht oder ob einige Standardkonfigurationsoptionen nicht gesetzt sind. Die Konfigurationsquelle “override” enthält die letzten Konfigurationsänderungen, die von der Integration vorgenommen wurden. Wenn ein Wert einer Konfigurationsoption überschrieben wird, ist dieser Wert maßgebend. Zum Beispiel haben wir irgendwann die Option skip_session_data zugunsten der Option send_session_data als veraltet markiert. Wenn die Konfigurationsoption skip_session_data von der App konfiguriert wurde, send_session_data jedoch nicht, würde die Integration den Wert von skip_session_data verwenden, um den Wert der Konfigurationsoption send_session_data festzulegen.