@oneuptime/common 10.8.2 → 11.0.0

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 (724) hide show
  1. package/Models/AnalyticsModels/AnalyticsBaseModel/AnalyticsBaseModel.ts +16 -18
  2. package/Models/AnalyticsModels/AuditLog.ts +3 -1
  3. package/Models/AnalyticsModels/ExceptionInstance.ts +200 -82
  4. package/Models/AnalyticsModels/Index.ts +7 -2
  5. package/Models/AnalyticsModels/Log.ts +197 -81
  6. package/Models/AnalyticsModels/Metric.ts +199 -86
  7. package/Models/AnalyticsModels/MetricBaselineHourly.ts +44 -25
  8. package/Models/AnalyticsModels/MetricItemAggMV1m.ts +23 -20
  9. package/Models/AnalyticsModels/{MetricItemAggMV1mByHost.ts → MetricItemAggMV1mByHostV2.ts} +58 -47
  10. package/Models/AnalyticsModels/MonitorLog.ts +5 -1
  11. package/Models/AnalyticsModels/Profile.ts +206 -85
  12. package/Models/AnalyticsModels/ProfileSample.ts +196 -83
  13. package/Models/AnalyticsModels/Span.ts +218 -85
  14. package/Models/DatabaseModels/Index.ts +4 -0
  15. package/Models/DatabaseModels/Service.ts +29 -0
  16. package/Models/DatabaseModels/TelemetryEntity.ts +393 -0
  17. package/Models/DatabaseModels/TelemetryEntityRelationship.ts +294 -0
  18. package/Models/DatabaseModels/TelemetryException.ts +10 -10
  19. package/Models/DatabaseModels/TelemetryUsageBilling.ts +5 -5
  20. package/Server/API/AIAgentDataAPI.ts +13 -12
  21. package/Server/API/DashboardAPI.ts +2 -2
  22. package/Server/API/TelemetryAPI.ts +656 -141
  23. package/Server/API/TelemetryExceptionAPI.ts +2 -2
  24. package/Server/Infrastructure/ClickhouseConfig.ts +12 -0
  25. package/Server/Infrastructure/Postgres/SchemaMigrations/1781100000001-RenameTelemetryServiceIdToPrimaryEntityId.ts +48 -0
  26. package/Server/Infrastructure/Postgres/SchemaMigrations/1781200000000-AddTelemetryEntityTable.ts +70 -0
  27. package/Server/Infrastructure/Postgres/SchemaMigrations/1781200000001-AddTelemetryEntityRelationshipTable.ts +57 -0
  28. package/Server/Infrastructure/Postgres/SchemaMigrations/1781250074195-MigrationName.ts +207 -0
  29. package/Server/Infrastructure/Postgres/SchemaMigrations/1781300000000-AddTelemetryEntityLabels.ts +24 -0
  30. package/Server/Infrastructure/Postgres/SchemaMigrations/1781400000000-AddServiceTelemetrySdkLanguage.ts +25 -0
  31. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +12 -0
  32. package/Server/Infrastructure/Queue.ts +36 -3
  33. package/Server/Middleware/TelemetryIngest.ts +27 -22
  34. package/Server/Services/AlertService.ts +9 -9
  35. package/Server/Services/AnalyticsDatabaseService.ts +204 -35
  36. package/Server/Services/ExceptionAggregationService.ts +41 -18
  37. package/Server/Services/HostService.ts +2 -1
  38. package/Server/Services/IncidentService.ts +19 -19
  39. package/Server/Services/Index.ts +6 -2
  40. package/Server/Services/LogAggregationService.ts +116 -43
  41. package/Server/Services/MetricAggregationService.ts +29 -14
  42. package/Server/Services/MetricBaselineService.ts +34 -34
  43. package/Server/Services/MetricItemAggMV1mByHostV2Service.ts +30 -0
  44. package/Server/Services/MetricService.ts +119 -31
  45. package/Server/Services/OpenTelemetryIngestService.ts +186 -50
  46. package/Server/Services/ProfileAggregationService.ts +904 -126
  47. package/Server/Services/ServiceService.ts +6 -0
  48. package/Server/Services/SpanService.ts +274 -14
  49. package/Server/Services/TelemetryEntityRelationshipService.ts +71 -0
  50. package/Server/Services/TelemetryEntityService.ts +246 -0
  51. package/Server/Services/TelemetryExceptionService.ts +27 -23
  52. package/Server/Services/TelemetryUsageBillingService.ts +38 -31
  53. package/Server/Services/TraceAggregationService.ts +875 -43
  54. package/Server/Types/AnalyticsDatabase/ModelPermission.ts +43 -2
  55. package/Server/Types/Database/Permissions/AccessControlPermission.ts +47 -2
  56. package/Server/Types/Database/Permissions/BasePermission.ts +37 -1
  57. package/Server/Types/Database/Permissions/OwnedScopePermission.ts +21 -3
  58. package/Server/Types/Database/Permissions/OwnerTableRegistry.ts +1 -0
  59. package/Server/Types/Database/QueryHelper.ts +41 -0
  60. package/Server/Utils/Alert/AlertPrivacyFilter.ts +9 -2
  61. package/Server/Utils/AlertEpisode/AlertEpisodePrivacyFilter.ts +9 -2
  62. package/Server/Utils/AnalyticsDatabase/QuerySettingsHelper.ts +95 -0
  63. package/Server/Utils/AnalyticsDatabase/StatementGenerator.ts +133 -0
  64. package/Server/Utils/Incident/IncidentPrivacyFilter.ts +9 -2
  65. package/Server/Utils/IncidentEpisode/IncidentEpisodePrivacyFilter.ts +9 -2
  66. package/Server/Utils/Monitor/Criteria/EvaluateOverTime.ts +1 -1
  67. package/Server/Utils/Monitor/MonitorLogUtil.ts +1 -2
  68. package/Server/Utils/Monitor/MonitorMetricUtil.ts +3 -4
  69. package/Server/Utils/PrivacyFilterUtil.ts +72 -0
  70. package/Server/Utils/Profile/PprofEncoder.ts +135 -11
  71. package/Server/Utils/Telemetry/EntityRegistry.ts +316 -0
  72. package/Server/Utils/Telemetry/ResourceFacetResolver.ts +5 -0
  73. package/Server/Utils/Telemetry/TelemetryEntity.ts +783 -0
  74. package/Tests/Server/Services/AnalyticsDatabaseService.test.ts +79 -4
  75. package/Tests/Server/Services/LogAggregationService.test.ts +7 -2
  76. package/Tests/Server/Services/ProfileAggregationService.test.ts +280 -0
  77. package/Tests/Server/Services/ProfileBreakdown.test.ts +161 -0
  78. package/Tests/Server/Services/ProfileFunctionFocus.test.ts +349 -0
  79. package/Tests/Server/Services/TelemetryAttributeService.test.ts +1 -1
  80. package/Tests/Server/Services/TraceAggregationService.test.ts +403 -0
  81. package/Tests/Server/Types/AnalyticsDatabase/ModelPermissionOwnedScope.test.ts +114 -0
  82. package/Tests/Server/Types/Database/Permissions/AccessControlPermission.test.ts +189 -0
  83. package/Tests/Server/Types/Database/Permissions/BasePermission.test.ts +118 -0
  84. package/Tests/Server/Types/Database/Permissions/OwnedScopePermission.test.ts +159 -0
  85. package/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.ts +275 -8
  86. package/Tests/Server/Utils/PrivacyFilterUtil.test.ts +177 -0
  87. package/Tests/Server/Utils/Profile/PprofEncoder.test.ts +276 -0
  88. package/Tests/Server/Utils/Telemetry/TelemetryEntity.test.ts +761 -0
  89. package/Tests/Types/Monitor/MonitorStepEntityScope.test.ts +275 -0
  90. package/Tests/Types/Text.test.ts +52 -0
  91. package/Tests/Utils/Telemetry/EntityKey.test.ts +150 -0
  92. package/Tests/Utils/Telemetry/EntityKeySqlParity.test.ts +40 -0
  93. package/Tests/Utils/Telemetry/EntityRelationship.test.ts +150 -0
  94. package/Tests/Utils/UUID.test.ts +47 -0
  95. package/Types/AnalyticsDatabase/AnalyticsTableName.ts +14 -9
  96. package/Types/AnalyticsDatabase/TableColumnType.ts +1 -0
  97. package/Types/Dashboard/DashboardComponentType.ts +1 -0
  98. package/Types/Dashboard/DashboardComponents/DashboardTraceChartComponent.ts +37 -0
  99. package/Types/Dashboard/DashboardTemplates.ts +4 -5
  100. package/Types/Log/LogQueryParser.ts +2 -2
  101. package/Types/Log/LogQueryToFilter.ts +2 -2
  102. package/Types/Monitor/MonitorStepExceptionMonitor.ts +19 -1
  103. package/Types/Monitor/MonitorStepLogMonitor.ts +20 -1
  104. package/Types/Monitor/MonitorStepMetricMonitor.ts +27 -0
  105. package/Types/Monitor/MonitorStepProfileMonitor.ts +19 -1
  106. package/Types/Monitor/MonitorStepTraceMonitor.ts +18 -1
  107. package/Types/Monitor/MonitorType.ts +8 -1
  108. package/Types/ObjectID.ts +10 -0
  109. package/Types/Telemetry/EntityRelationshipType.ts +31 -0
  110. package/Types/Telemetry/EntityType.ts +33 -0
  111. package/Types/Telemetry/TelemetrySavedViewState.ts +2 -0
  112. package/Types/Text.ts +34 -0
  113. package/Types/Trace/TraceAggregationType.ts +1 -0
  114. package/Types/Trace/TraceRecordingRuleDefinition.ts +74 -0
  115. package/UI/Components/LogsViewer/LogsViewer.tsx +12 -9
  116. package/UI/Components/LogsViewer/components/LogDetailsPanel.tsx +10 -9
  117. package/UI/Components/LogsViewer/components/LogSearchBar.tsx +1 -1
  118. package/UI/Components/LogsViewer/components/LogsAnalyticsView.tsx +2 -2
  119. package/UI/Components/LogsViewer/components/LogsFacetSidebar.tsx +4 -4
  120. package/UI/Components/LogsViewer/components/LogsTable.tsx +5 -3
  121. package/UI/Components/Navbar/NavBarMenuModal.tsx +81 -44
  122. package/UI/Components/TelemetryViewer/TelemetryViewer.tsx +33 -10
  123. package/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.tsx +18 -3
  124. package/UI/Components/TelemetryViewer/components/TelemetryHistogram.tsx +91 -68
  125. package/UI/Components/TelemetryViewer/components/TelemetryHistogramTooltip.tsx +9 -2
  126. package/UI/Utils/LogExport.ts +2 -2
  127. package/UI/Utils/TelemetryService.ts +20 -20
  128. package/Utils/Dashboard/Components/DashboardTraceChartComponent.ts +134 -0
  129. package/Utils/Dashboard/Components/Index.ts +7 -0
  130. package/Utils/Telemetry/EntityKey.ts +151 -0
  131. package/Utils/Telemetry/EntityRelationship.ts +113 -0
  132. package/Utils/Traces/CriticalPath.ts +7 -7
  133. package/Utils/UUID.ts +57 -0
  134. package/build/dist/Models/AnalyticsModels/AnalyticsBaseModel/AnalyticsBaseModel.js +14 -13
  135. package/build/dist/Models/AnalyticsModels/AnalyticsBaseModel/AnalyticsBaseModel.js.map +1 -1
  136. package/build/dist/Models/AnalyticsModels/AuditLog.js +2 -1
  137. package/build/dist/Models/AnalyticsModels/AuditLog.js.map +1 -1
  138. package/build/dist/Models/AnalyticsModels/ExceptionInstance.js +125 -22
  139. package/build/dist/Models/AnalyticsModels/ExceptionInstance.js.map +1 -1
  140. package/build/dist/Models/AnalyticsModels/Index.js +7 -2
  141. package/build/dist/Models/AnalyticsModels/Index.js.map +1 -1
  142. package/build/dist/Models/AnalyticsModels/Log.js +123 -22
  143. package/build/dist/Models/AnalyticsModels/Log.js.map +1 -1
  144. package/build/dist/Models/AnalyticsModels/Metric.js +125 -27
  145. package/build/dist/Models/AnalyticsModels/Metric.js.map +1 -1
  146. package/build/dist/Models/AnalyticsModels/MetricBaselineHourly.js +38 -21
  147. package/build/dist/Models/AnalyticsModels/MetricBaselineHourly.js.map +1 -1
  148. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1m.js +17 -16
  149. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1m.js.map +1 -1
  150. package/build/dist/Models/AnalyticsModels/{MetricItemAggMV1mByHost.js → MetricItemAggMV1mByHostV2.js} +54 -42
  151. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByHostV2.js.map +1 -0
  152. package/build/dist/Models/AnalyticsModels/MonitorLog.js +4 -1
  153. package/build/dist/Models/AnalyticsModels/MonitorLog.js.map +1 -1
  154. package/build/dist/Models/AnalyticsModels/Profile.js +132 -26
  155. package/build/dist/Models/AnalyticsModels/Profile.js.map +1 -1
  156. package/build/dist/Models/AnalyticsModels/ProfileSample.js +121 -23
  157. package/build/dist/Models/AnalyticsModels/ProfileSample.js.map +1 -1
  158. package/build/dist/Models/AnalyticsModels/Span.js +144 -26
  159. package/build/dist/Models/AnalyticsModels/Span.js.map +1 -1
  160. package/build/dist/Models/DatabaseModels/Index.js +4 -0
  161. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  162. package/build/dist/Models/DatabaseModels/Service.js +30 -0
  163. package/build/dist/Models/DatabaseModels/Service.js.map +1 -1
  164. package/build/dist/Models/DatabaseModels/TelemetryEntity.js +419 -0
  165. package/build/dist/Models/DatabaseModels/TelemetryEntity.js.map +1 -0
  166. package/build/dist/Models/DatabaseModels/TelemetryEntityRelationship.js +317 -0
  167. package/build/dist/Models/DatabaseModels/TelemetryEntityRelationship.js.map +1 -0
  168. package/build/dist/Models/DatabaseModels/TelemetryException.js +12 -12
  169. package/build/dist/Models/DatabaseModels/TelemetryException.js.map +1 -1
  170. package/build/dist/Models/DatabaseModels/TelemetryUsageBilling.js +7 -7
  171. package/build/dist/Models/DatabaseModels/TelemetryUsageBilling.js.map +1 -1
  172. package/build/dist/Server/API/AIAgentDataAPI.js +14 -13
  173. package/build/dist/Server/API/AIAgentDataAPI.js.map +1 -1
  174. package/build/dist/Server/API/DashboardAPI.js +2 -2
  175. package/build/dist/Server/API/DashboardAPI.js.map +1 -1
  176. package/build/dist/Server/API/TelemetryAPI.js +425 -129
  177. package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
  178. package/build/dist/Server/API/TelemetryExceptionAPI.js +2 -2
  179. package/build/dist/Server/API/TelemetryExceptionAPI.js.map +1 -1
  180. package/build/dist/Server/Infrastructure/ClickhouseConfig.js +12 -0
  181. package/build/dist/Server/Infrastructure/ClickhouseConfig.js.map +1 -1
  182. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781100000001-RenameTelemetryServiceIdToPrimaryEntityId.js +29 -0
  183. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781100000001-RenameTelemetryServiceIdToPrimaryEntityId.js.map +1 -0
  184. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781200000000-AddTelemetryEntityTable.js +38 -0
  185. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781200000000-AddTelemetryEntityTable.js.map +1 -0
  186. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781200000001-AddTelemetryEntityRelationshipTable.js +33 -0
  187. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781200000001-AddTelemetryEntityRelationshipTable.js.map +1 -0
  188. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781250074195-MigrationName.js +78 -0
  189. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781250074195-MigrationName.js.map +1 -0
  190. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781300000000-AddTelemetryEntityLabels.js +19 -0
  191. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781300000000-AddTelemetryEntityLabels.js.map +1 -0
  192. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781400000000-AddServiceTelemetrySdkLanguage.js +18 -0
  193. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781400000000-AddServiceTelemetrySdkLanguage.js.map +1 -0
  194. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +12 -0
  195. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  196. package/build/dist/Server/Infrastructure/Queue.js +14 -3
  197. package/build/dist/Server/Infrastructure/Queue.js.map +1 -1
  198. package/build/dist/Server/Middleware/TelemetryIngest.js +16 -18
  199. package/build/dist/Server/Middleware/TelemetryIngest.js.map +1 -1
  200. package/build/dist/Server/Services/AlertService.js +9 -9
  201. package/build/dist/Server/Services/AlertService.js.map +1 -1
  202. package/build/dist/Server/Services/AnalyticsDatabaseService.js +115 -40
  203. package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
  204. package/build/dist/Server/Services/ExceptionAggregationService.js +38 -18
  205. package/build/dist/Server/Services/ExceptionAggregationService.js.map +1 -1
  206. package/build/dist/Server/Services/HostService.js +2 -1
  207. package/build/dist/Server/Services/HostService.js.map +1 -1
  208. package/build/dist/Server/Services/IncidentService.js +19 -19
  209. package/build/dist/Server/Services/IncidentService.js.map +1 -1
  210. package/build/dist/Server/Services/Index.js +6 -2
  211. package/build/dist/Server/Services/Index.js.map +1 -1
  212. package/build/dist/Server/Services/LogAggregationService.js +100 -42
  213. package/build/dist/Server/Services/LogAggregationService.js.map +1 -1
  214. package/build/dist/Server/Services/MetricAggregationService.js +27 -14
  215. package/build/dist/Server/Services/MetricAggregationService.js.map +1 -1
  216. package/build/dist/Server/Services/MetricBaselineService.js +28 -28
  217. package/build/dist/Server/Services/MetricBaselineService.js.map +1 -1
  218. package/build/dist/Server/Services/MetricItemAggMV1mByHostV2Service.js +28 -0
  219. package/build/dist/Server/Services/MetricItemAggMV1mByHostV2Service.js.map +1 -0
  220. package/build/dist/Server/Services/MetricService.js +116 -31
  221. package/build/dist/Server/Services/MetricService.js.map +1 -1
  222. package/build/dist/Server/Services/OpenTelemetryIngestService.js +103 -36
  223. package/build/dist/Server/Services/OpenTelemetryIngestService.js.map +1 -1
  224. package/build/dist/Server/Services/ProfileAggregationService.js +613 -105
  225. package/build/dist/Server/Services/ProfileAggregationService.js.map +1 -1
  226. package/build/dist/Server/Services/ServiceService.js +9 -5
  227. package/build/dist/Server/Services/ServiceService.js.map +1 -1
  228. package/build/dist/Server/Services/SpanService.js +217 -15
  229. package/build/dist/Server/Services/SpanService.js.map +1 -1
  230. package/build/dist/Server/Services/TelemetryEntityRelationshipService.js +72 -0
  231. package/build/dist/Server/Services/TelemetryEntityRelationshipService.js.map +1 -0
  232. package/build/dist/Server/Services/TelemetryEntityService.js +201 -0
  233. package/build/dist/Server/Services/TelemetryEntityService.js.map +1 -0
  234. package/build/dist/Server/Services/TelemetryExceptionService.js +18 -18
  235. package/build/dist/Server/Services/TelemetryExceptionService.js.map +1 -1
  236. package/build/dist/Server/Services/TelemetryUsageBillingService.js +27 -21
  237. package/build/dist/Server/Services/TelemetryUsageBillingService.js.map +1 -1
  238. package/build/dist/Server/Services/TraceAggregationService.js +568 -43
  239. package/build/dist/Server/Services/TraceAggregationService.js.map +1 -1
  240. package/build/dist/Server/Types/AnalyticsDatabase/ModelPermission.js +38 -2
  241. package/build/dist/Server/Types/AnalyticsDatabase/ModelPermission.js.map +1 -1
  242. package/build/dist/Server/Types/Database/Permissions/AccessControlPermission.js +36 -2
  243. package/build/dist/Server/Types/Database/Permissions/AccessControlPermission.js.map +1 -1
  244. package/build/dist/Server/Types/Database/Permissions/BasePermission.js +25 -1
  245. package/build/dist/Server/Types/Database/Permissions/BasePermission.js.map +1 -1
  246. package/build/dist/Server/Types/Database/Permissions/OwnedScopePermission.js +17 -3
  247. package/build/dist/Server/Types/Database/Permissions/OwnedScopePermission.js.map +1 -1
  248. package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js +1 -0
  249. package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js.map +1 -1
  250. package/build/dist/Server/Types/Database/QueryHelper.js +31 -0
  251. package/build/dist/Server/Types/Database/QueryHelper.js.map +1 -1
  252. package/build/dist/Server/Utils/Alert/AlertPrivacyFilter.js +3 -2
  253. package/build/dist/Server/Utils/Alert/AlertPrivacyFilter.js.map +1 -1
  254. package/build/dist/Server/Utils/AlertEpisode/AlertEpisodePrivacyFilter.js +3 -2
  255. package/build/dist/Server/Utils/AlertEpisode/AlertEpisodePrivacyFilter.js.map +1 -1
  256. package/build/dist/Server/Utils/AnalyticsDatabase/QuerySettingsHelper.js +46 -0
  257. package/build/dist/Server/Utils/AnalyticsDatabase/QuerySettingsHelper.js.map +1 -0
  258. package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js +97 -3
  259. package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js.map +1 -1
  260. package/build/dist/Server/Utils/Incident/IncidentPrivacyFilter.js +3 -2
  261. package/build/dist/Server/Utils/Incident/IncidentPrivacyFilter.js.map +1 -1
  262. package/build/dist/Server/Utils/IncidentEpisode/IncidentEpisodePrivacyFilter.js +3 -2
  263. package/build/dist/Server/Utils/IncidentEpisode/IncidentEpisodePrivacyFilter.js.map +1 -1
  264. package/build/dist/Server/Utils/Monitor/Criteria/EvaluateOverTime.js +1 -1
  265. package/build/dist/Server/Utils/Monitor/Criteria/EvaluateOverTime.js.map +1 -1
  266. package/build/dist/Server/Utils/Monitor/MonitorLogUtil.js +1 -2
  267. package/build/dist/Server/Utils/Monitor/MonitorLogUtil.js.map +1 -1
  268. package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js +3 -4
  269. package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js.map +1 -1
  270. package/build/dist/Server/Utils/PrivacyFilterUtil.js +47 -0
  271. package/build/dist/Server/Utils/PrivacyFilterUtil.js.map +1 -0
  272. package/build/dist/Server/Utils/Profile/PprofEncoder.js +132 -4
  273. package/build/dist/Server/Utils/Profile/PprofEncoder.js.map +1 -1
  274. package/build/dist/Server/Utils/Telemetry/EntityRegistry.js +228 -0
  275. package/build/dist/Server/Utils/Telemetry/EntityRegistry.js.map +1 -0
  276. package/build/dist/Server/Utils/Telemetry/ResourceFacetResolver.js +5 -0
  277. package/build/dist/Server/Utils/Telemetry/ResourceFacetResolver.js.map +1 -1
  278. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js +569 -0
  279. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js.map +1 -0
  280. package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js +14 -9
  281. package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js.map +1 -1
  282. package/build/dist/Types/AnalyticsDatabase/TableColumnType.js +1 -0
  283. package/build/dist/Types/AnalyticsDatabase/TableColumnType.js.map +1 -1
  284. package/build/dist/Types/Dashboard/DashboardComponentType.js +1 -0
  285. package/build/dist/Types/Dashboard/DashboardComponentType.js.map +1 -1
  286. package/build/dist/Types/Dashboard/DashboardComponents/DashboardTraceChartComponent.js +2 -0
  287. package/build/dist/Types/Dashboard/DashboardComponents/DashboardTraceChartComponent.js.map +1 -0
  288. package/build/dist/Types/Dashboard/DashboardTemplates.js +4 -5
  289. package/build/dist/Types/Dashboard/DashboardTemplates.js.map +1 -1
  290. package/build/dist/Types/Log/LogQueryParser.js +2 -2
  291. package/build/dist/Types/Log/LogQueryParser.js.map +1 -1
  292. package/build/dist/Types/Log/LogQueryToFilter.js +1 -1
  293. package/build/dist/Types/Log/LogQueryToFilter.js.map +1 -1
  294. package/build/dist/Types/Monitor/MonitorStepExceptionMonitor.js +9 -1
  295. package/build/dist/Types/Monitor/MonitorStepExceptionMonitor.js.map +1 -1
  296. package/build/dist/Types/Monitor/MonitorStepLogMonitor.js +9 -1
  297. package/build/dist/Types/Monitor/MonitorStepLogMonitor.js.map +1 -1
  298. package/build/dist/Types/Monitor/MonitorStepMetricMonitor.js +13 -0
  299. package/build/dist/Types/Monitor/MonitorStepMetricMonitor.js.map +1 -1
  300. package/build/dist/Types/Monitor/MonitorStepProfileMonitor.js +9 -1
  301. package/build/dist/Types/Monitor/MonitorStepProfileMonitor.js.map +1 -1
  302. package/build/dist/Types/Monitor/MonitorStepTraceMonitor.js +9 -1
  303. package/build/dist/Types/Monitor/MonitorStepTraceMonitor.js.map +1 -1
  304. package/build/dist/Types/Monitor/MonitorType.js +8 -1
  305. package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
  306. package/build/dist/Types/ObjectID.js +9 -0
  307. package/build/dist/Types/ObjectID.js.map +1 -1
  308. package/build/dist/Types/Telemetry/EntityRelationshipType.js +32 -0
  309. package/build/dist/Types/Telemetry/EntityRelationshipType.js.map +1 -0
  310. package/build/dist/Types/Telemetry/EntityType.js +34 -0
  311. package/build/dist/Types/Telemetry/EntityType.js.map +1 -0
  312. package/build/dist/Types/Text.js +32 -1
  313. package/build/dist/Types/Text.js.map +1 -1
  314. package/build/dist/Types/Trace/TraceAggregationType.js +1 -0
  315. package/build/dist/Types/Trace/TraceAggregationType.js.map +1 -1
  316. package/build/dist/Types/Trace/TraceRecordingRuleDefinition.js +50 -1
  317. package/build/dist/Types/Trace/TraceRecordingRuleDefinition.js.map +1 -1
  318. package/build/dist/UI/Components/LogsViewer/LogsViewer.js +10 -9
  319. package/build/dist/UI/Components/LogsViewer/LogsViewer.js.map +1 -1
  320. package/build/dist/UI/Components/LogsViewer/components/LogDetailsPanel.js +8 -8
  321. package/build/dist/UI/Components/LogsViewer/components/LogDetailsPanel.js.map +1 -1
  322. package/build/dist/UI/Components/LogsViewer/components/LogSearchBar.js +1 -1
  323. package/build/dist/UI/Components/LogsViewer/components/LogSearchBar.js.map +1 -1
  324. package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js +2 -2
  325. package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js.map +1 -1
  326. package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js +4 -4
  327. package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js.map +1 -1
  328. package/build/dist/UI/Components/LogsViewer/components/LogsTable.js +3 -3
  329. package/build/dist/UI/Components/LogsViewer/components/LogsTable.js.map +1 -1
  330. package/build/dist/UI/Components/Navbar/NavBarMenuModal.js +43 -30
  331. package/build/dist/UI/Components/Navbar/NavBarMenuModal.js.map +1 -1
  332. package/build/dist/UI/Components/TelemetryViewer/TelemetryViewer.js +6 -2
  333. package/build/dist/UI/Components/TelemetryViewer/TelemetryViewer.js.map +1 -1
  334. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.js +14 -3
  335. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.js.map +1 -1
  336. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogram.js +18 -10
  337. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogram.js.map +1 -1
  338. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogramTooltip.js +4 -2
  339. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogramTooltip.js.map +1 -1
  340. package/build/dist/UI/Utils/LogExport.js +2 -2
  341. package/build/dist/UI/Utils/LogExport.js.map +1 -1
  342. package/build/dist/UI/Utils/TelemetryService.js +16 -16
  343. package/build/dist/UI/Utils/TelemetryService.js.map +1 -1
  344. package/build/dist/Utils/Dashboard/Components/DashboardTraceChartComponent.js +110 -0
  345. package/build/dist/Utils/Dashboard/Components/DashboardTraceChartComponent.js.map +1 -0
  346. package/build/dist/Utils/Dashboard/Components/Index.js +4 -0
  347. package/build/dist/Utils/Dashboard/Components/Index.js.map +1 -1
  348. package/build/dist/Utils/Telemetry/EntityKey.js +115 -0
  349. package/build/dist/Utils/Telemetry/EntityKey.js.map +1 -0
  350. package/build/dist/Utils/Telemetry/EntityRelationship.js +71 -0
  351. package/build/dist/Utils/Telemetry/EntityRelationship.js.map +1 -0
  352. package/build/dist/Utils/Traces/CriticalPath.js +5 -5
  353. package/build/dist/Utils/Traces/CriticalPath.js.map +1 -1
  354. package/build/dist/Utils/UUID.js +50 -0
  355. package/build/dist/Utils/UUID.js.map +1 -1
  356. package/package.json +2 -1
  357. package/tsconfig.json +10 -1
  358. package/Server/Services/MetricItemAggMV1mByHostService.ts +0 -30
  359. package/Types/Profile/ProfileMetricType.ts +0 -16
  360. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByHost.js.map +0 -1
  361. package/build/dist/Server/Services/MetricItemAggMV1mByHostService.js +0 -28
  362. package/build/dist/Server/Services/MetricItemAggMV1mByHostService.js.map +0 -1
  363. package/build/dist/Tests/MockType.js +0 -5
  364. package/build/dist/Tests/MockType.js.map +0 -1
  365. package/build/dist/Tests/Models/AnalyticsModels/Log.test.js +0 -12
  366. package/build/dist/Tests/Models/AnalyticsModels/Log.test.js.map +0 -1
  367. package/build/dist/Tests/Models/File.test.js +0 -10
  368. package/build/dist/Tests/Models/File.test.js.map +0 -1
  369. package/build/dist/Tests/Server/API/BaseAPI.test.js +0 -590
  370. package/build/dist/Tests/Server/API/BaseAPI.test.js.map +0 -1
  371. package/build/dist/Tests/Server/API/Helpers.js +0 -27
  372. package/build/dist/Tests/Server/API/Helpers.js.map +0 -1
  373. package/build/dist/Tests/Server/API/ProbeAPI.test.js +0 -84
  374. package/build/dist/Tests/Server/API/ProbeAPI.test.js.map +0 -1
  375. package/build/dist/Tests/Server/API/ProjectAPI.test.js +0 -170
  376. package/build/dist/Tests/Server/API/ProjectAPI.test.js.map +0 -1
  377. package/build/dist/Tests/Server/API/UserSmsApi.test.js +0 -177
  378. package/build/dist/Tests/Server/API/UserSmsApi.test.js.map +0 -1
  379. package/build/dist/Tests/Server/Middleware/BearerTokenAuthorization.test.js +0 -63
  380. package/build/dist/Tests/Server/Middleware/BearerTokenAuthorization.test.js.map +0 -1
  381. package/build/dist/Tests/Server/Middleware/ClusterKeyAuthorization.test.js +0 -58
  382. package/build/dist/Tests/Server/Middleware/ClusterKeyAuthorization.test.js.map +0 -1
  383. package/build/dist/Tests/Server/Middleware/NotificationMiddleware.test.js +0 -101
  384. package/build/dist/Tests/Server/Middleware/NotificationMiddleware.test.js.map +0 -1
  385. package/build/dist/Tests/Server/Middleware/ProjectAuthorization.test.js +0 -160
  386. package/build/dist/Tests/Server/Middleware/ProjectAuthorization.test.js.map +0 -1
  387. package/build/dist/Tests/Server/Middleware/UserAuthorization.test.js +0 -410
  388. package/build/dist/Tests/Server/Middleware/UserAuthorization.test.js.map +0 -1
  389. package/build/dist/Tests/Server/Services/AlertEpisodeMemberService.test.js +0 -165
  390. package/build/dist/Tests/Server/Services/AlertEpisodeMemberService.test.js.map +0 -1
  391. package/build/dist/Tests/Server/Services/AlertEpisodeService.test.js +0 -193
  392. package/build/dist/Tests/Server/Services/AlertEpisodeService.test.js.map +0 -1
  393. package/build/dist/Tests/Server/Services/AlertGroupingEngineService.test.js +0 -435
  394. package/build/dist/Tests/Server/Services/AlertGroupingEngineService.test.js.map +0 -1
  395. package/build/dist/Tests/Server/Services/AlertGroupingRuleService.test.js +0 -320
  396. package/build/dist/Tests/Server/Services/AlertGroupingRuleService.test.js.map +0 -1
  397. package/build/dist/Tests/Server/Services/AnalyticsDatabaseService.test.js +0 -266
  398. package/build/dist/Tests/Server/Services/AnalyticsDatabaseService.test.js.map +0 -1
  399. package/build/dist/Tests/Server/Services/BillingService.test.js +0 -910
  400. package/build/dist/Tests/Server/Services/BillingService.test.js.map +0 -1
  401. package/build/dist/Tests/Server/Services/LogAggregationService.test.js +0 -75
  402. package/build/dist/Tests/Server/Services/LogAggregationService.test.js.map +0 -1
  403. package/build/dist/Tests/Server/Services/ProbeService.test.js +0 -127
  404. package/build/dist/Tests/Server/Services/ProbeService.test.js.map +0 -1
  405. package/build/dist/Tests/Server/Services/ScheduledMaintenanceService.test.js +0 -114
  406. package/build/dist/Tests/Server/Services/ScheduledMaintenanceService.test.js.map +0 -1
  407. package/build/dist/Tests/Server/Services/TeamMemberService.test.js +0 -106
  408. package/build/dist/Tests/Server/Services/TeamMemberService.test.js.map +0 -1
  409. package/build/dist/Tests/Server/Services/TelemetryAttributeService.test.js +0 -50
  410. package/build/dist/Tests/Server/Services/TelemetryAttributeService.test.js.map +0 -1
  411. package/build/dist/Tests/Server/TestingUtils/Init.js +0 -4
  412. package/build/dist/Tests/Server/TestingUtils/Init.js.map +0 -1
  413. package/build/dist/Tests/Server/TestingUtils/Postgres/TestDataSourceOptions.js +0 -9
  414. package/build/dist/Tests/Server/TestingUtils/Postgres/TestDataSourceOptions.js.map +0 -1
  415. package/build/dist/Tests/Server/TestingUtils/Redis/TestRedisOptions.js +0 -16
  416. package/build/dist/Tests/Server/TestingUtils/Redis/TestRedisOptions.js.map +0 -1
  417. package/build/dist/Tests/Server/TestingUtils/Services/BillingServiceHelper.js +0 -125
  418. package/build/dist/Tests/Server/TestingUtils/Services/BillingServiceHelper.js.map +0 -1
  419. package/build/dist/Tests/Server/TestingUtils/Services/ProjectServiceHelper.js +0 -39
  420. package/build/dist/Tests/Server/TestingUtils/Services/ProjectServiceHelper.js.map +0 -1
  421. package/build/dist/Tests/Server/TestingUtils/Services/ScheduledMaintenanceServiceHelper.js +0 -20
  422. package/build/dist/Tests/Server/TestingUtils/Services/ScheduledMaintenanceServiceHelper.js.map +0 -1
  423. package/build/dist/Tests/Server/TestingUtils/Services/ScheduledMaintenanceStateServiceHelper.js +0 -31
  424. package/build/dist/Tests/Server/TestingUtils/Services/ScheduledMaintenanceStateServiceHelper.js.map +0 -1
  425. package/build/dist/Tests/Server/TestingUtils/Services/TeamMemberServiceHelper.js +0 -14
  426. package/build/dist/Tests/Server/TestingUtils/Services/TeamMemberServiceHelper.js.map +0 -1
  427. package/build/dist/Tests/Server/TestingUtils/Services/TeamServiceHelper.js +0 -21
  428. package/build/dist/Tests/Server/TestingUtils/Services/TeamServiceHelper.js.map +0 -1
  429. package/build/dist/Tests/Server/TestingUtils/Services/Types.js +0 -2
  430. package/build/dist/Tests/Server/TestingUtils/Services/Types.js.map +0 -1
  431. package/build/dist/Tests/Server/TestingUtils/Services/UserServiceHelper.js +0 -37
  432. package/build/dist/Tests/Server/TestingUtils/Services/UserServiceHelper.js.map +0 -1
  433. package/build/dist/Tests/Server/TestingUtils/__mocks__/Stripe.mock.js +0 -13
  434. package/build/dist/Tests/Server/TestingUtils/__mocks__/Stripe.mock.js.map +0 -1
  435. package/build/dist/Tests/Server/TestingUtils/__mocks__/TestDatabase.mock.js +0 -22
  436. package/build/dist/Tests/Server/TestingUtils/__mocks__/TestDatabase.mock.js.map +0 -1
  437. package/build/dist/Tests/Server/Types/Domain.test.js +0 -78
  438. package/build/dist/Tests/Server/Types/Domain.test.js.map +0 -1
  439. package/build/dist/Tests/Server/Utils/AnalyticsDatabase/Statement.test.js +0 -94
  440. package/build/dist/Tests/Server/Utils/AnalyticsDatabase/Statement.test.js.map +0 -1
  441. package/build/dist/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.js +0 -459
  442. package/build/dist/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.js.map +0 -1
  443. package/build/dist/Tests/Server/Utils/Cookie.test.js +0 -83
  444. package/build/dist/Tests/Server/Utils/Cookie.test.js.map +0 -1
  445. package/build/dist/Tests/Server/Utils/CronTab.test.js +0 -29
  446. package/build/dist/Tests/Server/Utils/CronTab.test.js.map +0 -1
  447. package/build/dist/Tests/Server/Utils/JsonToCsv.test.js +0 -114
  448. package/build/dist/Tests/Server/Utils/JsonToCsv.test.js.map +0 -1
  449. package/build/dist/Tests/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.test.js +0 -606
  450. package/build/dist/Tests/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.test.js.map +0 -1
  451. package/build/dist/Tests/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.test.js +0 -255
  452. package/build/dist/Tests/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.test.js.map +0 -1
  453. package/build/dist/Tests/Server/Utils/Monitor/MonitorMaintenanceSuppression.test.js +0 -142
  454. package/build/dist/Tests/Server/Utils/Monitor/MonitorMaintenanceSuppression.test.js.map +0 -1
  455. package/build/dist/Tests/Server/Utils/StatusPageResource.test.js +0 -122
  456. package/build/dist/Tests/Server/Utils/StatusPageResource.test.js.map +0 -1
  457. package/build/dist/Tests/Server/Utils/Telemetry/LogExceptionExtractor.test.js +0 -0
  458. package/build/dist/Tests/Server/Utils/Telemetry/LogExceptionExtractor.test.js.map +0 -1
  459. package/build/dist/Tests/Server/Utils/VM/VMAPI.test.js +0 -205
  460. package/build/dist/Tests/Server/Utils/VM/VMAPI.test.js.map +0 -1
  461. package/build/dist/Tests/Spy.js +0 -4
  462. package/build/dist/Tests/Spy.js.map +0 -1
  463. package/build/dist/Tests/Types/API/ErrorResponse.test.js +0 -13
  464. package/build/dist/Tests/Types/API/ErrorResponse.test.js.map +0 -1
  465. package/build/dist/Tests/Types/API/HTTPErrorResponse.test.js +0 -33
  466. package/build/dist/Tests/Types/API/HTTPErrorResponse.test.js.map +0 -1
  467. package/build/dist/Tests/Types/API/HTTPMethod.test.js +0 -16
  468. package/build/dist/Tests/Types/API/HTTPMethod.test.js.map +0 -1
  469. package/build/dist/Tests/Types/API/Headers.test.js +0 -14
  470. package/build/dist/Tests/Types/API/Headers.test.js.map +0 -1
  471. package/build/dist/Tests/Types/API/Hostname.test.js +0 -22
  472. package/build/dist/Tests/Types/API/Hostname.test.js.map +0 -1
  473. package/build/dist/Tests/Types/API/Protocal.test.js +0 -19
  474. package/build/dist/Tests/Types/API/Protocal.test.js.map +0 -1
  475. package/build/dist/Tests/Types/API/Response.test.js +0 -14
  476. package/build/dist/Tests/Types/API/Response.test.js.map +0 -1
  477. package/build/dist/Tests/Types/API/ResponseType.test.js +0 -13
  478. package/build/dist/Tests/Types/API/ResponseType.test.js.map +0 -1
  479. package/build/dist/Tests/Types/API/Route.test.js +0 -30
  480. package/build/dist/Tests/Types/API/Route.test.js.map +0 -1
  481. package/build/dist/Tests/Types/API/StatusCode.test.js +0 -26
  482. package/build/dist/Tests/Types/API/StatusCode.test.js.map +0 -1
  483. package/build/dist/Tests/Types/API/URL.test.js +0 -33
  484. package/build/dist/Tests/Types/API/URL.test.js.map +0 -1
  485. package/build/dist/Tests/Types/Alerts/AlertEventType.test.js +0 -34
  486. package/build/dist/Tests/Types/Alerts/AlertEventType.test.js.map +0 -1
  487. package/build/dist/Tests/Types/Alerts/AlertType.test.js +0 -19
  488. package/build/dist/Tests/Types/Alerts/AlertType.test.js.map +0 -1
  489. package/build/dist/Tests/Types/AppEnvironment.test.js +0 -13
  490. package/build/dist/Tests/Types/AppEnvironment.test.js.map +0 -1
  491. package/build/dist/Tests/Types/ApplicationLog/ApplicationLogType.test.js +0 -13
  492. package/build/dist/Tests/Types/ApplicationLog/ApplicationLogType.test.js.map +0 -1
  493. package/build/dist/Tests/Types/ArrayUtil.test.js +0 -71
  494. package/build/dist/Tests/Types/ArrayUtil.test.js.map +0 -1
  495. package/build/dist/Tests/Types/Billing/SubscriptionPlan.test.js +0 -181
  496. package/build/dist/Tests/Types/Billing/SubscriptionPlan.test.js.map +0 -1
  497. package/build/dist/Tests/Types/BrandColors.test.js +0 -124
  498. package/build/dist/Tests/Types/BrandColors.test.js.map +0 -1
  499. package/build/dist/Tests/Types/Char.test.js +0 -82
  500. package/build/dist/Tests/Types/Char.test.js.map +0 -1
  501. package/build/dist/Tests/Types/Code/CodeType.test.js +0 -13
  502. package/build/dist/Tests/Types/Code/CodeType.test.js.map +0 -1
  503. package/build/dist/Tests/Types/Color.test.js +0 -44
  504. package/build/dist/Tests/Types/Color.test.js.map +0 -1
  505. package/build/dist/Tests/Types/Company/CompanySize.test.js +0 -20
  506. package/build/dist/Tests/Types/Company/CompanySize.test.js.map +0 -1
  507. package/build/dist/Tests/Types/Company/JobRole.test.js +0 -22
  508. package/build/dist/Tests/Types/Company/JobRole.test.js.map +0 -1
  509. package/build/dist/Tests/Types/Countries.test.js +0 -249
  510. package/build/dist/Tests/Types/Countries.test.js.map +0 -1
  511. package/build/dist/Tests/Types/Database/ColumnLength.test.js +0 -43
  512. package/build/dist/Tests/Types/Database/ColumnLength.test.js.map +0 -1
  513. package/build/dist/Tests/Types/Database/ColumnType.test.js +0 -79
  514. package/build/dist/Tests/Types/Database/ColumnType.test.js.map +0 -1
  515. package/build/dist/Tests/Types/Database/Columns.test.js +0 -20
  516. package/build/dist/Tests/Types/Database/Columns.test.js.map +0 -1
  517. package/build/dist/Tests/Types/Database/CompareBase.test.js +0 -37
  518. package/build/dist/Tests/Types/Database/CompareBase.test.js.map +0 -1
  519. package/build/dist/Tests/Types/Database/Date.test.js +0 -62
  520. package/build/dist/Tests/Types/Database/Date.test.js.map +0 -1
  521. package/build/dist/Tests/Types/Database/EqualTo.test.js +0 -65
  522. package/build/dist/Tests/Types/Database/EqualTo.test.js.map +0 -1
  523. package/build/dist/Tests/Types/Database/EqualToOrNull.test.js +0 -62
  524. package/build/dist/Tests/Types/Database/EqualToOrNull.test.js.map +0 -1
  525. package/build/dist/Tests/Types/Database/InBetween.test.js +0 -72
  526. package/build/dist/Tests/Types/Database/InBetween.test.js.map +0 -1
  527. package/build/dist/Tests/Types/Database/LimitMax.test.js +0 -18
  528. package/build/dist/Tests/Types/Database/LimitMax.test.js.map +0 -1
  529. package/build/dist/Tests/Types/Database/NotEqual.test.js +0 -19
  530. package/build/dist/Tests/Types/Database/NotEqual.test.js.map +0 -1
  531. package/build/dist/Tests/Types/Database/Search.test.js +0 -10
  532. package/build/dist/Tests/Types/Database/Search.test.js.map +0 -1
  533. package/build/dist/Tests/Types/DatabaseType.test.js +0 -7
  534. package/build/dist/Tests/Types/DatabaseType.test.js.map +0 -1
  535. package/build/dist/Tests/Types/Date.test.js +0 -194
  536. package/build/dist/Tests/Types/Date.test.js.map +0 -1
  537. package/build/dist/Tests/Types/Dictionary.test.js +0 -25
  538. package/build/dist/Tests/Types/Dictionary.test.js.map +0 -1
  539. package/build/dist/Tests/Types/Domain.test.js +0 -54
  540. package/build/dist/Tests/Types/Domain.test.js.map +0 -1
  541. package/build/dist/Tests/Types/Email/Email.test.js +0 -51
  542. package/build/dist/Tests/Types/Email/Email.test.js.map +0 -1
  543. package/build/dist/Tests/Types/EmailWithName.test.js +0 -36
  544. package/build/dist/Tests/Types/EmailWithName.test.js.map +0 -1
  545. package/build/dist/Tests/Types/EncryptionAlgorithm.test.js +0 -7
  546. package/build/dist/Tests/Types/EncryptionAlgorithm.test.js.map +0 -1
  547. package/build/dist/Tests/Types/Exception/ApiException.test.js +0 -10
  548. package/build/dist/Tests/Types/Exception/ApiException.test.js.map +0 -1
  549. package/build/dist/Tests/Types/Exception/BadDataException.test.js +0 -12
  550. package/build/dist/Tests/Types/Exception/BadDataException.test.js.map +0 -1
  551. package/build/dist/Tests/Types/Exception/BadOperationException.test.js +0 -10
  552. package/build/dist/Tests/Types/Exception/BadOperationException.test.js.map +0 -1
  553. package/build/dist/Tests/Types/Exception/BadRequestException.test.js +0 -12
  554. package/build/dist/Tests/Types/Exception/BadRequestException.test.js.map +0 -1
  555. package/build/dist/Tests/Types/Exception/DatabaseNotConnectedException.test.js +0 -10
  556. package/build/dist/Tests/Types/Exception/DatabaseNotConnectedException.test.js.map +0 -1
  557. package/build/dist/Tests/Types/Exception/Exception.test.js +0 -15
  558. package/build/dist/Tests/Types/Exception/Exception.test.js.map +0 -1
  559. package/build/dist/Tests/Types/Exception/NotImplementedException.test.js +0 -12
  560. package/build/dist/Tests/Types/Exception/NotImplementedException.test.js.map +0 -1
  561. package/build/dist/Tests/Types/File.test.js +0 -22
  562. package/build/dist/Tests/Types/File.test.js.map +0 -1
  563. package/build/dist/Tests/Types/HashedString.test.js +0 -51
  564. package/build/dist/Tests/Types/HashedString.test.js.map +0 -1
  565. package/build/dist/Tests/Types/Html.test.js +0 -8
  566. package/build/dist/Tests/Types/Html.test.js.map +0 -1
  567. package/build/dist/Tests/Types/IP/IP.test.js +0 -65
  568. package/build/dist/Tests/Types/IP/IP.test.js.map +0 -1
  569. package/build/dist/Tests/Types/IP/IPType.test.js +0 -10
  570. package/build/dist/Tests/Types/IP/IPType.test.js.map +0 -1
  571. package/build/dist/Tests/Types/IP/IPv4.test.js +0 -17
  572. package/build/dist/Tests/Types/IP/IPv4.test.js.map +0 -1
  573. package/build/dist/Tests/Types/IP/IPv6.test.js +0 -17
  574. package/build/dist/Tests/Types/IP/IPv6.test.js.map +0 -1
  575. package/build/dist/Tests/Types/JSON.test.js +0 -37
  576. package/build/dist/Tests/Types/JSON.test.js.map +0 -1
  577. package/build/dist/Tests/Types/JSONFunctions.test.js +0 -38
  578. package/build/dist/Tests/Types/JSONFunctions.test.js.map +0 -1
  579. package/build/dist/Tests/Types/ListData.test.js +0 -34
  580. package/build/dist/Tests/Types/ListData.test.js.map +0 -1
  581. package/build/dist/Tests/Types/Monitor/KubernetesAlertTemplates.test.js +0 -121
  582. package/build/dist/Tests/Types/Monitor/KubernetesAlertTemplates.test.js.map +0 -1
  583. package/build/dist/Tests/Types/Name.test.js +0 -26
  584. package/build/dist/Tests/Types/Name.test.js.map +0 -1
  585. package/build/dist/Tests/Types/ObjectID.test.js +0 -12
  586. package/build/dist/Tests/Types/ObjectID.test.js.map +0 -1
  587. package/build/dist/Tests/Types/OnCallDutyPolicy/LayerUtil.test.js +0 -530
  588. package/build/dist/Tests/Types/OnCallDutyPolicy/LayerUtil.test.js.map +0 -1
  589. package/build/dist/Tests/Types/Permission.test.js +0 -99
  590. package/build/dist/Tests/Types/Permission.test.js.map +0 -1
  591. package/build/dist/Tests/Types/Phone.test.js +0 -37
  592. package/build/dist/Tests/Types/Phone.test.js.map +0 -1
  593. package/build/dist/Tests/Types/Port.test.js +0 -35
  594. package/build/dist/Tests/Types/Port.test.js.map +0 -1
  595. package/build/dist/Tests/Types/PositiveNumber.test.js +0 -101
  596. package/build/dist/Tests/Types/PositiveNumber.test.js.map +0 -1
  597. package/build/dist/Tests/Types/SecuritySeverity.test.js +0 -16
  598. package/build/dist/Tests/Types/SecuritySeverity.test.js.map +0 -1
  599. package/build/dist/Tests/Types/SerializableObject.test.js +0 -37
  600. package/build/dist/Tests/Types/SerializableObject.test.js.map +0 -1
  601. package/build/dist/Tests/Types/Sleep.test.js +0 -14
  602. package/build/dist/Tests/Types/Sleep.test.js.map +0 -1
  603. package/build/dist/Tests/Types/Text.test.js +0 -8
  604. package/build/dist/Tests/Types/Text.test.js.map +0 -1
  605. package/build/dist/Tests/Types/Timezone.test.js +0 -596
  606. package/build/dist/Tests/Types/Timezone.test.js.map +0 -1
  607. package/build/dist/Tests/Types/Typeof.test.js +0 -16
  608. package/build/dist/Tests/Types/Typeof.test.js.map +0 -1
  609. package/build/dist/Tests/Types/UserType.test.js +0 -16
  610. package/build/dist/Tests/Types/UserType.test.js.map +0 -1
  611. package/build/dist/Tests/Types/Version.test.js +0 -35
  612. package/build/dist/Tests/Types/Version.test.js.map +0 -1
  613. package/build/dist/Tests/Types/XML.test.js +0 -35
  614. package/build/dist/Tests/Types/XML.test.js.map +0 -1
  615. package/build/dist/Tests/UI/Components/404.test.js +0 -59
  616. package/build/dist/Tests/UI/Components/404.test.js.map +0 -1
  617. package/build/dist/Tests/UI/Components/Alert.test.js +0 -83
  618. package/build/dist/Tests/UI/Components/Alert.test.js.map +0 -1
  619. package/build/dist/Tests/UI/Components/Badge.test.js +0 -59
  620. package/build/dist/Tests/UI/Components/Badge.test.js.map +0 -1
  621. package/build/dist/Tests/UI/Components/BasicForm.test.js +0 -92
  622. package/build/dist/Tests/UI/Components/BasicForm.test.js.map +0 -1
  623. package/build/dist/Tests/UI/Components/Breadcrumbs.test.js +0 -69
  624. package/build/dist/Tests/UI/Components/Breadcrumbs.test.js.map +0 -1
  625. package/build/dist/Tests/UI/Components/Button.test.js +0 -104
  626. package/build/dist/Tests/UI/Components/Button.test.js.map +0 -1
  627. package/build/dist/Tests/UI/Components/Card.test.js +0 -81
  628. package/build/dist/Tests/UI/Components/Card.test.js.map +0 -1
  629. package/build/dist/Tests/UI/Components/ColorViewer.test.js +0 -42
  630. package/build/dist/Tests/UI/Components/ColorViewer.test.js.map +0 -1
  631. package/build/dist/Tests/UI/Components/ComponentsModal.test.js +0 -233
  632. package/build/dist/Tests/UI/Components/ComponentsModal.test.js.map +0 -1
  633. package/build/dist/Tests/UI/Components/ConfirmModal.test.js +0 -57
  634. package/build/dist/Tests/UI/Components/ConfirmModal.test.js.map +0 -1
  635. package/build/dist/Tests/UI/Components/DictionaryOfStrings.test.js +0 -84
  636. package/build/dist/Tests/UI/Components/DictionaryOfStrings.test.js.map +0 -1
  637. package/build/dist/Tests/UI/Components/Dropdown.test.js +0 -146
  638. package/build/dist/Tests/UI/Components/Dropdown.test.js.map +0 -1
  639. package/build/dist/Tests/UI/Components/DuplicateModel.test.js +0 -229
  640. package/build/dist/Tests/UI/Components/DuplicateModel.test.js.map +0 -1
  641. package/build/dist/Tests/UI/Components/EmptyState/EmptyState.test.js +0 -26
  642. package/build/dist/Tests/UI/Components/EmptyState/EmptyState.test.js.map +0 -1
  643. package/build/dist/Tests/UI/Components/ErrorBoundary.test.js +0 -32
  644. package/build/dist/Tests/UI/Components/ErrorBoundary.test.js.map +0 -1
  645. package/build/dist/Tests/UI/Components/FilePicker.test.js +0 -342
  646. package/build/dist/Tests/UI/Components/FilePicker.test.js.map +0 -1
  647. package/build/dist/Tests/UI/Components/HiddenText.test.js +0 -50
  648. package/build/dist/Tests/UI/Components/HiddenText.test.js.map +0 -1
  649. package/build/dist/Tests/UI/Components/Input.test.js +0 -223
  650. package/build/dist/Tests/UI/Components/Input.test.js.map +0 -1
  651. package/build/dist/Tests/UI/Components/Item.test.js +0 -58
  652. package/build/dist/Tests/UI/Components/Item.test.js.map +0 -1
  653. package/build/dist/Tests/UI/Components/List.test.js +0 -83
  654. package/build/dist/Tests/UI/Components/List.test.js.map +0 -1
  655. package/build/dist/Tests/UI/Components/Loader.test.js +0 -19
  656. package/build/dist/Tests/UI/Components/Loader.test.js.map +0 -1
  657. package/build/dist/Tests/UI/Components/MarkdownEditor.test.js +0 -85
  658. package/build/dist/Tests/UI/Components/MarkdownEditor.test.js.map +0 -1
  659. package/build/dist/Tests/UI/Components/MasterPage.test.js +0 -46
  660. package/build/dist/Tests/UI/Components/MasterPage.test.js.map +0 -1
  661. package/build/dist/Tests/UI/Components/Modal.test.js +0 -127
  662. package/build/dist/Tests/UI/Components/Modal.test.js.map +0 -1
  663. package/build/dist/Tests/UI/Components/NavBar.test.js +0 -52
  664. package/build/dist/Tests/UI/Components/NavBar.test.js.map +0 -1
  665. package/build/dist/Tests/UI/Components/OrderedStatesList.test.js +0 -86
  666. package/build/dist/Tests/UI/Components/OrderedStatesList.test.js.map +0 -1
  667. package/build/dist/Tests/UI/Components/Pagination.test.js +0 -137
  668. package/build/dist/Tests/UI/Components/Pagination.test.js.map +0 -1
  669. package/build/dist/Tests/UI/Components/Pill.test.js +0 -55
  670. package/build/dist/Tests/UI/Components/Pill.test.js.map +0 -1
  671. package/build/dist/Tests/UI/Components/Probe.test.js +0 -52
  672. package/build/dist/Tests/UI/Components/Probe.test.js.map +0 -1
  673. package/build/dist/Tests/UI/Components/ProgressBar.test.js +0 -41
  674. package/build/dist/Tests/UI/Components/ProgressBar.test.js.map +0 -1
  675. package/build/dist/Tests/UI/Components/RadioButtons.test.js +0 -66
  676. package/build/dist/Tests/UI/Components/RadioButtons.test.js.map +0 -1
  677. package/build/dist/Tests/UI/Components/SideMenuItem.test.js +0 -99
  678. package/build/dist/Tests/UI/Components/SideMenuItem.test.js.map +0 -1
  679. package/build/dist/Tests/UI/Components/SideOver.test.js +0 -77
  680. package/build/dist/Tests/UI/Components/SideOver.test.js.map +0 -1
  681. package/build/dist/Tests/UI/Components/Tabs.test.js +0 -56
  682. package/build/dist/Tests/UI/Components/Tabs.test.js.map +0 -1
  683. package/build/dist/Tests/UI/Components/Template/Template.test.js +0 -15
  684. package/build/dist/Tests/UI/Components/Template/Template.test.js.map +0 -1
  685. package/build/dist/Tests/UI/Components/TextArea.test.js +0 -112
  686. package/build/dist/Tests/UI/Components/TextArea.test.js.map +0 -1
  687. package/build/dist/Tests/UI/Components/TimePicker/TimePicker.test.js +0 -352
  688. package/build/dist/Tests/UI/Components/TimePicker/TimePicker.test.js.map +0 -1
  689. package/build/dist/Tests/UI/Components/Toast.test.js +0 -48
  690. package/build/dist/Tests/UI/Components/Toast.test.js.map +0 -1
  691. package/build/dist/Tests/UI/Components/Toggle.test.js +0 -95
  692. package/build/dist/Tests/UI/Components/Toggle.test.js.map +0 -1
  693. package/build/dist/Tests/UI/Components/TopSection.test.js +0 -33
  694. package/build/dist/Tests/UI/Components/TopSection.test.js.map +0 -1
  695. package/build/dist/Tests/UI/Components/XAxis.test.js +0 -21
  696. package/build/dist/Tests/UI/Components/XAxis.test.js.map +0 -1
  697. package/build/dist/Tests/UI/Index.js +0 -2
  698. package/build/dist/Tests/UI/Index.js.map +0 -1
  699. package/build/dist/Tests/UI/Mocks/FileMock.js +0 -3
  700. package/build/dist/Tests/UI/Mocks/FileMock.js.map +0 -1
  701. package/build/dist/Tests/Utils/API.test.js +0 -399
  702. package/build/dist/Tests/Utils/API.test.js.map +0 -1
  703. package/build/dist/Tests/Utils/Analytics.test.js +0 -67
  704. package/build/dist/Tests/Utils/Analytics.test.js.map +0 -1
  705. package/build/dist/Tests/Utils/CronTime.test.js +0 -22
  706. package/build/dist/Tests/Utils/CronTime.test.js.map +0 -1
  707. package/build/dist/Tests/Utils/Faker.test.js +0 -27
  708. package/build/dist/Tests/Utils/Faker.test.js.map +0 -1
  709. package/build/dist/Tests/Utils/MetricUnitUtil.test.js +0 -187
  710. package/build/dist/Tests/Utils/MetricUnitUtil.test.js.map +0 -1
  711. package/build/dist/Tests/Utils/Metrics/MetricFormulaEvaluator.test.js +0 -224
  712. package/build/dist/Tests/Utils/Metrics/MetricFormulaEvaluator.test.js.map +0 -1
  713. package/build/dist/Tests/Utils/Metrics/MetricResultUnitConverter.test.js +0 -180
  714. package/build/dist/Tests/Utils/Metrics/MetricResultUnitConverter.test.js.map +0 -1
  715. package/build/dist/Tests/Utils/RecordingRuleExpression.test.js +0 -142
  716. package/build/dist/Tests/Utils/RecordingRuleExpression.test.js.map +0 -1
  717. package/build/dist/Tests/Utils/Slug.test.js +0 -20
  718. package/build/dist/Tests/Utils/Slug.test.js.map +0 -1
  719. package/build/dist/Tests/Utils/UUID.test.js +0 -48
  720. package/build/dist/Tests/Utils/UUID.test.js.map +0 -1
  721. package/build/dist/Tests/jest.setup.js +0 -30
  722. package/build/dist/Tests/jest.setup.js.map +0 -1
  723. package/build/dist/Types/Profile/ProfileMetricType.js +0 -17
  724. package/build/dist/Types/Profile/ProfileMetricType.js.map +0 -1
