Skip to content

Commit 373cb76

Browse files
committed
Added scaling highlights
1 parent 876a3dd commit 373cb76

File tree

7 files changed

+90
-18
lines changed

7 files changed

+90
-18
lines changed

analytics-provider/src/main/java/org/digma/intellij/plugin/analytics/AnalyticsProvider.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,5 +131,7 @@ public interface AnalyticsProvider extends Closeable {
131131

132132
String getHighlightsTopInsightsV2(HighlightsRequest request);
133133

134+
String getHighlightsScaling(HighlightsRequest request);
135+
134136
String getHighlightsImpact(HighlightsRequest request);
135137
}

analytics-provider/src/main/java/org/digma/intellij/plugin/analytics/RestAnalyticsProvider.java

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -335,6 +335,11 @@ public String getHighlightsTopInsightsV2(HighlightsRequest request) {
335335
return execute(() -> client.analyticsProvider.getHighlightsTopInsightsV2(request));
336336
}
337337

338+
@Override
339+
public String getHighlightsScaling(HighlightsRequest request) {
340+
return execute(() -> client.analyticsProvider.getHighlightsScaling(request));
341+
}
342+
338343
@Override
339344
public HttpResponse lowLevelCall(HttpRequest request) {
340345

@@ -954,5 +959,11 @@ Call<ResponseBody> setInsightCustomStartTime(
954959
@POST("/authentication/register")
955960
Call<String> register(@Body Map<String, Object> request);
956961

962+
@Headers({
963+
"Accept: application/+json",
964+
"Content-Type:application/json"
965+
})
966+
@POST("/highlights/scaling")
967+
Call<String> getHighlightsScaling(@Body HighlightsRequest request);
957968
}
958969
}

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -403,6 +403,11 @@ public String getHighlightsTopInsightsV2(HighlightsRequest request) throws Analy
403403
return executeCatching(() -> analyticsProviderProxy.getHighlightsTopInsightsV2(request));
404404
}
405405

406+
public String getHighlightsScaling(HighlightsRequest request) throws AnalyticsServiceException {
407+
return executeCatching(() -> analyticsProviderProxy.getHighlightsScaling(request));
408+
}
409+
410+
406411
public String getHighlightsImpact(HighlightsRequest request) throws AnalyticsServiceException {
407412
return executeCatching(() -> analyticsProviderProxy.getHighlightsImpact(request));
408413
}

src/main/kotlin/org/digma/intellij/plugin/ui/highlights/HighlightsMessageRouterHandler.kt

