Beispiel #1
0
 def test_subnet_stats(self):
     subnet = factory.make_Subnet(cidr='1.2.0.0/16', gateway_ip='1.2.0.254')
     factory.make_IPRange(subnet=subnet,
                          start_ip='1.2.0.11',
                          end_ip='1.2.0.20',
                          alloc_type=IPRANGE_TYPE.DYNAMIC)
     factory.make_IPRange(subnet=subnet,
                          start_ip='1.2.0.51',
                          end_ip='1.2.0.70',
                          alloc_type=IPRANGE_TYPE.RESERVED)
     factory.make_StaticIPAddress(ip='1.2.0.12',
                                  alloc_type=IPADDRESS_TYPE.DHCP,
                                  subnet=subnet)
     for n in (60, 61):
         factory.make_StaticIPAddress(
             ip='1.2.0.{}'.format(n),
             alloc_type=IPADDRESS_TYPE.USER_RESERVED,
             subnet=subnet)
     for n in (80, 90, 100):
         factory.make_StaticIPAddress(ip='1.2.0.{}'.format(n),
                                      alloc_type=IPADDRESS_TYPE.STICKY,
                                      subnet=subnet)
     metrics = create_metrics(
         STATS_DEFINITIONS, registry=prometheus_client.CollectorRegistry())
     update_prometheus_stats(metrics)
     output = metrics.generate_latest().decode('ascii')
     self.assertIn(
         'maas_net_subnet_ip_count'
         '{cidr="1.2.0.0/16",status="available"} 65500.0', output)
     self.assertIn(
         'maas_net_subnet_ip_count'
         '{cidr="1.2.0.0/16",status="unavailable"} 34.0', output)
     self.assertIn(
         'maas_net_subnet_ip_dynamic'
         '{cidr="1.2.0.0/16",status="available"} 9.0', output)
     self.assertIn(
         'maas_net_subnet_ip_dynamic{cidr="1.2.0.0/16",status="used"} 1.0',
         output)
     self.assertIn(
         'maas_net_subnet_ip_reserved'
         '{cidr="1.2.0.0/16",status="available"} 18.0', output)
     self.assertIn(
         'maas_net_subnet_ip_reserved{cidr="1.2.0.0/16",status="used"} 2.0',
         output)
     self.assertIn('maas_net_subnet_ip_static{cidr="1.2.0.0/16"} 3.0',
                   output)
Beispiel #2
0
 def test_update_prometheus_stats(self):
     self.patch(stats, 'prom_cli')
     # general values
     values = {
         "machine_status": {
             "random_status": 0,
         },
         "controllers": {
             "regions": 0,
         },
         "nodes": {
             "machines": 0,
         },
         "network_stats": {
             "spaces": 0,
         },
         "machine_stats": {
             "total_cpus": 0,
         },
     }
     mock = self.patch(stats, "get_maas_stats")
     mock.return_value = json.dumps(values)
     # architecture
     arches = {
         "amd64": 0,
         "i386": 0,
     }
     mock_arches = self.patch(stats, "get_machines_by_architecture")
     mock_arches.return_value = arches
     # pods
     pods = {
         "kvm_pods": 0,
         "kvm_machines": 0,
     }
     mock_pods = self.patch(stats, "get_kvm_pods_stats")
     mock_pods.return_value = pods
     metrics = create_metrics(
         STATS_DEFINITIONS, registry=prometheus_client.CollectorRegistry())
     update_prometheus_stats(metrics)
     self.assertThat(mock, MockCalledOnce())
     self.assertThat(mock_arches, MockCalledOnce())
     self.assertThat(mock_pods, MockCalledOnce())
Beispiel #3
0
 def test_update_prometheus_stats(self):
     self.patch(stats, "prom_cli")
     # general values
     values = {
         "machine_status": {
             "random_status": 0
         },
         "controllers": {
             "regions": 0
         },
         "nodes": {
             "machines": 0
         },
         "network_stats": {
             "spaces": 0
         },
         "machine_stats": {
             "total_cpu": 0
         },
     }
     mock = self.patch(stats, "get_maas_stats")
     mock.return_value = json.dumps(values)
     # architecture
     arches = {"amd64": 0, "i386": 0}
     mock_arches = self.patch(stats, "get_machines_by_architecture")
     mock_arches.return_value = arches
     # pods
     pods = {
         "kvm_pods": 0,
         "kvm_machines": 0,
         "kvm_available_resources": {
             "cores": 10,
             "memory": 20,
             "storage": 30,
             "over_cores": 100,
             "over_memory": 200,
         },
         "kvm_utilized_resources": {
             "cores": 5,
             "memory": 10,
             "storage": 15,
         },
     }
     mock_pods = self.patch(stats, "get_kvm_pods_stats")
     mock_pods.return_value = pods
     subnet_stats = {
         "1.2.0.0/16": {
             "available": 2**16 - 3,
             "dynamic_available": 0,
             "dynamic_used": 0,
             "reserved_available": 0,
             "reserved_used": 0,
             "static": 0,
             "unavailable": 1,
         },
         "::1/128": {
             "available": 1,
             "dynamic_available": 0,
             "dynamic_used": 0,
             "reserved_available": 0,
             "reserved_used": 0,
             "static": 0,
             "unavailable": 0,
         },
     }
     mock_subnet_stats = self.patch(stats, "get_subnets_utilisation_stats")
     mock_subnet_stats.return_value = subnet_stats
     metrics = create_metrics(
         STATS_DEFINITIONS, registry=prometheus_client.CollectorRegistry())
     update_prometheus_stats(metrics)
     self.assertThat(mock, MockCalledOnce())
     self.assertThat(mock_arches, MockCalledOnce())
     self.assertThat(mock_pods, MockCalledOnce())
     self.assertThat(mock_subnet_stats, MockCalledOnce())