Генератор навантаження

Генератор навантаження базується на фреймворку для тестування навантаження Locust. Стандартно він буде імітувати користувачів, які запитують різні маршрути з фронтенду.

Сирці генератора навантаження

Трейси

Ініціалізація Трейсінгу

Оскільки цей сервіс є locustfile, SDK OpenTelemetry ініціалізується після виразів імпорту. Цей код створить постачальника трейсерів та встановить процесор відрізків для використання. Експортні точки доступу, атрибути ресурсів та імʼя сервісу автоматично встановлюються за допомогою змінних середовища OpenTelemetry.

tracer_provider = TracerProvider() trace.set_tracer_provider(tracer_provider) tracer_provider.add_span_processor(BatchSpanProcessor(OTLPSpanExporter()))

Додавання бібліотек інструментування

Щоб додати бібліотеки інструментування, потрібно імпортувати Instrumentor для кожної бібліотеки у вашому Python коді. Locust використовує бібліотеки Requests та URLLib3, тому ми імпортуємо їх Instrumentorʼи.

from opentelemetry.instrumentation.requests import RequestsInstrumentor from opentelemetry.instrumentation.urllib3 import URLLib3Instrumentor

У вашому коді перед використанням бібліотеки Instrumentor потрібно ініціалізувати, викликавши instrument().

RequestsInstrumentor().instrument() URLLib3Instrumentor().instrument()

Після ініціалізації кожен запит Locust для цього генератора навантаження матиме свій власний трейс з відрізком для кожної з бібліотек Requests та URLLib3.

Метрики

TBD

Логи

TBD

Baggage

OpenTelemetry Baggage використовується генератором навантаження для позначення того, що трейси синтетично згенеровані. Це робиться у функції on_start шляхом створення обʼєкта контексту, що містить елемент baggage, та асоціювання цього контексту для всіх завдань генератора навантаження.

ctx = baggage.set_baggage("synthetic_request", "true") context.attach(ctx)

Востаннє змінено June 5, 2025: [uk] spellchecking (8ca5a3a5)