@oneuptime/common 8.0.5416 → 8.0.5440

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