@kopai/ui 0.10.0 → 0.11.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 +56 -5
- package/dist/index.d.cts +5 -6
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +5 -5
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +56 -5
- package/dist/index.mjs.map +1 -1
- package/package.json +12 -12
- package/src/components/observability/DynamicDashboard/DynamicDashboard.test.tsx +172 -1
- package/src/components/observability/renderers/OtelTraceDetail.tsx +88 -2
package/dist/index.cjs
CHANGED
|
@@ -72,10 +72,7 @@ function fetchForDataSource(client, dataSource, signal) {
|
|
|
72
72
|
case "getServices": return client.getServices({ signal });
|
|
73
73
|
case "getOperations": return client.getOperations(dataSource.params.serviceName, { signal });
|
|
74
74
|
case "searchTraceSummariesPage": return client.searchTraceSummariesPage(dataSource.params, { signal });
|
|
75
|
-
default: {
|
|
76
|
-
const exhaustiveCheck = dataSource;
|
|
77
|
-
throw new Error(`Unknown method: ${exhaustiveCheck.method}`);
|
|
78
|
-
}
|
|
75
|
+
default: throw new Error(`Unknown method: ${dataSource.method}`);
|
|
79
76
|
}
|
|
80
77
|
}
|
|
81
78
|
function useKopaiData(dataSource) {
|
|
@@ -6705,6 +6702,54 @@ function OtelMetricTimeSeries(props) {
|
|
|
6705
6702
|
}
|
|
6706
6703
|
//#endregion
|
|
6707
6704
|
//#region src/components/observability/renderers/OtelTraceDetail.tsx
|
|
6705
|
+
function isTraceSummariesSource(props) {
|
|
6706
|
+
return props.element.dataSource?.method === "searchTraceSummariesPage";
|
|
6707
|
+
}
|
|
6708
|
+
function TraceSummariesView({ data, loading, error }) {
|
|
6709
|
+
const [selectedTraceId, setSelectedTraceId] = (0, react.useState)(null);
|
|
6710
|
+
const client = useKopaiSDK();
|
|
6711
|
+
const response = data;
|
|
6712
|
+
const traces = (0, react.useMemo)(() => {
|
|
6713
|
+
const rows = response?.data;
|
|
6714
|
+
if (!Array.isArray(rows)) return [];
|
|
6715
|
+
return rows.map((row) => ({
|
|
6716
|
+
traceId: row.traceId,
|
|
6717
|
+
rootSpanName: row.rootSpanName,
|
|
6718
|
+
serviceName: row.rootServiceName,
|
|
6719
|
+
durationMs: parseInt(row.durationNs, 10) / 1e6,
|
|
6720
|
+
statusCode: row.errorCount > 0 ? "ERROR" : "OK",
|
|
6721
|
+
timestampMs: parseInt(row.startTimeNs, 10) / 1e6,
|
|
6722
|
+
spanCount: row.spanCount,
|
|
6723
|
+
services: row.services,
|
|
6724
|
+
errorCount: row.errorCount
|
|
6725
|
+
}));
|
|
6726
|
+
}, [response]);
|
|
6727
|
+
const { data: traceRows, isFetching: traceLoading, error: traceError } = (0, _tanstack_react_query.useQuery)({
|
|
6728
|
+
queryKey: [
|
|
6729
|
+
"kopai",
|
|
6730
|
+
"getTrace",
|
|
6731
|
+
selectedTraceId
|
|
6732
|
+
],
|
|
6733
|
+
queryFn: ({ signal }) => client.getTrace(selectedTraceId, { signal }),
|
|
6734
|
+
enabled: !!selectedTraceId
|
|
6735
|
+
});
|
|
6736
|
+
const handleBack = (0, react.useCallback)(() => setSelectedTraceId(null), []);
|
|
6737
|
+
if (selectedTraceId) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TraceDetail, {
|
|
6738
|
+
traceId: selectedTraceId,
|
|
6739
|
+
rows: traceRows ?? [],
|
|
6740
|
+
isLoading: traceLoading,
|
|
6741
|
+
error: traceError ?? void 0,
|
|
6742
|
+
onBack: handleBack
|
|
6743
|
+
});
|
|
6744
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TraceSearch, {
|
|
6745
|
+
services: [],
|
|
6746
|
+
service: "",
|
|
6747
|
+
traces,
|
|
6748
|
+
isLoading: loading,
|
|
6749
|
+
error: error ?? void 0,
|
|
6750
|
+
onSelectTrace: setSelectedTraceId
|
|
6751
|
+
});
|
|
6752
|
+
}
|
|
6708
6753
|
function OtelTraceDetail(props) {
|
|
6709
6754
|
if (!props.hasData) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
6710
6755
|
style: {
|
|
@@ -6713,7 +6758,13 @@ function OtelTraceDetail(props) {
|
|
|
6713
6758
|
},
|
|
6714
6759
|
children: "No data source"
|
|
6715
6760
|
});
|
|
6716
|
-
|
|
6761
|
+
if (isTraceSummariesSource(props)) return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TraceSummariesView, {
|
|
6762
|
+
data: props.data,
|
|
6763
|
+
loading: props.loading,
|
|
6764
|
+
error: props.error
|
|
6765
|
+
});
|
|
6766
|
+
const response = props.data;
|
|
6767
|
+
const rows = Array.isArray(response?.data) ? response.data : [];
|
|
6717
6768
|
const traceId = rows[0]?.TraceId ?? "";
|
|
6718
6769
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(TraceDetail, {
|
|
6719
6770
|
rows,
|
package/dist/index.d.cts
CHANGED
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
1
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
2
2
|
import { KopaiClient as KopaiClient$1 } from "@kopai/sdk";
|
|
3
3
|
import z$1, { z } from "zod";
|
|
4
4
|
import { ComponentType, ReactNode } from "react";
|
|
5
|
-
|
|
6
5
|
//#region src/pages/observability.d.ts
|
|
7
6
|
interface ObservabilityPageProps {
|
|
8
7
|
client?: KopaiClient$1;
|
|
9
8
|
}
|
|
10
9
|
declare function ObservabilityPage({
|
|
11
10
|
client
|
|
12
|
-
}: ObservabilityPageProps): react_jsx_runtime0.JSX.Element;
|
|
11
|
+
}: ObservabilityPageProps): _$react_jsx_runtime0.JSX.Element;
|
|
13
12
|
//#endregion
|
|
14
13
|
//#region src/lib/component-catalog.d.ts
|
|
15
14
|
declare const dataSourceSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
@@ -869,7 +868,7 @@ declare function createRendererFromCatalog<C extends {
|
|
|
869
868
|
}: {
|
|
870
869
|
tree: UITree | null;
|
|
871
870
|
fallback?: ComponentRenderer;
|
|
872
|
-
}) => react_jsx_runtime0.JSX.Element;
|
|
871
|
+
}) => _$react_jsx_runtime0.JSX.Element;
|
|
873
872
|
/**
|
|
874
873
|
* Renders a UITree using a component registry.
|
|
875
874
|
* Prefer using {@link createRendererFromCatalog} for type-safe rendering.
|
|
@@ -884,7 +883,7 @@ declare function Renderer<C extends {
|
|
|
884
883
|
tree: z$1.infer<ReturnType<typeof createCatalog>["uiTreeSchema"]> | null;
|
|
885
884
|
registry: RegistryFromCatalog<C>;
|
|
886
885
|
fallback?: ComponentRenderer;
|
|
887
|
-
}): react_jsx_runtime0.JSX.Element | null;
|
|
886
|
+
}): _$react_jsx_runtime0.JSX.Element | null;
|
|
888
887
|
//#endregion
|
|
889
888
|
//#region src/providers/kopai-provider.d.ts
|
|
890
889
|
type KopaiClient = Pick<KopaiClient$1, "searchTracesPage" | "searchLogsPage" | "searchMetricsPage" | "searchAggregatedMetrics" | "getTrace" | "discoverMetrics" | "getDashboard" | "getServices" | "getOperations" | "searchTraceSummariesPage">;
|
|
@@ -895,7 +894,7 @@ interface KopaiSDKProviderProps {
|
|
|
895
894
|
declare function KopaiSDKProvider({
|
|
896
895
|
client,
|
|
897
896
|
children
|
|
898
|
-
}: KopaiSDKProviderProps): react_jsx_runtime0.JSX.Element;
|
|
897
|
+
}: KopaiSDKProviderProps): _$react_jsx_runtime0.JSX.Element;
|
|
899
898
|
declare function useKopaiSDK(): KopaiClient;
|
|
900
899
|
//#endregion
|
|
901
900
|
export { type ComponentRenderProps, type ComponentRenderer, type KopaiClient, KopaiSDKProvider, ObservabilityPage, Renderer, type RendererComponentProps, createCatalog, createRendererFromCatalog, generatePromptInstructions, observabilityCatalog, useKopaiSDK };
|
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
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ComponentType, ReactNode } from "react";
|
|
2
2
|
import { QueryClient } from "@tanstack/react-query";
|
|
3
|
-
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
3
|
+
import * as _$react_jsx_runtime0 from "react/jsx-runtime";
|
|
4
4
|
import { KopaiClient as KopaiClient$1 } from "@kopai/sdk";
|
|
5
5
|
import z$1, { z } from "zod";
|
|
6
6
|
|
|
@@ -10,7 +10,7 @@ interface ObservabilityPageProps {
|
|
|
10
10
|
}
|
|
11
11
|
declare function ObservabilityPage({
|
|
12
12
|
client
|
|
13
|
-
}: ObservabilityPageProps): react_jsx_runtime0.JSX.Element;
|
|
13
|
+
}: ObservabilityPageProps): _$react_jsx_runtime0.JSX.Element;
|
|
14
14
|
//#endregion
|
|
15
15
|
//#region src/lib/component-catalog.d.ts
|
|
16
16
|
declare const dataSourceSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
@@ -870,7 +870,7 @@ declare function createRendererFromCatalog<C extends {
|
|
|
870
870
|
}: {
|
|
871
871
|
tree: UITree | null;
|
|
872
872
|
fallback?: ComponentRenderer;
|
|
873
|
-
}) => react_jsx_runtime0.JSX.Element;
|
|
873
|
+
}) => _$react_jsx_runtime0.JSX.Element;
|
|
874
874
|
/**
|
|
875
875
|
* Renders a UITree using a component registry.
|
|
876
876
|
* Prefer using {@link createRendererFromCatalog} for type-safe rendering.
|
|
@@ -885,7 +885,7 @@ declare function Renderer<C extends {
|
|
|
885
885
|
tree: z$1.infer<ReturnType<typeof createCatalog>["uiTreeSchema"]> | null;
|
|
886
886
|
registry: RegistryFromCatalog<C>;
|
|
887
887
|
fallback?: ComponentRenderer;
|
|
888
|
-
}): react_jsx_runtime0.JSX.Element | null;
|
|
888
|
+
}): _$react_jsx_runtime0.JSX.Element | null;
|
|
889
889
|
//#endregion
|
|
890
890
|
//#region src/providers/kopai-provider.d.ts
|
|
891
891
|
type KopaiClient = Pick<KopaiClient$1, "searchTracesPage" | "searchLogsPage" | "searchMetricsPage" | "searchAggregatedMetrics" | "getTrace" | "discoverMetrics" | "getDashboard" | "getServices" | "getOperations" | "searchTraceSummariesPage">;
|
|
@@ -896,7 +896,7 @@ interface KopaiSDKProviderProps {
|
|
|
896
896
|
declare function KopaiSDKProvider({
|
|
897
897
|
client,
|
|
898
898
|
children
|
|
899
|
-
}: KopaiSDKProviderProps): react_jsx_runtime0.JSX.Element;
|
|
899
|
+
}: KopaiSDKProviderProps): _$react_jsx_runtime0.JSX.Element;
|
|
900
900
|
declare function useKopaiSDK(): KopaiClient;
|
|
901
901
|
//#endregion
|
|
902
902
|
export { type ComponentRenderProps, type ComponentRenderer, type KopaiClient, KopaiSDKProvider, ObservabilityPage, Renderer, type RendererComponentProps, createCatalog, createRendererFromCatalog, generatePromptInstructions, observabilityCatalog, useKopaiSDK };
|
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":";;;;;;;UAg6BU,sBAAA;EACR,MAAA,GAAS,aAAA;AAAA;AAAA,iBAGa,iBAAA,CAAA;EAAoB;AAAA,GAAU,sBAAA,GAAsB,
|
|
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
|
@@ -47,10 +47,7 @@ function fetchForDataSource(client, dataSource, signal) {
|
|
|
47
47
|
case "getServices": return client.getServices({ signal });
|
|
48
48
|
case "getOperations": return client.getOperations(dataSource.params.serviceName, { signal });
|
|
49
49
|
case "searchTraceSummariesPage": return client.searchTraceSummariesPage(dataSource.params, { signal });
|
|
50
|
-
default: {
|
|
51
|
-
const exhaustiveCheck = dataSource;
|
|
52
|
-
throw new Error(`Unknown method: ${exhaustiveCheck.method}`);
|
|
53
|
-
}
|
|
50
|
+
default: throw new Error(`Unknown method: ${dataSource.method}`);
|
|
54
51
|
}
|
|
55
52
|
}
|
|
56
53
|
function useKopaiData(dataSource) {
|
|
@@ -6680,6 +6677,54 @@ function OtelMetricTimeSeries(props) {
|
|
|
6680
6677
|
}
|
|
6681
6678
|
//#endregion
|
|
6682
6679
|
//#region src/components/observability/renderers/OtelTraceDetail.tsx
|
|
6680
|
+
function isTraceSummariesSource(props) {
|
|
6681
|
+
return props.element.dataSource?.method === "searchTraceSummariesPage";
|
|
6682
|
+
}
|
|
6683
|
+
function TraceSummariesView({ data, loading, error }) {
|
|
6684
|
+
const [selectedTraceId, setSelectedTraceId] = useState(null);
|
|
6685
|
+
const client = useKopaiSDK();
|
|
6686
|
+
const response = data;
|
|
6687
|
+
const traces = useMemo(() => {
|
|
6688
|
+
const rows = response?.data;
|
|
6689
|
+
if (!Array.isArray(rows)) return [];
|
|
6690
|
+
return rows.map((row) => ({
|
|
6691
|
+
traceId: row.traceId,
|
|
6692
|
+
rootSpanName: row.rootSpanName,
|
|
6693
|
+
serviceName: row.rootServiceName,
|
|
6694
|
+
durationMs: parseInt(row.durationNs, 10) / 1e6,
|
|
6695
|
+
statusCode: row.errorCount > 0 ? "ERROR" : "OK",
|
|
6696
|
+
timestampMs: parseInt(row.startTimeNs, 10) / 1e6,
|
|
6697
|
+
spanCount: row.spanCount,
|
|
6698
|
+
services: row.services,
|
|
6699
|
+
errorCount: row.errorCount
|
|
6700
|
+
}));
|
|
6701
|
+
}, [response]);
|
|
6702
|
+
const { data: traceRows, isFetching: traceLoading, error: traceError } = useQuery({
|
|
6703
|
+
queryKey: [
|
|
6704
|
+
"kopai",
|
|
6705
|
+
"getTrace",
|
|
6706
|
+
selectedTraceId
|
|
6707
|
+
],
|
|
6708
|
+
queryFn: ({ signal }) => client.getTrace(selectedTraceId, { signal }),
|
|
6709
|
+
enabled: !!selectedTraceId
|
|
6710
|
+
});
|
|
6711
|
+
const handleBack = useCallback(() => setSelectedTraceId(null), []);
|
|
6712
|
+
if (selectedTraceId) return /* @__PURE__ */ jsx(TraceDetail, {
|
|
6713
|
+
traceId: selectedTraceId,
|
|
6714
|
+
rows: traceRows ?? [],
|
|
6715
|
+
isLoading: traceLoading,
|
|
6716
|
+
error: traceError ?? void 0,
|
|
6717
|
+
onBack: handleBack
|
|
6718
|
+
});
|
|
6719
|
+
return /* @__PURE__ */ jsx(TraceSearch, {
|
|
6720
|
+
services: [],
|
|
6721
|
+
service: "",
|
|
6722
|
+
traces,
|
|
6723
|
+
isLoading: loading,
|
|
6724
|
+
error: error ?? void 0,
|
|
6725
|
+
onSelectTrace: setSelectedTraceId
|
|
6726
|
+
});
|
|
6727
|
+
}
|
|
6683
6728
|
function OtelTraceDetail(props) {
|
|
6684
6729
|
if (!props.hasData) return /* @__PURE__ */ jsx("div", {
|
|
6685
6730
|
style: {
|
|
@@ -6688,7 +6733,13 @@ function OtelTraceDetail(props) {
|
|
|
6688
6733
|
},
|
|
6689
6734
|
children: "No data source"
|
|
6690
6735
|
});
|
|
6691
|
-
|
|
6736
|
+
if (isTraceSummariesSource(props)) return /* @__PURE__ */ jsx(TraceSummariesView, {
|
|
6737
|
+
data: props.data,
|
|
6738
|
+
loading: props.loading,
|
|
6739
|
+
error: props.error
|
|
6740
|
+
});
|
|
6741
|
+
const response = props.data;
|
|
6742
|
+
const rows = Array.isArray(response?.data) ? response.data : [];
|
|
6692
6743
|
const traceId = rows[0]?.TraceId ?? "";
|
|
6693
6744
|
return /* @__PURE__ */ jsx(TraceDetail, {
|
|
6694
6745
|
rows,
|