Ejemplo n.º 1
0
    def test_select_prometheus_experiment_targets_flattens_names(self):
        # Setup synthetic user, site, and experiment configuration data.
        experiments = [model.Slice(name='abc_bar',
                                   index=1,
                                   attrs=self.attrs,
                                   users=self.users,
                                   use_initscript=True,
                                   ipv6='all')]
        # Assign experiments to nodes.
        for hostname, node in self.sites[0]['nodes'].iteritems():
            experiments[0].add_node_address(node)
        output = StringIO.StringIO()
        expected_targets = [
            {
                'labels': {
                    'machine': 'mlab2.abc01.measurement-lab.org',
                    'experiment': 'bar.abc'
                },
                'targets': [
                    'bar-abc-mlab2-abc01.measurement-lab.org:9090'
                ]
            }
        ]

        actual_targets = mlabconfig.select_prometheus_experiment_targets(
            experiments, "bar.abc.mlab2.*", ['{{hostname}}:9090'], {}, False,
            True)

        self.assertEqual(len(actual_targets), 1)
        self.assertItemsEqual(expected_targets, actual_targets)
Ejemplo n.º 2
0
    def test_select_prometheus_experiment_targets_includes_selected(self):
        # Setup synthetic user, site, and experiment configuration data.
        experiments = [
            model.Slice(name='abc_bar',
                        index=1,
                        attrs=self.attrs,
                        users=self.users,
                        use_initscript=True,
                        ipv6='all')
        ]
        # Assign experiments to nodes.
        for hostname, node in self.sites[0]['nodes'].iteritems():
            experiments[0].add_node_address(node)
        output = StringIO.StringIO()
        expected_targets = [{
            'labels': {
                'machine': 'mlab2.abc01.measurement-lab.org',
                'experiment': 'bar.abc'
            },
            'targets': ['bar.abc.mlab2.abc01.measurement-lab.org:9090']
        }]

        actual_targets = mlabconfig.select_prometheus_experiment_targets(
            experiments, "bar.abc.mlab2.*", '{{hostname}}:9090', {}, False)

        self.assertEqual(len(actual_targets), 1)
        self.assertItemsEqual(expected_targets, actual_targets)
Ejemplo n.º 3
0
    def test_select_prometheus_experiment_targets_decorated_names(self):
        expected_targets = [{
            'labels': {
                'machine': 'mlab1.abc01.measurement-lab.org',
                'experiment': 'bar.abc',
                'ipv6': 'present'
            },
            'targets': ['bar.abc.mlab1v4.abc01.measurement-lab.org:9090']
        }]

        actual_targets = mlabconfig.select_prometheus_experiment_targets(
            self.sites, "mlab-sandbox", "bar.abc.mlab1.*",
            ['{{hostname}}:9090'], {}, False, False, 'v4', False)

        self.assertEqual(len(actual_targets), 1)
        self.assertCountEqual(expected_targets, actual_targets)
Ejemplo n.º 4
0
    def test_select_prometheus_experiment_targets_includes_all_experiments(
        self):
        # Setup synthetic user, site, and experiment configuration data.
        experiments = [model.Slice(name='abc_bar',
                                   index=1,
                                   attrs=self.attrs,
                                   users=self.users,
                                   use_initscript=True,
                                   ipv6='all')]
        # Assign experiments to nodes.
        for node in self.sites[0]['nodes'].values():
            experiments[0].add_node_address(node)
        expected_targets = [
            {
                'labels': {
                    'experiment': 'bar.abc',
                    'machine': 'mlab2.abc01.measurement-lab.org'
                },
                'targets': [
                    'bar.abc.mlab2.abc01.measurement-lab.org:9090'
                ]
            },
            {
                'labels': {
                    'experiment': 'bar.abc',
                    'machine': 'mlab1.abc01.measurement-lab.org'
                },
                'targets': [
                    'bar.abc.mlab1.abc01.measurement-lab.org:9090'
                ]
            },
            {
                'labels': {
                    'experiment': 'bar.abc',
                    'machine': 'mlab3.abc01.measurement-lab.org'
                },
                'targets': [
                    'bar.abc.mlab3.abc01.measurement-lab.org:9090'
                ]
            }
        ]

        actual_targets = mlabconfig.select_prometheus_experiment_targets(
            experiments, None, ['{{hostname}}:9090'], {}, False, False, '')

        self.assertEqual(len(actual_targets), 3)
        self.assertItemsEqual(expected_targets, actual_targets)
Ejemplo n.º 5
0
    def test_select_prometheus_experiment_targets_includes_all_experiments(
            self):
        expected_targets = [
            {
                'labels': {
                    'experiment': 'bar.abc',
                    'ipv6': 'present',
                    'machine': 'mlab1.abc01.measurement-lab.org'
                },
                'targets': ['bar.abc.mlab1.abc01.measurement-lab.org:9090']
            },
        ]

        actual_targets = mlabconfig.select_prometheus_experiment_targets(
            self.sites, 'mlab-sandbox', None, ['{{hostname}}:9090'], {}, False,
            False, '', False)

        self.assertEqual(len(actual_targets), 1)
        self.assertCountEqual(expected_targets, actual_targets)
Ejemplo n.º 6
0
    def test_select_prometheus_experiment_targets_flattens_names(self):
        expected_targets = [
            {
                'labels': {
                    'machine': 'mlab1.abc01.measurement-lab.org',
                    'experiment': 'bar.abc'
                },
                'targets': [
                    'bar-abc-mlab1-abc01.measurement-lab.org:9090'
                ]
            }
        ]

        actual_targets = mlabconfig.select_prometheus_experiment_targets(
            self.sites, "bar.abc.mlab1.*", ['{{hostname}}:9090'], {},
            False, True, '', False)

        self.assertEqual(len(actual_targets), 1)
        self.assertItemsEqual(expected_targets, actual_targets)
Ejemplo n.º 7
0
    def test_select_prometheus_experiment_targets_ipv6_disabled(self):
        expected_targets = [
            {
                'labels': {
                    'experiment': 'bar.abc',
                    'ipv6': 'missing',
                    'machine': 'mlab1.abc01.measurement-lab.org'
                },
                'targets': ['bar.abc.mlab1.abc01.measurement-lab.org:9090']
            },
        ]

        sites_ipv6_disabled = sites
        sites_ipv6_disabled[0]['nodes'][0]['experiments'][0]['v6']['ip'] = ""

        actual_targets = mlabconfig.select_prometheus_experiment_targets(
            sites_ipv6_disabled, 'mlab-sandbox', None, ['{{hostname}}:9090'],
            {}, False, False, '', False)

        self.assertEqual(len(actual_targets), 1)
        self.assertCountEqual(expected_targets, actual_targets)
        self.assertEqual(actual_targets[0]['labels']['ipv6'], "missing")