负载生成器
负载生成器是基于Python负载测试框架Locust开发的。默认情况下,它会模拟用户从前端请求多个不同的路由。
链路追踪
初始化追踪
由于这个服务是一个locustfile文件,所以在导入语句之后初始化OpenTelemetry SDK。以下代码将创建一个追踪器提供程序,并建立一个使用的Span处理器。导出端点、资源属性和服务名称均使用OpenTelemetry环境变量进行自动设置。
tracer_provider = TracerProvider()
trace.set_tracer_provider(tracer_provider)
tracer_provider.add_span_processor(BatchSpanProcessor(OTLPSpanExporter()))
添加仪表库
要添加仪表库,您需要在Python代码中为每个库导入其Instrumentor。Locust使用Requests
和URLLib3
库,因此我们将导入它们的Instrumentors。
from opentelemetry.instrumentation.requests import RequestsInstrumentor
from opentelemetry.instrumentation.urllib3 import URLLib3Instrumentor
在使用库之前,需要调用instrument()
来初始化Instrumentor。
RequestsInstrumentor().instrument()
URLLib3Instrumentor().instrument()
一旦初始化完成,此负载生成器中的每个Locust请求都会有自己的追踪,其中包含Requests
和URLLib3
库的跨度。
指标
待定
日志
待定
Baggage
负载生成器使用OpenTelemetry Baggage来指示追踪是合成生成的。在on_start
函数中,通过创建一个包含Baggage项的上下文对象,并将该上下文与负载生成器的所有任务关联,来实现这一点。
ctx = baggage.set_baggage("synthetic_request", "true")
context.attach(ctx)
最后修改 December 10, 2023: translate (a4350d6e)