@@ -28,7 +28,6 @@ import (
2828 crcCmd "github.com/crc-org/crc/v2/test/extended/crc/cmd"
2929 "github.com/crc-org/crc/v2/test/extended/util"
3030 "github.com/cucumber/godog"
31- "github.com/shirou/gopsutil/v4/cpu"
3231 "github.com/shirou/gopsutil/v4/mem"
3332 "github.com/spf13/pflag"
3433)
@@ -153,7 +152,7 @@ func InitializeTestSuite(tctx *godog.TestSuiteContext) {
153152
154153 err := crcCmd .DeleteCRC ()
155154 if err != nil {
156- fmt .Printf ("Could not delete CRC VM: %s." , err )
155+ fmt .Printf ("Could not delete CRC VM: %s.\n " , err )
157156 }
158157
159158 err = util .LogMessage ("info" , "----- Cleaning Up -----" )
@@ -169,6 +168,7 @@ func InitializeTestSuite(tctx *godog.TestSuiteContext) {
169168}
170169
171170func InitializeScenario (s * godog.ScenarioContext ) {
171+ monitor := NewMonitor (1 * time .Second )
172172
173173 s .Before (func (ctx context.Context , sc * godog.Scenario ) (context.Context , error ) {
174174
@@ -264,12 +264,17 @@ func InitializeScenario(s *godog.ScenarioContext) {
264264 }
265265 }
266266
267- if tag .Name == "@story_health " {
268- if err := getCPUdata ( "Before start" ); err != nil {
269- fmt .Printf ("Failed to collect CPU data : %v\n " , err )
267+ if tag .Name == "@performance " {
268+ if err := monitor . Start ( ); err != nil {
269+ fmt .Printf ("Failed to start monitor : %v\n " , err )
270270 }
271- if err := getMemoryData ("Before start" ); err != nil {
272- fmt .Printf ("Failed to collect memory data: %v\n " , err )
271+ err := getTimestamp ("start" )
272+ if err != nil {
273+ fmt .Printf ("Failed to get finish getTimestamp: %v\n " , err )
274+ }
275+ err = getMemoryData ("Before start" )
276+ if err != nil {
277+ fmt .Printf ("Failed to get memory data: %v\n " , err )
273278 }
274279 }
275280 }
@@ -398,6 +403,16 @@ func InitializeScenario(s *godog.ScenarioContext) {
398403 }
399404 }
400405
406+ if tag .Name == "@performance" {
407+ err := getTimestamp ("finish" )
408+ if err != nil {
409+ fmt .Printf ("Failed to get finish getTimestamp: %v\n " , err )
410+ }
411+ if err := monitor .Stop (); err != nil {
412+ fmt .Printf ("Failed to stop monitoring: %v\n " , err )
413+ }
414+ fmt .Printf ("Collection has stopped\n " )
415+ }
401416 }
402417
403418 return ctx , nil
@@ -579,8 +594,8 @@ func InitializeScenario(s *godog.ScenarioContext) {
579594 EnsureApplicationIsAccessibleViaNodePort )
580595 s .Step (`^persistent volume of size "([^"]*)"GB exists$` ,
581596 EnsureVMPartitionSizeCorrect )
582- s .Step (`^get cpu data "([^"]*)"` ,
583- getCPUdata )
597+ s .Step (`^record timestamp "([^"]*)"` ,
598+ getTimestamp )
584599 s .Step (`^get memory data "([^"]*)"` ,
585600 getMemoryData )
586601
@@ -1320,20 +1335,6 @@ func deserializeListBlockDeviceCommandOutputToExtractPVSize(lsblkOutput string)
13201335 return diskSize - (lvmSize + 1 ), nil
13211336}
13221337
1323- func getCPUdata (content string ) error {
1324- cpuData , err := cpu .Percent (0 , false )
1325- if err != nil {
1326- return fmt .Errorf ("failed to get CPU data: %v" , err )
1327- }
1328- if len (cpuData ) == 0 {
1329- return fmt .Errorf ("no CPU data available" )
1330- }
1331- data := fmt .Sprintf ("%s: %.2f%%\n " , content , cpuData )
1332- wd , _ := os .Getwd ()
1333- file := filepath .Join (wd , "../test-results/cpu-consume.txt" )
1334- return util .WriteToFile (data , file )
1335- }
1336-
13371338func getMemoryData (content string ) error {
13381339 v , err := mem .VirtualMemory ()
13391340 if err != nil {
@@ -1351,3 +1352,14 @@ func getMemoryData(content string) error {
13511352 file := filepath .Join (wd , "../test-results/memory-consume.txt" )
13521353 return util .WriteToFile (data , file )
13531354}
1355+
1356+ func getTimestamp (content string ) error {
1357+ data := fmt .Sprintf ("[%s], %s\n " ,
1358+ time .Now ().Format ("15:04:05" ), content )
1359+ wd , err := os .Getwd ()
1360+ if err != nil {
1361+ fmt .Printf ("failed to get working directory: %v\n " , err )
1362+ }
1363+ file := filepath .Join (wd , "../test-results/time-stamp.txt" )
1364+ return util .WriteToFile (data , file )
1365+ }
0 commit comments