What’s in a Heartbeat

What’s in a Heartbeat

Questions often come on the forums about Heartbeat Discovery including how often should they be configured to run or indirectly, what updates certain resource information in ConfigMgr like the IP Address.

The answer to the first question depends on what you are going to use the data for that is contained in a Heartbeat Discovery? But if you don’t know what’s in a Heartbeat Discovery message, it’s very difficult to answer that question. So, here’s exactly what gets included in the Data Discovery Record (DDR) generated by the client and sent to the server during a Heartbeat Discovery:

  • Is the client installed?
  • Client type (Legacy, Advanced, or Device)
  • Client version
  • NetBIOS Name
  • Character encoding used by the client
  • Default system locale identifier (typically representative of the client’s language)
  • Date and time of the DDR
  • Date and time of last DDR
  • Short name of system
  • Currently logged in (interactive) user
  • FQDN of system
  • IP Network ID
  • Platform ID (this is an encoding of the OS version)
  • AD Site Name
  • IP Address(es)
  • MAC Address(es)
  • Domain name
  • Assigned (Primary) Site
  • Hardware ID
  • Identifying number (of the computer system)
  • Product name (of the computer system)
  • UUID (of the computer system)
  • Version (of the computer system)

The above list also addresses the second question —  at least as far as Heartbeat Discovery is concerned.

So the question for how often to run the Heartbeat Discovery is really how often do you need the above information updated?

Heartbeat Discovery messages are quite small and have negligible overhead on the client. Cumulatively, a large number could impact an under-powered management point, however, so setting them too frequently is not advisable. Out of the box, the default is 7 days. I typically set this down to every 1 day and know others do it even more often. I would never recommend setting this to less than 1 or 2 hours except in very small environments — there isn’t really any value in doing so anyway as nothing in the above list normally changes that frequently.

The Heartbeat Discovery also serves as a “keep alive” or “yes I am alive” message from the client to the site server. Based on this, the Clear Install Flag and Delete Aged Discovery Data maintenance tasks perform their jobs. Note that the Delete Inactive Client Discovery Data  does not directly use the heartbeat time. Instead, Client Status Reporting (available in R2 and R3), uses the last heartbeat time along with last hardware inventory, last software inventory, and last policy polling time to determine if a client is inactive. Once a client is marked inactive by Client Status Reporting, it is then subject to the Delete Inactive Client Discovery Data task.

This “keep alive” purpose of the heartbeat discovery should also influence your choice of how often to set the interval; i.e., you shouldn’t set so infrequently that it might get accidentally marked inactive or not installed by one of the above mentioned maintenance tasks.

Note that you can manually initiate a Heartbeat Discovery anytime on a client from the Configuration Manager Control Panel applet by navigating to the actions tab, selecting Discovery Data Collection Cycle, and then pushing the Initiate Action button. Alternatively you can use Roger Zander’s Client Center, the right-click tools, or use the SDK to initiate this action remotely.

There are two additional important points to be made about Heartbeat Discovery (these are copied straight from http://blogs.technet.com/b/configurationmgr/archive/2010/03/30/the-top-ten-clarifications-for-discovery-in-configuration-manager-2007.aspx):

Heartbeat Discovery forces the rediscovery of active clients that have been deleted from the Configuration Manager database by the administrator, or by a database maintenance task.

  • If you accidentally delete a computer from the Configuration Manager console, it will automatically “come back” if it is still active on the network. You can either wait for the next Heartbeat Discovery cycle to run, or you can hurry things along by selecting the Discovery Data Collection Cycle on the client Configuration Manager Properties: Actions tab, and click OK.

Heartbeat Discovery is the discovery process that submits a client’s installation status to its assigned site.

  • The client might be installed but the client state in the Configuration Manager console continues to display No for its Client state if the site hasn’t received the client’s discovery data record (DDR) from Heartbeat Discovery. This will be the case if the client cannot communicate with its management point.
Accessing OSD Troubleshooting Tools

Next Article

Accessing OSD Troubleshooting Tools



  1. Thanks, Jason, for such a great post here – I refer back to this with customers all the time.

    I’m wondering if you have any packet capture data to share that shows typical heartbeat size? I vaguely remember 2-4kb per heartbeat from an MMS session, but I can’t seem to find their original research info.

    • Thanks. No to the question, but it sounds like something good to do and blog about.

  2. One of the most common issues we face is our service desk having to ask the customer for an IP address because sccm’s database is not up to date with the ip address of the client. This often happens when customers are roaming between wireless and ethernet. Would it be completely insane to run heartbeat discovery every few minutes instead of hours or days to ensure the ip address remains up to date? Is there a better way to achieve this?

    • Yes, this is completely insane. Lowering the heartbeat discovery interval to every 4 hours or so should be fine though. Why does the service desk need the user’s IP though?

  3. Thanks for this write up Jason, really useful.

    • You’re welcome Andrew. Not that this is a really old post and there are actually a couple of additional items included in a heartbeat DDR as of ConfigMgr 2012. I don’t recall all of them off-hand but OU is one of them. The easy way to validate what is in a heartbeat DDR is to use the ConfigMgr Support Center as this gives you direct visibility into the heartbeat “inventory” as well as hardware and software inventory.