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)
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)
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)
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)
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)
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)
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")