def __init__(self, config): AsyncHTTPClient.configure(None, defaults=dict(request_timeout=120.0)) self.tracker = Tracker(config) self.tracker.synch_topologies() tornadoHandlers = [ (r"/", handlers.MainHandler), (r"/clusters", handlers.ClustersHandler, {"tracker":self.tracker}), (r"/topologies", handlers.TopologiesHandler, {"tracker":self.tracker}), (r"/topologies/states", handlers.StatesHandler, {"tracker":self.tracker}), (r"/topologies/info", handlers.TopologyHandler, {"tracker":self.tracker}), (r"/topologies/logicalplan", handlers.LogicalPlanHandler, {"tracker":self.tracker}), (r"/topologies/config", handlers.TopologyConfigHandler, {"tracker":self.tracker}), (r"/topologies/containerfiledata", handlers.ContainerFileDataHandler, {"tracker":self.tracker}), (r"/topologies/containerfiledownload", handlers.ContainerFileDownloadHandler, {"tracker":self.tracker}), (r"/topologies/containerfilestats", handlers.ContainerFileStatsHandler, {"tracker":self.tracker}), (r"/topologies/physicalplan", handlers.PhysicalPlanHandler, {"tracker":self.tracker}), (r"/topologies/packingplan", handlers.PackingPlanHandler, {"tracker":self.tracker}), # Deprecated. See https://github.com/apache/incubator-heron/issues/1754 (r"/topologies/executionstate", handlers.ExecutionStateHandler, {"tracker":self.tracker}), (r"/topologies/schedulerlocation", handlers.SchedulerLocationHandler, {"tracker":self.tracker}), (r"/topologies/metadata", handlers.MetaDataHandler, {"tracker":self.tracker}), (r"/topologies/runtimestate", handlers.RuntimeStateHandler, {"tracker":self.tracker}), (r"/topologies/metrics", handlers.MetricsHandler, {"tracker":self.tracker}), (r"/topologies/metricstimeline", handlers.MetricsTimelineHandler, {"tracker":self.tracker}), (r"/topologies/metricsquery", handlers.MetricsQueryHandler, {"tracker":self.tracker}), (r"/topologies/exceptions", handlers.ExceptionHandler, {"tracker":self.tracker}), (r"/topologies/exceptionsummary", handlers.ExceptionSummaryHandler, {"tracker":self.tracker}), (r"/machines", handlers.MachinesHandler, {"tracker":self.tracker}), (r"/topologies/pid", handlers.PidHandler, {"tracker":self.tracker}), (r"/topologies/jstack", handlers.JstackHandler, {"tracker":self.tracker}), (r"/topologies/jmap", handlers.JmapHandler, {"tracker":self.tracker}), (r"/topologies/histo", handlers.MemoryHistogramHandler, {"tracker":self.tracker}), (r"(.*)", handlers.DefaultHandler), ] settings = dict( debug=True, serve_traceback=True, static_path=os.path.dirname(__file__) ) tornado.web.Application.__init__(self, tornadoHandlers, **settings) Log.info("Tracker has started")
def __init__(self): config = Config(options.config_file) self.tracker = Tracker(config) self.tracker.synch_topologies() tornadoHandlers = [ (r"/", handlers.MainHandler), (r"/clusters", handlers.ClustersHandler, {"tracker":self.tracker}), (r"/topologies", handlers.TopologiesHandler, {"tracker":self.tracker}), (r"/topologies/states", handlers.StatesHandler, {"tracker":self.tracker}), (r"/topologies/info", handlers.TopologyHandler, {"tracker":self.tracker}), (r"/topologies/logicalplan", handlers.LogicalPlanHandler, {"tracker":self.tracker}), (r"/topologies/containerfiledata", handlers.ContainerFileDataHandler, {"tracker":self.tracker}), (r"/topologies/containerfilestats", handlers.ContainerFileStatsHandler, {"tracker":self.tracker}), (r"/topologies/physicalplan", handlers.PhysicalPlanHandler, {"tracker":self.tracker}), (r"/topologies/executionstate", handlers.ExecutionStateHandler, {"tracker":self.tracker}), (r"/topologies/schedulerlocation", handlers.SchedulerLocationHandler, {"tracker":self.tracker}), (r"/topologies/metrics", handlers.MetricsHandler, {"tracker":self.tracker}), (r"/topologies/metricstimeline", handlers.MetricsTimelineHandler, {"tracker":self.tracker}), (r"/topologies/metricsquery", handlers.MetricsQueryHandler, {"tracker":self.tracker}), (r"/topologies/exceptions", handlers.ExceptionHandler, {"tracker":self.tracker}), (r"/topologies/exceptionsummary", handlers.ExceptionSummaryHandler, {"tracker":self.tracker}), (r"/machines", handlers.MachinesHandler, {"tracker":self.tracker}), (r"/topologies/pid", handlers.PidHandler, {"tracker":self.tracker}), (r"/topologies/jstack", handlers.JstackHandler, {"tracker":self.tracker}), (r"/topologies/jmap", handlers.JmapHandler, {"tracker":self.tracker}), (r"/topologies/histo", handlers.MemoryHistogramHandler, {"tracker":self.tracker}), (r"(.*)", handlers.DefaultHandler), ] settings = dict( debug=True, serve_traceback=True, static_path=os.path.dirname(__file__) ) tornado.web.Application.__init__(self, tornadoHandlers, **settings) Log.info("Tracker has started")
def cli( config_file: str, stmgr_type: str, name: str, rootpath: str, tunnelhost: str, hostport: str, port: int, verbose: bool, ) -> None: """ A HTTP service for serving data about clusters. The statemanager's config from the given config file can be overrided using options on this executable. """ log_level = logging.DEBUG if verbose else logging.INFO log.configure(log_level) stmgr_override = { "type": stmgr_type, "name": name, "rootpath": rootpath, "tunnelhost": tunnelhost, "hostport": hostport, } config = Config(create_tracker_config(config_file, stmgr_override)) state.tracker = Tracker(config) state.tracker.sync_topologies() # this only returns when interrupted uvicorn.run(app, host="0.0.0.0", port=port, log_level=log_level) state.tracker.stop_sync() # non-daemon threads linger and stop the process for quitting, so signal # for cleaning up os.kill(os.getpid(), signal.SIGKILL)
def setUp(self): mock_config = Mock() mock_config.validate.return_value = True self.tracker = Tracker(mock_config)
def tracker(): mock_config = Mock() mock_config.validate.return_value = True return Tracker(mock_config)