I use SNMP to track system uptime so I know when hosts have recently rebooted. But I keep making the same mistake: reaching for sysUpTime.0 when I should be using hrSystem.hrSystemUptime.0.
Here's the difference, so I stop tripping over this:
sysUpTime.0- Timeticks (in hundredths of a second) since snmpd started. If someone restarts the SNMP daemon, this resets — even though the machine hasn't rebooted.
hrSystem.hrSystemUptime.0- Timeticks since the hardware started. This is the one you want for actual system uptime.
In short: if you want to know how long the machine has been running, use hrSystem.hrSystemUptime.0. If you want to know how long the SNMP agent has been running, use sysUpTime.0.