def handle_field()

in src/worker/exporters/node_exporter.py [0:0]


    def handle_field(self, field_name, value):  # noqa: C901
        '''Update metric value for gauge'''
        if 'cpu' in field_name:
            logging.debug(f'Handeling field: {field_name}')
            for id, k in enumerate(value.keys()):
                numa_domain = self.config['cpu_numa_map'][id]
                logging.debug(f'Handeling key: {k}. Setting value: {value[k]}')
                self.update_field(field_name, value[k], self.config['job_id'], k, numa_domain)
        elif 'xid' in field_name or 'link_flap' in field_name:
            Mapping = GPU_Mapping if 'xid' in field_name else IB_Mapping
            try:
                self.remove_metric(field_name, Mapping)
                for dev_id in value.keys():
                    iter_object = value[dev_id].keys() if field_name == 'xid' else value[dev_id]
                    for time_stamp in iter_object:
                        label_values = [self.config['job_id'], dev_id, Mapping[dev_id], time_stamp] \
                            if 'xid' in field_name else [self.config['job_id'], Mapping[dev_id], time_stamp]
                        collect_time = self.config['sample_timestamp'][field_name]
                        event_time = datetime.strptime(time_stamp, "%b %d %H:%M:%S").replace(year=collect_time.year)
                        if event_time <= collect_time:
                            continue
                        if 'xid' in field_name:
                            for code in value[dev_id][time_stamp]:
                                self.update_field(field_name, code, *label_values)
                        else:
                            self.update_field(field_name, 1, *label_values)
                        self.config['counter'][field_name][dev_id].append(time_stamp)
                        self.config['sample_timestamp'][field_name] = event_time
            except Exception as e:
                logging.exception('Raised exception during xid/linkflap handling. Message: %s', e)
                pass
        else:
            self.update_field(field_name, value, self.config['job_id'])
        logging.debug('Node exporter field %s: %s', field_name, str(value))