@@ -8,6 +8,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
10
  import { SQL, Statement } from "../Utils/AnalyticsDatabase/Statement";
11
+ import { getQuerySettings } from "../Utils/AnalyticsDatabase/QuerySettingsHelper";
11
12
  import MetricService from "./MetricService";
12
13
  import TableColumnType from "../../Types/AnalyticsDatabase/TableColumnType";
13
14
  import BadDataException from "../../Types/Exception/BadDataException";
@@ -18,9 +19,9 @@ import ServiceType from "../../Types/Telemetry/ServiceType";
18
19
  /*
19
20
  * Facet aggregation for the Metrics page sidebar. Same shape as
20
21
  * TraceAggregationService / LogAggregationService — per-facet GROUP BY on
21
- * the analytics table, with a `serviceType` discriminator that lets the
22
- * `serviceId` column carry Host / DockerHost / KubernetesCluster ids for
23
- * the corresponding virtual facets.
22
+ * the analytics table, with a `primaryEntityType` discriminator that lets
23
+ * the `primaryEntityId` column carry Host / DockerHost / KubernetesCluster
24
+ * ids for the corresponding virtual facets.
24
25
  */
25
26
  export class MetricAggregationService {
26
27
  static async getFacetValues(request) {
@@ -41,6 +42,10 @@ export class MetricAggregationService {
41
42
  }
42
43
  static buildFacetStatement(request) {
43
44
  var _a;
45
+ // Pre-rename alias from stale clients; the V3 column is primaryEntityId.
46
+ if (request.facetKey === "serviceId") {
47
+ request.facetKey = "primaryEntityId";
48
+ }
44
49
  const limit = (_a = request.limit) !== null && _a !== void 0 ? _a : MetricAggregationService.DEFAULT_FACET_LIMIT;
45
50
  MetricAggregationService.validateFacetKey(request.facetKey);
46
51
  const resourceServiceType = MetricAggregationService.RESOURCE_FACET_KEYS.get(request.facetKey);
@@ -49,16 +54,16 @@ export class MetricAggregationService {
49
54
  MetricAggregationService.isTopLevelColumn(request.facetKey);
50
55
  const statement = new Statement();
51
56
  if (isResourceFacet) {
52
- statement.append(SQL `SELECT toString(serviceId) AS val, count() AS cnt FROM ${MetricAggregationService.TABLE_NAME}`);
57
+ statement.append(SQL `SELECT toString(primaryEntityId) AS val, count() AS cnt FROM ${MetricAggregationService.TABLE_NAME}`);
53
58
  }
54
59
  else if (isTopLevelColumn) {
55
60
  statement.append(SQL `SELECT toString(${request.facetKey}) AS val, count() AS cnt FROM ${MetricAggregationService.TABLE_NAME}`);
56
61
  }
57
62
  else {
58
- statement.append(SQL `SELECT JSONExtractRaw(attributes, ${{
63
+ statement.append(SQL `SELECT attributes[${{
59
64
  type: TableColumnType.Text,
60
65
  value: request.facetKey,
61
- }}) AS val, count() AS cnt FROM ${MetricAggregationService.TABLE_NAME}`);
66
+ }}] AS val, count() AS cnt FROM ${MetricAggregationService.TABLE_NAME}`);
62
67
  }
63
68
  statement.append(SQL ` WHERE projectId = ${{
64
69
  type: TableColumnType.ObjectID,
@@ -71,23 +76,28 @@ export class MetricAggregationService {
71
76
  value: request.endTime,
72
77
  }}`);
73
78
  if (isResourceFacet) {
74
- statement.append(SQL ` AND serviceType = ${{
79
+ statement.append(SQL ` AND primaryEntityType = ${{
75
80
  type: TableColumnType.Text,
76
81
  value: resourceServiceType,
77
82
  }}`);
78
83
  }
79
- else if (request.facetKey === "serviceId") {
80
- statement.append(SQL ` AND (serviceType = '' OR serviceType = ${{
84
+ else if (request.facetKey === "primaryEntityId") {
85
+ statement.append(SQL ` AND (primaryEntityType = '' OR primaryEntityType = ${{
81
86
  type: TableColumnType.Text,
82
87
  value: ServiceType.OpenTelemetry,
83
88
  }})`);
84
89
  }
85
90
  else if (!isTopLevelColumn) {
86
- statement.append(SQL ` AND JSONHas(attributes, ${{
91
+ statement.append(SQL ` AND mapContains(attributes, ${{
87
92
  type: TableColumnType.Text,
88
93
  value: request.facetKey,
89
- }}) = 1`);
94
+ }})`);
90
95
  }
96
+ /*
97
+ * Read-side retention filter: rows past their per-service retention
98
+ * stay in their part until the whole part drops (ttl_only_drop_parts).
99
+ */
100
+ statement.append(" AND retentionDate >= now()");
91
101
  MetricAggregationService.appendCommonFilters(statement, request);
92
102
  statement.append(SQL ` GROUP BY val ORDER BY cnt DESC LIMIT ${{
93
103
  type: TableColumnType.Number,
@@ -97,12 +107,15 @@ export class MetricAggregationService {
97
107
  * Defense in depth: cap runtime below nginx's 60s proxy_read_timeout
98
108
  * so a slow facet never starves the endpoint.
99
109
  */
100
- statement.append(" SETTINGS max_execution_time = 45, timeout_overflow_mode = 'break'");
110
+ statement.append(getQuerySettings({
111
+ maxExecutionTimeInSeconds: 45,
112
+ timeoutOverflowMode: "break",
113
+ }));
101
114
  return statement;
102
115
  }
103
116
  static appendCommonFilters(statement, request) {
104
117
  if (request.serviceIds && request.serviceIds.length > 0) {
105
- statement.append(SQL ` AND serviceId IN (${{
118
+ statement.append(SQL ` AND primaryEntityId IN (${{
106
119
  type: TableColumnType.ObjectID,
107
120
  value: new Includes(request.serviceIds.map((id) => {
108
121
  return id.toString();
@@ -139,7 +152,7 @@ export class MetricAggregationService {
139
152
  MetricAggregationService.DEFAULT_FACET_LIMIT = 500;
140
153
  MetricAggregationService.TABLE_NAME = AnalyticsTableName.Metric;
141
154
  MetricAggregationService.TOP_LEVEL_COLUMNS = new Set([
142
- "serviceId",
155
+ "primaryEntityId",
143
156
  "name",
144
157
  ]);
145
158
  MetricAggregationService.RESOURCE_FACET_KEYS = new Map([
@@ -1 +1 @@
1
- {"version":3,"file":"MetricAggregationService.js","sourceRoot":"","sources":["../../../../Server/Services/MetricAggregationService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MetricAggregationService.js","sourceRoot":"","sources":["../../../../Server/Services/MetricAggregationService.ts"],"names":[],"mappings":"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"}
@@ -23,14 +23,14 @@ export class MetricBaselineService extends AnalyticsDatabaseService {
23
23
  super({ modelType: MetricBaselineHourly, database: clickhouseDatabase });
24
24
  }
25
25
  /**
26
- * Fetch the rolling-window baseline for one (metric, [service],
26
+ * Fetch the rolling-window baseline for one (metric, [entity],
27
27
  * hour-of-week) cell. Aggregates the AggregateFunction states across
28
28
  * the last `windowDays` days. Returns null when no data exists.
29
29
  *
30
- * `serviceId` is optional: when omitted, baselines are aggregated
31
- * across every serviceId that ingested the metric in the window.
32
- * Useful for monitor criteria whose query isn't scoped to a single
33
- * telemetry service.
30
+ * `primaryEntityId` is optional: when omitted, baselines are
31
+ * aggregated across every primaryEntityId that ingested the metric in
32
+ * the window. Useful for monitor criteria whose query isn't scoped to
33
+ * a single telemetry service.
34
34
  */
35
35
  async getBaseline(input) {
36
36
  const windowDays = Math.min(input.windowDays || MetricBaselineService.DEFAULT_WINDOW_DAYS, MetricBaselineService.MAX_WINDOW_DAYS);
@@ -40,24 +40,24 @@ export class MetricBaselineService extends AnalyticsDatabaseService {
40
40
  : input.projectId);
41
41
  const metricNameStr = this.escapeString(input.metricName);
42
42
  const hour = Math.max(0, Math.min(167, Math.floor(input.hourOfWeek)));
43
- const serviceIdClause = input.serviceId
44
- ? `AND serviceId = '${this.escapeString(input.serviceId instanceof ObjectID
45
- ? input.serviceId.toString()
46
- : input.serviceId)}'`
43
+ const primaryEntityIdClause = input.primaryEntityId
44
+ ? `AND primaryEntityId = '${this.escapeString(input.primaryEntityId instanceof ObjectID
45
+ ? input.primaryEntityId.toString()
46
+ : input.primaryEntityId)}'`
47
47
  : "";
48
48
  const sql = `
49
49
  SELECT
50
- countMerge(sampleCountState) AS sampleCount,
51
- avgMerge(meanState) AS mean,
52
- stddevPopMerge(stddevState) AS stddev,
53
- quantileMerge(0.5)(medianState) AS median,
54
- quantileMerge(0.95)(p95State) AS p95,
55
- minMerge(minObsState) AS minObserved,
56
- maxMerge(maxObsState) AS maxObserved
50
+ countMerge(sampleCountState) AS sampleCount,
51
+ avgMerge(meanState) AS mean,
52
+ stddevPopMerge(stddevState) AS stddev,
53
+ quantileBFloat16Merge(0.5)(medianState) AS median,
54
+ quantileBFloat16Merge(0.95)(p95State) AS p95,
55
+ minMerge(minObsState) AS minObserved,
56
+ maxMerge(maxObsState) AS maxObserved
57
57
  FROM MetricBaselineHourly
58
58
  WHERE projectId = '${projectIdStr}'
59
59
  AND name = '${metricNameStr}'
60
- ${serviceIdClause}
60
+ ${primaryEntityIdClause}
61
61
  AND hourOfWeek = ${hour}
62
62
  AND day >= today() - INTERVAL ${windowDays} DAY
63
63
  `;
@@ -94,7 +94,7 @@ export class MetricBaselineService extends AnalyticsDatabaseService {
94
94
  }
95
95
  /**
96
96
  * Coverage probe: how much baseline data we have for a (metric,
97
- * service) pair. Used by the form UI to show "Learning — N days of
97
+ * entity) pair. Used by the form UI to show "Learning — N days of
98
98
  * data, baseline ready in M days".
99
99
  */
100
100
  async getCoverage(input) {
@@ -102,10 +102,10 @@ export class MetricBaselineService extends AnalyticsDatabaseService {
102
102
  ? input.projectId.toString()
103
103
  : input.projectId);
104
104
  const metricNameStr = this.escapeString(input.metricName);
105
- const serviceIdClause = input.serviceId
106
- ? `AND serviceId = '${this.escapeString(input.serviceId instanceof ObjectID
107
- ? input.serviceId.toString()
108
- : input.serviceId)}'`
105
+ const primaryEntityIdClause = input.primaryEntityId
106
+ ? `AND primaryEntityId = '${this.escapeString(input.primaryEntityId instanceof ObjectID
107
+ ? input.primaryEntityId.toString()
108
+ : input.primaryEntityId)}'`
109
109
  : "";
110
110
  const sql = `
111
111
  SELECT
@@ -114,7 +114,7 @@ export class MetricBaselineService extends AnalyticsDatabaseService {
114
114
  FROM MetricBaselineHourly
115
115
  WHERE projectId = '${projectIdStr}'
116
116
  AND name = '${metricNameStr}'
117
- ${serviceIdClause}
117
+ ${primaryEntityIdClause}
118
118
  AND day >= today() - INTERVAL ${MetricBaselineService.MAX_WINDOW_DAYS} DAY
119
119
  `;
120
120
  const resultSet = (await this.executeQuery(sql));
@@ -144,10 +144,10 @@ export class MetricBaselineService extends AnalyticsDatabaseService {
144
144
  ? input.projectId.toString()
145
145
  : input.projectId);
146
146
  const metricNameStr = this.escapeString(input.metricName);
147
- const serviceIdClause = input.serviceId
148
- ? `AND serviceId = '${this.escapeString(input.serviceId instanceof ObjectID
149
- ? input.serviceId.toString()
150
- : input.serviceId)}'`
147
+ const primaryEntityIdClause = input.primaryEntityId
148
+ ? `AND primaryEntityId = '${this.escapeString(input.primaryEntityId instanceof ObjectID
149
+ ? input.primaryEntityId.toString()
150
+ : input.primaryEntityId)}'`
151
151
  : "";
152
152
  const sql = `
153
153
  SELECT
@@ -158,7 +158,7 @@ export class MetricBaselineService extends AnalyticsDatabaseService {
158
158
  FROM MetricBaselineHourly
159
159
  WHERE projectId = '${projectIdStr}'
160
160
  AND name = '${metricNameStr}'
161
- ${serviceIdClause}
161
+ ${primaryEntityIdClause}
162
162
  AND day >= today() - INTERVAL ${windowDays} DAY
163
163
  GROUP BY hourOfWeek
164
164
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"MetricBaselineService.js","sourceRoot":"","sources":["../../../../Server/Services/MetricBaselineService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MetricBaselineService.js","sourceRoot":"","sources":["../../../../Server/Services/MetricBaselineService.ts"],"names":[],"mappings":"AAAA,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAElE,OAAO,oBAAoB,MAAM,mDAAmD,CAAC;AACrF,OAAO,MAAyB,MAAM,iBAAiB,CAAC;AACxD,OAAO,QAAQ,MAAM,sBAAsB,CAAC;AA0C5C;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,qBAAsB,SAAQ,wBAA8C;IACvF,YAAmB,kBAAmD;QACpE,KAAK,CAAC,EAAE,SAAS,EAAE,oBAAoB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC3E,CAAC;IAkCD;;;;;;;;;OASG;IACI,KAAK,CAAC,WAAW,CAAC,KAOxB;QACC,MAAM,UAAU,GAAW,IAAI,CAAC,GAAG,CACjC,KAAK,CAAC,UAAU,IAAI,qBAAqB,CAAC,mBAAmB,EAC7D,qBAAqB,CAAC,eAAe,CACtC,CAAC;QACF,MAAM,UAAU,GACd,KAAK,CAAC,UAAU,IAAI,qBAAqB,CAAC,mBAAmB,CAAC;QAEhE,MAAM,YAAY,GAAW,IAAI,CAAC,YAAY,CAC5C,KAAK,CAAC,SAAS,YAAY,QAAQ;YACjC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE;YAC5B,CAAC,CAAC,KAAK,CAAC,SAAS,CACpB,CAAC;QACF,MAAM,aAAa,GAAW,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAClE,MAAM,IAAI,GAAW,IAAI,CAAC,GAAG,CAC3B,CAAC,EACD,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAC5C,CAAC;QAEF,MAAM,qBAAqB,GAAW,KAAK,CAAC,eAAe;YACzD,CAAC,CAAC,0BAA0B,IAAI,CAAC,YAAY,CACzC,KAAK,CAAC,eAAe,YAAY,QAAQ;gBACvC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,QAAQ,EAAE;gBAClC,CAAC,CAAC,KAAK,CAAC,eAAe,CAC1B,GAAG;YACN,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,GAAG,GAAW;;;;;;;;;;2BAUG,YAAY;sBACjB,aAAa;UACzB,qBAAqB;2BACJ,IAAI;wCACS,UAAU;KAC7C,CAAC;QAEF,MAAM,SAAS,GAYX,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAYhC,CAAC;QAEF,MAAM,MAAM,GACV,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;QAEzB,MAAM,GAAG,GAAgD,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACxE,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,WAAW,GAAW,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC;QAC9D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;YACvD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GAAoB;YAC/B,WAAW;YACX,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAChC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACpC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACpC,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC9B,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC9C,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YAC9C,UAAU,EAAE,WAAW,IAAI,UAAU;YACrC,UAAU;YACV,UAAU,EAAE,IAAI;SACjB,CAAC;QAEF,MAAM,CAAC,KAAK,CAAC,mCAAmC,EAAE;YAChD,SAAS,EAAE,YAAY;YACvB,UAAU,EAAE,aAAa;YACzB,UAAU,EAAE,IAAI;YAChB,WAAW;YACX,UAAU,EAAE,OAAO,CAAC,UAAU;SACd,CAAC,CAAC;QAEpB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,WAAW,CAAC,KAIxB;QACC,MAAM,YAAY,GAAW,IAAI,CAAC,YAAY,CAC5C,KAAK,CAAC,SAAS,YAAY,QAAQ;YACjC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE;YAC5B,CAAC,CAAC,KAAK,CAAC,SAAS,CACpB,CAAC;QACF,MAAM,aAAa,GAAW,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAElE,MAAM,qBAAqB,GAAW,KAAK,CAAC,eAAe;YACzD,CAAC,CAAC,0BAA0B,IAAI,CAAC,YAAY,CACzC,KAAK,CAAC,eAAe,YAAY,QAAQ;gBACvC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,QAAQ,EAAE;gBAClC,CAAC,CAAC,KAAK,CAAC,eAAe,CAC1B,GAAG;YACN,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,GAAG,GAAW;;;;;2BAKG,YAAY;sBACjB,aAAa;UACzB,qBAAqB;wCACS,qBAAqB,CAAC,eAAe;KACxE,CAAC;QAEF,MAAM,SAAS,GAIX,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAIhC,CAAC;QAEF,MAAM,MAAM,GAER,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;QAC3B,MAAM,GAAG,GAEO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC/B,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,EAAE,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;QAC9C,CAAC;QAED,MAAM,YAAY,GAAW,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;QAChE,MAAM,eAAe,GAAS,IAAI,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/D,MAAM,SAAS,GAAgB,KAAK,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;YAC7D,CAAC,CAAC,IAAI;YACN,CAAC,CAAC,eAAe,CAAC;QACpB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC;IACrC,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,aAAa,CAAC,KAU1B;QACC,MAAM,UAAU,GAAW,IAAI,CAAC,GAAG,CACjC,KAAK,CAAC,UAAU,IAAI,qBAAqB,CAAC,mBAAmB,EAC7D,qBAAqB,CAAC,eAAe,CACtC,CAAC;QACF,MAAM,UAAU,GACd,KAAK,CAAC,UAAU,IAAI,qBAAqB,CAAC,mBAAmB,CAAC;QAEhE,MAAM,YAAY,GAAW,IAAI,CAAC,YAAY,CAC5C,KAAK,CAAC,SAAS,YAAY,QAAQ;YACjC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,EAAE;YAC5B,CAAC,CAAC,KAAK,CAAC,SAAS,CACpB,CAAC;QACF,MAAM,aAAa,GAAW,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAElE,MAAM,qBAAqB,GAAW,KAAK,CAAC,eAAe;YACzD,CAAC,CAAC,0BAA0B,IAAI,CAAC,YAAY,CACzC,KAAK,CAAC,eAAe,YAAY,QAAQ;gBACvC,CAAC,CAAC,KAAK,CAAC,eAAe,CAAC,QAAQ,EAAE;gBAClC,CAAC,CAAC,KAAK,CAAC,eAAe,CAC1B,GAAG;YACN,CAAC,CAAC,EAAE,CAAC;QAEP,MAAM,GAAG,GAAW;;;;;;;2BAOG,YAAY;sBACjB,aAAa;UACzB,qBAAqB;wCACS,UAAU;;KAE7C,CAAC;QAEF,MAAM,SAAS,GASX,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAShC,CAAC;QAEF,MAAM,MAAM,GAOR,MAAM,SAAS,CAAC,IAAI,EAAE,CAAC;QAE3B,MAAM,MAAM,GAAkD,IAAI,GAAG,EAAE,CAAC;QACxE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,EAAE,CAAC;YAC9B,MAAM,IAAI,GAAW,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACnD,MAAM,OAAO,GAAW,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;YACvD,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;gBACzB,SAAS;YACX,CAAC;YACD,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE;gBACf,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;gBAC7B,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC;aAClC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,GAAG,GAAqB,EAAE,CAAC;QACjC,MAAM,MAAM,GAAW,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,eAAe,CAAC,GAAG,KAAM,CAAC;QACnE,MAAM,OAAO,GAAW,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;QAClD,MAAM,KAAK,GAAW,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QAE9C,KAAK,IAAI,CAAC,GAAW,OAAO,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC;YACtD,MAAM,KAAK,GAAS,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,IAAI,GAAW,qBAAqB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACpE,MAAM,QAAQ,GACZ,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACnB,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,SAAS;YACX,CAAC;YACD,MAAM,IAAI,GAAW,KAAK,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC;YACxD,GAAG,CAAC,IAAI,CAAC;gBACP,IAAI,EAAE,KAAK;gBACX,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,YAAY,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI;gBAClC,WAAW,EAAE,QAAQ,CAAC,IAAI,GAAG,IAAI;aAClC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,iBAAiB,CAAC,IAAU;QACxC,6DAA6D;QAC7D,MAAM,KAAK,GAAW,IAAI,CAAC,MAAM,EAAE,CAAC;QACpC,MAAM,MAAM,GAAW,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC/C,MAAM,IAAI,GAAW,IAAI,CAAC,QAAQ,EAAE,CAAC;QACrC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;IAClC,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,mBAAmB,CAC/B,WAAsC;QAEtC,QAAQ,WAAW,EAAE,CAAC;YACpB,KAAK,KAAK;gBACR,OAAO,CAAC,CAAC;YACX,KAAK,MAAM;gBACT,OAAO,CAAC,CAAC;YACX,KAAK,QAAQ,CAAC;YACd;gBACE,OAAO,CAAC,CAAC;QACb,CAAC;IACH,CAAC;IAEO,QAAQ,CAAC,CAA8B;QAC7C,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;YAC1B,OAAO,CAAC,CAAC;QACX,CAAC;QACD,MAAM,CAAC,GAAW,MAAM,CAAC,CAAC,CAAC,CAAC;QAC5B,OAAO,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,CAAC;IAEO,YAAY,CAAC,CAAS;QAC5B,mEAAmE;QACnE,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACvD,CAAC;;AAhYD;;;GAGG;AACoB,yCAAmB,GAAW,CAAC,CAAC;AACvD;;;;;;GAMG;AACoB,yCAAmB,GAAW,EAAE,CAAC;AACxD;;;;;;;GAOG;AACoB,qCAAe,GAAW,EAAE,CAAC;AACpD;;;;;GAKG;AACoB,yCAAmB,GAA0B;IAClE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;CACf,CAAC;AAqWJ,eAAe,IAAI,qBAAqB,EAAE,CAAC"}
@@ -0,0 +1,28 @@
1
+ import AnalyticsDatabaseService from "./AnalyticsDatabaseService";
2
+ import MetricItemAggMV1mByHostV2 from "../../Models/AnalyticsModels/MetricItemAggMV1mByHostV2";
3
+ /**
4
+ * Read-side service for the `MetricItemAggMV1mByHostV2` MV target table —
5
+ * per-(host entity key, minute) pre-aggregated metric values for
6
+ * host-detail chart queries. Sister of `MetricItemAggMV1mService` (which
7
+ * is keyed by primaryEntityId rather than host).
8
+ *
9
+ * Today's reads go through `MetricService.tryBuildHostAggregateMVStatement`
10
+ * with raw SQL; this service exists so the model is registered with the
11
+ * analytics framework and the auto-create flow can manage the table + MV
12
+ * on app startup (idempotent with the RekeyMetricHostRollupToEntityKey
13
+ * migration, which also backfills from the dropped V1 table).
14
+ *
15
+ * AggregateFunction columns require `*Merge()` finalizers at read time —
16
+ * the generic typed `findBy` path is therefore not useful and should not
17
+ * be relied on against this table.
18
+ */
19
+ export class MetricItemAggMV1mByHostV2Service extends AnalyticsDatabaseService {
20
+ constructor(clickhouseDatabase) {
21
+ super({
22
+ modelType: MetricItemAggMV1mByHostV2,
23
+ database: clickhouseDatabase,
24
+ });
25
+ }
26
+ }
27
+ export default new MetricItemAggMV1mByHostV2Service();
28
+ //# sourceMappingURL=MetricItemAggMV1mByHostV2Service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MetricItemAggMV1mByHostV2Service.js","sourceRoot":"","sources":["../../../../Server/Services/MetricItemAggMV1mByHostV2Service.ts"],"names":[],"mappings":"AAAA,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAElE,OAAO,yBAAyB,MAAM,wDAAwD,CAAC;AAE/F;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,gCAAiC,SAAQ,wBAAmD;IACvG,YAAmB,kBAAmD;QACpE,KAAK,CAAC;YACJ,SAAS,EAAE,yBAAyB;YACpC,QAAQ,EAAE,kBAAkB;SAC7B,CAAC,CAAC;IACL,CAAC;CACF;AAED,eAAe,IAAI,gCAAgC,EAAE,CAAC"}
@@ -2,16 +2,19 @@ import AnalyticsDatabaseService from "./AnalyticsDatabaseService";
2
2
  import Metric from "../../Models/AnalyticsModels/Metric";
3
3
  import { AggregateUtil, } from "../Types/AnalyticsDatabase/AggregateBy";
4
4
  import { SQL } from "../Utils/AnalyticsDatabase/Statement";
5
+ import { getQuerySettings } from "../Utils/AnalyticsDatabase/QuerySettingsHelper";
5
6
  import AggregationType, { getPercentileLevel, isPercentileAggregation, } from "../../Types/BaseDatabase/AggregationType";
6
7
  import AnalyticsTableName from "../../Types/AnalyticsDatabase/AnalyticsTableName";
7
8
  import TableColumnType from "../../Types/AnalyticsDatabase/TableColumnType";
9
+ import { keyForHost } from "../../Utils/Telemetry/EntityKey";
10
+ import ObjectID from "../../Types/ObjectID";
8
11
  import logger from "../Utils/Logger";
9
12
  export class MetricService extends AnalyticsDatabaseService {
10
13
  constructor(clickhouseDatabase) {
11
14
  super({ modelType: Metric, database: clickhouseDatabase });
12
15
  }
13
16
  /*
14
- * Cascade deletes from `MetricItemV2` into the aggregating
17
+ * Cascade deletes from `MetricItemV3` into the aggregating
15
18
  * materialized-view target tables.
16
19
  *
17
20
  * `MetricItemAggMV1m` and `MetricBaselineHourly` are AggregatingMergeTree
@@ -24,12 +27,12 @@ export class MetricService extends AnalyticsDatabaseService {
24
27
  * See https://github.com/OneUptime/oneuptime/issues/2419.
25
28
  *
26
29
  * The cascade only runs when the caller scoped the delete by
27
- * `serviceId`. Global time-based purges (TTL cleanup) are handled by
28
- * each MV table's own `retentionDate TTL DELETE`, so cascading those
30
+ * `primaryEntityId`. Global time-based purges (TTL cleanup) are handled
31
+ * by each MV table's own `retentionDate TTL DELETE`, so cascading those
29
32
  * would pointlessly scan the whole MV. The per-host MV
30
- * (`MetricItemAggMV1mByHost`) is keyed by `hostIdentifier` rather than
31
- * `serviceId`, so a service-scoped delete has nothing to remove there —
32
- * skip it.
33
+ * (`MetricItemAggMV1mByHostV2`) is keyed by `hostEntityKey` rather than
34
+ * `primaryEntityId`, so an entity-scoped delete has nothing to remove
35
+ * there — skip it.
33
36
  */
34
37
  async deleteBy(deleteBy) {
35
38
  await super.deleteBy(deleteBy);
@@ -68,26 +71,26 @@ export class MetricService extends AnalyticsDatabaseService {
68
71
  }
69
72
  const queryRecord = query;
70
73
  /*
71
- * Cascade only when the delete is scoped by serviceId. The MV sort
72
- * key is (projectId, name, serviceId, bucketTime); without serviceId
73
- * the DELETE would scan a huge swath of unrelated rows and risk
74
- * removing data that belongs to other entities sharing the same
75
- * project.
74
+ * Cascade only when the delete is scoped by primaryEntityId. The MV
75
+ * sort key is (projectId, name, primaryEntityId, bucketTime); without
76
+ * primaryEntityId the DELETE would scan a huge swath of unrelated
77
+ * rows and risk removing data that belongs to other entities sharing
78
+ * the same project.
76
79
  */
77
- if (queryRecord["serviceId"] === undefined ||
78
- queryRecord["serviceId"] === null) {
80
+ if (queryRecord["primaryEntityId"] === undefined ||
81
+ queryRecord["primaryEntityId"] === null) {
79
82
  return null;
80
83
  }
81
84
  /*
82
85
  * Only project the keys the MV target tables actually expose.
83
- * `time`, `attributes`, `serviceType`, and the metric-payload
86
+ * `time`, `attributes`, `primaryEntityType`, and the metric-payload
84
87
  * columns don't exist on the MV schema and would either fail
85
88
  * where-statement generation or reference a missing column.
86
89
  */
87
90
  const allowedKeys = [
88
91
  "projectId",
89
92
  "name",
90
- "serviceId",
93
+ "primaryEntityId",
91
94
  ];
92
95
  const out = {};
93
96
  for (const key of allowedKeys) {
@@ -139,7 +142,7 @@ export class MetricService extends AnalyticsDatabaseService {
139
142
  * dominant attribute-filtered path and the per-host MV is
140
143
  * the only one that can serve them. If it doesn't apply
141
144
  * (no host filter, or extra attrs/groupBy), fall through
142
- * to the project/serviceId MV, then to the base table.
145
+ * to the project/primaryEntityId MV, then to the base table.
143
146
  */
144
147
  const hostMvStatement = this.tryBuildHostAggregateMVStatement(aggregateBy);
145
148
  if (hostMvStatement) {
@@ -262,6 +265,7 @@ export class MetricService extends AnalyticsDatabaseService {
262
265
  statement.append(`SELECT ${innerSelectClause}`);
263
266
  statement.append(` FROM ${databaseName}.${this.model.tableName} WHERE TRUE `);
264
267
  statement.append(whereStatement);
268
+ statement.append(this.getRetentionReadFilter());
265
269
  statement.append(SQL `) `);
266
270
  statement.append(SQL ` GROUP BY `).append(`${aggregationTimestampColumn}`);
267
271
  for (const key of groupByKeys) {
@@ -282,7 +286,13 @@ export class MetricService extends AnalyticsDatabaseService {
282
286
  * path bypasses the base method, so we mirror them here to keep
283
287
  * cluster behavior consistent across aggregation kinds.
284
288
  */
285
- statement.append(` SETTINGS optimize_aggregation_in_order=1, optimize_move_to_prewhere=1, max_threads=4`);
289
+ statement.append(getQuerySettings({
290
+ additionalSettings: {
291
+ optimize_aggregation_in_order: 1,
292
+ optimize_move_to_prewhere: 1,
293
+ max_threads: 4,
294
+ },
295
+ }));
286
296
  const columns = [
287
297
  aggregationColumn,
288
298
  aggregationTimestampColumn,
@@ -307,7 +317,7 @@ export class MetricService extends AnalyticsDatabaseService {
307
317
  * - The dashboard's effective bucket interval is >= 1 minute (the
308
318
  * MV stores 1-minute states; sub-minute requests need raw rows).
309
319
  * - The query carries no per-attribute filter or group-by, since
310
- * the MV is keyed by (projectId, name, serviceId, bucketTime)
320
+ * the MV is keyed by (projectId, name, primaryEntityId, bucketTime)
311
321
  * only — it does not preserve attribute breakdowns.
312
322
  * - The query carries no group-by other than the time bucket.
313
323
  *
@@ -354,6 +364,25 @@ export class MetricService extends AnalyticsDatabaseService {
354
364
  if (aggregateBy.groupBy && Object.keys(aggregateBy.groupBy).length > 0) {
355
365
  return null;
356
366
  }
367
+ /*
368
+ * The MV only carries projectId/name/primaryEntityId/bucketTime, so a
369
+ * query filtering on any other column (e.g. entityKeys membership,
370
+ * which exists only on the raw Metric table) must fall back to the
371
+ * raw-table path or the generated WHERE would reference a column the
372
+ * MV does not have.
373
+ */
374
+ const mvQueryableColumns = [
375
+ "projectId",
376
+ "name",
377
+ "primaryEntityId",
378
+ "time", // stripped below; bucketTime range is added explicitly
379
+ "attributes", // guarded empty above
380
+ ];
381
+ for (const queryKey of Object.keys(queryRecord)) {
382
+ if (!mvQueryableColumns.includes(queryKey)) {
383
+ return null;
384
+ }
385
+ }
357
386
  if (!this.database) {
358
387
  this.useDefaultDatabase();
359
388
  }
@@ -387,7 +416,7 @@ export class MetricService extends AnalyticsDatabaseService {
387
416
  const statement = SQL ``;
388
417
  statement.append(`SELECT ${mergedExpr} as value, date_trunc('${intervalLower}', toStartOfInterval(bucketTime, INTERVAL 1 ${intervalLower})) as time`);
389
418
  statement.append(SQL ` FROM ${databaseName}.MetricItemAggMV1m`);
390
- statement.append(` WHERE bucketTime >= toDateTime('${this.formatDateTime(aggregateBy.startTimestamp)}') AND bucketTime <= toDateTime('${this.formatDateTime(aggregateBy.endTimestamp)}')`);
419
+ statement.append(` WHERE bucketTime >= toDateTime('${this.formatDateTime(aggregateBy.startTimestamp)}') AND bucketTime <= toDateTime('${this.formatDateTime(aggregateBy.endTimestamp)}')${this.getRetentionReadFilter()}`);
391
420
  statement.append(SQL ` `).append(nonTimeWhere);
392
421
  statement.append(SQL ` GROUP BY `).append(`time`);
393
422
  statement.append(SQL ` ORDER BY `).append(sortStatement);
@@ -399,7 +428,13 @@ export class MetricService extends AnalyticsDatabaseService {
399
428
  value: Number(aggregateBy.skip),
400
429
  type: TableColumnType.Number,
401
430
  }} `);
402
- statement.append(` SETTINGS optimize_aggregation_in_order=1, optimize_move_to_prewhere=1, max_threads=4`);
431
+ statement.append(getQuerySettings({
432
+ additionalSettings: {
433
+ optimize_aggregation_in_order: 1,
434
+ optimize_move_to_prewhere: 1,
435
+ max_threads: 4,
436
+ },
437
+ }));
403
438
  logger.debug(`${this.model.tableName} MV Aggregate Statement`, {
404
439
  tableName: this.model.tableName,
405
440
  });
@@ -417,16 +452,20 @@ export class MetricService extends AnalyticsDatabaseService {
417
452
  /*
418
453
  * Per-host materialized-view fast path.
419
454
  *
420
- * Returns a statement that reads from MetricItemAggMV1mByHost
421
- * (created by AddMetricMinuteAggregateByHostMaterializedView)
422
- * when:
455
+ * Returns a statement that reads from MetricItemAggMV1mByHostV2
456
+ * (created by RekeyMetricHostRollupToEntityKey), which is keyed by
457
+ * the stable `hostEntityKey` — the incoming `resource.host.name`
458
+ * filter value is folded into that key server-side via
459
+ * EntityKey.keyForHost, so spelling drift (case/whitespace) in the
460
+ * reported hostname still lands on one rollup stream. Applies when:
423
461
  *
424
462
  * - The aggregation is Sum/Avg/Min/Max/Count over `value`.
425
463
  * - The only attribute filter is `resource.host.name` as a
426
464
  * bare-string equality (the dashboard's host detail page
427
- * pattern).
465
+ * pattern), and the query carries a `projectId` (the entity
466
+ * key is tenant-scoped by construction).
428
467
  * - The query carries no group-by other than the time
429
- * bucket — the MV is keyed by hostIdentifier and does not
468
+ * bucket — the MV is keyed by hostEntityKey and does not
430
469
  * preserve other attribute breakdowns.
431
470
  *
432
471
  * Returns `null` if any condition fails so the caller falls
@@ -477,10 +516,50 @@ export class MetricService extends AnalyticsDatabaseService {
477
516
  if (attrValue === undefined || attrValue === null) {
478
517
  return null;
479
518
  }
519
+ /*
520
+ * The MV only carries projectId/name/hostEntityKey/bucketTime. Any
521
+ * other query key (primaryEntityId, entityScope, entityKeys, ...)
522
+ * would compile to a WHERE over a column the MV does not have, so
523
+ * fall back to the raw table for those. Mirrors
524
+ * tryBuildMinuteAggregateMVStatement.
525
+ */
526
+ const mvQueryableColumns = [
527
+ "projectId",
528
+ "name",
529
+ "time", // stripped below; bucketTime range is added explicitly
530
+ "attributes", // rewritten below into the hostEntityKey predicate
531
+ ];
532
+ for (const queryKey of Object.keys(queryRecord)) {
533
+ if (!mvQueryableColumns.includes(queryKey)) {
534
+ return null;
535
+ }
536
+ }
480
537
  const hostIdentifier = typeof attrValue === "string" ? attrValue : "";
481
538
  if (!hostIdentifier) {
482
539
  return null;
483
540
  }
541
+ /*
542
+ * The entity key folds the tenant in (sha256(projectId|host|...)), so
543
+ * the MV row can only be located when the query is project-scoped.
544
+ * Dashboard reads always are; anything else falls back safely.
545
+ */
546
+ const projectIdValue = queryRecord["projectId"];
547
+ let projectId = "";
548
+ if (projectIdValue instanceof ObjectID) {
549
+ projectId = projectIdValue.toString();
550
+ }
551
+ else if (typeof projectIdValue === "string") {
552
+ projectId = projectIdValue;
553
+ }
554
+ if (!projectId) {
555
+ return null;
556
+ }
557
+ /*
558
+ * Same canonicalized key the ingest pipeline stamps into
559
+ * MetricItemV3.hostEntityKey (and the V2 MV groups by) — byte-equality
560
+ * is what makes this lookup correct, see Common/Utils/Telemetry/EntityKey.
561
+ */
562
+ const hostEntityKey = keyForHost(projectId, hostIdentifier);
484
563
  const interval = AggregateUtil.getAggregationInterval({
485
564
  startDate: aggregateBy.startTimestamp,
486
565
  endDate: aggregateBy.endTimestamp,
@@ -511,17 +590,17 @@ export class MetricService extends AnalyticsDatabaseService {
511
590
  * Strip both `time` (column doesn't exist on the MV; we
512
591
  * inject an explicit bucketTime range below) and
513
592
  * `attributes` (the attribute filter is now an explicit
514
- * `hostIdentifier =` predicate against an MV column).
593
+ * `hostEntityKey =` predicate against an MV column).
515
594
  */
516
595
  const filteredQuery = this.stripAttributesAndTimeFromQuery(aggregateBy.query);
517
596
  const nonTimeWhere = this.statementGenerator.toWhereStatement(filteredQuery);
518
597
  const sortStatement = this.statementGenerator.toSortStatement(aggregateBy.sort);
519
598
  const statement = SQL ``;
520
599
  statement.append(`SELECT ${mergedExpr} as value, date_trunc('${intervalLower}', toStartOfInterval(bucketTime, INTERVAL 1 ${intervalLower})) as time`);
521
- statement.append(SQL ` FROM ${databaseName}.MetricItemAggMV1mByHost`);
522
- statement.append(` WHERE bucketTime >= toDateTime('${this.formatDateTime(aggregateBy.startTimestamp)}') AND bucketTime <= toDateTime('${this.formatDateTime(aggregateBy.endTimestamp)}')`);
523
- statement.append(SQL ` AND hostIdentifier = ${{
524
- value: hostIdentifier,
600
+ statement.append(SQL ` FROM ${databaseName}.MetricItemAggMV1mByHostV2`);
601
+ statement.append(` WHERE bucketTime >= toDateTime('${this.formatDateTime(aggregateBy.startTimestamp)}') AND bucketTime <= toDateTime('${this.formatDateTime(aggregateBy.endTimestamp)}')${this.getRetentionReadFilter()}`);
602
+ statement.append(SQL ` AND hostEntityKey = ${{
603
+ value: hostEntityKey,
525
604
  type: TableColumnType.Text,
526
605
  }}`);
527
606
  statement.append(SQL ` `).append(nonTimeWhere);
@@ -535,7 +614,13 @@ export class MetricService extends AnalyticsDatabaseService {
535
614
  value: Number(aggregateBy.skip),
536
615
  type: TableColumnType.Number,
537
616
  }} `);
538
- statement.append(` SETTINGS optimize_aggregation_in_order=1, optimize_move_to_prewhere=1, max_threads=4`);
617
+ statement.append(getQuerySettings({
618
+ additionalSettings: {
619
+ optimize_aggregation_in_order: 1,
620
+ optimize_move_to_prewhere: 1,
621
+ max_threads: 4,
622
+ },
623
+ }));
539
624
  logger.debug(`${this.model.tableName} Host MV Aggregate Statement`, {
540
625
  tableName: this.model.tableName,
541
626
  });