Lines changed: 38 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,9 @@ import com.fasterxml.jackson.databind.node.ObjectNode
77
import com.intellij.openapi.project.Project
88
import org.cef.browser.CefBrowser
99
import org.digma.intellij.plugin.analytics.getVersion
10-
import org.digma.intellij.plugin.analytics.isCentralized
1110
import org.digma.intellij.plugin.log.Log
1211
import org.digma.intellij.plugin.model.rest.highlights.HighlightsRequest
13-
import org.digma.intellij.plugin.ui.common.updateObservabilityValue
14-
import org.digma.intellij.plugin.ui.highlights.model.SetHighlightsImpactMessage
15-
import org.digma.intellij.plugin.ui.highlights.model.SetHighlightsPerformanceMessage
16-
import org.digma.intellij.plugin.ui.highlights.model.SetHighlightsTopInsightsMessage
12+
import org.digma.intellij.plugin.ui.highlights.model.*
1713
import org.digma.intellij.plugin.ui.jcef.BaseCommonMessageRouterHandler
1814
import org.digma.intellij.plugin.ui.jcef.getQueryMapFromPayload
1915
import org.digma.intellij.plugin.ui.jcef.serializeAndExecuteWindowPostMessageJavaScript
@@ -23,12 +19,12 @@ class HighlightsMessageRouterHandler(project: Project) : BaseCommonMessageRouter
2319
override fun doOnQuery(project: Project, browser: CefBrowser, requestJsonNode: JsonNode, rawRequest: String, action: String): Boolean {
2420

2521
var version = getVersion();
26-
if (version == "unknown" || version >= "0.3.7")
27-
{
22+
if (version == "unknown" || compareVersions("0.3.7", version) <= 0) {
2823
when (action) {
2924
"MAIN/GET_HIGHLIGHTS_PERFORMANCE_DATA" -> getHighlightsPerformanceV2(browser, requestJsonNode)
3025
"MAIN/GET_HIGHLIGHTS_TOP_ISSUES_DATA" -> getHighlightsTopInsightsV2(browser, requestJsonNode)
3126
"MAIN/GET_HIGHLIGHTS_IMPACT_DATA" -> getHighlightsImpact(browser, requestJsonNode)
27+
"MAIN/GET_HIGHLIGHTS_SCALING_DATA" -> getHighlightsScaling(browser, requestJsonNode)
3228

3329
else -> {
3430
return false
@@ -62,6 +58,21 @@ class HighlightsMessageRouterHandler(project: Project) : BaseCommonMessageRouter
6258
serializeAndExecuteWindowPostMessageJavaScript(browser, message)
6359
}
6460

61+
private fun compareVersions(left: String, right: String): Int {
62+
val leftParts = left.split(".").map { it.toInt() }
63+
val rightParts = right.split(".").map { it.toInt() }
64+
65+
for (i in 0 until minOf(leftParts.size, rightParts.size)) {
66+
if (leftParts[i] < rightParts[i]) {
67+
return -1
68+
} else if (leftParts[i] > rightParts[i]) {
69+
return 1
70+
}
71+
}
72+
73+
return leftParts.size.compareTo(rightParts.size)
74+
}
75+
6576
private fun getHighlightsTopInsights(browser: CefBrowser, requestJsonNode: JsonNode) {
6677
Log.log(logger::trace, project, "getHighlightsTopInsights called")
6778

@@ -108,6 +119,26 @@ class HighlightsMessageRouterHandler(project: Project) : BaseCommonMessageRouter
108119
}
109120
}
110121

122+
123+
@Synchronized
124+
@Throws(JsonProcessingException::class)
125+
private fun getHighlightsScaling(browser: CefBrowser, requestJsonNode: JsonNode) {
126+
127+
Log.log(logger::trace, project, "getHighlightsScaling called")
128+
129+
val payloadQuery = getPayloadQuery(requestJsonNode)
130+
if (payloadQuery is ObjectNode) {
131+
132+
var request = createHighlightsRequest(payloadQuery, "scopedSpanCodeObjectId");
133+
val payload = HighlightsService.getInstance(project).getHighlightsScaling(request)
134+
135+
val message = SetHighlightsScalingMessage(payload)
136+
Log.log(logger::trace, project, "sending MAIN/SET_HIGHLIGHTS_PERFORMANCE_DATA message")
137+
serializeAndExecuteWindowPostMessageJavaScript(browser, message)
138+
}
139+
}
140+
141+
111142
private fun getHighlightsTopInsightsV2(browser: CefBrowser, requestJsonNode: JsonNode) {
112143
Log.log(logger::trace, project, "getHighlightsTopInsights called")
113144

src/main/kotlin/org/digma/intellij/plugin/ui/highlights/HighlightsService.kt

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -83,4 +83,16 @@ class HighlightsService(val project: Project) : InsightsServiceImpl(project) {
8383
null
8484
}
8585
}
86+
87+
fun getHighlightsScaling(request: HighlightsRequest): String? {
88+
EDT.assertNonDispatchThread()
89+
90+
return try {
91+
val highlightsPerformance = AnalyticsService.getInstance(project).getHighlightsScaling(request)
92+
highlightsPerformance
93+
} catch (e: AnalyticsServiceException) {
94+
Log.warnWithException(logger, project, e, "Error loading highlights top insights {}", e.message)
95+
null
96+
}
97+
}
8698
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package org.digma.intellij.plugin.ui.highlights.model
2+
3+
import com.fasterxml.jackson.annotation.JsonRawValue
4+
import org.digma.intellij.plugin.ui.jcef.JCEFGlobalConstants
5+
6+
data class SetHighlightsScalingMessage(@JsonRawValue val payload: String?) {
7+
val type = JCEFGlobalConstants.REQUEST_MESSAGE_TYPE
8+
val action = "MAIN/SET_HIGHLIGHTS_SCALING_DATA"
9+
}

0 commit comments

Comments
 (0)