Skip to content

Commit e633df4

Browse files
committed
remove plugin loaded event
1 parent 0317969 commit e633df4

File tree

6 files changed

+95
-41
lines changed

6 files changed

+95
-41
lines changed

ide-common/src/main/java/org/digma/intellij/plugin/common/StartupStartupActivity.java

Lines changed: 0 additions & 32 deletions
This file was deleted.

ide-common/src/main/kotlin/org/digma/intellij/plugin/posthog/ActivityMonitor.kt

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ class ActivityMonitor(private val project: Project, cs: CoroutineScope) : Dispos
148148

149149

150150
override fun dispose() {
151-
//nothing to do, used as parent disposable
151+
postHog?.shutdown()
152152
}
153153

154154

@@ -171,11 +171,16 @@ class ActivityMonitor(private val project: Project, cs: CoroutineScope) : Dispos
171171
mutableDetails["server.deploymentType"] = serverInfo?.deploymentType.toString()
172172
mutableDetails["site"] = serverInfo?.site.toString()
173173

174-
postHog?.capture(
175-
UniqueGeneratedUserId.userId,
176-
eventName,
177-
mutableDetails
178-
)
174+
Log.log(logger::trace, "sending event {}, posthog is alive: {}", eventName, postHog != null)
175+
try {
176+
postHog?.capture(
177+
UniqueGeneratedUserId.userId,
178+
eventName,
179+
mutableDetails
180+
)
181+
} catch (e: Throwable) {
182+
Log.warnWithException(logger, e, "error in postHog.capture")
183+
}
179184
}
180185

181186

@@ -648,11 +653,16 @@ class ActivityMonitor(private val project: Project, cs: CoroutineScope) : Dispos
648653

649654

650655
fun registerFirstTimePluginLoaded() {
656+
//only here use postHog, this event doesn't need all the common properties
651657
postHog?.capture(UniqueGeneratedUserId.userId, "plugin first-init")
652658
}
653659

