Passer au contenu principal

Le problème

Lors de l’exécution de plusieurs applications sur un même hôte, des comportements étranges peuvent se produire. Un problème courant que nous avons rencontré est que des applications commencent à être rapportées sous des noms et/ou des environnements différents. Par exemple, une application qui bascule entre l’environnement de staging et de production après un déploiement ou un redémarrage du processus de l’application ou d’un worker.

Contexte

L’agent AppSignal démarre en utilisant la configuration d’une application. Il utilise cette configuration pour envoyer les données aux serveurs AppSignal afin de les rapporter en tant qu’application sur AppSignal.com. Par défaut, AppSignal est configuré en supposant qu’une application s’exécute sur un seul hôte. Si vous exécutez plus d’une application sur un hôte, une configuration est nécessaire pour éviter de partager le répertoire de travail AppSignal entre plusieurs applications. De cette façon, plusieurs agents AppSignal peuvent s’exécuter en même temps avec des configurations d’application différentes.
En savoir plus sur le répertoire de travail d’AppSignal.

Configuration

Pour permettre à AppSignal d’être utilisé pour plusieurs applications sur un même hôte, nous devons définir l’option de configuration « chemin du répertoire de travail ». À l’aide de cette option de configuration, nous devons définir un chemin de répertoire de travail unique par application pour qu’AppSignal y stocke ses fichiers (temporaires). De cette façon, l’agent AppSignal ne partagera pas le répertoire de travail entre plusieurs applications.

Ruby

Pour définir le chemin du répertoire de travail dans l’intégration Ruby, ajoutez ce qui suit à votre fichier de configuration AppSignal. La valeur working_directory_path est un chemin vers un répertoire existant sur votre système hôte.
Appsignal.configure do |config|
  config.working_directory_path = "/tmp/project_1/"
end

En savoir plus

Elixir

Pour définir le chemin du répertoire de travail dans l’intégration Elixir, ajoutez ce qui suit à votre fichier de configuration AppSignal. La valeur working_directory_path est un chemin vers un répertoire existant sur votre système hôte.
config :appsignal, :config,
  working_directory_path: "/tmp/project_1/"

En savoir plus

Node.js

Pour définir le chemin du répertoire de travail dans l’intégration Node.js, ajoutez ce qui suit à votre fichier de configuration AppSignal. La valeur workingDirectoryPath est un chemin vers un répertoire existant sur votre système hôte.
const { Appsignal } = require("@appsignal/nodejs");

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

module.exports = { appsignal };

En savoir plus

Python

Pour l’intégration Python, deux options de configuration doivent être modifiées. La première est l’option de configuration working_directory_path, et l’autre l’option opentelemetry_port. Pour définir ces options de configuration dans l’intégration Python, ajoutez ce qui suit à votre fichier de configuration AppSignal. La valeur opentelemetry_port est un numéro de port disponible et la valeur working_directory_path est un chemin vers un répertoire existant sur votre système hôte. Ces valeurs doivent être uniques par application.
from appsignal import Appsignal

appsignal = Appsignal(
  # Other config
  opentelemetry_port: 9001,
  working_directory_path: "/tmp/project_1"
)

En savoir plus

JavaScript front-end

Aucun répertoire de travail ne peut être configuré pour les applications JavaScript front-end, car elles ne reposent pas sur le processus de l’agent AppSignal. Si des données sont rapportées pour la mauvaise application, assurez-vous que l’application utilise la bonne clé API Push

Voir aussi