Skip to content

Commit 60e89a4

Browse files
Add watchers to calculate the time duration of requests
1 parent 5544b78 commit 60e89a4

File tree

6 files changed

+30
-3
lines changed

6 files changed

+30
-3
lines changed

build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ plugins {
2020

2121

2222
dependencies{
23+
implementation(libs.commons.lang3)
2324
implementation(project(":model"))
2425
implementation(project(":analytics-provider"))
2526
implementation(project(":ide-common"))

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.intellij.openapi.diagnostic.Logger;
44
import com.intellij.openapi.project.Project;
5+
import org.apache.commons.lang3.time.StopWatch;
56
import org.digma.intellij.plugin.analytics.AnalyticsService;
67
import org.digma.intellij.plugin.analytics.AnalyticsServiceException;
78
import org.digma.intellij.plugin.document.DocumentInfoService;
@@ -44,6 +45,7 @@ public ErrorsProvider(@NotNull Project project) {
4445
}
4546

4647
public ErrorsListContainer getErrors(@NotNull MethodInfo methodInfo) {
48+
var stopWatch = StopWatch.createStarted();
4749
try {
4850
final List<CodeObjectError> codeObjectErrors = analyticsService.getErrorsOfCodeObject(methodInfo.idWithType());
4951
Log.log(LOGGER::debug, "CodeObjectErrors for {}: {}", methodInfo.getId(), codeObjectErrors);
@@ -66,6 +68,9 @@ public ErrorsListContainer getErrors(@NotNull MethodInfo methodInfo) {
6668
//it may happen many times.
6769
Log.log(LOGGER::debug, "AnalyticsServiceException for getErrors for {}: {}", methodInfo.getId(), e.getMessage());
6870
return new ErrorsListContainer();
71+
} finally {
72+
stopWatch.stop();
73+
Log.log(LOGGER::debug, "getErrors time took {} milliseconds", stopWatch.getTime(java.util.concurrent.TimeUnit.MILLISECONDS));
6974
}
7075
}
7176

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.intellij.openapi.diagnostic.Logger;
44
import com.intellij.openapi.project.Project;
5+
import org.apache.commons.lang3.time.StopWatch;
56
import org.digma.intellij.plugin.analytics.AnalyticsService;
67
import org.digma.intellij.plugin.analytics.AnalyticsServiceException;
78
import org.digma.intellij.plugin.insights.view.BuildersHolder;
@@ -37,6 +38,7 @@ public InsightsListContainer getInsights(@NotNull MethodInfo methodInfo) {
3738
objectIds.add(methodInfo.idWithType());
3839
objectIds.addAll(methodInfo.getRelatedCodeObjectIds());
3940
Log.log(LOGGER::debug, "Got following code object ids for method {}: {}",methodInfo.getId(),objectIds);
41+
var stopWatch = StopWatch.createStarted();
4042

4143
try {
4244
List<? extends CodeObjectInsight> codeObjectInsights = analyticsService.getInsights(objectIds);
@@ -47,13 +49,16 @@ public InsightsListContainer getInsights(@NotNull MethodInfo methodInfo) {
4749
List<ListViewItem<?>> listViewItems = insightsViewBuilder.build(project,methodInfo, codeObjectInsights);
4850
Log.log(LOGGER::debug, "ListViewItems for {}: {}", methodInfo.getId(), listViewItems);
4951
return new InsightsListContainer(listViewItems, codeObjectInsights.size(), usageStatus);
50-
}catch (AnalyticsServiceException e){
52+
} catch (AnalyticsServiceException e) {
5153
//if analyticsService.getInsights throws exception it means insights could not be loaded, usually when
5254
//the backend is not available. return an empty InsightsListContainer to keep everything running and don't
5355
//crash the plugin. don't log the exception, it was logged in AnalyticsService, keep the log quite because
5456
//it may happen many times.
5557
Log.log(LOGGER::debug, "AnalyticsServiceException for getInsights for {}: {}", methodInfo.getId(), e.getMessage());
5658
return new InsightsListContainer();
59+
} finally {
60+
stopWatch.stop();
61+
Log.log(LOGGER::debug, "getInsights time took {} milliseconds", stopWatch.getTime(java.util.concurrent.TimeUnit.MILLISECONDS));
5762
}
5863
}
5964

rider/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ plugins {
1515

1616
dependencies {
1717
implementation(libs.commons.collections4)
18+
implementation(libs.commons.lang3)
1819
compileOnly(project(":ide-common"))
1920
compileOnly(project(":model"))
2021
}

rider/src/main/java/org/digma/intellij/plugin/rider/psi/csharp/CSharpLanguageService.java

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import com.jetbrains.rider.ideaInterop.fileTypes.csharp.CSharpLanguage;
1010
import kotlin.Pair;
1111
import org.apache.commons.collections4.map.LRUMap;
12+
import org.apache.commons.lang3.time.StopWatch;
1213
import org.digma.intellij.plugin.log.Log;
1314
import org.digma.intellij.plugin.model.discovery.DocumentInfo;
1415
import org.digma.intellij.plugin.model.discovery.MethodUnderCaret;
@@ -18,6 +19,7 @@
1819
import org.digma.intellij.plugin.rider.protocol.MethodNavigationHost;
1920
import org.jetbrains.annotations.NotNull;
2021

22+
import java.util.concurrent.TimeUnit;
2123
import java.util.List;
2224
import java.util.Map;
2325

@@ -96,7 +98,13 @@ public Map<String, String> findWorkspaceUrisForCodeObjectIds(List<String> codeOb
9698

9799
@Override
98100
public Map<String, Pair<String, Integer>> findWorkspaceUrisForSpanIds(List<String> spanIds) {
99-
return codeObjectHost.findWorkspaceUrisForSpanIds(spanIds);
101+
var stopWatch = StopWatch.createStarted();
102+
try {
103+
return codeObjectHost.findWorkspaceUrisForSpanIds(spanIds);
104+
} finally {
105+
stopWatch.stop();
106+
Log.log(LOGGER::debug, "findWorkspaceUrisForSpanIds time took {} milliseconds", stopWatch.getTime(TimeUnit.MILLISECONDS));
107+
}
100108
}
101109

102110
@Override

src/main/java/org/digma/intellij/plugin/service/EditorInteractionService.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.intellij.openapi.Disposable;
44
import com.intellij.openapi.diagnostic.Logger;
55
import com.intellij.openapi.project.Project;
6+
import org.apache.commons.lang3.time.StopWatch;
67
import org.digma.intellij.plugin.analytics.AnalyticsService;
78
import org.digma.intellij.plugin.analytics.BackendConnectionMonitor;
89
import org.digma.intellij.plugin.common.Backgroundable;
@@ -107,7 +108,13 @@ public void contextChanged(MethodUnderCaret methodUnderCaret) {
107108

108109
Backgroundable.ensureBackground(project, "Digma: Context change", () -> {
109110
Log.log(LOGGER::debug, "Executing contextChanged in background for {}", methodUnderCaret.getId());
110-
contextChangedImpl(methodUnderCaret);
111+
var stopWatch = StopWatch.createStarted();
112+
try {
113+
contextChangedImpl(methodUnderCaret);
114+
} finally {
115+
stopWatch.stop();
116+
Log.log(LOGGER::debug, "contextChangedImpl time took {} milliseconds", stopWatch.getTime(java.util.concurrent.TimeUnit.MILLISECONDS));
117+
}
111118
});
112119

113120
// if (SwingUtilities.isEventDispatchThread()) {

0 commit comments

Comments
 (0)