aws_xray_sdk/core/models/traceid.py (13 lines of code) (raw):
import os
import time
import binascii
class TraceId:
"""
A trace ID tracks the path of a request through your application.
A trace collects all the segments generated by a single request.
A trace ID is required for a segment.
"""
VERSION = '1'
DELIMITER = '-'
def __init__(self):
"""
Generate a random trace id.
"""
self.start_time = int(time.time())
self.__number = binascii.b2a_hex(os.urandom(12)).decode('utf-8')
def to_id(self):
"""
Convert TraceId object to a string.
"""
return "%s%s%s%s%s" % (TraceId.VERSION, TraceId.DELIMITER,
format(self.start_time, 'x'),
TraceId.DELIMITER, self.__number)