导入
分布式系统
了解分布式系统是什么以及调试它们所面临的挑战。
...
...
1from opentelemetry import trace 2from opentelemetry.sdk.trace import TracerProvider 3from opentelemetry.sdk.trace.export import ConsoleSpanExporter, SimpleSpanProcessor 4 5# 设置 TracerProvider 6tracer_provider = TracerProvider() 7trace.set_tracer_provider(tracer_provider) 8 9# 配置 ConsoleSpanExporter 将追踪数据输出到控制台 10span_processor = SimpleSpanProcessor(ConsoleSpanExporter()) 11tracer_provider.add_span_processor(span_processor) 12 13# 初始化一个 tracer 14tracer = trace.get_tracer(__name__) 15 16# 定义一个函数来模拟获取数据 17def fetch_data(tracer): 18 with tracer.start_as_current_span("fetch_data"): 19 # 模拟获取数据的延迟 20 print("正在获取数据...") 21 return {"data": "一些数据"} 22 23# 定义一个函数来处理获取的数据 24def process_data(tracer, data): 25 with tracer.start_as_current_span("process_data"): 26 # 模拟数据处理 27 print("正在处理数据...") 28 processed_data = data.upper() 29 return processed_data 30 31# 定义一个函数来保存处理后的数据 32def save_data(tracer, data): 33 with tracer.start_as_current_span("save_data"): 34 # 模拟保存数据 35 print(f"正在保存数据: {data}") 36 37# 主函数,使用定义的操作 38def main(tracer): 39 with tracer.start_as_current_span("main"): 40 data = fetch_data(tracer) 41 processed_data = process_data(tracer, data["data"]) 42 save_data(tracer, processed_data) 43 44if __name__ == "__main__": 45 main(tracer)