Verwendung
Die minütlichen Probes ermöglichen es dem AppSignal-Elixir-Paket, standardmäßig benutzerdefinierte Metriken für die ErlangVM zu sammeln und app-spezifische Metriken durch Erstellen eigener Probes.Mehrere Instanzen
Nach der Aktivierung läuft das System der minütlichen Probes auf jeder Instanz einer App. Das bedeutet, dass globale Metriken durch instanzbezogene Metriken überschrieben werden können, wenn eine Probe Metriken ohne eine Art differenzierendes Tag meldet. Um dies zu beheben, empfehlen wir, Ihre Metriken mit dem Hostnamen oder etwas anderem, das für jede Instanz eindeutig ist, zu taggen. Beispielsweise taggt die ErlangVM-Probe Metriken standardmäßig mit dem Hostnamen. Alternativ können Sie minütliche Probes deaktivieren für alle außer einer Instanz, auf der der Prozess der minütlichen Probes ausgeführt wird. Wir empfehlen die Verwendung der UmgebungsvariableAPPSIGNAL_ENABLE_MINUTELY_PROBES, um sie nur auf der Instanz Ihrer Wahl zu aktivieren.
Konfiguration
Die minütlichen Probes werden mit der Konfigurationsoptionenable_minutely_probes konfiguriert. Der Standardwert ist true.
Probes erstellen
Wenn Sie mehr benutzerdefinierte Metriken aus Ihrer App verfolgen möchten als unsere Standard-Probes, können Sie Ihre eigene(n) Probe(s) hinzufügen. Eine minütliche AppSignal-Probe kann eine anonyme Funktion oder eine modulbasierte Funktion sein.Anonyme Funktion
Der einfachste zu registrierende Probe-Typ. Wenn Sie keine Abhängigkeiten für Ihre Probe haben, ist dies die bevorzugte Methode.Modulbasierte Funktion
Eine modulbasierte Funktion kann nützlich sein, wenn Sie eine komplexere Probe haben oder eine Probe mit Abhängigkeiten.Zustandsbehaftete Probes
Ab Version2.2.8 des AppSignal-Elixir-Pakets können Probes Zustand zwischen Läufen weitergeben. Wenn Ihre Probe ein Argument annimmt, wird der Rückgabewert des letzten Laufs als Wert für dieses Argument im nächsten Lauf übergeben.
Ein initialer Zustand, der für den ersten Lauf der Probe verwendet werden soll, kann als drittes Argument an Appsignal.Probes.register übergeben werden. Wenn er nicht angegeben wird, ist der initiale Zustand nil.
Probes registrieren
Probes können mit derregister-Methode im Modul Appsignal.Probes registriert werden.
Diese Methode akzeptiert drei Argumente.
key– Dies ist der Schlüssel/Name der Probe. Er wird verwendet, um die Probe zu identifizieren, falls beim Ausführen der Probe ein Fehler auftritt (der in die appsignal.log-Datei protokolliert wird), und um eine bestehende Probe zu überschreiben.probe– Dies ist einer der unterstützten Probe-Typen, der jede Minute aufgerufen werden soll, um Metriken zu erfassen.state– Dies ist der initiale Zustand, der an Ihre Probe übergeben wird. Wenn Ihre Probe keinen Zustand als Argument annimmt, hat dieses Argument keine Wirkung. Es ist ein optionales Argument, und sein Standardwert istnil.
start/2-Funktion Ihrer Anwendung, kurz bevor der Supervisor gestartet wird.
In einer Phoenix-App sieht das so aus:
Standard-Probes überschreiben
AppSignal liefert Standard-Probes für bestimmte Integrationen. Wenn diese Probe aus irgendeinem Grund nicht ordnungsgemäß funktioniert oder zusätzliche Konfiguration für Ihren Anwendungsfall erfordert, können Sie die Standard-Probe überschreiben, indem Sie eine neue Probe mit demselben Schlüssel registrieren.Probes deregistrieren
Um eine zuvor registrierte Probe zu entfernen, einschließlich einer Standard-Probe, verwenden Sie dieunregister-Methode im Modul Appsignal.Probes. Rufen Sie sie mit dem Schlüssel der Probe auf, die Sie entfernen möchten.
:erlang. Um sie zu deaktivieren, deregistrieren Sie die :erlang-Probe in der start/2-Funktion Ihrer Anwendung, kurz bevor der Supervisor gestartet wird: