@oneuptime/common 10.0.29 → 10.0.31

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.
@@ -7,6 +7,7 @@ import {
7
7
  LiveLogsOptions,
8
8
  LogsSavedViewOption,
9
9
  LogsTableColumnOption,
10
+ LogsViewMode,
10
11
  } from "../types";
11
12
  import RangeStartAndEndDateTime from "../../../../Types/Time/RangeStartAndEndDateTime";
12
13
 
@@ -28,6 +29,8 @@ export interface LogsViewerToolbarProps {
28
29
  availableColumns?: Array<LogsTableColumnOption> | undefined;
29
30
  selectedColumns?: Array<string> | undefined;
30
31
  onSelectedColumnsChange?: ((columns: Array<string>) => void) | undefined;
32
+ viewMode?: LogsViewMode | undefined;
33
+ onViewModeChange?: ((mode: LogsViewMode) => void) | undefined;
31
34
  }
32
35
 
33
36
  const LogsViewerToolbar: FunctionComponent<LogsViewerToolbarProps> = (
@@ -44,6 +47,63 @@ const LogsViewerToolbar: FunctionComponent<LogsViewerToolbarProps> = (
44
47
  >
45
48
  {/* Left group: View management + stats */}
46
49
  <div className="flex flex-wrap items-center gap-3">
50
+ {props.viewMode && props.onViewModeChange && (
51
+ <div className="inline-flex rounded-md shadow-sm" role="group">
52
+ <button
53
+ type="button"
54
+ className={`inline-flex items-center gap-1.5 rounded-l-md border px-3 py-1.5 text-xs font-medium transition-colors ${
55
+ props.viewMode === "list"
56
+ ? "border-indigo-500 bg-indigo-50 text-indigo-700"
57
+ : "border-gray-300 bg-white text-gray-700 hover:bg-gray-50"
58
+ }`}
59
+ onClick={() => {
60
+ props.onViewModeChange!("list");
61
+ }}
62
+ >
63
+ <svg
64
+ className="h-3.5 w-3.5"
65
+ fill="none"
66
+ viewBox="0 0 24 24"
67
+ strokeWidth={1.5}
68
+ stroke="currentColor"
69
+ >
70
+ <path
71
+ strokeLinecap="round"
72
+ strokeLinejoin="round"
73
+ d="M3.75 12h16.5m-16.5 3.75h16.5M3.75 19.5h16.5M5.625 4.5h12.75a1.875 1.875 0 0 1 0 3.75H5.625a1.875 1.875 0 0 1 0-3.75Z"
74
+ />
75
+ </svg>
76
+ List
77
+ </button>
78
+ <button
79
+ type="button"
80
+ className={`inline-flex items-center gap-1.5 rounded-r-md border px-3 py-1.5 text-xs font-medium transition-colors ${
81
+ props.viewMode === "analytics"
82
+ ? "border-indigo-500 bg-indigo-50 text-indigo-700"
83
+ : "border-gray-300 bg-white text-gray-700 hover:bg-gray-50"
84
+ }`}
85
+ onClick={() => {
86
+ props.onViewModeChange!("analytics");
87
+ }}
88
+ >
89
+ <svg
90
+ className="h-3.5 w-3.5"
91
+ fill="none"
92
+ viewBox="0 0 24 24"
93
+ strokeWidth={1.5}
94
+ stroke="currentColor"
95
+ >
96
+ <path
97
+ strokeLinecap="round"
98
+ strokeLinejoin="round"
99
+ d="M3 13.125C3 12.504 3.504 12 4.125 12h2.25c.621 0 1.125.504 1.125 1.125v6.75C7.5 20.496 6.996 21 6.375 21h-2.25A1.125 1.125 0 0 1 3 19.875v-6.75ZM9.75 8.625c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125v11.25c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V8.625ZM16.5 4.125c0-.621.504-1.125 1.125-1.125h2.25C20.496 3 21 3.504 21 4.125v15.75c0 .621-.504 1.125-1.125 1.125h-2.25a1.125 1.125 0 0 1-1.125-1.125V4.125Z"
100
+ />
101
+ </svg>
102
+ Analytics
103
+ </button>
104
+ </div>
105
+ )}
106
+
47
107
  {props.savedViews && props.onSavedViewSelect && (
48
108
  <SavedViewsDropdown
49
109
  savedViews={props.savedViews}
@@ -24,6 +24,8 @@ export interface ActiveFilter {
24
24
  displayValue: string;
25
25
  }
26
26
 
27
+ export type LogsViewMode = "list" | "analytics";
28
+
27
29
  export interface LogsSavedViewOption {
28
30
  id: string;
29
31
  name: string;
@@ -151,6 +151,94 @@ router.post("/telemetry/logs/facets", UserMiddleware.getUserMiddleware, async (r
151
151
  next(err);
152
152
  }
153
153
  });
154
+ // --- Log Analytics Endpoint ---
155
+ router.post("/telemetry/logs/analytics", UserMiddleware.getUserMiddleware, async (req, res, next) => {
156
+ try {
157
+ const databaseProps = await CommonAPI.getDatabaseCommonInteractionProps(req);
158
+ if (!(databaseProps === null || databaseProps === void 0 ? void 0 : databaseProps.tenantId)) {
159
+ return Response.sendErrorResponse(req, res, new BadDataException("Invalid Project ID"));
160
+ }
161
+ const body = req.body;
162
+ const chartType = body["chartType"] || "timeseries";
163
+ if (!["timeseries", "toplist", "table"].includes(chartType)) {
164
+ return Response.sendErrorResponse(req, res, new BadDataException("Invalid chartType"));
165
+ }
166
+ const aggregation = body["aggregation"] || "count";
167
+ if (!["count", "unique"].includes(aggregation)) {
168
+ return Response.sendErrorResponse(req, res, new BadDataException("Invalid aggregation"));
169
+ }
170
+ const startTime = body["startTime"]
171
+ ? OneUptimeDate.fromString(body["startTime"])
172
+ : OneUptimeDate.addRemoveHours(OneUptimeDate.getCurrentDate(), -1);
173
+ const endTime = body["endTime"]
174
+ ? OneUptimeDate.fromString(body["endTime"])
175
+ : OneUptimeDate.getCurrentDate();
176
+ const bucketSizeInMinutes = body["bucketSizeInMinutes"] ||
177
+ computeDefaultBucketSize(startTime, endTime);
178
+ const serviceIds = body["serviceIds"]
179
+ ? body["serviceIds"].map((id) => {
180
+ return new ObjectID(id);
181
+ })
182
+ : undefined;
183
+ const severityTexts = body["severityTexts"]
184
+ ? body["severityTexts"]
185
+ : undefined;
186
+ const bodySearchText = body["bodySearchText"]
187
+ ? body["bodySearchText"]
188
+ : undefined;
189
+ const traceIds = body["traceIds"]
190
+ ? body["traceIds"]
191
+ : undefined;
192
+ const spanIds = body["spanIds"]
193
+ ? body["spanIds"]
194
+ : undefined;
195
+ const groupBy = body["groupBy"]
196
+ ? body["groupBy"]
197
+ : undefined;
198
+ const aggregationField = body["aggregationField"]
199
+ ? body["aggregationField"]
200
+ : undefined;
201
+ const limit = body["limit"]
202
+ ? body["limit"]
203
+ : undefined;
204
+ const request = {
205
+ projectId: databaseProps.tenantId,
206
+ startTime,
207
+ endTime,
208
+ bucketSizeInMinutes,
209
+ chartType,
210
+ groupBy,
211
+ aggregation,
212
+ aggregationField,
213
+ serviceIds,
214
+ severityTexts,
215
+ bodySearchText,
216
+ traceIds,
217
+ spanIds,
218
+ limit,
219
+ };
220
+ if (chartType === "timeseries") {
221
+ const data = await LogAggregationService.getAnalyticsTimeseries(request);
222
+ return Response.sendJsonObjectResponse(req, res, {
223
+ data: data,
224
+ });
225
+ }
226
+ if (chartType === "toplist") {
227
+ const data = await LogAggregationService.getAnalyticsTopList(request);
228
+ return Response.sendJsonObjectResponse(req, res, {
229
+ data: data,
230
+ });
231
+ }
232
+ // table
233
+ const data = await LogAggregationService.getAnalyticsTable(request);
234
+ return Response.sendJsonObjectResponse(req, res, {
235
+ data: data,
236
+ });
237
+ }
238
+ catch (err) {
239
+ next(err);
240
+ }
241
+ });
154
242
  // --- Helpers ---
155
243
  function computeDefaultBucketSize(startTime, endTime) {
156
244
  const diffMs = endTime.getTime() - startTime.getTime();
@@ -1 +1 @@
1
- {"version":3,"file":"TelemetryAPI.js","sourceRoot":"","sources":["../../../../Server/API/TelemetryAPI.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,MAAM,iCAAiC,CAAC;AAC7D,OAAO,OAKN,MAAM,kBAAkB,CAAC;AAC1B,OAAO,QAAQ,MAAM,mBAAmB,CAAC;AACzC,OAAO,gBAAgB,MAAM,wCAAwC,CAAC;AACtE,OAAO,SAAS,MAAM,aAAa,CAAC;AAEpC,OAAO,aAAa,MAAM,qCAAqC,CAAC;AAChE,OAAO,yBAAyB,MAAM,uCAAuC,CAAC;AAC9E,OAAO,qBAKN,MAAM,mCAAmC,CAAC;AAC3C,OAAO,QAAQ,MAAM,sBAAsB,CAAC;AAC5C,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAG7C,MAAM,MAAM,GAAkB,OAAO,CAAC,SAAS,EAAE,CAAC;AAElD,MAAM,CAAC,IAAI,CACT,mCAAmC,EACnC,cAAc,CAAC,iBAAiB,EAChC,KAAK,EAAE,GAAmB,EAAE,GAAoB,EAAE,IAAkB,EAAE,EAAE;IACtE,OAAO,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;AAC7D,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,gCAAgC,EAChC,cAAc,CAAC,iBAAiB,EAChC,KAAK,EAAE,GAAmB,EAAE,GAAoB,EAAE,IAAkB,EAAE,EAAE;IACtE,OAAO,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,CAAC,GAAG,CAAC,CAAC;AAC1D,CAAC,CACF,CAAC;AAEF,MAAM,CAAC,IAAI,CACT,kCAAkC,EAClC,cAAc,CAAC,iBAAiB,EAChC,KAAK,EAAE,GAAmB,EAAE,GAAoB,EAAE,IAAkB,EAAE,EAAE;IACtE,OAAO,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC;AAC5D,CAAC,CACF,CAAC;AASF,MAAM,aAAa,GAA0B,KAAK,EAChD,GAAmB,EACnB,GAAoB,EACpB,IAAkB,EAClB,aAA4B,EAC5B,EAAE;IACF,IAAI,CAAC;QACH,MAAM,aAAa,GACjB,MAAM,SAAS,CAAC,iCAAiC,CAAC,GAAG,CAAC,CAAC;QAEzD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,QAAQ,CAAC,iBAAiB,CAC/B,GAAG,EACH,GAAG,EACH,IAAI,gBAAgB,CAAC,uBAAuB,CAAC,CAC9C,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC;YAC5B,OAAO,QAAQ,CAAC,iBAAiB,CAC/B,GAAG,EACH,GAAG,EACH,IAAI,gBAAgB,CAAC,oBAAoB,CAAC,CAC3C,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GACd,MAAM,yBAAyB,CAAC,eAAe,CAAC;YAC9C,SAAS,EAAE,aAAa,CAAC,QAAQ;YACjC,aAAa;SACd,CAAC,CAAC;QAEL,OAAO,QAAQ,CAAC,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAE;YAC/C,UAAU,EAAE,UAAU;SACvB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,IAAI,CAAC,GAAG,CAAC,CAAC;IACZ,CAAC;AACH,CAAC,CAAC;AAEF,iCAAiC;AAEjC,MAAM,CAAC,IAAI,CACT,2BAA2B,EAC3B,cAAc,CAAC,iBAAiB,EAChC,KAAK,EACH,GAAmB,EACnB,GAAoB,EACpB,IAAkB,EACH,EAAE;IACjB,IAAI,CAAC;QACH,MAAM,aAAa,GACjB,MAAM,SAAS,CAAC,iCAAiC,CAAC,GAAG,CAAC,CAAC;QAEzD,IAAI,CAAC,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,QAAQ,CAAA,EAAE,CAAC;YAC7B,OAAO,QAAQ,CAAC,iBAAiB,CAC/B,GAAG,EACH,GAAG,EACH,IAAI,gBAAgB,CAAC,oBAAoB,CAAC,CAC3C,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAe,GAAG,CAAC,IAAkB,CAAC;QAEhD,MAAM,SAAS,GAAS,IAAI,CAAC,WAAW,CAAC;YACvC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAW,CAAC;YACvD,CAAC,CAAC,aAAa,CAAC,cAAc,CAAC,aAAa,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAErE,MAAM,OAAO,GAAS,IAAI,CAAC,SAAS,CAAC;YACnC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAW,CAAC;YACrD,CAAC,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;QAEnC,MAAM,mBAAmB,GACtB,IAAI,CAAC,qBAAqB,CAAY;YACvC,wBAAwB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAE/C,MAAM,UAAU,GAAgC,IAAI,CAAC,YAAY,CAAC;YAChE,CAAC,CAAE,IAAI,CAAC,YAAY,CAAmB,CAAC,GAAG,CAAC,CAAC,EAAU,EAAE,EAAE;gBACvD,OAAO,IAAI,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC1B,CAAC,CAAC;YACJ,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,aAAa,GAA8B,IAAI,CAAC,eAAe,CAAC;YACpE,CAAC,CAAE,IAAI,CAAC,eAAe,CAAmB;YAC1C,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,cAAc,GAAuB,IAAI,CAAC,gBAAgB,CAAC;YAC/D,CAAC,CAAE,IAAI,CAAC,gBAAgB,CAAY;YACpC,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,QAAQ,GAA8B,IAAI,CAAC,UAAU,CAAC;YAC1D,CAAC,CAAE,IAAI,CAAC,UAAU,CAAmB;YACrC,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,OAAO,GAA8B,IAAI,CAAC,SAAS,CAAC;YACxD,CAAC,CAAE,IAAI,CAAC,SAAS,CAAmB;YACpC,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,OAAO,GAAqB;YAChC,SAAS,EAAE,aAAa,CAAC,QAAQ;YACjC,SAAS;YACT,OAAO;YACP,mBAAmB;YACnB,UAAU;YACV,aAAa;YACb,cAAc;YACd,QAAQ;YACR,OAAO;SACR,CAAC;QAEF,MAAM,OAAO,GACX,MAAM,qBAAqB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QAEpD,OAAO,QAAQ,CAAC,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAE;YAC/C,OAAO,EAAE,OAAgC;SAC1C,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,IAAI,CAAC,GAAG,CAAC,CAAC;IACZ,CAAC;AACH,CAAC,CACF,CAAC;AAEF,8BAA8B;AAE9B,MAAM,CAAC,IAAI,CACT,wBAAwB,EACxB,cAAc,CAAC,iBAAiB,EAChC,KAAK,EACH,GAAmB,EACnB,GAAoB,EACpB,IAAkB,EACH,EAAE;IACjB,IAAI,CAAC;QACH,MAAM,aAAa,GACjB,MAAM,SAAS,CAAC,iCAAiC,CAAC,GAAG,CAAC,CAAC;QAEzD,IAAI,CAAC,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,QAAQ,CAAA,EAAE,CAAC;YAC7B,OAAO,QAAQ,CAAC,iBAAiB,CAC/B,GAAG,EACH,GAAG,EACH,IAAI,gBAAgB,CAAC,oBAAoB,CAAC,CAC3C,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,GAAe,GAAG,CAAC,IAAkB,CAAC;QAEhD,MAAM,SAAS,GAAkB,IAAI,CAAC,WAAW,CAAC;YAChD,CAAC,CAAE,IAAI,CAAC,WAAW,CAAmB;YACtC,CAAC,CAAC,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QAElC,MAAM,SAAS,GAAS,IAAI,CAAC,WAAW,CAAC;YACvC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAW,CAAC;YACvD,CAAC,CAAC,aAAa,CAAC,cAAc,CAAC,aAAa,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;QAErE,MAAM,OAAO,GAAS,IAAI,CAAC,SAAS,CAAC;YACnC,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAW,CAAC;YACrD,CAAC,CAAC,aAAa,CAAC,cAAc,EAAE,CAAC;QAEnC,MAAM,KAAK,GAAY,IAAI,CAAC,OAAO,CAAY,IAAI,GAAG,CAAC;QAEvD,MAAM,UAAU,GAAgC,IAAI,CAAC,YAAY,CAAC;YAChE,CAAC,CAAE,IAAI,CAAC,YAAY,CAAmB,CAAC,GAAG,CAAC,CAAC,EAAU,EAAE,EAAE;gBACvD,OAAO,IAAI,QAAQ,CAAC,EAAE,CAAC,CAAC;YAC1B,CAAC,CAAC;YACJ,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,aAAa,GAA8B,IAAI,CAAC,eAAe,CAAC;YACpE,CAAC,CAAE,IAAI,CAAC,eAAe,CAAmB;YAC1C,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,cAAc,GAAuB,IAAI,CAAC,gBAAgB,CAAC;YAC/D,CAAC,CAAE,IAAI,CAAC,gBAAgB,CAAY;YACpC,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,QAAQ,GAA8B,IAAI,CAAC,UAAU,CAAC;YAC1D,CAAC,CAAE,IAAI,CAAC,UAAU,CAAmB;YACrC,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,OAAO,GAA8B,IAAI,CAAC,SAAS,CAAC;YACxD,CAAC,CAAE,IAAI,CAAC,SAAS,CAAmB;YACpC,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,MAAM,GAAsC,EAAE,CAAC;QAErD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,MAAM,OAAO,GAAiB;gBAC5B,SAAS,EAAE,aAAa,CAAC,QAAQ;gBACjC,SAAS;gBACT,OAAO;gBACP,QAAQ;gBACR,KAAK;gBACL,UAAU;gBACV,aAAa;gBACb,cAAc;gBACd,QAAQ;gBACR,OAAO;aACR,CAAC;YAEF,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,qBAAqB,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACzE,CAAC;QAED,OAAO,QAAQ,CAAC,sBAAsB,CAAC,GAAG,EAAE,GAAG,EAAE;YAC/C,MAAM,EAAE,MAA+B;SACxC,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,IAAI,CAAC,GAAG,CAAC,CAAC;IACZ,CAAC;AACH,CAAC,CACF,CAAC;AAEF,kBAAkB;AAElB,SAAS,wBAAwB,CAAC,SAAe,EAAE,OAAa;IAC9D,MAAM,MAAM,GAAW,OAAO,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC;IAC/D,MAAM,WAAW,GAAW,MAAM,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IAEjD,IAAI,WAAW,IAAI,EAAE,EAAE,CAAC;QACtB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,WAAW,IAAI,GAAG,EAAE,CAAC;QACvB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,IAAI,WAAW,IAAI,IAAI,EAAE,CAAC;QACxB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,WAAW,IAAI,KAAK,EAAE,CAAC;QACzB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,IAAI,WAAW,IAAI,KAAK,EAAE,CAAC;QACzB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"TelemetryAPI.js","sourceRoot":"","sources":["../../../../Server/API/TelemetryAPI.ts"],"names":[],"mappings":"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"}
@@ -109,6 +109,235 @@ export class LogAggregationService {
109
109
  }}`);
110
110
  return statement;
111
111
  }
112
+ static async getAnalyticsTimeseries(request) {
113
+ const statement = LogAggregationService.buildAnalyticsTimeseriesStatement(request);
114
+ const dbResult = await LogDatabaseService.executeQuery(statement);
115
+ const response = await dbResult.json();
116
+ const rows = response.data || [];
117
+ const groupByKeys = request.groupBy || [];
118
+ return rows.map((row) => {
119
+ const groupValues = {};
120
+ for (const key of groupByKeys) {
121
+ const alias = LogAggregationService.groupByAlias(key);
122
+ groupValues[key] = String(row[alias] || "");
123
+ }
124
+ return {
125
+ time: String(row["bucket"] || ""),
126
+ count: Number(row["cnt"] || 0),
127
+ groupValues,
128
+ };
129
+ });
130
+ }
131
+ static async getAnalyticsTopList(request) {
132
+ if (!request.groupBy || request.groupBy.length === 0) {
133
+ throw new BadDataException("groupBy with at least one dimension is required for top list");
134
+ }
135
+ const statement = LogAggregationService.buildAnalyticsTopListStatement(request);
136
+ const dbResult = await LogDatabaseService.executeQuery(statement);
137
+ const response = await dbResult.json();
138
+ const rows = response.data || [];
139
+ return rows
140
+ .map((row) => {
141
+ return {
142
+ value: String(row["val"] || ""),
143
+ count: Number(row["cnt"] || 0),
144
+ };
145
+ })
146
+ .filter((item) => {
147
+ return item.value.length > 0;
148
+ });
149
+ }
150
+ static async getAnalyticsTable(request) {
151
+ if (!request.groupBy || request.groupBy.length === 0) {
152
+ throw new BadDataException("groupBy with at least one dimension is required for table");
153
+ }
154
+ const statement = LogAggregationService.buildAnalyticsTableStatement(request);
155
+ const dbResult = await LogDatabaseService.executeQuery(statement);
156
+ const response = await dbResult.json();
157
+ const rows = response.data || [];
158
+ const groupByKeys = request.groupBy;
159
+ return rows.map((row) => {
160
+ const groupValues = {};
161
+ for (const key of groupByKeys) {
162
+ const alias = LogAggregationService.groupByAlias(key);
163
+ groupValues[key] = String(row[alias] || "");
164
+ }
165
+ return {
166
+ groupValues,
167
+ count: Number(row["cnt"] || 0),
168
+ };
169
+ });
170
+ }
171
+ static groupByAlias(key) {
172
+ if (LogAggregationService.isTopLevelColumn(key)) {
173
+ return key;
174
+ }
175
+ // For attribute keys, use a sanitized alias
176
+ return `attr_${key.replace(/[^a-zA-Z0-9_]/g, "_")}`;
177
+ }
178
+ static appendGroupBySelect(statement, groupByKeys) {
179
+ for (const key of groupByKeys) {
180
+ LogAggregationService.validateFacetKey(key);
181
+ if (LogAggregationService.isTopLevelColumn(key)) {
182
+ statement.append(`, toString(${key}) AS ${key}`);
183
+ }
184
+ else {
185
+ const alias = LogAggregationService.groupByAlias(key);
186
+ statement.append(SQL `, JSONExtractRaw(attributes, ${{
187
+ type: TableColumnType.Text,
188
+ value: key,
189
+ }}) AS ${alias}`);
190
+ }
191
+ }
192
+ }
193
+ static appendGroupByClause(statement, groupByKeys) {
194
+ for (const key of groupByKeys) {
195
+ if (LogAggregationService.isTopLevelColumn(key)) {
196
+ statement.append(`, ${key}`);
197
+ }
198
+ else {
199
+ const alias = LogAggregationService.groupByAlias(key);
200
+ statement.append(`, ${alias}`);
201
+ }
202
+ }
203
+ }
204
+ static getAggregationExpression(request) {
205
+ if (request.aggregation === "unique" && request.aggregationField) {
206
+ LogAggregationService.validateFacetKey(request.aggregationField);
207
+ if (LogAggregationService.isTopLevelColumn(request.aggregationField)) {
208
+ return `uniqExact(${request.aggregationField})`;
209
+ }
210
+ return `uniqExact(JSONExtractRaw(attributes, '${request.aggregationField.replace(/'/g, "\\'")}'))`;
211
+ }
212
+ return "count()";
213
+ }
214
+ static validateGroupBy(groupBy) {
215
+ if (!groupBy) {
216
+ return;
217
+ }
218
+ if (groupBy.length > LogAggregationService.MAX_GROUP_BY_DIMENSIONS) {
219
+ throw new BadDataException(`groupBy supports at most ${LogAggregationService.MAX_GROUP_BY_DIMENSIONS} dimensions`);
220
+ }
221
+ for (const key of groupBy) {
222
+ LogAggregationService.validateFacetKey(key);
223
+ }
224
+ }
225
+ static buildAnalyticsTimeseriesStatement(request) {
226
+ LogAggregationService.validateGroupBy(request.groupBy);
227
+ const intervalSeconds = request.bucketSizeInMinutes * 60;
228
+ const aggExpr = LogAggregationService.getAggregationExpression(request);
229
+ const statement = SQL `
230
+ SELECT
231
+ toStartOfInterval(time, INTERVAL ${{
232
+ type: TableColumnType.Number,
233
+ value: intervalSeconds,
234
+ }} SECOND) AS bucket`;
235
+ statement.append(`, ${aggExpr} AS cnt`);
236
+ if (request.groupBy && request.groupBy.length > 0) {
237
+ LogAggregationService.appendGroupBySelect(statement, request.groupBy);
238
+ }
239
+ statement.append(SQL `
240
+ FROM ${LogAggregationService.TABLE_NAME}
241
+ WHERE projectId = ${{
242
+ type: TableColumnType.ObjectID,
243
+ value: request.projectId,
244
+ }}
245
+ AND time >= ${{
246
+ type: TableColumnType.Date,
247
+ value: request.startTime,
248
+ }}
249
+ AND time <= ${{
250
+ type: TableColumnType.Date,
251
+ value: request.endTime,
252
+ }}`);
253
+ LogAggregationService.appendCommonFilters(statement, request);
254
+ statement.append(" GROUP BY bucket");
255
+ if (request.groupBy && request.groupBy.length > 0) {
256
+ LogAggregationService.appendGroupByClause(statement, request.groupBy);
257
+ }
258
+ statement.append(" ORDER BY bucket ASC");
259
+ return statement;
260
+ }
261
+ static buildAnalyticsTopListStatement(request) {
262
+ var _a;
263
+ const groupByKey = request.groupBy[0];
264
+ LogAggregationService.validateFacetKey(groupByKey);
265
+ const limit = (_a = request.limit) !== null && _a !== void 0 ? _a : LogAggregationService.DEFAULT_ANALYTICS_LIMIT;
266
+ const aggExpr = LogAggregationService.getAggregationExpression(request);
267
+ const isTopLevel = LogAggregationService.isTopLevelColumn(groupByKey);
268
+ const statement = new Statement();
269
+ if (isTopLevel) {
270
+ statement.append(`SELECT toString(${groupByKey}) AS val, ${aggExpr} AS cnt FROM ${LogAggregationService.TABLE_NAME}`);
271
+ }
272
+ else {
273
+ statement.append(`SELECT JSONExtractRaw(attributes, `);
274
+ statement.append(SQL `${{
275
+ type: TableColumnType.Text,
276
+ value: groupByKey,
277
+ }}`);
278
+ statement.append(`) AS val, ${aggExpr} AS cnt FROM ${LogAggregationService.TABLE_NAME}`);
279
+ }
280
+ statement.append(SQL ` WHERE projectId = ${{
281
+ type: TableColumnType.ObjectID,
282
+ value: request.projectId,
283
+ }} AND time >= ${{
284
+ type: TableColumnType.Date,
285
+ value: request.startTime,
286
+ }} AND time <= ${{
287
+ type: TableColumnType.Date,
288
+ value: request.endTime,
289
+ }}`);
290
+ if (!isTopLevel) {
291
+ statement.append(SQL ` AND JSONHas(attributes, ${{
292
+ type: TableColumnType.Text,
293
+ value: groupByKey,
294
+ }}) = 1`);
295
+ }
296
+ LogAggregationService.appendCommonFilters(statement, request);
297
+ statement.append(SQL ` GROUP BY val ORDER BY cnt DESC LIMIT ${{
298
+ type: TableColumnType.Number,
299
+ value: limit,
300
+ }}`);
301
+ return statement;
302
+ }
303
+ static buildAnalyticsTableStatement(request) {
304
+ var _a;
305
+ LogAggregationService.validateGroupBy(request.groupBy);
306
+ const groupByKeys = request.groupBy;
307
+ const limit = (_a = request.limit) !== null && _a !== void 0 ? _a : LogAggregationService.DEFAULT_ANALYTICS_LIMIT;
308
+ const aggExpr = LogAggregationService.getAggregationExpression(request);
309
+ const statement = new Statement();
310
+ statement.append(`SELECT ${aggExpr} AS cnt`);
311
+ LogAggregationService.appendGroupBySelect(statement, groupByKeys);
312
+ statement.append(SQL `
313
+ FROM ${LogAggregationService.TABLE_NAME}
314
+ WHERE projectId = ${{
315
+ type: TableColumnType.ObjectID,
316
+ value: request.projectId,
317
+ }}
318
+ AND time >= ${{
319
+ type: TableColumnType.Date,
320
+ value: request.startTime,
321
+ }}
322
+ AND time <= ${{
323
+ type: TableColumnType.Date,
324
+ value: request.endTime,
325
+ }}`);
326
+ LogAggregationService.appendCommonFilters(statement, request);
327
+ // Build GROUP BY from aliases
328
+ const aliases = groupByKeys.map((key) => {
329
+ if (LogAggregationService.isTopLevelColumn(key)) {
330
+ return key;
331
+ }
332
+ return LogAggregationService.groupByAlias(key);
333
+ });
334
+ statement.append(` GROUP BY ${aliases.join(", ")}`);
335
+ statement.append(SQL ` ORDER BY cnt DESC LIMIT ${{
336
+ type: TableColumnType.Number,
337
+ value: limit,
338
+ }}`);
339
+ return statement;
340
+ }
112
341
  static appendCommonFilters(statement, request) {
113
342
  if (request.serviceIds && request.serviceIds.length > 0) {
114
343
  statement.append(SQL ` AND serviceId IN (${{
@@ -172,6 +401,8 @@ LogAggregationService.TOP_LEVEL_COLUMNS = new Set([
172
401
  ]);
173
402
  LogAggregationService.ATTRIBUTE_KEY_PATTERN = /^[a-zA-Z0-9._:/-]+$/;
174
403
  LogAggregationService.MAX_FACET_KEY_LENGTH = 256;
404
+ LogAggregationService.DEFAULT_ANALYTICS_LIMIT = 10;
405
+ LogAggregationService.MAX_GROUP_BY_DIMENSIONS = 2;
175
406
  __decorate([
176
407
  CaptureSpan(),
177
408
  __metadata("design:type", Function),
@@ -184,5 +415,23 @@ __decorate([
184
415
  __metadata("design:paramtypes", [Object]),
185
416
  __metadata("design:returntype", Promise)
186
417
  ], LogAggregationService, "getFacetValues", null);
418
+ __decorate([
419
+ CaptureSpan(),
420
+ __metadata("design:type", Function),
421
+ __metadata("design:paramtypes", [Object]),
422
+ __metadata("design:returntype", Promise)
423
+ ], LogAggregationService, "getAnalyticsTimeseries", null);
424
+ __decorate([
425
+ CaptureSpan(),
426
+ __metadata("design:type", Function),
427
+ __metadata("design:paramtypes", [Object]),
428
+ __metadata("design:returntype", Promise)
429
+ ], LogAggregationService, "getAnalyticsTopList", null);
430
+ __decorate([
431
+ CaptureSpan(),
432
+ __metadata("design:type", Function),
433
+ __metadata("design:paramtypes", [Object]),
434
+ __metadata("design:returntype", Promise)
435
+ ], LogAggregationService, "getAnalyticsTable", null);
187
436
  export default LogAggregationService;
188
437
  //# sourceMappingURL=LogAggregationService.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LogAggregationService.js","sourceRoot":"","sources":["../../../../Server/Services/LogAggregationService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LogAggregationService.js","sourceRoot":"","sources":["../../../../Server/Services/LogAggregationService.ts"],"names":[],"mappings":"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"}
@@ -88,6 +88,21 @@ export default class OnTriggerBaseModel extends TriggerCode {
88
88
  if (select && typeof select === "string") {
89
89
  select = JSONFunctions.parse(select);
90
90
  }
91
+ /*
92
+ * Convert string "true"/"false" values to booleans in select.
93
+ * Workflow arguments may pass select values as strings (e.g. "true")
94
+ * which causes TypeORM to iterate string characters as property indices.
95
+ */
96
+ if (select && typeof select === "object") {
97
+ for (const key in select) {
98
+ if (select[key] === "true") {
99
+ select[key] = true;
100
+ }
101
+ else if (select[key] === "false") {
102
+ select[key] = false;
103
+ }
104
+ }
105
+ }
91
106
  const model = await this.service.findOneById({
92
107
  id: new ObjectID(data["_id"].toString()),
93
108
  props: {
@@ -1 +1 @@
1
- {"version":3,"file":"OnTriggerBaseModel.js","sourceRoot":"","sources":["../../../../../../../Server/Types/Workflow/Components/BaseModel/OnTriggerBaseModel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OnTriggerBaseModel.js","sourceRoot":"","sources":["../../../../../../../Server/Types/Workflow/Components/BaseModel/OnTriggerBaseModel.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,7 @@ import LogsHistogram from "./components/LogsHistogram";
18
18
  import LogsFacetSidebar from "./components/LogsFacetSidebar";
19
19
  import ActiveFilterChips from "./components/ActiveFilterChips";
20
20
  import { CORE_LOGS_TABLE_COLUMN_OPTIONS, DEFAULT_LOGS_TABLE_COLUMNS, getLogsAttributeColumnId, normalizeLogsTableColumns, } from "./types";
21
+ import LogsAnalyticsView from "./components/LogsAnalyticsView";
21
22
  import { queryStringToFilter } from "../../../Types/Log/LogQueryToFilter";
22
23
  import TimeRange from "../../../Types/Time/TimeRange";
23
24
  const DEFAULT_PAGE_SIZE = 100;
@@ -70,7 +71,7 @@ function resolveServiceNameToId(name, serviceMap) {
70
71
  return undefined;
71
72
  }
72
73
  const LogsViewer = (props) => {
73
- var _a, _b, _c, _d, _e;
74
+ var _a, _b, _c, _d, _e, _f;
74
75
  const [filterData, setFilterData] = useState(props.filterData);
75
76
  const [searchQuery, setSearchQuery] = useState("");
76
77
  const [logAttributes, setLogAttributes] = useState([]);
@@ -85,6 +86,7 @@ const LogsViewer = (props) => {
85
86
  const [localSortField, setLocalSortField] = useState("time");
86
87
  const [localSortOrder, setLocalSortOrder] = useState(SortOrder.Descending);
87
88
  const [internalSelectedColumns, setInternalSelectedColumns] = useState(DEFAULT_LOGS_TABLE_COLUMNS);
89
+ const [internalViewMode, setInternalViewMode] = useState("list");
88
90
  useEffect(() => {
89
91
  setFilterData(props.filterData);
90
92
  }, [props.filterData]);
@@ -375,8 +377,16 @@ const LogsViewer = (props) => {
375
377
  if (pageError) {
376
378
  return React.createElement(ErrorMessage, { message: pageError });
377
379
  }
380
+ const currentViewMode = (_f = props.viewMode) !== null && _f !== void 0 ? _f : internalViewMode;
381
+ const handleViewModeChange = (mode) => {
382
+ var _a;
383
+ if (!props.viewMode) {
384
+ setInternalViewMode(mode);
385
+ }
386
+ (_a = props.onViewModeChange) === null || _a === void 0 ? void 0 : _a.call(props, mode);
387
+ };
378
388
  const toolbarProps = Object.assign(Object.assign(Object.assign({ resultCount: totalItems, currentPage,
379
- totalPages, savedViews: props.savedViews, selectedSavedViewId: props.selectedSavedViewId, onSavedViewSelect: props.onSavedViewSelect, onCreateSavedView: props.onCreateSavedView, onEditSavedView: props.onEditSavedView, onDeleteSavedView: props.onDeleteSavedView, onUpdateCurrentSavedView: props.onUpdateCurrentSavedView }, (props.onSelectedColumnsChange || props.selectedColumns
389
+ totalPages, viewMode: currentViewMode, onViewModeChange: handleViewModeChange, savedViews: props.savedViews, selectedSavedViewId: props.selectedSavedViewId, onSavedViewSelect: props.onSavedViewSelect, onCreateSavedView: props.onCreateSavedView, onEditSavedView: props.onEditSavedView, onDeleteSavedView: props.onDeleteSavedView, onUpdateCurrentSavedView: props.onUpdateCurrentSavedView }, (props.onSelectedColumnsChange || props.selectedColumns
380
390
  ? {
381
391
  availableColumns,
382
392
  selectedColumns,
@@ -401,7 +411,7 @@ const LogsViewer = (props) => {
401
411
  React.createElement(LogsFilterCard, { logAttributes: logAttributes, searchQuery: searchQuery, onSearchQueryChange: setSearchQuery, onSearchSubmit: handleSearchSubmit, valueSuggestions: resolvedValueSuggestions, onFieldValueSelect: handleFieldValueSelectWithServiceResolve, toolbar: React.createElement(LogsViewerToolbar, Object.assign({}, toolbarProps)) }))),
402
412
  enrichedActiveFilters.length > 0 && props.onRemoveFilter && (React.createElement(ActiveFilterChips, { filters: enrichedActiveFilters, onRemove: props.onRemoveFilter, onClearAll: props.onClearAllFilters || (() => { }) })),
403
413
  props.histogramBuckets && (React.createElement(LogsHistogram, { buckets: props.histogramBuckets, isLoading: props.histogramLoading || false, onTimeRangeSelect: props.onHistogramTimeRangeSelect })),
404
- React.createElement("div", { className: "flex gap-3" },
414
+ currentViewMode === "analytics" ? (React.createElement(LogsAnalyticsView, { timeRange: props.timeRange || { range: TimeRange.PAST_ONE_HOUR }, serviceIds: props.analyticsServiceIds, appliedFacetFilters: props.analyticsAppliedFacetFilters || new Map(), logAttributes: logAttributes })) : (React.createElement("div", { className: "flex gap-3" },
405
415
  showSidebar && props.facetData && (React.createElement(LogsFacetSidebar, { facetData: props.facetData, isLoading: props.facetLoading || false, serviceMap: serviceMap, onIncludeFilter: props.onFacetInclude || (() => { }), onExcludeFilter: props.onFacetExclude || (() => { }), activeFilters: props.activeFilters, savedViews: props.savedViews, selectedSavedViewId: props.selectedSavedViewId, onSavedViewSelect: props.onSavedViewSelect })),
406
416
  React.createElement("div", { className: "min-w-0 flex-1" },
407
417
  React.createElement("div", { className: "overflow-hidden rounded-lg border border-gray-200 bg-white shadow-sm" },
@@ -420,7 +430,7 @@ const LogsViewer = (props) => {
420
430
  setSelectedLogId(null);
421
431
  }, getTraceRoute: props.getTraceRoute, getSpanRoute: props.getSpanRoute, variant: "embedded" }));
422
432
  } }),
423
- React.createElement(LogsPagination, { currentPage: currentPage, totalItems: totalItems, pageSize: pageSize, pageSizeOptions: PAGE_SIZE_OPTIONS, onPageChange: handlePageChange, onPageSizeChange: handlePageSizeChange, isDisabled: props.isLoading || totalItems === 0 }))))));
433
+ React.createElement(LogsPagination, { currentPage: currentPage, totalItems: totalItems, pageSize: pageSize, pageSizeOptions: PAGE_SIZE_OPTIONS, onPageChange: handlePageChange, onPageSizeChange: handlePageSizeChange, isDisabled: props.isLoading || totalItems === 0 })))))));
424
434
  };
425
435
  export default LogsViewer;
426
436
  //# sourceMappingURL=LogsViewer.js.map