Skip to content

Commit e382b36

Browse files
committed
Add new messages load data from error time line
1 parent ed710a4 commit e382b36

File tree

6 files changed

+52
-0
lines changed

6 files changed

+52
-0
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
@@ -46,6 +46,8 @@ public interface AnalyticsProvider extends Closeable {
4646

4747
String getGlobalErrors(String payload);
4848

49+
String getErrorTimeseries(String errorId, Map<String, Object> payload);
50+
4951
void setInsightCustomStartTime(CustomStartTimeInsightRequest customStartTimeInsightRequest);
5052

5153
String getErrorDetails(String errorSourceId);

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,11 @@ public String getGlobalErrors(String payload) {
171171
return execute(() -> client.analyticsProvider.getGlobalErrors(payload));
172172
}
173173

174+
@Override
175+
public String getErrorTimeseries(String errorId, Map<String, Object> payload) {
176+
return execute(() -> client.analyticsProvider.getErrorTimeseries( errorId, payload));
177+
}
178+
174179
@Override
175180
public void setInsightCustomStartTime(CustomStartTimeInsightRequest customStartTimeInsightRequest) {
176181
execute(() -> client.analyticsProvider.setInsightCustomStartTime(customStartTimeInsightRequest));
@@ -808,6 +813,13 @@ private interface AnalyticsProviderRetrofit {
808813
@POST("errors")
809814
Call<String> getGlobalErrors(@Body String payload);
810815

816+
@Headers({
817+
"Accept: application/+json",
818+
"Content-Type:application/json"
819+
})
820+
@GET("errors/{errorId}/timeseries")
821+
Call<String> getErrorTimeseries(@Path("errorId") String errorSourceId, @QueryMap Map<String, Object> fields);
822+
811823
@Headers({
812824
"Content-Type:application/json"
813825
})

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,10 @@ public String getGlobalErrors(String payload) throws AnalyticsServiceException {
236236
return executeCatching(() -> analyticsProviderProxy.getGlobalErrors(payload));
237237
}
238238

239+
public String getErrorTimeseries(String error_id, Map<String, Object> payload) throws AnalyticsServiceException {
240+
return executeCatching(() -> analyticsProviderProxy.getErrorTimeseries(error_id, payload));
241+
}
242+
239243
public String getErrorDetails(String errorUid) throws AnalyticsServiceException {
240244
return executeCatching(() -> analyticsProviderProxy.getErrorDetails(errorUid));
241245
}

src/main/kotlin/org/digma/intellij/plugin/ui/errors/ErrorsMessageRouterHandler.kt

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,14 @@ import com.fasterxml.jackson.databind.node.ObjectNode
88
import com.intellij.openapi.project.Project
99
import org.cef.browser.CefBrowser
1010
import org.digma.intellij.plugin.log.Log
11+
import org.digma.intellij.plugin.ui.errors.model.SetErrorTimeseriesDataMessage
1112
import org.digma.intellij.plugin.ui.errors.model.SetErrorsDataMessage
1213
import org.digma.intellij.plugin.ui.errors.model.SetErrorsDetailsMessage
1314
import org.digma.intellij.plugin.ui.errors.model.SetFilesUrlsMessage
1415
import org.digma.intellij.plugin.ui.errors.model.SetGlobalErrorsDataMessage
1516
import org.digma.intellij.plugin.ui.jcef.BaseCommonMessageRouterHandler
17+
import org.digma.intellij.plugin.ui.jcef.getMapFromNode
18+
import org.digma.intellij.plugin.ui.jcef.getQueryMapFromPayload
1619
import org.digma.intellij.plugin.ui.jcef.serializeAndExecuteWindowPostMessageJavaScript
1720

1821
class ErrorsMessageRouterHandler(project: Project) : BaseCommonMessageRouterHandler(project) {
@@ -24,6 +27,7 @@ class ErrorsMessageRouterHandler(project: Project) : BaseCommonMessageRouterHand
2427
when (action) {
2528
"ERRORS/GET_ERRORS_DATA" -> getErrorsData(project, browser, requestJsonNode)
2629
"ERRORS/GET_GLOBAL_ERRORS_DATA" -> getGlobalErrorsData(project, browser, requestJsonNode)
30+
"ERRORS/GET_ERROR_TIMESERIES_DATA" -> getErrorTimeseriesData(project, browser, requestJsonNode)
2731
"ERRORS/GET_ERROR_DETAILS" -> getErrorDetails(project, browser, requestJsonNode)
2832
"ERRORS/OPEN_RAW_ERROR_STACK_TRACE_IN_EDITOR" -> openStackTrace(project, requestJsonNode)
2933
"ERRORS/GO_TO_CODE_LOCATION" -> navigateToCode(project, requestJsonNode)
@@ -62,6 +66,18 @@ class ErrorsMessageRouterHandler(project: Project) : BaseCommonMessageRouterHand
6266
}
6367
}
6468

69+
private fun getErrorTimeseriesData(project: Project, browser: CefBrowser, requestJsonNode: JsonNode) {
70+
getPayloadFromRequest(requestJsonNode)?.let { payload ->
71+
val errorId = payload.get("errorId")?.takeIf { it !is NullNode }?.asText()
72+
if (errorId != null) {
73+
var queryMap = getMapFromNode(payload.get("scope"), objectMapper)
74+
val errorsData = ErrorsService.getInstance(project).getErrorTimeseries(errorId, queryMap)
75+
val setErrorsDataMessage = SetErrorTimeseriesDataMessage(errorsData)
76+
serializeAndExecuteWindowPostMessageJavaScript(browser, setErrorsDataMessage, project)
77+
}
78+
}
79+
}
80+
6581
private fun getErrorDetails(project: Project, browser: CefBrowser, requestJsonNode: JsonNode) {
6682
getPayloadFromRequest(requestJsonNode)?.let { payload ->
6783
val errorId = payload.get("errorId")?.takeIf { it !is NullNode }?.asText()

src/main/kotlin/org/digma/intellij/plugin/ui/errors/ErrorsService.kt

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,15 @@ class ErrorsService(val project: Project) : Disposable {
4747
}
4848
}
4949

50+
fun getErrorTimeseries( errorId: String, payload:Map<String, Any>): String? {
51+
try {
52+
return AnalyticsService.getInstance(project).getErrorTimeseries(errorId, payload)
53+
} catch (e: Throwable) {
54+
Log.warnWithException(logger, project, e, "error fetching errors")
55+
return null
56+
}
57+
}
58+
5059
fun getErrorDetails(errorId: String): String {
5160
try {
5261
return AnalyticsService.getInstance(project).getErrorDetails(errorId)
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.errors.model
2+
3+
import com.fasterxml.jackson.annotation.JsonRawValue
4+
import org.digma.intellij.plugin.ui.jcef.JCEFGlobalConstants
5+
6+
class SetErrorTimeseriesDataMessage(@JsonRawValue val payload: String?) {
7+
val type = JCEFGlobalConstants.REQUEST_MESSAGE_TYPE
8+
val action = "ERRORS/SET_ERROR_TIMESERIES_DATA"
9+
}

0 commit comments

Comments
 (0)