654-
fun registerPluginLoaded() {
655-
postHog?.capture(UniqueGeneratedUserId.userId, "plugin loaded")
660+
fun registerProjectOpened(openProjects: Int) {
661+
capture("project opened", mapOf("open.projects" to openProjects))
662+
}
663+
664+
fun registerProjectClosed(openProjects: Int) {
665+
capture("project closed", mapOf("open.projects" to openProjects))
656666
}
657667

658668
fun registerPluginUninstalled(): String {
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package org.digma.intellij.plugin.posthog
2+
3+
import com.intellij.openapi.project.DumbService
4+
import com.intellij.openapi.project.Project
5+
import org.digma.intellij.plugin.common.EDT
6+
import org.digma.intellij.plugin.persistence.PersistenceService
7+
import org.digma.intellij.plugin.startup.DigmaProjectActivity
8+
import org.digma.intellij.plugin.ui.ToolWindowShower
9+
10+
class FirstInitStartupActivity : DigmaProjectActivity() {
11+
12+
override fun executeProjectStartup(project: Project) {
13+
//can't rely on intellij RunOnceUtil.runOnceForApp because it will run it again on ide upgrades
14+
if (PersistenceService.getInstance().isFirstTimePluginLoaded()) {
15+
PersistenceService.getInstance().setFirstTimePluginLoadedDone()
16+
ActivityMonitor.getInstance(project).registerFirstTimePluginLoaded()
17+
project.getService(DumbService::class.java).runWhenSmart {
18+
EDT.ensureEDT { ToolWindowShower.getInstance(project).showToolWindow() }
19+
}
20+
}
21+
}
22+
}
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package org.digma.intellij.plugin.posthog
2+
3+
import com.intellij.openapi.diagnostic.Logger
4+
import com.intellij.openapi.project.Project
5+
import com.intellij.openapi.project.ProjectCloseListener
6+
import com.intellij.openapi.startup.ProjectActivity
7+
import org.digma.intellij.plugin.log.Log
8+
import org.digma.intellij.plugin.session.SessionMetadataProperties
9+
import org.digma.intellij.plugin.session.getPluginLoadedKey
10+
import java.util.concurrent.atomic.AtomicInteger
11+
12+
object ProjectsCounter {
13+
val counter = AtomicInteger(0)
14+
15+
}
16+
17+
@Suppress("UnstableApiUsage")
18+
class CountingProjectCloseListener : ProjectCloseListener {
19+
20+
override fun projectClosing(project: Project) {
21+
try {
22+
Log.log(Logger.getInstance(ProjectsCounter::class.java)::trace, "got project closed {}", project.name)
23+
ActivityMonitor.getInstance(project).registerProjectClosed(ProjectsCounter.counter.decrementAndGet())
24+
SessionMetadataProperties.getInstance().delete(getPluginLoadedKey(project))
25+
} catch (e: Throwable) {
26+
Log.warnWithException(Logger.getInstance(ProjectsCounter::class.java), e, "error in projectClosing")
27+
}
28+
}
29+
}
30+
31+
class CountingProjectActivity : ProjectActivity {
32+
33+
override suspend fun execute(project: Project) {
34+
try {
35+
Log.log(Logger.getInstance(ProjectsCounter::class.java)::trace, "got project opened {}", project.name)
36+
ActivityMonitor.getInstance(project).registerProjectOpened(ProjectsCounter.counter.incrementAndGet())
37+
SessionMetadataProperties.getInstance().put(getPluginLoadedKey(project), true)
38+
} catch (e: Throwable) {
39+
Log.warnWithException(Logger.getInstance(ProjectsCounter::class.java), e, "error in ProjectActivity")
40+
}
41+
}
42+
43+
}
44+

ide-common/src/main/kotlin/org/digma/intellij/plugin/session/SessionMetadataProperties.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@ class SessionMetadataProperties {
5454
metadataProperties[key] = SessionMetadataProperty(value)
5555
}
5656

57+
fun delete(key: Any) {
58+
metadataProperties.remove(key)
59+
}
60+
5761
inline fun <reified T> remove(key: Any): T? {
5862
return metadataProperties.remove(key) as T?
5963
}

src/main/resources/META-INF/plugin.xml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@
109109
id="org.digma.intellij.plugin.editor.DigmaEditorNotificationProvider"/>
110110

111111
<postStartupActivity implementation="org.digma.intellij.plugin.posthog.ActivityMonitorStarter"/>
112-
<postStartupActivity implementation="org.digma.intellij.plugin.common.StartupStartupActivity"/>
112+
<postStartupActivity implementation="org.digma.intellij.plugin.posthog.FirstInitStartupActivity"/>
113113
<postStartupActivity implementation="org.digma.intellij.plugin.ui.recentactivity.RecentActivitiesStartup"/>
114114
<postStartupActivity implementation="org.digma.intellij.plugin.posthog.ContainerEngineStartupActivity"/>
115115
<postStartupActivity
@@ -130,6 +130,8 @@
130130

131131
<postStartupActivity implementation="org.digma.intellij.plugin.scheduling.ThreadPoolProviderServiceStarter"/>
132132

133+
<postStartupActivity implementation="org.digma.intellij.plugin.posthog.CountingProjectActivity"/>
134+
133135

134136
</extensions>
135137

@@ -159,5 +161,9 @@
159161
topic="org.digma.intellij.plugin.updates.AggressiveUpdateStateChangedEvent"/>
160162
</projectListeners>
161163

164+
<applicationListeners>
165+
<listener class="org.digma.intellij.plugin.posthog.CountingProjectCloseListener"
166+
topic="com.intellij.openapi.project.ProjectCloseListener"/>
167+
</applicationListeners>
162168

163169
</idea-plugin>

0 commit comments

Comments
 (0)