From 119d32f779d176f63ab583bf423b54cd2d60fe50 Mon Sep 17 00:00:00 2001 From: Sam Stewart Date: Thu, 7 Nov 2024 11:39:45 -0800 Subject: [PATCH 1/6] metrics --- .../controller/chat/telemetry/TelemetryHelper.kt | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/telemetry/TelemetryHelper.kt b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/telemetry/TelemetryHelper.kt index bf7637e6cff..e50814e8543 100644 --- a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/telemetry/TelemetryHelper.kt +++ b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/telemetry/TelemetryHelper.kt @@ -4,6 +4,7 @@ package software.aws.toolkits.jetbrains.services.cwc.controller.chat.telemetry import com.intellij.openapi.project.Project +import com.intellij.openapi.project.ProjectManager import org.jetbrains.annotations.VisibleForTesting import software.amazon.awssdk.services.codewhispererruntime.model.ChatInteractWithMessageEvent import software.amazon.awssdk.services.codewhispererruntime.model.ChatMessageInteractionType @@ -14,6 +15,9 @@ import software.aws.toolkits.core.utils.debug import software.aws.toolkits.core.utils.getLogger import software.aws.toolkits.core.utils.info import software.aws.toolkits.core.utils.warn +import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnection +import software.aws.toolkits.jetbrains.core.credentials.ToolkitConnectionManager +import software.aws.toolkits.jetbrains.core.credentials.pinning.QConnection import software.aws.toolkits.jetbrains.services.codewhisperer.credentials.CodeWhispererClientAdaptor import software.aws.toolkits.jetbrains.services.codewhisperer.customization.CodeWhispererCustomization import software.aws.toolkits.jetbrains.services.codewhisperer.customization.CodeWhispererModelConfigurator @@ -29,6 +33,7 @@ import software.aws.toolkits.jetbrains.services.telemetry.TelemetryService import software.aws.toolkits.jetbrains.settings.CodeWhispererSettings import software.aws.toolkits.jetbrains.utils.notifyError import software.aws.toolkits.resources.message +import software.aws.toolkits.telemetry.AuthTelemetry import software.aws.toolkits.telemetry.CwsprChatCommandType import software.aws.toolkits.telemetry.CwsprChatConversationType import software.aws.toolkits.telemetry.CwsprChatInteractionType @@ -410,12 +415,23 @@ class TelemetryHelper(private val project: Project, private val sessionStorage: companion object { private val logger = getLogger() + + fun getQConnection(): ToolkitConnection? = ToolkitConnectionManager.getInstance( + ProjectManager.getInstance().openProjects.first() + ).activeConnectionForFeature(QConnection.getInstance()) + fun recordOpenChat() { Telemetry.amazonq.openChat.use { it.passive(true) } + if (getQConnection() == null) { + AuthTelemetry.signInPageOpened() + } } fun recordCloseChat() { Telemetry.amazonq.closeChat.use { it.passive(true) } + if (getQConnection() == null) { + AuthTelemetry.signInPageClosed() + } } fun recordTelemetryChatRunCommand(type: CwsprChatCommandType, name: String? = null, startUrl: String? = null) { From 9c40c0994eb9d2ac406c2fa3dc43e353118965ef Mon Sep 17 00:00:00 2001 From: Sam Stewart Date: Thu, 7 Nov 2024 11:50:01 -0800 Subject: [PATCH 2/6] detekt --- .../services/cwc/controller/chat/telemetry/TelemetryHelper.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/telemetry/TelemetryHelper.kt b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/telemetry/TelemetryHelper.kt index e50814e8543..df967641783 100644 --- a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/telemetry/TelemetryHelper.kt +++ b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/telemetry/TelemetryHelper.kt @@ -415,7 +415,6 @@ class TelemetryHelper(private val project: Project, private val sessionStorage: companion object { private val logger = getLogger() - fun getQConnection(): ToolkitConnection? = ToolkitConnectionManager.getInstance( ProjectManager.getInstance().openProjects.first() ).activeConnectionForFeature(QConnection.getInstance()) From f09231a57eb3cd8cbcdfd9634f78db2e2d699dbd Mon Sep 17 00:00:00 2001 From: Sam Stewart Date: Fri, 8 Nov 2024 10:56:46 -0800 Subject: [PATCH 3/6] project instance from call site --- .../toolwindow/AmazonQToolWindowListener.kt | 4 ++-- .../controller/chat/telemetry/TelemetryHelper.kt | 16 ++++++++-------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindowListener.kt b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindowListener.kt index 5eb9c72085c..b201519e6f1 100644 --- a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindowListener.kt +++ b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/amazonq/toolwindow/AmazonQToolWindowListener.kt @@ -12,7 +12,7 @@ class AmazonQToolWindowListener : ToolWindowManagerListener { override fun toolWindowShown(toolWindow: ToolWindow) { if (toolWindow.id == AmazonQToolWindowFactory.WINDOW_ID) { - TelemetryHelper.recordOpenChat() + TelemetryHelper.recordOpenChat(toolWindow.project) } } @@ -26,7 +26,7 @@ class AmazonQToolWindowListener : ToolWindowManagerListener { } if (changeType == ToolWindowManagerListener.ToolWindowManagerEventType.HideToolWindow) { - TelemetryHelper.recordCloseChat() + TelemetryHelper.recordCloseChat(toolWindow.project) } } } diff --git a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/telemetry/TelemetryHelper.kt b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/telemetry/TelemetryHelper.kt index df967641783..5bc89e86fd9 100644 --- a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/telemetry/TelemetryHelper.kt +++ b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/telemetry/TelemetryHelper.kt @@ -4,7 +4,6 @@ package software.aws.toolkits.jetbrains.services.cwc.controller.chat.telemetry import com.intellij.openapi.project.Project -import com.intellij.openapi.project.ProjectManager import org.jetbrains.annotations.VisibleForTesting import software.amazon.awssdk.services.codewhispererruntime.model.ChatInteractWithMessageEvent import software.amazon.awssdk.services.codewhispererruntime.model.ChatMessageInteractionType @@ -415,20 +414,21 @@ class TelemetryHelper(private val project: Project, private val sessionStorage: companion object { private val logger = getLogger() - fun getQConnection(): ToolkitConnection? = ToolkitConnectionManager.getInstance( - ProjectManager.getInstance().openProjects.first() - ).activeConnectionForFeature(QConnection.getInstance()) + fun getQConnection(project: Project): ToolkitConnection? { + return ToolkitConnectionManager.getInstance(project) + .activeConnectionForFeature(QConnection.getInstance()) + } - fun recordOpenChat() { + fun recordOpenChat(project: Project) { Telemetry.amazonq.openChat.use { it.passive(true) } - if (getQConnection() == null) { + if (getQConnection(project) == null) { AuthTelemetry.signInPageOpened() } } - fun recordCloseChat() { + fun recordCloseChat(project: Project) { Telemetry.amazonq.closeChat.use { it.passive(true) } - if (getQConnection() == null) { + if (getQConnection(project) == null) { AuthTelemetry.signInPageClosed() } } From 0b31d57750449f6ec26b0de86727463ee4af6bb9 Mon Sep 17 00:00:00 2001 From: Sam Stewart Date: Fri, 8 Nov 2024 10:59:31 -0800 Subject: [PATCH 4/6] style --- .../chat/telemetry/TelemetryHelper.kt | 39 +++++++++---------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/telemetry/TelemetryHelper.kt b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/telemetry/TelemetryHelper.kt index 5bc89e86fd9..0cd771c607c 100644 --- a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/telemetry/TelemetryHelper.kt +++ b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/telemetry/TelemetryHelper.kt @@ -414,31 +414,30 @@ class TelemetryHelper(private val project: Project, private val sessionStorage: companion object { private val logger = getLogger() - fun getQConnection(project: Project): ToolkitConnection? { - return ToolkitConnectionManager.getInstance(project) - .activeConnectionForFeature(QConnection.getInstance()) - } + private fun getQConnection(project: Project): ToolkitConnection? = ToolkitConnectionManager.getInstance( + project + ).activeConnectionForFeature(QConnection.getInstance()) + } - fun recordOpenChat(project: Project) { - Telemetry.amazonq.openChat.use { it.passive(true) } - if (getQConnection(project) == null) { - AuthTelemetry.signInPageOpened() - } + fun recordOpenChat(project: Project) { + Telemetry.amazonq.openChat.use { it.passive(true) } + if (getQConnection(project) == null) { + AuthTelemetry.signInPageOpened() } + } - fun recordCloseChat(project: Project) { - Telemetry.amazonq.closeChat.use { it.passive(true) } - if (getQConnection(project) == null) { - AuthTelemetry.signInPageClosed() - } + fun recordCloseChat(project: Project) { + Telemetry.amazonq.closeChat.use { it.passive(true) } + if (getQConnection(project) == null) { + AuthTelemetry.signInPageClosed() } + } - fun recordTelemetryChatRunCommand(type: CwsprChatCommandType, name: String? = null, startUrl: String? = null) { - Telemetry.amazonq.runCommand.use { - it.cwsprChatCommandType(type) - .cwsprChatCommandName(name) - .credentialStartUrl(startUrl) - } + fun recordTelemetryChatRunCommand(type: CwsprChatCommandType, name: String? = null, startUrl: String? = null) { + Telemetry.amazonq.runCommand.use { + it.cwsprChatCommandType(type) + .cwsprChatCommandName(name) + .credentialStartUrl(startUrl) } } } From 244a19864ffc301594ed1c3db232069d851056d1 Mon Sep 17 00:00:00 2001 From: Sam Stewart Date: Fri, 8 Nov 2024 15:12:46 -0800 Subject: [PATCH 5/6] fix indents --- .../chat/telemetry/TelemetryHelper.kt | 33 ++++++++++--------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/telemetry/TelemetryHelper.kt b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/telemetry/TelemetryHelper.kt index 0cd771c607c..a94986b8117 100644 --- a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/telemetry/TelemetryHelper.kt +++ b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/telemetry/TelemetryHelper.kt @@ -417,27 +417,28 @@ class TelemetryHelper(private val project: Project, private val sessionStorage: private fun getQConnection(project: Project): ToolkitConnection? = ToolkitConnectionManager.getInstance( project ).activeConnectionForFeature(QConnection.getInstance()) - } - fun recordOpenChat(project: Project) { - Telemetry.amazonq.openChat.use { it.passive(true) } - if (getQConnection(project) == null) { - AuthTelemetry.signInPageOpened() + + fun recordOpenChat(project: Project) { + Telemetry.amazonq.openChat.use { it.passive(true) } + if (getQConnection(project) == null) { + AuthTelemetry.signInPageOpened() + } } - } - fun recordCloseChat(project: Project) { - Telemetry.amazonq.closeChat.use { it.passive(true) } - if (getQConnection(project) == null) { - AuthTelemetry.signInPageClosed() + fun recordCloseChat(project: Project) { + Telemetry.amazonq.closeChat.use { it.passive(true) } + if (getQConnection(project) == null) { + AuthTelemetry.signInPageClosed() + } } - } - fun recordTelemetryChatRunCommand(type: CwsprChatCommandType, name: String? = null, startUrl: String? = null) { - Telemetry.amazonq.runCommand.use { - it.cwsprChatCommandType(type) - .cwsprChatCommandName(name) - .credentialStartUrl(startUrl) + fun recordTelemetryChatRunCommand(type: CwsprChatCommandType, name: String? = null, startUrl: String? = null) { + Telemetry.amazonq.runCommand.use { + it.cwsprChatCommandType(type) + .cwsprChatCommandName(name) + .credentialStartUrl(startUrl) + } } } } From b93796739a3612b638936490e88409c360b083bc Mon Sep 17 00:00:00 2001 From: Sam Stewart Date: Fri, 8 Nov 2024 15:42:11 -0800 Subject: [PATCH 6/6] detekt --- .../services/cwc/controller/chat/telemetry/TelemetryHelper.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/telemetry/TelemetryHelper.kt b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/telemetry/TelemetryHelper.kt index a94986b8117..0b38c94b631 100644 --- a/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/telemetry/TelemetryHelper.kt +++ b/plugins/amazonq/chat/jetbrains-community/src/software/aws/toolkits/jetbrains/services/cwc/controller/chat/telemetry/TelemetryHelper.kt @@ -418,7 +418,6 @@ class TelemetryHelper(private val project: Project, private val sessionStorage: project ).activeConnectionForFeature(QConnection.getInstance()) - fun recordOpenChat(project: Project) { Telemetry.amazonq.openChat.use { it.passive(true) } if (getQConnection(project) == null) {