NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

tracing.py (1358B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\eveProto\tracing.py
      2 from __future__ import absolute_import
      3 import binascii
      4 import logging
      5 import six
      6 logger = logging.getLogger(__name__)
      7 
      8 def bytes_to_hex(id_bytes):
      9     return six.ensure_str(binascii.b2a_hex(id_bytes))
     10 
     11 
     12 def hex_to_bytes(id_hex):
     13     return binascii.a2b_hex(id_hex)
     14 
     15 
     16 def propagate_trace(protobuf_message, trace_id, parent_span_id, sampled, sample_rate):
     17     if trace_id is not None:
     18         protobuf_message.trace_context.trace_id = hex_to_bytes(trace_id)
     19         protobuf_message.trace_context.parent_id = hex_to_bytes(parent_span_id)
     20         protobuf_message.trace_context.flags.sampled = sampled
     21         protobuf_message.trace_context.state.sample_rate = sample_rate
     22 
     23 
     24 def extract_trace_context(protobuf_message):
     25     trace_id = bytes_to_hex(protobuf_message.trace_context.trace_id) if protobuf_message.trace_context.trace_id else None
     26     parent_span_id = bytes_to_hex(protobuf_message.trace_context.parent_id) if protobuf_message.trace_context.parent_id else None
     27     sampled = protobuf_message.trace_context.flags.sampled if trace_id is not None else None
     28     sample_rate = protobuf_message.trace_context.state.sample_rate
     29     if sample_rate == 0:
     30         sample_rate = 1
     31     return (trace_id,
     32      parent_span_id,
     33      sampled,
     34      sample_rate)