in integ/validate_cloudwatch/validator.py [0:0]
def metric_exists(metric_namespace, dim_key, dim_value, expected_samples):
metric_name = get_expected_metric_name()
try:
response = metrics_client.get_metric_statistics(
Namespace=metric_namespace,
MetricName=metric_name,
Dimensions=[{"Name": dim_key, "Value": dim_value}],
StartTime=start_time,
EndTime=end_time,
Period=60,
Statistics=["SampleCount", "Average"],
Unit="None",
)
except Exception as e:
print(e)
return False
if response is None:
return False
total_samples = 0
for datapoint in response["Datapoints"]:
total_samples += datapoint["SampleCount"]
if total_samples == expected_samples:
return True
elif total_samples > expected_samples:
print(f"Too many datapoints returned. Expected {expected_samples}, received {total_samples}")
else:
print(response["Datapoints"])
print(f"Did not find {metric_namespace}/{metric_name}/{dim_key}:{dim_value}")
return False