Skip to content

Commit fdf70aa

Browse files
raymond13513copybara-github
authored andcommitted
Add host maintenance start time to disruption trigger metadata.
PiperOrigin-RevId: 839934809
1 parent 60ba296 commit fdf70aa

File tree

3 files changed

+34
-8
lines changed

3 files changed

+34
-8
lines changed

perfkitbenchmarker/time_triggers/base_disruption_trigger.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ def GetMetadataForTrigger(self, event: DisruptionEvent) -> Dict[str, Any]:
8282
"""Get the metadata for the trigger and append it to the samples."""
8383
return self.metadata | {
8484
'LM_total_time': event.total_time,
85+
'Host_maintenance_start': event.start_time,
8586
'Host_maintenance_end': event.end_time,
8687
}
8788

tests/time_triggers/base_disruption_trigger_test.py

Lines changed: 28 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -56,11 +56,17 @@ def setUp(self):
5656

5757
@mock.patch.object(time, 'time', mock.MagicMock(return_value=0))
5858
def testAppendSamples(self):
59-
time_dic = {'LM_total_time': 10, 'Host_maintenance_end': 0}
59+
time_dic = {
60+
'LM_total_time': 10,
61+
'Host_maintenance_end': 10,
62+
'Host_maintenance_start': 4,
63+
}
6064
s = []
6165
vm_spec = mock.MagicMock(spec=benchmark_spec.BenchmarkSpec)
6266
self.trigger.WaitForDisruption.return_value = [
63-
base_disruption_trigger.DisruptionEvent(total_time=10, end_time=0)
67+
base_disruption_trigger.DisruptionEvent(
68+
total_time=10, end_time=10, start_time=4
69+
)
6470
]
6571
self.trigger.AppendSamples(None, vm_spec, s)
6672
self.assertEqual(
@@ -606,7 +612,9 @@ def testAppendLossFunctionSamplesWithDisruptionEnds(self):
606612
samples = [s]
607613
self.trigger.trigger_time = datetime.datetime.fromtimestamp(4)
608614
self.trigger.WaitForDisruption.return_value = [
609-
base_disruption_trigger.DisruptionEvent(total_time=100, end_time=8)
615+
base_disruption_trigger.DisruptionEvent(
616+
total_time=100, end_time=8, start_time=4
617+
)
610618
]
611619
self.trigger.AppendSamples(None, vm_spec, samples)
612620
self.assertEqual(
@@ -685,6 +693,7 @@ def testAppendLossFunctionSamplesWithDisruptionEnds(self):
685693
'interval': 1,
686694
'LM_total_time': 100,
687695
'Host_maintenance_end': 8,
696+
'Host_maintenance_start': 4,
688697
},
689698
timestamp=0,
690699
),
@@ -803,7 +812,9 @@ def testAppendLossFunctionSamplesContainsMetadata(self):
803812
samples = [s]
804813
self.trigger.trigger_time = datetime.datetime.fromtimestamp(4)
805814
self.trigger.WaitForDisruption.return_value = [
806-
base_disruption_trigger.DisruptionEvent(total_time=100, end_time=8)
815+
base_disruption_trigger.DisruptionEvent(
816+
total_time=100, end_time=8, start_time=4
817+
)
807818
]
808819
self.trigger.AppendSamples(None, vm_spec, samples)
809820
self.assertEqual(
@@ -884,6 +895,7 @@ def testAppendLossFunctionSamplesContainsMetadata(self):
884895
'random': 'random',
885896
'LM_total_time': 100,
886897
'Host_maintenance_end': 8,
898+
'Host_maintenance_start': 4,
887899
},
888900
timestamp=0,
889901
),
@@ -1005,7 +1017,9 @@ def testAppendLossFunctionSamplesHandleTimeDrift(self):
10051017
samples = [s]
10061018
self.trigger.trigger_time = datetime.datetime.fromtimestamp(4)
10071019
self.trigger.WaitForDisruption.return_value = [
1008-
base_disruption_trigger.DisruptionEvent(total_time=100, end_time=11)
1020+
base_disruption_trigger.DisruptionEvent(
1021+
total_time=100, end_time=11, start_time=4
1022+
)
10091023
]
10101024
self.trigger.AppendSamples(None, vm_spec, samples)
10111025

@@ -1035,6 +1049,7 @@ def testAppendLossFunctionSamplesHandleTimeDrift(self):
10351049
'random': 'random',
10361050
'LM_total_time': 100,
10371051
'Host_maintenance_end': 11,
1052+
'Host_maintenance_start': 4,
10381053
},
10391054
timestamp=0,
10401055
),
@@ -1161,7 +1176,9 @@ def testMaintenanceEventTriggerAppendSamplesWithMaintenanceDegradationWindow(
11611176
samples = [s]
11621177
self.trigger.trigger_time = datetime.datetime.fromtimestamp(4)
11631178
self.trigger.WaitForDisruption.return_value = [
1164-
base_disruption_trigger.DisruptionEvent(total_time=100, end_time=11)
1179+
base_disruption_trigger.DisruptionEvent(
1180+
total_time=100, end_time=11, start_time=4
1181+
)
11651182
]
11661183
self.trigger.AppendSamples(None, vm_spec, samples)
11671184
# Assertions
@@ -1191,6 +1208,7 @@ def testMaintenanceEventTriggerAppendSamplesWithMaintenanceDegradationWindow(
11911208
'random': 'random',
11921209
'LM_total_time': 100,
11931210
'Host_maintenance_end': 11,
1211+
'Host_maintenance_start': 4,
11941212
},
11951213
timestamp=0,
11961214
),
@@ -1317,7 +1335,9 @@ def testMaintenanceEventTriggerAppendSamplesWithRegressionOutsideMaintenanceWind
13171335
samples = [s]
13181336
self.trigger.trigger_time = datetime.datetime.fromtimestamp(4)
13191337
self.trigger.WaitForDisruption.return_value = [
1320-
base_disruption_trigger.DisruptionEvent(total_time=100, end_time=8)
1338+
base_disruption_trigger.DisruptionEvent(
1339+
total_time=100, end_time=8, start_time=4
1340+
)
13211341
]
13221342
self.trigger.AppendSamples(None, vm_spec, samples)
13231343
# Assertions
@@ -1347,6 +1367,7 @@ def testMaintenanceEventTriggerAppendSamplesWithRegressionOutsideMaintenanceWind
13471367
'random': 'random',
13481368
'LM_total_time': 100,
13491369
'Host_maintenance_end': 8,
1370+
'Host_maintenance_start': 4,
13501371
},
13511372
timestamp=0,
13521373
),

tests/time_triggers/maintenance_simulation_trigger_test.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,11 @@ def testWaitForDisruption(self):
8787
'LM Total Time',
8888
10,
8989
'seconds',
90-
{'LM_total_time': 10.0, 'Host_maintenance_end': 0.0},
90+
{
91+
'LM_total_time': 10.0,
92+
'Host_maintenance_end': 0.0,
93+
'Host_maintenance_start': 0.0,
94+
},
9195
timestamp=0,
9296
)
9397
],

0 commit comments

Comments
 (0)