Beispiel #1
0
    def _read_metadata(metric_name, path):
        info = whisper.info(path)
        if not info:
            return None

        retentions = bg_metric.Retention([
            bg_metric.Stage(precision=a["secondsPerPoint"], points=a["points"])
            for a in info["archives"]
        ])
        aggregator = bg_metric.Aggregator.from_carbon_name(
            info["aggregationMethod"])
        return bg_metric.MetricMetadata.create(
            aggregator=aggregator,
            retention=retentions,
            carbon_xfilesfactor=info["xFilesFactor"],
        )
Beispiel #2
0
    def test_create_async(self):
        metric_name = "a.b.c"
        metric = bg_test_utils.make_metric(metric_name)

        self._plugin._createAsyncOrig(metric, metric_name)
        self.assertFalse(self._plugin.exists(metric_name))
        self._plugin._createOneMetric()
        self.assertTrue(self._plugin.exists(metric_name))

        # See if we can update.
        metric = bg_test_utils.make_metric(
            metric_name, retention=bg_metric.Retention([bg_metric.Stage(1, 1)])
        )
        self._plugin._createAsyncOrig(metric, metric_name)
        self._plugin._createOneMetric()
        retention = self._plugin.getMetadata(metric_name, "retention")
        self.assertEqual(retention, metric.metadata.retention)