@oneuptime/common 11.5.9 → 11.5.11

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 (379) hide show
  1. package/Models/AnalyticsModels/Index.ts +13 -0
  2. package/Models/AnalyticsModels/MetricItemAggMV1mByContainer.ts +178 -0
  3. package/Models/AnalyticsModels/MetricItemAggMV1mByK8sCluster.ts +179 -0
  4. package/Models/AnalyticsModels/MetricItemAggMV1mByService.ts +179 -0
  5. package/Models/AnalyticsModels/NetworkFlow.ts +397 -0
  6. package/Models/DatabaseModels/EnterpriseLicenseInstance.ts +18 -0
  7. package/Models/DatabaseModels/GlobalConfig.ts +36 -0
  8. package/Models/DatabaseModels/Index.ts +2 -0
  9. package/Models/DatabaseModels/MarketingConversion.ts +198 -0
  10. package/Models/DatabaseModels/MetricSavedView.ts +34 -0
  11. package/Models/DatabaseModels/MetricType.ts +74 -0
  12. package/Models/DatabaseModels/NetworkDevice.ts +332 -0
  13. package/Models/DatabaseModels/NetworkDeviceDiscoveryScan.ts +113 -0
  14. package/Models/DatabaseModels/NetworkInterface.ts +58 -0
  15. package/Models/DatabaseModels/Project.ts +37 -0
  16. package/Models/DatabaseModels/User.ts +37 -0
  17. package/Server/API/BaseAnalyticsAPI.ts +23 -0
  18. package/Server/API/EnterpriseLicenseAPI.ts +14 -0
  19. package/Server/EnvironmentConfig.ts +84 -0
  20. package/Server/Infrastructure/Postgres/SchemaMigrations/1784191414522-AddCounterSemanticsToMetricType.ts +38 -0
  21. package/Server/Infrastructure/Postgres/SchemaMigrations/1784191414600-AddViewTypeToMetricSavedView.ts +28 -0
  22. package/Server/Infrastructure/Postgres/SchemaMigrations/1784211212164-AddNetworkDeviceInventoryAndDiscoverySchedule.ts +108 -0
  23. package/Server/Infrastructure/Postgres/SchemaMigrations/1784218257664-AddEnterpriseLicenseNotificationColumns.ts +31 -0
  24. package/Server/Infrastructure/Postgres/SchemaMigrations/1784293516000-AddAttributionColumnsToUserAndProject.ts +29 -0
  25. package/Server/Infrastructure/Postgres/SchemaMigrations/1784298000000-AddMarketingConversionTable.ts +35 -0
  26. package/Server/Infrastructure/Postgres/SchemaMigrations/1784401962564-MigrationName.ts +101 -0
  27. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +14 -0
  28. package/Server/Services/AnalyticsDatabaseService.ts +70 -1
  29. package/Server/Services/IncidentService.ts +13 -0
  30. package/Server/Services/Index.ts +10 -0
  31. package/Server/Services/MarketingConversionService.ts +10 -0
  32. package/Server/Services/MetricItemAggMV1mByContainerService.ts +31 -0
  33. package/Server/Services/MetricItemAggMV1mByK8sClusterService.ts +31 -0
  34. package/Server/Services/MetricItemAggMV1mByServiceService.ts +31 -0
  35. package/Server/Services/MetricService.ts +970 -122
  36. package/Server/Services/MonitorService.ts +14 -0
  37. package/Server/Services/NetworkDeviceOwnerTeamService.ts +42 -0
  38. package/Server/Services/NetworkDeviceOwnerUserService.ts +106 -0
  39. package/Server/Services/NetworkFlowService.ts +11 -0
  40. package/Server/Services/OnCallDutyPolicyService.ts +11 -1
  41. package/Server/Services/ProjectService.ts +136 -0
  42. package/Server/Services/SpanService.ts +13 -9
  43. package/Server/Services/StatusPageService.ts +10 -0
  44. package/Server/Services/TeamMemberService.ts +11 -0
  45. package/Server/Services/UserService.ts +59 -0
  46. package/Server/Types/AnalyticsDatabase/AggregateBy.ts +37 -7
  47. package/Server/Utils/Attribution.ts +99 -0
  48. package/Server/Utils/Marketing/ConversionUploadProvider.ts +103 -0
  49. package/Server/Utils/Marketing/ConversionUploadProviders.ts +22 -0
  50. package/Server/Utils/Marketing/Providers/GoogleAds.ts +270 -0
  51. package/Server/Utils/Marketing/Providers/LinkedIn.ts +147 -0
  52. package/Server/Utils/Marketing/Providers/Meta.ts +148 -0
  53. package/Server/Utils/Marketing/Providers/MicrosoftAds.ts +196 -0
  54. package/Server/Utils/Marketing/Providers/Reddit.ts +178 -0
  55. package/Server/Utils/Monitor/MonitorAlert.ts +71 -7
  56. package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +31 -19
  57. package/Server/Utils/Monitor/MonitorIncident.ts +71 -7
  58. package/Server/Utils/Monitor/MonitorMetricUtil.ts +57 -0
  59. package/Server/Utils/Monitor/MonitorTemplateUtil.ts +94 -0
  60. package/Server/Utils/Monitor/NetworkDeviceHydrationUtil.ts +15 -0
  61. package/Server/Utils/Monitor/NetworkInventoryUtil.ts +125 -14
  62. package/Server/Utils/ProductAnalytics.ts +133 -0
  63. package/Server/Utils/Telemetry/Telemetry.ts +39 -0
  64. package/Server/Utils/Telemetry/TelemetryEntity.ts +21 -0
  65. package/Tests/Server/API/BaseAnalyticsAPI.test.ts +72 -0
  66. package/Tests/Server/Infrastructure/SemaphorePermit.test.ts +9 -1
  67. package/Tests/Server/Services/AnalyticsDatabaseService.test.ts +21 -2
  68. package/Tests/Server/Services/MetricEntityMVKeyParity.test.ts +173 -0
  69. package/Tests/Server/Services/MetricServiceAggregate.test.ts +1391 -0
  70. package/Tests/Server/Services/NetworkDeviceOwnerServices.test.ts +260 -0
  71. package/Tests/Server/Utils/Monitor/MonitorTemplateUtilNetworkDevice.test.ts +389 -0
  72. package/Tests/Server/Utils/Monitor/NetworkInventoryUtil.test.ts +764 -0
  73. package/Tests/Types/BaseDatabase/AggregationIntervalUtil.test.ts +111 -2
  74. package/Tests/Types/Database/EndsWith.test.ts +64 -0
  75. package/Tests/Types/Database/GreaterThan.test.ts +62 -0
  76. package/Tests/Types/Database/GreaterThanOrEqual.test.ts +65 -0
  77. package/Tests/Types/Database/GreaterThanOrNull.test.ts +63 -0
  78. package/Tests/Types/Database/Includes.test.ts +65 -0
  79. package/Tests/Types/Database/IncludesAll.test.ts +65 -0
  80. package/Tests/Types/Database/IncludesNone.test.ts +65 -0
  81. package/Tests/Types/Database/IsNull.test.ts +44 -0
  82. package/Tests/Types/Database/LessThan.test.ts +62 -0
  83. package/Tests/Types/Database/LessThanOrEqual.test.ts +62 -0
  84. package/Tests/Types/Database/LessThanOrNull.test.ts +62 -0
  85. package/Tests/Types/Database/MultiSearch.test.ts +81 -0
  86. package/Tests/Types/Database/NotContains.test.ts +64 -0
  87. package/Tests/Types/Database/NotNull.test.ts +44 -0
  88. package/Tests/Types/Database/StartsWith.test.ts +64 -0
  89. package/Tests/Types/Monitor/MonitorStepSqlMonitor.test.ts +83 -1
  90. package/Tests/Types/Monitor/SnmpV3EnumParsing.test.ts +247 -0
  91. package/Tests/Types/Monitor/SnmpVendorTemplate.test.ts +263 -0
  92. package/Tests/UI/Components/XAxis.test.ts +5 -3
  93. package/Tests/Utils/EnterpriseLicenseUsage.test.ts +76 -0
  94. package/Tests/Utils/Metrics/MetricExplorerUrl.test.ts +622 -0
  95. package/Tests/Utils/Metrics/MetricFormulaEvaluator.test.ts +474 -0
  96. package/Tests/Utils/Telemetry/HeartbeatAvailability.test.ts +52 -4
  97. package/Types/AnalyticsDatabase/AnalyticsTableName.ts +11 -0
  98. package/Types/BaseDatabase/AggregateBy.ts +31 -2
  99. package/Types/BaseDatabase/AggregatedResult.ts +22 -0
  100. package/Types/BaseDatabase/AggregationInterval.ts +11 -0
  101. package/Types/BaseDatabase/AggregationIntervalUtil.ts +30 -5
  102. package/Types/Dashboard/DashboardComponents/DashboardTraceChartComponent.ts +16 -0
  103. package/Types/Email/EmailTemplateType.ts +3 -0
  104. package/Types/Marketing/MarketingConversion.ts +11 -0
  105. package/Types/Metrics/MetricQueryConfigData.ts +21 -0
  106. package/Types/Metrics/MetricQueryData.ts +8 -0
  107. package/Types/Metrics/MetricViewData.ts +8 -0
  108. package/Types/Monitor/MonitorMetricType.ts +8 -0
  109. package/Types/Monitor/MonitorStep.ts +9 -0
  110. package/Types/Monitor/MonitorStepSqlMonitor.ts +12 -0
  111. package/Types/Monitor/MonitorType.ts +2 -1
  112. package/Types/Monitor/SSLMonitor/SslMonitorResponse.ts +17 -12
  113. package/Types/Monitor/SnmpMonitor/CdpNeighbor.ts +13 -0
  114. package/Types/Monitor/SnmpMonitor/NetworkTopology.ts +37 -3
  115. package/Types/Monitor/SnmpMonitor/SnmpAuthProtocol.ts +46 -0
  116. package/Types/Monitor/SnmpMonitor/SnmpEntityInfo.ts +15 -0
  117. package/Types/Monitor/SnmpMonitor/SnmpInterface.ts +8 -0
  118. package/Types/Monitor/SnmpMonitor/SnmpMonitorResponse.ts +17 -8
  119. package/Types/Monitor/SnmpMonitor/SnmpPrivProtocol.ts +53 -0
  120. package/Types/Monitor/SnmpMonitor/SnmpSecurityLevel.ts +43 -0
  121. package/Types/Monitor/SnmpMonitor/SnmpSystemInfo.ts +16 -0
  122. package/Types/Monitor/SnmpMonitor/SnmpVendorTemplate.ts +119 -3
  123. package/Types/NetFlow/NetworkFlowRecord.ts +25 -0
  124. package/Types/Syslog/SyslogMessage.ts +18 -0
  125. package/Types/Telemetry/TelemetrySavedViewState.ts +9 -0
  126. package/Types/Telemetry/TelemetrySavedViewType.ts +12 -0
  127. package/UI/Components/Charts/Area/AreaChart.tsx +51 -0
  128. package/UI/Components/Charts/Bar/BarChart.tsx +51 -1
  129. package/UI/Components/Charts/ChartGroup/ChartGroup.tsx +97 -26
  130. package/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.tsx +328 -1
  131. package/UI/Components/Charts/ChartLibrary/BarChart/BarChart.tsx +115 -0
  132. package/UI/Components/Charts/ChartLibrary/LineChart/LineChart.tsx +328 -1
  133. package/UI/Components/Charts/ChartLibrary/Types/ChartDataPoint.ts +7 -0
  134. package/UI/Components/Charts/ChartLibrary/Types/FormattedReferenceRegion.ts +15 -0
  135. package/UI/Components/Charts/ChartLibrary/Types/FormattedTimeReferenceLine.ts +13 -0
  136. package/UI/Components/Charts/Line/LineChart.tsx +51 -0
  137. package/UI/Components/Charts/Types/ReferenceRegionProps.ts +12 -0
  138. package/UI/Components/Charts/Types/TimeReferenceLineProps.ts +12 -0
  139. package/UI/Components/Charts/Types/XAxis/XAxisPrecision.ts +1 -0
  140. package/UI/Components/Charts/Utils/DataPoint.ts +0 -0
  141. package/UI/Components/Charts/Utils/TimeAnnotation.ts +169 -0
  142. package/UI/Components/Charts/Utils/XAxis.ts +28 -4
  143. package/UI/Components/Icon/Icon.tsx +33 -13
  144. package/UI/Components/Markdown.tsx/MarkdownViewer.tsx +9 -0
  145. package/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.ts +67 -0
  146. package/UI/Components/Page/ModelPage.tsx +6 -1
  147. package/UI/Components/TelemetryViewer/components/SavedViewsDropdown.tsx +33 -4
  148. package/UI/Styles/Theme.css +10 -0
  149. package/UI/Utils/User.ts +41 -2
  150. package/Utils/Analytics.ts +8 -6
  151. package/Utils/EnterpriseLicense/EnterpriseLicenseUsage.ts +74 -0
  152. package/Utils/Metrics/MetricExplorerUrl.ts +771 -0
  153. package/Utils/Metrics/MetricFormulaEvaluator.ts +410 -46
  154. package/Utils/Monitor/NetworkTopologyUtil.ts +261 -49
  155. package/Utils/ValueFormatter.ts +22 -1
  156. package/build/dist/Models/AnalyticsModels/Index.js +13 -0
  157. package/build/dist/Models/AnalyticsModels/Index.js.map +1 -1
  158. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByContainer.js +159 -0
  159. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByContainer.js.map +1 -0
  160. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByK8sCluster.js +158 -0
  161. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByK8sCluster.js.map +1 -0
  162. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByService.js +160 -0
  163. package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByService.js.map +1 -0
  164. package/build/dist/Models/AnalyticsModels/NetworkFlow.js +351 -0
  165. package/build/dist/Models/AnalyticsModels/NetworkFlow.js.map +1 -0
  166. package/build/dist/Models/DatabaseModels/EnterpriseLicenseInstance.js +19 -0
  167. package/build/dist/Models/DatabaseModels/EnterpriseLicenseInstance.js.map +1 -1
  168. package/build/dist/Models/DatabaseModels/GlobalConfig.js +38 -0
  169. package/build/dist/Models/DatabaseModels/GlobalConfig.js.map +1 -1
  170. package/build/dist/Models/DatabaseModels/Index.js +2 -0
  171. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  172. package/build/dist/Models/DatabaseModels/MarketingConversion.js +219 -0
  173. package/build/dist/Models/DatabaseModels/MarketingConversion.js.map +1 -0
  174. package/build/dist/Models/DatabaseModels/MetricSavedView.js +35 -0
  175. package/build/dist/Models/DatabaseModels/MetricSavedView.js.map +1 -1
  176. package/build/dist/Models/DatabaseModels/MetricType.js +76 -0
  177. package/build/dist/Models/DatabaseModels/MetricType.js.map +1 -1
  178. package/build/dist/Models/DatabaseModels/NetworkDevice.js +341 -0
  179. package/build/dist/Models/DatabaseModels/NetworkDevice.js.map +1 -1
  180. package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js +116 -0
  181. package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js.map +1 -1
  182. package/build/dist/Models/DatabaseModels/NetworkInterface.js +60 -0
  183. package/build/dist/Models/DatabaseModels/NetworkInterface.js.map +1 -1
  184. package/build/dist/Models/DatabaseModels/Project.js +38 -0
  185. package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
  186. package/build/dist/Models/DatabaseModels/User.js +38 -0
  187. package/build/dist/Models/DatabaseModels/User.js.map +1 -1
  188. package/build/dist/Server/API/BaseAnalyticsAPI.js +19 -0
  189. package/build/dist/Server/API/BaseAnalyticsAPI.js.map +1 -1
  190. package/build/dist/Server/API/EnterpriseLicenseAPI.js +8 -0
  191. package/build/dist/Server/API/EnterpriseLicenseAPI.js.map +1 -1
  192. package/build/dist/Server/EnvironmentConfig.js +51 -0
  193. package/build/dist/Server/EnvironmentConfig.js.map +1 -1
  194. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784191414522-AddCounterSemanticsToMetricType.js +27 -0
  195. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784191414522-AddCounterSemanticsToMetricType.js.map +1 -0
  196. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784191414600-AddViewTypeToMetricSavedView.js +21 -0
  197. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784191414600-AddViewTypeToMetricSavedView.js.map +1 -0
  198. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784211212164-AddNetworkDeviceInventoryAndDiscoverySchedule.js +47 -0
  199. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784211212164-AddNetworkDeviceInventoryAndDiscoverySchedule.js.map +1 -0
  200. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784218257664-AddEnterpriseLicenseNotificationColumns.js +16 -0
  201. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784218257664-AddEnterpriseLicenseNotificationColumns.js.map +1 -0
  202. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784293516000-AddAttributionColumnsToUserAndProject.js +18 -0
  203. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784293516000-AddAttributionColumnsToUserAndProject.js.map +1 -0
  204. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784298000000-AddMarketingConversionTable.js +20 -0
  205. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784298000000-AddMarketingConversionTable.js.map +1 -0
  206. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784401962564-MigrationName.js +40 -0
  207. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784401962564-MigrationName.js.map +1 -0
  208. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +14 -0
  209. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  210. package/build/dist/Server/Services/AnalyticsDatabaseService.js +58 -4
  211. package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
  212. package/build/dist/Server/Services/IncidentService.js +12 -0
  213. package/build/dist/Server/Services/IncidentService.js.map +1 -1
  214. package/build/dist/Server/Services/Index.js +10 -0
  215. package/build/dist/Server/Services/Index.js.map +1 -1
  216. package/build/dist/Server/Services/MarketingConversionService.js +9 -0
  217. package/build/dist/Server/Services/MarketingConversionService.js.map +1 -0
  218. package/build/dist/Server/Services/MetricItemAggMV1mByContainerService.js +29 -0
  219. package/build/dist/Server/Services/MetricItemAggMV1mByContainerService.js.map +1 -0
  220. package/build/dist/Server/Services/MetricItemAggMV1mByK8sClusterService.js +29 -0
  221. package/build/dist/Server/Services/MetricItemAggMV1mByK8sClusterService.js.map +1 -0
  222. package/build/dist/Server/Services/MetricItemAggMV1mByServiceService.js +29 -0
  223. package/build/dist/Server/Services/MetricItemAggMV1mByServiceService.js.map +1 -0
  224. package/build/dist/Server/Services/MetricService.js +761 -125
  225. package/build/dist/Server/Services/MetricService.js.map +1 -1
  226. package/build/dist/Server/Services/MonitorService.js +18 -5
  227. package/build/dist/Server/Services/MonitorService.js.map +1 -1
  228. package/build/dist/Server/Services/NetworkDeviceOwnerTeamService.js +44 -0
  229. package/build/dist/Server/Services/NetworkDeviceOwnerTeamService.js.map +1 -1
  230. package/build/dist/Server/Services/NetworkDeviceOwnerUserService.js +88 -0
  231. package/build/dist/Server/Services/NetworkDeviceOwnerUserService.js.map +1 -1
  232. package/build/dist/Server/Services/NetworkFlowService.js +9 -0
  233. package/build/dist/Server/Services/NetworkFlowService.js.map +1 -0
  234. package/build/dist/Server/Services/OnCallDutyPolicyService.js +15 -6
  235. package/build/dist/Server/Services/OnCallDutyPolicyService.js.map +1 -1
  236. package/build/dist/Server/Services/ProjectService.js +107 -6
  237. package/build/dist/Server/Services/ProjectService.js.map +1 -1
  238. package/build/dist/Server/Services/SpanService.js +8 -6
  239. package/build/dist/Server/Services/SpanService.js.map +1 -1
  240. package/build/dist/Server/Services/StatusPageService.js +10 -0
  241. package/build/dist/Server/Services/StatusPageService.js.map +1 -1
  242. package/build/dist/Server/Services/TeamMemberService.js +11 -0
  243. package/build/dist/Server/Services/TeamMemberService.js.map +1 -1
  244. package/build/dist/Server/Services/UserService.js +52 -0
  245. package/build/dist/Server/Services/UserService.js.map +1 -1
  246. package/build/dist/Server/Types/AnalyticsDatabase/AggregateBy.js +33 -7
  247. package/build/dist/Server/Types/AnalyticsDatabase/AggregateBy.js.map +1 -1
  248. package/build/dist/Server/Utils/Attribution.js +74 -0
  249. package/build/dist/Server/Utils/Attribution.js.map +1 -0
  250. package/build/dist/Server/Utils/Marketing/ConversionUploadProvider.js +40 -0
  251. package/build/dist/Server/Utils/Marketing/ConversionUploadProvider.js.map +1 -0
  252. package/build/dist/Server/Utils/Marketing/ConversionUploadProviders.js +20 -0
  253. package/build/dist/Server/Utils/Marketing/ConversionUploadProviders.js.map +1 -0
  254. package/build/dist/Server/Utils/Marketing/Providers/GoogleAds.js +177 -0
  255. package/build/dist/Server/Utils/Marketing/Providers/GoogleAds.js.map +1 -0
  256. package/build/dist/Server/Utils/Marketing/Providers/LinkedIn.js +113 -0
  257. package/build/dist/Server/Utils/Marketing/Providers/LinkedIn.js.map +1 -0
  258. package/build/dist/Server/Utils/Marketing/Providers/Meta.js +109 -0
  259. package/build/dist/Server/Utils/Marketing/Providers/Meta.js.map +1 -0
  260. package/build/dist/Server/Utils/Marketing/Providers/MicrosoftAds.js +130 -0
  261. package/build/dist/Server/Utils/Marketing/Providers/MicrosoftAds.js.map +1 -0
  262. package/build/dist/Server/Utils/Marketing/Providers/Reddit.js +126 -0
  263. package/build/dist/Server/Utils/Marketing/Providers/Reddit.js.map +1 -0
  264. package/build/dist/Server/Utils/Monitor/MonitorAlert.js +53 -9
  265. package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
  266. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +21 -10
  267. package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
  268. package/build/dist/Server/Utils/Monitor/MonitorIncident.js +54 -11
  269. package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
  270. package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js +43 -3
  271. package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js.map +1 -1
  272. package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js +68 -0
  273. package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js.map +1 -1
  274. package/build/dist/Server/Utils/Monitor/NetworkDeviceHydrationUtil.js +15 -0
  275. package/build/dist/Server/Utils/Monitor/NetworkDeviceHydrationUtil.js.map +1 -1
  276. package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js +100 -15
  277. package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js.map +1 -1
  278. package/build/dist/Server/Utils/ProductAnalytics.js +111 -0
  279. package/build/dist/Server/Utils/ProductAnalytics.js.map +1 -0
  280. package/build/dist/Server/Utils/Telemetry/Telemetry.js +32 -5
  281. package/build/dist/Server/Utils/Telemetry/Telemetry.js.map +1 -1
  282. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js +17 -0
  283. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js.map +1 -1
  284. package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js +11 -0
  285. package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js.map +1 -1
  286. package/build/dist/Types/BaseDatabase/AggregationInterval.js +11 -0
  287. package/build/dist/Types/BaseDatabase/AggregationInterval.js.map +1 -1
  288. package/build/dist/Types/BaseDatabase/AggregationIntervalUtil.js +33 -5
  289. package/build/dist/Types/BaseDatabase/AggregationIntervalUtil.js.map +1 -1
  290. package/build/dist/Types/Email/EmailTemplateType.js +2 -0
  291. package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
  292. package/build/dist/Types/Marketing/MarketingConversion.js +13 -0
  293. package/build/dist/Types/Marketing/MarketingConversion.js.map +1 -0
  294. package/build/dist/Types/Monitor/MonitorMetricType.js +7 -0
  295. package/build/dist/Types/Monitor/MonitorMetricType.js.map +1 -1
  296. package/build/dist/Types/Monitor/MonitorStep.js +6 -0
  297. package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
  298. package/build/dist/Types/Monitor/MonitorStepSqlMonitor.js +3 -0
  299. package/build/dist/Types/Monitor/MonitorStepSqlMonitor.js.map +1 -1
  300. package/build/dist/Types/Monitor/MonitorType.js +2 -1
  301. package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
  302. package/build/dist/Types/Monitor/SnmpMonitor/CdpNeighbor.js +2 -0
  303. package/build/dist/Types/Monitor/SnmpMonitor/CdpNeighbor.js.map +1 -0
  304. package/build/dist/Types/Monitor/SnmpMonitor/SnmpAuthProtocol.js +41 -0
  305. package/build/dist/Types/Monitor/SnmpMonitor/SnmpAuthProtocol.js.map +1 -1
  306. package/build/dist/Types/Monitor/SnmpMonitor/SnmpEntityInfo.js +2 -0
  307. package/build/dist/Types/Monitor/SnmpMonitor/SnmpEntityInfo.js.map +1 -0
  308. package/build/dist/Types/Monitor/SnmpMonitor/SnmpPrivProtocol.js +48 -0
  309. package/build/dist/Types/Monitor/SnmpMonitor/SnmpPrivProtocol.js.map +1 -1
  310. package/build/dist/Types/Monitor/SnmpMonitor/SnmpSecurityLevel.js +38 -0
  311. package/build/dist/Types/Monitor/SnmpMonitor/SnmpSecurityLevel.js.map +1 -1
  312. package/build/dist/Types/Monitor/SnmpMonitor/SnmpSystemInfo.js +2 -0
  313. package/build/dist/Types/Monitor/SnmpMonitor/SnmpSystemInfo.js.map +1 -0
  314. package/build/dist/Types/Monitor/SnmpMonitor/SnmpVendorTemplate.js +96 -3
  315. package/build/dist/Types/Monitor/SnmpMonitor/SnmpVendorTemplate.js.map +1 -1
  316. package/build/dist/Types/NetFlow/NetworkFlowRecord.js +2 -0
  317. package/build/dist/Types/NetFlow/NetworkFlowRecord.js.map +1 -0
  318. package/build/dist/Types/Syslog/SyslogMessage.js +2 -0
  319. package/build/dist/Types/Syslog/SyslogMessage.js.map +1 -0
  320. package/build/dist/Types/Telemetry/TelemetrySavedViewState.js +0 -7
  321. package/build/dist/Types/Telemetry/TelemetrySavedViewState.js.map +1 -1
  322. package/build/dist/Types/Telemetry/TelemetrySavedViewType.js +13 -0
  323. package/build/dist/Types/Telemetry/TelemetrySavedViewType.js.map +1 -0
  324. package/build/dist/UI/Components/Charts/Area/AreaChart.js +25 -1
  325. package/build/dist/UI/Components/Charts/Area/AreaChart.js.map +1 -1
  326. package/build/dist/UI/Components/Charts/Bar/BarChart.js +26 -2
  327. package/build/dist/UI/Components/Charts/Bar/BarChart.js.map +1 -1
  328. package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js +36 -12
  329. package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js.map +1 -1
  330. package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js +208 -6
  331. package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js.map +1 -1
  332. package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js +52 -3
  333. package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js.map +1 -1
  334. package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js +208 -6
  335. package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js.map +1 -1
  336. package/build/dist/UI/Components/Charts/ChartLibrary/Types/ChartDataPoint.js +6 -1
  337. package/build/dist/UI/Components/Charts/ChartLibrary/Types/ChartDataPoint.js.map +1 -1
  338. package/build/dist/UI/Components/Charts/ChartLibrary/Types/FormattedReferenceRegion.js +2 -0
  339. package/build/dist/UI/Components/Charts/ChartLibrary/Types/FormattedReferenceRegion.js.map +1 -0
  340. package/build/dist/UI/Components/Charts/ChartLibrary/Types/FormattedTimeReferenceLine.js +2 -0
  341. package/build/dist/UI/Components/Charts/ChartLibrary/Types/FormattedTimeReferenceLine.js.map +1 -0
  342. package/build/dist/UI/Components/Charts/Line/LineChart.js +25 -1
  343. package/build/dist/UI/Components/Charts/Line/LineChart.js.map +1 -1
  344. package/build/dist/UI/Components/Charts/Types/ReferenceRegionProps.js +2 -0
  345. package/build/dist/UI/Components/Charts/Types/ReferenceRegionProps.js.map +1 -0
  346. package/build/dist/UI/Components/Charts/Types/TimeReferenceLineProps.js +2 -0
  347. package/build/dist/UI/Components/Charts/Types/TimeReferenceLineProps.js.map +1 -0
  348. package/build/dist/UI/Components/Charts/Types/XAxis/XAxisPrecision.js +1 -0
  349. package/build/dist/UI/Components/Charts/Types/XAxis/XAxisPrecision.js.map +1 -1
  350. package/build/dist/UI/Components/Charts/Utils/DataPoint.js +0 -0
  351. package/build/dist/UI/Components/Charts/Utils/DataPoint.js.map +1 -1
  352. package/build/dist/UI/Components/Charts/Utils/TimeAnnotation.js +121 -0
  353. package/build/dist/UI/Components/Charts/Utils/TimeAnnotation.js.map +1 -0
  354. package/build/dist/UI/Components/Charts/Utils/XAxis.js +27 -4
  355. package/build/dist/UI/Components/Charts/Utils/XAxis.js.map +1 -1
  356. package/build/dist/UI/Components/Icon/Icon.js +15 -8
  357. package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
  358. package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js.map +1 -1
  359. package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js +58 -0
  360. package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js.map +1 -1
  361. package/build/dist/UI/Components/Page/ModelPage.js +7 -1
  362. package/build/dist/UI/Components/Page/ModelPage.js.map +1 -1
  363. package/build/dist/UI/Components/TelemetryViewer/components/SavedViewsDropdown.js +10 -4
  364. package/build/dist/UI/Components/TelemetryViewer/components/SavedViewsDropdown.js.map +1 -1
  365. package/build/dist/UI/Utils/User.js +35 -2
  366. package/build/dist/UI/Utils/User.js.map +1 -1
  367. package/build/dist/Utils/Analytics.js +8 -5
  368. package/build/dist/Utils/Analytics.js.map +1 -1
  369. package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseUsage.js +57 -0
  370. package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseUsage.js.map +1 -1
  371. package/build/dist/Utils/Metrics/MetricExplorerUrl.js +418 -0
  372. package/build/dist/Utils/Metrics/MetricExplorerUrl.js.map +1 -0
  373. package/build/dist/Utils/Metrics/MetricFormulaEvaluator.js +296 -37
  374. package/build/dist/Utils/Metrics/MetricFormulaEvaluator.js.map +1 -1
  375. package/build/dist/Utils/Monitor/NetworkTopologyUtil.js +176 -40
  376. package/build/dist/Utils/Monitor/NetworkTopologyUtil.js.map +1 -1
  377. package/build/dist/Utils/ValueFormatter.js +20 -1
  378. package/build/dist/Utils/ValueFormatter.js.map +1 -1
  379. package/package.json +4 -3
