@oneuptime/common 8.0.5414 → 8.0.5438

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.
Files changed (81) hide show
  1. package/Models/AnalyticsModels/AnalyticsBaseModel/AnalyticsBaseModel.ts +22 -0
  2. package/Models/AnalyticsModels/ExceptionInstance.ts +341 -323
  3. package/Models/AnalyticsModels/Log.ts +278 -231
  4. package/Models/AnalyticsModels/Metric.ts +504 -446
  5. package/Models/AnalyticsModels/MonitorLog.ts +99 -93
  6. package/Models/AnalyticsModels/Span.ts +473 -417
  7. package/Server/Services/AlertService.ts +12 -0
  8. package/Server/Services/IncidentService.ts +12 -0
  9. package/Server/Services/OpenTelemetryIngestService.ts +4 -0
  10. package/Server/Services/TelemetryAttributeService.ts +21 -4
  11. package/Server/Utils/Monitor/MonitorResource.ts +24 -0
  12. package/Server/Utils/Telemetry/Telemetry.ts +13 -0
  13. package/Types/AnalyticsDatabase/MaterializedView.ts +4 -0
  14. package/Types/AnalyticsDatabase/Projection.ts +4 -0
  15. package/Types/Date.ts +108 -0
  16. package/UI/Components/AutocompleteTextInput/AutocompleteTextInput.tsx +250 -0
  17. package/UI/Components/Dictionary/Dictionary.tsx +53 -66
  18. package/UI/Components/Filters/JSONFilter.tsx +2 -2
  19. package/UI/Components/Forms/Fields/FormField.tsx +2 -2
  20. package/UI/Components/GanttChart/Bar/Index.tsx +13 -0
  21. package/UI/Components/GanttChart/Index.tsx +7 -1
  22. package/UI/Components/GanttChart/Row/Index.tsx +1 -0
  23. package/UI/Components/GanttChart/Row/Row.tsx +101 -10
  24. package/UI/Components/GanttChart/Row/RowLabel.tsx +7 -2
  25. package/UI/Components/GanttChart/Rows.tsx +7 -1
  26. package/UI/Components/LogsViewer/LogItem.tsx +149 -10
  27. package/UI/Components/LogsViewer/LogsViewer.tsx +25 -1
  28. package/build/dist/Models/AnalyticsModels/AnalyticsBaseModel/AnalyticsBaseModel.js +16 -0
  29. package/build/dist/Models/AnalyticsModels/AnalyticsBaseModel/AnalyticsBaseModel.js.map +1 -1
  30. package/build/dist/Models/AnalyticsModels/ExceptionInstance.js +325 -310
  31. package/build/dist/Models/AnalyticsModels/ExceptionInstance.js.map +1 -1
  32. package/build/dist/Models/AnalyticsModels/Log.js +263 -222
  33. package/build/dist/Models/AnalyticsModels/Log.js.map +1 -1
  34. package/build/dist/Models/AnalyticsModels/Metric.js +477 -427
  35. package/build/dist/Models/AnalyticsModels/Metric.js.map +1 -1
  36. package/build/dist/Models/AnalyticsModels/MonitorLog.js +95 -90
  37. package/build/dist/Models/AnalyticsModels/MonitorLog.js.map +1 -1
  38. package/build/dist/Models/AnalyticsModels/Span.js +449 -400
  39. package/build/dist/Models/AnalyticsModels/Span.js.map +1 -1
  40. package/build/dist/Server/Services/AlertService.js +4 -0
  41. package/build/dist/Server/Services/AlertService.js.map +1 -1
  42. package/build/dist/Server/Services/IncidentService.js +4 -0
  43. package/build/dist/Server/Services/IncidentService.js.map +1 -1
  44. package/build/dist/Server/Services/OpenTelemetryIngestService.js +1 -0
  45. package/build/dist/Server/Services/OpenTelemetryIngestService.js.map +1 -1
  46. package/build/dist/Server/Services/TelemetryAttributeService.js +19 -4
  47. package/build/dist/Server/Services/TelemetryAttributeService.js.map +1 -1
  48. package/build/dist/Server/Utils/Monitor/MonitorResource.js +12 -0
  49. package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
  50. package/build/dist/Server/Utils/Telemetry/Telemetry.js +6 -0
  51. package/build/dist/Server/Utils/Telemetry/Telemetry.js.map +1 -1
  52. package/build/dist/Types/AnalyticsDatabase/MaterializedView.js +2 -0
  53. package/build/dist/Types/AnalyticsDatabase/MaterializedView.js.map +1 -0
  54. package/build/dist/Types/AnalyticsDatabase/Projection.js +2 -0
  55. package/build/dist/Types/AnalyticsDatabase/Projection.js.map +1 -0
  56. package/build/dist/Types/Date.js +82 -0
  57. package/build/dist/Types/Date.js.map +1 -1
  58. package/build/dist/UI/Components/AutocompleteTextInput/AutocompleteTextInput.js +143 -0
  59. package/build/dist/UI/Components/AutocompleteTextInput/AutocompleteTextInput.js.map +1 -0
  60. package/build/dist/UI/Components/Dictionary/Dictionary.js +25 -36
  61. package/build/dist/UI/Components/Dictionary/Dictionary.js.map +1 -1
  62. package/build/dist/UI/Components/Filters/JSONFilter.js +2 -2
  63. package/build/dist/UI/Components/Filters/JSONFilter.js.map +1 -1
  64. package/build/dist/UI/Components/Forms/Fields/FormField.js +2 -2
  65. package/build/dist/UI/Components/Forms/Fields/FormField.js.map +1 -1
  66. package/build/dist/UI/Components/GanttChart/Bar/Index.js +10 -0
  67. package/build/dist/UI/Components/GanttChart/Bar/Index.js.map +1 -1
  68. package/build/dist/UI/Components/GanttChart/Index.js +6 -2
  69. package/build/dist/UI/Components/GanttChart/Index.js.map +1 -1
  70. package/build/dist/UI/Components/GanttChart/Row/Index.js.map +1 -1
  71. package/build/dist/UI/Components/GanttChart/Row/Row.js +62 -9
  72. package/build/dist/UI/Components/GanttChart/Row/Row.js.map +1 -1
  73. package/build/dist/UI/Components/GanttChart/Row/RowLabel.js +2 -2
  74. package/build/dist/UI/Components/GanttChart/Row/RowLabel.js.map +1 -1
  75. package/build/dist/UI/Components/GanttChart/Rows.js +5 -1
  76. package/build/dist/UI/Components/GanttChart/Rows.js.map +1 -1
  77. package/build/dist/UI/Components/LogsViewer/LogItem.js +73 -5
  78. package/build/dist/UI/Components/LogsViewer/LogItem.js.map +1 -1
  79. package/build/dist/UI/Components/LogsViewer/LogsViewer.js +7 -1
  80. package/build/dist/UI/Components/LogsViewer/LogsViewer.js.map +1 -1
  81. package/package.json +1 -1
