@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
@@ -5,6 +5,17 @@ import BadDataException from "../../Types/Exception/BadDataException";
5
5
  * alias (case-insensitive, with or without a leading "$"). Evaluates
6
6
  * the formula point-by-point against a time-aligned series from the
7
7
  * referenced queries/formulas.
8
+ *
9
+ * Group-aware: when a referenced query is grouped (e.g. by "host.name")
10
+ * and its result carries multiple series, the formula is evaluated once
11
+ * per group present in ALL grouped variables (Datadog-style), and the
12
+ * group's attributes are stamped onto the output rows so chart layers
13
+ * can split them back into one line per group. Ungrouped variables
14
+ * broadcast across groups; a variable whose QUERY was grouped is joined
15
+ * by group key even when it happens to return a single series (see
16
+ * isGroupedVariable). When every referenced variable has a single
17
+ * series the evaluator behaves exactly like the original timestamp-only
18
+ * join — no stamping, identical output.
8
19
  */
9
20
  var TokenType;
10
21
  (function (TokenType) {
@@ -29,15 +40,23 @@ export default class MetricFormulaEvaluator {
29
40
  /**
30
41
  * Evaluate a formula against the provided query/formula results and
31
42
  * return a synthetic AggregatedResult whose timestamps are the union
32
- * of all referenced series.
43
+ * of all referenced series. Grouped inputs produce one output series
44
+ * per common group, with the group attributes stamped on each row.
45
+ *
46
+ * Throws for STRUCTURAL problems (invalid formula syntax/arity,
47
+ * unknown variable, grouped variables with no groups in common).
48
+ * Per-point data gaps (a timestamp missing from one variable) are
49
+ * skipped silently, as before.
33
50
  */
34
51
  static evaluateFormula(input) {
52
+ var _a;
35
53
  const trimmedFormula = (input.formula || "").trim();
36
54
  if (!trimmedFormula) {
37
55
  return { data: [] };
38
56
  }
57
+ // Throws a descriptive BadDataException for syntax and arity errors.
39
58
  const rpn = MetricFormulaEvaluator.toRpn(trimmedFormula);
40
- const variableResults = MetricFormulaEvaluator.buildVariableResultMap({
59
+ const variableData = MetricFormulaEvaluator.buildVariableResultMap({
41
60
  queryConfigs: input.queryConfigs,
42
61
  formulaConfigs: input.formulaConfigs,
43
62
  results: input.results,
@@ -49,41 +68,96 @@ export default class MetricFormulaEvaluator {
49
68
  */
50
69
  const referencedVariables = MetricFormulaEvaluator.collectVariableNames(rpn);
51
70
  for (const variableName of referencedVariables) {
52
- if (!variableResults[variableName]) {
71
+ if (!variableData[variableName]) {
53
72
  throw new BadDataException(`Formula references unknown variable "$${variableName}". Define a metric query with that alias first.`);
54
73
  }
55
74
  }
56
- const timestampIndex = MetricFormulaEvaluator.buildTimestampIndex(referencedVariables, variableResults);
57
- const sortedTimestamps = Array.from(timestampIndex.keys()).sort();
58
- const resultData = [];
59
- for (const timestampString of sortedTimestamps) {
60
- const values = timestampIndex.get(timestampString) || {};
61
- /*
62
- * Skip points where any referenced variable is missing a value. A
63
- * partial join would produce misleading numbers (e.g. treating a
64
- * gap as zero silently when using subtraction).
65
- */
66
- const hasAllValues = referencedVariables.every((variable) => {
67
- return typeof values[variable] === "number";
68
- });
69
- if (!hasAllValues) {
70
- continue;
71
- }
72
- let evaluated;
73
- try {
74
- evaluated = MetricFormulaEvaluator.evaluateRpn(rpn, values);
75
- }
76
- catch (_a) {
77
- continue;
78
- }
79
- if (!Number.isFinite(evaluated)) {
80
- continue;
75
+ /*
76
+ * Bucket each variable's rows into series groups.
77
+ */
78
+ const seriesBuckets = {};
79
+ for (const variableName of referencedVariables) {
80
+ seriesBuckets[variableName] = MetricFormulaEvaluator.bucketSeriesByGroup(variableData[variableName]);
81
+ }
82
+ /*
83
+ * The grouped path only ENGAGES when some variable factually carries
84
+ * two or more series. Callers like the metric-monitor worker
85
+ * pre-bucket per series fingerprint and pass one series per variable
86
+ * (with grouped query configs still attached), and those inputs must
87
+ * remain an exact — byte-identical — passthrough of the original
88
+ * single-series behavior.
89
+ */
90
+ const hasMultiSeriesVariable = referencedVariables.some((variableName) => {
91
+ var _a;
92
+ return (((_a = seriesBuckets[variableName]) === null || _a === void 0 ? void 0 : _a.size) || 0) >= 2;
93
+ });
94
+ if (!hasMultiSeriesVariable) {
95
+ // Single-series inputs: exact passthrough of the original behavior.
96
+ const seriesByVariable = {};
97
+ for (const variableName of referencedVariables) {
98
+ seriesByVariable[variableName] =
99
+ variableData[variableName].result.data;
81
100
  }
82
- resultData.push({
83
- timestamp: new Date(timestampString),
84
- value: evaluated,
101
+ return {
102
+ data: MetricFormulaEvaluator.evaluatePointwise({
103
+ rpn,
104
+ referencedVariables,
105
+ seriesByVariable,
106
+ }),
107
+ };
108
+ }
109
+ /*
110
+ * Once in the grouped path, classification switches from observed
111
+ * series count to query intent where available: a variable whose
112
+ * query was grouped joins by group key even when it returned a
113
+ * single series. Every multi-series variable satisfies the
114
+ * predicate too, so groupedVariables is never empty here.
115
+ */
116
+ const groupedVariables = referencedVariables.filter((variableName) => {
117
+ return MetricFormulaEvaluator.isGroupedVariable(seriesBuckets[variableName], variableData[variableName]);
118
+ });
119
+ /*
120
+ * Groups the formula is evaluated for = groups present in EVERY
121
+ * grouped variable. Ungrouped variables broadcast, so they don't
122
+ * constrain the set.
123
+ */
124
+ let commonGroupKeys = Array.from(seriesBuckets[groupedVariables[0]].keys());
125
+ for (let index = 1; index < groupedVariables.length; index++) {
126
+ const buckets = seriesBuckets[groupedVariables[index]];
127
+ commonGroupKeys = commonGroupKeys.filter((groupKey) => {
128
+ return buckets.has(groupKey);
85
129
  });
86
130
  }
131
+ if (commonGroupKeys.length === 0) {
132
+ throw new BadDataException(`Formula "${trimmedFormula}" references grouped queries that have no series groups in common. Make sure every grouped query used by the formula is grouped by the same attributes.`);
133
+ }
134
+ /*
135
+ * Group keys are canonical "key=value|key2=value2" strings, so a
136
+ * lexicographic sort yields a stable, human-sensible series order.
137
+ */
138
+ commonGroupKeys.sort();
139
+ const resultData = [];
140
+ for (const groupKey of commonGroupKeys) {
141
+ const groupLabels = seriesBuckets[groupedVariables[0]].get(groupKey).labels;
142
+ const seriesByVariable = {};
143
+ for (const variableName of referencedVariables) {
144
+ const buckets = seriesBuckets[variableName];
145
+ if (MetricFormulaEvaluator.isGroupedVariable(buckets, variableData[variableName])) {
146
+ seriesByVariable[variableName] = ((_a = buckets.get(groupKey)) === null || _a === void 0 ? void 0 : _a.samples) || [];
147
+ }
148
+ else {
149
+ // Ungrouped variable: broadcast to every group.
150
+ seriesByVariable[variableName] =
151
+ variableData[variableName].result.data;
152
+ }
153
+ }
154
+ resultData.push(...MetricFormulaEvaluator.evaluatePointwise({
155
+ rpn,
156
+ referencedVariables,
157
+ seriesByVariable,
158
+ groupAttributes: groupLabels,
159
+ }));
160
+ }
87
161
  return { data: resultData };
88
162
  }
89
163
  /**
@@ -134,7 +208,7 @@ export default class MetricFormulaEvaluator {
134
208
  return null;
135
209
  }
136
210
  static buildVariableResultMap(input) {
137
- var _a, _b, _c, _d;
211
+ var _a, _b, _c, _d, _e, _f;
138
212
  const variableMap = {};
139
213
  const totalSeries = input.queryConfigs.length + input.formulaConfigs.length;
140
214
  for (let index = 0; index < totalSeries; index++) {
@@ -143,32 +217,181 @@ export default class MetricFormulaEvaluator {
143
217
  continue;
144
218
  }
145
219
  let alias;
220
+ let groupByAttributeKeys = [];
146
221
  if (index < input.queryConfigs.length) {
147
222
  alias =
148
223
  ((_b = (_a = input.queryConfigs[index]) === null || _a === void 0 ? void 0 : _a.metricAliasData) === null || _b === void 0 ? void 0 : _b.metricVariable) ||
149
224
  undefined;
225
+ groupByAttributeKeys = (((_d = (_c = input.queryConfigs[index]) === null || _c === void 0 ? void 0 : _c.metricQueryData) === null || _d === void 0 ? void 0 : _d.groupByAttributeKeys) || []).filter((key) => {
226
+ return Boolean(key);
227
+ });
150
228
  }
151
229
  else {
152
230
  const formulaIndex = index - input.queryConfigs.length;
153
231
  alias =
154
- ((_d = (_c = input.formulaConfigs[formulaIndex]) === null || _c === void 0 ? void 0 : _c.metricAliasData) === null || _d === void 0 ? void 0 : _d.metricVariable) ||
232
+ ((_f = (_e = input.formulaConfigs[formulaIndex]) === null || _e === void 0 ? void 0 : _e.metricAliasData) === null || _f === void 0 ? void 0 : _f.metricVariable) ||
155
233
  undefined;
156
234
  }
157
235
  if (!alias) {
158
236
  continue;
159
237
  }
160
- variableMap[alias.toLowerCase()] = result;
238
+ variableMap[alias.toLowerCase()] = {
239
+ result,
240
+ groupByAttributeKeys,
241
+ };
161
242
  }
162
243
  return variableMap;
163
244
  }
164
- static buildTimestampIndex(variables, variableResults) {
245
+ /**
246
+ * Whether a variable participates in per-group evaluation (joined by
247
+ * group key) rather than broadcasting across every group. True when
248
+ * it factually carries two or more series, OR when its QUERY was
249
+ * grouped (groupByAttributeKeys) and it returned at least one series:
250
+ * a grouped query that collapsed to a single series (e.g. only one
251
+ * host reported the denominator metric in the window) must still be
252
+ * matched group-by-group — broadcasting it would silently compute
253
+ * cross-group math stamped with another group's labels. Formula
254
+ * variables and ungrouped queries carry no grouping config, so they
255
+ * keep the observed >=2 heuristic. A config-grouped variable with an
256
+ * EMPTY result intentionally classifies as ungrouped: it degrades to
257
+ * per-point gaps (empty output) instead of a structural
258
+ * no-groups-in-common error.
259
+ *
260
+ * Only consulted once the grouped path has engaged — the passthrough
261
+ * gate in evaluateFormula deliberately does NOT use this predicate,
262
+ * so single-series inputs (the metric-monitor worker's per-fingerprint
263
+ * shape) stay a byte-identical passthrough.
264
+ */
265
+ static isGroupedVariable(buckets, variable) {
266
+ const bucketCount = (buckets === null || buckets === void 0 ? void 0 : buckets.size) || 0;
267
+ if (bucketCount >= 2) {
268
+ return true;
269
+ }
270
+ return bucketCount >= 1 && variable.groupByAttributeKeys.length > 0;
271
+ }
272
+ /**
273
+ * Bucket a variable's rows by series group. Query variables group by
274
+ * their configured group-by attribute keys (read from each row's
275
+ * `attributes` map — the shape both the aggregation API and the
276
+ * metric-monitor worker produce). Formula variables (and queries
277
+ * without configured keys) group by whatever scalar `attributes`
278
+ * entries their rows carry — formula outputs are stamped with exactly
279
+ * the group attributes by this evaluator, so this round-trips
280
+ * formula-of-formula references. Rows without attributes fall into a
281
+ * single ungrouped bucket.
282
+ */
283
+ static bucketSeriesByGroup(variable) {
284
+ const buckets = new Map();
285
+ for (const sample of variable.result.data) {
286
+ const labels = MetricFormulaEvaluator.extractGroupLabels({
287
+ sample,
288
+ groupByAttributeKeys: variable.groupByAttributeKeys,
289
+ });
290
+ const groupKey = MetricFormulaEvaluator.computeGroupKey(labels);
291
+ const existing = buckets.get(groupKey);
292
+ if (existing) {
293
+ existing.samples.push(sample);
294
+ }
295
+ else {
296
+ buckets.set(groupKey, { labels, samples: [sample] });
297
+ }
298
+ }
299
+ return buckets;
300
+ }
301
+ /**
302
+ * Mirror of MetricSeriesFingerprint.extractSeriesLabels semantics
303
+ * (missing keys preserved as "" so groups stay stable when a series
304
+ * occasionally drops an attribute). Not imported from that module
305
+ * because it pulls in node's "crypto", which the browser bundles that
306
+ * ship this evaluator cannot resolve.
307
+ */
308
+ static extractGroupLabels(input) {
309
+ const labels = {};
310
+ const sampleAttributes = input.sample["attributes"] || {};
311
+ if (input.groupByAttributeKeys.length > 0) {
312
+ for (const key of input.groupByAttributeKeys) {
313
+ const value = sampleAttributes[key];
314
+ labels[key] = value === undefined || value === null ? "" : value;
315
+ }
316
+ return labels;
317
+ }
318
+ for (const key of Object.keys(sampleAttributes)) {
319
+ const value = sampleAttributes[key];
320
+ if (value === undefined || value === null) {
321
+ labels[key] = "";
322
+ continue;
323
+ }
324
+ // Nested objects/arrays can't canonicalize into a stable label.
325
+ if (typeof value === "object") {
326
+ continue;
327
+ }
328
+ labels[key] = value;
329
+ }
330
+ return labels;
331
+ }
332
+ /**
333
+ * Canonical in-memory series key: sorted "key=value" pairs. Same
334
+ * equivalence classes as MetricSeriesFingerprint.computeFingerprint
335
+ * (which hashes this exact string), without the crypto dependency.
336
+ * Empty labels — an ungrouped series — map to "".
337
+ */
338
+ static computeGroupKey(labels) {
339
+ const keys = Object.keys(labels).sort();
340
+ if (keys.length === 0) {
341
+ return "";
342
+ }
343
+ const parts = [];
344
+ for (const key of keys) {
345
+ const raw = labels[key];
346
+ const value = raw === undefined || raw === null ? "" : String(raw);
347
+ parts.push(`${key}=${value}`);
348
+ }
349
+ return parts.join("|");
350
+ }
351
+ /**
352
+ * Join the given series on timestamp and evaluate the formula per
353
+ * point. Points missing a value for any referenced variable are
354
+ * skipped (a partial join would produce misleading numbers — e.g.
355
+ * treating a gap as zero silently when using subtraction), as are
356
+ * non-finite results like divide-by-zero. Structural formula errors
357
+ * are impossible here: the RPN's arity is validated at parse time.
358
+ */
359
+ static evaluatePointwise(input) {
360
+ const timestampIndex = MetricFormulaEvaluator.buildTimestampIndex(input.referencedVariables, input.seriesByVariable);
361
+ const sortedTimestamps = Array.from(timestampIndex.keys()).sort();
362
+ const resultData = [];
363
+ for (const timestampString of sortedTimestamps) {
364
+ const values = timestampIndex.get(timestampString) || {};
365
+ const hasAllValues = input.referencedVariables.every((variable) => {
366
+ return typeof values[variable] === "number";
367
+ });
368
+ if (!hasAllValues) {
369
+ continue;
370
+ }
371
+ const evaluated = MetricFormulaEvaluator.evaluateRpn(input.rpn, values);
372
+ if (!Number.isFinite(evaluated)) {
373
+ continue;
374
+ }
375
+ const row = {
376
+ timestamp: new Date(timestampString),
377
+ value: evaluated,
378
+ };
379
+ if (input.groupAttributes &&
380
+ Object.keys(input.groupAttributes).length > 0) {
381
+ row["attributes"] = input.groupAttributes;
382
+ }
383
+ resultData.push(row);
384
+ }
385
+ return resultData;
386
+ }
387
+ static buildTimestampIndex(variables, seriesByVariable) {
165
388
  const index = new Map();
166
389
  for (const variable of variables) {
167
- const series = variableResults[variable];
390
+ const series = seriesByVariable[variable];
168
391
  if (!series) {
169
392
  continue;
170
393
  }
171
- for (const sample of series.data) {
394
+ for (const sample of series) {
172
395
  const timestampKey = MetricFormulaEvaluator.normalizeTimestamp(sample.timestamp);
173
396
  if (!index.has(timestampKey)) {
174
397
  index.set(timestampKey, {});
@@ -379,8 +602,44 @@ export default class MetricFormulaEvaluator {
379
602
  }
380
603
  output.push(top);
381
604
  }
605
+ MetricFormulaEvaluator.assertValidRpn(output);
382
606
  return output;
383
607
  }
608
+ /**
609
+ * Verify operator arity by simulating stack depth over the RPN. This
610
+ * turns malformed expressions like "a**b", "a+" or "()" into
611
+ * descriptive parse-time errors instead of silent per-point failures
612
+ * that render as "no data".
613
+ */
614
+ static assertValidRpn(rpn) {
615
+ let depth = 0;
616
+ for (const token of rpn) {
617
+ if (token.type === TokenType.Number ||
618
+ token.type === TokenType.Variable) {
619
+ depth++;
620
+ continue;
621
+ }
622
+ if (token.type === TokenType.Operator) {
623
+ const operatorValue = token.value;
624
+ if (operatorValue === "u-" || operatorValue === "u+") {
625
+ if (depth < 1) {
626
+ throw new BadDataException(`Invalid formula: unary "${operatorValue.charAt(1)}" is missing its operand.`);
627
+ }
628
+ continue;
629
+ }
630
+ if (depth < 2) {
631
+ throw new BadDataException(`Invalid formula: operator "${operatorValue}" is missing an operand.`);
632
+ }
633
+ depth--;
634
+ }
635
+ }
636
+ if (depth === 0) {
637
+ throw new BadDataException("Invalid formula: expression is empty.");
638
+ }
639
+ if (depth !== 1) {
640
+ throw new BadDataException("Invalid formula: expression does not reduce to a single value. Did you forget an operator between two values?");
641
+ }
642
+ }
384
643
  static evaluateRpn(rpn, variableValues) {
385
644
  const stack = [];
386
645
  for (const token of rpn) {
@@ -1 +1 @@
1
- {"version":3,"file":"MetricFormulaEvaluator.js","sourceRoot":"","sources":["../../../../Utils/Metrics/MetricFormulaEvaluator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"MetricFormulaEvaluator.js","sourceRoot":"","sources":["../../../../Utils/Metrics/MetricFormulaEvaluator.ts"],"names":[],"mappings":"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"}