in source/sfm-custom-resource.py [0:0]
def send_anonymous_metric(solution_id, solution_version, solution_uuid, region, event_type):
now = datetime.utcnow().strftime('%Y-%m-%d %H:%M:%S.%f')[:-3]
metric_url = 'https://metrics.awssolutionsbuilder.com/generic'
response_body = json.dumps({
"Solution": solution_id,
"UUID": solution_uuid,
"TimeStamp": now,
"Data": {
"Launch": now,
"Region": region,
"Version": solution_version,
"EventType": event_type
}
})
logger.info('Metric Body: {}'.format(response_body))
try:
data = response_body.encode('utf-8')
req = request.Request(metric_url, data=data)
req.add_header('Content-Type', 'application/json')
req.add_header('Content-Length', len(response_body))
response = request.urlopen(req)
logger.info('Status code: {}'.format(response.getcode()))
logger.info('Status message: {}'.format(response.msg))
except Exception as e:
logger.error('Error occurred while sending metric: {}'.format(json.dumps(response_body)))
logger.error('Error: {}'.format(e))