Heartbeat vs. Scan – Smackdown!


Admin Arsenal provides two methods for getting information about computers into the database: Heartbeat and Inventory Scan. The question in some peoples’ minds is “Why two methods, what’s the difference?” But, wait, that’s two questions, you might say. Yes it is, but I’ll forgive the imaginary person that I’m having a conversation with, because I don’t want to make him mad. The answer to these questions revolves around performance.

It would be great if Admin Arsenal could grab all information from all your computers in an instant, but the reality is that it takes time. It’s also reality that some data change more often than others and is therefore more time sensitive. Balancing these two realities in a way to give administrators the best experience, we decided to split the data gathering into two processes. Heartbeat is intended to run more often and to get information that is both quick to gather and changes more frequently. Typically, inventory scans run once a day, so heartbeats get information that is likely to change more often than that. To that end, heartbeat gathers the following:

  • Online/Offline Status. This comes from a standard ICMP ping.
  • Current User. Users log into and out of computers during the day, so this is quite volatile data.
  • Boot Time/Uptime. Computers are also rebooted during the day, so their uptime may change frequently.

Inventory scans, on the other hand, gather the following:

  • Everything else.

We’d love feedback from users if this is a good balance. Should more be added to the heartbeat? Should we make it so that you can move data back and forth between them? Should we add a third method somewhere between the two? Just who is my imaginary friend and why do I fear him?