Ich baue eine kleine Überwachungslösung und würde gerne verstehen, was das richtige/beste Verhalten in Situationen ist, in denen der vorherige Messwert größer ist als der aktuelle Messwert. Zum Beispiel ifHCOutOctets
SNMP-Objekt zählt Bytes von einer Schnittstelle in Cisco Router übertragen. Wie sollte sich die Grafikanwendung verhalten, wenn dieser Zähler aufgrund eines Neustarts des Routers wieder auf 0 zurückgesetzt wird? In meiner Option folgenden Algorithmus ist das richtige Verhalten:Wie sollte sich das Grafikwerkzeug verhalten, wenn der SNMP-Zähler einen kleineren Wert als der vorherige Wert hat?
if [ ! $prev_val ]; then
# This reading will be used to set the baseline value for "prev_val" variable
# if "prev_val" does not already exist.
prev_val="$cur_val"
elif ((prev_val > cur_val)); then
# Counter value has set to zero.
# Use the "cur_val" variable.
echo "$cur_val"
prev_val="$cur_val"
else
# In case "cur_val" is higher than or equal to "prev_val",
# use the "cur_val"-"prev_val"
echo $((cur_val - prev_val))
prev_val="$cur_val"
fi
Ich habe auch eine grafische Darstellung kleine Beispiel basierte auf dem Algorithmus oben:
Verkehr Graph wurde auf dieser Basis gebaut:
reading 1: cur_val=0, prev_val will be 0
reading 2: 0-0=0(0 Mbps), cur_val=0, prev_val will be 0
reading 3: 20-0=20(160 Mbps), cur_val=20, prev_val will be 20
reading 4: 20-20=0(0 Mbps), cur_val=20, prev_val will be 20
reading 5: 50-20=30(240 Mbps), cur_val=50, prev_val will be 50
reading 6: 40(320Mbps), cur_val=40, prev_val will be 40
reading 7: 70-40=30(240 Mbps), cur_val=70, prev_val will be 70
reading 8: no data from SNMP agent
reading 9: 90-70=20(160 Mbps), cur_val=90, prev_val will be 90
Für mich sieht es aus wie dieser kleine Algorithmus richtig funktioniert.
Bitte lassen Sie mich wissen, wenn etwas unklar ist und ich werde meine Frage zu verbessern.
Die grafische Anwendung zeigt einige Delta oder einen absoluten Wert der übertragenen Bytes? –
Es muss Delta angezeigt werden. Es wird eine Bandbreite (bps) Grafik sein. – Martin