Skip to content

Commit da8b573

Browse files
authored
Merge pull request #8592 from chungjac/add-listRegionProfile-logging
fix(amazonq): Add debug logging to listRegionProfile and increase cache TTL to 60s
2 parents e42b2cc + e191a9f commit da8b573

File tree

1 file changed

+18
-3
lines changed

1 file changed

+18
-3
lines changed

packages/core/src/codewhisperer/region/regionProfileManager.ts

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ export class RegionProfileManager {
7070
constructor(private readonly profileProvider: () => Promise<RegionProfile[]>) {
7171
super(
7272
'aws.amazonq.regionProfiles.cache',
73-
3600000,
73+
60000,
7474
{
7575
resource: {
7676
locked: false,
@@ -141,15 +141,26 @@ export class RegionProfileManager {
141141

142142
const conn = this.connectionProvider()
143143
if (conn === undefined || !isSsoConnection(conn)) {
144+
RegionProfileManager.logger.info(
145+
`listRegionProfile: no valid SSO connection, skipping (conn=${conn === undefined ? 'undefined' : 'non-SSO'})`
146+
)
144147
return []
145148
}
146149
const availableProfiles: RegionProfile[] = []
147150
const failedRegions: string[] = []
148151

152+
RegionProfileManager.logger.info(
153+
`listRegionProfile: calling listAvailableProfiles across ${endpoints.size} regions`
154+
)
149155
for (const [region, endpoint] of endpoints.entries()) {
150156
const client = await this._createQClient(region, endpoint, conn as SsoConnection)
151-
const requester = async (request: CodeWhispererUserClient.ListAvailableProfilesRequest) =>
152-
client.listAvailableProfiles(request).promise()
157+
const requester = async (request: CodeWhispererUserClient.ListAvailableProfilesRequest) => {
158+
const response = await client.listAvailableProfiles(request).promise()
159+
RegionProfileManager.logger.info(
160+
`listRegionProfile: listAvailableProfiles response for region=${region}, requestId=${(response as any).$response?.requestId}, profileCount=${response.profiles?.length ?? 0}`
161+
)
162+
return response
163+
}
153164
const request: CodeWhispererUserClient.ListAvailableProfilesRequest = {}
154165
try {
155166
const profiles = await pageableToCollection(requester, request, 'nextToken', 'profiles')
@@ -178,6 +189,10 @@ export class RegionProfileManager {
178189
}
179190
}
180191

192+
RegionProfileManager.logger.info(
193+
`listRegionProfile: completed. totalProfiles=${availableProfiles.length}, failedRegions=[${failedRegions.join(', ')}]`
194+
)
195+
181196
// Throw error if any regional API calls failed and no profiles are available
182197
if (failedRegions.length > 0 && availableProfiles.length === 0) {
183198
throw new ToolkitError(`Failed to list Q Developer profiles for regions: ${failedRegions.join(', ')}`, {

0 commit comments

Comments
 (0)