def test_sampling_attributes(self): decision_attributes = { "sampler-attr": "sample-val", "attr-in-both": "decision-attr", } tracer_provider = trace.TracerProvider( sampling.StaticSampler( sampling.Decision(sampled=True, attributes=decision_attributes))) self.tracer = tracer_provider.get_tracer(__name__) with self.tracer.start_as_current_span("root2") as root: self.assertEqual(len(root.attributes), 2) self.assertEqual(root.attributes["sampler-attr"], "sample-val") self.assertEqual(root.attributes["attr-in-both"], "decision-attr") attributes = { "attr-key": "val", "attr-key2": "val2", "attr-in-both": "span-attr", } with self.tracer.start_as_current_span("root2", attributes=attributes) as root: self.assertEqual(len(root.attributes), 4) self.assertEqual(root.attributes["attr-key"], "val") self.assertEqual(root.attributes["attr-key2"], "val2") self.assertEqual(root.attributes["sampler-attr"], "sample-val") self.assertEqual(root.attributes["attr-in-both"], "decision-attr")
def test_attributes(self): with self.tracer.start_as_current_span("root") as root: root.set_attribute("component", "http") root.set_attribute("http.method", "GET") root.set_attribute("http.url", "https://example.com:779/path/12/?q=d#123") root.set_attribute("http.status_code", 200) root.set_attribute("http.status_text", "OK") root.set_attribute("misc.pi", 3.14) # Setting an attribute with the same key as an existing attribute # SHOULD overwrite the existing attribute's value. root.set_attribute("attr-key", "attr-value1") root.set_attribute("attr-key", "attr-value2") self.assertEqual(len(root.attributes), 7) self.assertEqual(root.attributes["component"], "http") self.assertEqual(root.attributes["http.method"], "GET") self.assertEqual( root.attributes["http.url"], "https://example.com:779/path/12/?q=d#123", ) self.assertEqual(root.attributes["http.status_code"], 200) self.assertEqual(root.attributes["http.status_text"], "OK") self.assertEqual(root.attributes["misc.pi"], 3.14) self.assertEqual(root.attributes["attr-key"], "attr-value2") attributes = { "attr-key": "val", "attr-key2": "val2", "attr-in-both": "span-attr", } with self.tracer.start_as_current_span("root2", attributes=attributes) as root: self.assertEqual(len(root.attributes), 3) self.assertEqual(root.attributes["attr-key"], "val") self.assertEqual(root.attributes["attr-key2"], "val2") self.assertEqual(root.attributes["attr-in-both"], "span-attr") decision_attributes = { "sampler-attr": "sample-val", "attr-in-both": "decision-attr", } self.tracer.sampler = sampling.StaticSampler( sampling.Decision(sampled=True, attributes=decision_attributes)) with self.tracer.start_as_current_span("root2") as root: self.assertEqual(len(root.attributes), 2) self.assertEqual(root.attributes["sampler-attr"], "sample-val") self.assertEqual(root.attributes["attr-in-both"], "decision-attr") attributes = { "attr-key": "val", "attr-key2": "val2", "attr-in-both": "span-attr", } with self.tracer.start_as_current_span("root2", attributes=attributes) as root: self.assertEqual(len(root.attributes), 4) self.assertEqual(root.attributes["attr-key"], "val") self.assertEqual(root.attributes["attr-key2"], "val2") self.assertEqual(root.attributes["sampler-attr"], "sample-val") self.assertEqual(root.attributes["attr-in-both"], "decision-attr")