From e36aecfd9da86adc68ee7b737159e9d87eb80c67 Mon Sep 17 00:00:00 2001 From: Sam Stewart Date: Wed, 27 Nov 2024 15:47:22 -0800 Subject: [PATCH 1/3] add logs for polling and processing notifs --- .../core/notifications/NotificationPollingService.kt | 8 +++++++- .../core/notifications/ProcessNotificationsBase.kt | 5 +++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/notifications/NotificationPollingService.kt b/plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/notifications/NotificationPollingService.kt index 357cf7e8d99..4a02a7a3627 100644 --- a/plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/notifications/NotificationPollingService.kt +++ b/plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/notifications/NotificationPollingService.kt @@ -17,6 +17,7 @@ import software.aws.toolkits.core.utils.RemoteResolveParser import software.aws.toolkits.core.utils.RemoteResource import software.aws.toolkits.core.utils.error 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.DefaultRemoteResourceResolverProvider import software.aws.toolkits.jetbrains.core.RemoteResourceResolverProvider @@ -77,13 +78,16 @@ internal final class NotificationPollingService : Disposable { var lastException: Exception? = null while (retryCount < MAX_RETRIES) { + LOG.info { "Polling for notifications" } try { val newETag = getNotificationETag() if (newETag == NotificationEtagState.getInstance().etag) { // for when we need to notify on first poll even when there's no new ETag if (isFirstPoll.compareAndSet(true, false)) { - notifyObservers() + LOG.info { "No new notifications, checking cached notifications on first poll" } + return true } + LOG.info { "No new notifications to fetch" } return false } resourceResolver.get() @@ -91,6 +95,7 @@ internal final class NotificationPollingService : Disposable { .toCompletableFuture() .get() NotificationEtagState.getInstance().etag = newETag + LOG.info { "New notifications fetched" } return true } catch (e: Exception) { lastException = e @@ -103,6 +108,7 @@ internal final class NotificationPollingService : Disposable { } } emitFailureMetric(lastException) + LOG.error { "Failed to poll for notifications after $MAX_RETRIES attempts" } return false } diff --git a/plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/notifications/ProcessNotificationsBase.kt b/plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/notifications/ProcessNotificationsBase.kt index 5bbf34bba00..83bc3863a04 100644 --- a/plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/notifications/ProcessNotificationsBase.kt +++ b/plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/notifications/ProcessNotificationsBase.kt @@ -13,6 +13,8 @@ import com.intellij.openapi.application.PathManager import com.intellij.openapi.components.Service import com.intellij.openapi.components.service import com.intellij.openapi.project.Project +import software.aws.toolkits.core.utils.getLogger +import software.aws.toolkits.core.utils.info import software.aws.toolkits.core.utils.inputStream import software.aws.toolkits.jetbrains.utils.notifyStickyWithData import java.nio.file.Paths @@ -45,6 +47,7 @@ class ProcessNotificationsBase( fun retrieveStartupAndEmergencyNotifications() { val isStartupPoll = isStartup.compareAndSet(true, false) + LOG.info { "Retrieving notifications for processing. StartUp notifications included: $isStartupPoll" } val notifications = getNotificationsFromFile() notifications?.let { notificationsList -> val activeNotifications = notificationsList.notifications @@ -66,6 +69,7 @@ class ProcessNotificationsBase( fun processNotification(project: Project, notificationData: NotificationData) { val shouldShow = RulesEngine.displayNotification(project, notificationData) if (shouldShow) { + LOG.info { "Showing notification with id: ${notificationData.id}" } val notificationContent = notificationData.content.locale val severity = notificationData.severity val followupActions = NotificationManager.createActions( @@ -105,6 +109,7 @@ class ProcessNotificationsBase( notifListener.add(newNotifListener) companion object { + private val LOG = getLogger() fun getInstance(project: Project): ProcessNotificationsBase = project.service() private const val NOTIFICATIONS_PATH = "aws-static-resources/notifications.json" From 7b08449ee4f47f8827667c6a397bb9479c8ac6b6 Mon Sep 17 00:00:00 2001 From: Sam Stewart Date: Wed, 27 Nov 2024 15:58:23 -0800 Subject: [PATCH 2/3] redundant --- .../jetbrains/core/notifications/NotificationPollingService.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/notifications/NotificationPollingService.kt b/plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/notifications/NotificationPollingService.kt index 4a02a7a3627..e813d439318 100644 --- a/plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/notifications/NotificationPollingService.kt +++ b/plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/notifications/NotificationPollingService.kt @@ -108,7 +108,6 @@ internal final class NotificationPollingService : Disposable { } } emitFailureMetric(lastException) - LOG.error { "Failed to poll for notifications after $MAX_RETRIES attempts" } return false } From 4e81a883f1a77815c2cd0494ed95bd9190b3db26 Mon Sep 17 00:00:00 2001 From: Sam Stewart Date: Wed, 27 Nov 2024 16:19:25 -0800 Subject: [PATCH 3/3] finish log --- .../jetbrains/core/notifications/ProcessNotificationsBase.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/notifications/ProcessNotificationsBase.kt b/plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/notifications/ProcessNotificationsBase.kt index 83bc3863a04..e759d9d079f 100644 --- a/plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/notifications/ProcessNotificationsBase.kt +++ b/plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/core/notifications/ProcessNotificationsBase.kt @@ -64,6 +64,7 @@ class ProcessNotificationsBase( activeNotifications.forEach { processNotification(project, it) } } + LOG.info { "Finished processing notifications" } } fun processNotification(project: Project, notificationData: NotificationData) {