def get_grpc_server(user_model, seldon_metrics, annotations={}, trace_interceptor=None): seldon_model = SeldonModelGRPC(user_model, seldon_metrics) options = [] if ANNOTATION_GRPC_MAX_MSG_SIZE in annotations: max_msg = int(annotations[ANNOTATION_GRPC_MAX_MSG_SIZE]) logger.info("Setting grpc max message and receive length to %d", max_msg) options.append(("grpc.max_message_length", max_msg)) options.append(("grpc.max_send_message_length", max_msg)) options.append(("grpc.max_receive_message_length", max_msg)) server = grpc.server(futures.ThreadPoolExecutor(max_workers=10), options=options) if trace_interceptor: from grpc_opentracing.grpcext import intercept_server server = intercept_server(server, trace_interceptor) prediction_pb2_grpc.add_GenericServicer_to_server(seldon_model, server) prediction_pb2_grpc.add_ModelServicer_to_server(seldon_model, server) prediction_pb2_grpc.add_TransformerServicer_to_server(seldon_model, server) prediction_pb2_grpc.add_OutputTransformerServicer_to_server( seldon_model, server) prediction_pb2_grpc.add_CombinerServicer_to_server(seldon_model, server) prediction_pb2_grpc.add_RouterServicer_to_server(seldon_model, server) prediction_pb2_grpc.add_SeldonServicer_to_server(seldon_model, server) return server
def get_grpc_server(user_model, seldon_metrics, annotations={}, trace_interceptor=None, num_threads=1): seldon_model = SeldonModelGRPC(user_model, seldon_metrics) options = [ ("grpc.so_reuseport", 1), ] if ANNOTATION_GRPC_MAX_MSG_SIZE in annotations: max_msg = int(annotations[ANNOTATION_GRPC_MAX_MSG_SIZE]) logger.info("Setting grpc max message and receive length to %d", max_msg) options.append(("grpc.max_message_length", max_msg)) options.append(("grpc.max_send_message_length", max_msg)) options.append(("grpc.max_receive_message_length", max_msg)) server = grpc.server(futures.ThreadPoolExecutor(max_workers=num_threads), options=options) if trace_interceptor: from grpc_opentracing.grpcext import intercept_server server = intercept_server(server, trace_interceptor) prediction_pb2_grpc.add_GenericServicer_to_server(seldon_model, server) prediction_pb2_grpc.add_ModelServicer_to_server(seldon_model, server) prediction_pb2_grpc.add_TransformerServicer_to_server(seldon_model, server) prediction_pb2_grpc.add_OutputTransformerServicer_to_server( seldon_model, server) prediction_pb2_grpc.add_CombinerServicer_to_server(seldon_model, server) prediction_pb2_grpc.add_RouterServicer_to_server(seldon_model, server) prediction_pb2_grpc.add_SeldonServicer_to_server(seldon_model, server) SERVICE_NAMES = ( prediction_pb2.DESCRIPTOR.services_by_name["Generic"].full_name, prediction_pb2.DESCRIPTOR.services_by_name["Model"].full_name, prediction_pb2.DESCRIPTOR.services_by_name["Router"].full_name, prediction_pb2.DESCRIPTOR.services_by_name["Transformer"].full_name, prediction_pb2.DESCRIPTOR.services_by_name["OutputTransformer"]. full_name, prediction_pb2.DESCRIPTOR.services_by_name["Combiner"].full_name, prediction_pb2.DESCRIPTOR.services_by_name["Seldon"].full_name, reflection.SERVICE_NAME, ) reflection.enable_server_reflection(SERVICE_NAMES, server) return server