def test_multi_valued_tags(self):
     """Test Multi-valued Tags."""
     tracer = WavefrontTracer(ConsoleReporter(), self.application_tags)
     span = tracer.start_span("test_op",
                              tags=[("key1", "val1"), ("key1", "val2")])
     self.assertIsNotNone(span)
     self.assertIsNotNone(span.get_tags())
     self.assertIsNotNone(span.get_tags_as_list())
     self.assertIsNotNone(span.get_tags_as_map())
     self.assertEqual(6, len(span.get_tags_as_map()))
     self.assertTrue("app" in span.get_tags_as_map().get("application"))
     self.assertTrue("service" in span.get_tags_as_map().get("service"))
     self.assertTrue("us-west-1" in span.get_tags_as_map().get("cluster"))
     self.assertTrue("primary" in span.get_tags_as_map().get("shard"))
     self.assertTrue("custom_v" in span.get_tags_as_map().get("custom_k"))
     self.assertTrue("val1" in span.get_tags_as_map().get("key1"))
     self.assertTrue("val2" in span.get_tags_as_map().get("key1"))
     span.finish()
     tracer.close()
Exemplo n.º 2
0
    def test_forced_sampling(self):
        """Test span with forced sampling."""
        tracer = WavefrontTracer(ConsoleReporter(), self.application_tags,
                                 samplers=[ConstantSampler(False)])
        span = tracer.start_span('test_op')
        self.assertIsNotNone(span)
        self.assertIsNotNone(span.context)
        self.assertIsNotNone(span.context.get_sampling_decision())
        self.assertFalse(span.context.get_sampling_decision())

        span.set_tag(opentracing.ext.tags.SAMPLING_PRIORITY, 1)
        self.assertIsNotNone(span.context.get_sampling_decision())
        self.assertTrue(span.context.get_sampling_decision())

        span = tracer.start_span('test_op')
        self.assertIsNotNone(span)
        self.assertIsNotNone(span.context)
        self.assertIsNotNone(span.context.get_sampling_decision())
        self.assertFalse(span.context.get_sampling_decision())

        span.set_tag(opentracing.ext.tags.ERROR, True)
        self.assertIsNotNone(span.context.get_sampling_decision())
        self.assertTrue(span.context.get_sampling_decision())

        span = tracer.start_span('test_op')
        self.assertIsNotNone(span)
        self.assertIsNotNone(span.context)
        self.assertIsNotNone(span.context.get_sampling_decision())
        self.assertFalse(span.context.get_sampling_decision())

        span.set_tag("debug", True)
        self.assertIsNotNone(span.context.get_sampling_decision())
        self.assertTrue(span.context.get_sampling_decision())

        span = tracer.start_span('test_op')
        self.assertIsNotNone(span)
        self.assertIsNotNone(span.context)
        self.assertIsNotNone(span.context.get_sampling_decision())
        self.assertFalse(span.context.get_sampling_decision())

        span.set_tag("debug", "true")
        self.assertIsNotNone(span.context.get_sampling_decision())
        self.assertTrue(span.context.get_sampling_decision())
 def test_multi_valued_tags(self):
     """Test Multi-valued Tags."""
     tracer = WavefrontTracer(ConsoleReporter(), self.application_tags)
     span = tracer.start_span('test_op',
                              tags=[('key1', 'val1'), ('key1', 'val2'),
                                    ('application', 'new_app')])
     self.assertIsNotNone(span)
     self.assertIsNotNone(span.get_tags())
     self.assertIsNotNone(span.get_tags_as_list())
     self.assertIsNotNone(span.get_tags_as_map())
     self.assertEqual(7, len(span.get_tags_as_map()))
     self.assertTrue('new_app' in span.get_tags_as_map().get('application'))
     self.assertTrue('service' in span.get_tags_as_map().get('service'))
     self.assertTrue('us-west-1' in span.get_tags_as_map().get('cluster'))
     self.assertTrue('primary' in span.get_tags_as_map().get('shard'))
     self.assertTrue('custom_v' in span.get_tags_as_map().get('custom_k'))
     self.assertTrue('val1' in span.get_tags_as_map().get('key1'))
     self.assertTrue('val2' in span.get_tags_as_map().get('key1'))
     span.finish()
     tracer.close()
