docs: def vm_diskstats(vm_=None, **kwargs):
      '''
      Return disk usage counters used by the vms on this hyper in a
      list of dicts:
  
      :param vm_: domain name
      :param connection: libvirt connection URI, overriding defaults
  
          .. versionadded:: 2019.2.0
      :param username: username to connect with, overriding defaults
  
          .. versionadded:: 2019.2.0
      :param password: password to connect with, overriding defaults
  
          .. versionadded:: 2019.2.0
  
      .. code-block:: python
  
          [
              'your-vm': {
                  'rd_req'   : 0,
                  'rd_bytes' : 0,
                  'wr_req'   : 0,
                  'wr_bytes' : 0,
                  'errs'     : 0
                  },
              ...
              ]
  
      If you pass a VM name in as an argument then it will return info
      for just the named VM, otherwise it will return all VMs.
  
      CLI Example:
  
      .. code-block:: bash
  
          salt '*' virt.vm_blockstats
      '''
      def get_disk_devs(dom):
          '''
          Extract the disk devices names from the domain XML definition
          '''
          doc = ElementTree.fromstring(get_xml(dom, **kwargs))
          return [target.get('dev') for target in doc.findall('devices/disk/target')]
  
      def _info(dom):
          '''
          Compute the disk stats of a domain
          '''
          # Do not use get_disks, since it uses qemu-img and is very slow
          # and unsuitable for any sort of real time statistics
          disks = get_disk_devs(dom)
          ret = {'rd_req': 0,
                 'rd_bytes': 0,
                 'wr_req': 0,
                 'wr_bytes': 0,
                 'errs': 0
                 }
          for disk in disks:
              stats = dom.blockStats(disk)
              ret['rd_req'] += stats[0]
              ret['rd_bytes'] += stats[1]
              ret['wr_req'] += stats[2]
              ret['wr_bytes'] += stats[3]
              ret['errs'] += stats[4]
  
          return ret
      info = {}
      conn = __get_conn(**kwargs)
      if vm_:
          info[vm_] = _info(_get_domain(conn, vm_))
      else:
          # Can not run function blockStats on inactive VMs
          for domain in _get_domain(conn, iterable=True, inactive=False):
              info[domain.name()] = _info(domain)
      conn.close()
      return info