@@ -29,7 +29,10 @@ import Select from "../Types/AnalyticsDatabase/Select";
29
29
  import UpdateBy from "../Types/AnalyticsDatabase/UpdateBy";
30
30
  import { SQL, Statement } from "../Utils/AnalyticsDatabase/Statement";
31
31
  import StatementGenerator from "../Utils/AnalyticsDatabase/StatementGenerator";
32
- import { getQuerySettings } from "../Utils/AnalyticsDatabase/QuerySettingsHelper";
32
+ import {
33
+ getQuerySettings,
34
+ TimeoutOverflowMode,
35
+ } from "../Utils/AnalyticsDatabase/QuerySettingsHelper";
33
36
  import {
34
37
  getStorageTableName,
35
38
  onClusterClause,
@@ -892,8 +895,47 @@ export default class AnalyticsDatabaseService<
892
895
  aggregatedItems.push(aggregatedModel);
893
896
  }
894
897
 
898
+ /*
899
+ * Top-K statements (see MetricService) carry the pre-trim group
900
+ * count as a constant `__total_groups` column on every row; lift
901
+ * it off the first row into result metadata. The per-row copy
902
+ * loop above only projects timestamp/value/group-by columns, so
903
+ * the helper column never reaches the rows themselves.
904
+ */
905
+ let totalGroups: number | undefined = undefined;
906
+ const firstItem: JSONObject | undefined = items[0];
907
+ if (firstItem && firstItem["__total_groups"] !== undefined) {
908
+ const parsedTotalGroups: number = Number(firstItem["__total_groups"]);
909
+ if (Number.isFinite(parsedTotalGroups)) {
910
+ totalGroups = parsedTotalGroups;
911
+ }
912
+ }
913
+
914
+ /*
915
+ * Truncation detection. Row-count == LIMIT is a heuristic (an
916
+ * exactly-full window reads as truncated), but a false positive
917
+ * only over-warns; the silent-data-loss case it exists to catch
918
+ * (groups × buckets > limit dropping the oldest buckets) is
919
+ * always flagged. Top-K truncation is exact: the ranking phase
920
+ * counted every matching group.
921
+ */
922
+ const appliedLimit: number = Number(aggregateBy.limit);
923
+ let truncated: boolean =
924
+ Number.isFinite(appliedLimit) &&
925
+ appliedLimit > 0 &&
926
+ items.length >= appliedLimit;
927
+ if (
928
+ aggregateBy.topK &&
929
+ totalGroups !== undefined &&
930
+ totalGroups > aggregateBy.topK.count
931
+ ) {
932
+ truncated = true;
933
+ }
934
+
895
935
  return {
896
936
  data: aggregatedItems,
937
+ ...(totalGroups !== undefined ? { totalGroups } : {}),
938
+ truncated,
897
939
  };
