import json import time from datadog_lambda.metric import lambda_metric from ddtrace import tracer def lambda_handler(event, context): current_span = tracer.current_span() if current_span: current_span.set_tag('owner', 'dpinchukov') with tracer.trace("dd-lambda-python.checkout"): log_event(event) get_cart_items() get_items_price() process_payment() return event @tracer.wrap() def log_event(event): print('Received event: ' + json.dumps(event, indent=2)) @tracer.wrap() def get_cart_items(): print("Getting cart items...") time.sleep(0.050) print("Got cart items.") lambda_metric( metric_name='dd-lambda-python.checkout.cart_items_amount', value=42, timestamp=int(time.time()), tags=['owner:dpinchukov'] ) @tracer.wrap() def get_items_price(): print("Getting items price...") time.sleep(0.075) print("Got items price.") @tracer.wrap() def process_payment(): print("Processing payment...") time.sleep(0.025) apply_coupon() print("Payment successfull.") @tracer.wrap() def apply_coupon(): print("Applying coupon...") time.sleep(0.010) print("No coupon specified.") lambda_metric( metric_name='dd-lambda-python.checkout.coupon_applied', value=0, timestamp=int(time.time()), tags=['owner:dpinchukov'] )