Zum Hauptinhalt springen

Das Problem

Wenn mehrere Anwendungen auf einem Host ausgeführt werden, kann ein merkwürdiges Verhalten auftreten. Ein häufiges Problem, das wir gesehen haben, ist, dass Anwendungen beginnen, unter unterschiedlichen Namen und/oder Umgebungen zu melden. Etwa eine Anwendung, die nach einem Deployment oder Neustart eines Anwendungsprozesses oder Workers zwischen Staging- und Produktionsumgebung wechselt.

Hintergrund

Der AppSignal-Agent startet mit einer Anwendungskonfiguration. Er verwendet diese Konfiguration, um die Daten an die AppSignal-Server zu senden und als diese App auf AppSignal.com zu melden. Standardmäßig ist AppSignal so konfiguriert, dass es davon ausgeht, dass eine Anwendung auf einem Host läuft. Wenn Sie mehr als eine Anwendung auf einem Host ausführen, ist eine gewisse Konfiguration erforderlich, um zu vermeiden, dass das AppSignal-Arbeitsverzeichnis zwischen mehreren Anwendungen geteilt wird. Auf diese Weise können mehrere AppSignal-Agenten gleichzeitig mit unterschiedlicher Anwendungskonfiguration laufen.
Lesen Sie mehr über das AppSignal-Arbeitsverzeichnis.

Konfiguration

Damit AppSignal für mehrere Anwendungen auf einem Host verwendet werden kann, müssen wir die Konfigurationsoption “Arbeitsverzeichnis-Pfad” setzen. Mit dieser Konfigurationsoption müssen wir pro Anwendung einen eindeutigen Arbeitsverzeichnis-Pfad festlegen, in dem AppSignal seine (temporären) Dateien speichert. Auf diese Weise teilt der AppSignal-Agent das Arbeitsverzeichnis nicht zwischen mehreren Anwendungen.

Ruby

Um den Arbeitsverzeichnis-Pfad in der Ruby-Integration festzulegen, fügen Sie Folgendes zu Ihrer AppSignal-Konfigurationsdatei hinzu. Der working_directory_path-Wert ist ein Pfad zu einem vorhandenen Verzeichnis auf Ihrem Host-System.
Appsignal.configure do |config|
  config.working_directory_path = "/tmp/project_1/"
end

Mehr lesen

Elixir

Um den Arbeitsverzeichnis-Pfad in der Elixir-Integration festzulegen, fügen Sie Folgendes zu Ihrer AppSignal-Konfigurationsdatei hinzu. Der working_directory_path-Wert ist ein Pfad zu einem vorhandenen Verzeichnis auf Ihrem Host-System.
config :appsignal, :config,
  working_directory_path: "/tmp/project_1/"

Mehr lesen

Node.js

Um den Arbeitsverzeichnis-Pfad in der Node.js-Integration festzulegen, fügen Sie Folgendes zu Ihrer AppSignal-Konfigurationsdatei hinzu. Der workingDirectoryPath-Wert ist ein Pfad zu einem vorhandenen Verzeichnis auf Ihrem Host-System.
const { Appsignal } = require("@appsignal/nodejs");

const appsignal = new Appsignal({
  // Andere Konfiguration
  workingDirectoryPath: "/tmp/project_1",
});

module.exports = { appsignal };

Mehr lesen

Python

Für die Python-Integration müssen zwei Konfigurationsoptionen geändert werden. Die erste ist die Konfigurationsoption working_directory_path und die andere die Konfigurationsoption opentelemetry_port. Um diese Konfigurationsoptionen in der Python-Integration festzulegen, fügen Sie Folgendes zu Ihrer AppSignal-Konfigurationsdatei hinzu. Der opentelemetry_port-Wert ist die Nummer eines verfügbaren Ports und der working_directory_path-Wert ist ein Pfad zu einem vorhandenen Verzeichnis auf Ihrem Host-System. Diese Werte sollten pro App eindeutig sein.
from appsignal import Appsignal

appsignal = Appsignal(
  # Andere Konfiguration
  opentelemetry_port: 9001,
  working_directory_path: "/tmp/project_1"
)

Mehr lesen

Front-end JavaScript

Für Front-end-JavaScript-Anwendungen kann kein Arbeitsverzeichnis konfiguriert werden, da diese nicht auf den AppSignal-Agent-Prozess angewiesen sind. Wenn Daten für die falsche Anwendung gemeldet werden, stellen Sie bitte sicher, dass die Anwendung den korrekten Push-API-Schlüssel verwendet.

Siehe auch