@@ -28,6 +28,481 @@ export enum ServiceType {
28
28
 
29
29
  export default class Metric extends AnalyticsBaseModel {
30
30
  public constructor() {
31
+ const projectIdColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
32
+ key: "projectId",
33
+ title: "Project ID",
34
+ description: "ID of project",
35
+ required: true,
36
+ type: TableColumnType.ObjectID,
37
+ isTenantId: true,
38
+ accessControl: {
39
+ read: [
40
+ Permission.ProjectOwner,
41
+ Permission.ProjectAdmin,
42
+ Permission.ProjectMember,
43
+ Permission.ReadTelemetryServiceLog,
44
+ ],
45
+ create: [
46
+ Permission.ProjectOwner,
47
+ Permission.ProjectAdmin,
48
+ Permission.ProjectMember,
49
+ Permission.CreateTelemetryServiceLog,
50
+ ],
51
+ update: [],
52
+ },
53
+ });
54
+
55
+ // this can also be the monitor id or the telemetry service id.
56
+ const serviceIdColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
57
+ key: "serviceId",
58
+ title: "Service ID",
59
+ description: "ID of the Service which created the Metric",
60
+ required: true,
61
+ type: TableColumnType.ObjectID,
62
+ accessControl: {
63
+ read: [
64
+ Permission.ProjectOwner,
65
+ Permission.ProjectAdmin,
66
+ Permission.ProjectMember,
67
+ Permission.ReadTelemetryServiceLog,
68
+ ],
69
+ create: [
70
+ Permission.ProjectOwner,
71
+ Permission.ProjectAdmin,
72
+ Permission.ProjectMember,
73
+ Permission.CreateTelemetryServiceLog,
74
+ ],
75
+ update: [],
76
+ },
77
+ });
78
+
79
+ // this can also be the monitor id or the telemetry service id.
80
+ const serviceTypeColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
81
+ key: "serviceType",
82
+ title: "Service Type",
83
+ description: "Type of the service that this telemetry belongs to",
84
+ required: false,
85
+ type: TableColumnType.Text,
86
+ accessControl: {
87
+ read: [
88
+ Permission.ProjectOwner,
89
+ Permission.ProjectAdmin,
90
+ Permission.ProjectMember,
91
+ Permission.ReadTelemetryServiceLog,
92
+ ],
93
+ create: [
94
+ Permission.ProjectOwner,
95
+ Permission.ProjectAdmin,
96
+ Permission.ProjectMember,
97
+ Permission.CreateTelemetryServiceLog,
98
+ ],
99
+ update: [],
100
+ },
101
+ });
102
+
103
+ // add name and description
104
+ const nameColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
105
+ key: "name",
106
+ title: "Name",
107
+ description: "Name of the Metric",
108
+ required: true,
109
+ type: TableColumnType.Text,
110
+ accessControl: {
111
+ read: [
112
+ Permission.ProjectOwner,
113
+ Permission.ProjectAdmin,
114
+ Permission.ProjectMember,
115
+ Permission.ReadTelemetryServiceLog,
116
+ ],
117
+ create: [
118
+ Permission.ProjectOwner,
119
+ Permission.ProjectAdmin,
120
+ Permission.ProjectMember,
121
+ Permission.CreateTelemetryServiceLog,
122
+ ],
123
+ update: [],
124
+ },
125
+ });
126
+
127
+ const aggregationTemporalityColumn: AnalyticsTableColumn =
128
+ new AnalyticsTableColumn({
129
+ key: "aggregationTemporality",
130
+ title: "Aggregation Temporality",
131
+ description: "Aggregation Temporality of this Metric",
132
+ required: false,
133
+ type: TableColumnType.Text,
134
+ accessControl: {
135
+ read: [
136
+ Permission.ProjectOwner,
137
+ Permission.ProjectAdmin,
138
+ Permission.ProjectMember,
139
+ Permission.ReadTelemetryServiceLog,
140
+ ],
141
+ create: [
142
+ Permission.ProjectOwner,
143
+ Permission.ProjectAdmin,
144
+ Permission.ProjectMember,
145
+ Permission.CreateTelemetryServiceLog,
146
+ ],
147
+ update: [],
148
+ },
149
+ });
150
+
151
+ const metricPointTypeColumn: AnalyticsTableColumn =
152
+ new AnalyticsTableColumn({
153
+ key: "metricPointType",
154
+ title: "Metric Point Type",
155
+ description: "Metric Point Type of this Metric",
156
+ required: false,
157
+ type: TableColumnType.Text,
158
+ accessControl: {
159
+ read: [
160
+ Permission.ProjectOwner,
161
+ Permission.ProjectAdmin,
162
+ Permission.ProjectMember,
163
+ Permission.ReadTelemetryServiceLog,
164
+ ],
165
+ create: [
166
+ Permission.ProjectOwner,
167
+ Permission.ProjectAdmin,
168
+ Permission.ProjectMember,
169
+ Permission.CreateTelemetryServiceLog,
170
+ ],
171
+ update: [],
172
+ },
173
+ });
174
+
175
+ // this is end time.
176
+ const timeColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
177
+ key: "time",
178
+ title: "Time",
179
+ description: "When did the Metric happen?",
180
+ required: true,
181
+ type: TableColumnType.Date,
182
+ accessControl: {
183
+ read: [
184
+ Permission.ProjectOwner,
185
+ Permission.ProjectAdmin,
186
+ Permission.ProjectMember,
187
+ Permission.ReadTelemetryServiceLog,
188
+ ],
189
+ create: [
190
+ Permission.ProjectOwner,
191
+ Permission.ProjectAdmin,
192
+ Permission.ProjectMember,
193
+ Permission.CreateTelemetryServiceLog,
194
+ ],
195
+ update: [],
196
+ },
197
+ });
198
+
199
+ const startTimeColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
200
+ key: "startTime",
201
+ title: "Start Time",
202
+ description: "When did the Metric happen?",
203
+ required: false,
204
+ type: TableColumnType.Date,
205
+ accessControl: {
206
+ read: [
207
+ Permission.ProjectOwner,
208
+ Permission.ProjectAdmin,
209
+ Permission.ProjectMember,
210
+ Permission.ReadTelemetryServiceLog,
211
+ ],
212
+ create: [
213
+ Permission.ProjectOwner,
214
+ Permission.ProjectAdmin,
215
+ Permission.ProjectMember,
216
+ Permission.CreateTelemetryServiceLog,
217
+ ],
218
+ update: [],
219
+ },
220
+ });
221
+
222
+ // end time.
223
+ const timeUnixNanoColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
224
+ key: "timeUnixNano",
225
+ title: "Time (in Unix Nano)",
226
+ description: "When did the Metric happen?",
227
+ required: true,
228
+ type: TableColumnType.LongNumber,
229
+ accessControl: {
230
+ read: [
231
+ Permission.ProjectOwner,
232
+ Permission.ProjectAdmin,
233
+ Permission.ProjectMember,
234
+ Permission.ReadTelemetryServiceLog,
235
+ ],
236
+ create: [
237
+ Permission.ProjectOwner,
238
+ Permission.ProjectAdmin,
239
+ Permission.ProjectMember,
240
+ Permission.CreateTelemetryServiceLog,
241
+ ],
242
+ update: [],
243
+ },
244
+ });
245
+
246
+ const startTimeUnixNanoColumn: AnalyticsTableColumn =
247
+ new AnalyticsTableColumn({
248
+ key: "startTimeUnixNano",
249
+ title: "Start Time (in Unix Nano)",
250
+ description: "When did the Metric happen?",
251
+ required: false,
252
+ type: TableColumnType.LongNumber,
253
+ accessControl: {
254
+ read: [
255
+ Permission.ProjectOwner,
256
+ Permission.ProjectAdmin,
257
+ Permission.ProjectMember,
258
+ Permission.ReadTelemetryServiceLog,
259
+ ],
260
+ create: [
261
+ Permission.ProjectOwner,
262
+ Permission.ProjectAdmin,
263
+ Permission.ProjectMember,
264
+ Permission.CreateTelemetryServiceLog,
265
+ ],
266
+ update: [],
267
+ },
268
+ });
269
+
270
+ const attributesColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
271
+ key: "attributes",
272
+ title: "Attributes",
273
+ description: "Attributes",
274
+ required: true,
275
+ type: TableColumnType.JSON,
276
+ defaultValue: {},
277
+ accessControl: {
278
+ read: [
279
+ Permission.ProjectOwner,
280
+ Permission.ProjectAdmin,
281
+ Permission.ProjectMember,
282
+ Permission.ReadTelemetryServiceLog,
283
+ ],
284
+ create: [
285
+ Permission.ProjectOwner,
286
+ Permission.ProjectAdmin,
287
+ Permission.ProjectMember,
288
+ Permission.CreateTelemetryServiceLog,
289
+ ],
290
+ update: [],
291
+ },
292
+ });
293
+
294
+ const attributeKeysColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
295
+ key: "attributeKeys",
296
+ title: "Attribute Keys",
297
+ description: "Attribute keys extracted from attributes",
298
+ required: true,
299
+ defaultValue: [],
300
+ type: TableColumnType.ArrayText,
301
+ accessControl: {
302
+ read: [
303
+ Permission.ProjectOwner,
304
+ Permission.ProjectAdmin,
305
+ Permission.ProjectMember,
306
+ Permission.ReadTelemetryServiceLog,
307
+ ],
308
+ create: [
309
+ Permission.ProjectOwner,
310
+ Permission.ProjectAdmin,
311
+ Permission.ProjectMember,
312
+ Permission.CreateTelemetryServiceLog,
313
+ ],
314
+ update: [],
315
+ },
316
+ });
317
+
318
+ const isMonotonicColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
319
+ key: "isMonotonic",
320
+ title: "Is Monotonic",
321
+ description: "Is Monotonic",
322
+ required: false,
323
+ type: TableColumnType.Boolean,
324
+ accessControl: {
325
+ read: [
326
+ Permission.ProjectOwner,
327
+ Permission.ProjectAdmin,
328
+ Permission.ProjectMember,
329
+ Permission.ReadTelemetryServiceLog,
330
+ ],
331
+ create: [
332
+ Permission.ProjectOwner,
333
+ Permission.ProjectAdmin,
334
+ Permission.ProjectMember,
335
+ Permission.CreateTelemetryServiceLog,
336
+ ],
337
+ update: [],
338
+ },
339
+ });
340
+
341
+ const countColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
342
+ key: "count",
343
+ title: "Count",
344
+ description: "Count",
345
+ required: false,
346
+ type: TableColumnType.Number,
347
+ accessControl: {
348
+ read: [
349
+ Permission.ProjectOwner,
350
+ Permission.ProjectAdmin,
351
+ Permission.ProjectMember,
352
+ Permission.ReadTelemetryServiceLog,
353
+ ],
354
+ create: [
355
+ Permission.ProjectOwner,
356
+ Permission.ProjectAdmin,
357
+ Permission.ProjectMember,
358
+ Permission.CreateTelemetryServiceLog,
359
+ ],
360
+ update: [],
361
+ },
362
+ });
363
+
364
+ const sumColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
365
+ key: "sum",
366
+ title: "Sum",
367
+ description: "Sum",
368
+ required: false,
369
+ type: TableColumnType.Decimal,
370
+ accessControl: {
371
+ read: [
372
+ Permission.ProjectOwner,
373
+ Permission.ProjectAdmin,
374
+ Permission.ProjectMember,
375
+ Permission.ReadTelemetryServiceLog,
376
+ ],
377
+ create: [
378
+ Permission.ProjectOwner,
379
+ Permission.ProjectAdmin,
380
+ Permission.ProjectMember,
381
+ Permission.CreateTelemetryServiceLog,
382
+ ],
383
+ update: [],
384
+ },
385
+ });
386
+
387
+ const valueColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
388
+ key: "value",
389
+ title: "Value",
390
+ description: "Value",
391
+ required: false,
392
+ type: TableColumnType.Decimal,
393
+ accessControl: {
394
+ read: [
395
+ Permission.ProjectOwner,
396
+ Permission.ProjectAdmin,
397
+ Permission.ProjectMember,
398
+ Permission.ReadTelemetryServiceLog,
399
+ ],
400
+ create: [
401
+ Permission.ProjectOwner,
402
+ Permission.ProjectAdmin,
403
+ Permission.ProjectMember,
404
+ Permission.CreateTelemetryServiceLog,
405
+ ],
406
+ update: [],
407
+ },
408
+ });
409
+
410
+ const minColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
411
+ key: "min",
412
+ title: "Min",
413
+ description: "Min",
414
+ required: false,
415
+ type: TableColumnType.Decimal,
416
+ accessControl: {
417
+ read: [
418
+ Permission.ProjectOwner,
419
+ Permission.ProjectAdmin,
420
+ Permission.ProjectMember,
421
+ Permission.ReadTelemetryServiceLog,
422
+ ],
423
+ create: [
424
+ Permission.ProjectOwner,
425
+ Permission.ProjectAdmin,
426
+ Permission.ProjectMember,
427
+ Permission.CreateTelemetryServiceLog,
428
+ ],
429
+ update: [],
430
+ },
431
+ });
432
+
433
+ const maxColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
434
+ key: "max",
435
+ title: "Max",
436
+ description: "Max",
437
+ required: false,
438
+ type: TableColumnType.Decimal,
439
+ accessControl: {
440
+ read: [
441
+ Permission.ProjectOwner,
442
+ Permission.ProjectAdmin,
443
+ Permission.ProjectMember,
444
+ Permission.ReadTelemetryServiceLog,
445
+ ],
446
+ create: [
447
+ Permission.ProjectOwner,
448
+ Permission.ProjectAdmin,
449
+ Permission.ProjectMember,
450
+ Permission.CreateTelemetryServiceLog,
451
+ ],
452
+ update: [],
453
+ },
454
+ });
455
+
456
+ const bucketCountsColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
457
+ key: "bucketCounts",
458
+ title: "Bucket Counts",
459
+ description: "Bucket Counts",
460
+ required: true,
461
+ defaultValue: [],
462
+ type: TableColumnType.ArrayNumber,
463
+ accessControl: {
464
+ read: [
465
+ Permission.ProjectOwner,
466
+ Permission.ProjectAdmin,
467
+ Permission.ProjectMember,
468
+ Permission.ReadTelemetryServiceLog,
469
+ ],
470
+ create: [
471
+ Permission.ProjectOwner,
472
+ Permission.ProjectAdmin,
473
+ Permission.ProjectMember,
474
+ Permission.CreateTelemetryServiceLog,
475
+ ],
476
+ update: [],
477
+ },
478
+ });
479
+
480
+ const explicitBoundsColumn: AnalyticsTableColumn = new AnalyticsTableColumn(
481
+ {
482
+ key: "explicitBounds",
483
+ title: "Explicit Bonds",
484
+ description: "Explicit Bonds",
485
+ required: true,
486
+ defaultValue: [],
487
+ type: TableColumnType.ArrayNumber,
488
+ accessControl: {
489
+ read: [
490
+ Permission.ProjectOwner,
491
+ Permission.ProjectAdmin,
492
+ Permission.ProjectMember,
493
+ Permission.ReadTelemetryServiceLog,
494
+ ],
495
+ create: [
496
+ Permission.ProjectOwner,
497
+ Permission.ProjectAdmin,
498
+ Permission.ProjectMember,
499
+ Permission.CreateTelemetryServiceLog,
500
+ ],
501
+ update: [],
502
+ },
503
+ },
504
+ );
505
+
31
506
  super({
32
507
  tableName: "MetricItem",
33
508
  tableEngine: AnalyticsTableEngine.MergeTree,
@@ -61,453 +536,28 @@ export default class Metric extends AnalyticsBaseModel {
61
536
  ],
62
537
  },
63
538
  tableColumns: [
64
- new AnalyticsTableColumn({
65
- key: "projectId",
66
- title: "Project ID",
67
- description: "ID of project",
68
- required: true,
69
- type: TableColumnType.ObjectID,
70
- isTenantId: true,
71
- accessControl: {
72
- read: [
73
- Permission.ProjectOwner,
74
- Permission.ProjectAdmin,
75
- Permission.ProjectMember,
76
- Permission.ReadTelemetryServiceLog,
77
- ],
78
- create: [
79
- Permission.ProjectOwner,
80
- Permission.ProjectAdmin,
81
- Permission.ProjectMember,
82
- Permission.CreateTelemetryServiceLog,
83
- ],
84
- update: [],
85
- },
86
- }),
87
-
88
- // this can also be the monitor id or the telemetry service id.
89
- new AnalyticsTableColumn({
90
- key: "serviceId",
91
- title: "Service ID",
92
- description: "ID of the Service which created the Metric",
93
- required: true,
94
- type: TableColumnType.ObjectID,
95
- accessControl: {
96
- read: [
97
- Permission.ProjectOwner,
98
- Permission.ProjectAdmin,
99
- Permission.ProjectMember,
100
- Permission.ReadTelemetryServiceLog,
101
- ],
102
- create: [
103
- Permission.ProjectOwner,
104
- Permission.ProjectAdmin,
105
- Permission.ProjectMember,
106
- Permission.CreateTelemetryServiceLog,
107
- ],
108
- update: [],
109
- },
110
- }),
111
-
112
- // this can also be the monitor id or the telemetry service id.
113
- new AnalyticsTableColumn({
114
- key: "serviceType",
115
- title: "Service Type",
116
- description: "Type of the service that this telemetry belongs to",
117
- required: false,
118
- type: TableColumnType.Text,
119
- accessControl: {
120
- read: [
121
- Permission.ProjectOwner,
122
- Permission.ProjectAdmin,
123
- Permission.ProjectMember,
124
- Permission.ReadTelemetryServiceLog,
125
- ],
126
- create: [
127
- Permission.ProjectOwner,
128
- Permission.ProjectAdmin,
129
- Permission.ProjectMember,
130
- Permission.CreateTelemetryServiceLog,
131
- ],
132
- update: [],
133
- },
134
- }),
135
-
136
- // add name and description
137
-
138
- new AnalyticsTableColumn({
139
- key: "name",
140
- title: "Name",
141
- description: "Name of the Metric",
142
- required: true,
143
- type: TableColumnType.Text,
144
- accessControl: {
145
- read: [
146
- Permission.ProjectOwner,
147
- Permission.ProjectAdmin,
148
- Permission.ProjectMember,
149
- Permission.ReadTelemetryServiceLog,
150
- ],
151
- create: [
152
- Permission.ProjectOwner,
153
- Permission.ProjectAdmin,
154
- Permission.ProjectMember,
155
- Permission.CreateTelemetryServiceLog,
156
- ],
157
- update: [],
158
- },
159
- }),
160
-
161
- new AnalyticsTableColumn({
162
- key: "aggregationTemporality",
163
- title: "Aggregation Temporality",
164
- description: "Aggregation Temporality of this Metric",
165
- required: false,
166
- type: TableColumnType.Text,
167
- accessControl: {
168
- read: [
169
- Permission.ProjectOwner,
170
- Permission.ProjectAdmin,
171
- Permission.ProjectMember,
172
- Permission.ReadTelemetryServiceLog,
173
- ],
174
- create: [
175
- Permission.ProjectOwner,
176
- Permission.ProjectAdmin,
177
- Permission.ProjectMember,
178
- Permission.CreateTelemetryServiceLog,
179
- ],
180
- update: [],
181
- },
182
- }),
183
-
184
- new AnalyticsTableColumn({
185
- key: "metricPointType",
186
- title: "Metric Point Type",
187
- description: "Metric Point Type of this Metric",
188
- required: false,
189
- type: TableColumnType.Text,
190
- accessControl: {
191
- read: [
192
- Permission.ProjectOwner,
193
- Permission.ProjectAdmin,
194
- Permission.ProjectMember,
195
- Permission.ReadTelemetryServiceLog,
196
- ],
197
- create: [
198
- Permission.ProjectOwner,
199
- Permission.ProjectAdmin,
200
- Permission.ProjectMember,
201
- Permission.CreateTelemetryServiceLog,
202
- ],
203
- update: [],
204
- },
205
- }),
206
-
207
- // this is end time.
208
- new AnalyticsTableColumn({
209
- key: "time",
210
- title: "Time",
211
- description: "When did the Metric happen?",
212
- required: true,
213
- type: TableColumnType.Date,
214
- accessControl: {
215
- read: [
216
- Permission.ProjectOwner,
217
- Permission.ProjectAdmin,
218
- Permission.ProjectMember,
219
- Permission.ReadTelemetryServiceLog,
220
- ],
221
- create: [
222
- Permission.ProjectOwner,
223
- Permission.ProjectAdmin,
224
- Permission.ProjectMember,
225
- Permission.CreateTelemetryServiceLog,
226
- ],
227
- update: [],
228
- },
229
- }),
230
-
231
- new AnalyticsTableColumn({
232
- key: "startTime",
233
- title: "Start Time",
234
- description: "When did the Metric happen?",
235
- required: false,
236
- type: TableColumnType.Date,
237
- accessControl: {
238
- read: [
239
- Permission.ProjectOwner,
240
- Permission.ProjectAdmin,
241
- Permission.ProjectMember,
242
- Permission.ReadTelemetryServiceLog,
243
- ],
244
- create: [
245
- Permission.ProjectOwner,
246
- Permission.ProjectAdmin,
247
- Permission.ProjectMember,
248
- Permission.CreateTelemetryServiceLog,
249
- ],
250
- update: [],
251
- },
252
- }),
253
-
254
- // end time.
255
- new AnalyticsTableColumn({
256
- key: "timeUnixNano",
257
- title: "Time (in Unix Nano)",
258
- description: "When did the Metric happen?",
259
- required: true,
260
- type: TableColumnType.LongNumber,
261
- accessControl: {
262
- read: [
263
- Permission.ProjectOwner,
264
- Permission.ProjectAdmin,
265
- Permission.ProjectMember,
266
- Permission.ReadTelemetryServiceLog,
267
- ],
268
- create: [
269
- Permission.ProjectOwner,
270
- Permission.ProjectAdmin,
271
- Permission.ProjectMember,
272
- Permission.CreateTelemetryServiceLog,
273
- ],
274
- update: [],
275
- },
276
- }),
277
-
278
- new AnalyticsTableColumn({
279
- key: "startTimeUnixNano",
280
- title: "Start Time (in Unix Nano)",
281
- description: "When did the Metric happen?",
282
- required: false,
283
- type: TableColumnType.LongNumber,
284
- accessControl: {
285
- read: [
286
- Permission.ProjectOwner,
287
- Permission.ProjectAdmin,
288
- Permission.ProjectMember,
289
- Permission.ReadTelemetryServiceLog,
290
- ],
291
- create: [
292
- Permission.ProjectOwner,
293
- Permission.ProjectAdmin,
294
- Permission.ProjectMember,
295
- Permission.CreateTelemetryServiceLog,
296
- ],
297
- update: [],
298
- },
299
- }),
300
-
301
- new AnalyticsTableColumn({
302
- key: "attributes",
303
- title: "Attributes",
304
- description: "Attributes",
305
- required: true,
306
- type: TableColumnType.JSON,
307
- defaultValue: {},
308
- accessControl: {
309
- read: [
310
- Permission.ProjectOwner,
311
- Permission.ProjectAdmin,
312
- Permission.ProjectMember,
313
- Permission.ReadTelemetryServiceLog,
314
- ],
315
- create: [
316
- Permission.ProjectOwner,
317
- Permission.ProjectAdmin,
318
- Permission.ProjectMember,
319
- Permission.CreateTelemetryServiceLog,
320
- ],
321
- update: [],
322
- },
323
- }),
324
-
325
- new AnalyticsTableColumn({
326
- key: "isMonotonic",
327
- title: "Is Monotonic",
328
- description: "Is Monotonic",
329
- required: false,
330
- type: TableColumnType.Boolean,
331
- accessControl: {
332
- read: [
333
- Permission.ProjectOwner,
334
- Permission.ProjectAdmin,
335
- Permission.ProjectMember,
336
- Permission.ReadTelemetryServiceLog,
337
- ],
338
- create: [
339
- Permission.ProjectOwner,
340
- Permission.ProjectAdmin,
341
- Permission.ProjectMember,
342
- Permission.CreateTelemetryServiceLog,
343
- ],
344
- update: [],
345
- },
346
- }),
347
-
348
- new AnalyticsTableColumn({
349
- key: "count",
350
- title: "Count",
351
- description: "Count",
352
- required: false,
353
- type: TableColumnType.Number,
354
- accessControl: {
355
- read: [
356
- Permission.ProjectOwner,
357
- Permission.ProjectAdmin,
358
- Permission.ProjectMember,
359
- Permission.ReadTelemetryServiceLog,
360
- ],
361
- create: [
362
- Permission.ProjectOwner,
363
- Permission.ProjectAdmin,
364
- Permission.ProjectMember,
365
- Permission.CreateTelemetryServiceLog,
366
- ],
367
- update: [],
368
- },
369
- }),
370
-
371
- new AnalyticsTableColumn({
372
- key: "sum",
373
- title: "Sum",
374
- description: "Sum",
375
- required: false,
376
- type: TableColumnType.Decimal,
377
- accessControl: {
378
- read: [
379
- Permission.ProjectOwner,
380
- Permission.ProjectAdmin,
381
- Permission.ProjectMember,
382
- Permission.ReadTelemetryServiceLog,
383
- ],
384
- create: [
385
- Permission.ProjectOwner,
386
- Permission.ProjectAdmin,
387
- Permission.ProjectMember,
388
- Permission.CreateTelemetryServiceLog,
389
- ],
390
- update: [],
391
- },
392
- }),
393
-
394
- new AnalyticsTableColumn({
395
- key: "value",
396
- title: "Value",
397
- description: "Value",
398
- required: false,
399
- type: TableColumnType.Decimal,
400
- accessControl: {
401
- read: [
402
- Permission.ProjectOwner,
403
- Permission.ProjectAdmin,
404
- Permission.ProjectMember,
405
- Permission.ReadTelemetryServiceLog,
406
- ],
407
- create: [
408
- Permission.ProjectOwner,
409
- Permission.ProjectAdmin,
410
- Permission.ProjectMember,
411
- Permission.CreateTelemetryServiceLog,
412
- ],
413
- update: [],
414
- },
415
- }),
416
-
417
- new AnalyticsTableColumn({
418
- key: "min",
419
- title: "Min",
420
- description: "Min",
421
- required: false,
422
- type: TableColumnType.Decimal,
423
- accessControl: {
424
- read: [
425
- Permission.ProjectOwner,
426
- Permission.ProjectAdmin,
427
- Permission.ProjectMember,
428
- Permission.ReadTelemetryServiceLog,
429
- ],
430
- create: [
431
- Permission.ProjectOwner,
432
- Permission.ProjectAdmin,
433
- Permission.ProjectMember,
434
- Permission.CreateTelemetryServiceLog,
435
- ],
436
- update: [],
437
- },
438
- }),
439
-
440
- new AnalyticsTableColumn({
441
- key: "max",
442
- title: "Max",
443
- description: "Max",
444
- required: false,
445
- type: TableColumnType.Decimal,
446
- accessControl: {
447
- read: [
448
- Permission.ProjectOwner,
449
- Permission.ProjectAdmin,
450
- Permission.ProjectMember,
451
- Permission.ReadTelemetryServiceLog,
452
- ],
453
- create: [
454
- Permission.ProjectOwner,
455
- Permission.ProjectAdmin,
456
- Permission.ProjectMember,
457
- Permission.CreateTelemetryServiceLog,
458
- ],
459
- update: [],
460
- },
461
- }),
462
-
463
- new AnalyticsTableColumn({
464
- key: "bucketCounts",
465
- title: "Bucket Counts",
466
- description: "Bucket Counts",
467
- required: true,
468
- defaultValue: [],
469
- type: TableColumnType.ArrayNumber,
470
- accessControl: {
471
- read: [
472
- Permission.ProjectOwner,
473
- Permission.ProjectAdmin,
474
- Permission.ProjectMember,
475
- Permission.ReadTelemetryServiceLog,
476
- ],
477
- create: [
478
- Permission.ProjectOwner,
479
- Permission.ProjectAdmin,
480
- Permission.ProjectMember,
481
- Permission.CreateTelemetryServiceLog,
482
- ],
483
- update: [],
484
- },
485
- }),
486
-
487
- new AnalyticsTableColumn({
488
- key: "explicitBounds",
489
- title: "Explicit Bonds",
490
- description: "Explicit Bonds",
491
- required: true,
492
- defaultValue: [],
493
- type: TableColumnType.ArrayNumber,
494
- accessControl: {
495
- read: [
496
- Permission.ProjectOwner,
497
- Permission.ProjectAdmin,
498
- Permission.ProjectMember,
499
- Permission.ReadTelemetryServiceLog,
500
- ],
501
- create: [
502
- Permission.ProjectOwner,
503
- Permission.ProjectAdmin,
504
- Permission.ProjectMember,
505
- Permission.CreateTelemetryServiceLog,
506
- ],
507
- update: [],
508
- },
509
- }),
539
+ projectIdColumn,
540
+ serviceIdColumn,
541
+ serviceTypeColumn,
542
+ nameColumn,
543
+ aggregationTemporalityColumn,
544
+ metricPointTypeColumn,
545
+ timeColumn,
546
+ startTimeColumn,
547
+ timeUnixNanoColumn,
548
+ startTimeUnixNanoColumn,
549
+ attributesColumn,
550
+ attributeKeysColumn,
551
+ isMonotonicColumn,
552
+ countColumn,
553
+ sumColumn,
554
+ valueColumn,
555
+ minColumn,
556
+ maxColumn,
557
+ bucketCountsColumn,
558
+ explicitBoundsColumn,
510
559
  ],
560
+ projections: [],
511
561
  sortKeys: ["projectId", "time", "serviceId"],
512
562
  primaryKeys: ["projectId", "time", "serviceId"],
513
563
  partitionKey: "sipHash64(projectId) % 16",
@@ -590,6 +640,14 @@ export default class Metric extends AnalyticsBaseModel {
590
640
  this.setColumnValue("attributes", v);
591
641
  }
592
642
 
643
+ public get attributeKeys(): Array<string> | undefined {
644
+ return this.getColumnValue("attributeKeys") as Array<string> | undefined;
645
+ }
646
+
647
+ public set attributeKeys(v: Array<string> | undefined) {
648
+ this.setColumnValue("attributeKeys", v);
649
+ }
650
+
593
651
  public get startTime(): Date | undefined {
594
652
  return this.getColumnValue("startTime") as Date | undefined;
595
653
  }