@@ -62,6 +62,7 @@ func (m *MetricsCollectorGithubWorkflows) Setup(collector *collector.Collector)
6262 []string {
6363 "org" ,
6464 "repo" ,
65+ "workflowID" ,
6566 "workflow" ,
6667 "state" ,
6768 "path" ,
@@ -79,10 +80,13 @@ func (m *MetricsCollectorGithubWorkflows) Setup(collector *collector.Collector)
7980 []string {
8081 "org" ,
8182 "repo" ,
83+ "workflowID" ,
8284 "workflow" ,
8385 "event" ,
8486 "branch" ,
8587 "conclusion" ,
88+ "actorLogin" ,
89+ "actorType" ,
8690 },
8791 )
8892 m .Collector .RegisterMetricList ("workflowLatestRun" , m .prometheus .workflowLatestRun , true )
@@ -95,10 +99,13 @@ func (m *MetricsCollectorGithubWorkflows) Setup(collector *collector.Collector)
9599 []string {
96100 "org" ,
97101 "repo" ,
102+ "workflowID" ,
98103 "workflow" ,
99104 "event" ,
100105 "branch" ,
101106 "conclusion" ,
107+ "actorLogin" ,
108+ "actorType" ,
102109 },
103110 )
104111 m .Collector .RegisterMetricList ("workflowLatestRunTimestamp" , m .prometheus .workflowLatestRunTimestamp , true )
@@ -111,8 +118,11 @@ func (m *MetricsCollectorGithubWorkflows) Setup(collector *collector.Collector)
111118 []string {
112119 "org" ,
113120 "repo" ,
121+ "workflowID" ,
114122 "workflow" ,
115123 "branch" ,
124+ "actorLogin" ,
125+ "actorType" ,
116126 },
117127 )
118128 m .Collector .RegisterMetricList ("workflowConsecutiveFailures" , m .prometheus .workflowConsecutiveFailures , true )
@@ -297,11 +307,12 @@ func (m *MetricsCollectorGithubWorkflows) Collect(callback chan<- func()) {
297307 // workflow info metrics
298308 for _ , workflow := range workflows {
299309 labels := prometheus.Labels {
300- "org" : org ,
301- "repo" : repo .GetName (),
302- "workflow" : workflow .GetName (),
303- "state" : workflow .GetState (),
304- "path" : workflow .GetPath (),
310+ "org" : org ,
311+ "repo" : repo .GetName (),
312+ "workflowID" : fmt .Sprintf ("%v" , workflow .GetID ()),
313+ "workflow" : workflow .GetName (),
314+ "state" : workflow .GetState (),
315+ "path" : workflow .GetPath (),
305316 }
306317 for labelName , labelValue := range propLabels {
307318 labels [labelName ] = labelValue
@@ -362,10 +373,13 @@ func (m *MetricsCollectorGithubWorkflows) collectLatestRun(org string, repo *git
362373 labels := prometheus.Labels {
363374 "org" : org ,
364375 "repo" : repo .GetName (),
376+ "workflowID" : fmt .Sprintf ("%v" , workflowRun .GetWorkflowID ()),
365377 "workflow" : workflowRun .GetName (),
366378 "event" : workflowRun .GetEvent (),
367379 "branch" : workflowRun .GetHeadBranch (),
368380 "conclusion" : workflowRun .GetConclusion (),
381+ "actorLogin" : workflowRun .Actor .GetLogin (),
382+ "actorType" : workflowRun .Actor .GetType (),
369383 }
370384
371385 runMetric .AddInfo (labels )
@@ -376,7 +390,10 @@ func (m *MetricsCollectorGithubWorkflows) collectLatestRun(org string, repo *git
376390func (m * MetricsCollectorGithubWorkflows ) collectConsecutiveFailures (org string , repo * github.Repository , workflowRun []* github.WorkflowRun , callback chan <- func ()) {
377391 consecutiveFailuresMetric := m .Collector .GetMetricList ("workflowConsecutiveFailures" )
378392
379- consecutiveFailMap := map [int64 ]int64 {}
393+ consecutiveFailMap := map [int64 ]* struct {
394+ count int64
395+ labels prometheus.Labels
396+ }{}
380397 consecutiveFinishedMap := map [int64 ]bool {}
381398
382399 for _ , row := range workflowRun {
@@ -398,7 +415,21 @@ func (m *MetricsCollectorGithubWorkflows) collectConsecutiveFailures(org string,
398415 }
399416
400417 if _ , exists := consecutiveFailMap [workflowId ]; ! exists {
401- consecutiveFailMap [workflowId ] = 0
418+ consecutiveFailMap [workflowId ] = & struct {
419+ count int64
420+ labels prometheus.Labels
421+ }{
422+ count : 0 ,
423+ labels : prometheus.Labels {
424+ "org" : org ,
425+ "repo" : repo .GetName (),
426+ "workflowID" : fmt .Sprintf ("%v" , workflowRun .GetWorkflowID ()),
427+ "workflow" : workflowRun .GetName (),
428+ "branch" : workflowRun .GetHeadBranch (),
429+ "actorLogin" : workflowRun .Actor .GetLogin (),
430+ "actorType" : workflowRun .Actor .GetType (),
431+ },
432+ }
402433 consecutiveFinishedMap [workflowId ] = false
403434 }
404435
@@ -411,17 +442,14 @@ func (m *MetricsCollectorGithubWorkflows) collectConsecutiveFailures(org string,
411442 case "" :
412443 continue
413444 case "failure" :
414- consecutiveFailMap [workflowId ]++
445+ consecutiveFailMap [workflowId ]. count ++
415446 case "success" :
416447 consecutiveFinishedMap [workflowId ] = true
417448 }
449+ }
418450
419- labels := prometheus.Labels {
420- "org" : org ,
421- "repo" : repo .GetName (),
422- "workflow" : workflowRun .GetName (),
423- "branch" : workflowRun .GetHeadBranch (),
424- }
425- consecutiveFailuresMetric .Add (labels , float64 (consecutiveFailMap [workflowId ]))
451+ // process metrics
452+ for _ , row := range consecutiveFailMap {
453+ consecutiveFailuresMetric .Add (row .labels , float64 (row .count ))
426454 }
427455}
0 commit comments