code: def process_counter(self, key, fields):
          
          sample_rate = 1.0
          try:
              if len(fields) is 3:
                  if self.ratecheck.match(fields[2]):
                      sample_rate = float(fields[2].lstrip("@"))
                  else:
                      raise Exception("bad sample rate.")
              counter_value = float(fields[0] or 1) * (1 / float(sample_rate))
              if key not in self.counters:
                  self.counters[key] = 0
              self.counters[key] += counter_value
              if self.stats_seen >= maxint:
                  self.logger.info("hit maxint, reset seen counter")
                  self.stats_seen = 0
              self.stats_seen += 1
          except Exception as err:
              self.logger.info("error decoding counter event: %s" % err)
              if self.debug:
                  print "error decoding counter event: %s" % err
docs: Process a received counter event
  
          :param key: Key of counter
          :param fields: Received fields