Skip to content

Commit 2b0241d

Browse files
Merge pull request #2514 from digma-ai/report
Report
2 parents bd9e7c8 + e7b1f97 commit 2b0241d

File tree

7 files changed

+311
-159
lines changed

7 files changed

+311
-159
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
@@ -74,6 +74,8 @@ public interface AnalyticsProvider extends Closeable {
7474

7575
String getIssuesReportStats(Map<String, Object> queryParams);
7676

77+
String getServiceReport(String queryParams);
78+
7779
String getNotifications(NotificationsRequest notificationsRequest);
7880

7981
void setReadNotificationsTime(SetReadNotificationsRequest setReadNotificationsRequest);

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
@@ -238,6 +238,11 @@ public String getIssuesReportStats(Map<String, Object> queryParams) {
238238
return execute(() -> client.analyticsProvider.getIssuesReportStats(queryParams));
239239
}
240240

241+
@Override
242+
public String getServiceReport(String queryParams) {
243+
return execute(() -> client.analyticsProvider.getServiceReport(queryParams));
244+
}
245+
241246
@Override
242247
public String getAssetsReportStats(Map<String, Object> queryParams) {
243248
return execute(() -> client.analyticsProvider.getAssetsReportStats(queryParams));
@@ -875,6 +880,13 @@ Call<Void> setInsightCustomStartTime(
875880
@GET("reports/issues/statistics")
876881
Call<String> getIssuesReportStats(@QueryMap Map<String, Object> fields);
877882

883+
@Headers({
884+
"Accept: application/+json",
885+
"Content-Type:application/json"
886+
})
887+
@POST("reports/services/issues")
888+
Call<String> getServiceReport(@Body String filters);
889+
878890

879891
@Headers({
880892
"Accept: application/+json",

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
@@ -330,6 +330,11 @@ public String getIssuesReportStats(@NotNull Map<String, Object> queryParams) thr
330330
analyticsProviderProxy.getIssuesReportStats(queryParams));
331331
}
332332

333+
public String getServiceReport(@NotNull String queryParams) throws AnalyticsServiceException {
334+
return executeCatching(() ->
335+
analyticsProviderProxy.getServiceReport(queryParams));
336+
}
337+
333338
public void resetThrottlingStatus() throws AnalyticsServiceException {
334339
executeCatching(() -> {
335340
analyticsProviderProxy.resetThrottlingStatus();

src/main/java/org/digma/intellij/plugin/dashboard/DashboardMessageRouterHandler.java

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,9 @@ public boolean doOnQuery(@NotNull Project project, @NotNull CefBrowser browser,
5555
case "DASHBOARD/GET_REPORT_ASSETS_STATS" -> {
5656
pushAssetsReportStats(browser, requestJsonNode);
5757
}
58+
case "DASHBOARD/GET_METRICS_REPORT_DATA" -> {
59+
pushMetricsData(browser, requestJsonNode);
60+
}
5861
case "GLOBAL/GET_BACKEND_INFO" -> {
5962
//do nothing, dashboard app sends that for some reason, but it's not necessary
6063
}
@@ -116,6 +119,20 @@ private void pushIssuesReportStats(CefBrowser browser, JsonNode requestJsonNode)
116119
}
117120
}
118121

122+
private void pushMetricsData(CefBrowser browser, JsonNode requestJsonNode) {
123+
var project = getProject();
124+
var requestPayload = getPayloadFromRequestNonNull(requestJsonNode);
125+
Log.log(logger::trace, project, "pushMetricsData called");
126+
try {
127+
var payload = AnalyticsService.getInstance(project).getServiceReport(requestPayload.toString());
128+
var message = new SetMetricsReportMessage(payload);
129+
Log.log(logger::trace, project, "sending DASHBOARD/GET_METRICS_REPORT_DATA message");
130+
serializeAndExecuteWindowPostMessageJavaScript(browser, message);
131+
} catch (AnalyticsServiceException ex) {
132+
Log.log(logger::trace, getProject(), "sending DASHBOARD/GET_METRICS_REPORT_DATA message with error");
133+
}
134+
}
135+
119136
private void getData(CefBrowser browser, JsonNode requestJsonNode) throws JsonProcessingException {
120137

121138
var payload = getPayloadFromRequestNonNull(requestJsonNode);
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.dashboard.reports.model
2+
3+
import com.fasterxml.jackson.annotation.JsonRawValue
4+
import org.digma.intellij.plugin.ui.jcef.JCEFGlobalConstants
5+
6+
data class SetMetricsReportMessage(@JsonRawValue val payload: String) {
7+
val type = JCEFGlobalConstants.REQUEST_MESSAGE_TYPE
8+
val action = "DASHBOARD/SET_METRICS_REPORT_DATA"
9+
}

src/main/resources/webview/dashboard/index.js

Lines changed: 253 additions & 148 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/main/resources/webview/main/index.js

Lines changed: 13 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)