@oneuptime/common 10.0.83 → 10.0.85

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.
Files changed (100) hide show
  1. package/Models/DatabaseModels/Index.ts +2 -0
  2. package/Models/DatabaseModels/KubernetesContainer.ts +552 -0
  3. package/Models/DatabaseModels/KubernetesResource.ts +130 -0
  4. package/Models/DatabaseModels/LlmLog.ts +2 -1
  5. package/Models/DatabaseModels/LlmProvider.ts +5 -4
  6. package/Models/DatabaseModels/Project.ts +40 -0
  7. package/Server/API/KubernetesResourceAPI.ts +144 -12
  8. package/Server/Infrastructure/Postgres/SchemaMigrations/1777550162848-MigrationName.ts +29 -0
  9. package/Server/Infrastructure/Postgres/SchemaMigrations/1777571961028-MigrationName.ts +99 -0
  10. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +4 -0
  11. package/Server/Infrastructure/Queue.ts +60 -0
  12. package/Server/Infrastructure/QueueWorker.ts +39 -1
  13. package/Server/Middleware/HttpMetricsMiddleware.ts +92 -0
  14. package/Server/Services/AuditLogService.ts +19 -1
  15. package/Server/Services/KubernetesContainerService.ts +264 -0
  16. package/Server/Services/KubernetesResourceService.ts +233 -0
  17. package/Server/Services/StatusPageSubscriberService.ts +4 -4
  18. package/Server/Types/Database/Permissions/AccessControlPermission.ts +3 -3
  19. package/Server/Utils/LLM/LLMService.ts +132 -11
  20. package/Server/Utils/Monitor/MonitorAlert.ts +1 -1
  21. package/Server/Utils/Monitor/MonitorIncident.ts +1 -1
  22. package/Server/Utils/StartServer.ts +2 -0
  23. package/Server/Utils/Telemetry/AppMetrics.ts +211 -0
  24. package/Server/Utils/Telemetry/RuntimeMetrics.ts +169 -0
  25. package/Server/Utils/Telemetry.ts +98 -0
  26. package/Server/Utils/Workspace/Slack/Actions/Alert.ts +2 -2
  27. package/Server/Utils/Workspace/Slack/Actions/Incident.ts +2 -2
  28. package/Server/Utils/Workspace/Slack/Actions/ScheduledMaintenance.ts +2 -2
  29. package/Tests/jest.setup.ts +18 -0
  30. package/Types/Kubernetes/KubernetesInventoryExtractor.ts +171 -5
  31. package/Types/LLM/LlmType.ts +3 -0
  32. package/UI/Components/Forms/ModelForm.tsx +3 -3
  33. package/UI/Components/Label/Labels.tsx +10 -2
  34. package/UI/Components/LogsViewer/components/LogsAnalyticsView.tsx +2 -2
  35. package/Utils/UUID.ts +1 -3
  36. package/build/dist/Models/DatabaseModels/Index.js +2 -0
  37. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  38. package/build/dist/Models/DatabaseModels/KubernetesContainer.js +581 -0
  39. package/build/dist/Models/DatabaseModels/KubernetesContainer.js.map +1 -0
  40. package/build/dist/Models/DatabaseModels/KubernetesResource.js +135 -0
  41. package/build/dist/Models/DatabaseModels/KubernetesResource.js.map +1 -1
  42. package/build/dist/Models/DatabaseModels/LlmLog.js +1 -1
  43. package/build/dist/Models/DatabaseModels/LlmLog.js.map +1 -1
  44. package/build/dist/Models/DatabaseModels/LlmProvider.js +4 -4
  45. package/build/dist/Models/DatabaseModels/LlmProvider.js.map +1 -1
  46. package/build/dist/Models/DatabaseModels/Project.js +41 -0
  47. package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
  48. package/build/dist/Server/API/KubernetesResourceAPI.js +106 -9
  49. package/build/dist/Server/API/KubernetesResourceAPI.js.map +1 -1
  50. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1777550162848-MigrationName.js +16 -0
  51. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1777550162848-MigrationName.js.map +1 -0
  52. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1777571961028-MigrationName.js +40 -0
  53. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1777571961028-MigrationName.js.map +1 -0
  54. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +4 -0
  55. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  56. package/build/dist/Server/Infrastructure/Queue.js +44 -0
  57. package/build/dist/Server/Infrastructure/Queue.js.map +1 -1
  58. package/build/dist/Server/Infrastructure/QueueWorker.js +31 -1
  59. package/build/dist/Server/Infrastructure/QueueWorker.js.map +1 -1
  60. package/build/dist/Server/Middleware/HttpMetricsMiddleware.js +61 -0
  61. package/build/dist/Server/Middleware/HttpMetricsMiddleware.js.map +1 -0
  62. package/build/dist/Server/Services/AuditLogService.js +14 -1
  63. package/build/dist/Server/Services/AuditLogService.js.map +1 -1
  64. package/build/dist/Server/Services/KubernetesContainerService.js +179 -0
  65. package/build/dist/Server/Services/KubernetesContainerService.js.map +1 -0
  66. package/build/dist/Server/Services/KubernetesResourceService.js +175 -0
  67. package/build/dist/Server/Services/KubernetesResourceService.js.map +1 -1
  68. package/build/dist/Server/Services/StatusPageSubscriberService.js +4 -4
  69. package/build/dist/Server/Services/StatusPageSubscriberService.js.map +1 -1
  70. package/build/dist/Server/Types/Database/Permissions/AccessControlPermission.js +3 -3
  71. package/build/dist/Server/Utils/LLM/LLMService.js +111 -13
  72. package/build/dist/Server/Utils/LLM/LLMService.js.map +1 -1
  73. package/build/dist/Server/Utils/Monitor/MonitorAlert.js +1 -1
  74. package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
  75. package/build/dist/Server/Utils/Monitor/MonitorIncident.js +1 -1
  76. package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
  77. package/build/dist/Server/Utils/StartServer.js +2 -0
  78. package/build/dist/Server/Utils/StartServer.js.map +1 -1
  79. package/build/dist/Server/Utils/Telemetry/AppMetrics.js +167 -0
  80. package/build/dist/Server/Utils/Telemetry/AppMetrics.js.map +1 -0
  81. package/build/dist/Server/Utils/Telemetry/RuntimeMetrics.js +141 -0
  82. package/build/dist/Server/Utils/Telemetry/RuntimeMetrics.js.map +1 -0
  83. package/build/dist/Server/Utils/Telemetry.js +47 -0
  84. package/build/dist/Server/Utils/Telemetry.js.map +1 -1
  85. package/build/dist/Server/Utils/Workspace/Slack/Actions/Alert.js +2 -2
  86. package/build/dist/Server/Utils/Workspace/Slack/Actions/Incident.js +2 -2
  87. package/build/dist/Server/Utils/Workspace/Slack/Actions/ScheduledMaintenance.js +2 -2
  88. package/build/dist/Tests/jest.setup.js +17 -0
  89. package/build/dist/Tests/jest.setup.js.map +1 -1
  90. package/build/dist/Types/Kubernetes/KubernetesInventoryExtractor.js +116 -4
  91. package/build/dist/Types/Kubernetes/KubernetesInventoryExtractor.js.map +1 -1
  92. package/build/dist/Types/LLM/LlmType.js +3 -0
  93. package/build/dist/Types/LLM/LlmType.js.map +1 -1
  94. package/build/dist/UI/Components/Forms/ModelForm.js +3 -3
  95. package/build/dist/UI/Components/Label/Labels.js +8 -2
  96. package/build/dist/UI/Components/Label/Labels.js.map +1 -1
  97. package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js.map +1 -1
  98. package/build/dist/Utils/UUID.js +1 -2
  99. package/build/dist/Utils/UUID.js.map +1 -1
  100. package/package.json +6 -8
