@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 +131 -3
- package/dist/index.d.cts +15 -7
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +15 -7
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +131 -3
- package/dist/index.mjs.map +1 -1
- package/package.json +3 -3
- package/src/components/observability/DynamicDashboard/DynamicDashboard.test.tsx +3 -0
- package/src/components/observability/MetricStat/index.tsx +12 -4
- package/src/components/observability/renderers/OtelMetricStat.tsx +40 -0
- package/src/hooks/use-kopai-data.test.ts +31 -0
- package/src/hooks/use-kopai-data.ts +12 -5
- package/src/hooks/use-live-logs.test.ts +1 -0
- package/src/lib/__snapshots__/generate-prompt-instructions.test.ts.snap +1 -1
- package/src/lib/renderer.test.tsx +2 -0
- package/src/pages/observability.test.tsx +3 -0
- package/src/pages/observability.tsx +83 -1
- package/src/providers/kopai-provider.tsx +1 -0
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":
|
|
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
|
|
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;
|
package/dist/index.d.cts.map
CHANGED
|
@@ -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":";;;;;;
|
|
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;
|
package/dist/index.d.mts.map
CHANGED
|
@@ -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":";;;;;;;
|
|
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":
|
|
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
|
|
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",
|