コード例 #1
0
def baseplate_thrift_client(endpoint, client_span_observer=None):
    pool = ThriftConnectionPool(endpoint)

    context = RequestContext()
    server_span = ServerSpan(
        trace_id=1234,
        parent_id=2345,
        span_id=3456,
        flags=4567,
        sampled=1,
        name="example_service.example",
        context=context,
    )

    if client_span_observer:

        class TestServerSpanObserver(ServerSpanObserver):
            def on_child_span_created(self, span):
                span.register(client_span_observer)

        server_span.register(TestServerSpanObserver())

    edge_context_factory = make_edge_context_factory()
    edge_context = edge_context_factory.from_upstream(
        SERIALIZED_EDGECONTEXT_WITH_VALID_AUTH)
    edge_context.attach_context(context)

    context_factory = ThriftContextFactory(pool, TestService.Client)
    client = context_factory.make_object_for_context("example_service",
                                                     server_span)
    setattr(context, "example_service", client)

    yield context
コード例 #2
0
ファイル: core_tests.py プロジェクト: us1415/baseplate
    def test_null_child(self):
        mock_observer = mock.Mock(spec=ServerSpanObserver)
        mock_observer.on_child_span_created.return_value = None

        server_span = ServerSpan("trace", "parent", "id", "name")
        server_span.register(mock_observer)
        child_span = server_span.make_child("child_name")

        self.assertEqual(child_span.observers, [])
コード例 #3
0
ファイル: core_tests.py プロジェクト: reddit/baseplate
    def test_null_child(self):
        mock_observer = mock.Mock(spec=ServerSpanObserver)
        mock_observer.on_child_span_created.return_value = None

        server_span = ServerSpan("trace", "parent", "id", None, 0, "name")
        server_span.register(mock_observer)
        child_span = server_span.make_child("child_name")

        self.assertEqual(child_span.observers, [])
コード例 #4
0
ファイル: core_tests.py プロジェクト: pwildani/baseplate.py
    def test_make_local_span_copies_context(self, mock_getrandbits):
        mock_getrandbits.return_value = 0xCAFE
        mock_observer = mock.Mock(spec=ServerSpanObserver)
        mock_context = mock.Mock()
        mock_cloned_context = mock.Mock()
        mock_context.clone.return_value = mock_cloned_context

        server_span = ServerSpan("trace", "parent", "id", None, 0, "name", mock_context)
        server_span.register(mock_observer)
        local_span = server_span.make_child("test_op", local=True, component_name="test_component")
        self.assertNotEqual(local_span.context, mock_context)
コード例 #5
0
ファイル: core_tests.py プロジェクト: ckwang8128/baseplate
    def test_make_local_span_copies_context(self, mock_getrandbits):
        mock_getrandbits.return_value = 0xCAFE
        mock_observer = mock.Mock(spec=ServerSpanObserver)
        mock_context = mock.Mock()
        mock_cloned_context = mock.Mock(spec=WrappedRequestContext)
        mock_context.clone.return_value = mock_cloned_context

        server_span = ServerSpan("trace", "parent", "id", None, 0, "name", mock_context)
        server_span.register(mock_observer)
        local_span = server_span.make_child("test_op", local=True,
                                            component_name="test_component")
        self.assertNotEqual(local_span.context, mock_context)
コード例 #6
0
ファイル: core_tests.py プロジェクト: reddit/baseplate
    def test_make_child(self, mock_getrandbits):
        mock_getrandbits.return_value = 0xCAFE

        mock_observer = mock.Mock(spec=ServerSpanObserver)

        server_span = ServerSpan("trace", "parent", "id", None, 0, "name")
        server_span.register(mock_observer)
        child_span = server_span.make_child("child_name")

        self.assertEqual(child_span.name, "child_name")
        self.assertEqual(child_span.id, 0xCAFE)
        self.assertEqual(child_span.trace_id, "trace")
        self.assertEqual(child_span.parent_id, "id")
        self.assertEqual(mock_observer.on_child_span_created.call_count, 1)
        self.assertEqual(mock_observer.on_child_span_created.call_args,
            mock.call(child_span))
コード例 #7
0
ファイル: core_tests.py プロジェクト: us1415/baseplate
    def test_make_child(self, mock_getrandbits):
        mock_getrandbits.return_value = 0xCAFE

        mock_observer = mock.Mock(spec=ServerSpanObserver)

        server_span = ServerSpan("trace", "parent", "id", "name")
        server_span.register(mock_observer)
        child_span = server_span.make_child("child_name")

        self.assertEqual(child_span.name, "child_name")
        self.assertEqual(child_span.id, 0xCAFE)
        self.assertEqual(child_span.trace_id, "trace")
        self.assertEqual(child_span.parent_id, "id")
        self.assertEqual(mock_observer.on_child_span_created.call_count, 1)
        self.assertEqual(mock_observer.on_child_span_created.call_args,
                         mock.call(child_span))
