Exemplo n.º 1
0
def run():
    parser = argparse.ArgumentParser()
    parser.add_argument(
        '--log_payloads',
        action='store_true',
        help='log request/response objects to open-tracing spans')
    parser.add_argument('--include_grpc_tags',
                        action='store_true',
                        help='set gRPC-specific tags on spans')
    args = parser.parse_args()

    config = Config(config={
        'sampler': {
            'type': 'const',
            'param': 1,
        },
        'logging': True,
    },
                    service_name='store-client')
    tracer = config.initialize_tracer()
    span_decorator = None
    if args.include_grpc_tags:
        span_decorator = StoreSpanDecorator()
    tracer_interceptor = open_tracing_client_interceptor(
        tracer, log_payloads=args.log_payloads, span_decorator=span_decorator)
    channel = grpc.insecure_channel('localhost:50051')
    channel = intercept_channel(channel, tracer_interceptor)
    stub = store_pb2.StoreStub(channel)

    read_and_execute(CommandExecuter(stub))

    time.sleep(2)
    tracer.close()
    time.sleep(2)
Exemplo n.º 2
0
    def _serving_service(self):
        """
        Creates or returns the gRPC Feast Serving Service Stub. If both `opentracing`
        and `grpcio-opentracing` are installed, an opentracing interceptor will be
        instantiated based on the global tracer.

        Returns: ServingServiceStub
        """
        if not self._serving_service_stub:
            channel = create_grpc_channel(
                url=self._config.get(opt.SERVING_URL),
                enable_ssl=self._config.getboolean(opt.SERVING_ENABLE_SSL),
                enable_auth=self._config.getboolean(opt.ENABLE_AUTH),
                ssl_server_cert_path=self._config.get(
                    opt.SERVING_SERVER_SSL_CERT),
                auth_metadata_plugin=self._auth_metadata,
                timeout=self._config.getint(opt.GRPC_CONNECTION_TIMEOUT),
            )
            try:
                import opentracing
                from grpc_opentracing import open_tracing_client_interceptor
                from grpc_opentracing.grpcext import intercept_channel

                interceptor = open_tracing_client_interceptor(
                    opentracing.global_tracer())
                channel = intercept_channel(channel, interceptor)
            except ImportError:
                pass
            self._serving_service_stub = ServingServiceStub(channel)
        return self._serving_service_stub
Exemplo n.º 3
0
def get_channel(host, port, enable_tracing=False):
    channel = grpc.insecure_channel(f'{host}:{port}')
    if enable_tracing:
        tracer_interceptor = open_tracing_client_interceptor(
            opentracing.global_tracer())
        channel = intercept_channel(channel, tracer_interceptor)
    return channel
Exemplo n.º 4
0
def run():
    config = Config(
        config={
            "sampler": {
                "type": "const",
                "param": 1
            },
            "logging": True
        },
        service_name="chat-client",
    )
    tracer = config.initialize_tracer()
    active_span_source = FixedActiveSpanSource()
    tracer_interceptor = open_tracing_client_interceptor(
        tracer, active_span_source=active_span_source, log_payloads=True)

    channel = grpc.insecure_channel("localhost:50051")
    channel = intercept_channel(channel, tracer_interceptor)
    stub = chat_pb2_grpc.ChatStub(channel)

    response = list_messages(tracer, active_span_source, stub)
    pprint(MessageToDict(response))

    time.sleep(2)
    tracer.close()
    time.sleep(2)
def run():
    parser = argparse.ArgumentParser()
    parser.add_argument(
        '--log_payloads',
        action='store_true',
        help='log request/response objects to open-tracing spans')
    args = parser.parse_args()

    config = Config(
        config={
            'sampler': {
                'type': 'const',
                'param': 1,
            },
            'logging': True,
        },
        service_name='trivial-client')
    tracer = config.initialize_tracer()
    tracer_interceptor = open_tracing_client_interceptor(
        tracer, log_payloads=args.log_payloads)
    channel = grpc.insecure_channel('localhost:50051')
    channel = intercept_channel(channel, tracer_interceptor)
    stub = command_line_pb2.CommandLineStub(channel)
    response = stub.Echo(command_line_pb2.CommandRequest(text='Hello, hello'))
    print(response.text)

    time.sleep(2)
    tracer.close()
    time.sleep(2)
Exemplo n.º 6
0
def run():
    parser = argparse.ArgumentParser()
    parser.add_argument(
        '--log_payloads',
        action='store_true',
        help='log request/response objects to open-tracing spans')
    args = parser.parse_args()

    config = Config(config={
        'sampler': {
            'type': 'const',
            'param': 1,
        },
        'logging': True,
    },
                    service_name='trivial-client')
    tracer = config.initialize_tracer()
    tracer_interceptor = open_tracing_client_interceptor(
        tracer, log_payloads=args.log_payloads)
    channel = grpc.insecure_channel('localhost:50051')
    channel = intercept_channel(channel, tracer_interceptor)
    stub = command_line_pb2.CommandLineStub(channel)
    response = stub.Echo(command_line_pb2.CommandRequest(text='Hello, hello'))
    print(response.text)

    time.sleep(2)
    tracer.close()
    time.sleep(2)
