Esempio n. 1
0
    def process(self, metric, datapoint):
        increment('datapointsReceived')

        for rule in RewriteRuleManager.rules(PRE):
            metric = rule.apply(metric)

        aggregate_metrics = set()

        for rule in RuleManager.rules:
            aggregate_metric = rule.get_aggregate_metric(metric)

            if aggregate_metric is None:
                continue
            else:
                aggregate_metrics.add(aggregate_metric)

            values_buffer = BufferManager.get_buffer(aggregate_metric)

            if not values_buffer.configured:
                values_buffer.configure_aggregation(rule.frequency,
                                                    rule.aggregation_func)

            values_buffer.input(datapoint)

        for rule in RewriteRuleManager.rules(POST):
            metric = rule.apply(metric)

        if metric not in aggregate_metrics:
            yield (metric, datapoint)
Esempio n. 2
0
    def process(self, metric, datapoint):
        increment('datapointsReceived')

        for rule in RewriteRuleManager.rules(PRE):
            metric = rule.apply(metric)

        aggregate_metrics = set()

        for rule in RuleManager.rules:
            aggregate_metric = rule.get_aggregate_metric(metric)

            if aggregate_metric is None:
                continue
            else:
                aggregate_metrics.add(aggregate_metric)

            values_buffer = BufferManager.get_buffer(aggregate_metric)

            if not values_buffer.configured:
                values_buffer.configure_aggregation(rule.frequency,
                                                    rule.aggregation_func)

            values_buffer.input(datapoint)

        for rule in RewriteRuleManager.rules(POST):
            metric = rule.apply(metric)

        if metric not in aggregate_metrics:
            if settings.LOG_AGGREGATOR_MISSES and len(aggregate_metrics) == 0:
                log.msg(
                    "Couldn't match metric %s with any aggregation rule. Passing on un-aggregated."
                    % metric)
            yield (metric, datapoint)
Esempio n. 3
0
  def process(self, metric, datapoint):
    increment('datapointsReceived')

    for rule in RewriteRuleManager.rules(PRE):
      metric = rule.apply(metric)

    aggregate_metrics = set()

    for rule in RuleManager.rules:
      aggregate_metric = rule.get_aggregate_metric(metric)

      if aggregate_metric is None:
        continue
      else:
        aggregate_metrics.add(aggregate_metric)

      values_buffer = BufferManager.get_buffer(aggregate_metric)

      if not values_buffer.configured:
        values_buffer.configure_aggregation(rule.frequency, rule.aggregation_func)

      values_buffer.input(datapoint)

    for rule in RewriteRuleManager.rules(POST):
      metric = rule.apply(metric)

    if metric not in aggregate_metrics:
      yield (metric, datapoint)
Esempio n. 4
0
  def process(self, metric, datapoint):
    increment('datapointsReceived')

    for rule in RewriteRuleManager.rules(PRE):
      metric = rule.apply(metric)

    aggregate_metrics = set()

    for rule in RuleManager.rules:
      aggregate_metric = rule.get_aggregate_metric(metric)

      if aggregate_metric is None:
        continue
      else:
        aggregate_metrics.add(aggregate_metric)

      values_buffer = BufferManager.get_buffer(aggregate_metric)

      if not values_buffer.configured:
        values_buffer.configure_aggregation(rule.frequency, rule.aggregation_func)

      values_buffer.input(datapoint)

    for rule in RewriteRuleManager.rules(POST):
      metric = rule.apply(metric)

    if settings.FORWARD_ALL and metric not in aggregate_metrics:
      if settings.LOG_AGGREGATOR_MISSES and len(aggregate_metrics) == 0:
        log.msg(
          "Couldn't match metric %s with any aggregation rule. Passing on un-aggregated." % metric)
      yield (metric, datapoint)
Esempio n. 5
0
  def test_comments_ignored(self):
    import carbon.rewrite

    open_mock = Mock(return_value=iter(self.commented_config.splitlines()))
    RewriteRuleManager.rules_file = 'foo.conf'

    with patch.object(carbon.rewrite, 'open', open_mock, create=True):
      with patch.object(carbon.rewrite, 'exists', Mock(return_value=True)):
        with patch.object(carbon.rewrite, 'getmtime', Mock(return_value=1234)):
          RewriteRuleManager.read_rules()
    self.assertEqual(1, len(RewriteRuleManager.rules('pre')))
Esempio n. 6
0
 def test_request_for_nonexistent_rules_returns_iterable(self):
   try:
     iter(RewriteRuleManager.rules('foo'))
   except TypeError:
     self.fail("RewriteRuleManager.rules() returned a non-iterable type")