@@ -6,6 +6,12 @@ import OpenTelemetryAPI, {
6
6
  */
7
7
  Meter,
8
8
  type AttributeValue,
9
+ type Attributes,
10
+ type ObservableCounter,
11
+ type ObservableGauge,
12
+ type ObservableResult,
13
+ type ObservableUpDownCounter,
14
+ type UpDownCounter,
9
15
  } from "@opentelemetry/api";
10
16
  import { Logger, logs } from "@opentelemetry/api-logs";
11
17
  import {
@@ -42,6 +48,7 @@ import URL from "../../Types/API/URL";
42
48
  import Dictionary from "../../Types/Dictionary";
43
49
  import { AppVersion, Env, DisableTelemetry } from "../EnvironmentConfig";
44
50
  import logger from "./Logger";
51
+ import RuntimeMetrics from "./Telemetry/RuntimeMetrics";
45
52
 
46
53
  type ResourceWithRawAttributes = LogsResource & {
47
54
  getRawAttributes?: () => Array<[string, AttributeValue | undefined]>;
@@ -59,6 +66,16 @@ export type SpanOptions = opentelemetry.api.SpanOptions;
59
66
  export type TelemetryLogger = Logger;
60
67
  export type TelemetryAttributes = opentelemetry.api.Attributes;
61
68
  export type TelemetryCounter = Counter<opentelemetry.api.Attributes>;
69
+ export type TelemetryHistogram = Histogram<opentelemetry.api.Attributes>;
70
+ export type TelemetryUpDownCounter =
71
+ UpDownCounter<opentelemetry.api.Attributes>;
72
+ export type TelemetryObservableGauge = ObservableGauge<Attributes>;
73
+ export type TelemetryObservableCounter = ObservableCounter<Attributes>;
74
+ export type TelemetryObservableUpDownCounter =
75
+ ObservableUpDownCounter<Attributes>;
76
+ export type TelemetryObservableCallback = (
77
+ result: ObservableResult<Attributes>,
78
+ ) => void | Promise<void>;
62
79
 
63
80
  export enum SpanStatusCode {
64
81
  UNSET = 0,
@@ -286,6 +303,13 @@ export default class Telemetry {
286
303
  sdk.start();
287
304
 
288
305
  this.sdk = sdk;
306
+
307
+ try {
308
+ RuntimeMetrics.init();
309
+ } catch (err) {
310
+ logger.error("Failed to initialize runtime metrics");
311
+ logger.error(err);
312
+ }
289
313
  }
290
314
 
291
315
  return this.sdk;
@@ -389,6 +413,80 @@ export default class Telemetry {
389
413
  return histogram;
390
414
  }
391
415
 
416
+ public static getObservableGauge(data: {
417
+ name: string;
418
+ description: string;
419
+ unit?: string;
420
+ callback: TelemetryObservableCallback;
421
+ }): TelemetryObservableGauge {
422
+ const metricOptions: MetricOptions = {
423
+ description: data.description,
424
+ };
425
+
426
+ if (data.unit) {
427
+ metricOptions.unit = data.unit;
428
+ }
429
+
430
+ const gauge: TelemetryObservableGauge =
431
+ this.getMeter().createObservableGauge(data.name, metricOptions);
432
+
433
+ gauge.addCallback(data.callback);
434
+
435
+ return gauge;
436
+ }
437
+
438
+ public static getObservableCounter(data: {
439
+ name: string;
440
+ description: string;
441
+ unit?: string;
442
+ callback: TelemetryObservableCallback;
443
+ }): TelemetryObservableCounter {
444
+ const metricOptions: MetricOptions = {
445
+ description: data.description,
446
+ };
447
+
448
+ if (data.unit) {
449
+ metricOptions.unit = data.unit;
450
+ }
451
+
452
+ const counter: TelemetryObservableCounter =
453
+ this.getMeter().createObservableCounter(data.name, metricOptions);
454
+
455
+ counter.addCallback(data.callback);
456
+
457
+ return counter;
458
+ }
459
+
460
+ public static getObservableUpDownCounter(data: {
461
+ name: string;
462
+ description: string;
463
+ unit?: string;
464
+ callback: TelemetryObservableCallback;
465
+ }): TelemetryObservableUpDownCounter {
466
+ const metricOptions: MetricOptions = {
467
+ description: data.description,
468
+ };
469
+
470
+ if (data.unit) {
471
+ metricOptions.unit = data.unit;
472
+ }
473
+
474
+ const counter: TelemetryObservableUpDownCounter =
475
+ this.getMeter().createObservableUpDownCounter(data.name, metricOptions);
476
+
477
+ counter.addCallback(data.callback);
478
+
479
+ return counter;
480
+ }
481
+
482
+ public static isMetricsEnabled(): boolean {
483
+ if (DisableTelemetry) {
484
+ return false;
485
+ }
486
+
487
+ return Boolean(this.metricReader);
488
+ }
489
+
392
490
  public static getTracer(): opentelemetry.api.Tracer {
393
491
  const tracer: opentelemetry.api.Tracer =
394
492
  OpenTelemetryAPI.trace.getTracer("default");
@@ -172,7 +172,7 @@ export default class SlackAlertActions {
172
172
  return;
173
173
  }
174
174
 
175
- // invlaid action type.
175
+ // invalid action type.
176
176
  return Response.sendErrorResponse(
177
177
  req,
178
178
  res,
@@ -263,7 +263,7 @@ export default class SlackAlertActions {
263
263
  return;
264
264
  }
265
265
 
266
- // invlaid action type.
266
+ // invalid action type.
267
267
  return Response.sendErrorResponse(
268
268
  req,
269
269
  res,
@@ -629,7 +629,7 @@ export default class SlackIncidentActions {
629
629
  return;
630
630
  }
631
631
 
632
- // invlaid action type.
632
+ // invalid action type.
633
633
  return Response.sendErrorResponse(
634
634
  req,
635
635
  res,
@@ -724,7 +724,7 @@ export default class SlackIncidentActions {
724
724
  return;
725
725
  }
726
726
 
727
- // invlaid action type.
727
+ // invalid action type.
728
728
  return Response.sendErrorResponse(
729
729
  req,
730
730
  res,
@@ -638,7 +638,7 @@ export default class SlackScheduledMaintenanceActions {
638
638
  return;
639
639
  }
640
640
 
641
- // invlaid action type.
641
+ // invalid action type.
642
642
  return Response.sendErrorResponse(
643
643
  req,
644
644
  res,
@@ -774,7 +774,7 @@ export default class SlackScheduledMaintenanceActions {
774
774
  return;
775
775
  }
776
776
 
777
- // invlaid action type.
777
+ // invalid action type.
778
778
  return Response.sendErrorResponse(
779
779
  req,
780
780
  res,
@@ -1,5 +1,6 @@
1
1
  import "@testing-library/jest-dom";
2
2
  import { TextEncoder, TextDecoder } from "util";
3
+ import { webcrypto, randomUUID } from "crypto";
3
4
 
4
5
  // Polyfill TextEncoder/TextDecoder for jsdom
5
6
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -7,6 +8,23 @@ import { TextEncoder, TextDecoder } from "util";
7
8
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
8
9
  (global as any).TextDecoder = TextDecoder;
9
10
 
11
+ /*
12
+ * jsdom does not expose crypto.randomUUID, so back it with Node's webcrypto
13
+ * (UUID.ts calls globalThis.crypto.randomUUID() to stay browser-bundle-safe).
14
+ */
15
+ if (!globalThis.crypto) {
16
+ Object.defineProperty(globalThis, "crypto", {
17
+ value: webcrypto,
18
+ configurable: true,
19
+ });
20
+ }
21
+ if (typeof globalThis.crypto.randomUUID !== "function") {
22
+ Object.defineProperty(globalThis.crypto, "randomUUID", {
23
+ value: randomUUID,
24
+ configurable: true,
25
+ });
26
+ }
27
+
10
28
  // Mock window.scrollTo for jsdom
11
29
  Object.defineProperty(window, "scrollTo", {
12
30
  value: jest.fn(),
@@ -14,6 +14,8 @@ import {
14
14
  KubernetesVPAObject,
15
15
  KubernetesObjectMetadata,
16
16
  KubernetesCondition,
17
+ KubernetesContainerSpec,
18
+ KubernetesContainerStatus,
17
19
  parsePodObject,
18
20
  parseNodeObject,
19
21
  parseDeploymentObject,
@@ -61,6 +63,23 @@ type AnyKubernetesObject =
61
63
  | KubernetesHPAObject
62
64
  | KubernetesVPAObject;
63
65
 
66
+ /**
67
+ * Row-shaped payload for KubernetesContainer upserts. One row per
68
+ * container inside a Pod's spec.
69
+ */
70
+ export interface ParsedKubernetesContainerRow {
71
+ podNamespaceKey: string;
72
+ podName: string;
73
+ name: string;
74
+ image: string | null;
75
+ state: string | null;
76
+ reason: string | null;
77
+ isReady: boolean | null;
78
+ restartCount: number | null;
79
+ memoryLimitBytes: number | null;
80
+ lastSeenAt: Date;
81
+ }
82
+
64
83
  /**
65
84
  * Row-shaped payload for KubernetesResource upserts. Mirrors the
66
85
  * columns of the KubernetesResource Postgres model.
@@ -130,6 +149,132 @@ export const INVENTORIED_RESOURCE_TYPES: ReadonlyArray<string> = [
130
149
  "verticalpodautoscalers",
131
150
  ];
132
151
 
152
+ /*
153
+ * Parse a Kubernetes memory string ("256Mi", "1Gi", "512M", "2G") to
154
+ * bytes. Returns null when the input is empty or unparseable so
155
+ * callers can leave memoryLimitBytes null rather than store a wrong
156
+ * number.
157
+ */
158
+ function parseMemoryStringToBytes(value: string | undefined): number | null {
159
+ if (!value) {
160
+ return null;
161
+ }
162
+ const match: RegExpMatchArray | null = value
163
+ .trim()
164
+ .match(/^([0-9]*\.?[0-9]+)\s*([A-Za-z]+)?$/);
165
+ if (!match) {
166
+ return null;
167
+ }
168
+ const num: number = parseFloat(match[1] || "");
169
+ if (isNaN(num)) {
170
+ return null;
171
+ }
172
+ const unit: string = (match[2] || "").trim();
173
+
174
+ // Binary units (Kubernetes default for limits).
175
+ if (unit === "Ki") {
176
+ return Math.round(num * 1024);
177
+ }
178
+ if (unit === "Mi") {
179
+ return Math.round(num * 1024 * 1024);
180
+ }
181
+ if (unit === "Gi") {
182
+ return Math.round(num * 1024 * 1024 * 1024);
183
+ }
184
+ if (unit === "Ti") {
185
+ return Math.round(num * 1024 * 1024 * 1024 * 1024);
186
+ }
187
+
188
+ // Decimal units.
189
+ if (unit === "K" || unit === "k") {
190
+ return Math.round(num * 1000);
191
+ }
192
+ if (unit === "M") {
193
+ return Math.round(num * 1000 * 1000);
194
+ }
195
+ if (unit === "G") {
196
+ return Math.round(num * 1000 * 1000 * 1000);
197
+ }
198
+ if (unit === "T") {
199
+ return Math.round(num * 1000 * 1000 * 1000 * 1000);
200
+ }
201
+
202
+ // No unit -> raw bytes.
203
+ if (unit === "") {
204
+ return Math.round(num);
205
+ }
206
+ return null;
207
+ }
208
+
209
+ /**
210
+ * Build per-container rows from a parsed Pod object. The state +
211
+ * reason + ready + restartCount columns are taken from
212
+ * status.containerStatuses (matched by container name). When status
213
+ * hasn't been observed yet (newly scheduled pod) those fields stay
214
+ * null.
215
+ */
216
+ export function extractContainersFromPod(data: {
217
+ parsedPod: KubernetesPodObject;
218
+ lastSeenAt: Date;
219
+ }): Array<ParsedKubernetesContainerRow> {
220
+ const meta: KubernetesObjectMetadata = data.parsedPod.metadata;
221
+ if (!meta || !meta.name) {
222
+ return [];
223
+ }
224
+
225
+ const podNamespaceKey: string = meta.namespace || "";
226
+ const podName: string = meta.name;
227
+
228
+ const specContainers: Array<KubernetesContainerSpec> = Array.isArray(
229
+ data.parsedPod.spec?.containers,
230
+ )
231
+ ? data.parsedPod.spec.containers
232
+ : [];
233
+ const statusList: Array<KubernetesContainerStatus> = Array.isArray(
234
+ data.parsedPod.status?.containerStatuses,
235
+ )
236
+ ? data.parsedPod.status.containerStatuses
237
+ : [];
238
+
239
+ const statusByName: Map<string, KubernetesContainerStatus> = new Map();
240
+ for (const cs of statusList) {
241
+ if (cs && typeof cs.name === "string" && cs.name) {
242
+ statusByName.set(cs.name, cs);
243
+ }
244
+ }
245
+
246
+ const rows: Array<ParsedKubernetesContainerRow> = [];
247
+ for (const container of specContainers) {
248
+ const containerName: string = container?.name || "";
249
+ if (!containerName) {
250
+ continue;
251
+ }
252
+ const cs: KubernetesContainerStatus | undefined =
253
+ statusByName.get(containerName);
254
+
255
+ const memLimitRaw: string | undefined =
256
+ container.resources?.limits?.["memory"];
257
+ const memoryLimitBytes: number | null =
258
+ parseMemoryStringToBytes(memLimitRaw);
259
+
260
+ rows.push({
261
+ podNamespaceKey,
262
+ podName,
263
+ name: containerName,
264
+ image: container.image || (cs ? cs.image || null : null) || null,
265
+ state: cs && typeof cs.state === "string" ? cs.state : null,
266
+ reason:
267
+ cs && typeof cs.reason === "string" && cs.reason ? cs.reason : null,
268
+ isReady: cs ? Boolean(cs.ready) : null,
269
+ restartCount:
270
+ cs && typeof cs.restartCount === "number" ? cs.restartCount : null,
271
+ memoryLimitBytes,
272
+ lastSeenAt: data.lastSeenAt,
273
+ });
274
+ }
275
+ return rows;
276
+ }
277
+
133
278
  function parseCreationTimestamp(value: string | undefined): Date | null {
134
279
  if (!value) {
135
280
  return null;
@@ -227,17 +372,28 @@ function parseByResourceType(
227
372
  }
228
373
  }
229
374
 
375
+ /**
376
+ * Combined result of parsing one k8sobjects log record. The
377
+ * `resource` is the parent KubernetesResource row. `containers` is
378
+ * non-empty only when the record was a Pod, in which case it holds
379
+ * one row per spec.containers entry to upsert into KubernetesContainer.
380
+ */
381
+ export interface ExtractedInventoryRecord {
382
+ resource: ParsedKubernetesResource;
383
+ containers: Array<ParsedKubernetesContainerRow>;
384
+ }
385
+
230
386
  /**
231
387
  * Parse a single OTLP log body string + its k8s.resource.name into a
232
- * ParsedKubernetesResource ready for upsert. Returns null when the
233
- * record is malformed, unsupported, or missing required identity
234
- * fields.
388
+ * ParsedKubernetesResource (and, for Pod records, child container
389
+ * rows) ready for upsert. Returns null when the record is malformed,
390
+ * unsupported, or missing required identity fields.
235
391
  */
236
392
  export function extractInventoryResource(data: {
237
393
  resourceType: string;
238
394
  logBody: string;
239
395
  lastSeenAt: Date;
240
- }): ParsedKubernetesResource | null {
396
+ }): ExtractedInventoryRecord | null {
241
397
  const kind: string | null = kindFromResourceType(data.resourceType);
242
398
  if (!kind) {
243
399
  return null;
@@ -306,7 +462,7 @@ export function extractInventoryResource(data: {
306
462
  status?: unknown;
307
463
  };
308
464
 
309
- return {
465
+ const resource: ParsedKubernetesResource = {
310
466
  kind,
311
467
  namespaceKey: metadata.namespace || "",
312
468
  name: metadata.name,
@@ -338,4 +494,14 @@ export function extractInventoryResource(data: {
338
494
  metadata.creationTimestamp,
339
495
  ),
340
496
  };
497
+
498
+ let containers: Array<ParsedKubernetesContainerRow> = [];
499
+ if (kind === "Pod") {
500
+ containers = extractContainersFromPod({
501
+ parsedPod: parsed as KubernetesPodObject,
502
+ lastSeenAt: data.lastSeenAt,
503
+ });
504
+ }
505
+
506
+ return { resource, containers };
341
507
  }
@@ -1,6 +1,9 @@
1
1
  enum LlmType {
2
2
  OpenAI = "OpenAI",
3
+ AzureOpenAI = "AzureOpenAI",
3
4
  Anthropic = "Anthropic",
5
+ Groq = "Groq",
6
+ Mistral = "Mistral",
4
7
  Ollama = "Ollama",
5
8
  }
6
9
 
@@ -295,7 +295,7 @@ const ModelForm: <TBaseModel extends BaseModel>(
295
295
 
296
296
  fieldsToSet = await fetchDropdownOptions(fieldsToSet);
297
297
 
298
- // if there are no fields to set, then show permission erorr. This is useful when there are no fields to show.
298
+ // if there are no fields to set, then show permission error. This is useful when there are no fields to show.
299
299
  if (fieldsToSet.length === 0 && props.fields.length > 0) {
300
300
  const field: ModelField<TBaseModel> | undefined = props.fields[0];
301
301
 
@@ -303,7 +303,7 @@ const ModelForm: <TBaseModel extends BaseModel>(
303
303
  const fieldName: string | undefined = Object.keys(field.field || {})[0];
304
304
 
305
305
  if (fieldName) {
306
- const fieldPermisisons: Array<Permission> =
306
+ const fieldPermissions: Array<Permission> =
307
307
  getFieldPermissions(fieldName);
308
308
 
309
309
  const columnMetadata: TableColumnMetadata =
@@ -312,7 +312,7 @@ const ModelForm: <TBaseModel extends BaseModel>(
312
312
  setError(
313
313
  `You don't have enough permissions to ${
314
314
  props.formType === FormType.Create ? "create" : "edit"
315
- } ${columnMetadata.title} on ${model.singularName}. You need one of the following permissions: ${fieldPermisisons.join(", ")}`,
315
+ } ${columnMetadata.title} on ${model.singularName}. You need one of the following permissions: ${fieldPermissions.join(", ")}`,
316
316
  );
317
317
  }
318
318
  }
@@ -1,6 +1,7 @@
1
1
  import LabelElement from "./Label";
2
2
  import TableColumnListComponent from "../TableColumnList/TableColumnListComponent";
3
3
  import LabelModel from "../../../Models/DatabaseModels/Label";
4
+ import useTranslateValue from "../../Utils/Translation";
4
5
  import React, { FunctionComponent, ReactElement } from "react";
5
6
 
6
7
  export interface ComponentProps {
@@ -10,10 +11,17 @@ export interface ComponentProps {
10
11
  const LabelsElement: FunctionComponent<ComponentProps> = (
11
12
  props: ComponentProps,
12
13
  ): ReactElement => {
14
+ const { translateString } = useTranslateValue();
15
+ const moreText: string =
16
+ props.labels.length > 4
17
+ ? translateString("more labels") || "more labels"
18
+ : translateString("more label") || "more label";
19
+ const noItemsMessage: string =
20
+ translateString("No labels attached.") || "No labels attached.";
13
21
  return (
14
22
  <TableColumnListComponent
15
23
  items={props.labels}
16
- moreText={props.labels.length > 4 ? "more labels" : "more label"}
24
+ moreText={moreText}
17
25
  className={props.labels.length > 0 ? "-mb-1 -mt-1" : ""}
18
26
  getEachElement={(label: LabelModel) => {
19
27
  return (
@@ -27,7 +35,7 @@ const LabelsElement: FunctionComponent<ComponentProps> = (
27
35
  </div>
28
36
  );
29
37
  }}
30
- noItemsMessage="No labels attached."
38
+ noItemsMessage={noItemsMessage}
31
39
  />
32
40
  );
33
41
  };
@@ -685,13 +685,13 @@ const LogsAnalyticsView: FunctionComponent<LogsAnalyticsViewProps> = (
685
685
  />
686
686
  <Area
687
687
  dataKey={seriesKeys[0] || "count"}
688
- stroke={CHART_COLORS[0]}
688
+ stroke={CHART_COLORS[0]!}
689
689
  strokeWidth={2}
690
690
  fill="url(#areaGradient0)"
691
691
  dot={false}
692
692
  activeDot={{
693
693
  r: 4,
694
- fill: CHART_COLORS[0],
694
+ fill: CHART_COLORS[0]!,
695
695
  stroke: "#fff",
696
696
  strokeWidth: 2,
697
697
  }}
package/Utils/UUID.ts CHANGED
@@ -1,7 +1,5 @@
1
- import { v4 as uuidv4 } from "uuid";
2
-
3
1
  export default class UUID {
4
2
  public static generate(): string {
5
- return uuidv4();
3
+ return globalThis.crypto.randomUUID();
6
4
  }
7
5
  }
@@ -4,6 +4,7 @@ import KubernetesCluster from "./KubernetesCluster";
4
4
  import KubernetesClusterOwnerTeam from "./KubernetesClusterOwnerTeam";
5
5
  import KubernetesClusterOwnerUser from "./KubernetesClusterOwnerUser";
6
6
  import KubernetesResource from "./KubernetesResource";
7
+ import KubernetesContainer from "./KubernetesContainer";
7
8
  import DockerHost from "./DockerHost";
8
9
  import DockerHostOwnerTeam from "./DockerHostOwnerTeam";
9
10
  import DockerHostOwnerUser from "./DockerHostOwnerUser";
@@ -465,6 +466,7 @@ const AllModelTypes = [
465
466
  KubernetesClusterOwnerTeam,
466
467
  KubernetesClusterOwnerUser,
467
468
  KubernetesResource,
469
+ KubernetesContainer,
468
470
  DockerHost,
469
471
  DockerHostOwnerTeam,
470
472
  DockerHostOwnerUser,
@@ -1 +1 @@
1
- {"version":3,"file":"Index.js","sourceRoot":"","sources":["../../../../Models/DatabaseModels/Index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Index.js","sourceRoot":"","sources":["../../../../Models/DatabaseModels/Index.ts"],"names":[],"mappings":"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"}