@oneuptime/common 11.6.1 → 11.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Models/AnalyticsModels/Index.ts +4 -0
- package/Models/AnalyticsModels/KubernetesCostAllocation.ts +842 -0
- package/Models/AnalyticsModels/NetworkFlow.ts +54 -0
- package/Models/AnalyticsModels/SloHistory.ts +243 -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 +1115 -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/1785066759532-MigrationName.ts +30 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +12 -0
- package/Server/Services/AnalyticsDatabaseService.ts +25 -9
- 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 +685 -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 +87 -48
- 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/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/Statement.test.ts +22 -0
- package/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.ts +404 -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/Kubernetes/KubernetesObjectParser.test.ts +177 -0
- package/Tests/Types/Log/LogQueryToFilter.test.ts +111 -0
- package/Tests/Types/Monitor/MonitorCriteria.test.ts +155 -0
- package/Tests/Types/Monitor/MonitorCriteriaInstance.test.ts +465 -0
- package/Tests/Types/Monitor/MonitorStep.test.ts +183 -0
- package/Tests/Types/Monitor/MonitorStepNetworkDeviceMonitor.test.ts +141 -1
- package/Tests/Types/Monitor/MonitorSteps.test.ts +183 -0
- 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/Enum.test.ts +54 -0
- package/Tests/Utils/IpCanonicalUtil.test.ts +85 -0
- package/Tests/Utils/Memory.test.ts +44 -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/SloBurnRateRuleState.test.ts +124 -0
- package/Tests/Utils/Slo/SloDuration.test.ts +148 -0
- package/Tests/Utils/Slo/SloHealth.test.ts +334 -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/Types/AnalyticsDatabase/AnalyticsTableName.ts +10 -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/SloBurnRateRuleState.ts +91 -0
- package/Utils/Slo/SloDuration.ts +165 -0
- package/Utils/Slo/SloEvaluation.ts +22 -0
- package/Utils/Slo/SloHealth.ts +302 -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/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/NetworkFlow.js +44 -0
- package/build/dist/Models/AnalyticsModels/NetworkFlow.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/SloHistory.js +218 -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 +1134 -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/1785066759532-MigrationName.js +21 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785066759532-MigrationName.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 +23 -6
- 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 +588 -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 +76 -48
- 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/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/SloBurnRateRuleState.js +35 -0
- package/build/dist/Utils/Slo/SloBurnRateRuleState.js.map +1 -0
- package/build/dist/Utils/Slo/SloDuration.js +87 -0
- package/build/dist/Utils/Slo/SloDuration.js.map +1 -0
- package/build/dist/Utils/Slo/SloEvaluation.js +21 -0
- package/build/dist/Utils/Slo/SloEvaluation.js.map +1 -0
- package/build/dist/Utils/Slo/SloHealth.js +179 -0
- package/build/dist/Utils/Slo/SloHealth.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
|
@@ -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,243 @@
|
|
|
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 written today: "sli.percent",
|
|
46
|
+
* "error.budget.remaining.percent" and "burn.rate" — the three gauges the
|
|
47
|
+
* evaluation worker persists per run. "good.count" / "total.count" are
|
|
48
|
+
* reserved for event-based (Metric) SLIs, which the worker does not
|
|
49
|
+
* evaluate yet; nothing writes or reads them.
|
|
50
|
+
*/
|
|
51
|
+
export default class SloHistory extends AnalyticsBaseModel {
|
|
52
|
+
public constructor() {
|
|
53
|
+
const readPermissions: Array<Permission> = [
|
|
54
|
+
Permission.ProjectOwner,
|
|
55
|
+
Permission.ProjectAdmin,
|
|
56
|
+
Permission.ProjectMember,
|
|
57
|
+
Permission.Viewer,
|
|
58
|
+
Permission.ReadServiceLevelObjective,
|
|
59
|
+
];
|
|
60
|
+
|
|
61
|
+
const projectIdColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
|
|
62
|
+
key: "projectId",
|
|
63
|
+
title: "Project ID",
|
|
64
|
+
description: "ID of project",
|
|
65
|
+
required: true,
|
|
66
|
+
type: TableColumnType.ObjectID,
|
|
67
|
+
isTenantId: true,
|
|
68
|
+
accessControl: {
|
|
69
|
+
read: readPermissions,
|
|
70
|
+
create: [],
|
|
71
|
+
update: [],
|
|
72
|
+
},
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
const sloIdColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
|
|
76
|
+
key: "sloId",
|
|
77
|
+
title: "SLO ID",
|
|
78
|
+
description: "ID of the Service Level Objective this row belongs to.",
|
|
79
|
+
required: true,
|
|
80
|
+
type: TableColumnType.ObjectID,
|
|
81
|
+
accessControl: {
|
|
82
|
+
read: readPermissions,
|
|
83
|
+
create: [],
|
|
84
|
+
update: [],
|
|
85
|
+
},
|
|
86
|
+
});
|
|
87
|
+
|
|
88
|
+
const metricNameColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
|
|
89
|
+
key: "metricName",
|
|
90
|
+
isLowCardinality: true,
|
|
91
|
+
title: "Metric Name",
|
|
92
|
+
description:
|
|
93
|
+
"Which SLO series this row belongs to: sli.percent, error.budget.remaining.percent, or burn.rate.",
|
|
94
|
+
required: true,
|
|
95
|
+
type: TableColumnType.Text,
|
|
96
|
+
accessControl: {
|
|
97
|
+
read: readPermissions,
|
|
98
|
+
create: [],
|
|
99
|
+
update: [],
|
|
100
|
+
},
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
const bucketStartColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
|
|
104
|
+
key: "bucketStart",
|
|
105
|
+
codec: [{ codec: "DoubleDelta" }, { codec: "ZSTD", level: 1 }],
|
|
106
|
+
title: "Bucket Start",
|
|
107
|
+
description:
|
|
108
|
+
"Start of the time bucket this value was computed for. Also drives the monthly partition key and the 400-day TTL.",
|
|
109
|
+
required: true,
|
|
110
|
+
type: TableColumnType.Date,
|
|
111
|
+
accessControl: {
|
|
112
|
+
read: readPermissions,
|
|
113
|
+
create: [],
|
|
114
|
+
update: [],
|
|
115
|
+
},
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
const valueColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
|
|
119
|
+
key: "value",
|
|
120
|
+
codec: [{ codec: "Gorilla" }, { codec: "ZSTD", level: 1 }],
|
|
121
|
+
title: "Value",
|
|
122
|
+
description: "Computed value for this SLO series at this bucket.",
|
|
123
|
+
required: true,
|
|
124
|
+
type: TableColumnType.Decimal,
|
|
125
|
+
accessControl: {
|
|
126
|
+
read: readPermissions,
|
|
127
|
+
create: [],
|
|
128
|
+
update: [],
|
|
129
|
+
},
|
|
130
|
+
});
|
|
131
|
+
|
|
132
|
+
const versionColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
|
|
133
|
+
key: "version",
|
|
134
|
+
codec: [{ codec: "DoubleDelta" }, { codec: "ZSTD", level: 1 }],
|
|
135
|
+
title: "Version",
|
|
136
|
+
description:
|
|
137
|
+
"Monotonic write version (unix millis at write time) for ReplacingMergeTree dedupe and version-aware reads.",
|
|
138
|
+
required: true,
|
|
139
|
+
type: TableColumnType.UInt64,
|
|
140
|
+
accessControl: {
|
|
141
|
+
read: readPermissions,
|
|
142
|
+
create: [],
|
|
143
|
+
update: [],
|
|
144
|
+
},
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
super({
|
|
148
|
+
tableName: AnalyticsTableName.SloHistory,
|
|
149
|
+
/*
|
|
150
|
+
* ReplacingMergeTree resolves to Replicated*ReplacingMergeTree(version)
|
|
151
|
+
* in ClusterConfig.getStorageEngine — the version column MUST be
|
|
152
|
+
* named exactly `version` (same mechanism as MutableMetric).
|
|
153
|
+
*/
|
|
154
|
+
tableEngine: AnalyticsTableEngine.ReplacingMergeTree,
|
|
155
|
+
singularName: "SLO History",
|
|
156
|
+
pluralName: "SLO History",
|
|
157
|
+
crudApiPath: new Route("/slo-history"),
|
|
158
|
+
tableDescription:
|
|
159
|
+
"Historical SLI, error-budget, and burn-rate values per SLO, written by the SLO evaluation worker. Query via /aggregate for charts.",
|
|
160
|
+
accessControl: {
|
|
161
|
+
read: readPermissions,
|
|
162
|
+
create: [],
|
|
163
|
+
update: [],
|
|
164
|
+
delete: [],
|
|
165
|
+
},
|
|
166
|
+
tableColumns: [
|
|
167
|
+
projectIdColumn,
|
|
168
|
+
sloIdColumn,
|
|
169
|
+
metricNameColumn,
|
|
170
|
+
bucketStartColumn,
|
|
171
|
+
valueColumn,
|
|
172
|
+
versionColumn,
|
|
173
|
+
],
|
|
174
|
+
projections: [],
|
|
175
|
+
sortKeys: ["projectId", "sloId", "metricName", "bucketStart"],
|
|
176
|
+
primaryKeys: ["projectId", "sloId", "metricName", "bucketStart"],
|
|
177
|
+
/*
|
|
178
|
+
* Monthly partitions: volume is tiny (~1 row/min/SLO across 5
|
|
179
|
+
* series) and every row in a partition shares its bucketStart
|
|
180
|
+
* month, so the fixed-interval TTL below expires whole partitions
|
|
181
|
+
* cleanly under ttl_only_drop_parts.
|
|
182
|
+
*/
|
|
183
|
+
partitionKey: "toYYYYMM(bucketStart)",
|
|
184
|
+
/*
|
|
185
|
+
* Co-locate all of one SLO's series on a single shard so the
|
|
186
|
+
* read-side argMax dedupe GROUP BY aggregates per-shard cleanly.
|
|
187
|
+
*/
|
|
188
|
+
shardingKey: "cityHash64(projectId, sloId)",
|
|
189
|
+
tableSettings:
|
|
190
|
+
"ttl_only_drop_parts = 1, non_replicated_deduplication_window = 10000",
|
|
191
|
+
ttlExpression: "bucketStart + INTERVAL 400 DAY",
|
|
192
|
+
defaultSortColumn: "bucketStart",
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
public get projectId(): ObjectID | undefined {
|
|
197
|
+
return this.getColumnValue("projectId") as ObjectID | undefined;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
public set projectId(v: ObjectID | undefined) {
|
|
201
|
+
this.setColumnValue("projectId", v);
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
public get sloId(): ObjectID | undefined {
|
|
205
|
+
return this.getColumnValue("sloId") as ObjectID | undefined;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
public set sloId(v: ObjectID | undefined) {
|
|
209
|
+
this.setColumnValue("sloId", v);
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
public get metricName(): string | undefined {
|
|
213
|
+
return this.getColumnValue("metricName") as string | undefined;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
public set metricName(v: string | undefined) {
|
|
217
|
+
this.setColumnValue("metricName", v);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
public get bucketStart(): Date | undefined {
|
|
221
|
+
return this.getColumnValue("bucketStart") as Date | undefined;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
public set bucketStart(v: Date | undefined) {
|
|
225
|
+
this.setColumnValue("bucketStart", v);
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
public get value(): number | undefined {
|
|
229
|
+
return this.getColumnValue("value") as number | undefined;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
public set value(v: number | undefined) {
|
|
233
|
+
this.setColumnValue("value", v);
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
public get version(): number | undefined {
|
|
237
|
+
return this.getColumnValue("version") as number | undefined;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
public set version(v: number | undefined) {
|
|
241
|
+
this.setColumnValue("version", v);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
@@ -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,
|