def _build_metadata(self):
     data = {
         "service": self.get_service_info(),
         "process": self.get_process_info(),
         "system": self.get_system_info(),
     }
     if self.config.global_labels:
         data["labels"] = enforce_label_format(self.config.global_labels)
     return data
Exemple #2
0
 def build_metadata(self):
     data = {
         "service": self.get_service_info(),
         "process": self.get_process_info(),
         "system": self.get_system_info(),
         "cloud": self.get_cloud_info(),
     }
     if not data["cloud"]:
         data.pop("cloud")
     if self.config.global_labels:
         data["labels"] = enforce_label_format(self.config.global_labels)
     return data
Exemple #3
0
def test_enforce_label_format():
    class MyObj(object):
        def __str__(self):
            return "OK"

        def __unicode__(self):
            return u"OK"

    labels = enforce_label_format(
        {'a.b*c"d': MyObj(), "x": "x" * 1025, "int": 1, "float": 1.1, "decimal": decimal.Decimal("1")}
    )
    assert labels == {"a_b_c_d": "OK", "x": "x" * 1023 + u"…", "int": 1, "float": 1.1, "decimal": decimal.Decimal("1")}
    def label(self, **labels):
        """
        Label this span with one or multiple key/value labels. Keys should be strings, values can be strings, booleans,
        or numerical values (int, float, Decimal)

            span_obj.label(key1="value1", key2=True, key3=42)

        Note that keys will be dedotted, replacing dot (.), star (*) and double quote (") with an underscore (_)

        :param labels: key/value pairs of labels
        :return: None
        """
        labels = encoding.enforce_label_format(labels)
        self.labels.update(labels)