Zum Hauptinhalt springen
Minütliche Probes sind ein Mechanismus, um in regelmäßigen Abständen benutzerdefinierte Metriken an AppSignal zu senden. In minütlichen Intervallen ab dem Zeitpunkt der Erstellung der Probe kann eine benutzerdefinierte Funktion aufgerufen werden, in der Sie Metriken erfassen können, um sie an AppSignal zu senden. Die Funktionen der minütlichen Probes werden asynchron ausgeführt. Sie können minütliche Probes vollständig mit der Konfigurationsoption enable_minutely_probes aktivieren oder deaktivieren.

Probes registrieren

Um benutzerdefinierte Metriken aus Ihrer Anwendung zu verfolgen, können Sie eigene Probes hinzufügen. Um eine Probe zu registrieren, müssen Sie die Methode probes.register() mit zwei Argumenten aufrufen: einem Probe-Namen und einer Funktion, die einmal pro Minute aufgerufen werden soll.
from appsignal import probes, set_gauge

def set_database_size_gauge():
    set_gauge("database_size", 10)

probes.register("database", set_database_size_gauge)
Um sicherzustellen, dass alle minütlichen Probes rechtzeitig ausgeführt werden, ist es wichtig, lange Blockaden innerhalb einer Funktion einer minütlichen Probe zu vermeiden.

Zustandsbehaftete Probes

Eine Probe-Funktion kann den Zustand zwischen Ausführungen behalten, indem sie ihn als Argument akzeptiert und zurückgibt. Dies ist nützlich, um zu verfolgen, wie sich Werte im Laufe der Zeit ändern:
from appsignal import probes, set_gauge

def set_user_signups_gauge(previous_user_count):
    current_user_count = User.objects.all().count()

    if previous_user_count is not None:
      set_gauge("user_signups", current_user_count - previous_user_count)

    return current_user_count

probes.register("user_signups", set_user_signups_gauge)
Beim ersten Aufruf der minütlichen Probe wird None als Argument übergeben. Bei nachfolgenden Aufrufen wird der von der vorherigen Ausführung zurückgegebene Wert als Argument übergeben.