898
940
  } catch (error) {
899
941
  await this.onFindError(error as Exception);
@@ -1194,6 +1236,24 @@ export default class AnalyticsDatabaseService<
1194
1236
  return statement;
1195
1237
  }
1196
1238
 
1239
+ /**
1240
+ * The timeout_overflow_mode an aggregate statement should carry.
1241
+ * Callers that render charts keep the 'break' default (partial
1242
+ * buckets are acceptable there); callers that ALERT on the result —
1243
+ * the metric-monitor worker — pass 'throw' so a timed-out evaluation
1244
+ * fails loudly instead of silently scoring partial data.
1245
+ *
1246
+ * Allow-listed, never passed through: aggregateBy is deserialized
1247
+ * wholesale from API clients and this setting is emitted into SQL as
1248
+ * a trusted literal (see QuerySettingsHelper), so anything other than
1249
+ * the exact string "throw" degrades to the 'break' default.
1250
+ */
1251
+ protected getTimeoutOverflowMode(
1252
+ aggregateBy: AggregateBy<TBaseModel>,
1253
+ ): TimeoutOverflowMode {
1254
+ return aggregateBy.timeoutOverflowMode === "throw" ? "throw" : "break";
1255
+ }
1256
+
1197
1257
  public toAggregateStatement(aggregateBy: AggregateBy<TBaseModel>): {
1198
1258
  statement: Statement;
1199
1259
  columns: Array<string>;
@@ -1306,6 +1366,13 @@ export default class AnalyticsDatabaseService<
1306
1366
  /*
1307
1367
  * Aggregation read-path settings.
1308
1368
  *
1369
+ * - max_execution_time=45: cap aggregate runtime below the
1370
+ * ClickHouse client's 58s request_timeout, same as the count/find
1371
+ * statements — a wide-window aggregate over a large table would
1372
+ * otherwise run until the HTTP client disconnects. The overflow
1373
+ * mode defaults to 'break' (partial buckets are acceptable for
1374
+ * chart rendering) but alerting callers opt into 'throw' via
1375
+ * aggregateBy.timeoutOverflowMode — see getTimeoutOverflowMode.
1309
1376
  * - optimize_aggregation_in_order: when GROUP BY is a prefix of the
1310
1377
  * sort key (we always group by a time bucket and the time column
1311
1378
  * is at the tail of every analytics primary key), ClickHouse can
@@ -1322,6 +1389,8 @@ export default class AnalyticsDatabaseService<
1322
1389
  */
1323
1390
  statement.append(
1324
1391
  getQuerySettings({
1392
+ maxExecutionTimeInSeconds: 45,
1393
+ timeoutOverflowMode: this.getTimeoutOverflowMode(aggregateBy),
1325
1394
  additionalSettings: {
1326
1395
  optimize_aggregation_in_order: 1,
1327
1396
  optimize_move_to_prewhere: 1,
@@ -56,6 +56,7 @@ import ServiceType from "../../Types/Telemetry/ServiceType";
56
56
  import OneUptimeDate from "../../Types/Date";
57
57
  import TelemetryUtil from "../Utils/Telemetry/Telemetry";
58
58
  import logger, { LogAttributes } from "../Utils/Logger";
59
+ import ProductAnalytics from "../Utils/ProductAnalytics";
59
60
  import Semaphore, { SemaphoreMutex } from "../Infrastructure/Semaphore";
60
61
  import IncidentFeedService from "./IncidentFeedService";
61
62
  import IncidentSlaService from "./IncidentSlaService";
@@ -907,6 +908,18 @@ export class Service extends DatabaseService<Model> {
907
908
  throw new BadDataException("id is required");
908
909
  }
909
910
 
911
+ /*
912
+ * Activation event for marketing funnels. Only fires for human-declared
913
+ * incidents (captureForUser skips when there is no user).
914
+ */
915
+ ProductAnalytics.captureForUser({
916
+ userId: onCreate.createBy.props.userId || createdItem.createdByUserId,
917
+ event: "server/incident_created",
918
+ properties: {
919
+ project_id: createdItem.projectId.toString(),
920
+ },
921
+ });
922
+
910
923
  // Get incident data for feed creation
911
924
  const incident: Model | null = await this.findOneById({
912
925
  id: createdItem.id,
@@ -70,6 +70,9 @@ import MailService from "./MailService";
70
70
  import MetricService from "./MetricService";
71
71
  import MetricItemAggMV1mService from "./MetricItemAggMV1mService";
72
72
  import MetricItemAggMV1mByHostV2Service from "./MetricItemAggMV1mByHostV2Service";
73
+ import MetricItemAggMV1mByServiceService from "./MetricItemAggMV1mByServiceService";
74
+ import MetricItemAggMV1mByK8sClusterService from "./MetricItemAggMV1mByK8sClusterService";
75
+ import MetricItemAggMV1mByContainerService from "./MetricItemAggMV1mByContainerService";
73
76
  import MutableMetricService from "./MutableMetricService";
74
77
  import MetricBaselineService from "./MetricBaselineService";
75
78
  import MonitorCustomFieldService from "./MonitorCustomFieldService";
@@ -123,6 +126,7 @@ import GlobalOidcProjectService from "./GlobalOidcProjectService";
123
126
  import PromoCodeService from "./PromoCodeService";
124
127
  import EnterpriseLicenseService from "./EnterpriseLicenseService";
125
128
  import EnterpriseLicenseInstanceService from "./EnterpriseLicenseInstanceService";
129
+ import MarketingConversionService from "./MarketingConversionService";
126
130
  import OpenSourceDeploymentService from "./OpenSourceDeploymentService";
127
131
  import ResellerPlanService from "./ResellerPlanService";
128
132
  import ResellerService from "./ResellerService";
@@ -253,6 +257,7 @@ import WorkspaceNotificationSummaryService from "./WorkspaceNotificationSummaryS
253
257
  import OnCallDutyPolicyUserOverrideService from "./OnCallDutyPolicyUserOverrideService";
254
258
 
255
259
  import MonitorLogService from "./MonitorLogService";
260
+ import NetworkFlowService from "./NetworkFlowService";
256
261
 
257
262
  import OnCallDutyPolicyTimeLogService from "./OnCallDutyPolicyTimeLogService";
258
263
  import ProjectSCIMLogService from "./ProjectSCIMLogService";
@@ -264,6 +269,7 @@ const services: Array<BaseService> = [
264
269
  PromoCodeService,
265
270
  EnterpriseLicenseService,
266
271
  EnterpriseLicenseInstanceService,
272
+ MarketingConversionService,
267
273
  OpenSourceDeploymentService,
268
274
 
269
275
  ResellerService,
@@ -532,9 +538,13 @@ export const AnalyticsServices: Array<
532
538
  */
533
539
  MetricItemAggMV1mService,
534
540
  MetricItemAggMV1mByHostV2Service,
541
+ MetricItemAggMV1mByServiceService,
542
+ MetricItemAggMV1mByK8sClusterService,
543
+ MetricItemAggMV1mByContainerService,
535
544
  MetricBaselineService,
536
545
  ExceptionInstanceService,
537
546
  MonitorLogService,
547
+ NetworkFlowService,
538
548
  ProfileService,
539
549
  ProfileSampleService,
540
550
  AuditLogService,
@@ -0,0 +1,10 @@
1
+ import DatabaseService from "./DatabaseService";
2
+ import MarketingConversion from "../../Models/DatabaseModels/MarketingConversion";
3
+
4
+ export class Service extends DatabaseService<MarketingConversion> {
5
+ public constructor() {
6
+ super(MarketingConversion);
7
+ }
8
+ }
9
+
10
+ export default new Service();
@@ -0,0 +1,31 @@
1
+ import AnalyticsDatabaseService from "./AnalyticsDatabaseService";
2
+ import ClickhouseDatabase from "../Infrastructure/ClickhouseDatabase";
3
+ import MetricItemAggMV1mByContainer from "../../Models/AnalyticsModels/MetricItemAggMV1mByContainer";
4
+
5
+ /**
6
+ * Read-side service for the `MetricItemAggMV1mByContainer` MV target
7
+ * table — per-(container entity key, minute) pre-aggregated metric
8
+ * values for container-scoped chart queries. Sister of
9
+ * `MetricItemAggMV1mByHostV2Service` (which is keyed by hostEntityKey).
10
+ *
11
+ * Today's reads go through
12
+ * `MetricService.tryBuildEntityAggregateMVStatement` with raw SQL; this
13
+ * service exists so the model is registered with the analytics framework
14
+ * and the auto-create flow can manage the table + MV on app startup
15
+ * (idempotent with the AddMetricEntityMinuteAggregateMaterializedViews
16
+ * migration, which also backfills from MetricItemV3).
17
+ *
18
+ * AggregateFunction columns require `*Merge()` finalizers at read time —
19
+ * the generic typed `findBy` path is therefore not useful and should not
20
+ * be relied on against this table.
21
+ */
22
+ export class MetricItemAggMV1mByContainerService extends AnalyticsDatabaseService<MetricItemAggMV1mByContainer> {
23
+ public constructor(clickhouseDatabase?: ClickhouseDatabase | undefined) {
24
+ super({
25
+ modelType: MetricItemAggMV1mByContainer,
26
+ database: clickhouseDatabase,
27
+ });
28
+ }
29
+ }
30
+
31
+ export default new MetricItemAggMV1mByContainerService();
@@ -0,0 +1,31 @@
1
+ import AnalyticsDatabaseService from "./AnalyticsDatabaseService";
2
+ import ClickhouseDatabase from "../Infrastructure/ClickhouseDatabase";
3
+ import MetricItemAggMV1mByK8sCluster from "../../Models/AnalyticsModels/MetricItemAggMV1mByK8sCluster";
4
+
5
+ /**
6
+ * Read-side service for the `MetricItemAggMV1mByK8sCluster` MV target
7
+ * table — per-(k8s cluster entity key, minute) pre-aggregated metric
8
+ * values for Kubernetes-cluster-detail chart queries. Sister of
9
+ * `MetricItemAggMV1mByHostV2Service` (which is keyed by hostEntityKey).
10
+ *
11
+ * Today's reads go through
12
+ * `MetricService.tryBuildEntityAggregateMVStatement` with raw SQL; this
13
+ * service exists so the model is registered with the analytics framework
14
+ * and the auto-create flow can manage the table + MV on app startup
15
+ * (idempotent with the AddMetricEntityMinuteAggregateMaterializedViews
16
+ * migration, which also backfills from MetricItemV3).
17
+ *
18
+ * AggregateFunction columns require `*Merge()` finalizers at read time —
19
+ * the generic typed `findBy` path is therefore not useful and should not
20
+ * be relied on against this table.
21
+ */
22
+ export class MetricItemAggMV1mByK8sClusterService extends AnalyticsDatabaseService<MetricItemAggMV1mByK8sCluster> {
23
+ public constructor(clickhouseDatabase?: ClickhouseDatabase | undefined) {
24
+ super({
25
+ modelType: MetricItemAggMV1mByK8sCluster,
26
+ database: clickhouseDatabase,
27
+ });
28
+ }
29
+ }
30
+
31
+ export default new MetricItemAggMV1mByK8sClusterService();
@@ -0,0 +1,31 @@
1
+ import AnalyticsDatabaseService from "./AnalyticsDatabaseService";
2
+ import ClickhouseDatabase from "../Infrastructure/ClickhouseDatabase";
3
+ import MetricItemAggMV1mByService from "../../Models/AnalyticsModels/MetricItemAggMV1mByService";
4
+
5
+ /**
6
+ * Read-side service for the `MetricItemAggMV1mByService` MV target table —
7
+ * per-(service entity key, minute) pre-aggregated metric values for
8
+ * service-detail chart queries. Sister of
9
+ * `MetricItemAggMV1mByHostV2Service` (which is keyed by hostEntityKey).
10
+ *
11
+ * Today's reads go through
12
+ * `MetricService.tryBuildEntityAggregateMVStatement` with raw SQL; this
13
+ * service exists so the model is registered with the analytics framework
14
+ * and the auto-create flow can manage the table + MV on app startup
15
+ * (idempotent with the AddMetricEntityMinuteAggregateMaterializedViews
16
+ * migration, which also backfills from MetricItemV3).
17
+ *
18
+ * AggregateFunction columns require `*Merge()` finalizers at read time —
19
+ * the generic typed `findBy` path is therefore not useful and should not
20
+ * be relied on against this table.
21
+ */
22
+ export class MetricItemAggMV1mByServiceService extends AnalyticsDatabaseService<MetricItemAggMV1mByService> {
23
+ public constructor(clickhouseDatabase?: ClickhouseDatabase | undefined) {
24
+ super({
25
+ modelType: MetricItemAggMV1mByService,
26
+ database: clickhouseDatabase,
27
+ });
28
+ }
29
+ }
30
+
31
+ export default new MetricItemAggMV1mByServiceService();