Skip to content

Commit f78d6d0

Browse files
authored
Add metadata to refresh credentials metric (#4879)
* Add metadata to refresh credentials metric * fix tests * remove unnecessary try catch * remove unnecessary try catch * fedback
1 parent 3983c73 commit f78d6d0

File tree

1 file changed

+15
-5
lines changed

1 file changed

+15
-5
lines changed

plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/credentials/sso/SsoAccessTokenProvider.kt

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -378,7 +378,7 @@ class SsoAccessTokenProvider(
378378
is PKCEAuthorizationGrantToken -> loadPkceClientRegistration()
379379
}
380380
if (registration == null) {
381-
val message = "Unable to load client registration"
381+
val message = "Unable to load client registration from cache"
382382
sendRefreshCredentialsMetric(
383383
currentToken,
384384
reason = "Null client registration",
@@ -388,6 +388,7 @@ class SsoAccessTokenProvider(
388388
throw InvalidClientException.builder().message(message).build()
389389
}
390390

391+
var stageName = RefreshCredentialStage.CREATE_TOKEN
391392
try {
392393
val newToken = client.createToken {
393394
it.clientId(registration.clientId)
@@ -396,11 +397,13 @@ class SsoAccessTokenProvider(
396397
it.refreshToken(currentToken.refreshToken)
397398
}
398399

400+
stageName = RefreshCredentialStage.GET_TOKEN_DETAILS
399401
val token = when (currentToken) {
400402
is DeviceAuthorizationGrantToken -> newToken.toDAGAccessToken(currentToken.createdAt)
401403
is PKCEAuthorizationGrantToken -> newToken.toPKCEAccessToken(currentToken.createdAt)
402404
}
403405

406+
stageName = RefreshCredentialStage.SAVE_TOKEN
404407
saveAccessToken(token)
405408

406409
sendRefreshCredentialsMetric(
@@ -417,12 +420,13 @@ class SsoAccessTokenProvider(
417420
else -> null
418421
}
419422
val message = when (e) {
420-
is AwsServiceException -> e.awsErrorDetails()?.errorMessage() ?: "Unknown error"
421-
else -> e.message ?: "Unknown error"
422-
}
423+
is AwsServiceException -> e.awsErrorDetails()?.errorMessage()
424+
else -> e.message
425+
} ?: "$stageName: Unknown error"
426+
423427
sendRefreshCredentialsMetric(
424428
currentToken,
425-
reason = "Refresh access token request failed",
429+
reason = "Refresh access token request failed: $stageName",
426430
reasonDesc = message,
427431
requestId = requestId,
428432
result = Result.Failed
@@ -431,6 +435,12 @@ class SsoAccessTokenProvider(
431435
}
432436
}
433437

438+
enum class RefreshCredentialStage {
439+
CREATE_TOKEN,
440+
GET_TOKEN_DETAILS,
441+
SAVE_TOKEN
442+
}
443+
434444
private fun loadDagClientRegistration(): ClientRegistration? =
435445
cache.loadClientRegistration(dagClientRegistrationCacheKey)?.let {
436446
return it

0 commit comments

Comments
 (0)