Exemplo n.º 7
0
def run():
    parser = argparse.ArgumentParser()
    parser.add_argument(
        '--log_payloads',
        action='store_true',
        help='log request/response objects to open-tracing spans')
    args = parser.parse_args()

    config = Config(config={
        'sampler': {
            'type': 'const',
            'param': 1,
        },
        'logging': True,
    },
                    service_name='integration-client')
    tracer = config.initialize_tracer()
    active_span_source = FixedActiveSpanSource()
    tracer_interceptor = open_tracing_client_interceptor(
        tracer,
        active_span_source=active_span_source,
        log_payloads=args.log_payloads)
    channel = grpc.insecure_channel('localhost:50051')
    channel = intercept_channel(channel, tracer_interceptor)
    stub = command_line_pb2.CommandLineStub(channel)

    echo(tracer, active_span_source, stub)

    time.sleep(2)
    tracer.close()
    time.sleep(2)
def run():
    parser = argparse.ArgumentParser()
    parser.add_argument(
        '--log_payloads',
        action='store_true',
        help='log request/response objects to open-tracing spans')
    args = parser.parse_args()

    config = Config(
        config={
            'sampler': {
                'type': 'const',
                'param': 1,
            },
            'logging': True,
        },
        service_name='integration-client')
    tracer = config.initialize_tracer()
    active_span_source = FixedActiveSpanSource()
    tracer_interceptor = open_tracing_client_interceptor(
        tracer,
        active_span_source=active_span_source,
        log_payloads=args.log_payloads)
    channel = grpc.insecure_channel('localhost:50051')
    channel = intercept_channel(channel, tracer_interceptor)
    stub = command_line_pb2.CommandLineStub(channel)

    echo(tracer, active_span_source, stub)

    time.sleep(2)
    tracer.close()
    time.sleep(2)
Exemplo n.º 9
0
def wrap_grpc_client_channel(channel):
    """Wraps a GRPC channel with tracing, given a global tracer has been registered"""
    if not opentracing.is_global_tracer_registered():
        raise Exception(
            "Global tracer has not been registered. Disable tracing or "
            "register a global tracer")

    interceptor = open_tracing_client_interceptor(
        opentracing.global_tracer(),
        active_span_source=RequestContextSpanSource())
    return intercept_channel(channel, interceptor)
Exemplo n.º 10
0
 def __init__(self,
              client_interceptors,
              server_interceptors,
              handler=Handler()):
     self.handler = handler
     self._server_pool = logging_pool.pool(2)
     self._server = grpcext.intercept_server(grpc.server(self._server_pool),
                                             *server_interceptors)
     port = self._server.add_insecure_port('[::]:0')
     self._server.add_generic_rpc_handlers(
         (_GenericHandler(self.handler), ))
     self._server.start()
     self.channel = grpcext.intercept_channel(
         grpc.insecure_channel('localhost:%d' % port), *client_interceptors)
Exemplo n.º 11
0
                'reporting_port': '6831',
            },
            'logging': True,
        },
        service_name='your-app-name-grpc',
        validate=True,
    )
    tracer = config.initialize_tracer()
    tracer_interceptor = open_tracing_client_interceptor(tracer)
    default_interceptor = DefaultInterceptors()
    # 测试 SayHello , :8001
    with grpc.insecure_channel("localhost:50051") as channel:
        try:
            old_intercept_channel = grpc.intercept_channel(channel, default_interceptor)

            trace_intercept_channel = intercept_channel(old_intercept_channel, tracer_interceptor)

            client = hello_pb2_grpc.HelloServerStub(trace_intercept_channel)

            request = hello_pb2.HelloRequest()
            request.username = "******"
            response, call = client.SayHello.with_call(
                request=request,
                metadata=(
                    ('initial-metadata-1', 'The value should be str'),
                    ('binary-metadata-bin',
                     b'With -bin surffix, the value can be bytes'),
                    ('accesstoken', 'gRPC Python is great'),
                ), timeout=3)

Exemplo n.º 12
0
from grpc import insecure_channel
from opentracing import global_tracer
from grpc_opentracing.grpcext import intercept_channel
from grpc_opentracing import open_tracing_client_interceptor

from utils import get_config
# from github_pb2 import Request
from github_pb2_grpc import GistStub

config = get_config('gist-client')
tracer = global_tracer()
tracer_interceptor = open_tracing_client_interceptor(tracer, log_payloads=True)
channel = insecure_channel('gist:50054')
channel = intercept_channel(channel, tracer_interceptor)
gist_stub = GistStub(channel)
# response = gist_stub.GetPublicGist(Request(request_id='foo'))
# print("Greeter client received: " + response.msg)
Exemplo n.º 13
0
 def _get_channel(self, service, stub):
     channel = grpc.insecure_channel(self.uri[service])
     if self.interceptor:
         logging.info(f'Tracing channel for {service}')
         channel = intercept_channel(channel, self.interceptor)
     return stub(channel)