code: def update_snmp(self):
          
  
          # Init new stats
          stats = self.get_init_value()
  
          # Update stats using SNMP
          if self.short_system_name in ('windows', 'esxi'):
              # Windows or VMWare ESXi
              # You can find the CPU utilization of windows system by querying the oid
              # Give also the number of core (number of element in the table)
              try:
                  cpu_stats = self.get_stats_snmp(snmp_oid=snmp_oid[self.short_system_name],
                                                  bulk=True)
              except KeyError:
                  self.reset()
  
              # Iter through CPU and compute the idle CPU stats
              stats['nb_log_core'] = 0
              stats['idle'] = 0
              for c in cpu_stats:
                  if c.startswith('percent'):
                      stats['idle'] += float(cpu_stats['percent.3'])
                      stats['nb_log_core'] += 1
              if stats['nb_log_core'] > 0:
                  stats['idle'] = stats['idle'] / stats['nb_log_core']
              stats['idle'] = 100 - stats['idle']
              stats['total'] = 100 - stats['idle']
  
          else:
              # Default behavor
              try:
                  stats = self.get_stats_snmp(
                      snmp_oid=snmp_oid[self.short_system_name])
              except KeyError:
                  stats = self.get_stats_snmp(
                      snmp_oid=snmp_oid['default'])
  
              if stats['idle'] == '':
                  self.reset()
                  return self.stats
  
              # Convert SNMP stats to float
              for key in iterkeys(stats):
                  stats[key] = float(stats[key])
              stats['total'] = 100 - stats['idle']
  
          return stats
docs: Update CPU stats using SNMP.