@finos/legend-query-builder 4.19.12 → 4.19.14
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/lib/__lib__/QueryBuilderDocumentation.d.ts +2 -1
- package/lib/__lib__/QueryBuilderDocumentation.d.ts.map +1 -1
- package/lib/__lib__/QueryBuilderDocumentation.js +1 -0
- package/lib/__lib__/QueryBuilderDocumentation.js.map +1 -1
- package/lib/__lib__/QueryBuilderEvent.d.ts +63 -2
- package/lib/__lib__/QueryBuilderEvent.d.ts.map +1 -1
- package/lib/__lib__/QueryBuilderEvent.js +74 -1
- package/lib/__lib__/QueryBuilderEvent.js.map +1 -1
- package/lib/__lib__/QueryBuilderTelemetryHelper.d.ts +204 -8
- package/lib/__lib__/QueryBuilderTelemetryHelper.d.ts.map +1 -1
- package/lib/__lib__/QueryBuilderTelemetryHelper.js +104 -0
- package/lib/__lib__/QueryBuilderTelemetryHelper.js.map +1 -1
- package/lib/components/QueryBuilder.d.ts.map +1 -1
- package/lib/components/QueryBuilder.js +83 -14
- package/lib/components/QueryBuilder.js.map +1 -1
- package/lib/components/QueryBuilderConstantExpressionPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderConstantExpressionPanel.js +18 -1
- package/lib/components/QueryBuilderConstantExpressionPanel.js.map +1 -1
- package/lib/components/QueryBuilderParametersPanel.d.ts.map +1 -1
- package/lib/components/QueryBuilderParametersPanel.js +18 -1
- package/lib/components/QueryBuilderParametersPanel.js.map +1 -1
- package/lib/components/QueryBuilderSideBar.d.ts.map +1 -1
- package/lib/components/QueryBuilderSideBar.js +19 -0
- package/lib/components/QueryBuilderSideBar.js.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderGraphFetchTreePanel.d.ts.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderGraphFetchTreePanel.js +42 -1
- package/lib/components/fetch-structure/QueryBuilderGraphFetchTreePanel.js.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.d.ts.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.js +25 -5
- package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.js.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.d.ts.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.js +55 -0
- package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.js.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderTDSPanel.d.ts.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderTDSPanel.js +95 -8
- package/lib/components/fetch-structure/QueryBuilderTDSPanel.js.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderTDSWindowPanel.d.ts.map +1 -1
- package/lib/components/fetch-structure/QueryBuilderTDSWindowPanel.js +37 -4
- package/lib/components/fetch-structure/QueryBuilderTDSWindowPanel.js.map +1 -1
- package/lib/components/filter/QueryBuilderFilterPanel.d.ts.map +1 -1
- package/lib/components/filter/QueryBuilderFilterPanel.js +24 -5
- package/lib/components/filter/QueryBuilderFilterPanel.js.map +1 -1
- package/lib/components/result/QueryBuilderDataProductErrorPanel.d.ts +61 -0
- package/lib/components/result/QueryBuilderDataProductErrorPanel.d.ts.map +1 -0
- package/lib/components/result/QueryBuilderDataProductErrorPanel.js +176 -0
- package/lib/components/result/QueryBuilderDataProductErrorPanel.js.map +1 -0
- package/lib/components/result/QueryBuilderResultPanel.d.ts.map +1 -1
- package/lib/components/result/QueryBuilderResultPanel.js +24 -18
- package/lib/components/result/QueryBuilderResultPanel.js.map +1 -1
- package/lib/data-access-overview.css +1 -1
- package/lib/index.css +2 -2
- package/lib/index.css.map +1 -1
- package/lib/index.d.ts +2 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/package.json +1 -1
- package/lib/stores/QueryBuilderResultState.d.ts +11 -1
- package/lib/stores/QueryBuilderResultState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderResultState.js +79 -15
- package/lib/stores/QueryBuilderResultState.js.map +1 -1
- package/lib/stores/QueryBuilderState.d.ts +139 -9
- package/lib/stores/QueryBuilderState.d.ts.map +1 -1
- package/lib/stores/QueryBuilderState.js +134 -22
- package/lib/stores/QueryBuilderState.js.map +1 -1
- package/lib/stores/QueryBuilder_LegendApplicationPlugin_Extension.d.ts +13 -0
- package/lib/stores/QueryBuilder_LegendApplicationPlugin_Extension.d.ts.map +1 -1
- package/lib/stores/QueryLoaderState.d.ts +33 -5
- package/lib/stores/QueryLoaderState.d.ts.map +1 -1
- package/lib/stores/QueryLoaderState.js +10 -1
- package/lib/stores/QueryLoaderState.js.map +1 -1
- package/lib/stores/data-access/DataProductAccessInfo.d.ts +37 -0
- package/lib/stores/data-access/DataProductAccessInfo.d.ts.map +1 -0
- package/lib/stores/data-access/DataProductAccessInfo.js +17 -0
- package/lib/stores/data-access/DataProductAccessInfo.js.map +1 -0
- package/lib/stores/data-cube/QueryBuilderDataCubeEngine.js +1 -1
- package/lib/stores/data-cube/QueryBuilderDataCubeEngine.js.map +1 -1
- package/lib/stores/explorer/QueryBuilderExplorerState.js +1 -1
- package/lib/stores/explorer/QueryBuilderExplorerState.js.map +1 -1
- package/lib/stores/milestoning/QueryBuilderMilestoningHelper.d.ts.map +1 -1
- package/lib/stores/milestoning/QueryBuilderMilestoningHelper.js +34 -9
- package/lib/stores/milestoning/QueryBuilderMilestoningHelper.js.map +1 -1
- package/lib/stores/milestoning/QueryBuilderMilestoningState.d.ts +5 -0
- package/lib/stores/milestoning/QueryBuilderMilestoningState.d.ts.map +1 -1
- package/lib/stores/milestoning/QueryBuilderMilestoningState.js +13 -0
- package/lib/stores/milestoning/QueryBuilderMilestoningState.js.map +1 -1
- package/lib/stores/workflows/dataProduct/DataProductQueryBuilderState.d.ts +2 -0
- package/lib/stores/workflows/dataProduct/DataProductQueryBuilderState.d.ts.map +1 -1
- package/lib/stores/workflows/dataProduct/DataProductQueryBuilderState.js +50 -1
- package/lib/stores/workflows/dataProduct/DataProductQueryBuilderState.js.map +1 -1
- package/package.json +10 -10
- package/src/__lib__/QueryBuilderDocumentation.ts +1 -0
- package/src/__lib__/QueryBuilderEvent.ts +80 -1
- package/src/__lib__/QueryBuilderTelemetryHelper.ts +450 -8
- package/src/components/QueryBuilder.tsx +157 -38
- package/src/components/QueryBuilderConstantExpressionPanel.tsx +24 -2
- package/src/components/QueryBuilderParametersPanel.tsx +25 -2
- package/src/components/QueryBuilderSideBar.tsx +28 -0
- package/src/components/fetch-structure/QueryBuilderGraphFetchTreePanel.tsx +56 -1
- package/src/components/fetch-structure/QueryBuilderPostFilterPanel.tsx +31 -4
- package/src/components/fetch-structure/QueryBuilderResultModifierPanel.tsx +74 -0
- package/src/components/fetch-structure/QueryBuilderTDSPanel.tsx +123 -8
- package/src/components/fetch-structure/QueryBuilderTDSWindowPanel.tsx +49 -4
- package/src/components/filter/QueryBuilderFilterPanel.tsx +31 -4
- package/src/components/result/QueryBuilderDataProductErrorPanel.tsx +441 -0
- package/src/components/result/QueryBuilderResultPanel.tsx +49 -32
- package/src/index.ts +2 -0
- package/src/stores/QueryBuilderResultState.ts +107 -19
- package/src/stores/QueryBuilderState.ts +260 -29
- package/src/stores/QueryBuilder_LegendApplicationPlugin_Extension.ts +20 -0
- package/src/stores/QueryLoaderState.ts +47 -6
- package/src/stores/data-access/DataProductAccessInfo.ts +37 -0
- package/src/stores/data-cube/QueryBuilderDataCubeEngine.ts +1 -1
- package/src/stores/explorer/QueryBuilderExplorerState.ts +1 -1
- package/src/stores/milestoning/QueryBuilderMilestoningHelper.ts +63 -8
- package/src/stores/milestoning/QueryBuilderMilestoningState.ts +20 -0
- package/src/stores/workflows/dataProduct/DataProductQueryBuilderState.ts +68 -0
- package/tsconfig.json +2 -0
|
@@ -15,29 +15,240 @@
|
|
|
15
15
|
*/
|
|
16
16
|
|
|
17
17
|
import type { GraphManagerOperationReport } from '@finos/legend-graph';
|
|
18
|
+
import type { TelemetryErrorFields, TimingsRecord } from '@finos/legend-shared';
|
|
18
19
|
import type { TelemetryService } from '@finos/legend-application';
|
|
19
20
|
import {
|
|
20
21
|
QUERY_BUILDER_EVENT,
|
|
21
22
|
QUERY_BUILDER_FILTER_EVENT,
|
|
22
23
|
QUERY_BUILDER_POST_FILTER_EVENT,
|
|
24
|
+
type QUERY_BUILDER_OPENED_FROM,
|
|
23
25
|
} from './QueryBuilderEvent.js';
|
|
24
|
-
import type {
|
|
26
|
+
import type {
|
|
27
|
+
QueryBuilderQueryInfo,
|
|
28
|
+
QueryBuilderTelemetryContext,
|
|
29
|
+
} from '../stores/QueryBuilderState.js';
|
|
25
30
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
+
/**
|
|
32
|
+
* Every payload below extends {@link QueryBuilderTelemetryContext}, which
|
|
33
|
+
* carries two deliberately separate halves:
|
|
34
|
+
*
|
|
35
|
+
* - the entry point the query builder was *opened with* (`sourceInfo` — the
|
|
36
|
+
* route: GAV, data space, data product, service, …), spread FLAT at the top
|
|
37
|
+
* level;
|
|
38
|
+
* - the execution context it *resolved to* (class / mapping / runtime), nested
|
|
39
|
+
* under `state`.
|
|
40
|
+
*
|
|
41
|
+
* Keeping them apart is what lets a dashboard distinguish "arrived on mapping
|
|
42
|
+
* X" from "currently querying mapping X" — for a mapping-sourced query both are
|
|
43
|
+
* populated and a divergence means the user switched, while for a data space or
|
|
44
|
+
* data product query only `state` carries a mapping, because the entry point
|
|
45
|
+
* resolves to one.
|
|
46
|
+
*/
|
|
47
|
+
type QueryExecution_TelemetryData = QueryBuilderTelemetryContext &
|
|
31
48
|
GraphManagerOperationReport & {
|
|
32
49
|
dependenciesCount: number;
|
|
33
|
-
|
|
50
|
+
queryInfo?: QueryBuilderQueryInfo | undefined;
|
|
51
|
+
executionDurationMs?: number | undefined;
|
|
34
52
|
};
|
|
35
53
|
|
|
54
|
+
/**
|
|
55
|
+
* Payload for query execution / plan / export failure events. Mirrors the shape
|
|
56
|
+
* of `LegendQueryTelemetryHelper` creator-failure payloads (`errorName`,
|
|
57
|
+
* `errorMessage`, `httpStatus`) so success/failure pairs can be joined on the
|
|
58
|
+
* same set of dimensions.
|
|
59
|
+
*/
|
|
60
|
+
export type QueryExecutionFailure_TelemetryData = QueryBuilderTelemetryContext &
|
|
61
|
+
TelemetryErrorFields & {
|
|
62
|
+
/**
|
|
63
|
+
* Backend trace ID for the failed execution, when the error carries one.
|
|
64
|
+
*/
|
|
65
|
+
executionTraceId?: string | undefined;
|
|
66
|
+
/**
|
|
67
|
+
* Phase timings collected up to the point of failure. Which laps are
|
|
68
|
+
* *missing* is the useful signal: no
|
|
69
|
+
* `graph-manager.v1.engine-operation.server-call.success` means the query
|
|
70
|
+
* never reached the engine, so the failure is pre-flight rather than
|
|
71
|
+
* in-flight.
|
|
72
|
+
*/
|
|
73
|
+
timings?: TimingsRecord | undefined;
|
|
74
|
+
queryInfo?: QueryBuilderQueryInfo | undefined;
|
|
75
|
+
executionDurationMs?: number | undefined;
|
|
76
|
+
} & Record<string, unknown>;
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* Payload for {@link QUERY_BUILDER_EVENT.OPENED}.
|
|
80
|
+
*
|
|
81
|
+
* `openedFrom` is carried here and nowhere else. Which application emitted an
|
|
82
|
+
* event is already stamped on every payload by `TelemetryServicePlugin.setup()`
|
|
83
|
+
* (`appName`), and `appSessionId` is the join key back to this event — so
|
|
84
|
+
* repeating the surface on high-frequency events like `run-query.*` would
|
|
85
|
+
* duplicate data that is already reachable.
|
|
86
|
+
*/
|
|
87
|
+
export type QueryBuilderOpened_TelemetryData = QueryBuilderTelemetryContext & {
|
|
88
|
+
openedFrom: QUERY_BUILDER_OPENED_FROM;
|
|
89
|
+
} & Record<string, unknown>;
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Payload for {@link QUERY_BUILDER_EVENT.UNSUPPORTED_QUERY_LAUNCH}, fired when
|
|
93
|
+
* the query lambda could not be built into the form-mode builder and the user
|
|
94
|
+
* fell through to the raw-lambda / unsupported-query editor. Carries the
|
|
95
|
+
* shared envelope + capped error dimensions so unsupported-lambda fallback is
|
|
96
|
+
* countable per entry point / GAV. The untruncated stack still goes to
|
|
97
|
+
* `logService.error` alongside, so the full error remains debuggable.
|
|
98
|
+
*/
|
|
99
|
+
export type UnsupportedQueryLaunched_TelemetryData =
|
|
100
|
+
QueryBuilderTelemetryContext & TelemetryErrorFields;
|
|
101
|
+
|
|
102
|
+
type QueryMappingModelCoverageAnalysis_TelemetryData =
|
|
103
|
+
QueryBuilderTelemetryContext &
|
|
104
|
+
GraphManagerOperationReport & {
|
|
105
|
+
dependenciesCount: number;
|
|
106
|
+
};
|
|
107
|
+
|
|
36
108
|
type GraphFetchPanel_TelemtryData = {
|
|
37
109
|
serializationType: string | undefined;
|
|
38
110
|
};
|
|
39
111
|
|
|
112
|
+
/**
|
|
113
|
+
* Payloads for the authoring-side `*.change` events.
|
|
114
|
+
*
|
|
115
|
+
* Each nests what the user actually did under a `change` key, leaving the top
|
|
116
|
+
* level to the shared {@link QueryBuilderTelemetryContext} envelope. Beyond
|
|
117
|
+
* consistency this avoids a real collision: `change.sourceType` on a projection
|
|
118
|
+
* event ("explorer-property") means something entirely different from the
|
|
119
|
+
* top-level `sourceType` carried by `sourceInfo` ("data-product").
|
|
120
|
+
*/
|
|
121
|
+
type ExecutionContextChange_TelemetryData = QueryBuilderTelemetryContext & {
|
|
122
|
+
change: {
|
|
123
|
+
subtype: 'class' | 'mapping' | 'runtime';
|
|
124
|
+
};
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
type ProjectionChange_TelemetryData = QueryBuilderTelemetryContext & {
|
|
128
|
+
change: {
|
|
129
|
+
action: 'add' | 'remove' | 'move' | 'clear' | 'add-derivation';
|
|
130
|
+
sourceType?:
|
|
131
|
+
| 'explorer-property'
|
|
132
|
+
| 'explorer-relation'
|
|
133
|
+
| 'function'
|
|
134
|
+
| 'filter-condition'
|
|
135
|
+
| 'derivation';
|
|
136
|
+
/**
|
|
137
|
+
* The resulting column count — except for `clear`, where it is the number
|
|
138
|
+
* of columns that were removed.
|
|
139
|
+
*/
|
|
140
|
+
columnCount: number;
|
|
141
|
+
};
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
type ResultModifierChange_TelemetryData = QueryBuilderTelemetryContext & {
|
|
145
|
+
change: {
|
|
146
|
+
limitSet: boolean;
|
|
147
|
+
distinctOn: boolean;
|
|
148
|
+
sortColumnCount: number;
|
|
149
|
+
sliceSet: boolean;
|
|
150
|
+
};
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
type AggregationChange_TelemetryData = QueryBuilderTelemetryContext & {
|
|
154
|
+
change: {
|
|
155
|
+
action: 'operator-change';
|
|
156
|
+
operatorName?: string | undefined;
|
|
157
|
+
};
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
type WindowChange_TelemetryData = QueryBuilderTelemetryContext & {
|
|
161
|
+
/**
|
|
162
|
+
* DnD reordering of window columns is intentionally not reported — it would
|
|
163
|
+
* emit on every hover-driven reorder, so there is no `move` action here.
|
|
164
|
+
*/
|
|
165
|
+
change: {
|
|
166
|
+
action: 'add' | 'edit' | 'remove';
|
|
167
|
+
columnCount: number;
|
|
168
|
+
};
|
|
169
|
+
};
|
|
170
|
+
|
|
171
|
+
type GraphFetchChange_TelemetryData = QueryBuilderTelemetryContext & {
|
|
172
|
+
change: {
|
|
173
|
+
action: 'add' | 'remove' | 'check-toggle' | 'serialization-change';
|
|
174
|
+
nodeCount: number;
|
|
175
|
+
serializationType?: string | undefined;
|
|
176
|
+
};
|
|
177
|
+
};
|
|
178
|
+
|
|
179
|
+
type ParameterChange_TelemetryData = QueryBuilderTelemetryContext & {
|
|
180
|
+
change: {
|
|
181
|
+
action: 'add' | 'edit' | 'remove';
|
|
182
|
+
parameterCount: number;
|
|
183
|
+
};
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
type ConstantChange_TelemetryData = QueryBuilderTelemetryContext & {
|
|
187
|
+
change: {
|
|
188
|
+
action: 'add' | 'edit' | 'remove';
|
|
189
|
+
constantCount: number;
|
|
190
|
+
};
|
|
191
|
+
};
|
|
192
|
+
|
|
193
|
+
type WatermarkChange_TelemetryData = QueryBuilderTelemetryContext & {
|
|
194
|
+
change: {
|
|
195
|
+
enabled: boolean;
|
|
196
|
+
};
|
|
197
|
+
};
|
|
198
|
+
|
|
199
|
+
type MilestoningChange_TelemetryData = QueryBuilderTelemetryContext & {
|
|
200
|
+
change: {
|
|
201
|
+
subtype:
|
|
202
|
+
| 'business-date'
|
|
203
|
+
| 'processing-date'
|
|
204
|
+
| 'all-versions'
|
|
205
|
+
| 'all-versions-in-range';
|
|
206
|
+
};
|
|
207
|
+
};
|
|
208
|
+
|
|
209
|
+
/**
|
|
210
|
+
* Shared by the filter and post-filter trees. DnD reparenting/reordering of
|
|
211
|
+
* condition nodes is intentionally not reported, so there is no `move` action.
|
|
212
|
+
*/
|
|
213
|
+
type FilterChange_TelemetryData = QueryBuilderTelemetryContext & {
|
|
214
|
+
change: {
|
|
215
|
+
action: 'remove' | 'group-operation-change';
|
|
216
|
+
groupOperation?: 'and' | 'or' | undefined;
|
|
217
|
+
};
|
|
218
|
+
};
|
|
219
|
+
|
|
220
|
+
/**
|
|
221
|
+
* Payload for Advanced/Help menu `*.launch` actions — a menu item the user
|
|
222
|
+
* clicked, carrying just the shared telemetry envelope (source info + `state`)
|
|
223
|
+
* with no `change` block, because these are one-shot invocations rather than
|
|
224
|
+
* authoring events.
|
|
225
|
+
*/
|
|
226
|
+
type MenuAction_TelemetryData = QueryBuilderTelemetryContext;
|
|
227
|
+
|
|
228
|
+
/**
|
|
229
|
+
* Payload for Advanced/Help menu `*.toggle` actions. `enabled` reports the
|
|
230
|
+
* post-toggle state so a single event stream covers both opens and closes;
|
|
231
|
+
* split `WHERE enabled = true` for opens.
|
|
232
|
+
*/
|
|
233
|
+
type MenuToggle_TelemetryData = QueryBuilderTelemetryContext & {
|
|
234
|
+
enabled: boolean;
|
|
235
|
+
};
|
|
236
|
+
|
|
40
237
|
export class QueryBuilderTelemetryHelper {
|
|
238
|
+
static logEvent_QueryBuilderOpened(
|
|
239
|
+
service: TelemetryService,
|
|
240
|
+
data: QueryBuilderOpened_TelemetryData,
|
|
241
|
+
): void {
|
|
242
|
+
service.logEvent(QUERY_BUILDER_EVENT.OPENED, data);
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
static logEvent_UnsupportedQueryLaunched(
|
|
246
|
+
service: TelemetryService,
|
|
247
|
+
data: UnsupportedQueryLaunched_TelemetryData,
|
|
248
|
+
): void {
|
|
249
|
+
service.logEvent(QUERY_BUILDER_EVENT.UNSUPPORTED_QUERY_LAUNCH, data);
|
|
250
|
+
}
|
|
251
|
+
|
|
41
252
|
static logEvent_QueryRunLaunched(
|
|
42
253
|
service: TelemetryService,
|
|
43
254
|
data?: Record<string, unknown> | undefined,
|
|
@@ -72,7 +283,7 @@ export class QueryBuilderTelemetryHelper {
|
|
|
72
283
|
|
|
73
284
|
static logEvent_QueryRunFailed(
|
|
74
285
|
service: TelemetryService,
|
|
75
|
-
data:
|
|
286
|
+
data: QueryExecutionFailure_TelemetryData,
|
|
76
287
|
): void {
|
|
77
288
|
service.logEvent(QUERY_BUILDER_EVENT.RUN_QUERY__FAILURE, data);
|
|
78
289
|
}
|
|
@@ -91,6 +302,13 @@ export class QueryBuilderTelemetryHelper {
|
|
|
91
302
|
service.logEvent(QUERY_BUILDER_EVENT.EXPORT_QUERY_DATA__SUCCESS, data);
|
|
92
303
|
}
|
|
93
304
|
|
|
305
|
+
static logEvent_ExportQueryDataFailed(
|
|
306
|
+
service: TelemetryService,
|
|
307
|
+
data: QueryExecutionFailure_TelemetryData,
|
|
308
|
+
): void {
|
|
309
|
+
service.logEvent(QUERY_BUILDER_EVENT.EXPORT_QUERY_DATA__FAILURE, data);
|
|
310
|
+
}
|
|
311
|
+
|
|
94
312
|
static logEvent_ExecutionPlanGenerationSucceeded(
|
|
95
313
|
service: TelemetryService,
|
|
96
314
|
data: QueryExecution_TelemetryData,
|
|
@@ -101,6 +319,16 @@ export class QueryBuilderTelemetryHelper {
|
|
|
101
319
|
);
|
|
102
320
|
}
|
|
103
321
|
|
|
322
|
+
static logEvent_ExecutionPlanGenerationFailed(
|
|
323
|
+
service: TelemetryService,
|
|
324
|
+
data: QueryExecutionFailure_TelemetryData,
|
|
325
|
+
): void {
|
|
326
|
+
service.logEvent(
|
|
327
|
+
QUERY_BUILDER_EVENT.GENERATE_EXECUTION_PLAN__FAILURE,
|
|
328
|
+
data,
|
|
329
|
+
);
|
|
330
|
+
}
|
|
331
|
+
|
|
104
332
|
static logEvent_ExecutionPlanDebugSucceeded(
|
|
105
333
|
service: TelemetryService,
|
|
106
334
|
data: QueryExecution_TelemetryData,
|
|
@@ -108,6 +336,13 @@ export class QueryBuilderTelemetryHelper {
|
|
|
108
336
|
service.logEvent(QUERY_BUILDER_EVENT.DEBUG_EXECUTION_PLAN__SUCCESS, data);
|
|
109
337
|
}
|
|
110
338
|
|
|
339
|
+
static logEvent_ExecutionPlanDebugFailed(
|
|
340
|
+
service: TelemetryService,
|
|
341
|
+
data: QueryExecutionFailure_TelemetryData,
|
|
342
|
+
): void {
|
|
343
|
+
service.logEvent(QUERY_BUILDER_EVENT.DEBUG_EXECUTION_PLAN__FAILURE, data);
|
|
344
|
+
}
|
|
345
|
+
|
|
111
346
|
static logEvent_EmbeddedDataCubeQueryRunSucceeded(
|
|
112
347
|
service: TelemetryService,
|
|
113
348
|
data: QueryExecution_TelemetryData,
|
|
@@ -289,4 +524,211 @@ export class QueryBuilderTelemetryHelper {
|
|
|
289
524
|
): void {
|
|
290
525
|
service.logEvent(QUERY_BUILDER_EVENT.PANEL_GRAPH_FETCH_RENDER, data);
|
|
291
526
|
}
|
|
527
|
+
|
|
528
|
+
static logEvent_ExecutionContextChanged(
|
|
529
|
+
service: TelemetryService,
|
|
530
|
+
data: ExecutionContextChange_TelemetryData,
|
|
531
|
+
): void {
|
|
532
|
+
service.logEvent(QUERY_BUILDER_EVENT.EXECUTION_CONTEXT__CHANGE, data);
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
static logEvent_ProjectionChanged(
|
|
536
|
+
service: TelemetryService,
|
|
537
|
+
data: ProjectionChange_TelemetryData,
|
|
538
|
+
): void {
|
|
539
|
+
service.logEvent(QUERY_BUILDER_EVENT.PROJECTION__CHANGE, data);
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
static logEvent_ResultModifierChanged(
|
|
543
|
+
service: TelemetryService,
|
|
544
|
+
data: ResultModifierChange_TelemetryData,
|
|
545
|
+
): void {
|
|
546
|
+
service.logEvent(QUERY_BUILDER_EVENT.RESULT_MODIFIER__CHANGE, data);
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
static logEvent_AggregationChanged(
|
|
550
|
+
service: TelemetryService,
|
|
551
|
+
data: AggregationChange_TelemetryData,
|
|
552
|
+
): void {
|
|
553
|
+
service.logEvent(QUERY_BUILDER_EVENT.AGGREGATION__CHANGE, data);
|
|
554
|
+
}
|
|
555
|
+
|
|
556
|
+
static logEvent_WindowChanged(
|
|
557
|
+
service: TelemetryService,
|
|
558
|
+
data: WindowChange_TelemetryData,
|
|
559
|
+
): void {
|
|
560
|
+
service.logEvent(QUERY_BUILDER_EVENT.WINDOW__CHANGE, data);
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
static logEvent_GraphFetchChanged(
|
|
564
|
+
service: TelemetryService,
|
|
565
|
+
data: GraphFetchChange_TelemetryData,
|
|
566
|
+
): void {
|
|
567
|
+
service.logEvent(QUERY_BUILDER_EVENT.GRAPH_FETCH__CHANGE, data);
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
static logEvent_ParameterChanged(
|
|
571
|
+
service: TelemetryService,
|
|
572
|
+
data: ParameterChange_TelemetryData,
|
|
573
|
+
): void {
|
|
574
|
+
service.logEvent(QUERY_BUILDER_EVENT.PARAMETER__CHANGE, data);
|
|
575
|
+
}
|
|
576
|
+
|
|
577
|
+
static logEvent_ConstantChanged(
|
|
578
|
+
service: TelemetryService,
|
|
579
|
+
data: ConstantChange_TelemetryData,
|
|
580
|
+
): void {
|
|
581
|
+
service.logEvent(QUERY_BUILDER_EVENT.CONSTANT__CHANGE, data);
|
|
582
|
+
}
|
|
583
|
+
|
|
584
|
+
static logEvent_WatermarkChanged(
|
|
585
|
+
service: TelemetryService,
|
|
586
|
+
data: WatermarkChange_TelemetryData,
|
|
587
|
+
): void {
|
|
588
|
+
service.logEvent(QUERY_BUILDER_EVENT.WATERMARK__CHANGE, data);
|
|
589
|
+
}
|
|
590
|
+
|
|
591
|
+
static logEvent_MilestoningChanged(
|
|
592
|
+
service: TelemetryService,
|
|
593
|
+
data: MilestoningChange_TelemetryData,
|
|
594
|
+
): void {
|
|
595
|
+
service.logEvent(QUERY_BUILDER_EVENT.MILESTONING__CHANGE, data);
|
|
596
|
+
}
|
|
597
|
+
|
|
598
|
+
static logEvent_FilterChanged(
|
|
599
|
+
service: TelemetryService,
|
|
600
|
+
data: FilterChange_TelemetryData,
|
|
601
|
+
): void {
|
|
602
|
+
service.logEvent(QUERY_BUILDER_EVENT.FILTER__CHANGE, data);
|
|
603
|
+
}
|
|
604
|
+
|
|
605
|
+
static logEvent_PostFilterChanged(
|
|
606
|
+
service: TelemetryService,
|
|
607
|
+
data: FilterChange_TelemetryData,
|
|
608
|
+
): void {
|
|
609
|
+
service.logEvent(QUERY_BUILDER_EVENT.POST_FILTER__CHANGE, data);
|
|
610
|
+
}
|
|
611
|
+
|
|
612
|
+
// ── Advanced menu ────────────────────────────────────────────────────────
|
|
613
|
+
|
|
614
|
+
static logEvent_TogglePanelParameter(
|
|
615
|
+
service: TelemetryService,
|
|
616
|
+
data: MenuToggle_TelemetryData,
|
|
617
|
+
): void {
|
|
618
|
+
service.logEvent(QUERY_BUILDER_EVENT.PANEL_PARAMETER__TOGGLE, data);
|
|
619
|
+
}
|
|
620
|
+
|
|
621
|
+
static logEvent_TogglePanelConstant(
|
|
622
|
+
service: TelemetryService,
|
|
623
|
+
data: MenuToggle_TelemetryData,
|
|
624
|
+
): void {
|
|
625
|
+
service.logEvent(QUERY_BUILDER_EVENT.PANEL_CONSTANT__TOGGLE, data);
|
|
626
|
+
}
|
|
627
|
+
|
|
628
|
+
static logEvent_TogglePanelFilter(
|
|
629
|
+
service: TelemetryService,
|
|
630
|
+
data: MenuToggle_TelemetryData,
|
|
631
|
+
): void {
|
|
632
|
+
service.logEvent(QUERY_BUILDER_EVENT.PANEL_FILTER__TOGGLE, data);
|
|
633
|
+
}
|
|
634
|
+
|
|
635
|
+
static logEvent_TogglePanelWindow(
|
|
636
|
+
service: TelemetryService,
|
|
637
|
+
data: MenuToggle_TelemetryData,
|
|
638
|
+
): void {
|
|
639
|
+
service.logEvent(QUERY_BUILDER_EVENT.PANEL_WINDOW__TOGGLE, data);
|
|
640
|
+
}
|
|
641
|
+
|
|
642
|
+
static logEvent_TogglePanelPostFilter(
|
|
643
|
+
service: TelemetryService,
|
|
644
|
+
data: MenuToggle_TelemetryData,
|
|
645
|
+
): void {
|
|
646
|
+
service.logEvent(QUERY_BUILDER_EVENT.PANEL_POST_FILTER__TOGGLE, data);
|
|
647
|
+
}
|
|
648
|
+
|
|
649
|
+
static logEvent_ToggleCalendar(
|
|
650
|
+
service: TelemetryService,
|
|
651
|
+
data: MenuToggle_TelemetryData,
|
|
652
|
+
): void {
|
|
653
|
+
service.logEvent(QUERY_BUILDER_EVENT.CALENDAR__TOGGLE, data);
|
|
654
|
+
}
|
|
655
|
+
|
|
656
|
+
static logEvent_ToggleTypedTDS(
|
|
657
|
+
service: TelemetryService,
|
|
658
|
+
data: MenuToggle_TelemetryData,
|
|
659
|
+
): void {
|
|
660
|
+
service.logEvent(QUERY_BUILDER_EVENT.TYPED_TDS__TOGGLE, data);
|
|
661
|
+
}
|
|
662
|
+
|
|
663
|
+
static logEvent_CheckEntitlementsLaunched(
|
|
664
|
+
service: TelemetryService,
|
|
665
|
+
data: MenuAction_TelemetryData,
|
|
666
|
+
): void {
|
|
667
|
+
service.logEvent(QUERY_BUILDER_EVENT.CHECK_ENTITLEMENTS__LAUNCH, data);
|
|
668
|
+
}
|
|
669
|
+
|
|
670
|
+
static logEvent_EditPureLaunched(
|
|
671
|
+
service: TelemetryService,
|
|
672
|
+
data: MenuAction_TelemetryData,
|
|
673
|
+
): void {
|
|
674
|
+
service.logEvent(QUERY_BUILDER_EVENT.EDIT_PURE__LAUNCH, data);
|
|
675
|
+
}
|
|
676
|
+
|
|
677
|
+
static logEvent_ShowPureLaunched(
|
|
678
|
+
service: TelemetryService,
|
|
679
|
+
data: MenuAction_TelemetryData,
|
|
680
|
+
): void {
|
|
681
|
+
service.logEvent(QUERY_BUILDER_EVENT.SHOW_PURE__LAUNCH, data);
|
|
682
|
+
}
|
|
683
|
+
|
|
684
|
+
static logEvent_ShowProtocolLaunched(
|
|
685
|
+
service: TelemetryService,
|
|
686
|
+
data: MenuAction_TelemetryData,
|
|
687
|
+
): void {
|
|
688
|
+
service.logEvent(QUERY_BUILDER_EVENT.SHOW_PROTOCOL__LAUNCH, data);
|
|
689
|
+
}
|
|
690
|
+
|
|
691
|
+
static logEvent_CompileQueryLaunched(
|
|
692
|
+
service: TelemetryService,
|
|
693
|
+
data: MenuAction_TelemetryData,
|
|
694
|
+
): void {
|
|
695
|
+
service.logEvent(QUERY_BUILDER_EVENT.COMPILE_QUERY__LAUNCH, data);
|
|
696
|
+
}
|
|
697
|
+
|
|
698
|
+
static logEvent_ShowQueryDiffLaunched(
|
|
699
|
+
service: TelemetryService,
|
|
700
|
+
data: MenuAction_TelemetryData,
|
|
701
|
+
): void {
|
|
702
|
+
service.logEvent(QUERY_BUILDER_EVENT.SHOW_QUERY_DIFF__LAUNCH, data);
|
|
703
|
+
}
|
|
704
|
+
|
|
705
|
+
// ── Help menu (core items) ───────────────────────────────────────────────
|
|
706
|
+
|
|
707
|
+
static logEvent_OpenDocumentationLaunched(
|
|
708
|
+
service: TelemetryService,
|
|
709
|
+
data: MenuAction_TelemetryData,
|
|
710
|
+
): void {
|
|
711
|
+
service.logEvent(QUERY_BUILDER_EVENT.OPEN_DOCUMENTATION__LAUNCH, data);
|
|
712
|
+
}
|
|
713
|
+
|
|
714
|
+
static logEvent_OpenFAQLaunched(
|
|
715
|
+
service: TelemetryService,
|
|
716
|
+
data: MenuAction_TelemetryData,
|
|
717
|
+
): void {
|
|
718
|
+
service.logEvent(QUERY_BUILDER_EVENT.OPEN_FAQ__LAUNCH, data);
|
|
719
|
+
}
|
|
720
|
+
|
|
721
|
+
static logEvent_OpenSupportTicketsLaunched(
|
|
722
|
+
service: TelemetryService,
|
|
723
|
+
data: MenuAction_TelemetryData,
|
|
724
|
+
): void {
|
|
725
|
+
service.logEvent(QUERY_BUILDER_EVENT.OPEN_SUPPORT_TICKETS__LAUNCH, data);
|
|
726
|
+
}
|
|
727
|
+
|
|
728
|
+
static logEvent_ToggleVirtualAssistant(
|
|
729
|
+
service: TelemetryService,
|
|
730
|
+
data: MenuToggle_TelemetryData,
|
|
731
|
+
): void {
|
|
732
|
+
service.logEvent(QUERY_BUILDER_EVENT.VIRTUAL_ASSISTANT__TOGGLE, data);
|
|
733
|
+
}
|
|
292
734
|
}
|