1
- use super :: QueueItem ;
1
+ use super :: { QueueItem , QueueItemKind } ;
2
2
3
3
use crate :: rla;
4
4
use crate :: rla:: ci:: { self , BuildCommit , CiPlatform } ;
@@ -78,7 +78,16 @@ impl Worker {
78
78
pub fn main ( & mut self ) -> rla:: Result < ( ) > {
79
79
loop {
80
80
let item = self . queue . recv ( ) ?;
81
- match self . process ( item) {
81
+
82
+ let span = span ! (
83
+ tracing:: Level :: INFO ,
84
+ "request" ,
85
+ delivery = item. delivery_id. as_str( ) ,
86
+ build_id = tracing:: field:: Empty
87
+ ) ;
88
+ let _enter = span. enter ( ) ;
89
+
90
+ match self . process ( item, & span) {
82
91
Ok ( ( ) ) => ( ) ,
83
92
Err ( e) => error ! ( "Processing queue item failed: {}" , e) ,
84
93
}
@@ -92,9 +101,9 @@ impl Worker {
92
101
self . secondary_repos . iter ( ) . find ( |r| * r == repo) . is_some ( )
93
102
}
94
103
95
- fn process ( & mut self , item : QueueItem ) -> rla:: Result < ( ) > {
96
- let ( repo, build_id, outcome) = match & item {
97
- QueueItem :: GitHubStatus ( ev) => match self . ci . build_id_from_github_status ( & ev) {
104
+ fn process ( & mut self , item : QueueItem , span : & tracing :: Span ) -> rla:: Result < ( ) > {
105
+ let ( repo, build_id, outcome) = match & item. kind {
106
+ QueueItemKind :: GitHubStatus ( ev) => match self . ci . build_id_from_github_status ( & ev) {
98
107
Some ( id) if self . is_repo_valid ( & ev. repository . full_name ) => {
99
108
( & ev. repository . full_name , id, None )
100
109
}
@@ -106,7 +115,7 @@ impl Worker {
106
115
return Ok ( ( ) ) ;
107
116
}
108
117
} ,
109
- QueueItem :: GitHubCheckRun ( ev) => match self . ci . build_id_from_github_check ( & ev) {
118
+ QueueItemKind :: GitHubCheckRun ( ev) => match self . ci . build_id_from_github_check ( & ev) {
110
119
Some ( id) if self . is_repo_valid ( & ev. repository . full_name ) => {
111
120
( & ev. repository . full_name , id, Some ( & ev. check_run . outcome ) )
112
121
}
@@ -120,10 +129,12 @@ impl Worker {
120
129
} ,
121
130
} ;
122
131
123
- info ! ( "build {}: started processing" , build_id) ;
132
+ span. record ( "build_id" , & build_id) ;
133
+
134
+ info ! ( "started processing" ) ;
124
135
125
136
if self . seen . contains ( & build_id) {
126
- info ! ( "build {}: ignoring recently seen id" , build_id ) ;
137
+ info ! ( "ignoring recently seen id" ) ;
127
138
return Ok ( ( ) ) ;
128
139
}
129
140
let query_from = if self . query_builds_from_primary_repo {
@@ -138,34 +149,31 @@ impl Worker {
138
149
_ => build. outcome ( ) ,
139
150
} ;
140
151
141
- debug ! ( "build {}: current outcome: {:?}" , build_id , outcome) ;
142
- debug ! ( "build {}: PR number: {:?}" , build_id , build. pr_number( ) ) ;
143
- debug ! ( "build {}: branch name: {:?}" , build_id , build. branch_name( ) ) ;
152
+ debug ! ( "current outcome: {:?}" , outcome) ;
153
+ debug ! ( "PR number: {:?}" , build. pr_number( ) ) ;
154
+ debug ! ( "branch name: {:?}" , build. branch_name( ) ) ;
144
155
145
156
if !outcome. is_finished ( ) {
146
- info ! ( "build {}: ignoring in-progress build" , build_id ) ;
157
+ info ! ( "ignoring in-progress build" ) ;
147
158
return Ok ( ( ) ) ;
148
159
}
149
160
150
161
// Avoid processing the same build multiple times.
151
- info ! ( "build {}: marked as seen" , build_id ) ;
162
+ info ! ( "marked as seen" ) ;
152
163
self . seen . push_front ( build_id) ;
153
164
if self . seen . len ( ) > KEEP_IDS {
154
165
self . seen . pop_back ( ) ;
155
166
}
156
167
157
168
if !outcome. is_passed ( ) {
158
- info ! ( "build {}: preparing report" , build_id ) ;
169
+ info ! ( "preparing report" ) ;
159
170
self . report_failed ( build. as_ref ( ) ) ?;
160
171
}
161
172
if build. pr_number ( ) . is_none ( ) && build. branch_name ( ) == "auto" {
162
- info ! ( "build {}: learning from the log" , build_id ) ;
173
+ info ! ( "learning from the log" ) ;
163
174
self . learn ( build. as_ref ( ) ) ?;
164
175
} else {
165
- info ! (
166
- "build {}: did not learn as it's not an auto build" ,
167
- build_id
168
- ) ;
176
+ info ! ( "did not learn as it's not an auto build" ) ;
169
177
}
170
178
171
179
Ok ( ( ) )
0 commit comments