Пример #1
0
def get_global_system_data_after(timestamp=None,
                                 check=None,
                                 key=None,
                                 enddate=None,
                                 timezone='UTC',
                                 filtered_servers=None):
    data = []
    now = datetime.utcnow()

    active_checks = ['memory', 'loadavg', 'cpu', 'disk', 'network']
    if check in active_checks and timestamp:

        if check in ['disk', 'network']:
            data = system_model.get_global_device_data_after(
                timestamp=timestamp,
                enddate=enddate,
                timezone=timezone,
                check=check,
                key=key,
                filtered_servers=filtered_servers)
        else:
            data = system_model.get_global_data_after(
                timestamp=timestamp,
                enddate=enddate,
                check=check,
                key=key,
                timezone=timezone,
                filtered_servers=filtered_servers)

    try:
        now_local = dateformatcharts_local(datetime_to_unixtime(now),
                                           tz=timezone)
    except:
        now_local = False

    response = {
        'data': data,
        'last_update': datetime_to_unixtime(now),
        'now_local': now_local,
        'chart_type': 'line',
    }

    return response
Пример #2
0
def get_global_system_data_after(timestamp=None, check=None, key=None, enddate=None, timezone='UTC', filtered_servers=None):
    data = []
    now = datetime.utcnow()

    active_checks = ['memory', 'loadavg', 'cpu', 'disk', 'network']
    if check in active_checks and timestamp:

        if check in ['disk', 'network']:
            data = system_model.get_global_device_data_after(timestamp=timestamp,
                enddate=enddate,
                timezone=timezone,
                check=check,
                key=key,
                filtered_servers=filtered_servers
            )
        else:
            data = system_model.get_global_data_after(timestamp=timestamp,
                    enddate=enddate,
                    check=check,
                    key=key,
                    timezone=timezone,
                    filtered_servers=filtered_servers
                )

    try:
        now_local = dateformatcharts_local(datetime_to_unixtime(now), tz=timezone)
    except:
        now_local = False

    response = {
        'data': data,
        'last_update': datetime_to_unixtime(now),
        'now_local': now_local,
        'chart_type': 'line',
    }

    return response
Пример #3
0
    def get_memory_data_test(self):
        self._cleanup()

        collection = system_model.data_collection
        for i in range(0, 30):
            memory_dict = {
                "time": i,
                "server_id": self.server_id,
                "memory": {
                    "used_percent": 15,
                    "swap_used_mb": 0,
                    "total_mb": 166,
                    "free_mb": 4.44,
                    "used_mb": 66.55,
                }
            }
            collection.insert(memory_dict)

        result = system_model.get_data_after(timestamp=10,
                                             enddate=20,
                                             server=self.server,
                                             check='memory')

        total = result[1]['data']

        eq_(len(total), 11)

        for entry in total:
            assert entry['x'] >= 10
            assert entry['x'] <= 20

            assert entry['y'] == 166
            assert type(entry['y']) is float

        used = result[0]['data']

        eq_(len(used), 11)

        for entry in used:
            assert entry['x'] >= 10
            assert entry['x'] <= 20

            assert entry['y'] == 66.55
            assert type(entry['y']) is float

        keys = [
            system_model.metric_tuple('total_mb', 'Total memory'),
            system_model.metric_tuple('used_mb', 'Used memory'),
        ]

        result = collection.find({
            'server_id': self.server_id,
            "time": {
                "$gte": int(10),
                "$lte": int(20)
            }
        }).sort('time', system_model.asc)

        charts = system_model.generate_charts(check='memory',
                                              keys=keys,
                                              result=result)

        eq_(len(charts), 2)

        data = charts[0]['data']
        eq_(len(data), 11)

        for entry in data:
            assert entry['x'] >= 10
            assert entry['x'] <= 20

        all_servers = server_model.get_all()

        # Test global data for memory - used in the dashboards
        result = system_model.get_global_data_after(
            timestamp=10,
            enddate=20,
            filtered_servers=all_servers,
            check='memory')

        used_percent = result[0]['data']

        eq_(len(used_percent), 11)
        assert result[0]['name'] == self.server['name']

        for entry in used_percent:
            assert entry['x'] >= 10
            assert entry['x'] <= 20

            assert entry['y'] == 15.0
            assert type(entry['y']) is float

        self._cleanup()
