Skip to content

Commit 8a91c04

Browse files
committed
fix: send telemetry for describe resource (#791)
Signed-off-by: Andre Dietisheim <[email protected]>
1 parent 9c69e50 commit 8a91c04

File tree

2 files changed

+21
-30
lines changed

2 files changed

+21
-30
lines changed

src/main/kotlin/com/redhat/devtools/intellij/kubernetes/actions/DescribeResourceAction.kt

+21-9
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,13 @@ package com.redhat.devtools.intellij.kubernetes.actions
1212

1313
import com.intellij.openapi.actionSystem.AnActionEvent
1414
import com.intellij.openapi.diagnostic.logger
15+
import com.intellij.openapi.progress.Progressive
1516
import com.redhat.devtools.intellij.common.actions.StructureTreeAction
1617
import com.redhat.devtools.intellij.kubernetes.editor.describe.DescriptionViewerFactory
1718
import com.redhat.devtools.intellij.kubernetes.model.Notification
19+
import com.redhat.devtools.intellij.kubernetes.model.util.toMessage
20+
import com.redhat.devtools.intellij.kubernetes.telemetry.TelemetryService
21+
import com.redhat.devtools.intellij.kubernetes.telemetry.TelemetryService.PROP_RESOURCE_KIND
1822
import io.fabric8.kubernetes.api.model.HasMetadata
1923
import io.fabric8.kubernetes.api.model.Pod
2024
import javax.swing.tree.TreePath
@@ -29,15 +33,23 @@ class DescribeResourceAction: StructureTreeAction() {
2933
val descriptor = selected?.get(0)?.getDescriptor() ?: return
3034
val project = descriptor.project ?: return
3135
val toDescribe: HasMetadata = descriptor.element as? HasMetadata? ?: return
32-
try {
33-
DescriptionViewerFactory.instance.openEditor(toDescribe, project)
34-
} catch (e: RuntimeException) {
35-
logger<DescribeResourceAction>().warn("Error opening editor ${toDescribe.metadata.name}", e)
36-
Notification().error(
37-
"Error opening editor ${toDescribe.metadata.name}",
38-
"Could not open editor for ${toDescribe.kind} '${toDescribe.metadata.name}'."
39-
)
40-
}
36+
run("Describe ${toMessage(toDescribe, 30)}...", true,
37+
Progressive {
38+
val telemetry = TelemetryService.instance.action("describe resource")
39+
.property(PROP_RESOURCE_KIND, toDescribe.kind)
40+
try {
41+
DescriptionViewerFactory.instance.openEditor(toDescribe, project)
42+
telemetry.success().send()
43+
} catch (e: RuntimeException) {
44+
logger<DescribeResourceAction>().warn("Error opening editor ${toDescribe.metadata.name}", e)
45+
Notification().error(
46+
"Error opening editor ${toDescribe.metadata.name}",
47+
"Could not open editor for ${toDescribe.kind} '${toDescribe.metadata.name}'."
48+
)
49+
telemetry.error(e).send()
50+
}
51+
}
52+
)
4153
}
4254

4355
override fun isVisible(selected: Array<out Any>?): Boolean {

src/main/kotlin/com/redhat/devtools/intellij/kubernetes/editor/describe/DescriptionViewerFactory.kt

-21
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,6 @@ import com.intellij.openapi.vfs.VirtualFile
2121
import com.intellij.testFramework.LightVirtualFile
2222
import com.redhat.devtools.intellij.kubernetes.editor.describe.describer.PodDescriber
2323
import com.redhat.devtools.intellij.kubernetes.model.util.isSameResource
24-
import com.redhat.devtools.intellij.kubernetes.telemetry.TelemetryService
25-
import com.redhat.devtools.intellij.telemetry.core.service.TelemetryMessageBuilder
2624
import io.fabric8.kubernetes.api.model.HasMetadata
2725
import io.fabric8.kubernetes.api.model.Pod
2826
import org.jetbrains.yaml.YAMLFileType
@@ -122,23 +120,4 @@ open class DescriptionViewerFactory protected constructor() {
122120
}
123121
}
124122
}
125-
126-
/** for testing purposes */
127-
protected open fun runAsync(runnable: () -> Unit) {
128-
ApplicationManager.getApplication().executeOnPooledThread(runnable)
129-
}
130-
131-
/** for testing purposes */
132-
protected open fun runInUI(runnable: () -> Unit) {
133-
if (ApplicationManager.getApplication().isDispatchThread) {
134-
runnable.invoke()
135-
} else {
136-
ApplicationManager.getApplication().invokeLater(runnable)
137-
}
138-
}
139-
140-
/* for testing purposes */
141-
protected open fun getTelemetryMessageBuilder(): TelemetryMessageBuilder {
142-
return TelemetryService.instance;
143-
}
144123
}

0 commit comments

Comments
 (0)