@@ -58,7 +58,9 @@ def test_cw_dashboard_builder(mocker, test_datadir, set_env, config_file_name, r
5858 if cluster_config .is_cw_dashboard_enabled :
5959 assert_that (output_yaml ).contains ("CloudwatchDashboard" )
6060 assert_that (output_yaml ).contains ("Head Node EC2 Metrics" )
61- _verify_head_node_instance_metrics_graphs (output_yaml , cluster_config .scheduling .scheduler )
61+ _verify_head_node_instance_metrics_graphs (
62+ output_yaml , cluster_config .scheduling .scheduler , cluster_config .is_cw_logging_enabled
63+ )
6264
6365 if cluster_config .are_alarms_enabled :
6466 assert_that (output_yaml ).contains ("Cluster Alarms" )
@@ -79,15 +81,20 @@ def test_cw_dashboard_builder(mocker, test_datadir, set_env, config_file_name, r
7981 assert_that (output_yaml ).does_not_contain ("CloudwatchDashboard" )
8082 assert_that (output_yaml ).does_not_contain ("Head Node EC2 Metrics" )
8183
82- _verify_alarms (output_yaml , cluster_config .are_alarms_enabled , cluster_config .scheduling .scheduler )
84+ _verify_alarms (
85+ output_yaml ,
86+ cluster_config .are_alarms_enabled ,
87+ cluster_config .scheduling .scheduler ,
88+ cluster_config .is_cw_logging_enabled ,
89+ )
8390
8491 if cluster_config .is_cw_logging_enabled :
8592 assert_that (output_yaml ).contains ("ClusterCWLogGroup" )
8693 else :
8794 assert_that (output_yaml ).does_not_contain ("ClusterCWLogGroup" )
8895
8996
90- def _verify_alarms (output_yaml , alarms_enabled , scheduler ):
97+ def _verify_alarms (output_yaml , alarms_enabled , scheduler , is_cw_logging_enabled ):
9198 if alarms_enabled :
9299 assert_that (output_yaml ).contains ("HeadNodeHealthAlarm" )
93100 assert_that (output_yaml ).contains ("StatusCheckFailed" )
@@ -102,7 +109,7 @@ def _verify_alarms(output_yaml, alarms_enabled, scheduler):
102109 assert_that (output_yaml ).contains ("disk_used_percent" )
103110
104111 # ClustermgtdHeartbeat alarm is only created for Slurm scheduler
105- if scheduler == "slurm" :
112+ if scheduler == "slurm" and is_cw_logging_enabled :
106113 assert_that (output_yaml ).contains ("HeadNodeClustermgtdHeartbeatAlarm" )
107114 assert_that (output_yaml ).contains ("ClustermgtdHeartbeat" )
108115 else :
@@ -130,13 +137,15 @@ def _verify_metric_filter_dimensions(metric_filters):
130137 )
131138
132139 expected_dimensions = [{"Key" : "ClusterName" , "Value" : "$.cluster-name" }]
140+ if name == "ClustermgtdHeartbeatFilter" :
141+ expected_dimensions .append ({"Key" : "InstanceId" , "Value" : "$.instance-id" })
133142
134143 assert_that (dimensions , description = f"{ name } should have dimensions { expected_dimensions } " ).is_equal_to (
135144 expected_dimensions
136145 )
137146
138147
139- def _verify_head_node_instance_metrics_graphs (output_yaml , scheduler ):
148+ def _verify_head_node_instance_metrics_graphs (output_yaml , scheduler , is_cw_logging_enabled ):
140149 """Verify CloudWatch graphs within the Head Node Instance Metrics section."""
141150 assert_that (output_yaml ).contains ("Head Node Instance Metrics" )
142151 assert_that (output_yaml ).contains ("CPU Utilization" )
@@ -146,8 +155,8 @@ def _verify_head_node_instance_metrics_graphs(output_yaml, scheduler):
146155 assert_that (output_yaml ).contains ("Disk Read/Write Ops" )
147156 assert_that (output_yaml ).contains ("Disk Used Percent" )
148157 assert_that (output_yaml ).contains ("Memory Used Percent" )
149- # Daemons Heartbeats widget is only created for Slurm scheduler
150- if scheduler == "slurm" :
158+ # Daemons Heartbeats widget is only created for Slurm scheduler with logging enabled
159+ if scheduler == "slurm" and is_cw_logging_enabled :
151160 assert_that (output_yaml ).contains ("Daemons Heartbeats" )
152161 assert_that (output_yaml ).contains ("ClustermgtdHeartbeat" )
153162 else :
0 commit comments