Пример #4
0
    def get_loadavg_data_test(self):
        self._cleanup()

        collection = system_model.data_collection
        for i in range(0, 30):
            data_dict = {
                "time": i,
                "server_id": self.server_id,
                "loadavg": {
                    "cores": 4,
                    "fifteen_minutes": "0.18",
                    "minute": "0.34",
                    "five_minutes": "0.27"
                }
            }
            collection.insert(data_dict)

        result = system_model.get_data_after(timestamp=10,
                                             enddate=20,
                                             server=self.server,
                                             check='loadavg')

        t = ['minute', 'five_minutes', 'fifteen_minutes']
        for i in range(0, 3):
            result_dict = result[i]['data']

            key = t[i]
            eq_(len(result_dict), 11)

            for entry in result_dict:
                assert entry['x'] >= 10
                assert entry['x'] <= 20

                assert entry['y'] == float(data_dict['loadavg'][key])
                assert type(entry['y']) is float

        keys = [
            system_model.metric_tuple('minute', '1 minute'),
            system_model.metric_tuple('five_minutes', '5 minutes'),
            system_model.metric_tuple('fifteen_minutes', '15 minutes'),
        ]

        result = collection.find({
            'server_id': self.server_id,
            "time": {
                "$gte": int(10),
                "$lte": int(20)
            }
        }).sort('time', system_model.asc)

        charts = system_model.generate_charts(check='loadavg',
                                              keys=keys,
                                              result=result)

        eq_(len(charts), 3)

        data = charts[0]['data']
        eq_(len(data), 11)

        for entry in data:
            assert entry['x'] >= 10
            assert entry['x'] <= 20

        # Test global data  - used in the dashboards
        all_servers = server_model.get_all()
        result = system_model.get_global_data_after(
            timestamp=10,
            enddate=20,
            filtered_servers=all_servers,
            check='loadavg',
            key='minute')

        used_percent = result[0]['data']

        eq_(len(used_percent), 11)
        assert result[0]['name'] == self.server['name']

        for entry in used_percent:
            assert entry['x'] >= 10
            assert entry['x'] <= 20

            assert entry['y'] == 0.34
            assert type(entry['y']) is float

        self._cleanup()
Пример #5
0
    def get_cpu_data_test(self):
        self._cleanup()

        collection = system_model.data_collection
        for i in range(0, 30):
            cpu_dict = {
                "time": i,
                "server_id": self.server_id,
                "cpu": {
                    "iowait": "0.00",
                    "system": "7.51",
                    "idle": "91.15",
                    "user": "******",
                    "steal": "0.00",
                    "nice": "0.00"
                }
            }
            collection.insert(cpu_dict)

        result = system_model.get_data_after(timestamp=10,
                                             enddate=20,
                                             server=self.server,
                                             check='cpu')

        t = ['idle', 'system', 'user', 'iowait', 'steal']
        for i in range(0, 5):
            data_dict = result[i]['data']

            key = t[i]
            eq_(len(data_dict), 11)

            for entry in data_dict:
                assert entry['x'] >= 10
                assert entry['x'] <= 20

                assert entry['y'] == float(cpu_dict['cpu'][key])
                assert type(entry['y']) is float

        keys = [
            system_model.metric_tuple('idle', 'Idle'),
            system_model.metric_tuple('system', 'System'),
            system_model.metric_tuple('user', 'User'),
            system_model.metric_tuple('iowait', 'IOWait'),
            system_model.metric_tuple('steal', 'Steal'),
        ]

        result = collection.find({
            'server_id': self.server_id,
            "time": {
                "$gte": int(10),
                "$lte": int(20)
            }
        }).sort('time', system_model.asc)

        charts = system_model.generate_charts(check='cpu',
                                              keys=keys,
                                              result=result)

        eq_(len(charts), 5)

        data = charts[0]['data']
        eq_(len(data), 11)

        for entry in data:
            assert entry['x'] >= 10
            assert entry['x'] <= 20

        # Test global data  - used in the dashboards
        all_servers = server_model.get_all()
        result = system_model.get_global_data_after(
            timestamp=10,
            enddate=20,
            filtered_servers=all_servers,
            check='cpu',
            key='system')

        used_percent = result[0]['data']

        eq_(len(used_percent), 11)
        assert result[0]['name'] == self.server['name']

        for entry in used_percent:
            assert entry['x'] >= 10
            assert entry['x'] <= 20

            assert entry['y'] == 7.51
            assert type(entry['y']) is float

        self._cleanup()