Skip to content

Commit f436499

Browse files
author
NoyanAziz
authored
chore: added logs to note time for commercetools calls (#304)
1 parent 2c8885a commit f436499

File tree

4 files changed

+27
-0
lines changed

4 files changed

+27
-0
lines changed

commerce_coordinator/apps/commercetools/clients.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,11 +187,14 @@ def get_customer_by_lms_user_id(self, lms_user_id: int) -> Optional[CTCustomer]:
187187

188188
edx_lms_user_id_key = EdXFieldNames.LMS_USER_ID
189189

190+
start_time = datetime.datetime.now()
190191
results = self.base_client.customers.query(
191192
where=f'custom(fields({edx_lms_user_id_key}=:id))',
192193
limit=2,
193194
predicate_var={'id': f"{lms_user_id}"}
194195
)
196+
duration = (datetime.datetime.now() - start_time).total_seconds()
197+
logger.info(f"[Performance Check] - customerId query took {duration} seconds")
195198

196199
if results.count > 1:
197200
# We are unable due to CT Limitations to enforce unique LMS ID values on Customers on the catalog side, so
@@ -260,6 +263,7 @@ def get_orders(self, customer_id: str, offset=0,
260263
f"customer with ID {customer_id}")
261264
order_where_clause = f"orderState=\"{order_state}\""
262265

266+
start_time = datetime.datetime.now()
263267
values = self.base_client.orders.query(
264268
where=["customerId=:cid", order_where_clause],
265269
predicate_var={'cid': customer_id},
@@ -268,6 +272,8 @@ def get_orders(self, customer_id: str, offset=0,
268272
offset=offset,
269273
expand=list(expand)
270274
)
275+
duration = (datetime.datetime.now() - start_time).total_seconds()
276+
logger.info(f"[Performance Check] get_orders call took {duration} seconds")
271277

272278
return PaginatedResult(values.results, values.total, values.offset)
273279

@@ -327,7 +333,11 @@ def get_product_variant_by_course_run(self, cr_id: str) -> Optional[CTProductVar
327333
Args:
328334
cr_id: variant course run key
329335
"""
336+
start_time = datetime.datetime.now()
330337
results = self.base_client.product_projections.search(False, filter=f"variants.sku:\"{cr_id}\"").results
338+
duration = (datetime.datetime.now() - start_time).total_seconds()
339+
logger.info(
340+
f"[Performance Check] get_product_variant_by_course_run took {duration} seconds")
331341

332342
if len(results) < 1: # pragma no cover
333343
return None

commerce_coordinator/apps/commercetools/pipeline.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
Commercetools filter pipelines
33
"""
44
import decimal
5+
from datetime import datetime
56
from logging import getLogger
67

78
import attrs
@@ -102,7 +103,10 @@ def run_filter(self, active_order_management_system, order_number, **kwargs): #
102103

103104
try:
104105
ct_api_client = CommercetoolsAPIClient()
106+
start_time = datetime.now()
105107
ct_order = ct_api_client.get_order_by_number(order_number=order_number)
108+
duration = (datetime.now() - start_time).total_seconds()
109+
log.info(f"[Performance Check] get_order_by_number call took {duration} seconds")
106110

107111
ret_val = {
108112
"order_data": ct_order,
@@ -155,7 +159,10 @@ def run_filter(self, active_order_management_system, order_id, **kwargs): # pyl
155159

156160
try:
157161
ct_api_client = CommercetoolsAPIClient()
162+
start_time = datetime.now()
158163
ct_order = ct_api_client.get_order_by_id(order_id=order_id)
164+
duration = (datetime.now() - start_time).total_seconds()
165+
log.info(f"[Performance Check] get_order_by_id call took {duration} seconds")
159166

160167
ret_val = {
161168
"order_data": ct_order,

commerce_coordinator/apps/commercetools/sub_messages/tasks.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
"""
22
Commercetools Subscription Message tasks (Celery)
33
"""
4+
from datetime import datetime
5+
46
from celery import shared_task
57
from celery.utils.log import get_task_logger
68
from commercetools import CommercetoolsError
@@ -59,7 +61,10 @@ def fulfill_order_placed_message_signal_task(
5961
client = CommercetoolsAPIClient()
6062

6163
try:
64+
start_time = datetime.now()
6265
order = client.get_order_by_id(order_id)
66+
duration = (datetime.now() - start_time).total_seconds()
67+
logger.info(f"[Performance Check] get_order_by_id call took {duration} seconds")
6368
except CommercetoolsError as err: # pragma no cover
6469
logger.error(f'[CT-{tag}] Order not found: {order_id} with CT error {err}, {err.errors},'
6570
f'message id: {message_id}')

commerce_coordinator/apps/lms/tasks.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
LMS Celery tasks
33
"""
44

5+
from datetime import datetime
6+
57
from celery import shared_task
68
from celery.utils.log import get_task_logger
79
from django.contrib.auth import get_user_model
@@ -92,7 +94,10 @@ def fulfill_order_placed_send_enroll_in_course_task(
9294
client = CommercetoolsAPIClient()
9395
# A retry means the current line item state on the order would be a failure state
9496
line_item_state_id = client.get_state_by_key(TwoUKeys.FAILURE_FULFILMENT_STATE).id
97+
start_time = datetime.now()
9598
order_version = client.get_order_by_id(order_id).version
99+
duration = (datetime.now() - start_time).total_seconds()
100+
logger.info(f"[Performance Check] get_order_by_id call took {duration} seconds")
96101

97102
line_item_state_payload = {
98103
'order_id': order_id,

0 commit comments

Comments
 (0)