@@ -4,20 +4,20 @@ import { listEC2Runners, RunnerInfo, RunnerList, terminateRunner } from './runne
4
4
import { getIdleRunnerCount , ScalingDownConfig } from './scale-down-config' ;
5
5
import { createOctoClient , createGithubAppAuth , createGithubInstallationAuth } from './gh-auth' ;
6
6
import { githubCache , GhRunners } from './cache' ;
7
- import { logger as rootLogger } from './logger' ;
7
+ import { logger as rootLogger , LogFields } from './logger' ;
8
8
9
- const logger = rootLogger . getChildLogger ( ) ;
9
+ const logger = rootLogger . getChildLogger ( { name : 'scale-down' } ) ;
10
10
11
11
async function getOrCreateOctokit ( runner : RunnerInfo ) : Promise < Octokit > {
12
12
const key = runner . owner ;
13
13
const cachedOctokit = githubCache . clients . get ( key ) ;
14
14
15
15
if ( cachedOctokit ) {
16
- logger . debug ( `[createGitHubClientForRunner] Cache hit for ${ key } ` ) ;
16
+ logger . debug ( LogFields . fields , `[createGitHubClientForRunner] Cache hit for ${ key } ` ) ;
17
17
return cachedOctokit ;
18
18
}
19
19
20
- logger . debug ( `[createGitHubClientForRunner] Cache miss for ${ key } ` ) ;
20
+ logger . debug ( LogFields . fields , `[createGitHubClientForRunner] Cache miss for ${ key } ` ) ;
21
21
const ghesBaseUrl = process . env . GHES_URL ;
22
22
let ghesApiUrl = '' ;
23
23
if ( ghesBaseUrl ) {
@@ -50,11 +50,11 @@ async function listGitHubRunners(runner: RunnerInfo): Promise<GhRunners> {
50
50
const key = runner . owner as string ;
51
51
const cachedRunners = githubCache . runners . get ( key ) ;
52
52
if ( cachedRunners ) {
53
- logger . debug ( `[listGithubRunners] Cache hit for ${ key } ` ) ;
53
+ logger . debug ( LogFields . fields , `[listGithubRunners] Cache hit for ${ key } ` ) ;
54
54
return cachedRunners ;
55
55
}
56
56
57
- logger . debug ( `[listGithubRunners] Cache miss for ${ key } ` ) ;
57
+ logger . debug ( LogFields . fields , `[listGithubRunners] Cache miss for ${ key } ` ) ;
58
58
const client = await getOrCreateOctokit ( runner ) ;
59
59
const runners =
60
60
runner . type === 'Org'
@@ -102,12 +102,18 @@ async function removeRunner(ec2runner: RunnerInfo, ghRunnerId: number): Promise<
102
102
103
103
if ( result . status == 204 ) {
104
104
await terminateRunner ( ec2runner . instanceId ) ;
105
- logger . info ( `AWS runner instance '${ ec2runner . instanceId } ' is terminated and GitHub runner is de-registered.` ) ;
105
+ logger . info (
106
+ LogFields . fields ,
107
+ `AWS runner instance '${ ec2runner . instanceId } ' is terminated and GitHub runner is de-registered.` ,
108
+ ) ;
106
109
} else {
107
- logger . error ( `Failed to de-register GitHub runner: ${ result . status } ` ) ;
110
+ logger . error ( LogFields . fields , `Failed to de-register GitHub runner: ${ result . status } ` ) ;
108
111
}
109
112
} catch ( e ) {
110
- logger . info ( `Runner '${ ec2runner . instanceId } ' cannot be de-registered, most likely the runner is active.` ) ;
113
+ logger . info (
114
+ LogFields . fields ,
115
+ `Runner '${ ec2runner . instanceId } ' cannot be de-registered, most likely the runner is active.` ,
116
+ ) ;
111
117
}
112
118
}
113
119
@@ -120,26 +126,29 @@ async function evaluateAndRemoveRunners(
120
126
121
127
for ( const ownerTag of ownerTags ) {
122
128
const ec2RunnersFiltered = ec2Runners . filter ( ( runner ) => runner . owner === ownerTag ) ;
123
- logger . debug ( `Found: '${ ec2RunnersFiltered . length } ' active GitHub runners with owner tag: '${ ownerTag } '` ) ;
129
+ logger . debug (
130
+ LogFields . fields ,
131
+ `Found: '${ ec2RunnersFiltered . length } ' active GitHub runners with owner tag: '${ ownerTag } '` ,
132
+ ) ;
124
133
for ( const ec2Runner of ec2RunnersFiltered ) {
125
134
const ghRunners = await listGitHubRunners ( ec2Runner ) ;
126
135
const ghRunner = ghRunners . find ( ( runner ) => runner . name === ec2Runner . instanceId ) ;
127
136
if ( ghRunner ) {
128
137
if ( runnerMinimumTimeExceeded ( ec2Runner ) ) {
129
138
if ( idleCounter > 0 ) {
130
139
idleCounter -- ;
131
- logger . info ( `Runner '${ ec2Runner . instanceId } ' will kept idle.` ) ;
140
+ logger . info ( LogFields . fields , `Runner '${ ec2Runner . instanceId } ' will kept idle.` ) ;
132
141
} else {
133
- logger . info ( `Runner '${ ec2Runner . instanceId } ' will be terminated.` ) ;
142
+ logger . info ( LogFields . fields , `Runner '${ ec2Runner . instanceId } ' will be terminated.` ) ;
134
143
await removeRunner ( ec2Runner , ghRunner . id ) ;
135
144
}
136
145
}
137
146
} else {
138
147
if ( bootTimeExceeded ( ec2Runner ) ) {
139
- logger . info ( `Runner '${ ec2Runner . instanceId } ' is orphaned and will be removed.` ) ;
148
+ logger . info ( LogFields . fields , `Runner '${ ec2Runner . instanceId } ' is orphaned and will be removed.` ) ;
140
149
terminateOrphan ( ec2Runner . instanceId ) ;
141
150
} else {
142
- logger . debug ( `Runner ${ ec2Runner . instanceId } has not yet booted.` ) ;
151
+ logger . debug ( LogFields . fields , `Runner ${ ec2Runner . instanceId } has not yet booted.` ) ;
143
152
}
144
153
}
145
154
}
0 commit comments