@kopai/ui 0.9.0 → 0.10.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/dist/index.cjs CHANGED
@@ -59,7 +59,14 @@ function fetchForDataSource(client, dataSource, signal) {
59
59
  switch (dataSource.method) {
60
60
  case "searchTracesPage": return client.searchTracesPage(dataSource.params, { signal });
61
61
  case "searchLogsPage": return client.searchLogsPage(dataSource.params, { signal });
62
- case "searchMetricsPage": return client.searchMetricsPage(dataSource.params, { signal });
62
+ case "searchMetricsPage": {
63
+ const params = dataSource.params;
64
+ if (params.aggregate) return client.searchAggregatedMetrics({
65
+ ...params,
66
+ aggregate: params.aggregate
67
+ }, { signal });
68
+ return client.searchMetricsPage(params, { signal });
69
+ }
63
70
  case "getTrace": return client.getTrace(dataSource.params.traceId, { signal });
64
71
  case "discoverMetrics": return client.discoverMetrics({ signal });
65
72
  case "getServices": return client.getServices({ signal });
@@ -5725,8 +5732,11 @@ function buildStatData(rows) {
5725
5732
  metricName
5726
5733
  };
5727
5734
  }
5728
- function MetricStat({ rows, isLoading = false, error, label, formatValue = defaultFormatValue$1, showTimestamp = false, trend, trendValue, className = "", showSparkline = false, sparklinePoints = 20, sparklineHeight = 40, thresholds, colorBackground, colorValue = false }) {
5729
- const { latestValue, unit, timestamp, dataPoints, metricName } = (0, react.useMemo)(() => buildStatData(rows), [rows]);
5735
+ function MetricStat({ rows, value: directValue, unit: directUnit, isLoading = false, error, label, formatValue = defaultFormatValue$1, showTimestamp = false, trend, trendValue, className = "", showSparkline = false, sparklinePoints = 20, sparklineHeight = 40, thresholds, colorBackground, colorValue = false }) {
5736
+ const statData = (0, react.useMemo)(() => buildStatData(rows), [rows]);
5737
+ const latestValue = directValue ?? statData.latestValue;
5738
+ const unit = directUnit ?? statData.unit;
5739
+ const { timestamp, dataPoints, metricName } = statData;
5730
5740
  const sparklineData = (0, react.useMemo)(() => {
5731
5741
  if (!showSparkline || dataPoints.length === 0) return [];
5732
5742
  return dataPoints.slice(-sparklinePoints).map((dp) => ({ value: dp.value }));
@@ -6611,6 +6621,13 @@ function OtelMetricHistogram(props) {
6611
6621
  }
6612
6622
  //#endregion
6613
6623
  //#region src/components/observability/renderers/OtelMetricStat.tsx
6624
+ const EMPTY_ROWS = [];
6625
+ const GROUPED_AGGREGATE_ERROR = /* @__PURE__ */ new Error("MetricStat cannot display grouped aggregates. Remove groupBy or use MetricTable.");
6626
+ function isAggregatedRequest(props) {
6627
+ const ds = props.element.dataSource;
6628
+ if (!ds || ds.method !== "searchMetricsPage" || !ds.params) return false;
6629
+ return !!ds.params.aggregate;
6630
+ }
6614
6631
  function OtelMetricStat(props) {
6615
6632
  if (!props.hasData) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
6616
6633
  style: {
@@ -6619,6 +6636,24 @@ function OtelMetricStat(props) {
6619
6636
  },
6620
6637
  children: "No data source"
6621
6638
  });
6639
+ if (isAggregatedRequest(props)) {
6640
+ const rows = props.data?.data ?? [];
6641
+ if (rows.length > 1) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MetricStat, {
6642
+ rows: EMPTY_ROWS,
6643
+ error: GROUPED_AGGREGATE_ERROR,
6644
+ label: props.element.props.label ?? void 0,
6645
+ formatValue: formatOtelValue
6646
+ });
6647
+ return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MetricStat, {
6648
+ rows: EMPTY_ROWS,
6649
+ value: rows[0]?.value,
6650
+ isLoading: props.loading,
6651
+ error: props.error ?? void 0,
6652
+ label: props.element.props.label ?? void 0,
6653
+ showSparkline: false,
6654
+ formatValue: formatOtelValue
6655
+ });
6656
+ }
6622
6657
  const response = props.data;
6623
6658
  return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(MetricStat, {
6624
6659
  rows: response?.data ?? [],
@@ -7416,6 +7451,9 @@ const METRICS_TREE = {
7416
7451
  type: "Stack",
7417
7452
  children: [
7418
7453
  "heading",
7454
+ "ingestion-heading",
7455
+ "ingestion-grid",
7456
+ "discovery-heading",
7419
7457
  "description",
7420
7458
  "discovery-card"
7421
7459
  ],
@@ -7436,6 +7474,96 @@ const METRICS_TREE = {
7436
7474
  level: "h2"
7437
7475
  }
7438
7476
  },
7477
+ "ingestion-heading": {
7478
+ key: "ingestion-heading",
7479
+ type: "Heading",
7480
+ children: [],
7481
+ parentKey: "root",
7482
+ props: {
7483
+ text: "OTEL Ingestion",
7484
+ level: "h3"
7485
+ }
7486
+ },
7487
+ "ingestion-grid": {
7488
+ key: "ingestion-grid",
7489
+ type: "Grid",
7490
+ children: ["card-bytes", "card-requests"],
7491
+ parentKey: "root",
7492
+ props: {
7493
+ columns: 2,
7494
+ gap: "md"
7495
+ }
7496
+ },
7497
+ "card-bytes": {
7498
+ key: "card-bytes",
7499
+ type: "Card",
7500
+ children: ["stat-bytes"],
7501
+ parentKey: "ingestion-grid",
7502
+ props: {
7503
+ title: "Total Bytes Ingested",
7504
+ description: null,
7505
+ padding: null
7506
+ }
7507
+ },
7508
+ "stat-bytes": {
7509
+ key: "stat-bytes",
7510
+ type: "MetricStat",
7511
+ children: [],
7512
+ parentKey: "card-bytes",
7513
+ dataSource: {
7514
+ method: "searchMetricsPage",
7515
+ params: {
7516
+ metricType: "Sum",
7517
+ metricName: "kopai.ingestion.bytes",
7518
+ aggregate: "sum"
7519
+ },
7520
+ refetchIntervalMs: 1e4
7521
+ },
7522
+ props: {
7523
+ label: "Bytes",
7524
+ showSparkline: false
7525
+ }
7526
+ },
7527
+ "card-requests": {
7528
+ key: "card-requests",
7529
+ type: "Card",
7530
+ children: ["stat-requests"],
7531
+ parentKey: "ingestion-grid",
7532
+ props: {
7533
+ title: "Total Requests",
7534
+ description: null,
7535
+ padding: null
7536
+ }
7537
+ },
7538
+ "stat-requests": {
7539
+ key: "stat-requests",
7540
+ type: "MetricStat",
7541
+ children: [],
7542
+ parentKey: "card-requests",
7543
+ dataSource: {
7544
+ method: "searchMetricsPage",
7545
+ params: {
7546
+ metricType: "Sum",
7547
+ metricName: "kopai.ingestion.requests",
7548
+ aggregate: "sum"
7549
+ },
7550
+ refetchIntervalMs: 1e4
7551
+ },
7552
+ props: {
7553
+ label: "Requests",
7554
+ showSparkline: false
7555
+ }
7556
+ },
7557
+ "discovery-heading": {
7558
+ key: "discovery-heading",
7559
+ type: "Heading",
7560
+ children: [],
7561
+ parentKey: "root",
7562
+ props: {
7563
+ text: "Discovered Metrics",
7564
+ level: "h3"
7565
+ }
7566
+ },
7439
7567
  description: {
7440
7568
  key: "description",
7441
7569
  type: "Text",
package/dist/index.d.cts CHANGED
@@ -81,6 +81,14 @@ declare const dataSourceSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
81
81
  attributes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
82
82
  resourceAttributes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
83
83
  scopeAttributes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
84
+ aggregate: z.ZodOptional<z.ZodEnum<{
85
+ sum: "sum";
86
+ avg: "avg";
87
+ min: "min";
88
+ max: "max";
89
+ count: "count";
90
+ }>>;
91
+ groupBy: z.ZodOptional<z.ZodArray<z.ZodString>>;
84
92
  limit: z.ZodOptional<z.ZodNumber>;
85
93
  cursor: z.ZodOptional<z.ZodString>;
86
94
  sortOrder: z.ZodOptional<z.ZodEnum<{
@@ -251,9 +259,9 @@ declare const observabilityCatalog: {
251
259
  label: "label";
252
260
  }>>;
253
261
  color: z.ZodNullable<z.ZodEnum<{
262
+ success: "success";
254
263
  default: "default";
255
264
  muted: "muted";
256
- success: "success";
257
265
  warning: "warning";
258
266
  danger: "danger";
259
267
  }>>;
@@ -265,8 +273,8 @@ declare const observabilityCatalog: {
265
273
  props: z.ZodObject<{
266
274
  text: z.ZodString;
267
275
  variant: z.ZodNullable<z.ZodEnum<{
268
- default: "default";
269
276
  success: "success";
277
+ default: "default";
270
278
  warning: "warning";
271
279
  danger: "danger";
272
280
  info: "info";
@@ -429,9 +437,9 @@ declare const observabilityCatalog: {
429
437
  label: "label";
430
438
  }>>;
431
439
  color: z.ZodNullable<z.ZodEnum<{
440
+ success: "success";
432
441
  default: "default";
433
442
  muted: "muted";
434
- success: "success";
435
443
  warning: "warning";
436
444
  danger: "danger";
437
445
  }>>;
@@ -445,8 +453,8 @@ declare const observabilityCatalog: {
445
453
  props: z.ZodObject<{
446
454
  text: z.ZodString;
447
455
  variant: z.ZodNullable<z.ZodEnum<{
448
- default: "default";
449
456
  success: "success";
457
+ default: "default";
450
458
  warning: "warning";
451
459
  danger: "danger";
452
460
  info: "info";
@@ -621,9 +629,9 @@ declare const observabilityCatalog: {
621
629
  label: "label";
622
630
  }>>;
623
631
  color: z.ZodNullable<z.ZodEnum<{
632
+ success: "success";
624
633
  default: "default";
625
634
  muted: "muted";
626
- success: "success";
627
635
  warning: "warning";
628
636
  danger: "danger";
629
637
  }>>;
@@ -637,8 +645,8 @@ declare const observabilityCatalog: {
637
645
  props: z.ZodObject<{
638
646
  text: z.ZodString;
639
647
  variant: z.ZodNullable<z.ZodEnum<{
640
- default: "default";
641
648
  success: "success";
649
+ default: "default";
642
650
  warning: "warning";
643
651
  danger: "danger";
644
652
  info: "info";
@@ -879,7 +887,7 @@ declare function Renderer<C extends {
879
887
  }): react_jsx_runtime0.JSX.Element | null;
880
888
  //#endregion
881
889
  //#region src/providers/kopai-provider.d.ts
882
- type KopaiClient = Pick<KopaiClient$1, "searchTracesPage" | "searchLogsPage" | "searchMetricsPage" | "getTrace" | "discoverMetrics" | "getDashboard" | "getServices" | "getOperations" | "searchTraceSummariesPage">;
890
+ type KopaiClient = Pick<KopaiClient$1, "searchTracesPage" | "searchLogsPage" | "searchMetricsPage" | "searchAggregatedMetrics" | "getTrace" | "discoverMetrics" | "getDashboard" | "getServices" | "getOperations" | "searchTraceSummariesPage">;
883
891
  interface KopaiSDKProviderProps {
884
892
  client: KopaiClient;
885
893
  children: ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../src/pages/observability.tsx","../src/lib/component-catalog.ts","../src/lib/observability-catalog.ts","../src/lib/generate-prompt-instructions.ts","../src/lib/renderer.tsx","../src/providers/kopai-provider.tsx"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../src/pages/observability.tsx","../src/lib/component-catalog.ts","../src/lib/observability-catalog.ts","../src/lib/generate-prompt-instructions.ts","../src/lib/renderer.tsx","../src/providers/kopai-provider.tsx"],"mappings":"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"}
package/dist/index.d.mts CHANGED
@@ -82,6 +82,14 @@ declare const dataSourceSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
82
82
  attributes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
83
83
  resourceAttributes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
84
84
  scopeAttributes: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
85
+ aggregate: z.ZodOptional<z.ZodEnum<{
86
+ sum: "sum";
87
+ avg: "avg";
88
+ min: "min";
89
+ max: "max";
90
+ count: "count";
91
+ }>>;
92
+ groupBy: z.ZodOptional<z.ZodArray<z.ZodString>>;
85
93
  limit: z.ZodOptional<z.ZodNumber>;
86
94
  cursor: z.ZodOptional<z.ZodString>;
87
95
  sortOrder: z.ZodOptional<z.ZodEnum<{
@@ -252,9 +260,9 @@ declare const observabilityCatalog: {
252
260
  label: "label";
253
261
  }>>;
254
262
  color: z.ZodNullable<z.ZodEnum<{
263
+ success: "success";
255
264
  default: "default";
256
265
  muted: "muted";
257
- success: "success";
258
266
  warning: "warning";
259
267
  danger: "danger";
260
268
  }>>;
@@ -266,8 +274,8 @@ declare const observabilityCatalog: {
266
274
  props: z.ZodObject<{
267
275
  text: z.ZodString;
268
276
  variant: z.ZodNullable<z.ZodEnum<{
269
- default: "default";
270
277
  success: "success";
278
+ default: "default";
271
279
  warning: "warning";
272
280
  danger: "danger";
273
281
  info: "info";
@@ -430,9 +438,9 @@ declare const observabilityCatalog: {
430
438
  label: "label";
431
439
  }>>;
432
440
  color: z.ZodNullable<z.ZodEnum<{
441
+ success: "success";
433
442
  default: "default";
434
443
  muted: "muted";
435
- success: "success";
436
444
  warning: "warning";
437
445
  danger: "danger";
438
446
  }>>;
@@ -446,8 +454,8 @@ declare const observabilityCatalog: {
446
454
  props: z.ZodObject<{
447
455
  text: z.ZodString;
448
456
  variant: z.ZodNullable<z.ZodEnum<{
449
- default: "default";
450
457
  success: "success";
458
+ default: "default";
451
459
  warning: "warning";
452
460
  danger: "danger";
453
461
  info: "info";
@@ -622,9 +630,9 @@ declare const observabilityCatalog: {
622
630
  label: "label";
623
631
  }>>;
624
632
  color: z.ZodNullable<z.ZodEnum<{
633
+ success: "success";
625
634
  default: "default";
626
635
  muted: "muted";
627
- success: "success";
628
636
  warning: "warning";
629
637
  danger: "danger";
630
638
  }>>;
@@ -638,8 +646,8 @@ declare const observabilityCatalog: {
638
646
  props: z.ZodObject<{
639
647
  text: z.ZodString;
640
648
  variant: z.ZodNullable<z.ZodEnum<{
641
- default: "default";
642
649
  success: "success";
650
+ default: "default";
643
651
  warning: "warning";
644
652
  danger: "danger";
645
653
  info: "info";
@@ -880,7 +888,7 @@ declare function Renderer<C extends {
880
888
  }): react_jsx_runtime0.JSX.Element | null;
881
889
  //#endregion
882
890
  //#region src/providers/kopai-provider.d.ts
883
- type KopaiClient = Pick<KopaiClient$1, "searchTracesPage" | "searchLogsPage" | "searchMetricsPage" | "getTrace" | "discoverMetrics" | "getDashboard" | "getServices" | "getOperations" | "searchTraceSummariesPage">;
891
+ type KopaiClient = Pick<KopaiClient$1, "searchTracesPage" | "searchLogsPage" | "searchMetricsPage" | "searchAggregatedMetrics" | "getTrace" | "discoverMetrics" | "getDashboard" | "getServices" | "getOperations" | "searchTraceSummariesPage">;
884
892
  interface KopaiSDKProviderProps {
885
893
  client: KopaiClient;
886
894
  children: ReactNode;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../src/pages/observability.tsx","../src/lib/component-catalog.ts","../src/lib/observability-catalog.ts","../src/lib/generate-prompt-instructions.ts","../src/lib/renderer.tsx","../src/providers/kopai-provider.tsx"],"mappings":"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"}
1
+ {"version":3,"file":"index.d.mts","names":[],"sources":["../src/pages/observability.tsx","../src/lib/component-catalog.ts","../src/lib/observability-catalog.ts","../src/lib/generate-prompt-instructions.ts","../src/lib/renderer.tsx","../src/providers/kopai-provider.tsx"],"mappings":"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"}
package/dist/index.mjs CHANGED
@@ -34,7 +34,14 @@ function fetchForDataSource(client, dataSource, signal) {
34
34
  switch (dataSource.method) {
35
35
  case "searchTracesPage": return client.searchTracesPage(dataSource.params, { signal });
36
36
  case "searchLogsPage": return client.searchLogsPage(dataSource.params, { signal });
37
- case "searchMetricsPage": return client.searchMetricsPage(dataSource.params, { signal });
37
+ case "searchMetricsPage": {
38
+ const params = dataSource.params;
39
+ if (params.aggregate) return client.searchAggregatedMetrics({
40
+ ...params,
41
+ aggregate: params.aggregate
42
+ }, { signal });
43
+ return client.searchMetricsPage(params, { signal });
44
+ }
38
45
  case "getTrace": return client.getTrace(dataSource.params.traceId, { signal });
39
46
  case "discoverMetrics": return client.discoverMetrics({ signal });
40
47
  case "getServices": return client.getServices({ signal });
@@ -5700,8 +5707,11 @@ function buildStatData(rows) {
5700
5707
  metricName
5701
5708
  };
5702
5709
  }
5703
- function MetricStat({ rows, isLoading = false, error, label, formatValue = defaultFormatValue$1, showTimestamp = false, trend, trendValue, className = "", showSparkline = false, sparklinePoints = 20, sparklineHeight = 40, thresholds, colorBackground, colorValue = false }) {
5704
- const { latestValue, unit, timestamp, dataPoints, metricName } = useMemo(() => buildStatData(rows), [rows]);
5710
+ function MetricStat({ rows, value: directValue, unit: directUnit, isLoading = false, error, label, formatValue = defaultFormatValue$1, showTimestamp = false, trend, trendValue, className = "", showSparkline = false, sparklinePoints = 20, sparklineHeight = 40, thresholds, colorBackground, colorValue = false }) {
5711
+ const statData = useMemo(() => buildStatData(rows), [rows]);
5712
+ const latestValue = directValue ?? statData.latestValue;
5713
+ const unit = directUnit ?? statData.unit;
5714
+ const { timestamp, dataPoints, metricName } = statData;
5705
5715
  const sparklineData = useMemo(() => {
5706
5716
  if (!showSparkline || dataPoints.length === 0) return [];
5707
5717
  return dataPoints.slice(-sparklinePoints).map((dp) => ({ value: dp.value }));
@@ -6586,6 +6596,13 @@ function OtelMetricHistogram(props) {
6586
6596
  }
6587
6597
  //#endregion
6588
6598
  //#region src/components/observability/renderers/OtelMetricStat.tsx
6599
+ const EMPTY_ROWS = [];
6600
+ const GROUPED_AGGREGATE_ERROR = /* @__PURE__ */ new Error("MetricStat cannot display grouped aggregates. Remove groupBy or use MetricTable.");
6601
+ function isAggregatedRequest(props) {
6602
+ const ds = props.element.dataSource;
6603
+ if (!ds || ds.method !== "searchMetricsPage" || !ds.params) return false;
6604
+ return !!ds.params.aggregate;
6605
+ }
6589
6606
  function OtelMetricStat(props) {
6590
6607
  if (!props.hasData) return /* @__PURE__ */ jsx("div", {
6591
6608
  style: {
@@ -6594,6 +6611,24 @@ function OtelMetricStat(props) {
6594
6611
  },
6595
6612
  children: "No data source"
6596
6613
  });
6614
+ if (isAggregatedRequest(props)) {
6615
+ const rows = props.data?.data ?? [];
6616
+ if (rows.length > 1) return /* @__PURE__ */ jsx(MetricStat, {
6617
+ rows: EMPTY_ROWS,
6618
+ error: GROUPED_AGGREGATE_ERROR,
6619
+ label: props.element.props.label ?? void 0,
6620
+ formatValue: formatOtelValue
6621
+ });
6622
+ return /* @__PURE__ */ jsx(MetricStat, {
6623
+ rows: EMPTY_ROWS,
6624
+ value: rows[0]?.value,
6625
+ isLoading: props.loading,
6626
+ error: props.error ?? void 0,
6627
+ label: props.element.props.label ?? void 0,
6628
+ showSparkline: false,
6629
+ formatValue: formatOtelValue
6630
+ });
6631
+ }
6597
6632
  const response = props.data;
6598
6633
  return /* @__PURE__ */ jsx(MetricStat, {
6599
6634
  rows: response?.data ?? [],
@@ -7391,6 +7426,9 @@ const METRICS_TREE = {
7391
7426
  type: "Stack",
7392
7427
  children: [
7393
7428
  "heading",
7429
+ "ingestion-heading",
7430
+ "ingestion-grid",
7431
+ "discovery-heading",
7394
7432
  "description",
7395
7433
  "discovery-card"
7396
7434
  ],
@@ -7411,6 +7449,96 @@ const METRICS_TREE = {
7411
7449
  level: "h2"
7412
7450
  }
7413
7451
  },
7452
+ "ingestion-heading": {
7453
+ key: "ingestion-heading",
7454
+ type: "Heading",
7455
+ children: [],
7456
+ parentKey: "root",
7457
+ props: {
7458
+ text: "OTEL Ingestion",
7459
+ level: "h3"
7460
+ }
7461
+ },
7462
+ "ingestion-grid": {
7463
+ key: "ingestion-grid",
7464
+ type: "Grid",
7465
+ children: ["card-bytes", "card-requests"],
7466
+ parentKey: "root",
7467
+ props: {
7468
+ columns: 2,
7469
+ gap: "md"
7470
+ }
7471
+ },
7472
+ "card-bytes": {
7473
+ key: "card-bytes",
7474
+ type: "Card",
7475
+ children: ["stat-bytes"],
7476
+ parentKey: "ingestion-grid",
7477
+ props: {
7478
+ title: "Total Bytes Ingested",
7479
+ description: null,
7480
+ padding: null
7481
+ }
7482
+ },
7483
+ "stat-bytes": {
7484
+ key: "stat-bytes",
7485
+ type: "MetricStat",
7486
+ children: [],
7487
+ parentKey: "card-bytes",
7488
+ dataSource: {
7489
+ method: "searchMetricsPage",
7490
+ params: {
7491
+ metricType: "Sum",
7492
+ metricName: "kopai.ingestion.bytes",
7493
+ aggregate: "sum"
7494
+ },
7495
+ refetchIntervalMs: 1e4
7496
+ },
7497
+ props: {
7498
+ label: "Bytes",
7499
+ showSparkline: false
7500
+ }
7501
+ },
7502
+ "card-requests": {
7503
+ key: "card-requests",
7504
+ type: "Card",
7505
+ children: ["stat-requests"],
7506
+ parentKey: "ingestion-grid",
7507
+ props: {
7508
+ title: "Total Requests",
7509
+ description: null,
7510
+ padding: null
7511
+ }
7512
+ },
7513
+ "stat-requests": {
7514
+ key: "stat-requests",
7515
+ type: "MetricStat",
7516
+ children: [],
7517
+ parentKey: "card-requests",
7518
+ dataSource: {
7519
+ method: "searchMetricsPage",
7520
+ params: {
7521
+ metricType: "Sum",
7522
+ metricName: "kopai.ingestion.requests",
7523
+ aggregate: "sum"
7524
+ },
7525
+ refetchIntervalMs: 1e4
7526
+ },
7527
+ props: {
7528
+ label: "Requests",
7529
+ showSparkline: false
7530
+ }
7531
+ },
7532
+ "discovery-heading": {
7533
+ key: "discovery-heading",
7534
+ type: "Heading",
7535
+ children: [],
7536
+ parentKey: "root",
7537
+ props: {
7538
+ text: "Discovered Metrics",
7539
+ level: "h3"
7540
+ }
7541
+ },
7414
7542
  description: {
7415
7543
  key: "description",
7416
7544
  type: "Text",