Skip to content

Commit a734bc0

Browse files
opensearch-trigger-bot[bot]github-actions[bot]Adam Tackett
authored
[Bug] Traces/Services remove toast message on empty data (#2346) (#2347)
* remove toast message on empty data with early returns * make sure errors on request still trigger toast --------- (cherry picked from commit 5703582) Signed-off-by: Adam Tackett <[email protected]> Signed-off-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Adam Tackett <[email protected]>
1 parent 83d0ad4 commit a734bc0

File tree

2 files changed

+49
-24
lines changed

2 files changed

+49
-24
lines changed

public/components/trace_analytics/requests/services_request_handler.ts

Lines changed: 34 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,12 @@ export const handleServicesRequest = async (
4747
dataSourceMDSId,
4848
setServiceMap
4949
);
50+
51+
if (!serviceObject || Object.keys(serviceObject).length === 0) {
52+
setItems([]);
53+
return [];
54+
}
55+
5056
return Promise.all(
5157
response.aggregations.service.buckets
5258
.filter((bucket: any) => serviceObject[bucket.key])
@@ -103,35 +109,39 @@ export const handleServiceMapRequest = async (
103109
getServiceNodesQuery(mode),
104110
mode,
105111
dataSourceMDSId
106-
)
107-
.then((response) => {
108-
response.aggregations.service_name.buckets.map(
109-
(bucket: any) =>
110-
(map[bucket.key] = {
111-
serviceName: bucket.key,
112-
id: id++,
113-
targetResources: bucket.target_resource.buckets.map((res: any) => res.key),
114-
targetServices: [],
115-
destServices: [],
116-
})
117-
);
118-
return true;
119-
})
120-
.catch((error) => {
121-
console.error('Error retrieving service nodes:', error);
122-
coreRefs.core?.notifications.toasts.addError(error, {
123-
title: 'Failed to retrieve service nodes',
124-
toastLifeTimeMs: 10000,
125-
});
126-
return false;
112+
).catch((error) => {
113+
console.error('Error retrieving service nodes:', error);
114+
coreRefs.core?.notifications.toasts.addError(error, {
115+
title: 'Failed to retrieve service nodes',
116+
toastLifeTimeMs: 10000,
127117
});
118+
return null;
119+
});
128120

129-
// Early return if service node not found
130-
if (!serviceNodesResponse) {
121+
if (
122+
!serviceNodesResponse ||
123+
!serviceNodesResponse.aggregations ||
124+
!serviceNodesResponse.aggregations.service_name ||
125+
!serviceNodesResponse.aggregations.service_name.buckets ||
126+
serviceNodesResponse.aggregations.service_name.buckets.length === 0
127+
) {
128+
if (setItems) {
129+
setItems(map);
130+
}
131131
return map;
132132
}
133133

134-
const targets = {};
134+
serviceNodesResponse.aggregations.service_name.buckets.forEach((bucket: any) => {
135+
map[bucket.key] = {
136+
serviceName: bucket.key,
137+
id: id++,
138+
targetResources: bucket.target_resource.buckets.map((res: any) => res.key),
139+
targetServices: [],
140+
destServices: [],
141+
};
142+
});
143+
144+
const targets: Record<string, string> = {};
135145
await handleDslRequest(http, null, getServiceEdgesQuery('target', mode), mode, dataSourceMDSId)
136146
.then((response) =>
137147
response.aggregations.service_name.buckets.map((bucket: any) => {

public/components/trace_analytics/requests/traces_request_handler.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,21 @@ export const handleTracesRequest = async (
153153
percentileRangesResult.status === 'fulfilled' ? percentileRangesResult.value : {};
154154
const response = responseResult.value;
155155

156+
if ((response.statusCode && response.statusCode >= 400) || response.error) {
157+
return Promise.reject(response);
158+
}
159+
160+
if (
161+
!response ||
162+
!response.aggregations ||
163+
!response.aggregations.traces ||
164+
!response.aggregations.traces.buckets ||
165+
response.aggregations.traces.buckets.length === 0
166+
) {
167+
setItems([]);
168+
return [];
169+
}
170+
156171
return response.aggregations.traces.buckets.map((bucket: any) => {
157172
if (mode === 'data_prepper' || mode === 'custom_data_prepper') {
158173
return {

0 commit comments

Comments
 (0)