Пример #1
0
    def __init__(self,
                 ip='127.0.0.1',
                 port=None,
                 registry=None,
                 logger=None,
                 events=None,
                 node_endpoint=None,
                 log_endpoint=None):
        self.zctx = zmq.Context.instance()
        self.ip = ip
        self.port = port
        self.node_endpoint = node_endpoint
        self.log_endpoint = log_endpoint
        self.endpoint = None
        self.bound = False

        self.recv_loop_greenlet = None
        self.channels = {}
        self.connections = {}
        self.pool = trace.Group()
        self.service_registry = registry
        self.event_system = events

        self.bind()
        self.identity = hashlib.md5(self.endpoint.encode('utf-8')).hexdigest()
        self.installed_services = {}
        self.installed_plugins = []
        self.error_hook = Hook()

        self.monitor = Monitor(self)

        self.install(DefaultInterface)
        registry.install(self)
        if events:
            events.install(self)
Пример #2
0
    def __init__(self,
                 rpc=None,
                 registry=None,
                 events=None,
                 log_endpoint=None,
                 service_name=None,
                 debug=False,
                 pool=None,
                 worker=False,
                 metrics=None):
        if pool is None:
            pool = trace.Group()
        if metrics is None:
            metrics = Aggregator()
        super(ServiceContainer, self).__init__(error_hook=Hook('error_hook'),
                                               pool=pool,
                                               metrics=metrics)
        self.log_endpoint = log_endpoint
        self.backdoor_endpoint = None
        self.service_name = service_name
        self.fqdn = socket.getfqdn()
        self.worker = worker

        self.http_request_hook = Hook('http_request_hook')

        self.server = rpc
        self.service_registry = registry
        self.events = events

        self.installed_interfaces = {}
        self.installed_plugins = []

        self.debug = debug

        self.metrics.add_tags(service=self.service_name, host=self.fqdn)
        self.monitor = self.install(MonitorPusher,
                                    aggregator=self.metrics,
                                    endpoint=rpc.ip,
                                    interval=5)

        if self.service_registry:
            self.add_component(self.service_registry)

        if self.events:
            self.add_component(self.events)
            self.events.install(self)

        self.add_component(rpc)
        rpc.request_handler = self.handle_request

        self.install_interface(DefaultInterface,
                               name='lymph',
                               builtin=True,
                               version=get_lymph_version())
Пример #3
0
    def __init__(self,
                 rpc=None,
                 registry=None,
                 events=None,
                 log_endpoint=None,
                 service_name=None,
                 debug=False,
                 monitor_endpoint=None,
                 pool=None):
        if pool is None:
            pool = trace.Group()
        super(ServiceContainer, self).__init__(error_hook=Hook('error_hook'),
                                               pool=pool)
        self.log_endpoint = log_endpoint
        self.backdoor_endpoint = None
        self.service_name = service_name
        self.fqdn = socket.getfqdn()

        self.server = rpc
        self.service_registry = registry
        self.event_system = events

        self.installed_interfaces = {}
        self.installed_plugins = []

        self.debug = debug
        self.monitor_endpoint = monitor_endpoint

        self.metrics_aggregator = Aggregator(self._get_metrics,
                                             service=self.service_name,
                                             host=self.fqdn)

        if self.service_registry:
            self.add_component(self.service_registry)

        if self.event_system:
            self.add_component(self.event_system)
            self.event_system.install(self)

        self.monitor = self.install(MonitorPusher,
                                    aggregator=self.metrics_aggregator,
                                    endpoint=self.monitor_endpoint,
                                    interval=5)

        self.add_component(rpc)
        rpc.request_handler = self.handle_request

        self.install_interface(DefaultInterface, name='lymph')