@64mb/freelens-power 2.1.0 → 2.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -4
- package/out/main/common/power-logs.js.map +1 -1
- package/out/main/common/resource-search.js.map +1 -1
- package/out/main/power-logs-child.js +3 -3
- package/out/main/power-logs-child.js.map +1 -1
- package/out/main/power-logs-database.js +165 -7
- package/out/main/power-logs-database.js.map +1 -1
- package/out/main/power-logs-ipc.js +12 -3
- package/out/main/power-logs-ipc.js.map +1 -1
- package/out/main/power-logs-worker.js +29 -7
- package/out/main/power-logs-worker.js.map +1 -1
- package/out/main/resource-search-database.js +3 -2
- package/out/main/resource-search-database.js.map +1 -1
- package/out/main/resource-search.js +2 -1
- package/out/main/resource-search.js.map +1 -1
- package/out/renderer/_virtual/_global-external_react.js +2 -1
- package/out/renderer/ai-context-mutations.js +14 -0
- package/out/renderer/ai-context-mutations.js.map +1 -0
- package/out/renderer/ai-copy-answer.js +18 -15
- package/out/renderer/ai-copy-answer.js.map +1 -1
- package/out/renderer/ai-diagnostic-handoff.js +2 -2
- package/out/renderer/ai-diagnostic-handoff.js.map +1 -1
- package/out/renderer/ai-extras.js +41 -38
- package/out/renderer/ai-extras.js.map +1 -1
- package/out/renderer/ai-message.js +50 -39
- package/out/renderer/ai-message.js.map +1 -1
- package/out/renderer/ai-provider-icon.js +39 -32
- package/out/renderer/ai-provider-icon.js.map +1 -1
- package/out/renderer/ai-resize.js +40 -37
- package/out/renderer/ai-resize.js.map +1 -1
- package/out/renderer/ai-shortcuts.js +20 -17
- package/out/renderer/ai-shortcuts.js.map +1 -1
- package/out/renderer/ai-terminal-context.js +42 -48
- package/out/renderer/ai-terminal-context.js.map +1 -1
- package/out/renderer/ai.js +137 -111
- package/out/renderer/ai.js.map +1 -1
- package/out/renderer/cluster-icon-colors.js +10 -7
- package/out/renderer/cluster-icon-colors.js.map +1 -1
- package/out/renderer/cluster-icons.js +47 -40
- package/out/renderer/cluster-icons.js.map +1 -1
- package/out/renderer/details/service-diagnostics-details.js +25 -23
- package/out/renderer/details/service-diagnostics-details.js.map +1 -1
- package/out/renderer/diagnostic-explain-button.js +7 -4
- package/out/renderer/diagnostic-explain-button.js.map +1 -1
- package/out/renderer/diagnostics-screen-finding.js +51 -0
- package/out/renderer/diagnostics-screen-finding.js.map +1 -0
- package/out/renderer/diagnostics.css.js +1 -1
- package/out/renderer/diagnostics.css.js.map +1 -1
- package/out/renderer/diagnostics.js +146 -107
- package/out/renderer/diagnostics.js.map +1 -1
- package/out/renderer/incident-copy-button.js +24 -21
- package/out/renderer/incident-copy-button.js.map +1 -1
- package/out/renderer/index.js +2 -0
- package/out/renderer/index.js.map +1 -1
- package/out/renderer/monitoring.js +19 -22
- package/out/renderer/monitoring.js.map +1 -1
- package/out/renderer/native-tooltip.js +22 -0
- package/out/renderer/native-tooltip.js.map +1 -0
- package/out/renderer/pod-details-enhancements.js +106 -0
- package/out/renderer/pod-details-enhancements.js.map +1 -0
- package/out/renderer/power-log-json-cell.js +44 -38
- package/out/renderer/power-log-json-cell.js.map +1 -1
- package/out/renderer/power-log-json.js +17 -10
- package/out/renderer/power-log-json.js.map +1 -1
- package/out/renderer/power-log-sql-editor.js +31 -2
- package/out/renderer/power-log-sql-editor.js.map +1 -1
- package/out/renderer/power-logs-client.js +5 -0
- package/out/renderer/power-logs-client.js.map +1 -1
- package/out/renderer/power-logs-entrypoints.js +10 -36
- package/out/renderer/power-logs-entrypoints.js.map +1 -1
- package/out/renderer/power-logs.css.js +9 -2
- package/out/renderer/power-logs.css.js.map +1 -1
- package/out/renderer/power-logs.js +376 -214
- package/out/renderer/power-logs.js.map +1 -1
- package/out/renderer/preferences/dashboard-preferences.js +42 -35
- package/out/renderer/preferences/dashboard-preferences.js.map +1 -1
- package/out/renderer/preferences/logs-preferences.js +1 -1
- package/out/renderer/preferences/logs-preferences.js.map +1 -1
- package/out/renderer/preferences/monitoring-preferences.js +7 -4
- package/out/renderer/preferences/monitoring-preferences.js.map +1 -1
- package/out/renderer/preferences/preferences.js +2 -2
- package/out/renderer/preferences/preferences.js.map +1 -1
- package/out/renderer/preferences/settings-icon-action.js +12 -11
- package/out/renderer/preferences/settings-icon-action.js.map +1 -1
- package/out/renderer/relationship-map-finding.js +53 -0
- package/out/renderer/relationship-map-finding.js.map +1 -0
- package/out/renderer/resource-relationships.css.js +6 -0
- package/out/renderer/resource-relationships.css.js.map +1 -1
- package/out/renderer/resource-relationships.js +94 -47
- package/out/renderer/resource-relationships.js.map +1 -1
- package/out/renderer/resource-search-client.js.map +1 -1
- package/out/renderer/resource-search.js +88 -35
- package/out/renderer/resource-search.js.map +1 -1
- package/out/renderer/src/common/gateway-relationships.js +8 -7
- package/out/renderer/src/common/gateway-relationships.js.map +1 -1
- package/out/renderer/src/common/power-log-json-filter-sql.js +12 -0
- package/out/renderer/src/common/power-log-json-filter-sql.js.map +1 -1
- package/out/renderer/src/common/power-log-json-preset.js +2 -2
- package/out/renderer/src/common/power-log-json-preset.js.map +1 -1
- package/out/renderer/src/common/power-logs.js.map +1 -1
- package/out/renderer/src/common/resource-relationships.js +10 -8
- package/out/renderer/src/common/resource-relationships.js.map +1 -1
- package/out/renderer/src/common/resource-search.js.map +1 -1
- package/out/renderer/welcome.js +16 -1
- package/out/renderer/welcome.js.map +1 -1
- package/package.json +1 -1
|
@@ -3,6 +3,7 @@ const require__global_external_mobx = require("./_virtual/_global-external_mobx.
|
|
|
3
3
|
const require__global_external_react = require("./_virtual/_global-external_react.js");
|
|
4
4
|
const require_jsx_runtime = require("./_virtual/_global-external_react/jsx-runtime.js");
|
|
5
5
|
const require_ai_icon = require("./ai-icon.js");
|
|
6
|
+
const require_native_tooltip = require("./native-tooltip.js");
|
|
6
7
|
const require_ai_diagnostic_handoff = require("./ai-diagnostic-handoff.js");
|
|
7
8
|
const require_date_time = require("./src/common/date-time.js");
|
|
8
9
|
const require_monitoring_collector = require("./monitoring-collector.js");
|
|
@@ -10,6 +11,7 @@ const require_resource_diagnostics = require("./src/common/resource-diagnostics.
|
|
|
10
11
|
const require_timeline_groups = require("./src/common/timeline-groups.js");
|
|
11
12
|
const require_diagnostic_explain_button = require("./diagnostic-explain-button.js");
|
|
12
13
|
const require_diagnostics_css = require("./diagnostics.css.js");
|
|
14
|
+
const require_diagnostics_screen_finding = require("./diagnostics-screen-finding.js");
|
|
13
15
|
const require_diagnostics_state = require("./diagnostics-state.js");
|
|
14
16
|
const require_incident_copy_button = require("./incident-copy-button.js");
|
|
15
17
|
//#region src/renderer/diagnostics.tsx
|
|
@@ -47,34 +49,40 @@ function ResourceCell({ summary, metric }) {
|
|
|
47
49
|
className: "resource-request",
|
|
48
50
|
children: [/* @__PURE__ */ require_jsx_runtime.jsx("small", { children: summary.unknownRequestPods ? "Known requests" : "Requests" }), /* @__PURE__ */ require_jsx_runtime.jsx("span", { children: resourceText(summary.requests, metric) })]
|
|
49
51
|
}),
|
|
50
|
-
/* @__PURE__ */ require_jsx_runtime.
|
|
51
|
-
className: "resource-coverage",
|
|
52
|
+
/* @__PURE__ */ require_jsx_runtime.jsx(require_native_tooltip.NativeTooltip, {
|
|
52
53
|
title: "Coverage is per resource. Missing metrics are unavailable, never zero.",
|
|
53
|
-
children:
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
54
|
+
children: /* @__PURE__ */ require_jsx_runtime.jsxs("small", {
|
|
55
|
+
className: "resource-coverage",
|
|
56
|
+
children: [
|
|
57
|
+
summary.coveredPods,
|
|
58
|
+
"/",
|
|
59
|
+
summary.totalPods,
|
|
60
|
+
" pods covered",
|
|
61
|
+
summary.unknownRequestPods ? ` · ${summary.unknownRequestPods} requests unknown` : "",
|
|
62
|
+
ratio ? ` · ${ratio}` : ""
|
|
63
|
+
]
|
|
64
|
+
})
|
|
61
65
|
}),
|
|
62
|
-
complete && summary.usage !== void 0 && summary.requests > 0 && summary.usage > summary.requests && /* @__PURE__ */ require_jsx_runtime.
|
|
63
|
-
className: "request-burst",
|
|
66
|
+
complete && summary.usage !== void 0 && summary.requests > 0 && summary.usage > summary.requests && /* @__PURE__ */ require_jsx_runtime.jsx(require_native_tooltip.NativeTooltip, {
|
|
64
67
|
title: "Usage exceeds configured requests. Requests are reservations, not limits; this alone does not indicate a failure.",
|
|
65
|
-
children:
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
68
|
+
children: /* @__PURE__ */ require_jsx_runtime.jsxs("span", {
|
|
69
|
+
className: "request-burst",
|
|
70
|
+
children: [/* @__PURE__ */ require_jsx_runtime.jsx(require_ai_icon.AiIcon, {
|
|
71
|
+
material: "info_outline",
|
|
72
|
+
size: 12
|
|
73
|
+
}), "Above requests"]
|
|
74
|
+
})
|
|
69
75
|
})
|
|
70
76
|
]
|
|
71
77
|
});
|
|
72
78
|
}
|
|
73
79
|
function UnscheduledCell({ cpu, memory }) {
|
|
74
|
-
if (!(cpu.unknownRequestPods || memory.unknownRequestPods) && !cpu.unscheduledRequests && !memory.unscheduledRequests) return /* @__PURE__ */ require_jsx_runtime.jsx(
|
|
75
|
-
className: "unscheduled-empty",
|
|
80
|
+
if (!(cpu.unknownRequestPods || memory.unknownRequestPods) && !cpu.unscheduledRequests && !memory.unscheduledRequests) return /* @__PURE__ */ require_jsx_runtime.jsx(require_native_tooltip.NativeTooltip, {
|
|
76
81
|
title: "No unscheduled requests",
|
|
77
|
-
children: "
|
|
82
|
+
children: /* @__PURE__ */ require_jsx_runtime.jsx("span", {
|
|
83
|
+
className: "unscheduled-empty",
|
|
84
|
+
children: "—"
|
|
85
|
+
})
|
|
78
86
|
});
|
|
79
87
|
return /* @__PURE__ */ require_jsx_runtime.jsxs("div", {
|
|
80
88
|
className: `unscheduled-cell${cpu.unscheduledRequests || memory.unscheduledRequests ? " has-requests" : ""}`,
|
|
@@ -465,6 +473,17 @@ function DiagnosticsPage() {
|
|
|
465
473
|
return owner ? `${owner[1].group.namespace}/${owner[1].group.kind}/${owner[1].group.name}` : timelineResource(entry);
|
|
466
474
|
}, timelineResource);
|
|
467
475
|
const displayedTimeline = groupedTimeline ? timelineGroups.map((group) => group.latest) : timeline;
|
|
476
|
+
require__global_external_react.useEffect(() => {
|
|
477
|
+
if (!data || tab !== "Consumers" && tab !== "Timeline") return;
|
|
478
|
+
const attach = () => require_ai_diagnostic_handoff.explainDiagnosticFinding(require_diagnostics_screen_finding.diagnosticsScreenFinding(data.clusterId, tab, filtered, displayedTimeline, timelineResource));
|
|
479
|
+
window.addEventListener("power-ai-request-screen-context", attach);
|
|
480
|
+
return () => window.removeEventListener("power-ai-request-screen-context", attach);
|
|
481
|
+
}, [
|
|
482
|
+
data,
|
|
483
|
+
tab,
|
|
484
|
+
filtered,
|
|
485
|
+
displayedTimeline
|
|
486
|
+
]);
|
|
468
487
|
const pending = (data?.pods ?? []).filter((pod) => pod.status?.phase === "Pending");
|
|
469
488
|
const attentionPods = new Set(groups.filter((group) => !namespaceScope || group.namespace === namespaceScope).flatMap((group) => group.pods).filter((pod) => ["warning", "error"].includes(consumerStatus([pod]).tone)).map((pod) => pod.metadata.uid ?? pod)).size;
|
|
470
489
|
const AttentionCard = data?.pods ? "button" : "div";
|
|
@@ -503,16 +522,18 @@ function DiagnosticsPage() {
|
|
|
503
522
|
"Timeline",
|
|
504
523
|
"Pending",
|
|
505
524
|
"Not ready"
|
|
506
|
-
].map((name) => /* @__PURE__ */ require_jsx_runtime.
|
|
507
|
-
type: "button",
|
|
525
|
+
].map((name) => /* @__PURE__ */ require_jsx_runtime.jsx(require_native_tooltip.NativeTooltip, {
|
|
508
526
|
title: `Show ${name.toLowerCase()}`,
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
527
|
+
children: /* @__PURE__ */ require_jsx_runtime.jsxs("button", {
|
|
528
|
+
type: "button",
|
|
529
|
+
"aria-pressed": tab === name,
|
|
530
|
+
onClick: () => setTab(name),
|
|
531
|
+
children: [
|
|
532
|
+
/* @__PURE__ */ require_jsx_runtime.jsx(require_ai_icon.AiIcon, { material: name === "Consumers" ? "account_tree" : name === "Timeline" ? "timeline" : "hourglass_empty" }),
|
|
533
|
+
name,
|
|
534
|
+
name === "Pending" && data?.pods ? ` (${pending.length})` : name === "Not ready" && data?.pods ? ` (${notReady.length})` : ""
|
|
535
|
+
]
|
|
536
|
+
})
|
|
516
537
|
}, name))
|
|
517
538
|
}),
|
|
518
539
|
error && /* @__PURE__ */ require_jsx_runtime.jsxs("p", {
|
|
@@ -871,13 +892,15 @@ function DiagnosticsPage() {
|
|
|
871
892
|
role: "group",
|
|
872
893
|
"aria-label": "Event actions",
|
|
873
894
|
children: [
|
|
874
|
-
object && data && /* @__PURE__ */ require_jsx_runtime.jsx(
|
|
875
|
-
type: "button",
|
|
876
|
-
className: "timeline-resource-action",
|
|
877
|
-
"aria-label": "Open resource",
|
|
895
|
+
object && data && /* @__PURE__ */ require_jsx_runtime.jsx(require_native_tooltip.NativeTooltip, {
|
|
878
896
|
title: `Open ${object.kind ?? "Pod"} ${object.metadata.namespace} / ${object.metadata.name}`,
|
|
879
|
-
|
|
880
|
-
|
|
897
|
+
children: /* @__PURE__ */ require_jsx_runtime.jsx("button", {
|
|
898
|
+
type: "button",
|
|
899
|
+
className: "timeline-resource-action",
|
|
900
|
+
"aria-label": "Open resource",
|
|
901
|
+
onClick: (event) => openResource(object, data.clusterId, event),
|
|
902
|
+
children: /* @__PURE__ */ require_jsx_runtime.jsx(require_ai_icon.AiIcon, { material: "open_in_new" })
|
|
903
|
+
})
|
|
881
904
|
}),
|
|
882
905
|
/* @__PURE__ */ require_jsx_runtime.jsx(require_incident_copy_button.IncidentCopyButton, {
|
|
883
906
|
clusterId: data.clusterId,
|
|
@@ -1003,15 +1026,17 @@ function DiagnosticsPage() {
|
|
|
1003
1026
|
] }), /* @__PURE__ */ require_jsx_runtime.jsxs("div", {
|
|
1004
1027
|
className: "pending-state-row",
|
|
1005
1028
|
children: [/* @__PURE__ */ require_jsx_runtime.jsx("h3", { children: readinessView ? "Not ready" : diagnosis.state === "assigned-waiting" ? "Assigned and waiting" : "Unscheduled" }), consumerStatus([selectedPod]).tone === "error" && /* @__PURE__ */ require_jsx_runtime.jsx(ConsumerStatus, { pods: [selectedPod] })]
|
|
1006
|
-
})] }), /* @__PURE__ */ require_jsx_runtime.
|
|
1007
|
-
className: "pending-open-action",
|
|
1008
|
-
type: "button",
|
|
1029
|
+
})] }), /* @__PURE__ */ require_jsx_runtime.jsx(require_native_tooltip.NativeTooltip, {
|
|
1009
1030
|
title: "Open pod details",
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1031
|
+
children: /* @__PURE__ */ require_jsx_runtime.jsxs("button", {
|
|
1032
|
+
className: "pending-open-action",
|
|
1033
|
+
type: "button",
|
|
1034
|
+
onClick: (event) => openResource(selectedPod, data.clusterId, event),
|
|
1035
|
+
children: [/* @__PURE__ */ require_jsx_runtime.jsx(require_ai_icon.AiIcon, {
|
|
1036
|
+
material: "open_in_new",
|
|
1037
|
+
size: 15
|
|
1038
|
+
}), "Open pod"]
|
|
1039
|
+
})
|
|
1015
1040
|
})]
|
|
1016
1041
|
}),
|
|
1017
1042
|
/* @__PURE__ */ require_jsx_runtime.jsx("p", { children: readinessView ? "The pod is running but needs attention. Check readiness conditions, container status and events." : diagnosis.state === "assigned-waiting" ? "A node is assigned. Check pod conditions and events for startup or storage issues." : "No node is assigned. Start with scheduler events, then inspect constraints." }),
|
|
@@ -1145,21 +1170,23 @@ function ConsumerRows({ group, clusterId, snapshotTime, expanded, toggle, usage,
|
|
|
1145
1170
|
className: "consumer-identity-main",
|
|
1146
1171
|
children: [/* @__PURE__ */ require_jsx_runtime.jsxs("div", {
|
|
1147
1172
|
className: "consumer-title-line",
|
|
1148
|
-
children: [group.ownerResolved && resources[group.kind] && group.name !== "Unknown" ? /* @__PURE__ */ require_jsx_runtime.jsx(
|
|
1149
|
-
className: "consumer-resource-link",
|
|
1150
|
-
type: "button",
|
|
1173
|
+
children: [group.ownerResolved && resources[group.kind] && group.name !== "Unknown" ? /* @__PURE__ */ require_jsx_runtime.jsx(require_native_tooltip.NativeTooltip, {
|
|
1151
1174
|
title: `Open ${group.kind} ${group.namespace} / ${group.name}`,
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1175
|
+
children: /* @__PURE__ */ require_jsx_runtime.jsx("button", {
|
|
1176
|
+
className: "consumer-resource-link",
|
|
1177
|
+
type: "button",
|
|
1178
|
+
onClick: (event) => openResource({
|
|
1179
|
+
kind: group.kind,
|
|
1180
|
+
metadata: {
|
|
1181
|
+
uid: group.identity,
|
|
1182
|
+
namespace: group.namespace,
|
|
1183
|
+
name: group.name
|
|
1184
|
+
}
|
|
1185
|
+
}, clusterId, event),
|
|
1186
|
+
children: /* @__PURE__ */ require_jsx_runtime.jsx("span", {
|
|
1187
|
+
className: "consumer-link-name",
|
|
1188
|
+
children: group.name
|
|
1189
|
+
})
|
|
1163
1190
|
})
|
|
1164
1191
|
}) : /* @__PURE__ */ require_jsx_runtime.jsx("span", {
|
|
1165
1192
|
className: "consumer-identity-label",
|
|
@@ -1227,14 +1254,16 @@ function ConsumerRows({ group, clusterId, snapshotTime, expanded, toggle, usage,
|
|
|
1227
1254
|
}),
|
|
1228
1255
|
/* @__PURE__ */ require_jsx_runtime.jsx("span", {
|
|
1229
1256
|
className: "consumer-expand-slot",
|
|
1230
|
-
children: /* @__PURE__ */ require_jsx_runtime.jsx(
|
|
1231
|
-
className: "consumer-expand",
|
|
1232
|
-
type: "button",
|
|
1257
|
+
children: /* @__PURE__ */ require_jsx_runtime.jsx(require_native_tooltip.NativeTooltip, {
|
|
1233
1258
|
title: expanded ? "Collapse pods" : "Expand pods",
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1259
|
+
children: /* @__PURE__ */ require_jsx_runtime.jsx("button", {
|
|
1260
|
+
className: "consumer-expand",
|
|
1261
|
+
type: "button",
|
|
1262
|
+
"aria-label": `${expanded ? "Collapse" : "Expand"} pods for ${group.name}`,
|
|
1263
|
+
"aria-expanded": expanded,
|
|
1264
|
+
onClick: toggle,
|
|
1265
|
+
children: /* @__PURE__ */ require_jsx_runtime.jsx(require_ai_icon.AiIcon, { material: expanded ? "expand_less" : "expand_more" })
|
|
1266
|
+
})
|
|
1238
1267
|
})
|
|
1239
1268
|
})
|
|
1240
1269
|
]
|
|
@@ -1272,18 +1301,20 @@ function ConsumerRows({ group, clusterId, snapshotTime, expanded, toggle, usage,
|
|
|
1272
1301
|
className: "consumer-identity-main",
|
|
1273
1302
|
children: [/* @__PURE__ */ require_jsx_runtime.jsxs("div", {
|
|
1274
1303
|
className: "consumer-title-line",
|
|
1275
|
-
children: [/* @__PURE__ */ require_jsx_runtime.
|
|
1276
|
-
className: "consumer-resource-link",
|
|
1277
|
-
type: "button",
|
|
1304
|
+
children: [/* @__PURE__ */ require_jsx_runtime.jsx(require_native_tooltip.NativeTooltip, {
|
|
1278
1305
|
title: "Open pod details",
|
|
1279
|
-
|
|
1280
|
-
|
|
1281
|
-
|
|
1282
|
-
|
|
1283
|
-
|
|
1284
|
-
|
|
1285
|
-
|
|
1286
|
-
|
|
1306
|
+
children: /* @__PURE__ */ require_jsx_runtime.jsxs("button", {
|
|
1307
|
+
className: "consumer-resource-link",
|
|
1308
|
+
type: "button",
|
|
1309
|
+
onClick: (event) => openResource(pod, clusterId, event),
|
|
1310
|
+
children: [/* @__PURE__ */ require_jsx_runtime.jsx(require_ai_icon.AiIcon, {
|
|
1311
|
+
material: "view_in_ar",
|
|
1312
|
+
size: 14
|
|
1313
|
+
}), /* @__PURE__ */ require_jsx_runtime.jsx("span", {
|
|
1314
|
+
className: "consumer-link-name",
|
|
1315
|
+
children: pod.metadata.name
|
|
1316
|
+
})]
|
|
1317
|
+
})
|
|
1287
1318
|
}), /* @__PURE__ */ require_jsx_runtime.jsx(ConsumerStatus, { pods: [pod] })]
|
|
1288
1319
|
}), /* @__PURE__ */ require_jsx_runtime.jsxs("small", {
|
|
1289
1320
|
className: "consumer-subtitle",
|
|
@@ -1311,10 +1342,12 @@ function ConsumerRows({ group, clusterId, snapshotTime, expanded, toggle, usage,
|
|
|
1311
1342
|
}),
|
|
1312
1343
|
/* @__PURE__ */ require_jsx_runtime.jsx("td", {
|
|
1313
1344
|
className: "numeric",
|
|
1314
|
-
children: /* @__PURE__ */ require_jsx_runtime.jsx(
|
|
1315
|
-
className: "unscheduled-empty",
|
|
1345
|
+
children: /* @__PURE__ */ require_jsx_runtime.jsx(require_native_tooltip.NativeTooltip, {
|
|
1316
1346
|
title: pod.spec?.nodeName ? "No unscheduled requests" : "Unscheduled requests are included in the workload total",
|
|
1317
|
-
children:
|
|
1347
|
+
children: /* @__PURE__ */ require_jsx_runtime.jsx("span", {
|
|
1348
|
+
className: "unscheduled-empty",
|
|
1349
|
+
children: pod.spec?.nodeName ? "—" : "Included above"
|
|
1350
|
+
})
|
|
1318
1351
|
})
|
|
1319
1352
|
})
|
|
1320
1353
|
]
|
|
@@ -1358,21 +1391,23 @@ function NamespaceRows({ namespace, groups, clusterId, snapshotTime, usage, open
|
|
|
1358
1391
|
children: [/* @__PURE__ */ require_jsx_runtime.jsxs("div", {
|
|
1359
1392
|
className: "consumer-title-line",
|
|
1360
1393
|
children: [
|
|
1361
|
-
/* @__PURE__ */ require_jsx_runtime.
|
|
1362
|
-
type: "button",
|
|
1363
|
-
className: "consumer-resource-link namespace-identity",
|
|
1364
|
-
onClick: (event) => openResource({
|
|
1365
|
-
kind: "Namespace",
|
|
1366
|
-
metadata: { name: namespace }
|
|
1367
|
-
}, clusterId, event),
|
|
1394
|
+
/* @__PURE__ */ require_jsx_runtime.jsx(require_native_tooltip.NativeTooltip, {
|
|
1368
1395
|
title: "Open namespace",
|
|
1369
|
-
children:
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
|
|
1396
|
+
children: /* @__PURE__ */ require_jsx_runtime.jsxs("button", {
|
|
1397
|
+
type: "button",
|
|
1398
|
+
className: "consumer-resource-link namespace-identity",
|
|
1399
|
+
onClick: (event) => openResource({
|
|
1400
|
+
kind: "Namespace",
|
|
1401
|
+
metadata: { name: namespace }
|
|
1402
|
+
}, clusterId, event),
|
|
1403
|
+
children: [/* @__PURE__ */ require_jsx_runtime.jsx(require_ai_icon.AiIcon, {
|
|
1404
|
+
material: "folder_open",
|
|
1405
|
+
size: 17
|
|
1406
|
+
}), /* @__PURE__ */ require_jsx_runtime.jsx("span", {
|
|
1407
|
+
className: "consumer-link-name",
|
|
1408
|
+
children: namespace
|
|
1409
|
+
})]
|
|
1410
|
+
})
|
|
1376
1411
|
}),
|
|
1377
1412
|
/* @__PURE__ */ require_jsx_runtime.jsx(ConsumerStatus, { pods: groups.flatMap((group) => group.pods) }),
|
|
1378
1413
|
/* @__PURE__ */ require_jsx_runtime.jsxs("small", { children: [
|
|
@@ -1387,27 +1422,31 @@ function NamespaceRows({ namespace, groups, clusterId, snapshotTime, usage, open
|
|
|
1387
1422
|
"unknown"
|
|
1388
1423
|
] })
|
|
1389
1424
|
]
|
|
1390
|
-
}), /* @__PURE__ */ require_jsx_runtime.
|
|
1391
|
-
className: "consumer-subtitle",
|
|
1425
|
+
}), /* @__PURE__ */ require_jsx_runtime.jsx(require_native_tooltip.NativeTooltip, {
|
|
1392
1426
|
title: "Resource totals include only consumers shown by the current filters",
|
|
1393
|
-
children:
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1427
|
+
children: /* @__PURE__ */ require_jsx_runtime.jsxs("small", {
|
|
1428
|
+
className: "consumer-subtitle",
|
|
1429
|
+
children: [
|
|
1430
|
+
groups.length,
|
|
1431
|
+
" filtered consumers",
|
|
1432
|
+
/* @__PURE__ */ require_jsx_runtime.jsx("span", { children: "·" }),
|
|
1433
|
+
groups.reduce((total, group) => total + group.pods.length, 0),
|
|
1434
|
+
" pods"
|
|
1435
|
+
]
|
|
1436
|
+
})
|
|
1400
1437
|
})]
|
|
1401
1438
|
}), /* @__PURE__ */ require_jsx_runtime.jsx("span", {
|
|
1402
1439
|
className: "consumer-expand-slot",
|
|
1403
|
-
children: /* @__PURE__ */ require_jsx_runtime.jsx(
|
|
1404
|
-
className: "consumer-expand",
|
|
1405
|
-
type: "button",
|
|
1440
|
+
children: /* @__PURE__ */ require_jsx_runtime.jsx(require_native_tooltip.NativeTooltip, {
|
|
1406
1441
|
title: open ? "Collapse namespace workloads" : "Expand namespace workloads",
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1442
|
+
children: /* @__PURE__ */ require_jsx_runtime.jsx("button", {
|
|
1443
|
+
className: "consumer-expand",
|
|
1444
|
+
type: "button",
|
|
1445
|
+
"aria-label": `${open ? "Collapse" : "Expand"} workloads in ${namespace}`,
|
|
1446
|
+
"aria-expanded": open,
|
|
1447
|
+
onClick: toggleNamespace,
|
|
1448
|
+
children: /* @__PURE__ */ require_jsx_runtime.jsx(require_ai_icon.AiIcon, { material: open ? "expand_less" : "expand_more" })
|
|
1449
|
+
})
|
|
1411
1450
|
})
|
|
1412
1451
|
})]
|
|
1413
1452
|
}) }),
|