예제 #1
0
class TestDiskLatencyPollsters(TestBaseDiskIO):

    DISKS = [
        (virt_inspector.Disk(device='disk1'),
         virt_inspector.DiskLatencyStats(1000)),

        (virt_inspector.Disk(device='disk2'),
         virt_inspector.DiskLatencyStats(2000))
    ]
    TYPE = 'gauge'
    CACHE_KEY = "CACHE_KEY_DISK_LATENCY"

    def setUp(self):
        super(TestDiskLatencyPollsters, self).setUp()
        self.inspector.inspect_disk_latency = mock.Mock(
            return_value=self.DISKS)

    def test_disk_latency(self):
        self._check_aggregate_samples(disk.DiskLatencyPollster,
                                      'disk.latency', 3)

    def test_per_device_latency(self):
        self._check_per_device_samples(disk.PerDeviceDiskLatencyPollster,
                                       'disk.device.latency', 1, 'disk1')

        self._check_per_device_samples(disk.PerDeviceDiskLatencyPollster,
                                       'disk.device.latency', 2, 'disk2')
예제 #2
0
 def inspect_disk_latency(self, instance, duration):
     instance_name = util.instance_name(instance)
     for disk_metrics in self._utils.get_disk_latency_metrics(
             instance_name):
         yield virt_inspector.DiskLatencyStats(
             device=disk_metrics['instance_id'],
             disk_latency=disk_metrics['disk_latency'] / 1000)
예제 #3
0
    def inspect_disk_latency(self, instance):
        instance_name = util.instance_name(instance)
        for disk_metrics in self._utils.get_disk_latency_metrics(
                instance_name):
            disk = virt_inspector.Disk(device=disk_metrics['instance_id'])
            stats = virt_inspector.DiskLatencyStats(
                disk_latency=disk_metrics['disk_latency'])

            yield (disk, stats)
예제 #4
0
class TestDiskLatencyPollsters(TestBaseDiskIO):

    DISKS = [(virt_inspector.Disk(device='disk1'),
              virt_inspector.DiskLatencyStats(1000)),
             (virt_inspector.Disk(device='disk2'),
              virt_inspector.DiskLatencyStats(2000))]
    TYPE = 'gauge'

    def setUp(self):
        super(TestDiskLatencyPollsters, self).setUp()
        self.inspector.inspect_disk_latency = mock.Mock(
            return_value=self.DISKS)

    @mock.patch('ceilometer.pipeline.setup_pipeline', mock.MagicMock())
    def _check_get_samples(self, factory, sample_name, expected_count=2):
        pollster = factory()

        mgr = manager.AgentManager()
        cache = {}
        samples = list(pollster.get_samples(mgr, cache, self.instance))
        self.assertIsNotNone(samples)
        self.assertIsNotEmpty(samples)
        self.assertIn(pollster.CACHE_KEY_DISK_LATENCY, cache)
        for instance in self.instance:
            self.assertIn(instance.id, cache[pollster.CACHE_KEY_DISK_LATENCY])

        self.assertEqual(set([sample_name]), set([s.name for s in samples]))

        match = [s for s in samples if s.name == sample_name]
        self.assertEqual(expected_count, len(match),
                         'missing counter %s' % sample_name)
        return match

    def test_disk_latency(self):
        self._check_aggregate_samples(disk.DiskLatencyPollster, 'disk.latency',
                                      3)

    def test_per_device_latency(self):
        self._check_per_device_samples(disk.PerDeviceDiskLatencyPollster,
                                       'disk.device.latency', 1, 'disk1')

        self._check_per_device_samples(disk.PerDeviceDiskLatencyPollster,
                                       'disk.device.latency', 2, 'disk2')
예제 #5
0
class TestDiskLatencyPollsters(TestBaseDiskIO):

    DISKS = [
        virt_inspector.DiskLatencyStats("disk1", 1),
        virt_inspector.DiskLatencyStats("disk2", 2)
    ]
    TYPE = 'gauge'

    def setUp(self):
        super(TestDiskLatencyPollsters, self).setUp()
        self.inspector.inspect_disk_latency = mock.Mock(
            return_value=self.DISKS)

    def test_per_device_latency(self):
        self._check_per_device_samples(disk.PerDeviceDiskLatencyPollster,
                                       'disk.device.latency', 1, 'disk1')

        self._check_per_device_samples(disk.PerDeviceDiskLatencyPollster,
                                       'disk.device.latency', 2, 'disk2')