Wählen Sie eine Konfigurationsoption
Dieser Leitfaden führt Sie durch die Schritte, die erforderlich sind, um Ihre Anwendung optimal auf Ihre Bedürfnisse abzustimmen. Es gibt natürlich mehrere Konfigurationsoptionen für Ihre Anwendung, aber da die Implementierungsmethode für alle Optionen identisch ist, konzentrieren wir uns in diesem Leitfaden auf die folgenden Konfigurationen: Wir verwenden die Optionlog_level als Beispiel für Ruby-, Elixir-, Node.js- und Python-Anwendungen.
Wir verwenden die Option namespace als Beispiel für Front-end-JavaScript-Anwendungen.
Konfigurationsmethoden
Es gibt mehrere Möglichkeiten, Ihre AppSignal-Integration zu konfigurieren, und Integrationen können je nach Sprache Ihrer Anwendung variieren, aber sie alle haben die folgenden Konfigurationsmethoden:- Dateibasierte Konfiguration:
Eine Konfigurationsdatei, aus der die AppSignal-Integration die AppSignal-Konfiguration liest. - System-Umgebungsvariablen-Konfiguration:
Umgebungsvariablen werden auf dem Host-System (Server) auf dem übergeordneten Prozess gesetzt, der Ihre Anwendung startet.
Hinweis: Diese Methode ist nicht für Front-end-JavaScript verfügbar.
Dateibasierte Konfiguration
Die dateibasierte Konfiguration ist die einfachste Möglichkeit, Ihre Integration zu konfigurieren. Einige Integrationen erstellen während der Installation von AppSignal in der App eine Konfigurationsdatei. In diesen Konfigurationsdateien können Sie eine oder mehrere Anwendungsumgebungen individuell konfigurieren. Konfigurationsoptionen für:Ruby
Bei Verwendung des Ruby-Integrations-Gems wird bei der Installationconfig/appsignal.yml im Stammverzeichnis Ihrer Anwendung mit grundlegenden Konfigurationseinstellungen erstellt. Wenn Ihre Anwendung Daten an AppSignal meldet, ohne dass eine appsignal.yml-Datei vorhanden ist, verwendet Ihre Anwendung höchstwahrscheinlich System-Umgebungsvariablen.
Im untenstehenden Beispiel-Konfigurationsdatei werden zwei Umgebungen definiert, development und production – jede hat umgebungsspezifische Konfigurationsoptionen, die darunter verschachtelt sind. Alles, was unter default definiert und verschachtelt ist, gilt für alle Umgebungen, solange default in der Umgebungszuordnung enthalten ist.
Wir möchten das log_level ausschließlich in unserer development-Umgebung auf debug setzen; dazu haben wir log_level: "debug" in die development-Umgebungs-Konfiguration eingefügt (Zeile 10).
default verschachtelt ist, wird auf alle Umgebungen angewendet. Um also das log_level in allen Umgebungen auf debug zu setzen, können wir die Konfiguration stattdessen unter default verschachteln, wie in Zeile 6 des untenstehenden Beispielcodes:
Mehr lesen:
- Thema Ruby-Integrations-Konfiguration
- Details zur Ladereihenfolge der Ruby-Integrations-Konfiguration
Elixir
Bei der Installation erstellt die Elixir-Integration eineconfig/appsignal.exs-Datei (Standardspeicherort) mit grundlegenden Konfigurationen. Wenn diese Datei nicht vorhanden ist, Ihre Anwendung aber Daten an AppSignal meldet, prüfen Sie eine der anderen .exs-Dateien im Verzeichnis config/ Ihrer Elixir-App. Wenn in keiner der Dateien eine AppSignal-Konfiguration vorhanden ist, verwendet Ihre Anwendung wahrscheinlich System-Umgebungsvariablen als Konfigurationsmethode.
Um eine Konfigurationsoption hinzuzufügen und sie auf alle Umgebungen Ihrer Anwendung anzuwenden, fügen Sie die Konfigurationsoption der Datei config/appsignal.exs hinzu, wie in Zeile 7 des Beispiels unten:
config/ befindet.
Im Beispiel unten wurde die Option log_level in Zeile 3 der Entwicklungsumgebung (oder “dev”) hinzugefügt:
Mehr lesen
- Thema Elixir-Integrations-Konfiguration
- Details zur Ladereihenfolge der Elixir-Integrations-Konfiguration
Node.js
Nach der Installation müssen Sie eine AppSignal-Konfigurationsdatei erstellen, um Ihre Anwendung zu konfigurieren. Wenn keine Datei mit AppSignal-Konfiguration vorhanden ist, verwendet sie höchstwahrscheinlich System-Umgebungsvariablen als Konfigurationsmethode. Um AppSignal für Node.js-Apps zu konfigurieren, empfehlen wir, eineappsignal.js-Datei mit der AppSignal-Konfiguration im Stamm- oder src-Verzeichnis Ihrer Anwendung zu erstellen. Dann fordern/importieren Sie sie aus dem Code der App, bevor andere Pakete angefordert oder importiert werden.
Im Beispiel unten befindet sich eine appsignal.js-Datei im Stammverzeichnis der App. In dieser Datei fügen wir die Konfigurationsoption logLevel hinzu.
NODE_ENV, Standard ist “development”).
In Node.js gibt es viele Möglichkeiten, umgebungsspezifische Konfigurationen für AppSignal zu erstellen. Wenn Sie unsicher sind, wie Sie dies in Ihrer eigenen Anwendung tun sollen, ist eine Methode, die wir empfehlen, die Verwendung von Bedingungen in Ihrer appsignal.js, wie im Beispiel unten, in dem wir debug für die Produktionsumgebung angeben.
- In Zeile 4 – aktivieren wir die AppSignal-Integration nur, wenn die Umgebung production ist.
- In Zeile 8 – wie in unserem vorherigen Codebeispiel setzen wir das
logLevelaufdebug
appsignal.js ganz oben in der Hauptdatei Ihrer App anfordern. Der Name der Hauptdatei Ihrer Anwendung kann je nach Struktur Ihrer Anwendung variieren. Es ist die Datei, mit der Sie Ihre Node-Anwendung starten und wird normalerweise als index.js oder app.js bezeichnet. Stellen Sie sicher, dass AppSignal ganz oben in der Datei angefordert wird, wie im Beispiel unten:
Mehr lesen
Python
Bei Verwendung des Python-Integrations-Installers wird__appsignal__.py im Stammverzeichnis Ihrer Anwendung mit grundlegenden Konfigurationseinstellungen erstellt. Ihre Anwendung kann auch über System-Umgebungsvariablen konfiguriert werden.
Um eine Konfigurationsoption hinzuzufügen und sie auf Ihre Entwicklungs-Anwendungsumgebung anzuwenden, fügen Sie die Konfigurationsoption der __appsignal__.py-Datei hinzu, wie im Beispiel unten.
environment auf die gleiche Weise, wie Ihre App ihre Umgebung bestimmt (development/staging/production). Dies kann über eine System-Umgebungsvariable oder eine andere anwendungsspezifische Methode geschehen. Im Beispiel unten verwenden wir eine System-Umgebungsvariable MY_APP_ENV, um sowohl die App-Umgebung festzulegen als auch nur für die Produktionsumgebung zu aktivieren.
Mehr lesen:
- Thema Python-Integrations-Konfiguration
- Details zur Ladereihenfolge der Python-Integrations-Konfiguration
Front-end JavaScript
Um AppSignal für Front-end-JavaScript zu konfigurieren, empfehlen wir, eineappsignal.js-Datei mit der AppSignal-Konfiguration im Stamm- oder src-Verzeichnis Ihres Projekts zu erstellen. Dann fordern oder importieren Sie sie aus dem Code der App, bevor andere Pakete angefordert oder importiert werden.
Im Beispiel unten befindet sich eine appsignal.js-Datei im Stammverzeichnis der Anwendung. In Zeile 8 haben wir die Konfigurationsoption namespace hinzugefügt.
appsignal.js ganz oben in der Hauptdatei Ihrer Anwendung anfordern, wie im Beispiel unten:
Mehr lesen
System-Umgebungsvariablen-Konfiguration
System-Umgebungsvariablen oder kurz “Umgebungsvariablen” sind Variablen, die für Prozesse zugänglich sind und vom übergeordneten Prozess, der sie startet, vererbt werden. Anstatt eine Konfigurationsdatei für die Konfiguration zu verwenden, ist es möglich, AppSignal nur über Umgebungsvariablen zu konfigurieren. Es ist auch möglich, Konfigurationsschlüssel, die sensible Daten enthalten, wie den Push-API-Schlüssel, in einer Umgebungsvariablen zu speichern und Konfigurationsdateien für den Rest der Konfiguration zu verwenden. Diese Konfigurationsmethode ist kompatibel mit Ruby-, Elixir- und Node.js-Anwendungen. Bevor wir mit dem folgenden Beispiel zum Setzen von Umgebungsvariablen über eine Shell fortfahren, erklären wir, wie Umgebungsvariablen in Bezug auf Shells und Prozesse funktionieren. Umgebungsvariablen können zu einem Prozess wie einer Shell oder Ihrer Anwendung gehören. Der Befehlexport FOO=BAR würde beispielsweise die FOO-Umgebungsvariable Ihrer Shell auf BAR setzen. Umgebungsvariablen werden zwischen Prozessen vererbt, sodass, wenn diese Shell einen neuen Prozess startet, dieser Prozess ebenfalls alle Umgebungsvariablen der Shell hat.
Wenn Sie einen Prozess in der Shell starten (d. h. npm start), können Sie auch mehr Umgebungsvariablen nur für diesen Prozess bereitstellen, indem Sie die Variablen wie folgt zuweisen: FOO=BAR npm start
Aus Bequemlichkeit möchten Sie möglicherweise Ihre Shell so konfigurieren, dass bestimmte Umgebungsvariablen beim Start gesetzt werden, sodass alle aus dieser Shell gestarteten Prozesse diese Umgebungsvariablen erben. Wenn Sie die Shell bash verwenden, werden die Befehle in der Datei .bash_profile in Ihrem Home-Verzeichnis beim Start der Shell ausgeführt. Bei Verwendung von zsh, der Standard-Shell in macOS, würde stattdessen die Datei .zshenv zur Konfiguration der Umgebungsvariablen verwendet.
In der untenstehenden Beispieldatei exportieren wir die Umgebungsvariablen, die den Push-API-Schlüssel und das Log-Level von AppSignal konfigurieren, sodass beim Start einer neuen Shell die korrekten Umgebungsvariablen für Ihre Anwendung zugänglich sind und sie mit AppSignal kommunizieren kann.
Konfigurationsoptionen, die über Umgebungsvariablen gesetzt werden, gelten für alle Anwendungsumgebungen, einige Konfigurationsoptionen sind jedoch sprachspezifisch. Zum Beispiel existiert die Konfigurationsoption instrument_sequel nur in der Ruby-Integration, da Sequel ein Ruby-Gem ist, und daher hat das Setzen der Umgebungsvariable APPSIGNAL_INSTRUMENT_SEQUEL keine Auswirkung auf andere Integrationen.
~/.profileoder~/.bash_profile- Benutzerspezifische Einstellungen. Verwenden Sie diesen Speicherort, um Umgebungsvariablen pro Benutzer zu konfigurieren./etc/profile- Systemweite Einstellungen. Wenn mehrere Benutzer oder Apps dieselbe Host-Maschine verwenden, verwenden Sie diesen Speicherort nicht.
Stellen Sie bei Verwendung der konfigurationsbasierten System-Umgebungsvariablen sicher, dass Sie
den Wert “System environment key” aus der Tabelle der Konfigurationsoptionen als Konfigurationsschlüssel
verwenden. Dieser Schlüssel ist immer in großem* snake case, wie folgt:
Fun Fact: Dies wird auch als SCREAMING_SNAKE_CASE 🐍 bezeichnet
EXAMPLE_OF_A_CONFIG_KEYFun Fact: Dies wird auch als SCREAMING_SNAKE_CASE 🐍 bezeichnet