Zum Hauptinhalt springen
Diese Seite erklärt, wie AppSignal mit der Zeit umgeht, warum Maschinen möglicherweise ungenaue Zeiten melden und wie Sie App-Server mit NTP-Servern synchronisieren. Die Daten, die AppSignal von Ihrer App und Ihrem App-Server sammelt, sind mit einem Zeitstempel versehen. Dieser Zeitstempel ist die Zeit, zu der eine HTTP-Anfrage gestellt, ein Background Job gestartet, ein Metric gesetzt oder ein Event in der App begonnen hat. Diese Zeit wird dann verwendet, um Graphen, Sample- und Event-Daten in chronologischer Reihenfolge anzuzeigen. ⚠️ Der Zeitstempel, der den Daten einer App angehängt ist, basiert auf dem Datum und der Uhrzeit des App-Instanz-Servers. Wenn ein App-Server nicht ungefähr die aktuelle Zeit meldet, kann dies Probleme bei der Verarbeitung und Alarmierung von AppSignal verursachen. Wenn eine App mehrere Server hat, müssen diese Server ungefähr die gleiche Zeit melden. Ein Unterschied von Sekunden hat möglicherweise keine große Auswirkung, aber ein Faktor von Minuten führt zu unerwünschten Effekten. Dazu gehören ungenaue Graphen, Metriken und Samples sowie verpasste Benachrichtigungen über Anomaly detection alerts. Lesen Sie mehr darüber, wie Daten von Ihrer App und Ihren Servern an die Server von AppSignal gesendet und wie die Daten dann verarbeitet werden, auf unserer Data life cycle-Seite. Insbesondere für Anomaly detection alerts ist es sehr wichtig, dass die korrekte Zeit von einer App gesendet wird, um zu vermeiden, dass Alerts zu Metriken verpasst werden.

Clock drift

Computer können Clock drift erfahren, wodurch ihre Uhr immer mehr von der Referenzuhr, der aktuellen Zeit, abweicht. Dies bedeutet, dass die Uhr eines App-Servers mehrere Minuten vor oder hinter der tatsächlichen Zeit liegen kann. Da die Transaktionsdaten den Zeitstempel des Servers verwenden, sind die gesendeten Daten ebenfalls nicht synchron, wenn der Server nicht synchron ist. Ungenaue Uhrzeiten können Probleme mit den gemeldeten Zeiten für Samples und Metriken verursachen und die Berichterstattung für Anomaly detection triggers beeinträchtigen. Samples und Metriken werden nicht zu der tatsächlichen Zeit angezeigt, zu der sie aufgetreten sind. Anomaly detection kann keine Alerts für Metriken erstellen, die mit ungenauen Zeitstempeln gemeldet wurden. Um Clock drift zu minimieren, empfehlen wir, Ihre Server so einzurichten, dass sie ihre aktuelle Zeit automatisch mit einem NTP-Server synchronisieren.

Über die Zukunft

Wenn AppSignal Transaktionsdaten mit Zeitstempeln in der Zukunft (aus Sicht der aktuellen Zeit des AppSignal-Prozessors) erkennt, sendet es eine Benachrichtigung, die die Benutzer der App über die fehlerhafte Zeit informiert, die von der App gesendet wurde. Diese Benachrichtigung ist nicht für (benutzerdefinierte) Metriken verfügbar, die von einer App-Instanz gesendet werden, kann aber in Zukunft hinzugefügt werden.

Einrichten der NTP-Synchronisation

Die Synchronisation eines Servers mit NTP-Servern stellt sicher, dass die Zeit eines Servers ungefähr mit einer Referenzuhr übereinstimmt. NTP, Network Time Protocol, ist das Protokoll, das von Computern verwendet wird, um Zeiten über Netzwerke zu synchronisieren. In der Praxis fragen Server und Personal Computer in regelmäßigen Abständen einen oder mehrere Server ab, um die aktuelle Zeit abzurufen. Wenn die zurückgegebene Zeit von der aktuellen Zeit des Computers abweicht, aktualisiert der Computer seine aktuelle Zeit auf den NTP-Wert. Häufiges Abfragen der NTP-Server durch einen App-Server stellt sicher, dass der Server niemals zu stark von der Referenzzeit abweicht. Die Server von AppSignal sind ebenfalls so konfiguriert, dass sie mit NTP-Servern synchronisieren. Das ntp-Paket synchronisiert eine Maschine auf den meisten Systemen mit NTP-Servern. Ubuntu bietet das timesyncd-Paket als Teil von systemd seit Ubuntu 16.04. Die Anweisungen zur NTP-Einrichtung können sich für Ihre Linux-Distribution oder Ihr Betriebssystem unterscheiden, suchen Sie daher bitte nach einer Anleitung, die für Ihre Einrichtung geeignet ist. Stellen Sie sicher, dass Sie die NTP-Installation überprüfen, indem Sie mit den Befehlen ntpstat oder timedatectl status (Ubuntu/systemd) prüfen, ob das aktuelle Datum und die Uhrzeit des Servers mit NTP-Servern synchronisiert sind.