Beispiel #1
0
    def collect(self):
        gauges = self.generate_gauges('stats', self.name, self.vrops_entity_name,
                                      ['vcenter', 'vccluster', 'datacenter'])
        if not gauges:
            return

        if os.environ['DEBUG'] >= '1':
            print(self.name, 'starts with collecting the metrics')

        token = self.get_target_tokens()
        token = token[self.target]
        if not token:
            print("skipping " + self.target + " in " + self.name + ", no token")

        uuids = self.get_clusters_by_target()
        for metric_suffix in gauges:
            statkey = gauges[metric_suffix]['statkey']
            values = Vrops.get_latest_stat_multiple(self.target, token, uuids, statkey)
            if not values:
                print("skipping statkey " + str(statkey) + " in", self.name, ", no return")
                continue

            for value_entry in values:
                metric_value = value_entry['stat-list']['stat'][0]['data']
                if metric_value:
                    metric_value = metric_value[0]
                    cluster_id = value_entry['resourceId']
                    gauges[metric_suffix]['gauge'].add_metric(
                            labels=[self.clusters[cluster_id]['vcenter'],
                                    self.clusters[cluster_id]['name'],
                                    self.clusters[cluster_id]['parent_dc_name'].lower()],
                            value=metric_value)

        for metric_suffix in gauges:
            yield gauges[metric_suffix]['gauge']
Beispiel #2
0
    def collect(self):
        gauges = self.generate_gauges(
            'stats', self.name, self.vrops_entity_name, [
                self.vrops_entity_name, 'vcenter', 'datacenter', 'vccluster',
                'hostsystem', 'project'
            ])
        project_ids = self.get_project_ids_by_target()

        if os.environ['DEBUG'] >= '1':
            print(self.name, 'starts with collecting the metrics')

        token = self.get_target_tokens()
        token = token[self.target]

        if not token:
            print("skipping " + self.target + " in " + self.name +
                  ", no token")

        uuids = self.get_vms_by_target()
        for metric_suffix in gauges:
            statkey = gauges[metric_suffix]['statkey']
            values = Vrops.get_latest_stat_multiple(self.target, token, uuids,
                                                    statkey)
            if os.environ['DEBUG'] >= '1':
                print(self.target, statkey)
                print("amount uuids", str(len(uuids)))
                print("fetched     ", str(len(values)))
            if not values:
                print("skipping statkey " + str(statkey) + " in", self.name,
                      ", no return")
                continue

            for value_entry in values:
                metric_value = value_entry['stat-list']['stat'][0]['data']
                if metric_value:
                    metric_value = metric_value[0]
                    vm_id = value_entry['resourceId']
                    project_id = "internal"
                    if project_ids:
                        for vm_id_project_mapping in project_ids:
                            if vm_id in vm_id_project_mapping:
                                project_id = vm_id_project_mapping[vm_id]
                    gauges[metric_suffix]['gauge'].add_metric(
                        labels=[
                            self.vms[vm_id]['name'],
                            self.vms[vm_id]['vcenter'],
                            self.vms[vm_id]['datacenter'].lower(),
                            self.vms[vm_id]['cluster'],
                            self.vms[vm_id]['parent_host_name'], project_id
                        ],
                        value=metric_value)

        for metric_suffix in gauges:
            yield gauges[metric_suffix]['gauge']
    def collect(self):
        logger.info(f' {self.name} starts with collecting the metrics')

        token = self.get_target_tokens()
        token = token.setdefault(self.target, None)

        if not token:
            logger.warning(f'skipping {self.target} in {self.name}, no token')
            return

        if self.rubricated and not self.rubric:
            logger.warning(f'{self.name} has no rubric given. Considering all.')

        gauges = self.generate_gauges('stats', self.name, self.vrops_entity_name,
                                      [self.vrops_entity_name, 'vcenter', 'datacenter', 'vccluster', 'hostsystem',
                                       'project'], rubric=self.rubric)
        project_ids = self.get_project_ids_by_target()

        uuids = self.get_vms_by_target()
        for metric_suffix in gauges:
            statkey = gauges[metric_suffix]['statkey']
            values = Vrops.get_latest_stat_multiple(self.target, token, uuids, statkey, self.name)
            if not values:
                logger.warning(f'Skipping statkey: {statkey} in {self.name} , no return')
                continue

            for value_entry in values:
                metric_value = value_entry['stat-list']['stat'][0]['data']
                if metric_value:
                    metric_value = metric_value[0]
                    vm_id = value_entry['resourceId']
                    project_id = "internal"
                    if project_ids:
                        for vm_id_project_mapping in project_ids:
                            if vm_id in vm_id_project_mapping:
                                project_id = vm_id_project_mapping[vm_id]
                    gauges[metric_suffix]['gauge'].add_metric(
                        labels=[self.vms[vm_id]['name'],
                                self.vms[vm_id]['vcenter'],
                                self.vms[vm_id]['datacenter'].lower(),
                                self.vms[vm_id]['cluster'],
                                self.vms[vm_id]['parent_host_name'],
                                project_id],
                        value=metric_value)

        for metric_suffix in gauges:
            yield gauges[metric_suffix]['gauge']
Beispiel #4
0
    def collect(self):
        logger.info(f'{self.name} starts with collecting the metrics')

        token = self.get_target_tokens()
        token = token.setdefault(self.target, None)

        if not token:
            logger.warning(f'skipping {self.target} in {self.name}, no token')
            return

        gauges = self.generate_gauges(
            'stats', self.name, self.vrops_entity_name, [
                self.vrops_entity_name, 'type', 'vcenter', 'datacenter',
                'vccluster', 'hostsystem'
            ])

        uuids = self.get_datastores_by_target()
        for metric_suffix in gauges:
            statkey = gauges[metric_suffix]['statkey']
            values = Vrops.get_latest_stat_multiple(self.target, token, uuids,
                                                    statkey, self.name)
            if not values:
                logger.warning(
                    f'Skipping statkey: {statkey} in {self.name} , no return')
                continue

            for value_entry in values:
                metric_value = value_entry['stat-list']['stat'][0]['data']
                if metric_value:
                    metric_value = metric_value[0]
                    datastore_id = value_entry['resourceId']
                    gauges[metric_suffix]['gauge'].add_metric(
                        labels=[
                            self.datastores[datastore_id]['name'],
                            self.datastores[datastore_id]['type'],
                            self.datastores[datastore_id]['vcenter'],
                            self.datastores[datastore_id]
                            ['datacenter'].lower(),
                            self.datastores[datastore_id]['cluster'],
                            self.datastores[datastore_id]['parent_host_name']
                        ],
                        value=metric_value)

        for metric_suffix in gauges:
            yield gauges[metric_suffix]['gauge']