code: def record(self, tags=None):
          
          if tags is None:
              tags = TagContext.get()
          if self._invalid:
              logger.warning("Measurement map has included negative value "
                             "measurements, refusing to record")
              return
          for measure, value in self.measurement_map.items():
              if value < 0:
                  self._invalid = True
                  logger.warning("Dropping values, value to record must be "
                                 "non-negative")
                  logger.info("Measure '{}' has negative value ({}), refusing "
                              "to record measurements from {}"
                              .format(measure.name, value, self))
                  return
  
          self.measure_to_view_map.record(
                  tags=tags,
                  measurement_map=self.measurement_map,
                  timestamp=utils.to_iso_str(),
                  attachments=self.attachments
          )
docs: records all the measures at the same time with a tag_map.
          tag_map could either be explicitly passed to the method, or implicitly
          read from current runtime context.