in src/ECSInstancesRegistration/MetricToCW/app.py [0:0]
def emf_instance_registration(availability_zone, ecs_cluster,
instance_type, instance_id, metric_name,
metric_time, metrics):
logger.info(f"Adding metric for {instance_id} for {ecs_cluster}")
ecs_cluster = ecs_cluster.split('/')[-1].split('_Batch')[0]
# use the event timestamp instead of using the EMF context timestamp
metric_converted_time = datetime.datetime.strptime(metric_time, '%Y-%m-%dT%H:%M:%SZ')
metric_converted_time = int(round(metric_converted_time.timestamp()*1000))
metrics.context.meta['Timestamp'] = metric_converted_time
try:
metrics.set_namespace("AWSBatchMetrics")
metrics.set_dimensions({
"AvailabilityZone": availability_zone
}, {
"ECSCluster": ecs_cluster
}, {
"InstanceType": instance_type
})
metrics.put_metric(metric_name, 1, "Count")
metrics.set_property("InstanceId", instance_id)
metrics.set_property("ECSCluster", ecs_cluster)
metrics.set_property("InstanceType", instance_type)
metrics.set_property("AvailabilityZone", availability_zone)
except ClientError as e:
message = f"Error adding CloudWatch metric job resubmission: {format(e)}"
logger.warning(message)
raise Exception(message)
return