def _convert_attribute_to_tag(key, attr): """Convert the attributes to jaeger tags.""" if isinstance(attr, bool): return jaeger.Tag(key=key, vBool=attr, vType=jaeger.TagType.BOOL) if isinstance(attr, str): return jaeger.Tag(key=key, vStr=attr, vType=jaeger.TagType.STRING) if isinstance(attr, int): return jaeger.Tag(key=key, vLong=attr, vType=jaeger.TagType.LONG) if isinstance(attr, float): return jaeger.Tag(key=key, vDouble=attr, vType=jaeger.TagType.DOUBLE) logger.warning("Could not serialize attribute %s:%r to tag", key, attr) return None
def _extract_logs_from_span(span): if not span.events: return None logs = [] for event in span.events: fields = _extract_tags(event.attributes) fields.append( jaeger.Tag(key="message", vType=jaeger.TagType.STRING, vStr=event.name)) event_timestamp_us = _nsec_to_usec_round(event.timestamp) logs.append( jaeger.Log(timestamp=int(event_timestamp_us), fields=fields)) return logs
def _get_bool_tag(key, val): return jaeger.Tag(key=key, vBool=val, vType=jaeger.TagType.BOOL)
def _get_string_tag(key, val): return jaeger.Tag(key=key, vStr=val, vType=jaeger.TagType.STRING)
def _get_long_tag(key, val): return jaeger.Tag(key=key, vLong=val, vType=jaeger.TagType.LONG)