Ich zeichne ein Diagramm, das Variablen aus mehreren Rrd-Dateien enthält. Ich zeige auch den letzten Wert jeder Variablen in der Grafik an. Wenn ich zum Beispiel "CDEF: A = a, UN, 0, a, WENN, 8, " verwende, dann drucke den letzten Wert der Variablen A in der Grafik, hängt davon ab, wann ich die Grafik lade, der letzte Wert von A wird manchmal 0, obwohl der letzte aktualisierte Wert in der Rrd-Datendatei nicht 0 ist. Ich verwende rrdtool 1.4.8. Dies passiert nicht, wenn ich A mit "CDEF: A = a, 8," definiere.letzter Wert wird 0 manchmal in Rrd-Diagramm, wenn IF und UN verwendet, um unbekannten Wert auf 0
Antwort
Dies liegt daran, dass Sie mehrere RRD-Dateien verwenden und zwischen ihrer Aktualisierung und Ihrer Abfrage eine Race-Bedingung besteht. Ich habe gesehen, dass dies in Graphen passiert ist, die von "Routers2" über MRTG-Daten generiert wurden, und das Programm hat spezielle Berechnungen hinzugefügt, um dies zu vermeiden.
Wenn Sie Ihr Diagramm ausführen, basiert der letzte Punkt auf der aktuellen Zeit. Der Zeitbereich, in dem wir uns derzeit befinden, wurde jedoch möglicherweise nicht in einer der Quell-RRD-Dateien aktualisiert.
Beispiel: Die Daten werden alle 5 Minuten aktualisiert.
A
aktualisiert und der 11:55-Bucket ist nun fertig.B
wird aktualisiert, und die 12:00 Eimer ist jetzt abgeschlossen.A
sind die neuesten verfügbaren Daten jedoch 11:55, da das Update 12.04 noch nicht verfügbar war. Der letzte Datenpunkt im Diagramm ist unknown
.Deshalb erhalten Sie gelegentlich eine unbekannte am Ende eines Ihrer Datensätze. Dies bedeutet, dass der RRD, der diese Datenquellen aktualisiert, am Ende des Zeitfensters, in dem Sie sich gerade befinden, ist.
Wenn Sie den Test für unbekannt nicht haben, wird der Graph einfach nicht den fraglichen Punkt anzeigen (wie unbekannte Punkte werden nicht geplottet). Wenn Sie genau hinsehen, werden Sie sehen, dass die Linie im Diagramm einen Pixel früher endet.
Eine Möglichkeit, dies programmgesteuert zu vermeiden, besteht darin, die -Zeit aller Komponenten-RRD-Dateien abzurufen und dann die frühesten als Endzeit im Diagramm zu verwenden. Dies ist die Art und Weise, wie die routers2
Software dieses Problem vermeidet.
- 1. 0 Wert wird
- 2. lodash Implementierung des Rückgabewertes === 0? Wert: 0
- 3. Little Man Computer: if (Wert == 0) {einige_Anweisungen;
- 4. js if (Wert> 0!) Auf Anzahl der Eingabevalidierung falsch
- 5. EditText Wert ist 0?
- 6. PHP echo in JavaScript-Wert "0" auch wenn Wert nicht "0" nach dem POST mit AJAX
- 7. Ungültiger Wert bei 'requests [0] .update_cells.rows [0]'
- 8. Hide div, wenn der Dropdown-Wert 0 ist 0
- 9. Wert noch = 0?
- 10. ExecuteScalar() Rückgabe 0 Wert
- 11. Swift - Ungültiger Wert um Zeichen 0
- 12. Magento2 - ausgeblendet Preis, wenn der Wert 0
- 13. UPDATE Wert wenn mehr als 0, wie?
- 14. Überprüfen Sie den Spaltenwert, wenn Wert = 0
- 15. Reagieren "Wert" Prop nicht erreichen DOM, wenn auf 0
- 16. Inkompatible magischem Wert 0
- 17. Wert zurückkehrend, wenn es 0 ist
- 18. Double-Wert 0 zurück
- 19. jQuery ausgewählten Wert immer 0
- 20. Besser * ngFür Verkettung und `0` Wert Erkennung?
- 21. SSRS Kreisdiagramm verbergen 0 Wert
- 22. Jersey legt Wert von POJO auf 0
- 23. 0 Wert in Django PositiveIntegerField?
- 24. PHP-Skriptfehler, wenn der Wert 0 ist
- 25. COUNT als 0 abrufen, wenn JOIN Wert
- 26. Rückgabe von 0, wenn ein negativer Wert gefunden wird
- 27. Verwenden Sie D3.min, um den niedrigsten Wert zu finden, der nicht 0 ist 0
- 28. Ansicht Tag return 0 Wert
- 29. Convert.ToBoolean nicht mit Wert "0"
- 30. org.json.JSONException: Kein Wert für 0