in lambda/api/lambda_metrics.py [0:0]
def lambda_handler(event, context):
try:
logger.debug(json.dumps(event))
# Get metrics from s3 json lines
metrics = []
if "Records" in event:
metrics = get_metrics(event)
elif "Metrics" in event:
metrics = event["Metrics"]
update_metrics(metrics)
# TODO: Consider correlating ground through metrics against for user_id invocations/clicks to return
# see: https://docs.aws.amazon.com/sagemaker/latest/dg/model-monitor-model-quality-merge.html
# see also: https://github.com/aws/amazon-sagemaker-examples/blob/master/sagemaker_model_monitor/model_quality/model_quality_churn_sdk.ipynb
# Log the metrics count
result = {
"metric_count": len(metrics),
}
return {"statusCode": 200, "body": json.dumps(result)}
except ClientError as e:
# Get boto3 specific error message
error_message = e.response["Error"]["Message"]
logger.error(error_message)
raise Exception(error_message)
except Exception as e:
logger.error(e)
raise e