Генератор навантаження
Генератор навантаження базується на фреймворку для тестування навантаження 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)
Відгук
Чи це було корисним?
Дякуємо. Ми цінуємо ваші відгуки!
Будь ласка, дайте нам знати як ми можемо покращити цю сторінку. Ми цінуємо ваші відгуки!