Zum Hauptinhalt springen
Die AppSignal-Integrationen für Ruby, Elixir, Node.js und Python bieten Hilfsmethoden und -funktionen, mit denen Sie einfach Prozessmonitor-Events an AppSignal senden können.
Die Integrations-Hilfsfunktionen verwenden weiterhin CheckIn, checkIn und check_in im Code für Kompatibilität mit bestehenden Anwendungen.

Cron-Prozessmonitor-Events

Um AppSignal zu benachrichtigen, dass ein Cronjob erfolgreich beendet wurde, verwenden Sie die Hilfsfunktion cron und übergeben Sie den Namen des Cron-Prozessmonitors als Argument.
def send_invoices
  # ... your code here ...
  Appsignal::CheckIn.cron("send_invoices")
end
def send_invoices do
  # ... your code here ...
  Appsignal.CheckIn.cron("send_invoices")
end
import { checkIn } from "@appsignal/nodejs";

function sendInvoices() {
  // ... your code here ...
  checkIn.cron("send_invoices");
}
from appsignal.check_in import cron

def send_invoices():
  # ... your code here ...
  cron("send_invoices")
Es ist sicher, die Hilfsfunktion cron in kurzer Zeit mehrfach aufzurufen, da die Hilfsfunktion höchstens alle zehn Sekunden ein Finish-Event an AppSignal sendet.

Überwachung der Job-Dauer

Um die Dauer eines Cronjobs zu überwachen, können Sie die Hilfsfunktion cron mit einem Block oder einer Funktion verwenden, der/die den zu überwachenden Code enthält. Dadurch werden Events sowohl beim Start als auch beim Ende des Jobs an AppSignal gesendet.
def send_invoices()
  Appsignal::CheckIn.cron("send_invoices") do
    # ... your code here ...
  end
end
def send_invoices do
  Appsignal.CheckIn.cron("send_invoices", fn ->
    # ... your code here ...
  end)
end
import { checkIn } from "@appsignal/nodejs";

function sendInvoices() {
  checkIn.cron("send_invoices", () => {
    // ... your code here ...
  });
}

// If the function passed to `cron` returns a promise, the finish event
// will be reported to AppSignal if the promise resolves, allowing you
// to track the duration of async functions:
async function sendInvoices() {
  await checkIn.cron("send_invoices", async () => {
    // ... your async code here ...
  });
}

// If the promise is rejected, or if it never resolves, the finish event
// will not be reported to AppSignal.
from appsignal.check_in import Cron

def send_invoices():
  with Cron("send_invoices"):
    # ... your code here ...
Wenn innerhalb der überwachten Funktion oder Methode eine Exception ausgelöst wird, wird das Finish-Event nicht an AppSignal gemeldet, was eine Benachrichtigung über einen fehlenden Prozessmonitor auslöst. Die Exception wird erneut ausgelöst. Wenn der Kontext, in dem die Exception ausgelöst wird, ein AppSignal-überwachter Kontext ist, wird die Exception an AppSignal gemeldet. Andernfalls können Sie, wenn Sie die Exception an AppSignal melden möchten, unsere Hilfsfunktionen für die Exception-Behandlung für Ruby, Elixir, Node.js oder Python verwenden.

Heartbeat-Prozessmonitor-Events

Um ein Heartbeat-Prozessmonitor-Event an AppSignal zu senden, verwenden Sie die Hilfsfunktion heartbeat und übergeben Sie den Namen des Heartbeat-Prozessmonitors als Argument. Es ist sicher, heartbeat mehrfach aufzurufen, da die Hilfsfunktion höchstens alle zehn Sekunden ein Heartbeat-Event an AppSignal sendet.
loop do
  Appsignal::CheckIn.heartbeat("job_processor")
  # ... your code here ...
end
def job_processing_loop do
  Appsignal.CheckIn.heartbeat("job_processor")
  # ... your code here ...
  job_processing_loop()
end
import { checkIn } from "@appsignal/nodejs";

while (true) {
  checkIn.heartbeat("job_processor");
  // ... your code here ...
}
from appsignal.check_in import heartbeat

while True:
  heartbeat("job_processor")
  # ... your code here ...

Heartbeats kontinuierlich senden

Um Heartbeat-Prozessmonitore kontinuierlich zu senden, können Sie die Option { continuous: true } an die Hilfsfunktion heartbeat übergeben. Dies ist nützlich, um die Lebensdauer des Prozesses selbst zu überwachen. Die Hilfsfunktion sendet alle dreißig Sekunden ein Heartbeat-Event an AppSignal.
Appsignal::CheckIn.heartbeat("job_processor", continuous: true)
# This call spawns a new Elixir process, linked to the current process.
# If the current process exits, the heartbeat process will also exit.
Appsignal.CheckIn.heartbeat("job_processor", continuous: true)

# It is also possible to add a continuous heartbeat sending process
# to a supervision tree. This will ensure that the process is restarted
# alongside the rest of the supervised children.
Supervisor.start_link([
  {Appsignal.CheckIn.Heartbeat, "job_processor"},
  # ... other children processes ...
], strategy: :one_for_one)
import { checkIn } from "@appsignal/nodejs";

checkIn.heartbeat("job_processor", { continuous: true });
from appsignal.check_in import heartbeat

heartbeat("my_app", continuous=True)

Prozessmonitor-Vorkommen in AppSignal überprüfen

Nach der Konfiguration beginnt AppSignal, Informationen über Vorkommen für Ihre Prozessmonitore anzuzeigen. Sie können mehr über Vorkommen in unserer Dokumentation zu Prozessmonitor-Vorkommen lesen.