@oneuptime/common 11.6.0 → 11.6.2
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/AnalyticsBaseModel/AnalyticsBaseModel.ts +41 -24
- package/Models/AnalyticsModels/Index.ts +4 -0
- package/Models/AnalyticsModels/KubernetesCostAllocation.ts +842 -0
- package/Models/AnalyticsModels/MetricBaselineHourly.ts +2 -0
- package/Models/AnalyticsModels/MetricItemAggMV1m.ts +5 -2
- package/Models/AnalyticsModels/MetricItemAggMV1mByContainer.ts +5 -2
- package/Models/AnalyticsModels/MetricItemAggMV1mByHostV2.ts +5 -2
- package/Models/AnalyticsModels/MetricItemAggMV1mByK8sCluster.ts +5 -2
- package/Models/AnalyticsModels/MetricItemAggMV1mByService.ts +5 -2
- package/Models/AnalyticsModels/NetworkFlow.ts +54 -0
- package/Models/AnalyticsModels/SloHistory.ts +240 -0
- package/Models/DatabaseModels/Index.ts +20 -0
- package/Models/DatabaseModels/NetworkDevice.ts +453 -6
- package/Models/DatabaseModels/NetworkDeviceDiscoveryScan.ts +7 -6
- package/Models/DatabaseModels/NetworkEndpoint.ts +753 -0
- package/Models/DatabaseModels/NetworkSite.ts +1155 -0
- package/Models/DatabaseModels/NetworkSiteAssignmentRule.ts +517 -0
- package/Models/DatabaseModels/NetworkSiteLink.ts +611 -0
- package/Models/DatabaseModels/NetworkSiteStatusTimeline.ts +520 -0
- package/Models/DatabaseModels/NetworkSiteType.ts +499 -0
- package/Models/DatabaseModels/ServiceLevelObjective.ts +1106 -0
- package/Models/DatabaseModels/ServiceLevelObjectiveBurnRateRule.ts +762 -0
- package/Models/DatabaseModels/ServiceLevelObjectiveOwnerTeam.ts +444 -0
- package/Models/DatabaseModels/ServiceLevelObjectiveOwnerUser.ts +443 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1784757142154-AddNetworkSiteHierarchyAndEndpoints.ts +359 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1784897317860-AddNetworkSiteAlerting.ts +48 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1784970388777-AddNetworkDevicePollingColumns.ts +65 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1784986826214-AddNetworkSiteTypeTable.ts +88 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1784987015619-AddServiceLevelObjective.ts +391 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +10 -0
- package/Server/Services/AnalyticsDatabaseService.ts +38 -10
- package/Server/Services/Index.ts +24 -0
- package/Server/Services/KubernetesCostAllocationService.ts +14 -0
- package/Server/Services/MetricService.ts +21 -2
- package/Server/Services/MonitorService.ts +22 -0
- package/Server/Services/NetworkDeviceService.ts +438 -2
- package/Server/Services/NetworkEndpointService.ts +414 -0
- package/Server/Services/NetworkSiteAssignmentRuleService.ts +98 -0
- package/Server/Services/NetworkSiteLinkService.ts +10 -0
- package/Server/Services/NetworkSiteService.ts +1254 -0
- package/Server/Services/NetworkSiteStatusTimelineService.ts +10 -0
- package/Server/Services/NetworkSiteTypeService.ts +10 -0
- package/Server/Services/ProjectService.ts +122 -2
- package/Server/Services/ServiceLevelObjectiveBurnRateRuleService.ts +457 -0
- package/Server/Services/ServiceLevelObjectiveOwnerTeamService.ts +10 -0
- package/Server/Services/ServiceLevelObjectiveOwnerUserService.ts +10 -0
- package/Server/Services/ServiceLevelObjectiveService.ts +677 -0
- package/Server/Services/SloHistoryService.ts +101 -0
- package/Server/Services/UserNotificationSettingService.ts +37 -0
- package/Server/Types/AnalyticsDatabase/AggregateBy.ts +9 -0
- package/Server/Types/Database/Permissions/OwnerTableRegistry.ts +15 -0
- package/Server/Utils/AnalyticsDatabase/Statement.ts +39 -3
- package/Server/Utils/AnalyticsDatabase/StatementGenerator.ts +128 -52
- package/Server/Utils/Memory.ts +9 -1
- package/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.ts +190 -12
- package/Server/Utils/Monitor/Data/OuiVendors.json +6920 -0
- package/Server/Utils/Monitor/DnsResolutionCache.ts +129 -0
- package/Server/Utils/Monitor/MonitorResource.ts +4 -30
- package/Server/Utils/Monitor/NetworkDeviceHydrationUtil.ts +214 -39
- package/Server/Utils/Monitor/NetworkDeviceMetricUtil.ts +343 -0
- package/Server/Utils/Monitor/NetworkDeviceWalkUtil.ts +251 -0
- package/Server/Utils/Monitor/NetworkInventoryUtil.ts +176 -142
- package/Server/Utils/Monitor/OuiLookupUtil.ts +49 -0
- package/Server/Utils/Monitor/SnmpInterfaceRateUtil.ts +17 -13
- package/Server/Utils/WhatsAppTemplateUtil.ts +7 -3
- package/Tests/Models/AnalyticsModels/AnalyticsBaseModel.test.ts +122 -0
- package/Tests/Models/AnalyticsModels/KubernetesCostAllocation.test.ts +135 -0
- package/Tests/Models/NetworkSiteHierarchy.test.ts +134 -0
- package/Tests/Server/Services/AnalyticsDatabaseService.test.ts +239 -0
- package/Tests/Server/Services/KubernetesCostAllocationAggregate.test.ts +338 -0
- package/Tests/Server/Services/MetricServiceAggregate.test.ts +142 -0
- package/Tests/Server/Services/NetworkDeviceSiteAssignment.test.ts +484 -0
- package/Tests/Server/Services/NetworkEndpointServiceUpsert.test.ts +686 -0
- package/Tests/Server/Services/NetworkSiteAssignmentRuleService.test.ts +185 -0
- package/Tests/Server/Services/NetworkSiteService.test.ts +1354 -0
- package/Tests/Server/Services/ServiceLevelObjectiveBurnRateRuleService.test.ts +1313 -0
- package/Tests/Server/Services/ServiceLevelObjectiveService.test.ts +1988 -0
- package/Tests/Server/Utils/AnalyticsDatabase/ClusterAwareSchema.test.ts +164 -3
- package/Tests/Server/Utils/AnalyticsDatabase/Statement.test.ts +22 -0
- package/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.ts +503 -0
- package/Tests/Server/Utils/Encryption.test.ts +70 -0
- package/Tests/Server/Utils/FileAttachmentMarkdownUtil.test.ts +225 -0
- package/Tests/Server/Utils/JsonWebToken.test.ts +175 -0
- package/Tests/Server/Utils/LocalFile.test.ts +258 -0
- package/Tests/Server/Utils/Memory.test.ts +213 -0
- package/Tests/Server/Utils/Monitor/Criteria/LogMonitorCriteria.test.ts +30 -0
- package/Tests/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.test.ts +385 -0
- package/Tests/Server/Utils/Monitor/DnsResolutionCache.test.ts +194 -0
- package/Tests/Server/Utils/Monitor/NetworkDeviceHydrationUtil.test.ts +155 -0
- package/Tests/Server/Utils/Monitor/NetworkDeviceWalkUtil.test.ts +600 -0
- package/Tests/Server/Utils/Monitor/NetworkInventoryUtil.test.ts +151 -124
- package/Tests/Server/Utils/Monitor/SnmpInterfaceRateUtil.test.ts +496 -0
- package/Tests/Server/Utils/MonitorCriteriaDataExtractor.test.ts +175 -0
- package/Tests/Server/Utils/MonitorCriteriaMessageFormatter.test.ts +282 -0
- package/Tests/Server/Utils/OuiLookupUtil.test.ts +59 -0
- package/Tests/Server/Utils/SeriesResourceLabels.test.ts +117 -0
- package/Tests/Server/Utils/StackTraceParser.test.ts +370 -0
- package/Tests/Server/Utils/Stream.test.ts +87 -0
- package/Tests/Server/Utils/ValidateGlobalProviderProjectTeams.test.ts +221 -0
- package/Tests/Server/Utils/WhatsAppTemplateUtil.test.ts +199 -0
- package/Tests/Types/Database/CompareOperatorWireSerialization.test.ts +33 -0
- package/Tests/Types/Email.test.ts +198 -0
- package/Tests/Types/HashCode.test.ts +41 -0
- package/Tests/Types/Kubernetes/KubernetesObjectParser.test.ts +177 -0
- package/Tests/Types/Log/LogQueryParser.test.ts +186 -0
- package/Tests/Types/Log/LogQueryToFilter.test.ts +111 -0
- package/Tests/Types/Monitor/MonitorStepNetworkDeviceMonitor.test.ts +141 -1
- package/Tests/Types/Monitor/MonitorType.test.ts +59 -1
- package/Tests/Types/Monitor/NetworkDeviceAlertPack.test.ts +97 -0
- package/Tests/Types/Monitor/SnmpEndpointDiscovery.test.ts +151 -0
- package/Tests/Types/Monitor/SnmpVendorTemplate.test.ts +110 -6
- package/Tests/Types/NetworkSite/DefaultNetworkSiteType.test.ts +129 -0
- package/Tests/Types/SerializableObjectDictionary.test.ts +166 -0
- package/Tests/Types/Time/RangeStartAndEndDateTime.test.ts +98 -0
- package/Tests/Types/WebsiteRequest.test.ts +230 -0
- package/Tests/UI/Components/EntityFilterRoundTrip.test.tsx +103 -0
- package/Tests/UI/Components/ModelTable/BaseModelTableUrlState.test.tsx +612 -0
- package/Tests/UI/Components/ModelTable/FilterDataToQuery.test.ts +275 -0
- package/Tests/UI/Utils/LogExport.test.ts +159 -0
- package/Tests/UI/Utils/Navigation.test.ts +183 -0
- package/Tests/UI/Utils/TableFilterUrlState.test.ts +539 -0
- package/Tests/UI/Utils/TableViewUrlState.test.ts +272 -0
- package/Tests/Utils/Base64.test.ts +51 -0
- package/Tests/Utils/Boolean.test.ts +76 -0
- package/Tests/Utils/Crypto.test.ts +48 -0
- package/Tests/Utils/Dashboard/DashboardSloComponent.test.ts +259 -0
- package/Tests/Utils/Dashboard/ModelQueryVariableInterpolation.test.ts +162 -0
- package/Tests/Utils/Dashboard/VariableInterpolation.test.ts +197 -0
- package/Tests/Utils/Enum.test.ts +54 -0
- package/Tests/Utils/IpCanonicalUtil.test.ts +85 -0
- package/Tests/Utils/Metrics/MetricSeriesFingerprint.test.ts +160 -0
- package/Tests/Utils/Monitor/EndpointAttachmentUtil.test.ts +836 -0
- package/Tests/Utils/Monitor/MonitorMetricType.test.ts +218 -0
- package/Tests/Utils/Monitor/NetworkTopologyUtil.test.ts +447 -0
- package/Tests/Utils/NetworkSite/CidrMatchUtil.test.ts +440 -0
- package/Tests/Utils/NetworkSite/MaterializedPathUtil.test.ts +205 -0
- package/Tests/Utils/NetworkSite/SiteStatusRollupUtil.test.ts +221 -0
- package/Tests/Utils/NetworkSite/SiteUptimeUtil.test.ts +283 -0
- package/Tests/Utils/ObjectUtil.test.ts +30 -0
- package/Tests/Utils/Slo/SloStatusColor.test.ts +89 -0
- package/Tests/Utils/Slo/SloUtil.test.ts +1980 -0
- package/Tests/Utils/Slo/SloWidgetFormat.test.ts +605 -0
- package/Tests/Utils/TechStack.test.ts +50 -0
- package/Tests/Utils/Traces/CriticalPath.test.ts +178 -0
- package/Tests/Utils/ValueFormatter.test.ts +305 -0
- package/Types/AnalyticsDatabase/AnalyticsTableName.ts +10 -0
- package/Types/AnalyticsDatabase/TableColumn.ts +23 -0
- package/Types/BaseDatabase/EqualTo.ts +9 -1
- package/Types/BaseDatabase/EqualToOrNull.ts +9 -1
- package/Types/BaseDatabase/NotEqual.ts +9 -1
- package/Types/Dashboard/DashboardComponentType.ts +1 -0
- package/Types/Dashboard/DashboardComponents/ComponentArgument.ts +1 -0
- package/Types/Dashboard/DashboardComponents/DashboardSloComponent.ts +42 -0
- package/Types/Dashboard/DashboardTemplates.ts +214 -0
- package/Types/Email/EmailTemplateType.ts +2 -0
- package/Types/Kubernetes/KubernetesCostIngest.ts +79 -0
- package/Types/Monitor/CriteriaFilter.ts +9 -0
- package/Types/Monitor/MonitorStep.ts +5 -8
- package/Types/Monitor/MonitorStepNetworkDeviceMonitor.ts +27 -5
- package/Types/Monitor/MonitorType.ts +15 -5
- package/Types/Monitor/SnmpMonitor/ArpEntry.ts +14 -0
- package/Types/Monitor/SnmpMonitor/FdbEntry.ts +18 -0
- package/Types/Monitor/SnmpMonitor/NetworkDeviceAlertPack.ts +10 -3
- package/Types/Monitor/SnmpMonitor/NetworkTopology.ts +31 -5
- package/Types/Monitor/SnmpMonitor/SnmpMonitorResponse.ts +12 -0
- package/Types/Monitor/SnmpMonitor/SnmpVendorTemplate.ts +231 -3
- package/Types/NetworkSite/DefaultNetworkSiteType.ts +20 -0
- package/Types/NotificationSetting/NotificationSettingEventType.ts +4 -0
- package/Types/Permission.ts +449 -0
- package/Types/ServiceLevelObjective/SliType.ts +6 -0
- package/Types/ServiceLevelObjective/SloMultiMonitorMode.ts +6 -0
- package/Types/ServiceLevelObjective/SloStatus.ts +9 -0
- package/Types/ServiceLevelObjective/SloWindowType.ts +6 -0
- package/Types/Telemetry/ServiceType.ts +1 -0
- package/UI/Components/Filters/EntityFilter.tsx +16 -0
- package/UI/Components/Filters/FilterViewer.tsx +22 -5
- package/UI/Components/List/List.tsx +8 -0
- package/UI/Components/ModelTable/BaseModelTable.tsx +309 -106
- package/UI/Components/ModelTable/FilterDataToQuery.ts +172 -0
- package/UI/Components/Navbar/NavBar.tsx +16 -2
- package/UI/Components/Navbar/NavBarMenuModal.tsx +3 -3
- package/UI/Utils/Navigation.ts +10 -0
- package/UI/Utils/TableFilterUrlState.ts +204 -17
- package/UI/Utils/TableViewUrlState.ts +165 -0
- package/Utils/Dashboard/Components/DashboardSloComponent.ts +114 -0
- package/Utils/Dashboard/Components/Index.ts +7 -0
- package/Utils/IpCanonicalUtil.ts +134 -0
- package/Utils/Monitor/EndpointAttachmentUtil.ts +508 -0
- package/Utils/Monitor/NetworkTopologyUtil.ts +157 -5
- package/Utils/NetworkSite/CidrMatchUtil.ts +296 -0
- package/Utils/NetworkSite/MaterializedPathUtil.ts +115 -0
- package/Utils/NetworkSite/SiteStatusRollupUtil.ts +97 -0
- package/Utils/NetworkSite/SiteUptimeUtil.ts +111 -0
- package/Utils/Slo/SloStatusColor.ts +54 -0
- package/Utils/Slo/SloUtil.ts +637 -0
- package/Utils/Slo/SloWidgetFormat.ts +383 -0
- package/build/dist/Models/AnalyticsModels/AnalyticsBaseModel/AnalyticsBaseModel.js +25 -20
- package/build/dist/Models/AnalyticsModels/AnalyticsBaseModel/AnalyticsBaseModel.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/Index.js +4 -0
- package/build/dist/Models/AnalyticsModels/Index.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/KubernetesCostAllocation.js +713 -0
- package/build/dist/Models/AnalyticsModels/KubernetesCostAllocation.js.map +1 -0
- package/build/dist/Models/AnalyticsModels/MetricBaselineHourly.js +2 -0
- package/build/dist/Models/AnalyticsModels/MetricBaselineHourly.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/MetricItemAggMV1m.js +5 -2
- package/build/dist/Models/AnalyticsModels/MetricItemAggMV1m.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByContainer.js +5 -2
- package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByContainer.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByHostV2.js +5 -2
- package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByHostV2.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByK8sCluster.js +5 -2
- package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByK8sCluster.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByService.js +5 -2
- package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByService.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/NetworkFlow.js +44 -0
- package/build/dist/Models/AnalyticsModels/NetworkFlow.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/SloHistory.js +215 -0
- package/build/dist/Models/AnalyticsModels/SloHistory.js.map +1 -0
- package/build/dist/Models/DatabaseModels/Index.js +20 -0
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkDevice.js +458 -6
- package/build/dist/Models/DatabaseModels/NetworkDevice.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js +0 -6
- package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkEndpoint.js +779 -0
- package/build/dist/Models/DatabaseModels/NetworkEndpoint.js.map +1 -0
- package/build/dist/Models/DatabaseModels/NetworkSite.js +1180 -0
- package/build/dist/Models/DatabaseModels/NetworkSite.js.map +1 -0
- package/build/dist/Models/DatabaseModels/NetworkSiteAssignmentRule.js +534 -0
- package/build/dist/Models/DatabaseModels/NetworkSiteAssignmentRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/NetworkSiteLink.js +629 -0
- package/build/dist/Models/DatabaseModels/NetworkSiteLink.js.map +1 -0
- package/build/dist/Models/DatabaseModels/NetworkSiteStatusTimeline.js +538 -0
- package/build/dist/Models/DatabaseModels/NetworkSiteStatusTimeline.js.map +1 -0
- package/build/dist/Models/DatabaseModels/NetworkSiteType.js +522 -0
- package/build/dist/Models/DatabaseModels/NetworkSiteType.js.map +1 -0
- package/build/dist/Models/DatabaseModels/ServiceLevelObjective.js +1124 -0
- package/build/dist/Models/DatabaseModels/ServiceLevelObjective.js.map +1 -0
- package/build/dist/Models/DatabaseModels/ServiceLevelObjectiveBurnRateRule.js +769 -0
- package/build/dist/Models/DatabaseModels/ServiceLevelObjectiveBurnRateRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/ServiceLevelObjectiveOwnerTeam.js +460 -0
- package/build/dist/Models/DatabaseModels/ServiceLevelObjectiveOwnerTeam.js.map +1 -0
- package/build/dist/Models/DatabaseModels/ServiceLevelObjectiveOwnerUser.js +459 -0
- package/build/dist/Models/DatabaseModels/ServiceLevelObjectiveOwnerUser.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784757142154-AddNetworkSiteHierarchyAndEndpoints.js +130 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784757142154-AddNetworkSiteHierarchyAndEndpoints.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784897317860-AddNetworkSiteAlerting.js +31 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784897317860-AddNetworkSiteAlerting.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784970388777-AddNetworkDevicePollingColumns.js +36 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784970388777-AddNetworkDevicePollingColumns.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784986826214-AddNetworkSiteTypeTable.js +49 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784986826214-AddNetworkSiteTypeTable.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784987015619-AddServiceLevelObjective.js +140 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1784987015619-AddServiceLevelObjective.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +10 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Services/AnalyticsDatabaseService.js +32 -7
- package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
- package/build/dist/Server/Services/Index.js +24 -0
- package/build/dist/Server/Services/Index.js.map +1 -1
- package/build/dist/Server/Services/KubernetesCostAllocationService.js +12 -0
- package/build/dist/Server/Services/KubernetesCostAllocationService.js.map +1 -0
- package/build/dist/Server/Services/MetricService.js +21 -3
- package/build/dist/Server/Services/MetricService.js.map +1 -1
- package/build/dist/Server/Services/MonitorService.js +19 -0
- package/build/dist/Server/Services/MonitorService.js.map +1 -1
- package/build/dist/Server/Services/NetworkDeviceService.js +351 -1
- package/build/dist/Server/Services/NetworkDeviceService.js.map +1 -1
- package/build/dist/Server/Services/NetworkEndpointService.js +319 -0
- package/build/dist/Server/Services/NetworkEndpointService.js.map +1 -0
- package/build/dist/Server/Services/NetworkSiteAssignmentRuleService.js +90 -0
- package/build/dist/Server/Services/NetworkSiteAssignmentRuleService.js.map +1 -0
- package/build/dist/Server/Services/NetworkSiteLinkService.js +9 -0
- package/build/dist/Server/Services/NetworkSiteLinkService.js.map +1 -0
- package/build/dist/Server/Services/NetworkSiteService.js +1038 -0
- package/build/dist/Server/Services/NetworkSiteService.js.map +1 -0
- package/build/dist/Server/Services/NetworkSiteStatusTimelineService.js +9 -0
- package/build/dist/Server/Services/NetworkSiteStatusTimelineService.js.map +1 -0
- package/build/dist/Server/Services/NetworkSiteTypeService.js +9 -0
- package/build/dist/Server/Services/NetworkSiteTypeService.js.map +1 -0
- package/build/dist/Server/Services/ProjectService.js +98 -2
- package/build/dist/Server/Services/ProjectService.js.map +1 -1
- package/build/dist/Server/Services/ServiceLevelObjectiveBurnRateRuleService.js +358 -0
- package/build/dist/Server/Services/ServiceLevelObjectiveBurnRateRuleService.js.map +1 -0
- package/build/dist/Server/Services/ServiceLevelObjectiveOwnerTeamService.js +9 -0
- package/build/dist/Server/Services/ServiceLevelObjectiveOwnerTeamService.js.map +1 -0
- package/build/dist/Server/Services/ServiceLevelObjectiveOwnerUserService.js +9 -0
- package/build/dist/Server/Services/ServiceLevelObjectiveOwnerUserService.js.map +1 -0
- package/build/dist/Server/Services/ServiceLevelObjectiveService.js +582 -0
- package/build/dist/Server/Services/ServiceLevelObjectiveService.js.map +1 -0
- package/build/dist/Server/Services/SloHistoryService.js +77 -0
- package/build/dist/Server/Services/SloHistoryService.js.map +1 -0
- package/build/dist/Server/Services/UserNotificationSettingService.js +20 -0
- package/build/dist/Server/Services/UserNotificationSettingService.js.map +1 -1
- package/build/dist/Server/Types/AnalyticsDatabase/AggregateBy.js +9 -0
- package/build/dist/Server/Types/AnalyticsDatabase/AggregateBy.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js +15 -0
- package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js.map +1 -1
- package/build/dist/Server/Utils/AnalyticsDatabase/Statement.js +31 -0
- package/build/dist/Server/Utils/AnalyticsDatabase/Statement.js.map +1 -1
- package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js +105 -52
- package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js.map +1 -1
- package/build/dist/Server/Utils/Memory.js +9 -1
- package/build/dist/Server/Utils/Memory.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.js +132 -10
- package/build/dist/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/Data/OuiVendors.json +6920 -0
- package/build/dist/Server/Utils/Monitor/DnsResolutionCache.js +77 -0
- package/build/dist/Server/Utils/Monitor/DnsResolutionCache.js.map +1 -0
- package/build/dist/Server/Utils/Monitor/MonitorResource.js +21 -41
- package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/NetworkDeviceHydrationUtil.js +152 -40
- package/build/dist/Server/Utils/Monitor/NetworkDeviceHydrationUtil.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/NetworkDeviceMetricUtil.js +262 -0
- package/build/dist/Server/Utils/Monitor/NetworkDeviceMetricUtil.js.map +1 -0
- package/build/dist/Server/Utils/Monitor/NetworkDeviceWalkUtil.js +201 -0
- package/build/dist/Server/Utils/Monitor/NetworkDeviceWalkUtil.js.map +1 -0
- package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js +152 -120
- package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/OuiLookupUtil.js +44 -0
- package/build/dist/Server/Utils/Monitor/OuiLookupUtil.js.map +1 -0
- package/build/dist/Server/Utils/Monitor/SnmpInterfaceRateUtil.js +10 -10
- package/build/dist/Server/Utils/Monitor/SnmpInterfaceRateUtil.js.map +1 -1
- package/build/dist/Server/Utils/WhatsAppTemplateUtil.js +5 -0
- package/build/dist/Server/Utils/WhatsAppTemplateUtil.js.map +1 -1
- package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js +10 -0
- package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js.map +1 -1
- package/build/dist/Types/AnalyticsDatabase/TableColumn.js +7 -0
- package/build/dist/Types/AnalyticsDatabase/TableColumn.js.map +1 -1
- package/build/dist/Types/BaseDatabase/EqualTo.js +9 -1
- package/build/dist/Types/BaseDatabase/EqualTo.js.map +1 -1
- package/build/dist/Types/BaseDatabase/EqualToOrNull.js +9 -1
- package/build/dist/Types/BaseDatabase/EqualToOrNull.js.map +1 -1
- package/build/dist/Types/BaseDatabase/NotEqual.js +9 -1
- package/build/dist/Types/BaseDatabase/NotEqual.js.map +1 -1
- package/build/dist/Types/Dashboard/DashboardComponentType.js +1 -0
- package/build/dist/Types/Dashboard/DashboardComponentType.js.map +1 -1
- package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js +1 -0
- package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js.map +1 -1
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardSloComponent.js +23 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardSloComponent.js.map +1 -0
- package/build/dist/Types/Dashboard/DashboardTemplates.js +205 -0
- package/build/dist/Types/Dashboard/DashboardTemplates.js.map +1 -1
- package/build/dist/Types/Email/EmailTemplateType.js +1 -0
- package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
- package/build/dist/Types/Kubernetes/KubernetesCostIngest.js +21 -0
- package/build/dist/Types/Kubernetes/KubernetesCostIngest.js.map +1 -0
- package/build/dist/Types/Monitor/CriteriaFilter.js +1 -0
- package/build/dist/Types/Monitor/CriteriaFilter.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorStep.js +5 -5
- package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorStepNetworkDeviceMonitor.js +8 -0
- package/build/dist/Types/Monitor/MonitorStepNetworkDeviceMonitor.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorType.js +15 -5
- package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
- package/build/dist/Types/Monitor/SnmpMonitor/ArpEntry.js +2 -0
- package/build/dist/Types/Monitor/SnmpMonitor/ArpEntry.js.map +1 -0
- package/build/dist/Types/Monitor/SnmpMonitor/FdbEntry.js +2 -0
- package/build/dist/Types/Monitor/SnmpMonitor/FdbEntry.js.map +1 -0
- package/build/dist/Types/Monitor/SnmpMonitor/NetworkDeviceAlertPack.js +9 -3
- package/build/dist/Types/Monitor/SnmpMonitor/NetworkDeviceAlertPack.js.map +1 -1
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpVendorTemplate.js +217 -3
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpVendorTemplate.js.map +1 -1
- package/build/dist/Types/NetworkSite/DefaultNetworkSiteType.js +21 -0
- package/build/dist/Types/NetworkSite/DefaultNetworkSiteType.js.map +1 -0
- package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js +3 -0
- package/build/dist/Types/NotificationSetting/NotificationSettingEventType.js.map +1 -1
- package/build/dist/Types/Permission.js +409 -0
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/Types/ServiceLevelObjective/SliType.js +7 -0
- package/build/dist/Types/ServiceLevelObjective/SliType.js.map +1 -0
- package/build/dist/Types/ServiceLevelObjective/SloMultiMonitorMode.js +7 -0
- package/build/dist/Types/ServiceLevelObjective/SloMultiMonitorMode.js.map +1 -0
- package/build/dist/Types/ServiceLevelObjective/SloStatus.js +10 -0
- package/build/dist/Types/ServiceLevelObjective/SloStatus.js.map +1 -0
- package/build/dist/Types/ServiceLevelObjective/SloWindowType.js +7 -0
- package/build/dist/Types/ServiceLevelObjective/SloWindowType.js.map +1 -0
- package/build/dist/Types/Telemetry/ServiceType.js +1 -0
- package/build/dist/Types/Telemetry/ServiceType.js.map +1 -1
- package/build/dist/UI/Components/Filters/EntityFilter.js +15 -0
- package/build/dist/UI/Components/Filters/EntityFilter.js.map +1 -1
- package/build/dist/UI/Components/Filters/FilterViewer.js +19 -4
- package/build/dist/UI/Components/Filters/FilterViewer.js.map +1 -1
- package/build/dist/UI/Components/List/List.js +1 -1
- package/build/dist/UI/Components/List/List.js.map +1 -1
- package/build/dist/UI/Components/ModelTable/BaseModelTable.js +235 -89
- package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
- package/build/dist/UI/Components/ModelTable/FilterDataToQuery.js +96 -0
- package/build/dist/UI/Components/ModelTable/FilterDataToQuery.js.map +1 -0
- package/build/dist/UI/Components/Navbar/NavBar.js +14 -2
- package/build/dist/UI/Components/Navbar/NavBar.js.map +1 -1
- package/build/dist/UI/Components/Navbar/NavBarMenuModal.js +3 -2
- package/build/dist/UI/Components/Navbar/NavBarMenuModal.js.map +1 -1
- package/build/dist/UI/Utils/Navigation.js +9 -0
- package/build/dist/UI/Utils/Navigation.js.map +1 -1
- package/build/dist/UI/Utils/TableFilterUrlState.js +159 -15
- package/build/dist/UI/Utils/TableFilterUrlState.js.map +1 -1
- package/build/dist/UI/Utils/TableViewUrlState.js +103 -0
- package/build/dist/UI/Utils/TableViewUrlState.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/DashboardSloComponent.js +93 -0
- package/build/dist/Utils/Dashboard/Components/DashboardSloComponent.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/Index.js +4 -0
- package/build/dist/Utils/Dashboard/Components/Index.js.map +1 -1
- package/build/dist/Utils/IpCanonicalUtil.js +110 -0
- package/build/dist/Utils/IpCanonicalUtil.js.map +1 -0
- package/build/dist/Utils/Monitor/EndpointAttachmentUtil.js +311 -0
- package/build/dist/Utils/Monitor/EndpointAttachmentUtil.js.map +1 -0
- package/build/dist/Utils/Monitor/NetworkTopologyUtil.js +98 -5
- package/build/dist/Utils/Monitor/NetworkTopologyUtil.js.map +1 -1
- package/build/dist/Utils/NetworkSite/CidrMatchUtil.js +222 -0
- package/build/dist/Utils/NetworkSite/CidrMatchUtil.js.map +1 -0
- package/build/dist/Utils/NetworkSite/MaterializedPathUtil.js +89 -0
- package/build/dist/Utils/NetworkSite/MaterializedPathUtil.js.map +1 -0
- package/build/dist/Utils/NetworkSite/SiteStatusRollupUtil.js +60 -0
- package/build/dist/Utils/NetworkSite/SiteStatusRollupUtil.js.map +1 -0
- package/build/dist/Utils/NetworkSite/SiteUptimeUtil.js +76 -0
- package/build/dist/Utils/NetworkSite/SiteUptimeUtil.js.map +1 -0
- package/build/dist/Utils/Slo/SloStatusColor.js +18 -0
- package/build/dist/Utils/Slo/SloStatusColor.js.map +1 -0
- package/build/dist/Utils/Slo/SloUtil.js +393 -0
- package/build/dist/Utils/Slo/SloUtil.js.map +1 -0
- package/build/dist/Utils/Slo/SloWidgetFormat.js +174 -0
- package/build/dist/Utils/Slo/SloWidgetFormat.js.map +1 -0
- package/package.json +2 -2
- package/Types/Dashboard/DashboardComponents/Index.ts +0 -7
- package/build/dist/Types/Dashboard/DashboardComponents/Index.js +0 -8
- package/build/dist/Types/Dashboard/DashboardComponents/Index.js.map +0 -1
|
@@ -234,6 +234,8 @@ GROUP BY projectId, name, primaryEntityId, day, hourOfWeek`,
|
|
|
234
234
|
tableSettings:
|
|
235
235
|
"ttl_only_drop_parts = 1, non_replicated_deduplication_window = 10000",
|
|
236
236
|
ttlExpression: "day + INTERVAL 90 DAY",
|
|
237
|
+
includeBaseColumns: false,
|
|
238
|
+
defaultSortColumn: "day",
|
|
237
239
|
});
|
|
238
240
|
}
|
|
239
241
|
}
|
|
@@ -110,9 +110,10 @@ export default class MetricItemAggMV1m extends AnalyticsBaseModel {
|
|
|
110
110
|
key: "retentionDate",
|
|
111
111
|
title: "Retention Date",
|
|
112
112
|
description:
|
|
113
|
-
"
|
|
113
|
+
"Latest date after which this aggregate bucket is eligible for TTL deletion. Stored as SimpleAggregateFunction(max, DateTime) so partial rows keep the maximum expiry when AggregatingMergeTree merges them.",
|
|
114
114
|
required: true,
|
|
115
115
|
type: TableColumnType.Date,
|
|
116
|
+
simpleAggregateFunction: "max",
|
|
116
117
|
});
|
|
117
118
|
|
|
118
119
|
super({
|
|
@@ -156,7 +157,7 @@ SELECT
|
|
|
156
157
|
countState(toFloat64(coalesce(value, sum, 0))) AS valueCountState,
|
|
157
158
|
minState(toFloat64(coalesce(value, sum, 0))) AS valueMinState,
|
|
158
159
|
maxState(toFloat64(coalesce(value, sum, 0))) AS valueMaxState,
|
|
159
|
-
|
|
160
|
+
maxSimpleState(retentionDate) AS retentionDate
|
|
160
161
|
FROM MetricItemV3
|
|
161
162
|
GROUP BY projectId, name, primaryEntityId, bucketTime`,
|
|
162
163
|
},
|
|
@@ -172,6 +173,8 @@ GROUP BY projectId, name, primaryEntityId, bucketTime`,
|
|
|
172
173
|
tableSettings:
|
|
173
174
|
"ttl_only_drop_parts = 1, non_replicated_deduplication_window = 10000",
|
|
174
175
|
ttlExpression: "retentionDate DELETE",
|
|
176
|
+
includeBaseColumns: false,
|
|
177
|
+
defaultSortColumn: "bucketTime",
|
|
175
178
|
});
|
|
176
179
|
}
|
|
177
180
|
}
|
|
@@ -111,9 +111,10 @@ export default class MetricItemAggMV1mByContainer extends AnalyticsBaseModel {
|
|
|
111
111
|
key: "retentionDate",
|
|
112
112
|
title: "Retention Date",
|
|
113
113
|
description:
|
|
114
|
-
"
|
|
114
|
+
"Latest date after which this aggregate bucket is eligible for TTL deletion. Stored as SimpleAggregateFunction(max, DateTime) so partial rows keep the maximum expiry when AggregatingMergeTree merges them.",
|
|
115
115
|
required: true,
|
|
116
116
|
type: TableColumnType.Date,
|
|
117
|
+
simpleAggregateFunction: "max",
|
|
117
118
|
});
|
|
118
119
|
|
|
119
120
|
super({
|
|
@@ -159,7 +160,7 @@ SELECT
|
|
|
159
160
|
countState(toFloat64(coalesce(value, sum, 0))) AS valueCountState,
|
|
160
161
|
minState(toFloat64(coalesce(value, sum, 0))) AS valueMinState,
|
|
161
162
|
maxState(toFloat64(coalesce(value, sum, 0))) AS valueMaxState,
|
|
162
|
-
|
|
163
|
+
maxSimpleState(retentionDate) AS retentionDate
|
|
163
164
|
FROM MetricItemV3
|
|
164
165
|
WHERE containerEntityKey != ''
|
|
165
166
|
GROUP BY projectId, name, containerEntityKey, bucketTime`,
|
|
@@ -173,6 +174,8 @@ GROUP BY projectId, name, containerEntityKey, bucketTime`,
|
|
|
173
174
|
tableSettings:
|
|
174
175
|
"ttl_only_drop_parts = 1, non_replicated_deduplication_window = 10000",
|
|
175
176
|
ttlExpression: "retentionDate DELETE",
|
|
177
|
+
includeBaseColumns: false,
|
|
178
|
+
defaultSortColumn: "bucketTime",
|
|
176
179
|
});
|
|
177
180
|
}
|
|
178
181
|
}
|
|
@@ -114,9 +114,10 @@ export default class MetricItemAggMV1mByHostV2 extends AnalyticsBaseModel {
|
|
|
114
114
|
key: "retentionDate",
|
|
115
115
|
title: "Retention Date",
|
|
116
116
|
description:
|
|
117
|
-
"
|
|
117
|
+
"Latest date after which this aggregate bucket is eligible for TTL deletion. Stored as SimpleAggregateFunction(max, DateTime) so partial rows keep the maximum expiry when AggregatingMergeTree merges them.",
|
|
118
118
|
required: true,
|
|
119
119
|
type: TableColumnType.Date,
|
|
120
|
+
simpleAggregateFunction: "max",
|
|
120
121
|
});
|
|
121
122
|
|
|
122
123
|
super({
|
|
@@ -162,7 +163,7 @@ SELECT
|
|
|
162
163
|
countState(toFloat64(coalesce(value, sum, 0))) AS valueCountState,
|
|
163
164
|
minState(toFloat64(coalesce(value, sum, 0))) AS valueMinState,
|
|
164
165
|
maxState(toFloat64(coalesce(value, sum, 0))) AS valueMaxState,
|
|
165
|
-
|
|
166
|
+
maxSimpleState(retentionDate) AS retentionDate
|
|
166
167
|
FROM MetricItemV3
|
|
167
168
|
WHERE hostEntityKey != ''
|
|
168
169
|
GROUP BY projectId, name, hostEntityKey, bucketTime`,
|
|
@@ -176,6 +177,8 @@ GROUP BY projectId, name, hostEntityKey, bucketTime`,
|
|
|
176
177
|
tableSettings:
|
|
177
178
|
"ttl_only_drop_parts = 1, non_replicated_deduplication_window = 10000",
|
|
178
179
|
ttlExpression: "retentionDate DELETE",
|
|
180
|
+
includeBaseColumns: false,
|
|
181
|
+
defaultSortColumn: "bucketTime",
|
|
179
182
|
});
|
|
180
183
|
}
|
|
181
184
|
}
|
|
@@ -110,9 +110,10 @@ export default class MetricItemAggMV1mByK8sCluster extends AnalyticsBaseModel {
|
|
|
110
110
|
key: "retentionDate",
|
|
111
111
|
title: "Retention Date",
|
|
112
112
|
description:
|
|
113
|
-
"
|
|
113
|
+
"Latest date after which this aggregate bucket is eligible for TTL deletion. Stored as SimpleAggregateFunction(max, DateTime) so partial rows keep the maximum expiry when AggregatingMergeTree merges them.",
|
|
114
114
|
required: true,
|
|
115
115
|
type: TableColumnType.Date,
|
|
116
|
+
simpleAggregateFunction: "max",
|
|
116
117
|
});
|
|
117
118
|
|
|
118
119
|
super({
|
|
@@ -160,7 +161,7 @@ SELECT
|
|
|
160
161
|
countState(toFloat64(coalesce(value, sum, 0))) AS valueCountState,
|
|
161
162
|
minState(toFloat64(coalesce(value, sum, 0))) AS valueMinState,
|
|
162
163
|
maxState(toFloat64(coalesce(value, sum, 0))) AS valueMaxState,
|
|
163
|
-
|
|
164
|
+
maxSimpleState(retentionDate) AS retentionDate
|
|
164
165
|
FROM MetricItemV3
|
|
165
166
|
WHERE k8sClusterEntityKey != ''
|
|
166
167
|
GROUP BY projectId, name, k8sClusterEntityKey, bucketTime`,
|
|
@@ -174,6 +175,8 @@ GROUP BY projectId, name, k8sClusterEntityKey, bucketTime`,
|
|
|
174
175
|
tableSettings:
|
|
175
176
|
"ttl_only_drop_parts = 1, non_replicated_deduplication_window = 10000",
|
|
176
177
|
ttlExpression: "retentionDate DELETE",
|
|
178
|
+
includeBaseColumns: false,
|
|
179
|
+
defaultSortColumn: "bucketTime",
|
|
177
180
|
});
|
|
178
181
|
}
|
|
179
182
|
}
|
|
@@ -112,9 +112,10 @@ export default class MetricItemAggMV1mByService extends AnalyticsBaseModel {
|
|
|
112
112
|
key: "retentionDate",
|
|
113
113
|
title: "Retention Date",
|
|
114
114
|
description:
|
|
115
|
-
"
|
|
115
|
+
"Latest date after which this aggregate bucket is eligible for TTL deletion. Stored as SimpleAggregateFunction(max, DateTime) so partial rows keep the maximum expiry when AggregatingMergeTree merges them.",
|
|
116
116
|
required: true,
|
|
117
117
|
type: TableColumnType.Date,
|
|
118
|
+
simpleAggregateFunction: "max",
|
|
118
119
|
});
|
|
119
120
|
|
|
120
121
|
super({
|
|
@@ -160,7 +161,7 @@ SELECT
|
|
|
160
161
|
countState(toFloat64(coalesce(value, sum, 0))) AS valueCountState,
|
|
161
162
|
minState(toFloat64(coalesce(value, sum, 0))) AS valueMinState,
|
|
162
163
|
maxState(toFloat64(coalesce(value, sum, 0))) AS valueMaxState,
|
|
163
|
-
|
|
164
|
+
maxSimpleState(retentionDate) AS retentionDate
|
|
164
165
|
FROM MetricItemV3
|
|
165
166
|
WHERE serviceEntityKey != ''
|
|
166
167
|
GROUP BY projectId, name, serviceEntityKey, bucketTime`,
|
|
@@ -174,6 +175,8 @@ GROUP BY projectId, name, serviceEntityKey, bucketTime`,
|
|
|
174
175
|
tableSettings:
|
|
175
176
|
"ttl_only_drop_parts = 1, non_replicated_deduplication_window = 10000",
|
|
176
177
|
ttlExpression: "retentionDate DELETE",
|
|
178
|
+
includeBaseColumns: false,
|
|
179
|
+
defaultSortColumn: "bucketTime",
|
|
177
180
|
});
|
|
178
181
|
}
|
|
179
182
|
}
|
|
@@ -157,6 +157,42 @@ export default class NetworkFlow extends AnalyticsBaseModel {
|
|
|
157
157
|
},
|
|
158
158
|
});
|
|
159
159
|
|
|
160
|
+
/*
|
|
161
|
+
* SNMP ifIndex of the interfaces the flow entered/left through — the
|
|
162
|
+
* key that ties flow records to NetworkInterface rows for
|
|
163
|
+
* per-interface traffic attribution. 0 when the exporter did not
|
|
164
|
+
* report one (and on rows ingested before these columns existed).
|
|
165
|
+
*/
|
|
166
|
+
const inputInterfaceIndexColumn: AnalyticsTableColumn =
|
|
167
|
+
new AnalyticsTableColumn({
|
|
168
|
+
key: "inputInterfaceIndex",
|
|
169
|
+
title: "Input Interface Index",
|
|
170
|
+
description:
|
|
171
|
+
"SNMP ifIndex of the interface the flow entered through (0 when unknown)",
|
|
172
|
+
required: true,
|
|
173
|
+
type: TableColumnType.Number,
|
|
174
|
+
accessControl: {
|
|
175
|
+
read: readPermissions,
|
|
176
|
+
create: createPermissions,
|
|
177
|
+
update: [],
|
|
178
|
+
},
|
|
179
|
+
});
|
|
180
|
+
|
|
181
|
+
const outputInterfaceIndexColumn: AnalyticsTableColumn =
|
|
182
|
+
new AnalyticsTableColumn({
|
|
183
|
+
key: "outputInterfaceIndex",
|
|
184
|
+
title: "Output Interface Index",
|
|
185
|
+
description:
|
|
186
|
+
"SNMP ifIndex of the interface the flow left through (0 when unknown)",
|
|
187
|
+
required: true,
|
|
188
|
+
type: TableColumnType.Number,
|
|
189
|
+
accessControl: {
|
|
190
|
+
read: readPermissions,
|
|
191
|
+
create: createPermissions,
|
|
192
|
+
update: [],
|
|
193
|
+
},
|
|
194
|
+
});
|
|
195
|
+
|
|
160
196
|
const octetsColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
|
|
161
197
|
key: "octets",
|
|
162
198
|
title: "Octets",
|
|
@@ -260,6 +296,8 @@ export default class NetworkFlow extends AnalyticsBaseModel {
|
|
|
260
296
|
srcPortColumn,
|
|
261
297
|
dstPortColumn,
|
|
262
298
|
protocolColumn,
|
|
299
|
+
inputInterfaceIndexColumn,
|
|
300
|
+
outputInterfaceIndexColumn,
|
|
263
301
|
octetsColumn,
|
|
264
302
|
packetsColumn,
|
|
265
303
|
flowStartAtColumn,
|
|
@@ -366,6 +404,22 @@ export default class NetworkFlow extends AnalyticsBaseModel {
|
|
|
366
404
|
this.setColumnValue("protocol", v);
|
|
367
405
|
}
|
|
368
406
|
|
|
407
|
+
public get inputInterfaceIndex(): number | undefined {
|
|
408
|
+
return this.getColumnValue("inputInterfaceIndex") as number | undefined;
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
public set inputInterfaceIndex(v: number | undefined) {
|
|
412
|
+
this.setColumnValue("inputInterfaceIndex", v);
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
public get outputInterfaceIndex(): number | undefined {
|
|
416
|
+
return this.getColumnValue("outputInterfaceIndex") as number | undefined;
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
public set outputInterfaceIndex(v: number | undefined) {
|
|
420
|
+
this.setColumnValue("outputInterfaceIndex", v);
|
|
421
|
+
}
|
|
422
|
+
|
|
369
423
|
public get octets(): number | undefined {
|
|
370
424
|
return this.getColumnValue("octets") as number | undefined;
|
|
371
425
|
}
|
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
import AnalyticsBaseModel from "./AnalyticsBaseModel/AnalyticsBaseModel";
|
|
2
|
+
import Route from "../../Types/API/Route";
|
|
3
|
+
import AnalyticsTableEngine from "../../Types/AnalyticsDatabase/AnalyticsTableEngine";
|
|
4
|
+
import AnalyticsTableName from "../../Types/AnalyticsDatabase/AnalyticsTableName";
|
|
5
|
+
import AnalyticsTableColumn from "../../Types/AnalyticsDatabase/TableColumn";
|
|
6
|
+
import TableColumnType from "../../Types/AnalyticsDatabase/TableColumnType";
|
|
7
|
+
import ObjectID from "../../Types/ObjectID";
|
|
8
|
+
import Permission from "../../Types/Permission";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Time-bucketed history of computed SLO / Error Budget numbers, written
|
|
12
|
+
* by the SLO evaluation worker and read by dashboard charts through this
|
|
13
|
+
* model's auto-generated `/aggregate` endpoint.
|
|
14
|
+
*
|
|
15
|
+
* Why a dedicated table (and NOT MetricItemV3): MetricItemV3 partitions
|
|
16
|
+
* by `toYYYYMMDD(time)` with `ttl_only_drop_parts = 1`, so a single
|
|
17
|
+
* 400-day SLO row per day would pin every daily raw-telemetry partition
|
|
18
|
+
* for 400 days. This table owns its retention (monthly partitions,
|
|
19
|
+
* `bucketStart + INTERVAL 400 DAY` TTL) so history rows never interfere
|
|
20
|
+
* with telemetry retention — and SLO rows stay out of telemetry usage
|
|
21
|
+
* billing entirely.
|
|
22
|
+
*
|
|
23
|
+
* History is POINT-IN-TIME: the evaluator writes exactly one
|
|
24
|
+
* minute-floored bucket per series per run, once, holding the numbers as
|
|
25
|
+
* computed at that moment. Retroactive edits to the underlying
|
|
26
|
+
* MonitorStatusTimeline are NOT restated into already-written buckets —
|
|
27
|
+
* the SLO overview page recomputes its current numbers from Postgres and
|
|
28
|
+
* so self-heals, while these rows remain a record of what was reported
|
|
29
|
+
* at the time. (Possible future work: restate a trailing window of
|
|
30
|
+
* buckets on every run so retroactive edits propagate into charts; the
|
|
31
|
+
* version column below already supports it, but nothing writes such
|
|
32
|
+
* rewrites today.)
|
|
33
|
+
*
|
|
34
|
+
* Why ReplacingMergeTree + `version` (MutableMetric precedent): writes
|
|
35
|
+
* are at-least-once, so the same dedupe identity
|
|
36
|
+
* (projectId, sloId, metricName, bucketStart) can rarely be written
|
|
37
|
+
* twice — a retried job, or two runs landing in the same minute. Those
|
|
38
|
+
* rows collapse to the highest `version` at merge time rather than
|
|
39
|
+
* double-counting. Merges are asynchronous, so a naive reader can
|
|
40
|
+
* transiently see both rows: read through `/aggregate` (its GROUP BY on
|
|
41
|
+
* the bucketed timestamp collapses duplicates, which is what the
|
|
42
|
+
* dashboard charts do) or dedupe explicitly via
|
|
43
|
+
* `argMax(value, version) ... GROUP BY <identity>`.
|
|
44
|
+
*
|
|
45
|
+
* `metricName` values: "sli.percent", "error.budget.remaining.percent",
|
|
46
|
+
* "burn.rate", "good.count", "total.count".
|
|
47
|
+
*/
|
|
48
|
+
export default class SloHistory extends AnalyticsBaseModel {
|
|
49
|
+
public constructor() {
|
|
50
|
+
const readPermissions: Array<Permission> = [
|
|
51
|
+
Permission.ProjectOwner,
|
|
52
|
+
Permission.ProjectAdmin,
|
|
53
|
+
Permission.ProjectMember,
|
|
54
|
+
Permission.Viewer,
|
|
55
|
+
Permission.ReadServiceLevelObjective,
|
|
56
|
+
];
|
|
57
|
+
|
|
58
|
+
const projectIdColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
|
|
59
|
+
key: "projectId",
|
|
60
|
+
title: "Project ID",
|
|
61
|
+
description: "ID of project",
|
|
62
|
+
required: true,
|
|
63
|
+
type: TableColumnType.ObjectID,
|
|
64
|
+
isTenantId: true,
|
|
65
|
+
accessControl: {
|
|
66
|
+
read: readPermissions,
|
|
67
|
+
create: [],
|
|
68
|
+
update: [],
|
|
69
|
+
},
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
const sloIdColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
|
|
73
|
+
key: "sloId",
|
|
74
|
+
title: "SLO ID",
|
|
75
|
+
description: "ID of the Service Level Objective this row belongs to.",
|
|
76
|
+
required: true,
|
|
77
|
+
type: TableColumnType.ObjectID,
|
|
78
|
+
accessControl: {
|
|
79
|
+
read: readPermissions,
|
|
80
|
+
create: [],
|
|
81
|
+
update: [],
|
|
82
|
+
},
|
|
83
|
+
});
|
|
84
|
+
|
|
85
|
+
const metricNameColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
|
|
86
|
+
key: "metricName",
|
|
87
|
+
isLowCardinality: true,
|
|
88
|
+
title: "Metric Name",
|
|
89
|
+
description:
|
|
90
|
+
"Which SLO series this row belongs to: sli.percent, error.budget.remaining.percent, burn.rate, good.count, or total.count.",
|
|
91
|
+
required: true,
|
|
92
|
+
type: TableColumnType.Text,
|
|
93
|
+
accessControl: {
|
|
94
|
+
read: readPermissions,
|
|
95
|
+
create: [],
|
|
96
|
+
update: [],
|
|
97
|
+
},
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
const bucketStartColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
|
|
101
|
+
key: "bucketStart",
|
|
102
|
+
codec: [{ codec: "DoubleDelta" }, { codec: "ZSTD", level: 1 }],
|
|
103
|
+
title: "Bucket Start",
|
|
104
|
+
description:
|
|
105
|
+
"Start of the time bucket this value was computed for. Also drives the monthly partition key and the 400-day TTL.",
|
|
106
|
+
required: true,
|
|
107
|
+
type: TableColumnType.Date,
|
|
108
|
+
accessControl: {
|
|
109
|
+
read: readPermissions,
|
|
110
|
+
create: [],
|
|
111
|
+
update: [],
|
|
112
|
+
},
|
|
113
|
+
});
|
|
114
|
+
|
|
115
|
+
const valueColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
|
|
116
|
+
key: "value",
|
|
117
|
+
codec: [{ codec: "Gorilla" }, { codec: "ZSTD", level: 1 }],
|
|
118
|
+
title: "Value",
|
|
119
|
+
description: "Computed value for this SLO series at this bucket.",
|
|
120
|
+
required: true,
|
|
121
|
+
type: TableColumnType.Decimal,
|
|
122
|
+
accessControl: {
|
|
123
|
+
read: readPermissions,
|
|
124
|
+
create: [],
|
|
125
|
+
update: [],
|
|
126
|
+
},
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
const versionColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
|
|
130
|
+
key: "version",
|
|
131
|
+
codec: [{ codec: "DoubleDelta" }, { codec: "ZSTD", level: 1 }],
|
|
132
|
+
title: "Version",
|
|
133
|
+
description:
|
|
134
|
+
"Monotonic write version (unix millis at write time) for ReplacingMergeTree dedupe and version-aware reads.",
|
|
135
|
+
required: true,
|
|
136
|
+
type: TableColumnType.UInt64,
|
|
137
|
+
accessControl: {
|
|
138
|
+
read: readPermissions,
|
|
139
|
+
create: [],
|
|
140
|
+
update: [],
|
|
141
|
+
},
|
|
142
|
+
});
|
|
143
|
+
|
|
144
|
+
super({
|
|
145
|
+
tableName: AnalyticsTableName.SloHistory,
|
|
146
|
+
/*
|
|
147
|
+
* ReplacingMergeTree resolves to Replicated*ReplacingMergeTree(version)
|
|
148
|
+
* in ClusterConfig.getStorageEngine — the version column MUST be
|
|
149
|
+
* named exactly `version` (same mechanism as MutableMetric).
|
|
150
|
+
*/
|
|
151
|
+
tableEngine: AnalyticsTableEngine.ReplacingMergeTree,
|
|
152
|
+
singularName: "SLO History",
|
|
153
|
+
pluralName: "SLO History",
|
|
154
|
+
crudApiPath: new Route("/slo-history"),
|
|
155
|
+
tableDescription:
|
|
156
|
+
"Historical SLI, error-budget, and burn-rate values per SLO, written by the SLO evaluation worker. Query via /aggregate for charts.",
|
|
157
|
+
accessControl: {
|
|
158
|
+
read: readPermissions,
|
|
159
|
+
create: [],
|
|
160
|
+
update: [],
|
|
161
|
+
delete: [],
|
|
162
|
+
},
|
|
163
|
+
tableColumns: [
|
|
164
|
+
projectIdColumn,
|
|
165
|
+
sloIdColumn,
|
|
166
|
+
metricNameColumn,
|
|
167
|
+
bucketStartColumn,
|
|
168
|
+
valueColumn,
|
|
169
|
+
versionColumn,
|
|
170
|
+
],
|
|
171
|
+
projections: [],
|
|
172
|
+
sortKeys: ["projectId", "sloId", "metricName", "bucketStart"],
|
|
173
|
+
primaryKeys: ["projectId", "sloId", "metricName", "bucketStart"],
|
|
174
|
+
/*
|
|
175
|
+
* Monthly partitions: volume is tiny (~1 row/min/SLO across 5
|
|
176
|
+
* series) and every row in a partition shares its bucketStart
|
|
177
|
+
* month, so the fixed-interval TTL below expires whole partitions
|
|
178
|
+
* cleanly under ttl_only_drop_parts.
|
|
179
|
+
*/
|
|
180
|
+
partitionKey: "toYYYYMM(bucketStart)",
|
|
181
|
+
/*
|
|
182
|
+
* Co-locate all of one SLO's series on a single shard so the
|
|
183
|
+
* read-side argMax dedupe GROUP BY aggregates per-shard cleanly.
|
|
184
|
+
*/
|
|
185
|
+
shardingKey: "cityHash64(projectId, sloId)",
|
|
186
|
+
tableSettings:
|
|
187
|
+
"ttl_only_drop_parts = 1, non_replicated_deduplication_window = 10000",
|
|
188
|
+
ttlExpression: "bucketStart + INTERVAL 400 DAY",
|
|
189
|
+
defaultSortColumn: "bucketStart",
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
public get projectId(): ObjectID | undefined {
|
|
194
|
+
return this.getColumnValue("projectId") as ObjectID | undefined;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
public set projectId(v: ObjectID | undefined) {
|
|
198
|
+
this.setColumnValue("projectId", v);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
public get sloId(): ObjectID | undefined {
|
|
202
|
+
return this.getColumnValue("sloId") as ObjectID | undefined;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
public set sloId(v: ObjectID | undefined) {
|
|
206
|
+
this.setColumnValue("sloId", v);
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
public get metricName(): string | undefined {
|
|
210
|
+
return this.getColumnValue("metricName") as string | undefined;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
public set metricName(v: string | undefined) {
|
|
214
|
+
this.setColumnValue("metricName", v);
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
public get bucketStart(): Date | undefined {
|
|
218
|
+
return this.getColumnValue("bucketStart") as Date | undefined;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
public set bucketStart(v: Date | undefined) {
|
|
222
|
+
this.setColumnValue("bucketStart", v);
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
public get value(): number | undefined {
|
|
226
|
+
return this.getColumnValue("value") as number | undefined;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
public set value(v: number | undefined) {
|
|
230
|
+
this.setColumnValue("value", v);
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
public get version(): number | undefined {
|
|
234
|
+
return this.getColumnValue("version") as number | undefined;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
public set version(v: number | undefined) {
|
|
238
|
+
this.setColumnValue("version", v);
|
|
239
|
+
}
|
|
240
|
+
}
|
|
@@ -13,6 +13,12 @@ import NetworkDeviceOwnerRule from "./NetworkDeviceOwnerRule";
|
|
|
13
13
|
import NetworkDeviceLabelRule from "./NetworkDeviceLabelRule";
|
|
14
14
|
import NetworkDeviceDiscoveryScan from "./NetworkDeviceDiscoveryScan";
|
|
15
15
|
import NetworkInterface from "./NetworkInterface";
|
|
16
|
+
import NetworkSite from "./NetworkSite";
|
|
17
|
+
import NetworkSiteType from "./NetworkSiteType";
|
|
18
|
+
import NetworkEndpoint from "./NetworkEndpoint";
|
|
19
|
+
import NetworkSiteStatusTimeline from "./NetworkSiteStatusTimeline";
|
|
20
|
+
import NetworkSiteLink from "./NetworkSiteLink";
|
|
21
|
+
import NetworkSiteAssignmentRule from "./NetworkSiteAssignmentRule";
|
|
16
22
|
import DockerHostOwnerTeam from "./DockerHostOwnerTeam";
|
|
17
23
|
import DockerHostOwnerUser from "./DockerHostOwnerUser";
|
|
18
24
|
import DockerResource from "./DockerResource";
|
|
@@ -348,6 +354,10 @@ import IncidentEpisodePrivacyRule from "./IncidentEpisodePrivacyRule";
|
|
|
348
354
|
import IncidentEpisodeLabelRule from "./IncidentEpisodeLabelRule";
|
|
349
355
|
import IncidentSlaRule from "./IncidentSlaRule";
|
|
350
356
|
import IncidentSla from "./IncidentSla";
|
|
357
|
+
import ServiceLevelObjective from "./ServiceLevelObjective";
|
|
358
|
+
import ServiceLevelObjectiveBurnRateRule from "./ServiceLevelObjectiveBurnRateRule";
|
|
359
|
+
import ServiceLevelObjectiveOwnerUser from "./ServiceLevelObjectiveOwnerUser";
|
|
360
|
+
import ServiceLevelObjectiveOwnerTeam from "./ServiceLevelObjectiveOwnerTeam";
|
|
351
361
|
import IncidentReminderRule from "./IncidentReminderRule";
|
|
352
362
|
import AlertReminderRule from "./AlertReminderRule";
|
|
353
363
|
import ScheduledMaintenanceReminderRule from "./ScheduledMaintenanceReminderRule";
|
|
@@ -527,6 +537,10 @@ const AllModelTypes: Array<{
|
|
|
527
537
|
IncidentEpisodeLabelRule,
|
|
528
538
|
IncidentSlaRule,
|
|
529
539
|
IncidentSla,
|
|
540
|
+
ServiceLevelObjective,
|
|
541
|
+
ServiceLevelObjectiveBurnRateRule,
|
|
542
|
+
ServiceLevelObjectiveOwnerUser,
|
|
543
|
+
ServiceLevelObjectiveOwnerTeam,
|
|
530
544
|
IncidentReminderRule,
|
|
531
545
|
AlertReminderRule,
|
|
532
546
|
ScheduledMaintenanceReminderRule,
|
|
@@ -780,6 +794,12 @@ const AllModelTypes: Array<{
|
|
|
780
794
|
NetworkDeviceLabelRule,
|
|
781
795
|
NetworkDeviceDiscoveryScan,
|
|
782
796
|
NetworkInterface,
|
|
797
|
+
NetworkSite,
|
|
798
|
+
NetworkSiteType,
|
|
799
|
+
NetworkEndpoint,
|
|
800
|
+
NetworkSiteStatusTimeline,
|
|
801
|
+
NetworkSiteLink,
|
|
802
|
+
NetworkSiteAssignmentRule,
|
|
783
803
|
DockerHostOwnerTeam,
|
|
784
804
|
DockerHostOwnerUser,
|
|
785
805
|
DockerResource,
|