Skip to content

Commit ecb1e65

Browse files
authored
add reauth metrics (#4591)
1 parent 9cfe9f4 commit ecb1e65

File tree

2 files changed

+50
-10
lines changed

2 files changed

+50
-10
lines changed

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

Lines changed: 50 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,11 @@ import software.aws.toolkits.jetbrains.core.credentials.sso.bearer.BearerTokenPr
2525
import software.aws.toolkits.jetbrains.core.credentials.sso.bearer.InteractiveBearerTokenProvider
2626
import software.aws.toolkits.jetbrains.utils.runUnderProgressIfNeeded
2727
import software.aws.toolkits.resources.message
28+
import software.aws.toolkits.telemetry.AuthTelemetry
29+
import software.aws.toolkits.telemetry.AwsTelemetry
30+
import software.aws.toolkits.telemetry.CredentialSourceId
31+
import software.aws.toolkits.telemetry.CredentialType
32+
import software.aws.toolkits.telemetry.Result
2833

2934
sealed interface ToolkitConnection {
3035
val id: String
@@ -219,13 +224,55 @@ fun reauthConnectionIfNeeded(
219224
if (tokenProvider is InteractiveBearerTokenProvider) {
220225
onPendingToken(tokenProvider)
221226
}
222-
return reauthProviderIfNeeded(project, tokenProvider)
227+
return reauthProviderIfNeeded(project, tokenProvider, connection)
223228
}
224229

225-
fun reauthProviderIfNeeded(project: Project?, tokenProvider: BearerTokenProvider): BearerTokenProvider {
230+
private fun reauthProviderIfNeeded(
231+
project: Project?,
232+
tokenProvider: BearerTokenProvider,
233+
connection: ToolkitConnection
234+
): BearerTokenProvider {
226235
maybeReauthProviderIfNeeded(project, tokenProvider) {
227236
runUnderProgressIfNeeded(project, message("credentials.pending.title"), true) {
228-
tokenProvider.reauthenticate()
237+
try {
238+
tokenProvider.reauthenticate()
239+
240+
if (connection is AwsBearerTokenConnection) {
241+
AwsTelemetry.loginWithBrowser(
242+
project = null,
243+
result = Result.Succeeded,
244+
isReAuth = true,
245+
credentialType = CredentialType.BearerToken,
246+
credentialStartUrl = connection.startUrl,
247+
credentialSourceId = CredentialSourceId.AwsId
248+
)
249+
}
250+
AuthTelemetry.addConnection(
251+
project = null,
252+
result = Result.Succeeded,
253+
isReAuth = true,
254+
credentialSourceId = CredentialSourceId.AwsId
255+
)
256+
} catch (e: Exception) {
257+
if (connection is AwsBearerTokenConnection) {
258+
AwsTelemetry.loginWithBrowser(
259+
project = null,
260+
result = Result.Failed,
261+
isReAuth = true,
262+
reason = e.message,
263+
credentialType = CredentialType.BearerToken,
264+
credentialStartUrl = connection.startUrl,
265+
credentialSourceId = CredentialSourceId.AwsId
266+
)
267+
}
268+
AuthTelemetry.addConnection(
269+
project = null,
270+
result = Result.Succeeded,
271+
isReAuth = true,
272+
credentialSourceId = CredentialSourceId.AwsId,
273+
reason = e.message
274+
)
275+
}
229276
}
230277
}
231278

plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/webview/LoginBrowser.kt

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -207,13 +207,6 @@ abstract class LoginBrowser(
207207
if (connection is AwsBearerTokenConnection) {
208208
loginWithBackgroundContext {
209209
reauthConnectionIfNeeded(project, connection, onPendingToken)
210-
AwsTelemetry.loginWithBrowser(
211-
project = null,
212-
isReAuth = true,
213-
result = Result.Succeeded,
214-
credentialStartUrl = connection.startUrl,
215-
credentialType = CredentialType.BearerToken
216-
)
217210
}
218211
}
219212
}

0 commit comments

Comments
 (0)