def _get_data(self, node):
     # TODO: Create here the object SnapQuery from the string
     results = {}
     for query_vars in InfoGraphNode.get_queries(node):
         query = SnapQuery(self.snap, query_vars['metric'],
                           query_vars['tags'], query_vars['ts_from'],
                           query_vars['ts_to'])
         res = query.run()
         results[query.metric] = res
     results_dataframe = self._to_dataframe(results)
     return results_dataframe
    def get_data(self, node):
        """
        Return telemetry data for the specified node
        :param node: InfoGraph node
        :return: pandas.DataFrame
        """
        queries = InfoGraphNode.get_queries(node)
        ret_val = pandas.DataFrame()
        try:
            ret_val = self._get_data(queries)
        except Exception as ex:
            LOG.debug("Exception in user code: \n{} {} {}".format('-' * 60),
                      traceback.print_exc(file=sys.stdout), '-' * 60)
        #ret_val.set_index(keys='timestamp')
        if InfoGraphNode.node_is_vm(node):
            if not ret_val.empty:
                ret_val.columns = tm_utils.clean_vm_telemetry_colnames(
                    ret_val.columns)

        return ret_val