@oneuptime/common 10.0.28 → 10.0.30
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/Models/DatabaseModels/Index.ts +2 -0
- package/Models/DatabaseModels/LogSavedView.ts +466 -0
- package/Server/API/TelemetryAPI.ts +146 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1772355000000-AddLogSavedView.ts +48 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1773344537755-MigrationName.ts +91 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +4 -0
- package/Server/Services/LogAggregationService.ts +387 -0
- package/Server/Services/LogSavedViewService.ts +109 -0
- package/Server/Types/Workflow/Components/BaseModel/OnTriggerBaseModel.ts +15 -0
- package/Server/Utils/Express.ts +1 -0
- package/Server/Utils/OpenAPI.ts +28 -0
- package/Server/Utils/StartServer.ts +20 -1
- package/UI/Components/LogsViewer/LogsViewer.tsx +204 -64
- package/UI/Components/LogsViewer/components/ColumnSelector.tsx +270 -0
- package/UI/Components/LogsViewer/components/LiveLogsToggle.tsx +3 -3
- package/UI/Components/LogsViewer/components/LogTimeRangePicker.tsx +2 -2
- package/UI/Components/LogsViewer/components/LogsAnalyticsView.tsx +699 -0
- package/UI/Components/LogsViewer/components/LogsFacetSidebar.tsx +46 -1
- package/UI/Components/LogsViewer/components/LogsFilterCard.tsx +3 -3
- package/UI/Components/LogsViewer/components/LogsTable.tsx +288 -103
- package/UI/Components/LogsViewer/components/LogsViewerToolbar.tsx +113 -11
- package/UI/Components/LogsViewer/components/SavedViewsDropdown.tsx +175 -0
- package/UI/Components/LogsViewer/types.ts +96 -0
- package/build/dist/Models/DatabaseModels/Index.js +2 -0
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/LogSavedView.js +496 -0
- package/build/dist/Models/DatabaseModels/LogSavedView.js.map +1 -0
- package/build/dist/Server/API/TelemetryAPI.js +88 -0
- package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1772355000000-AddLogSavedView.js +44 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1772355000000-AddLogSavedView.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1773344537755-MigrationName.js +38 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1773344537755-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +4 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Services/LogAggregationService.js +249 -0
- package/build/dist/Server/Services/LogAggregationService.js.map +1 -1
- package/build/dist/Server/Services/LogSavedViewService.js +82 -0
- package/build/dist/Server/Services/LogSavedViewService.js.map +1 -0
- package/build/dist/Server/Types/Workflow/Components/BaseModel/OnTriggerBaseModel.js +15 -0
- package/build/dist/Server/Types/Workflow/Components/BaseModel/OnTriggerBaseModel.js.map +1 -1
- package/build/dist/Server/Utils/Express.js +1 -0
- package/build/dist/Server/Utils/Express.js.map +1 -1
- package/build/dist/Server/Utils/OpenAPI.js +24 -0
- package/build/dist/Server/Utils/OpenAPI.js.map +1 -1
- package/build/dist/Server/Utils/StartServer.js +17 -2
- package/build/dist/Server/Utils/StartServer.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/LogsViewer.js +77 -8
- package/build/dist/UI/Components/LogsViewer/LogsViewer.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/ColumnSelector.js +115 -0
- package/build/dist/UI/Components/LogsViewer/components/ColumnSelector.js.map +1 -0
- package/build/dist/UI/Components/LogsViewer/components/LiveLogsToggle.js +3 -3
- package/build/dist/UI/Components/LogsViewer/components/LiveLogsToggle.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogTimeRangePicker.js +2 -2
- package/build/dist/UI/Components/LogsViewer/components/LogTimeRangePicker.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js +379 -0
- package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js.map +1 -0
- package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js +27 -13
- package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogsFilterCard.js +3 -3
- package/build/dist/UI/Components/LogsViewer/components/LogsFilterCard.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogsTable.js +118 -49
- package/build/dist/UI/Components/LogsViewer/components/LogsTable.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogsViewerToolbar.js +35 -11
- package/build/dist/UI/Components/LogsViewer/components/LogsViewerToolbar.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/SavedViewsDropdown.js +58 -0
- package/build/dist/UI/Components/LogsViewer/components/SavedViewsDropdown.js.map +1 -0
- package/build/dist/UI/Components/LogsViewer/types.js +60 -1
- package/build/dist/UI/Components/LogsViewer/types.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import React, { useMemo, useState, } from "react";
|
|
2
|
+
import { DEFAULT_LOGS_TABLE_COLUMNS, normalizeLogsTableColumns, } from "../types";
|
|
3
|
+
import useComponentOutsideClick from "../../../Types/UseComponentOutsideClick";
|
|
4
|
+
const triggerButtonClassName = "inline-flex items-center gap-1.5 rounded-md border border-gray-200 bg-white px-2.5 py-1.5 text-xs font-medium text-gray-700 shadow-sm transition-colors hover:border-gray-300 hover:bg-gray-50";
|
|
5
|
+
const actionButtonClassName = "rounded-md px-2 py-1 text-xs font-medium text-gray-500 transition-colors hover:bg-gray-100 hover:text-gray-700";
|
|
6
|
+
const ColumnSelector = (props) => {
|
|
7
|
+
const { ref, isComponentVisible, setIsComponentVisible } = useComponentOutsideClick(false);
|
|
8
|
+
const [searchQuery, setSearchQuery] = useState("");
|
|
9
|
+
const selectedColumnIds = useMemo(() => {
|
|
10
|
+
return normalizeLogsTableColumns(props.selectedColumns);
|
|
11
|
+
}, [props.selectedColumns]);
|
|
12
|
+
const availableColumnsById = useMemo(() => {
|
|
13
|
+
return new Map(props.availableColumns.map((column) => {
|
|
14
|
+
return [column.id, column];
|
|
15
|
+
}));
|
|
16
|
+
}, [props.availableColumns]);
|
|
17
|
+
const selectedColumns = useMemo(() => {
|
|
18
|
+
return selectedColumnIds.map((columnId) => {
|
|
19
|
+
return (availableColumnsById.get(columnId) || {
|
|
20
|
+
id: columnId,
|
|
21
|
+
label: columnId,
|
|
22
|
+
});
|
|
23
|
+
});
|
|
24
|
+
}, [availableColumnsById, selectedColumnIds]);
|
|
25
|
+
const availableColumns = useMemo(() => {
|
|
26
|
+
const normalizedSearchQuery = searchQuery.trim().toLowerCase();
|
|
27
|
+
return props.availableColumns.filter((column) => {
|
|
28
|
+
if (selectedColumnIds.includes(column.id)) {
|
|
29
|
+
return false;
|
|
30
|
+
}
|
|
31
|
+
if (!normalizedSearchQuery) {
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
return column.label.toLowerCase().includes(normalizedSearchQuery);
|
|
35
|
+
});
|
|
36
|
+
}, [props.availableColumns, searchQuery, selectedColumnIds]);
|
|
37
|
+
const updateColumns = (columns) => {
|
|
38
|
+
props.onChange(normalizeLogsTableColumns(columns));
|
|
39
|
+
};
|
|
40
|
+
const moveColumn = (columnId, direction) => {
|
|
41
|
+
const currentIndex = selectedColumnIds.indexOf(columnId);
|
|
42
|
+
if (currentIndex === -1) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
const nextIndex = currentIndex + direction;
|
|
46
|
+
if (nextIndex < 0 || nextIndex >= selectedColumnIds.length) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
const nextColumns = [...selectedColumnIds];
|
|
50
|
+
const currentColumn = nextColumns[currentIndex];
|
|
51
|
+
nextColumns[currentIndex] = nextColumns[nextIndex];
|
|
52
|
+
nextColumns[nextIndex] = currentColumn;
|
|
53
|
+
updateColumns(nextColumns);
|
|
54
|
+
};
|
|
55
|
+
const removeColumn = (columnId) => {
|
|
56
|
+
if (selectedColumnIds.length <= 1) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
updateColumns(selectedColumnIds.filter((selectedColumnId) => {
|
|
60
|
+
return selectedColumnId !== columnId;
|
|
61
|
+
}));
|
|
62
|
+
};
|
|
63
|
+
const addColumn = (columnId) => {
|
|
64
|
+
updateColumns([...selectedColumnIds, columnId]);
|
|
65
|
+
};
|
|
66
|
+
return (React.createElement("div", { className: "relative", ref: ref },
|
|
67
|
+
React.createElement("button", { type: "button", className: triggerButtonClassName, onClick: () => {
|
|
68
|
+
setIsComponentVisible(!isComponentVisible);
|
|
69
|
+
}, "aria-haspopup": "dialog", "aria-expanded": isComponentVisible },
|
|
70
|
+
React.createElement("span", null, "Columns"),
|
|
71
|
+
React.createElement("span", { className: "text-xs text-gray-400" }, selectedColumnIds.length)),
|
|
72
|
+
isComponentVisible && (React.createElement("div", { className: "absolute right-0 z-20 mt-2 w-96 rounded-lg border border-gray-200 bg-white p-4 shadow-xl" },
|
|
73
|
+
React.createElement("div", { className: "flex items-center justify-between gap-3" },
|
|
74
|
+
React.createElement("div", null,
|
|
75
|
+
React.createElement("h3", { className: "text-sm font-semibold text-gray-900" }, "Columns"),
|
|
76
|
+
React.createElement("p", { className: "text-xs text-gray-500" }, "Add, remove, and reorder visible columns.")),
|
|
77
|
+
React.createElement("button", { type: "button", className: "text-xs font-medium text-gray-500 transition-colors hover:text-gray-700", onClick: () => {
|
|
78
|
+
updateColumns(DEFAULT_LOGS_TABLE_COLUMNS);
|
|
79
|
+
} }, "Reset")),
|
|
80
|
+
React.createElement("div", { className: "mt-4" },
|
|
81
|
+
React.createElement("p", { className: "mb-2 text-[11px] font-semibold uppercase tracking-wider text-gray-400" }, "Selected"),
|
|
82
|
+
React.createElement("div", { className: "space-y-2" }, selectedColumns.map((column, index) => {
|
|
83
|
+
const isFirst = index === 0;
|
|
84
|
+
const isLast = index === selectedColumns.length - 1;
|
|
85
|
+
return (React.createElement("div", { key: column.id, className: "flex items-center justify-between rounded-md border border-gray-200 px-3 py-2" },
|
|
86
|
+
React.createElement("span", { className: "min-w-0 truncate text-sm text-gray-700" }, column.label),
|
|
87
|
+
React.createElement("div", { className: "flex items-center gap-1" },
|
|
88
|
+
React.createElement("button", { type: "button", className: actionButtonClassName, onClick: () => {
|
|
89
|
+
moveColumn(column.id, -1);
|
|
90
|
+
}, disabled: isFirst }, "Up"),
|
|
91
|
+
React.createElement("button", { type: "button", className: actionButtonClassName, onClick: () => {
|
|
92
|
+
moveColumn(column.id, 1);
|
|
93
|
+
}, disabled: isLast }, "Down"),
|
|
94
|
+
React.createElement("button", { type: "button", className: actionButtonClassName, onClick: () => {
|
|
95
|
+
removeColumn(column.id);
|
|
96
|
+
}, disabled: selectedColumns.length <= 1 }, "Remove"))));
|
|
97
|
+
}))),
|
|
98
|
+
React.createElement("div", { className: "mt-4" },
|
|
99
|
+
React.createElement("div", { className: "mb-2 flex items-center justify-between gap-3" },
|
|
100
|
+
React.createElement("p", { className: "text-[11px] font-semibold uppercase tracking-wider text-gray-400" }, "Available"),
|
|
101
|
+
React.createElement("input", { value: searchQuery, onChange: (event) => {
|
|
102
|
+
setSearchQuery(event.target.value);
|
|
103
|
+
}, placeholder: "Search columns", className: "w-40 rounded-md border border-gray-200 px-2 py-1 text-xs text-gray-600 focus:border-indigo-300 focus:outline-none focus:ring-2 focus:ring-indigo-100" })),
|
|
104
|
+
React.createElement("div", { className: "max-h-72 space-y-2 overflow-y-auto pr-1" },
|
|
105
|
+
availableColumns.length === 0 && (React.createElement("div", { className: "rounded-md border border-dashed border-gray-200 px-3 py-4 text-sm text-gray-500" }, "No matching columns available.")),
|
|
106
|
+
availableColumns.map((column) => {
|
|
107
|
+
return (React.createElement("div", { key: column.id, className: "flex items-center justify-between rounded-md border border-gray-100 px-3 py-2" },
|
|
108
|
+
React.createElement("span", { className: "min-w-0 truncate text-sm text-gray-700" }, column.label),
|
|
109
|
+
React.createElement("button", { type: "button", className: actionButtonClassName, onClick: () => {
|
|
110
|
+
addColumn(column.id);
|
|
111
|
+
} }, "Add")));
|
|
112
|
+
})))))));
|
|
113
|
+
};
|
|
114
|
+
export default ColumnSelector;
|
|
115
|
+
//# sourceMappingURL=ColumnSelector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ColumnSelector.js","sourceRoot":"","sources":["../../../../../../UI/Components/LogsViewer/components/ColumnSelector.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
const LiveLogsToggle = (props) => {
|
|
3
3
|
const { isLive, onToggle, isDisabled } = props;
|
|
4
|
-
const baseClasses = "inline-flex items-center gap-
|
|
4
|
+
const baseClasses = "inline-flex items-center gap-1.5 rounded-md border px-2.5 py-1.5 text-xs font-medium shadow-sm transition-all focus:outline-none focus:ring-2 focus:ring-emerald-200";
|
|
5
5
|
const activeClasses = isLive
|
|
6
6
|
? "border-emerald-300 bg-emerald-50 text-emerald-700 hover:bg-emerald-100"
|
|
7
|
-
: "border-gray-200 bg-white text-gray-
|
|
7
|
+
: "border-gray-200 bg-white text-gray-700 hover:bg-gray-50";
|
|
8
8
|
const disabledClasses = isDisabled
|
|
9
9
|
? "cursor-not-allowed opacity-50"
|
|
10
10
|
: "cursor-pointer";
|
|
@@ -15,7 +15,7 @@ const LiveLogsToggle = (props) => {
|
|
|
15
15
|
onToggle(!isLive);
|
|
16
16
|
}, className: `${baseClasses} ${activeClasses} ${disabledClasses}` },
|
|
17
17
|
React.createElement("span", { className: `h-2 w-2 rounded-full ${isLive ? "bg-emerald-500 animate-pulse" : "bg-gray-300"}` }),
|
|
18
|
-
React.createElement("span",
|
|
18
|
+
React.createElement("span", null, "Live")));
|
|
19
19
|
return content;
|
|
20
20
|
};
|
|
21
21
|
export default LiveLogsToggle;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LiveLogsToggle.js","sourceRoot":"","sources":["../../../../../../UI/Components/LogsViewer/components/LiveLogsToggle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAK/D,MAAM,cAAc,GAA2C,CAC7D,KAA0B,EACZ,EAAE;IAChB,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAE/C,MAAM,WAAW,GACf,
|
|
1
|
+
{"version":3,"file":"LiveLogsToggle.js","sourceRoot":"","sources":["../../../../../../UI/Components/LogsViewer/components/LiveLogsToggle.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAK/D,MAAM,cAAc,GAA2C,CAC7D,KAA0B,EACZ,EAAE;IAChB,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAE/C,MAAM,WAAW,GACf,sKAAsK,CAAC;IACzK,MAAM,aAAa,GAAW,MAAM;QAClC,CAAC,CAAC,wEAAwE;QAC1E,CAAC,CAAC,yDAAyD,CAAC;IAC9D,MAAM,eAAe,GAAW,UAAU;QACxC,CAAC,CAAC,+BAA+B;QACjC,CAAC,CAAC,gBAAgB,CAAC;IAErB,MAAM,OAAO,GAAiB,CAC5B,gCACE,IAAI,EAAC,QAAQ,kBACC,MAAM,EACpB,QAAQ,EAAE,UAAU,EACpB,OAAO,EAAE,GAAG,EAAE;YACZ,IAAI,UAAU,EAAE,CAAC;gBACf,OAAO;YACT,CAAC;YAED,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;QACpB,CAAC,EACD,SAAS,EAAE,GAAG,WAAW,IAAI,aAAa,IAAI,eAAe,EAAE;QAE/D,8BACE,SAAS,EAAE,wBACT,MAAM,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC,aAC5C,EAAE,GACF;QACF,yCAAiB,CACV,CACV,CAAC;IAEF,OAAO,OAAO,CAAC;AACjB,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
|
@@ -70,9 +70,9 @@ const LogTimeRangePicker = (props) => {
|
|
|
70
70
|
}, [props]);
|
|
71
71
|
const buttonLabel = getButtonLabel(props.value);
|
|
72
72
|
return (React.createElement("div", { ref: containerRef, className: "relative" },
|
|
73
|
-
React.createElement("button", { type: "button", className: `flex items-center gap-1.5 rounded-md border px-2.5 py-1.5 text-xs font-medium transition-colors ${isOpen
|
|
73
|
+
React.createElement("button", { type: "button", className: `inline-flex items-center gap-1.5 rounded-md border px-2.5 py-1.5 text-xs font-medium shadow-sm transition-colors ${isOpen
|
|
74
74
|
? "border-indigo-300 bg-indigo-50 text-indigo-700"
|
|
75
|
-
: "border-gray-200 bg-white text-gray-
|
|
75
|
+
: "border-gray-200 bg-white text-gray-700 hover:border-gray-300 hover:bg-gray-50"}`, onClick: () => {
|
|
76
76
|
setIsOpen(!isOpen);
|
|
77
77
|
} },
|
|
78
78
|
React.createElement(Icon, { icon: IconProp.Clock, className: "h-3.5 w-3.5" }),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LogTimeRangePicker.js","sourceRoot":"","sources":["../../../../../../UI/Components/LogsViewer/components/LogTimeRangePicker.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"LogTimeRangePicker.js","sourceRoot":"","sources":["../../../../../../UI/Components/LogsViewer/components/LogTimeRangePicker.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,379 @@
|
|
|
1
|
+
import React, { useCallback, useEffect, useMemo, useState, } from "react";
|
|
2
|
+
import { BarChart, Bar, XAxis, YAxis, Tooltip, ResponsiveContainer, CartesianGrid, Legend, } from "recharts";
|
|
3
|
+
import { RangeStartAndEndDateTimeUtil, } from "../../../../Types/Time/RangeStartAndEndDateTime";
|
|
4
|
+
import API from "../../../Utils/API/API";
|
|
5
|
+
import URL from "../../../../Types/API/URL";
|
|
6
|
+
import HTTPErrorResponse from "../../../../Types/API/HTTPErrorResponse";
|
|
7
|
+
import { APP_API_URL } from "../../../Config";
|
|
8
|
+
import ModelAPI from "../../../Utils/ModelAPI/ModelAPI";
|
|
9
|
+
import ComponentLoader from "../../ComponentLoader/ComponentLoader";
|
|
10
|
+
const CHART_COLORS = [
|
|
11
|
+
"#6366f1", // indigo
|
|
12
|
+
"#f43f5e", // rose
|
|
13
|
+
"#10b981", // emerald
|
|
14
|
+
"#f59e0b", // amber
|
|
15
|
+
"#06b6d4", // cyan
|
|
16
|
+
"#ec4899", // pink
|
|
17
|
+
"#84cc16", // lime
|
|
18
|
+
"#d946ef", // fuchsia
|
|
19
|
+
"#64748b", // slate
|
|
20
|
+
"#ef4444", // red
|
|
21
|
+
];
|
|
22
|
+
const DIMENSION_OPTIONS = [
|
|
23
|
+
{ value: "severityText", label: "Severity" },
|
|
24
|
+
{ value: "serviceId", label: "Service" },
|
|
25
|
+
{ value: "traceId", label: "Trace ID" },
|
|
26
|
+
{ value: "spanId", label: "Span ID" },
|
|
27
|
+
];
|
|
28
|
+
const TOP_LIST_LIMITS = [5, 10, 25, 50];
|
|
29
|
+
function pivotTimeseriesData(rows) {
|
|
30
|
+
const map = new Map();
|
|
31
|
+
const seriesKeysSet = new Set();
|
|
32
|
+
for (const row of rows) {
|
|
33
|
+
let pivotRow = map.get(row.time);
|
|
34
|
+
if (!pivotRow) {
|
|
35
|
+
pivotRow = { time: row.time };
|
|
36
|
+
map.set(row.time, pivotRow);
|
|
37
|
+
}
|
|
38
|
+
const groupKey = Object.values(row.groupValues).join(" / ") || "count";
|
|
39
|
+
seriesKeysSet.add(groupKey);
|
|
40
|
+
pivotRow[groupKey] = (pivotRow[groupKey] || 0) + row.count;
|
|
41
|
+
}
|
|
42
|
+
return {
|
|
43
|
+
pivotedData: Array.from(map.values()),
|
|
44
|
+
seriesKeys: Array.from(seriesKeysSet),
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
function formatTickTime(time) {
|
|
48
|
+
const date = new Date(time);
|
|
49
|
+
if (isNaN(date.getTime())) {
|
|
50
|
+
return time;
|
|
51
|
+
}
|
|
52
|
+
return date.toLocaleTimeString([], {
|
|
53
|
+
hour: "2-digit",
|
|
54
|
+
minute: "2-digit",
|
|
55
|
+
hour12: false,
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
function formatYAxisTick(value) {
|
|
59
|
+
if (value >= 1000000) {
|
|
60
|
+
return `${(value / 1000000).toFixed(1)}M`;
|
|
61
|
+
}
|
|
62
|
+
if (value >= 1000) {
|
|
63
|
+
return `${(value / 1000).toFixed(value >= 10000 ? 0 : 1)}K`;
|
|
64
|
+
}
|
|
65
|
+
return value.toString();
|
|
66
|
+
}
|
|
67
|
+
function computeDefaultBucketSize(startTime, endTime) {
|
|
68
|
+
const diffMs = endTime.getTime() - startTime.getTime();
|
|
69
|
+
const diffMinutes = diffMs / (1000 * 60);
|
|
70
|
+
if (diffMinutes <= 60) {
|
|
71
|
+
return 1;
|
|
72
|
+
}
|
|
73
|
+
if (diffMinutes <= 360) {
|
|
74
|
+
return 5;
|
|
75
|
+
}
|
|
76
|
+
if (diffMinutes <= 1440) {
|
|
77
|
+
return 15;
|
|
78
|
+
}
|
|
79
|
+
if (diffMinutes <= 10080) {
|
|
80
|
+
return 60;
|
|
81
|
+
}
|
|
82
|
+
if (diffMinutes <= 43200) {
|
|
83
|
+
return 360;
|
|
84
|
+
}
|
|
85
|
+
return 1440;
|
|
86
|
+
}
|
|
87
|
+
const LogsAnalyticsView = (props) => {
|
|
88
|
+
const [chartType, setChartType] = useState("timeseries");
|
|
89
|
+
const [aggregation, setAggregation] = useState("count");
|
|
90
|
+
const [aggregationField, setAggregationField] = useState("");
|
|
91
|
+
const [groupByFields, setGroupByFields] = useState([
|
|
92
|
+
"severityText",
|
|
93
|
+
]);
|
|
94
|
+
const [topListLimit, setTopListLimit] = useState(10);
|
|
95
|
+
const [isLoading, setIsLoading] = useState(false);
|
|
96
|
+
const [timeseriesData, setTimeseriesData] = useState([]);
|
|
97
|
+
const [topListData, setTopListData] = useState([]);
|
|
98
|
+
const [tableData, setTableData] = useState([]);
|
|
99
|
+
const allDimensionOptions = useMemo(() => {
|
|
100
|
+
const attributeOptions = props.logAttributes
|
|
101
|
+
.filter((attr) => {
|
|
102
|
+
return !DIMENSION_OPTIONS.some((opt) => {
|
|
103
|
+
return opt.value === attr;
|
|
104
|
+
});
|
|
105
|
+
})
|
|
106
|
+
.map((attr) => {
|
|
107
|
+
return { value: attr, label: attr };
|
|
108
|
+
});
|
|
109
|
+
return [...DIMENSION_OPTIONS, ...attributeOptions];
|
|
110
|
+
}, [props.logAttributes]);
|
|
111
|
+
const fetchAnalytics = useCallback(async () => {
|
|
112
|
+
try {
|
|
113
|
+
setIsLoading(true);
|
|
114
|
+
const dateRange = RangeStartAndEndDateTimeUtil.getStartAndEndDate(props.timeRange);
|
|
115
|
+
const startTime = dateRange.startValue;
|
|
116
|
+
const endTime = dateRange.endValue;
|
|
117
|
+
const requestData = {
|
|
118
|
+
chartType,
|
|
119
|
+
aggregation,
|
|
120
|
+
startTime: startTime.toISOString(),
|
|
121
|
+
endTime: endTime.toISOString(),
|
|
122
|
+
bucketSizeInMinutes: computeDefaultBucketSize(startTime, endTime),
|
|
123
|
+
};
|
|
124
|
+
if (groupByFields.length > 0 &&
|
|
125
|
+
groupByFields[0] &&
|
|
126
|
+
groupByFields[0].length > 0) {
|
|
127
|
+
requestData["groupBy"] =
|
|
128
|
+
groupByFields.filter((f) => {
|
|
129
|
+
return f.length > 0;
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
if (aggregation === "unique" && aggregationField) {
|
|
133
|
+
requestData["aggregationField"] =
|
|
134
|
+
aggregationField;
|
|
135
|
+
}
|
|
136
|
+
if (chartType === "toplist" || chartType === "table") {
|
|
137
|
+
requestData["limit"] = topListLimit;
|
|
138
|
+
}
|
|
139
|
+
if (props.serviceIds) {
|
|
140
|
+
requestData["serviceIds"] =
|
|
141
|
+
props.serviceIds;
|
|
142
|
+
}
|
|
143
|
+
// Apply facet filters
|
|
144
|
+
const severityValues = props.appliedFacetFilters.get("severityText");
|
|
145
|
+
if (severityValues && severityValues.size > 0) {
|
|
146
|
+
requestData["severityTexts"] =
|
|
147
|
+
Array.from(severityValues);
|
|
148
|
+
}
|
|
149
|
+
const serviceFilterValues = props.appliedFacetFilters.get("serviceId");
|
|
150
|
+
if (serviceFilterValues && serviceFilterValues.size > 0) {
|
|
151
|
+
requestData["serviceIds"] =
|
|
152
|
+
Array.from(serviceFilterValues);
|
|
153
|
+
}
|
|
154
|
+
const traceFilterValues = props.appliedFacetFilters.get("traceId");
|
|
155
|
+
if (traceFilterValues && traceFilterValues.size > 0) {
|
|
156
|
+
requestData["traceIds"] =
|
|
157
|
+
Array.from(traceFilterValues);
|
|
158
|
+
}
|
|
159
|
+
const spanFilterValues = props.appliedFacetFilters.get("spanId");
|
|
160
|
+
if (spanFilterValues && spanFilterValues.size > 0) {
|
|
161
|
+
requestData["spanIds"] =
|
|
162
|
+
Array.from(spanFilterValues);
|
|
163
|
+
}
|
|
164
|
+
const response = await API.post({
|
|
165
|
+
url: URL.fromString(APP_API_URL.toString()).addRoute("/telemetry/logs/analytics"),
|
|
166
|
+
data: requestData,
|
|
167
|
+
headers: Object.assign({}, ModelAPI.getCommonHeaders()),
|
|
168
|
+
});
|
|
169
|
+
if (response instanceof HTTPErrorResponse) {
|
|
170
|
+
throw response;
|
|
171
|
+
}
|
|
172
|
+
const data = response.data["data"] || [];
|
|
173
|
+
if (chartType === "timeseries") {
|
|
174
|
+
setTimeseriesData(data);
|
|
175
|
+
}
|
|
176
|
+
else if (chartType === "toplist") {
|
|
177
|
+
setTopListData(data);
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
setTableData(data);
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
catch (_a) {
|
|
184
|
+
// Silently degrade
|
|
185
|
+
setTimeseriesData([]);
|
|
186
|
+
setTopListData([]);
|
|
187
|
+
setTableData([]);
|
|
188
|
+
}
|
|
189
|
+
finally {
|
|
190
|
+
setIsLoading(false);
|
|
191
|
+
}
|
|
192
|
+
}, [
|
|
193
|
+
chartType,
|
|
194
|
+
aggregation,
|
|
195
|
+
aggregationField,
|
|
196
|
+
groupByFields,
|
|
197
|
+
topListLimit,
|
|
198
|
+
props.timeRange,
|
|
199
|
+
props.serviceIds,
|
|
200
|
+
props.appliedFacetFilters,
|
|
201
|
+
]);
|
|
202
|
+
useEffect(() => {
|
|
203
|
+
void fetchAnalytics();
|
|
204
|
+
}, [fetchAnalytics]);
|
|
205
|
+
const { pivotedData, seriesKeys } = useMemo(() => {
|
|
206
|
+
return pivotTimeseriesData(timeseriesData);
|
|
207
|
+
}, [timeseriesData]);
|
|
208
|
+
const renderQueryBuilder = () => {
|
|
209
|
+
return (React.createElement("div", { className: "flex flex-wrap items-center gap-3 border-b border-gray-100 bg-gray-50/50 px-4 py-3" },
|
|
210
|
+
React.createElement("div", { className: "flex items-center gap-1.5" },
|
|
211
|
+
React.createElement("label", { className: "text-xs font-medium text-gray-500" }, "Chart"),
|
|
212
|
+
React.createElement("select", { className: "rounded-md border border-gray-300 bg-white px-2 py-1 text-xs text-gray-700 focus:border-indigo-500 focus:outline-none focus:ring-1 focus:ring-indigo-500", value: chartType, onChange: (e) => {
|
|
213
|
+
setChartType(e.target.value);
|
|
214
|
+
} },
|
|
215
|
+
React.createElement("option", { value: "timeseries" }, "Timeseries"),
|
|
216
|
+
React.createElement("option", { value: "toplist" }, "Top List"),
|
|
217
|
+
React.createElement("option", { value: "table" }, "Table"))),
|
|
218
|
+
React.createElement("div", { className: "flex items-center gap-1.5" },
|
|
219
|
+
React.createElement("label", { className: "text-xs font-medium text-gray-500" }, "Measure"),
|
|
220
|
+
React.createElement("select", { className: "rounded-md border border-gray-300 bg-white px-2 py-1 text-xs text-gray-700 focus:border-indigo-500 focus:outline-none focus:ring-1 focus:ring-indigo-500", value: aggregation, onChange: (e) => {
|
|
221
|
+
setAggregation(e.target.value);
|
|
222
|
+
} },
|
|
223
|
+
React.createElement("option", { value: "count" }, "Count"),
|
|
224
|
+
React.createElement("option", { value: "unique" }, "Unique Count"))),
|
|
225
|
+
aggregation === "unique" && (React.createElement("div", { className: "flex items-center gap-1.5" },
|
|
226
|
+
React.createElement("label", { className: "text-xs font-medium text-gray-500" }, "of"),
|
|
227
|
+
React.createElement("select", { className: "rounded-md border border-gray-300 bg-white px-2 py-1 text-xs text-gray-700 focus:border-indigo-500 focus:outline-none focus:ring-1 focus:ring-indigo-500", value: aggregationField, onChange: (e) => {
|
|
228
|
+
setAggregationField(e.target.value);
|
|
229
|
+
} },
|
|
230
|
+
React.createElement("option", { value: "" }, "Select field..."),
|
|
231
|
+
allDimensionOptions.map((opt) => {
|
|
232
|
+
return (React.createElement("option", { key: opt.value, value: opt.value }, opt.label));
|
|
233
|
+
})))),
|
|
234
|
+
React.createElement("div", { className: "flex items-center gap-1.5" },
|
|
235
|
+
React.createElement("label", { className: "text-xs font-medium text-gray-500" }, "Group by"),
|
|
236
|
+
React.createElement("select", { className: "rounded-md border border-gray-300 bg-white px-2 py-1 text-xs text-gray-700 focus:border-indigo-500 focus:outline-none focus:ring-1 focus:ring-indigo-500", value: groupByFields[0] || "", onChange: (e) => {
|
|
237
|
+
const val = e.target.value;
|
|
238
|
+
setGroupByFields((prev) => {
|
|
239
|
+
const next = [...prev];
|
|
240
|
+
next[0] = val;
|
|
241
|
+
return next.filter((f) => {
|
|
242
|
+
return f.length > 0;
|
|
243
|
+
});
|
|
244
|
+
});
|
|
245
|
+
} },
|
|
246
|
+
React.createElement("option", { value: "" }, "None"),
|
|
247
|
+
allDimensionOptions.map((opt) => {
|
|
248
|
+
return (React.createElement("option", { key: opt.value, value: opt.value }, opt.label));
|
|
249
|
+
}))),
|
|
250
|
+
groupByFields[0] && groupByFields[0].length > 0 && (React.createElement("div", { className: "flex items-center gap-1.5" },
|
|
251
|
+
React.createElement("label", { className: "text-xs font-medium text-gray-500" }, "then by"),
|
|
252
|
+
React.createElement("select", { className: "rounded-md border border-gray-300 bg-white px-2 py-1 text-xs text-gray-700 focus:border-indigo-500 focus:outline-none focus:ring-1 focus:ring-indigo-500", value: groupByFields[1] || "", onChange: (e) => {
|
|
253
|
+
const val = e.target.value;
|
|
254
|
+
setGroupByFields((prev) => {
|
|
255
|
+
const next = [prev[0] || ""];
|
|
256
|
+
if (val.length > 0) {
|
|
257
|
+
next.push(val);
|
|
258
|
+
}
|
|
259
|
+
return next.filter((f) => {
|
|
260
|
+
return f.length > 0;
|
|
261
|
+
});
|
|
262
|
+
});
|
|
263
|
+
} },
|
|
264
|
+
React.createElement("option", { value: "" }, "None"),
|
|
265
|
+
allDimensionOptions
|
|
266
|
+
.filter((opt) => {
|
|
267
|
+
return opt.value !== groupByFields[0];
|
|
268
|
+
})
|
|
269
|
+
.map((opt) => {
|
|
270
|
+
return (React.createElement("option", { key: opt.value, value: opt.value }, opt.label));
|
|
271
|
+
})))),
|
|
272
|
+
(chartType === "toplist" || chartType === "table") && (React.createElement("div", { className: "flex items-center gap-1.5" },
|
|
273
|
+
React.createElement("label", { className: "text-xs font-medium text-gray-500" }, "Limit"),
|
|
274
|
+
React.createElement("select", { className: "rounded-md border border-gray-300 bg-white px-2 py-1 text-xs text-gray-700 focus:border-indigo-500 focus:outline-none focus:ring-1 focus:ring-indigo-500", value: topListLimit, onChange: (e) => {
|
|
275
|
+
setTopListLimit(Number(e.target.value));
|
|
276
|
+
} }, TOP_LIST_LIMITS.map((limit) => {
|
|
277
|
+
return (React.createElement("option", { key: limit, value: limit }, limit));
|
|
278
|
+
}))))));
|
|
279
|
+
};
|
|
280
|
+
const renderTimeseries = () => {
|
|
281
|
+
if (pivotedData.length === 0) {
|
|
282
|
+
return renderEmptyState();
|
|
283
|
+
}
|
|
284
|
+
return (React.createElement("div", { className: "p-4", style: { height: 320 } },
|
|
285
|
+
React.createElement(ResponsiveContainer, { width: "100%", height: "100%" },
|
|
286
|
+
React.createElement(BarChart, { data: pivotedData, margin: { top: 8, right: 16, bottom: 0, left: 0 }, barCategoryGap: "15%", barGap: 0 },
|
|
287
|
+
React.createElement(CartesianGrid, { strokeDasharray: "3 3", stroke: "#f3f4f6" }),
|
|
288
|
+
React.createElement(XAxis, { dataKey: "time", tickFormatter: formatTickTime, tick: { fontSize: 11, fill: "#9ca3af" }, axisLine: { stroke: "#e5e7eb" }, tickLine: false, minTickGap: 40, interval: "preserveStartEnd" }),
|
|
289
|
+
React.createElement(YAxis, { tick: { fontSize: 11, fill: "#9ca3af" }, axisLine: false, tickLine: false, width: 56, allowDecimals: false, tickFormatter: formatYAxisTick }),
|
|
290
|
+
React.createElement(Tooltip, { contentStyle: {
|
|
291
|
+
fontSize: 12,
|
|
292
|
+
borderRadius: 6,
|
|
293
|
+
border: "1px solid #e5e7eb",
|
|
294
|
+
}, labelFormatter: (label) => {
|
|
295
|
+
const d = new Date(label);
|
|
296
|
+
if (isNaN(d.getTime())) {
|
|
297
|
+
return label;
|
|
298
|
+
}
|
|
299
|
+
return d.toLocaleString([], {
|
|
300
|
+
month: "short",
|
|
301
|
+
day: "numeric",
|
|
302
|
+
hour: "2-digit",
|
|
303
|
+
minute: "2-digit",
|
|
304
|
+
hour12: false,
|
|
305
|
+
});
|
|
306
|
+
} }),
|
|
307
|
+
React.createElement(Legend, { wrapperStyle: { fontSize: 11 }, iconType: "square", iconSize: 10 }),
|
|
308
|
+
seriesKeys.map((key, index) => {
|
|
309
|
+
return (React.createElement(Bar, { key: key, dataKey: key, stackId: "group", fill: CHART_COLORS[index % CHART_COLORS.length], radius: index === seriesKeys.length - 1
|
|
310
|
+
? [2, 2, 0, 0]
|
|
311
|
+
: [0, 0, 0, 0], isAnimationActive: false, maxBarSize: 32 }));
|
|
312
|
+
})))));
|
|
313
|
+
};
|
|
314
|
+
const renderTopList = () => {
|
|
315
|
+
if (topListData.length === 0) {
|
|
316
|
+
return renderEmptyState();
|
|
317
|
+
}
|
|
318
|
+
const maxCount = Math.max(...topListData.map((item) => {
|
|
319
|
+
return item.count;
|
|
320
|
+
}), 1);
|
|
321
|
+
return (React.createElement("div", { className: "p-4" },
|
|
322
|
+
React.createElement("div", { className: "space-y-2" }, topListData.map((item, index) => {
|
|
323
|
+
const percentage = (item.count / maxCount) * 100;
|
|
324
|
+
return (React.createElement("div", { key: index, className: "flex items-center gap-3" },
|
|
325
|
+
React.createElement("div", { className: "w-40 truncate text-xs font-medium text-gray-700" }, item.value || "(empty)"),
|
|
326
|
+
React.createElement("div", { className: "flex-1" },
|
|
327
|
+
React.createElement("div", { className: "relative h-6 w-full overflow-hidden rounded bg-gray-100" },
|
|
328
|
+
React.createElement("div", { className: "absolute left-0 top-0 h-full rounded transition-all", style: {
|
|
329
|
+
width: `${percentage}%`,
|
|
330
|
+
backgroundColor: CHART_COLORS[index % CHART_COLORS.length],
|
|
331
|
+
} }),
|
|
332
|
+
React.createElement("div", { className: "absolute right-2 top-0 flex h-full items-center text-xs font-medium text-gray-600" }, item.count.toLocaleString())))));
|
|
333
|
+
}))));
|
|
334
|
+
};
|
|
335
|
+
const renderTable = () => {
|
|
336
|
+
var _a;
|
|
337
|
+
if (tableData.length === 0) {
|
|
338
|
+
return renderEmptyState();
|
|
339
|
+
}
|
|
340
|
+
const groupKeys = Object.keys(((_a = tableData[0]) === null || _a === void 0 ? void 0 : _a.groupValues) || {});
|
|
341
|
+
return (React.createElement("div", { className: "p-4" },
|
|
342
|
+
React.createElement("div", { className: "overflow-hidden rounded-lg border border-gray-200" },
|
|
343
|
+
React.createElement("table", { className: "min-w-full divide-y divide-gray-200" },
|
|
344
|
+
React.createElement("thead", { className: "bg-gray-50" },
|
|
345
|
+
React.createElement("tr", null,
|
|
346
|
+
groupKeys.map((key) => {
|
|
347
|
+
return (React.createElement("th", { key: key, className: "px-4 py-2 text-left text-xs font-medium uppercase tracking-wider text-gray-500" }, key));
|
|
348
|
+
}),
|
|
349
|
+
React.createElement("th", { className: "px-4 py-2 text-right text-xs font-medium uppercase tracking-wider text-gray-500" }, "Count"))),
|
|
350
|
+
React.createElement("tbody", { className: "divide-y divide-gray-100 bg-white" }, tableData.map((row, index) => {
|
|
351
|
+
return (React.createElement("tr", { key: index, className: "hover:bg-gray-50" },
|
|
352
|
+
groupKeys.map((key) => {
|
|
353
|
+
return (React.createElement("td", { key: key, className: "whitespace-nowrap px-4 py-2 text-xs text-gray-700" }, row.groupValues[key] || "(empty)"));
|
|
354
|
+
}),
|
|
355
|
+
React.createElement("td", { className: "whitespace-nowrap px-4 py-2 text-right text-xs font-medium text-gray-900" }, row.count.toLocaleString())));
|
|
356
|
+
}))))));
|
|
357
|
+
};
|
|
358
|
+
const renderEmptyState = () => {
|
|
359
|
+
return (React.createElement("div", { className: "flex h-64 items-center justify-center text-sm text-gray-400" }, "No data available for the selected query."));
|
|
360
|
+
};
|
|
361
|
+
const renderChart = () => {
|
|
362
|
+
if (isLoading) {
|
|
363
|
+
return (React.createElement("div", { className: "flex h-64 items-center justify-center" },
|
|
364
|
+
React.createElement(ComponentLoader, null)));
|
|
365
|
+
}
|
|
366
|
+
if (chartType === "timeseries") {
|
|
367
|
+
return renderTimeseries();
|
|
368
|
+
}
|
|
369
|
+
if (chartType === "toplist") {
|
|
370
|
+
return renderTopList();
|
|
371
|
+
}
|
|
372
|
+
return renderTable();
|
|
373
|
+
};
|
|
374
|
+
return (React.createElement("div", { className: "overflow-hidden rounded-lg border border-gray-200 bg-white shadow-sm" },
|
|
375
|
+
renderQueryBuilder(),
|
|
376
|
+
renderChart()));
|
|
377
|
+
};
|
|
378
|
+
export default LogsAnalyticsView;
|
|
379
|
+
//# sourceMappingURL=LogsAnalyticsView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LogsAnalyticsView.js","sourceRoot":"","sources":["../../../../../../UI/Components/LogsViewer/components/LogsAnalyticsView.tsx"],"names":[],"mappings":"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"}
|