예제 #1
0
def test_is_metric_excluded_by_filters():
    metric_filters = {'vm': regexes}

    assert not is_metric_excluded_by_filters('foo1', vim.VirtualMachine, metric_filters)
    assert not is_metric_excluded_by_filters('foo0', vim.VirtualMachine, metric_filters)
    assert not is_metric_excluded_by_filters('bar 0', vim.VirtualMachine, metric_filters)
    assert is_metric_excluded_by_filters('foo', vim.VirtualMachine, metric_filters)
예제 #2
0
    def refresh_metrics_metadata_cache(self):
        """Request the list of counters (metrics) from vSphere and store them in a cache."""
        self.log.debug(
            "Refreshing the metrics metadata cache. Collecting all counters metadata for collection_level=%d",
            self.config.collection_level,
        )
        t0 = Timer()
        counters = self.api.get_perf_counter_by_level(
            self.config.collection_level)
        self.gauge(
            "datadog.vsphere.refresh_metrics_metadata_cache.time",
            t0.total(),
            tags=self.config.base_tags,
            raw=True,
            hostname=self._hostname,
        )
        self.log.debug("Collected %d counters metadata in %.3f seconds.",
                       len(counters), t0.total())

        for mor_type in self.config.collected_resource_types:
            allowed_counters = []
            for c in counters:
                metric_name = format_metric_name(c)
                if metric_name in ALLOWED_METRICS_FOR_MOR[
                        mor_type] and not is_metric_excluded_by_filters(
                            metric_name, mor_type, self.config.metric_filters):
                    allowed_counters.append(c)
            metadata = {c.key: format_metric_name(c) for c in allowed_counters}
            self.metrics_metadata_cache.set_metadata(mor_type, metadata)
예제 #3
0
def test_is_reference_excluded():
    metric_filters = {'vm': [re.compile(r'^((?!cpu.usage.avg).)*$')]}
    assert not is_metric_excluded_by_filters(
        'cpu.usage.avg', vim.VirtualMachine, metric_filters)