def create_tsvb(job, args):
        """
        Create a Kibana TSVB Visualization based on args from reqparse

        """
        assert args['type'] in Kibana.TSVB
        if args['type'] == 'Rate':
            vis_state = Kibana._create_rate_visualization(job, args)
        elif args['type'] == 'Ratio':
            vis_state = Kibana._create_ratio_visualization(job, args)
        else:
            assert args['type'] == 'Numeric'
            vis_state = Kibana._create_numeric_visualization(job, args)

        # additional global filter on data if provided.
        if 'query' in args and args['query']:
            vis_state['params']['filter']['query'] += \
                ' and ({})'.format(args['query'])
        # rison-ify and replace
        vis_state = Kibana._regex_process(
            prison.dumps(vis_state), Kibana.RISON_REPLACEMENT
        )
        start_time, end_time = Kibana._parse_start_end_time(args)
        # a single-item list
        return [
            os.path.join(Envs.KIBANA_ADDRESS,
                         Kibana.BASIC_QUERY.format(type='metrics',
                                                   start_time=start_time,
                                                   end_time=end_time,
                                                   vis_state=vis_state))
        ]

        Create a Kibana TSVB Visualization based on args from reqparse

        
web_console_v2/api/fedlearner_webconsole/utils/kibana.py