Skip to content

Commit 9a894c3

Browse files
committed
Feature/log to posthog when backend return errors on update reqs (#638)
1 parent acaf90c commit 9a894c3

File tree

3 files changed

+33
-1
lines changed

3 files changed

+33
-1
lines changed

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

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,8 @@ class ActivityMonitor(private val project: Project) /*: Runnable, Disposable*/ {
132132
userId,
133133
"error",
134134
mapOf(
135+
"error.source" to "plugin",
136+
"action" to "unknown",
135137
"message" to message,
136138
"exception.type" to exception.javaClass.name,
137139
"exception.message" to exception.message,
@@ -140,6 +142,18 @@ class ActivityMonitor(private val project: Project) /*: Runnable, Disposable*/ {
140142
)
141143
}
142144

145+
fun reportBackendError(message: String, action: String) {
146+
postHog?.capture(
147+
userId,
148+
"error",
149+
mapOf(
150+
"error.source" to "backend",
151+
"action" to action,
152+
"message" to message,
153+
)
154+
)
155+
}
156+
143157
fun registerInsightsViewed(insightTypes: List<out InsightType>) {
144158
val newInsightsViewed = HashSet(insightTypes)
145159
if (lastInsightsViewed != null && lastInsightsViewed == newInsightsViewed)

ide-common/src/main/kotlin/org/digma/intellij/plugin/updates/UpdatesService.kt

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import org.digma.intellij.plugin.model.rest.version.BackendVersionResponse
2222
import org.digma.intellij.plugin.model.rest.version.PluginVersionResponse
2323
import org.digma.intellij.plugin.model.rest.version.VersionRequest
2424
import org.digma.intellij.plugin.model.rest.version.VersionResponse
25+
import org.digma.intellij.plugin.posthog.ActivityMonitor
2526
import org.digma.intellij.plugin.ui.panels.DigmaResettablePanel
2627
import org.jetbrains.annotations.NotNull
2728
import org.jetbrains.annotations.VisibleForTesting
@@ -58,6 +59,7 @@ class UpdatesService(private val project: Project) : Disposable {
5859

5960
private var blackoutStopTime: LocalDateTime = LocalDateTime.now().minusMonths(3)
6061

62+
private var prevBackendErrorsList: List<String> = emptyList()
6163
private var stateBackendVersion: BackendVersionResponse
6264
private var statePluginVersion: PluginVersion
6365

@@ -113,6 +115,20 @@ class UpdatesService(private val project: Project) : Disposable {
113115
return
114116
}
115117

118+
if (!versionsResp.errors.isNullOrEmpty()) {
119+
val currErrors = versionsResp.errors.toList()
120+
121+
if (currErrors != prevBackendErrorsList) {
122+
val activityMonitor = ActivityMonitor.getInstance(project)
123+
currErrors.forEach {
124+
activityMonitor.reportBackendError(it, "query-for-versions-and-propose-to-update")
125+
}
126+
}
127+
128+
prevBackendErrorsList = currErrors
129+
return
130+
}
131+
116132
stateBackendVersion = versionsResp.backend
117133
statePluginVersion.latestVersion = versionsResp.plugin.latestVersion
118134

@@ -128,7 +144,7 @@ class UpdatesService(private val project: Project) : Disposable {
128144
true, "0.0.2", "0.0.1",
129145
BackendDeploymentType.Unknown // cannot determine the deployment type - it will fallback to DockerExtension - as required
130146
)
131-
val resp = VersionResponse(pluginVersionResp, backendVersionResp)
147+
val resp = VersionResponse(pluginVersionResp, backendVersionResp, emptyList())
132148
return resp
133149
}
134150

model/src/main/kotlin/org/digma/intellij/plugin/model/rest/version/VersionResponse.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,12 @@ data class VersionResponse
1111
@ConstructorProperties(
1212
"plugin",
1313
"backend",
14+
"errors",
1415
)
1516
constructor(
1617
val plugin: PluginVersionResponse,
1718
val backend: BackendVersionResponse,
19+
val errors: List<String>,
1820
)
1921

2022
@JsonIgnoreProperties(ignoreUnknown = true)

0 commit comments

Comments
 (0)