@oneuptime/common 11.5.9 → 11.5.10
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.
- package/Models/AnalyticsModels/Index.ts +13 -0
- package/Models/AnalyticsModels/MetricItemAggMV1mByContainer.ts +178 -0
- package/Models/AnalyticsModels/MetricItemAggMV1mByK8sCluster.ts +179 -0
- package/Models/AnalyticsModels/MetricItemAggMV1mByService.ts +179 -0
- package/Models/AnalyticsModels/NetworkFlow.ts +397 -0
- package/Models/DatabaseModels/EnterpriseLicenseInstance.ts +18 -0
- package/Models/DatabaseModels/GlobalConfig.ts +36 -0
- package/Models/DatabaseModels/Index.ts +2 -0
- package/Models/DatabaseModels/MarketingConversion.ts +198 -0
- package/Models/DatabaseModels/MetricSavedView.ts +34 -0
- package/Models/DatabaseModels/MetricType.ts +74 -0
- package/Models/DatabaseModels/NetworkDevice.ts +332 -0
- package/Models/DatabaseModels/NetworkDeviceDiscoveryScan.ts +113 -0
- package/Models/DatabaseModels/NetworkInterface.ts +58 -0
- package/Models/DatabaseModels/Project.ts +37 -0
- package/Models/DatabaseModels/User.ts +37 -0
- package/Server/API/BaseAnalyticsAPI.ts +23 -0
- package/Server/API/EnterpriseLicenseAPI.ts +14 -0
- package/Server/EnvironmentConfig.ts +84 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1784191414522-AddCounterSemanticsToMetricType.ts +38 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1784191414600-AddViewTypeToMetricSavedView.ts +28 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1784211212164-AddNetworkDeviceInventoryAndDiscoverySchedule.ts +108 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1784218257664-AddEnterpriseLicenseNotificationColumns.ts +31 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1784293516000-AddAttributionColumnsToUserAndProject.ts +29 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1784298000000-AddMarketingConversionTable.ts +35 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +12 -0
- package/Server/Services/AnalyticsDatabaseService.ts +70 -1
- package/Server/Services/IncidentService.ts +13 -0
- package/Server/Services/Index.ts +10 -0
- package/Server/Services/MarketingConversionService.ts +10 -0
- package/Server/Services/MetricItemAggMV1mByContainerService.ts +31 -0
- package/Server/Services/MetricItemAggMV1mByK8sClusterService.ts +31 -0
- package/Server/Services/MetricItemAggMV1mByServiceService.ts +31 -0
- package/Server/Services/MetricService.ts +970 -122
- package/Server/Services/MonitorService.ts +14 -0
- package/Server/Services/NetworkDeviceOwnerTeamService.ts +42 -0
- package/Server/Services/NetworkDeviceOwnerUserService.ts +106 -0
- package/Server/Services/NetworkFlowService.ts +11 -0
- package/Server/Services/OnCallDutyPolicyService.ts +11 -1
- package/Server/Services/ProjectService.ts +136 -0
- package/Server/Services/SpanService.ts +13 -9
- package/Server/Services/StatusPageService.ts +10 -0
- package/Server/Services/TeamMemberService.ts +11 -0
- package/Server/Services/UserService.ts +59 -0
- package/Server/Types/AnalyticsDatabase/AggregateBy.ts +37 -7
- package/Server/Utils/Attribution.ts +99 -0
- package/Server/Utils/Marketing/ConversionUploadProvider.ts +103 -0
- package/Server/Utils/Marketing/ConversionUploadProviders.ts +22 -0
- package/Server/Utils/Marketing/Providers/GoogleAds.ts +270 -0
- package/Server/Utils/Marketing/Providers/LinkedIn.ts +147 -0
- package/Server/Utils/Marketing/Providers/Meta.ts +148 -0
- package/Server/Utils/Marketing/Providers/MicrosoftAds.ts +196 -0
- package/Server/Utils/Marketing/Providers/Reddit.ts +178 -0
- package/Server/Utils/Monitor/MonitorAlert.ts +71 -7
- package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +31 -19
- package/Server/Utils/Monitor/MonitorIncident.ts +71 -7
- package/Server/Utils/Monitor/MonitorMetricUtil.ts +57 -0
- package/Server/Utils/Monitor/MonitorTemplateUtil.ts +94 -0
- package/Server/Utils/Monitor/NetworkDeviceHydrationUtil.ts +15 -0
- package/Server/Utils/Monitor/NetworkInventoryUtil.ts +125 -14
- package/Server/Utils/ProductAnalytics.ts +133 -0
- package/Server/Utils/Telemetry/Telemetry.ts +39 -0
- package/Server/Utils/Telemetry/TelemetryEntity.ts +21 -0
- package/Tests/Server/API/BaseAnalyticsAPI.test.ts +72 -0
- package/Tests/Server/Infrastructure/SemaphorePermit.test.ts +9 -1
- package/Tests/Server/Services/AnalyticsDatabaseService.test.ts +21 -2
- package/Tests/Server/Services/MetricEntityMVKeyParity.test.ts +173 -0
- package/Tests/Server/Services/MetricServiceAggregate.test.ts +1391 -0
- package/Tests/Server/Services/NetworkDeviceOwnerServices.test.ts +260 -0
- package/Tests/Server/Utils/Monitor/MonitorTemplateUtilNetworkDevice.test.ts +389 -0
- package/Tests/Server/Utils/Monitor/NetworkInventoryUtil.test.ts +764 -0
- package/Tests/Types/BaseDatabase/AggregationIntervalUtil.test.ts +111 -2
- package/Tests/Types/Database/EndsWith.test.ts +64 -0
- package/Tests/Types/Database/GreaterThan.test.ts +62 -0
- package/Tests/Types/Database/GreaterThanOrEqual.test.ts +65 -0
- package/Tests/Types/Database/GreaterThanOrNull.test.ts +63 -0
- package/Tests/Types/Database/Includes.test.ts +65 -0
- package/Tests/Types/Database/IncludesAll.test.ts +65 -0
- package/Tests/Types/Database/IncludesNone.test.ts +65 -0
- package/Tests/Types/Database/IsNull.test.ts +44 -0
- package/Tests/Types/Database/LessThan.test.ts +62 -0
- package/Tests/Types/Database/LessThanOrEqual.test.ts +62 -0
- package/Tests/Types/Database/LessThanOrNull.test.ts +62 -0
- package/Tests/Types/Database/MultiSearch.test.ts +81 -0
- package/Tests/Types/Database/NotContains.test.ts +64 -0
- package/Tests/Types/Database/NotNull.test.ts +44 -0
- package/Tests/Types/Database/StartsWith.test.ts +64 -0
- package/Tests/Types/Monitor/MonitorStepSqlMonitor.test.ts +83 -1
- package/Tests/Types/Monitor/SnmpV3EnumParsing.test.ts +247 -0
- package/Tests/Types/Monitor/SnmpVendorTemplate.test.ts +263 -0
- package/Tests/UI/Components/XAxis.test.ts +5 -3
- package/Tests/Utils/EnterpriseLicenseUsage.test.ts +76 -0
- package/Tests/Utils/Metrics/MetricExplorerUrl.test.ts +622 -0
- package/Tests/Utils/Metrics/MetricFormulaEvaluator.test.ts +474 -0
- package/Tests/Utils/Telemetry/HeartbeatAvailability.test.ts +52 -4
- package/Types/AnalyticsDatabase/AnalyticsTableName.ts +11 -0
- package/Types/BaseDatabase/AggregateBy.ts +31 -2
- package/Types/BaseDatabase/AggregatedResult.ts +22 -0
- package/Types/BaseDatabase/AggregationInterval.ts +11 -0
- package/Types/BaseDatabase/AggregationIntervalUtil.ts +30 -5
- package/Types/Dashboard/DashboardComponents/DashboardTraceChartComponent.ts +16 -0
- package/Types/Email/EmailTemplateType.ts +3 -0
- package/Types/Marketing/MarketingConversion.ts +11 -0
- package/Types/Metrics/MetricQueryConfigData.ts +21 -0
- package/Types/Metrics/MetricQueryData.ts +8 -0
- package/Types/Metrics/MetricViewData.ts +8 -0
- package/Types/Monitor/MonitorMetricType.ts +8 -0
- package/Types/Monitor/MonitorStep.ts +9 -0
- package/Types/Monitor/MonitorStepSqlMonitor.ts +12 -0
- package/Types/Monitor/MonitorType.ts +2 -1
- package/Types/Monitor/SSLMonitor/SslMonitorResponse.ts +17 -12
- package/Types/Monitor/SnmpMonitor/CdpNeighbor.ts +13 -0
- package/Types/Monitor/SnmpMonitor/NetworkTopology.ts +37 -3
- package/Types/Monitor/SnmpMonitor/SnmpAuthProtocol.ts +46 -0
- package/Types/Monitor/SnmpMonitor/SnmpEntityInfo.ts +15 -0
- package/Types/Monitor/SnmpMonitor/SnmpInterface.ts +8 -0
- package/Types/Monitor/SnmpMonitor/SnmpMonitorResponse.ts +17 -8
- package/Types/Monitor/SnmpMonitor/SnmpPrivProtocol.ts +53 -0
- package/Types/Monitor/SnmpMonitor/SnmpSecurityLevel.ts +43 -0
- package/Types/Monitor/SnmpMonitor/SnmpSystemInfo.ts +16 -0
- package/Types/Monitor/SnmpMonitor/SnmpVendorTemplate.ts +119 -3
- package/Types/NetFlow/NetworkFlowRecord.ts +25 -0
- package/Types/Syslog/SyslogMessage.ts +18 -0
- package/Types/Telemetry/TelemetrySavedViewState.ts +9 -0
- package/Types/Telemetry/TelemetrySavedViewType.ts +12 -0
- package/UI/Components/Charts/Area/AreaChart.tsx +51 -0
- package/UI/Components/Charts/Bar/BarChart.tsx +51 -1
- package/UI/Components/Charts/ChartGroup/ChartGroup.tsx +97 -26
- package/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.tsx +328 -1
- package/UI/Components/Charts/ChartLibrary/BarChart/BarChart.tsx +115 -0
- package/UI/Components/Charts/ChartLibrary/LineChart/LineChart.tsx +328 -1
- package/UI/Components/Charts/ChartLibrary/Types/ChartDataPoint.ts +7 -0
- package/UI/Components/Charts/ChartLibrary/Types/FormattedReferenceRegion.ts +15 -0
- package/UI/Components/Charts/ChartLibrary/Types/FormattedTimeReferenceLine.ts +13 -0
- package/UI/Components/Charts/Line/LineChart.tsx +51 -0
- package/UI/Components/Charts/Types/ReferenceRegionProps.ts +12 -0
- package/UI/Components/Charts/Types/TimeReferenceLineProps.ts +12 -0
- package/UI/Components/Charts/Types/XAxis/XAxisPrecision.ts +1 -0
- package/UI/Components/Charts/Utils/DataPoint.ts +0 -0
- package/UI/Components/Charts/Utils/TimeAnnotation.ts +169 -0
- package/UI/Components/Charts/Utils/XAxis.ts +28 -4
- package/UI/Components/Icon/Icon.tsx +33 -13
- package/UI/Components/Markdown.tsx/MarkdownViewer.tsx +9 -0
- package/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.ts +67 -0
- package/UI/Components/Page/ModelPage.tsx +6 -1
- package/UI/Components/TelemetryViewer/components/SavedViewsDropdown.tsx +33 -4
- package/UI/Styles/Theme.css +10 -0
- package/UI/Utils/User.ts +41 -2
- package/Utils/Analytics.ts +8 -6
- package/Utils/EnterpriseLicense/EnterpriseLicenseUsage.ts +74 -0
- package/Utils/Metrics/MetricExplorerUrl.ts +771 -0
- package/Utils/Metrics/MetricFormulaEvaluator.ts +410 -46
- package/Utils/Monitor/NetworkTopologyUtil.ts +261 -49
- package/Utils/ValueFormatter.ts +22 -1
- package/build/dist/Models/AnalyticsModels/Index.js +13 -0
- package/build/dist/Models/AnalyticsModels/Index.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByContainer.js +159 -0
- package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByContainer.js.map +1 -0
- package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByK8sCluster.js +158 -0
- package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByK8sCluster.js.map +1 -0
- package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByService.js +160 -0
- package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByService.js.map +1 -0
- package/build/dist/Models/AnalyticsModels/NetworkFlow.js +351 -0
- package/build/dist/Models/AnalyticsModels/NetworkFlow.js.map +1 -0
- package/build/dist/Models/DatabaseModels/EnterpriseLicenseInstance.js +19 -0
- package/build/dist/Models/DatabaseModels/EnterpriseLicenseInstance.js.map +1 -1
- package/build/dist/Models/DatabaseModels/GlobalConfig.js +38 -0
- package/build/dist/Models/DatabaseModels/GlobalConfig.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Index.js +2 -0
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MarketingConversion.js +219 -0
- package/build/dist/Models/DatabaseModels/MarketingConversion.js.map +1 -0
- package/build/dist/Models/DatabaseModels/MetricSavedView.js +35 -0
- package/build/dist/Models/DatabaseModels/MetricSavedView.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MetricType.js +76 -0
- package/build/dist/Models/DatabaseModels/MetricType.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkDevice.js +341 -0
- package/build/dist/Models/DatabaseModels/NetworkDevice.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js +116 -0
- package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkInterface.js +60 -0
- package/build/dist/Models/DatabaseModels/NetworkInterface.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Project.js +38 -0
- package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
- package/build/dist/Models/DatabaseModels/User.js +38 -0
- package/build/dist/Models/DatabaseModels/User.js.map +1 -1
- package/build/dist/Server/API/BaseAnalyticsAPI.js +19 -0
- package/build/dist/Server/API/BaseAnalyticsAPI.js.map +1 -1
- package/build/dist/Server/API/EnterpriseLicenseAPI.js +8 -0
- package/build/dist/Server/API/EnterpriseLicenseAPI.js.map +1 -1
- package/build/dist/Server/EnvironmentConfig.js +51 -0
- package/build/dist/Server/EnvironmentConfig.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784191414522-AddCounterSemanticsToMetricType.js +27 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784191414522-AddCounterSemanticsToMetricType.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784191414600-AddViewTypeToMetricSavedView.js +21 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784191414600-AddViewTypeToMetricSavedView.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784211212164-AddNetworkDeviceInventoryAndDiscoverySchedule.js +47 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784211212164-AddNetworkDeviceInventoryAndDiscoverySchedule.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784218257664-AddEnterpriseLicenseNotificationColumns.js +16 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784218257664-AddEnterpriseLicenseNotificationColumns.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784293516000-AddAttributionColumnsToUserAndProject.js +18 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784293516000-AddAttributionColumnsToUserAndProject.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784298000000-AddMarketingConversionTable.js +20 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784298000000-AddMarketingConversionTable.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +12 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Services/AnalyticsDatabaseService.js +58 -4
- package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
- package/build/dist/Server/Services/IncidentService.js +12 -0
- package/build/dist/Server/Services/IncidentService.js.map +1 -1
- package/build/dist/Server/Services/Index.js +10 -0
- package/build/dist/Server/Services/Index.js.map +1 -1
- package/build/dist/Server/Services/MarketingConversionService.js +9 -0
- package/build/dist/Server/Services/MarketingConversionService.js.map +1 -0
- package/build/dist/Server/Services/MetricItemAggMV1mByContainerService.js +29 -0
- package/build/dist/Server/Services/MetricItemAggMV1mByContainerService.js.map +1 -0
- package/build/dist/Server/Services/MetricItemAggMV1mByK8sClusterService.js +29 -0
- package/build/dist/Server/Services/MetricItemAggMV1mByK8sClusterService.js.map +1 -0
- package/build/dist/Server/Services/MetricItemAggMV1mByServiceService.js +29 -0
- package/build/dist/Server/Services/MetricItemAggMV1mByServiceService.js.map +1 -0
- package/build/dist/Server/Services/MetricService.js +761 -125
- package/build/dist/Server/Services/MetricService.js.map +1 -1
- package/build/dist/Server/Services/MonitorService.js +18 -5
- package/build/dist/Server/Services/MonitorService.js.map +1 -1
- package/build/dist/Server/Services/NetworkDeviceOwnerTeamService.js +44 -0
- package/build/dist/Server/Services/NetworkDeviceOwnerTeamService.js.map +1 -1
- package/build/dist/Server/Services/NetworkDeviceOwnerUserService.js +88 -0
- package/build/dist/Server/Services/NetworkDeviceOwnerUserService.js.map +1 -1
- package/build/dist/Server/Services/NetworkFlowService.js +9 -0
- package/build/dist/Server/Services/NetworkFlowService.js.map +1 -0
- package/build/dist/Server/Services/OnCallDutyPolicyService.js +15 -6
- package/build/dist/Server/Services/OnCallDutyPolicyService.js.map +1 -1
- package/build/dist/Server/Services/ProjectService.js +107 -6
- package/build/dist/Server/Services/ProjectService.js.map +1 -1
- package/build/dist/Server/Services/SpanService.js +8 -6
- package/build/dist/Server/Services/SpanService.js.map +1 -1
- package/build/dist/Server/Services/StatusPageService.js +10 -0
- package/build/dist/Server/Services/StatusPageService.js.map +1 -1
- package/build/dist/Server/Services/TeamMemberService.js +11 -0
- package/build/dist/Server/Services/TeamMemberService.js.map +1 -1
- package/build/dist/Server/Services/UserService.js +52 -0
- package/build/dist/Server/Services/UserService.js.map +1 -1
- package/build/dist/Server/Types/AnalyticsDatabase/AggregateBy.js +33 -7
- package/build/dist/Server/Types/AnalyticsDatabase/AggregateBy.js.map +1 -1
- package/build/dist/Server/Utils/Attribution.js +74 -0
- package/build/dist/Server/Utils/Attribution.js.map +1 -0
- package/build/dist/Server/Utils/Marketing/ConversionUploadProvider.js +40 -0
- package/build/dist/Server/Utils/Marketing/ConversionUploadProvider.js.map +1 -0
- package/build/dist/Server/Utils/Marketing/ConversionUploadProviders.js +20 -0
- package/build/dist/Server/Utils/Marketing/ConversionUploadProviders.js.map +1 -0
- package/build/dist/Server/Utils/Marketing/Providers/GoogleAds.js +177 -0
- package/build/dist/Server/Utils/Marketing/Providers/GoogleAds.js.map +1 -0
- package/build/dist/Server/Utils/Marketing/Providers/LinkedIn.js +113 -0
- package/build/dist/Server/Utils/Marketing/Providers/LinkedIn.js.map +1 -0
- package/build/dist/Server/Utils/Marketing/Providers/Meta.js +109 -0
- package/build/dist/Server/Utils/Marketing/Providers/Meta.js.map +1 -0
- package/build/dist/Server/Utils/Marketing/Providers/MicrosoftAds.js +130 -0
- package/build/dist/Server/Utils/Marketing/Providers/MicrosoftAds.js.map +1 -0
- package/build/dist/Server/Utils/Marketing/Providers/Reddit.js +126 -0
- package/build/dist/Server/Utils/Marketing/Providers/Reddit.js.map +1 -0
- package/build/dist/Server/Utils/Monitor/MonitorAlert.js +53 -9
- package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +21 -10
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorIncident.js +54 -11
- package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js +43 -3
- package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js +68 -0
- package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/NetworkDeviceHydrationUtil.js +15 -0
- package/build/dist/Server/Utils/Monitor/NetworkDeviceHydrationUtil.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js +100 -15
- package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js.map +1 -1
- package/build/dist/Server/Utils/ProductAnalytics.js +111 -0
- package/build/dist/Server/Utils/ProductAnalytics.js.map +1 -0
- package/build/dist/Server/Utils/Telemetry/Telemetry.js +32 -5
- package/build/dist/Server/Utils/Telemetry/Telemetry.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js +17 -0
- package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js.map +1 -1
- package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js +11 -0
- package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js.map +1 -1
- package/build/dist/Types/BaseDatabase/AggregationInterval.js +11 -0
- package/build/dist/Types/BaseDatabase/AggregationInterval.js.map +1 -1
- package/build/dist/Types/BaseDatabase/AggregationIntervalUtil.js +33 -5
- package/build/dist/Types/BaseDatabase/AggregationIntervalUtil.js.map +1 -1
- package/build/dist/Types/Email/EmailTemplateType.js +2 -0
- package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
- package/build/dist/Types/Marketing/MarketingConversion.js +13 -0
- package/build/dist/Types/Marketing/MarketingConversion.js.map +1 -0
- package/build/dist/Types/Monitor/MonitorMetricType.js +7 -0
- package/build/dist/Types/Monitor/MonitorMetricType.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorStep.js +6 -0
- package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorStepSqlMonitor.js +3 -0
- package/build/dist/Types/Monitor/MonitorStepSqlMonitor.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorType.js +2 -1
- package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
- package/build/dist/Types/Monitor/SnmpMonitor/CdpNeighbor.js +2 -0
- package/build/dist/Types/Monitor/SnmpMonitor/CdpNeighbor.js.map +1 -0
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpAuthProtocol.js +41 -0
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpAuthProtocol.js.map +1 -1
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpEntityInfo.js +2 -0
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpEntityInfo.js.map +1 -0
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpPrivProtocol.js +48 -0
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpPrivProtocol.js.map +1 -1
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpSecurityLevel.js +38 -0
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpSecurityLevel.js.map +1 -1
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpSystemInfo.js +2 -0
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpSystemInfo.js.map +1 -0
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpVendorTemplate.js +96 -3
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpVendorTemplate.js.map +1 -1
- package/build/dist/Types/NetFlow/NetworkFlowRecord.js +2 -0
- package/build/dist/Types/NetFlow/NetworkFlowRecord.js.map +1 -0
- package/build/dist/Types/Syslog/SyslogMessage.js +2 -0
- package/build/dist/Types/Syslog/SyslogMessage.js.map +1 -0
- package/build/dist/Types/Telemetry/TelemetrySavedViewState.js +0 -7
- package/build/dist/Types/Telemetry/TelemetrySavedViewState.js.map +1 -1
- package/build/dist/Types/Telemetry/TelemetrySavedViewType.js +13 -0
- package/build/dist/Types/Telemetry/TelemetrySavedViewType.js.map +1 -0
- package/build/dist/UI/Components/Charts/Area/AreaChart.js +25 -1
- package/build/dist/UI/Components/Charts/Area/AreaChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/Bar/BarChart.js +26 -2
- package/build/dist/UI/Components/Charts/Bar/BarChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js +36 -12
- package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js +208 -6
- package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js +52 -3
- package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js +208 -6
- package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/Types/ChartDataPoint.js +6 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/Types/ChartDataPoint.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/Types/FormattedReferenceRegion.js +2 -0
- package/build/dist/UI/Components/Charts/ChartLibrary/Types/FormattedReferenceRegion.js.map +1 -0
- package/build/dist/UI/Components/Charts/ChartLibrary/Types/FormattedTimeReferenceLine.js +2 -0
- package/build/dist/UI/Components/Charts/ChartLibrary/Types/FormattedTimeReferenceLine.js.map +1 -0
- package/build/dist/UI/Components/Charts/Line/LineChart.js +25 -1
- package/build/dist/UI/Components/Charts/Line/LineChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/Types/ReferenceRegionProps.js +2 -0
- package/build/dist/UI/Components/Charts/Types/ReferenceRegionProps.js.map +1 -0
- package/build/dist/UI/Components/Charts/Types/TimeReferenceLineProps.js +2 -0
- package/build/dist/UI/Components/Charts/Types/TimeReferenceLineProps.js.map +1 -0
- package/build/dist/UI/Components/Charts/Types/XAxis/XAxisPrecision.js +1 -0
- package/build/dist/UI/Components/Charts/Types/XAxis/XAxisPrecision.js.map +1 -1
- package/build/dist/UI/Components/Charts/Utils/DataPoint.js +0 -0
- package/build/dist/UI/Components/Charts/Utils/DataPoint.js.map +1 -1
- package/build/dist/UI/Components/Charts/Utils/TimeAnnotation.js +121 -0
- package/build/dist/UI/Components/Charts/Utils/TimeAnnotation.js.map +1 -0
- package/build/dist/UI/Components/Charts/Utils/XAxis.js +27 -4
- package/build/dist/UI/Components/Charts/Utils/XAxis.js.map +1 -1
- package/build/dist/UI/Components/Icon/Icon.js +15 -8
- package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
- package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js.map +1 -1
- package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js +58 -0
- package/build/dist/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.js.map +1 -1
- package/build/dist/UI/Components/Page/ModelPage.js +7 -1
- package/build/dist/UI/Components/Page/ModelPage.js.map +1 -1
- package/build/dist/UI/Components/TelemetryViewer/components/SavedViewsDropdown.js +10 -4
- package/build/dist/UI/Components/TelemetryViewer/components/SavedViewsDropdown.js.map +1 -1
- package/build/dist/UI/Utils/User.js +35 -2
- package/build/dist/UI/Utils/User.js.map +1 -1
- package/build/dist/Utils/Analytics.js +8 -5
- package/build/dist/Utils/Analytics.js.map +1 -1
- package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseUsage.js +57 -0
- package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseUsage.js.map +1 -1
- package/build/dist/Utils/Metrics/MetricExplorerUrl.js +418 -0
- package/build/dist/Utils/Metrics/MetricExplorerUrl.js.map +1 -0
- package/build/dist/Utils/Metrics/MetricFormulaEvaluator.js +296 -37
- package/build/dist/Utils/Metrics/MetricFormulaEvaluator.js.map +1 -1
- package/build/dist/Utils/Monitor/NetworkTopologyUtil.js +176 -40
- package/build/dist/Utils/Monitor/NetworkTopologyUtil.js.map +1 -1
- package/build/dist/Utils/ValueFormatter.js +20 -1
- package/build/dist/Utils/ValueFormatter.js.map +1 -1
- package/package.json +2 -2
|
@@ -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
|
|
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 (!
|
|
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
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
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
|
-
|
|
83
|
-
|
|
84
|
-
|
|
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
|
-
((
|
|
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()] =
|
|
238
|
+
variableMap[alias.toLowerCase()] = {
|
|
239
|
+
result,
|
|
240
|
+
groupByAttributeKeys,
|
|
241
|
+
};
|
|
161
242
|
}
|
|
162
243
|
return variableMap;
|
|
163
244
|
}
|
|
164
|
-
|
|
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 =
|
|
390
|
+
const series = seriesByVariable[variable];
|
|
168
391
|
if (!series) {
|
|
169
392
|
continue;
|
|
170
393
|
}
|
|
171
|
-
for (const sample of series
|
|
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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"}
|