Exemplo n.º 4
0
 def test_global_tags(self):
     """Test Global Tags."""
     global_tags = [('foo1', 'bar1'), ('foo2', 'bar2')]
     tracer = WavefrontTracer(ConsoleReporter(), self.application_tags,
                              global_tags)
     span = tracer.start_span(operation_name='test_op',
                              tags=[('foo3', 'bar3')])
     self.assertIsNotNone(span)
     self.assertIsNotNone(span.get_tags())
     self.assertIsNotNone(span.get_tags_as_list())
     self.assertIsNotNone(span.get_tags_as_map())
     self.assertEqual(9, len(span.get_tags()))
     self.assertTrue('app' in span.get_tags_as_map().get('application'))
     self.assertTrue('service' in span.get_tags_as_map().get('service'))
     self.assertTrue('us-west-1' in span.get_tags_as_map().get('cluster'))
     self.assertTrue('primary' in span.get_tags_as_map().get('shard'))
     self.assertTrue('custom_v' in span.get_tags_as_map().get('custom_k'))
     self.assertTrue('bar1' in span.get_tags_as_map().get('foo1'))
     self.assertTrue('bar2' in span.get_tags_as_map().get('foo2'))
     self.assertTrue('bar3' in span.get_tags_as_map().get('foo3'))
     span.finish()
     tracer.close()
Exemplo n.º 5
0
 def test_global_tags(self):
     """Test Global Tags."""
     global_tags = [("foo1", "bar1"), ("foo2", "bar2")]
     tracer = WavefrontTracer(ConsoleReporter(), self.application_tags,
                              global_tags)
     span = tracer.start_span(operation_name="test_op",
                              tags=[("foo3", "bar3")])
     self.assertIsNotNone(span)
     self.assertIsNotNone(span.get_tags())
     self.assertIsNotNone(span.get_tags_as_list())
     self.assertIsNotNone(span.get_tags_as_map())
     self.assertEqual(8, len(span.get_tags()))
     self.assertTrue("app" in span.get_tags_as_map().get("application"))
     self.assertTrue("service" in span.get_tags_as_map().get("service"))
     self.assertTrue("us-west-1" in span.get_tags_as_map().get("cluster"))
     self.assertTrue("primary" in span.get_tags_as_map().get("shard"))
     self.assertTrue("custom_v" in span.get_tags_as_map().get("custom_k"))
     self.assertTrue("bar1" in span.get_tags_as_map().get("foo1"))
     self.assertTrue("bar2" in span.get_tags_as_map().get("foo2"))
     self.assertTrue("bar3" in span.get_tags_as_map().get("foo3"))
     span.finish()
     tracer.close()
    def test_ignore_active_span(self):
        """Test Ignore Active Span."""
        tracer = WavefrontTracer(ConsoleReporter(), self.application_tags)
        scope = tracer.start_active_span('test_op')
        active_span = scope.span

        # Span created with ignore_active_span=False by default.
        child_span = tracer.start_span(operation_name='child_op',
                                       ignore_active_span=False)
        active_trace_id = str(active_span.trace_id)
        child_trace_id = str(child_span.trace_id)
        self.assertEqual(active_trace_id, child_trace_id)
        child_span.finish()

        # Span created with ignore_active_span=True.
        child_span = tracer.start_span(operation_name='child_op',
                                       ignore_active_span=True)
        child_trace_id = str(child_span.trace_id)
        self.assertNotEqual(active_trace_id, child_trace_id)
        child_span.finish()

        scope.close()
        tracer.close()
Exemplo n.º 7
0
proxy_client = wavefront_sdk.WavefrontProxyClient(
        host='localhost',
        metrics_port=2878,
        distribution_port=40000,
        tracing_port=30000
        # internal_flush=2  not working 
)

proxy_reporter = WavefrontSpanReporter(client=proxy_client, source='ALEXH_tracing-example')

# Create Composite reporter.
# Create Tracer with Composite Reporter.
# CompositeReporter takes a list of other reporters and invokes them one by one
# Use ConsoleReporter to output span data to console
composite_reporter = CompositeReporter(proxy_reporter, ConsoleReporter())   



tracer = WavefrontTracer(reporter=composite_reporter, application_tags=application_tag)


global_tags = [('global_key', 'global_val')]


scope = tracer.start_active_span(
    	operation_name='span1',
        tags=global_tags,
        ignore_active_span=True,
        finish_on_close=True
)
Exemplo n.º 8
0
        max_queue_size=50000,
        batch_size=10000,
        flush_interval_seconds=5)
    direct_reporter = WavefrontSpanReporter(direct_client)

    # Create Wavefront Span Reporter using Wavefront Proxy Client.
    proxy_client = WavefrontProxyClient(host="localhost",
                                        tracing_port=30000,
                                        distribution_port=40000,
                                        metrics_port=2878)
    proxy_reporter = WavefrontSpanReporter(proxy_client)

    # Create Composite reporter.
    # Use ConsoleReporter to output span data to console.
    composite_reporter = CompositeReporter(proxy_reporter, direct_reporter,
                                           ConsoleReporter())

    # Create Tracer with Composite Reporter.
    tracer = WavefrontTracer(reporter=composite_reporter)

    global_tags = [("global_key", "global_val")]

    # Create span1, return a newly started and activated Scope.
    scope = tracer.start_active_span(operation_name="span1",
                                     tags=global_tags,
                                     ignore_active_span=True,
                                     finish_on_close=True)
    span1 = scope.span
    time.sleep(1)

    # Create span2, span3 child of span1.