diff --git a/.gitignore b/.gitignore index 3bba855e1c..846a49a06e 100644 --- a/.gitignore +++ b/.gitignore @@ -34,3 +34,4 @@ src/frontend/cypress/videos src/frontend/cypress/screenshots vendor/ composer.lock +.venv diff --git a/docker-compose.yml b/docker-compose.yml index a85d457074..3fbb01b69e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -317,6 +317,7 @@ services: - RECOMMENDATION_SERVICE_PORT - PRODUCT_CATALOG_SERVICE_ADDR - OTEL_PYTHON_LOG_CORRELATION=true + - PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python - OTEL_EXPORTER_OTLP_TRACES_ENDPOINT - OTEL_SERVICE_NAME=recommendationservice logging: *logging diff --git a/src/loadgenerator/locustfile.py b/src/loadgenerator/locustfile.py index 1574ed3b04..00769ff86f 100644 --- a/src/loadgenerator/locustfile.py +++ b/src/loadgenerator/locustfile.py @@ -20,7 +20,7 @@ from opentelemetry import context, baggage, trace from opentelemetry.sdk.trace import TracerProvider -from opentelemetry.sdk.trace.export import (BatchSpanProcessor) +from opentelemetry.sdk.trace.export import BatchSpanProcessor from opentelemetry.exporter.otlp.proto.grpc.trace_exporter import OTLPSpanExporter from opentelemetry.instrumentation.requests import RequestsInstrumentor from opentelemetry.instrumentation.urllib3 import URLLib3Instrumentor @@ -42,7 +42,7 @@ "9SIQT8TOJO", "L9ECAV7KIM", "LS4PSXUNUM", - "OLJCESPC7Z" + "OLJCESPC7Z", ] people = [ @@ -53,15 +53,15 @@ "zipCode": 94043, "city": "Mountain View", "state": "CA", - "country": "United States" + "country": "United States", }, "userCurrency": "USD", "creditCard": { "creditCardNumber": "4432-8015-6152-0454", "creditCardExpirationMonth": 1, "creditCardExpirationYear": 2039, - "creditCardCvv": 672 - } + "creditCardCvv": 672, + }, }, { "email": "bill@example.com", @@ -70,15 +70,15 @@ "zipCode": 98052, "city": "Redmond", "state": "WA", - "country": "United States" + "country": "United States", }, "userCurrency": "USD", "creditCard": { "creditCardNumber": "4532-4211-7434-1278", "creditCardExpirationMonth": 2, "creditCardExpirationYear": 2039, - "creditCardCvv": 114 - } + "creditCardCvv": 114, + }, }, { "email": "steve@example.com", @@ -87,15 +87,15 @@ "zipCode": 95014, "city": "Cupertino", "state": "CA", - "country": "United States" + "country": "United States", }, "userCurrency": "USD", "creditCard": { "creditCardNumber": "4532-6178-2799-1951", "creditCardExpirationMonth": 3, "creditCardExpirationYear": 2039, - "creditCardCvv": 239 - } + "creditCardCvv": 239, + }, }, { "email": "mark@example.com", @@ -104,15 +104,15 @@ "zipCode": 94025, "city": "Menlo Park", "state": "CA", - "country": "United States" + "country": "United States", }, "userCurrency": "USD", "creditCard": { "creditCardNumber": "4539-1103-5661-7083", "creditCardExpirationMonth": 4, "creditCardExpirationYear": 2039, - "creditCardCvv": 784 - } + "creditCardCvv": 784, + }, }, { "email": "jeff@example.com", @@ -121,15 +121,15 @@ "zipCode": 98109, "city": "Seattle", "state": "WA", - "country": "United States" + "country": "United States", }, "userCurrency": "USD", "creditCard": { "creditCardNumber": "4916-0816-6217-7968", "creditCardExpirationMonth": 5, "creditCardExpirationYear": 2039, - "creditCardCvv": 397 - } + "creditCardCvv": 397, + }, }, { "email": "reed@example.com", @@ -138,15 +138,15 @@ "zipCode": 95032, "city": "Los Gatos", "state": "CA", - "country": "United States" + "country": "United States", }, "userCurrency": "USD", "creditCard": { "creditCardNumber": "4929-5431-0337-5647", "creditCardExpirationMonth": 6, "creditCardExpirationYear": 2039, - "creditCardCvv": 793 - } + "creditCardCvv": 793, + }, }, { "email": "tobias@example.com", @@ -155,15 +155,15 @@ "zipCode": 214, "city": "Ottawa", "state": "ON", - "country": "Canada" + "country": "Canada", }, "userCurrency": "CAD", "creditCard": { "creditCardNumber": "4763-1844-9699-8031", "creditCardExpirationMonth": 7, "creditCardExpirationYear": 2039, - "creditCardCvv": 488 - } + "creditCardCvv": 488, + }, }, { "email": "jack@example.com", @@ -172,15 +172,15 @@ "zipCode": 94103, "city": "San Francisco", "state": "CA", - "country": "United States" + "country": "United States", }, "userCurrency": "USD", "creditCard": { "creditCardNumber": "4929-6495-8333-3657", "creditCardExpirationMonth": 8, "creditCardExpirationYear": 2039, - "creditCardCvv": 159 - } + "creditCardCvv": 159, + }, }, { "email": "moore@example.com", @@ -189,16 +189,16 @@ "zipCode": 95054, "city": "Santa Clara", "state": "CA", - "country": "United States" + "country": "United States", }, "userCurrency": "USD", "creditCard": { "creditCardNumber": "4485-4803-8707-3547", "creditCardExpirationMonth": 9, "creditCardExpirationYear": 2039, - "creditCardCvv": 682 - } - } + "creditCardCvv": 682, + }, + }, ] @@ -213,6 +213,22 @@ def index(self): def browse_product(self): self.client.get("/api/products/" + random.choice(products)) + @task(3) + def get_recommendations(self): + user = str(uuid.uuid1()) + params = { + "productIds": [random.choice(products)], + "sessionId": user, + } + self.client.get("/api/recommendations/", params=params) + + @task(3) + def get_ads(self): + params = { + "productIds": [random.choice(products)], + } + self.client.get("/api/data/", params=params) + @task(3) def view_cart(self): self.client.get("/api/cart") @@ -226,9 +242,9 @@ def add_to_cart(self, user=""): cart_item = { "item": { "productId": product, - "quantity": random.choice([1, 2, 3, 4, 5, 10]) + "quantity": random.choice([1, 2, 3, 4, 5, 10]), }, - "userId": user + "userId": user, } self.client.post("/api/cart", json=cart_item) diff --git a/src/loadgenerator/requirements.txt b/src/loadgenerator/requirements.txt index 2842d688a1..a43c77a88d 100644 --- a/src/loadgenerator/requirements.txt +++ b/src/loadgenerator/requirements.txt @@ -1,9 +1,18 @@ -locust==2.6.1 -opentelemetry-api==1.9.1 -opentelemetry-exporter-otlp-proto-grpc==1.9.1 -opentelemetry-instrumentation==0.28b1 -opentelemetry-instrumentation-requests==0.28b1 -opentelemetry-instrumentation-urllib3==0.28b1 -opentelemetry-sdk==1.9.1 -requests==2.27.1 -urllib3==1.26.8 \ No newline at end of file +ansible==6.3.0 +ansible-core==2.13.3 +black==22.8.0 +cffi==1.15.1 +click==8.1.3 +cryptography==37.0.4 +Jinja2==3.1.2 +MarkupSafe==2.1.1 +mypy-extensions==0.4.3 +packaging==21.3 +pathspec==0.10.1 +platformdirs==2.5.2 +pycparser==2.21 +pyparsing==3.0.9 +PyYAML==6.0 +resolvelib==0.8.1 +tomli==2.0.1 +typing_extensions==4.3.0