コード例 #8
0
ファイル: core_tests.py プロジェクト: pwildani/baseplate.py
    def test_make_local_span(self, mock_getrandbits):
        mock_getrandbits.return_value = 0xCAFE
        mock_observer = mock.Mock(spec=ServerSpanObserver)
        mock_context = mock.Mock()
        mock_cloned_context = mock.Mock()
        mock_context.clone.return_value = mock_cloned_context

        server_span = ServerSpan("trace", "parent", "id", None, 0, "name", mock_context)
        server_span.register(mock_observer)
        local_span = server_span.make_child("test_op", local=True, component_name="test_component")

        self.assertEqual(local_span.name, "test_op")
        self.assertEqual(local_span.id, 0xCAFE)
        self.assertEqual(local_span.trace_id, "trace")
        self.assertEqual(local_span.parent_id, "id")
        self.assertEqual(mock_observer.on_child_span_created.call_count, 1)
        self.assertEqual(mock_observer.on_child_span_created.call_args, mock.call(local_span))
コード例 #9
0
 def setUp(self):
     super(TraceServerSpanObserverTests, self).setUp()
     self.recorder = NullRecorder()
     self.mock_context = mock.Mock()
     self.span = ServerSpan("test-id", "test-parent-id", "test-span-id",
                            None, 0, "test", self.mock_context)
     self.test_server_span_observer = TraceServerSpanObserver(
         "test-service", "test-hostname", self.span, self.recorder)
コード例 #10
0
 def test_register_server_span_observer(self):
     baseplate_observer = TraceBaseplateObserver('test-service')
     context_mock = mock.Mock()
     span = ServerSpan('test-id', 'test-parent-id', 'test-span-id', True, 0,
                       'test')
     baseplate_observer.on_server_span_created(context_mock, span)
     self.assertEqual(len(span.observers), 1)
     self.assertEqual(type(span.observers[0]), TraceServerSpanObserver)
コード例 #11
0
 def test_no_tracing_without_sampling(self):
     client = make_client("test-service", sample_rate=0)
     baseplate_observer = TraceBaseplateObserver(client)
     context_mock = mock.Mock()
     span = ServerSpan('test-id', 'test-parent-id', 'test-span-id', False,
                       0, 'test', self.mock_context)
     baseplate_observer.on_server_span_created(context_mock, span)
     self.assertEqual(len(span.observers), 0)
コード例 #12
0
 def test_register_server_span_observer(self):
     client = make_client("test-service")
     baseplate_observer = TraceBaseplateObserver(client)
     context_mock = mock.Mock()
     span = ServerSpan("test-id", "test-parent-id", "test-span-id", True, 0,
                       "test", self.mock_context)
     baseplate_observer.on_server_span_created(context_mock, span)
     self.assertEqual(len(span.observers), 1)
     self.assertEqual(type(span.observers[0]), TraceServerSpanObserver)
コード例 #13
0
ファイル: tracing_tests.py プロジェクト: bsimpson63/baseplate
 def setUp(self):
     self.recorder = NullRecorder()
     self.mock_context = mock.Mock()
     self.span = ServerSpan('test-id',
                            'test-parent-id',
                            'test-span-id',
                            None,
                            0,
                            'test',
                            self.mock_context)
コード例 #14
0
 def setUp(self):
     self.recorder = NullRecorder()
     self.span = ServerSpan('test-id', 'test-parent-id', 'test-span-id',
                            None, 0, 'test')
     self.test_server_span_observer = TraceServerSpanObserver(
         'test-service',
         'test-hostname',
         self.span,
         self.recorder,
     )
コード例 #15
0
ファイル: core_tests.py プロジェクト: ckwang8128/baseplate
    def test_make_local_span(self, mock_getrandbits):
        mock_getrandbits.return_value = 0xCAFE
        mock_observer = mock.Mock(spec=ServerSpanObserver)
        mock_context = mock.Mock()
        mock_cloned_context = mock.Mock(spec=WrappedRequestContext)
        mock_context.clone.return_value = mock_cloned_context

        server_span = ServerSpan("trace", "parent", "id", None, 0, "name", mock_context)
        server_span.register(mock_observer)
        local_span = server_span.make_child("test_op", local=True,
                                            component_name="test_component")

        self.assertEqual(local_span.name, "test_op")
        self.assertEqual(local_span.id, 0xCAFE)
        self.assertEqual(local_span.trace_id, "trace")
        self.assertEqual(local_span.parent_id, "id")
        self.assertEqual(mock_observer.on_child_span_created.call_count, 1)
        self.assertEqual(mock_observer.on_child_span_created.call_args,
                         mock.call(local_span))
コード例 #16
0
 def setUp(self):
     super(TraceLocalSpanObserverTests, self).setUp()
     self.recorder = NullRecorder()
     self.mock_context = mock.Mock()
     self.span = ServerSpan('test-id',
                            'test-parent-id',
                            'test-span-id',
                            None,
                            0,
                            'test',
                            self.mock_context)
コード例 #17
0
def make_test_server_span(context=None):
    if not context:
        context = mock.Mock()
    return ServerSpan(1, 2, 3, None, 0, "name", context)