Exemplo n.º 1
0
    def start(self):
        """
        Start an REST server at the specific port on the instance or parameter.
        """
        track_server('flask')

        self.app.run(port=self.port)
Exemplo n.º 2
0
    def start(self):
        """
        Start an REST server at the specific port on the instance or parameter.
        """
        track_server('flask')

        # Bentoml api service is not thread safe.
        # Flask dev server enabled threaded by default, disable it.
        self.app.run(port=self.port, threaded=False)
Exemplo n.º 3
0
def start_yatai_service_grpc_server(db_url, repo_base_url, grpc_port, ui_port,
                                    with_ui):
    track_server('yatai-service-grpc-server')
    yatai_service = get_yatai_service(db_url=db_url,
                                      repo_base_url=repo_base_url)
    server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
    add_YataiServicer_to_server(yatai_service, server)
    debug_mode = config().getboolean('core', 'debug')
    if debug_mode:
        try:
            logger.debug('Enabling gRPC server reflection for debugging')
            from grpc_reflection.v1alpha import reflection
            from bentoml.proto import yatai_service_pb2

            SERVICE_NAMES = (
                yatai_service_pb2.DESCRIPTOR.services_by_name['Yatai'].
                full_name,
                reflection.SERVICE_NAME,
            )
            reflection.enable_server_reflection(SERVICE_NAMES, server)
        except ImportError:
            logger.debug(
                'Failed enabling gRPC server reflection, missing required package: '
                '"pip install grpcio-reflection"')
    server.add_insecure_port(f'[::]:{grpc_port}')
    server.start()
    if with_ui:
        web_ui_log_path = os.path.join(
            config("logging").get("BASE_LOG_DIR"),
            config('logging').get("yatai_web_server_log_filename"),
        )

        ensure_node_available_or_raise()
        yatai_grpc_server_addess = f'localhost:{grpc_port}'
        async_start_yatai_service_web_ui(yatai_grpc_server_addess, ui_port,
                                         web_ui_log_path, debug_mode)

    # We don't import _echo function from click_utils because of circular dep
    click.echo(
        f'* Starting BentoML YataiService gRPC Server\n'
        f'* Debug mode: { "on" if debug_mode else "off"}\n'
        f'* Web UI: {f"running on http://127.0.0.1:{ui_port}" if with_ui else "off"}\n'
        f'* Running on 127.0.0.1:{grpc_port} (Press CTRL+C to quit)\n'
        f'* Usage: `bentoml config set yatai_service.url=127.0.0.1:{grpc_port}`\n'
        f'* Help and instructions: '
        f'https://docs.bentoml.org/en/latest/concepts/yatai_service.html\n'
        f'{f"* Web server log can be found here: {web_ui_log_path}" if with_ui else ""}'
    )

    try:
        while True:
            time.sleep(_ONE_DAY_IN_SECONDS)
    except KeyboardInterrupt:
        logger.info("Terminating YataiService gRPC server..")
        server.stop(grace=None)
Exemplo n.º 4
0
 def async_start(self, port):
     """
     Start an micro batch server at the specific port on the instance or parameter.
     """
     track_server('marshal')
     marshal_proc = multiprocessing.Process(
         target=self.fork_start_app,
         kwargs=dict(port=port),
         daemon=True,
     )
     marshal_proc.start()
     logger.info("Running micro batch service on :%d", port)
Exemplo n.º 5
0
 def async_start(self):
     """
     Start an micro batch server at the specific port on the instance or parameter.
     """
     track_server('marshal')
     marshal_proc = multiprocessing.Process(
         target=self.marshal_app.fork_start_app,
         kwargs=dict(port=self.port),
         daemon=True,
     )
     # TODO: make sure child process dies when parent process is killed.
     marshal_proc.start()
     marshal_logger.info("Running micro batch service on :%d", self.port)
Exemplo n.º 6
0
def start_yatai_service_grpc_server(yatai_service, port):
    track_server('yatai-service-grpc-server')
    server = grpc.server(futures.ThreadPoolExecutor(max_workers=10))
    add_YataiServicer_to_server(yatai_service, server)
    debug_mode = config().getboolean('core', 'debug')
    if debug_mode:
        try:
            logger.debug('Enabling gRPC server reflection for debugging')
            from grpc_reflection.v1alpha import reflection
            from bentoml.proto import yatai_service_pb2

            SERVICE_NAMES = (
                yatai_service_pb2.DESCRIPTOR.services_by_name['Yatai'].
                full_name,
                reflection.SERVICE_NAME,
            )
            reflection.enable_server_reflection(SERVICE_NAMES, server)
        except ImportError:
            logger.debug(
                'Failed enabling gRPC server reflection, missing required package: '
                '"pip install grpcio-reflection"')

    server.add_insecure_port(f'[::]:{port}')
    server.start()
    _echo(f'* Starting BentoML YataiService gRPC Server\n'
          f'* Debug mode: { "on" if debug_mode else "off"}\n'
          f'* Running on 127.0.0.1:{port} (Press CTRL+C to quit)\n'
          f'* Usage: `bentoml config set yatai_service.url=127.0.0.1:{port}`\n'
          f'* Help and instructions: '
          f'https://docs.bentoml.org/en/latest/concepts/yatai_service.html')
    try:
        while True:
            time.sleep(_ONE_DAY_IN_SECONDS)
    except KeyboardInterrupt:
        _echo("Terminating YataiService gRPC server..")
        server.stop(grace=None)
 def start(self):
     track_server('sagemaker')
     self.app.run(port=BentoSagemakerServer._DEFAULT_PORT)
Exemplo n.º 8
0
 def run(self):
     track_server('gunicorn', {"number_of_workers": self.num_of_workers})
     super(GunicornBentoServer, self).run()
 def run(self):
     track_server('gunicorn', {"number_of_workers": self.cfg.workers})
     self.setup_prometheus_multiproc_dir()
     super(GunicornBentoServer, self).run()
Exemplo n.º 10
0
 def start(self):
     track_server('sagemaker')
     self.app.run(port=AWS_SAGEMAKER_SERVE_PORT)
Exemplo n.º 11
0
 def run(self):
     track_server('gunicorn-microbatch',
                  {"number_of_workers": self.cfg.workers})
     super(GunicornMarshalServer, self).run()
Exemplo n.º 12
0
 def run(self):
     track_server('gunicorn-microbatch',
                  {"number_of_workers": self.cfg.workers})
     setup_prometheus_multiproc_dir(self.prometheus_lock)
     super(GunicornMarshalServer, self).run()