@oneuptime/common 10.8.1 → 11.0.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/AnalyticsBaseModel/AnalyticsBaseModel.ts +16 -18
- package/Models/AnalyticsModels/AuditLog.ts +3 -1
- package/Models/AnalyticsModels/ExceptionInstance.ts +200 -82
- package/Models/AnalyticsModels/Index.ts +7 -2
- package/Models/AnalyticsModels/Log.ts +197 -81
- package/Models/AnalyticsModels/Metric.ts +199 -86
- package/Models/AnalyticsModels/MetricBaselineHourly.ts +44 -25
- package/Models/AnalyticsModels/MetricItemAggMV1m.ts +23 -20
- package/Models/AnalyticsModels/{MetricItemAggMV1mByHost.ts → MetricItemAggMV1mByHostV2.ts} +58 -47
- package/Models/AnalyticsModels/MonitorLog.ts +5 -1
- package/Models/AnalyticsModels/Profile.ts +206 -85
- package/Models/AnalyticsModels/ProfileSample.ts +196 -83
- package/Models/AnalyticsModels/Span.ts +218 -85
- package/Models/DatabaseModels/CloudResourceInstance.ts +1 -2
- package/Models/DatabaseModels/CloudResourceOwnerTeam.ts +1 -2
- package/Models/DatabaseModels/CloudResourceOwnerUser.ts +1 -2
- package/Models/DatabaseModels/Index.ts +4 -0
- package/Models/DatabaseModels/Service.ts +29 -0
- package/Models/DatabaseModels/TelemetryEntity.ts +393 -0
- package/Models/DatabaseModels/TelemetryEntityRelationship.ts +294 -0
- package/Models/DatabaseModels/TelemetryException.ts +13 -12
- package/Models/DatabaseModels/TelemetryUsageBilling.ts +5 -5
- package/Server/API/AIAgentDataAPI.ts +13 -12
- package/Server/API/DashboardAPI.ts +2 -2
- package/Server/API/TelemetryAPI.ts +656 -141
- package/Server/API/TelemetryExceptionAPI.ts +2 -2
- package/Server/Infrastructure/ClickhouseConfig.ts +12 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1780931863719-AddTelemetryResourceMetadataColumns.ts +1 -3
- package/Server/Infrastructure/Postgres/SchemaMigrations/1780933132562-AddServerlessFunctionTables.ts +6 -2
- package/Server/Infrastructure/Postgres/SchemaMigrations/1780935387827-AddCloudResourceTables.ts +18 -6
- package/Server/Infrastructure/Postgres/SchemaMigrations/1781011482945-MigrationName.ts +2317 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1781100000001-RenameTelemetryServiceIdToPrimaryEntityId.ts +48 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1781200000000-AddTelemetryEntityTable.ts +70 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1781200000001-AddTelemetryEntityRelationshipTable.ts +57 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1781250074195-MigrationName.ts +207 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1781300000000-AddTelemetryEntityLabels.ts +24 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1781400000000-AddServiceTelemetrySdkLanguage.ts +25 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +14 -0
- package/Server/Infrastructure/Queue.ts +36 -3
- package/Server/Middleware/TelemetryIngest.ts +27 -22
- package/Server/Services/AlertService.ts +9 -9
- package/Server/Services/AnalyticsDatabaseService.ts +204 -35
- package/Server/Services/CloudResourceLabelRuleEngineService.ts +4 -1
- package/Server/Services/CloudResourceOwnerRuleEngineService.ts +4 -1
- package/Server/Services/ExceptionAggregationService.ts +41 -18
- package/Server/Services/HostService.ts +2 -1
- package/Server/Services/IncidentService.ts +19 -19
- package/Server/Services/Index.ts +6 -2
- package/Server/Services/LogAggregationService.ts +116 -43
- package/Server/Services/MetricAggregationService.ts +29 -14
- package/Server/Services/MetricBaselineService.ts +34 -34
- package/Server/Services/MetricItemAggMV1mByHostV2Service.ts +30 -0
- package/Server/Services/MetricService.ts +119 -31
- package/Server/Services/OpenTelemetryIngestService.ts +189 -51
- package/Server/Services/ProfileAggregationService.ts +904 -126
- package/Server/Services/RumApplicationLabelRuleEngineService.ts +4 -1
- package/Server/Services/RumApplicationOwnerRuleEngineService.ts +4 -1
- package/Server/Services/ServerlessFunctionInstanceService.ts +4 -2
- package/Server/Services/ServerlessFunctionLabelRuleEngineService.ts +7 -2
- package/Server/Services/ServerlessFunctionOwnerRuleEngineService.ts +7 -2
- package/Server/Services/ServiceService.ts +6 -0
- package/Server/Services/SpanService.ts +274 -14
- package/Server/Services/TelemetryEntityRelationshipService.ts +71 -0
- package/Server/Services/TelemetryEntityService.ts +246 -0
- package/Server/Services/TelemetryExceptionService.ts +27 -23
- package/Server/Services/TelemetryUsageBillingService.ts +38 -31
- package/Server/Services/TraceAggregationService.ts +875 -43
- package/Server/Types/AnalyticsDatabase/ModelPermission.ts +43 -2
- package/Server/Types/Database/Permissions/AccessControlPermission.ts +47 -2
- package/Server/Types/Database/Permissions/BasePermission.ts +37 -1
- package/Server/Types/Database/Permissions/OwnedScopePermission.ts +21 -3
- package/Server/Types/Database/Permissions/OwnerTableRegistry.ts +1 -0
- package/Server/Types/Database/QueryHelper.ts +41 -0
- package/Server/Utils/Alert/AlertPrivacyFilter.ts +9 -2
- package/Server/Utils/AlertEpisode/AlertEpisodePrivacyFilter.ts +9 -2
- package/Server/Utils/AnalyticsDatabase/QuerySettingsHelper.ts +95 -0
- package/Server/Utils/AnalyticsDatabase/StatementGenerator.ts +133 -0
- package/Server/Utils/Incident/IncidentPrivacyFilter.ts +9 -2
- package/Server/Utils/IncidentEpisode/IncidentEpisodePrivacyFilter.ts +9 -2
- package/Server/Utils/Monitor/Criteria/EvaluateOverTime.ts +1 -1
- package/Server/Utils/Monitor/MonitorLogUtil.ts +1 -2
- package/Server/Utils/Monitor/MonitorMetricUtil.ts +3 -4
- package/Server/Utils/PrivacyFilterUtil.ts +72 -0
- package/Server/Utils/Profile/PprofEncoder.ts +135 -11
- package/Server/Utils/Telemetry/EntityRegistry.ts +316 -0
- package/Server/Utils/Telemetry/ResourceFacetResolver.ts +9 -3
- package/Server/Utils/Telemetry/TelemetryEntity.ts +783 -0
- package/Tests/Server/Services/AnalyticsDatabaseService.test.ts +79 -4
- package/Tests/Server/Services/LogAggregationService.test.ts +7 -2
- package/Tests/Server/Services/ProfileAggregationService.test.ts +280 -0
- package/Tests/Server/Services/ProfileBreakdown.test.ts +161 -0
- package/Tests/Server/Services/ProfileFunctionFocus.test.ts +349 -0
- package/Tests/Server/Services/TelemetryAttributeService.test.ts +1 -1
- package/Tests/Server/Services/TraceAggregationService.test.ts +403 -0
- package/Tests/Server/Types/AnalyticsDatabase/ModelPermissionOwnedScope.test.ts +114 -0
- package/Tests/Server/Types/Database/Permissions/AccessControlPermission.test.ts +189 -0
- package/Tests/Server/Types/Database/Permissions/BasePermission.test.ts +118 -0
- package/Tests/Server/Types/Database/Permissions/OwnedScopePermission.test.ts +159 -0
- package/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.ts +275 -8
- package/Tests/Server/Utils/PrivacyFilterUtil.test.ts +177 -0
- package/Tests/Server/Utils/Profile/PprofEncoder.test.ts +276 -0
- package/Tests/Server/Utils/Telemetry/TelemetryEntity.test.ts +761 -0
- package/Tests/Types/Monitor/MonitorStepEntityScope.test.ts +275 -0
- package/Tests/Types/Text.test.ts +52 -0
- package/Tests/Utils/Telemetry/EntityKey.test.ts +150 -0
- package/Tests/Utils/Telemetry/EntityKeySqlParity.test.ts +40 -0
- package/Tests/Utils/Telemetry/EntityRelationship.test.ts +150 -0
- package/Tests/Utils/UUID.test.ts +47 -0
- package/Types/AnalyticsDatabase/AnalyticsTableName.ts +14 -9
- package/Types/AnalyticsDatabase/TableColumnType.ts +1 -0
- package/Types/Dashboard/DashboardComponentType.ts +1 -0
- package/Types/Dashboard/DashboardComponents/DashboardTraceChartComponent.ts +37 -0
- package/Types/Dashboard/DashboardTemplates.ts +4 -5
- package/Types/Log/LogQueryParser.ts +2 -2
- package/Types/Log/LogQueryToFilter.ts +2 -2
- package/Types/Monitor/MonitorStepExceptionMonitor.ts +19 -1
- package/Types/Monitor/MonitorStepLogMonitor.ts +20 -1
- package/Types/Monitor/MonitorStepMetricMonitor.ts +27 -0
- package/Types/Monitor/MonitorStepProfileMonitor.ts +19 -1
- package/Types/Monitor/MonitorStepTraceMonitor.ts +18 -1
- package/Types/Monitor/MonitorType.ts +8 -1
- package/Types/ObjectID.ts +10 -0
- package/Types/Permission.ts +4 -2
- package/Types/Telemetry/EntityRelationshipType.ts +31 -0
- package/Types/Telemetry/EntityType.ts +33 -0
- package/Types/Telemetry/TelemetrySavedViewState.ts +2 -0
- package/Types/Text.ts +34 -0
- package/Types/Trace/TraceAggregationType.ts +1 -0
- package/Types/Trace/TraceRecordingRuleDefinition.ts +74 -0
- package/UI/Components/BulkUpdate/BulkLabelActions.tsx +14 -14
- package/UI/Components/Forms/Fields/FormField.tsx +18 -12
- package/UI/Components/Input/Input.tsx +3 -1
- package/UI/Components/LogsViewer/LogsViewer.tsx +12 -9
- package/UI/Components/LogsViewer/components/LogDetailsPanel.tsx +10 -9
- package/UI/Components/LogsViewer/components/LogSearchBar.tsx +1 -1
- package/UI/Components/LogsViewer/components/LogsAnalyticsView.tsx +2 -2
- package/UI/Components/LogsViewer/components/LogsFacetSidebar.tsx +4 -4
- package/UI/Components/LogsViewer/components/LogsTable.tsx +5 -3
- package/UI/Components/Navbar/NavBarMenuModal.tsx +81 -44
- package/UI/Components/TelemetryViewer/TelemetryViewer.tsx +33 -10
- package/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.tsx +18 -3
- package/UI/Components/TelemetryViewer/components/TelemetryHistogram.tsx +91 -68
- package/UI/Components/TelemetryViewer/components/TelemetryHistogramTooltip.tsx +9 -2
- package/UI/Components/TextArea/TextArea.tsx +3 -1
- package/UI/Components/Toast/Toast.tsx +4 -2
- package/UI/Utils/LogExport.ts +2 -2
- package/UI/Utils/TelemetryService.ts +20 -20
- package/Utils/Dashboard/Components/DashboardTraceChartComponent.ts +134 -0
- package/Utils/Dashboard/Components/Index.ts +7 -0
- package/Utils/Telemetry/EntityKey.ts +151 -0
- package/Utils/Telemetry/EntityRelationship.ts +113 -0
- package/Utils/Traces/CriticalPath.ts +7 -7
- package/Utils/UUID.ts +57 -0
- package/build/dist/Models/AnalyticsModels/AnalyticsBaseModel/AnalyticsBaseModel.js +14 -13
- package/build/dist/Models/AnalyticsModels/AnalyticsBaseModel/AnalyticsBaseModel.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/AuditLog.js +2 -1
- package/build/dist/Models/AnalyticsModels/AuditLog.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/ExceptionInstance.js +125 -22
- package/build/dist/Models/AnalyticsModels/ExceptionInstance.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/Index.js +7 -2
- package/build/dist/Models/AnalyticsModels/Index.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/Log.js +123 -22
- package/build/dist/Models/AnalyticsModels/Log.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/Metric.js +125 -27
- package/build/dist/Models/AnalyticsModels/Metric.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/MetricBaselineHourly.js +38 -21
- package/build/dist/Models/AnalyticsModels/MetricBaselineHourly.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/MetricItemAggMV1m.js +17 -16
- package/build/dist/Models/AnalyticsModels/MetricItemAggMV1m.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/{MetricItemAggMV1mByHost.js → MetricItemAggMV1mByHostV2.js} +54 -42
- package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByHostV2.js.map +1 -0
- package/build/dist/Models/AnalyticsModels/MonitorLog.js +4 -1
- package/build/dist/Models/AnalyticsModels/MonitorLog.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/Profile.js +132 -26
- package/build/dist/Models/AnalyticsModels/Profile.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/ProfileSample.js +121 -23
- package/build/dist/Models/AnalyticsModels/ProfileSample.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/Span.js +144 -26
- package/build/dist/Models/AnalyticsModels/Span.js.map +1 -1
- package/build/dist/Models/DatabaseModels/CloudResourceInstance.js.map +1 -1
- package/build/dist/Models/DatabaseModels/CloudResourceOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/CloudResourceOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Index.js +4 -0
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Service.js +30 -0
- package/build/dist/Models/DatabaseModels/Service.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TelemetryEntity.js +419 -0
- package/build/dist/Models/DatabaseModels/TelemetryEntity.js.map +1 -0
- package/build/dist/Models/DatabaseModels/TelemetryEntityRelationship.js +317 -0
- package/build/dist/Models/DatabaseModels/TelemetryEntityRelationship.js.map +1 -0
- package/build/dist/Models/DatabaseModels/TelemetryException.js +12 -12
- package/build/dist/Models/DatabaseModels/TelemetryException.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TelemetryUsageBilling.js +7 -7
- package/build/dist/Models/DatabaseModels/TelemetryUsageBilling.js.map +1 -1
- package/build/dist/Server/API/AIAgentDataAPI.js +14 -13
- package/build/dist/Server/API/AIAgentDataAPI.js.map +1 -1
- package/build/dist/Server/API/DashboardAPI.js +2 -2
- package/build/dist/Server/API/DashboardAPI.js.map +1 -1
- package/build/dist/Server/API/TelemetryAPI.js +425 -129
- package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
- package/build/dist/Server/API/TelemetryExceptionAPI.js +2 -2
- package/build/dist/Server/API/TelemetryExceptionAPI.js.map +1 -1
- package/build/dist/Server/Infrastructure/ClickhouseConfig.js +12 -0
- package/build/dist/Server/Infrastructure/ClickhouseConfig.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780931863719-AddTelemetryResourceMetadataColumns.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780933132562-AddServerlessFunctionTables.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780935387827-AddCloudResourceTables.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781011482945-MigrationName.js +798 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781011482945-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781100000001-RenameTelemetryServiceIdToPrimaryEntityId.js +29 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781100000001-RenameTelemetryServiceIdToPrimaryEntityId.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781200000000-AddTelemetryEntityTable.js +38 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781200000000-AddTelemetryEntityTable.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781200000001-AddTelemetryEntityRelationshipTable.js +33 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781200000001-AddTelemetryEntityRelationshipTable.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781250074195-MigrationName.js +78 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781250074195-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781300000000-AddTelemetryEntityLabels.js +19 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781300000000-AddTelemetryEntityLabels.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781400000000-AddServiceTelemetrySdkLanguage.js +18 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1781400000000-AddServiceTelemetrySdkLanguage.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +14 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Infrastructure/Queue.js +14 -3
- package/build/dist/Server/Infrastructure/Queue.js.map +1 -1
- package/build/dist/Server/Middleware/TelemetryIngest.js +16 -18
- package/build/dist/Server/Middleware/TelemetryIngest.js.map +1 -1
- package/build/dist/Server/Services/AlertService.js +9 -9
- package/build/dist/Server/Services/AlertService.js.map +1 -1
- package/build/dist/Server/Services/AnalyticsDatabaseService.js +115 -40
- package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
- package/build/dist/Server/Services/CloudResourceLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/CloudResourceOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/ExceptionAggregationService.js +38 -18
- package/build/dist/Server/Services/ExceptionAggregationService.js.map +1 -1
- package/build/dist/Server/Services/HostService.js +2 -1
- package/build/dist/Server/Services/HostService.js.map +1 -1
- package/build/dist/Server/Services/IncidentService.js +19 -19
- package/build/dist/Server/Services/IncidentService.js.map +1 -1
- package/build/dist/Server/Services/Index.js +6 -2
- package/build/dist/Server/Services/Index.js.map +1 -1
- package/build/dist/Server/Services/LogAggregationService.js +100 -42
- package/build/dist/Server/Services/LogAggregationService.js.map +1 -1
- package/build/dist/Server/Services/MetricAggregationService.js +27 -14
- package/build/dist/Server/Services/MetricAggregationService.js.map +1 -1
- package/build/dist/Server/Services/MetricBaselineService.js +28 -28
- package/build/dist/Server/Services/MetricBaselineService.js.map +1 -1
- package/build/dist/Server/Services/MetricItemAggMV1mByHostV2Service.js +28 -0
- package/build/dist/Server/Services/MetricItemAggMV1mByHostV2Service.js.map +1 -0
- package/build/dist/Server/Services/MetricService.js +116 -31
- package/build/dist/Server/Services/MetricService.js.map +1 -1
- package/build/dist/Server/Services/OpenTelemetryIngestService.js +103 -36
- package/build/dist/Server/Services/OpenTelemetryIngestService.js.map +1 -1
- package/build/dist/Server/Services/ProfileAggregationService.js +613 -105
- package/build/dist/Server/Services/ProfileAggregationService.js.map +1 -1
- package/build/dist/Server/Services/RumApplicationLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/RumApplicationOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/ServerlessFunctionInstanceService.js +4 -2
- package/build/dist/Server/Services/ServerlessFunctionInstanceService.js.map +1 -1
- package/build/dist/Server/Services/ServerlessFunctionLabelRuleEngineService.js +2 -1
- package/build/dist/Server/Services/ServerlessFunctionLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/ServerlessFunctionOwnerRuleEngineService.js +2 -1
- package/build/dist/Server/Services/ServerlessFunctionOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/ServiceService.js +9 -5
- package/build/dist/Server/Services/ServiceService.js.map +1 -1
- package/build/dist/Server/Services/SpanService.js +217 -15
- package/build/dist/Server/Services/SpanService.js.map +1 -1
- package/build/dist/Server/Services/TelemetryEntityRelationshipService.js +72 -0
- package/build/dist/Server/Services/TelemetryEntityRelationshipService.js.map +1 -0
- package/build/dist/Server/Services/TelemetryEntityService.js +201 -0
- package/build/dist/Server/Services/TelemetryEntityService.js.map +1 -0
- package/build/dist/Server/Services/TelemetryExceptionService.js +18 -18
- package/build/dist/Server/Services/TelemetryExceptionService.js.map +1 -1
- package/build/dist/Server/Services/TelemetryUsageBillingService.js +27 -21
- package/build/dist/Server/Services/TelemetryUsageBillingService.js.map +1 -1
- package/build/dist/Server/Services/TraceAggregationService.js +568 -43
- package/build/dist/Server/Services/TraceAggregationService.js.map +1 -1
- package/build/dist/Server/Types/AnalyticsDatabase/ModelPermission.js +38 -2
- package/build/dist/Server/Types/AnalyticsDatabase/ModelPermission.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/AccessControlPermission.js +36 -2
- package/build/dist/Server/Types/Database/Permissions/AccessControlPermission.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/BasePermission.js +25 -1
- package/build/dist/Server/Types/Database/Permissions/BasePermission.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/OwnedScopePermission.js +17 -3
- package/build/dist/Server/Types/Database/Permissions/OwnedScopePermission.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js +1 -0
- package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js.map +1 -1
- package/build/dist/Server/Types/Database/QueryHelper.js +31 -0
- package/build/dist/Server/Types/Database/QueryHelper.js.map +1 -1
- package/build/dist/Server/Utils/Alert/AlertPrivacyFilter.js +3 -2
- package/build/dist/Server/Utils/Alert/AlertPrivacyFilter.js.map +1 -1
- package/build/dist/Server/Utils/AlertEpisode/AlertEpisodePrivacyFilter.js +3 -2
- package/build/dist/Server/Utils/AlertEpisode/AlertEpisodePrivacyFilter.js.map +1 -1
- package/build/dist/Server/Utils/AnalyticsDatabase/QuerySettingsHelper.js +46 -0
- package/build/dist/Server/Utils/AnalyticsDatabase/QuerySettingsHelper.js.map +1 -0
- package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js +97 -3
- package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js.map +1 -1
- package/build/dist/Server/Utils/Incident/IncidentPrivacyFilter.js +3 -2
- package/build/dist/Server/Utils/Incident/IncidentPrivacyFilter.js.map +1 -1
- package/build/dist/Server/Utils/IncidentEpisode/IncidentEpisodePrivacyFilter.js +3 -2
- package/build/dist/Server/Utils/IncidentEpisode/IncidentEpisodePrivacyFilter.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/EvaluateOverTime.js +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/EvaluateOverTime.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorLogUtil.js +1 -2
- package/build/dist/Server/Utils/Monitor/MonitorLogUtil.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js +3 -4
- package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js.map +1 -1
- package/build/dist/Server/Utils/PrivacyFilterUtil.js +47 -0
- package/build/dist/Server/Utils/PrivacyFilterUtil.js.map +1 -0
- package/build/dist/Server/Utils/Profile/PprofEncoder.js +132 -4
- package/build/dist/Server/Utils/Profile/PprofEncoder.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/EntityRegistry.js +228 -0
- package/build/dist/Server/Utils/Telemetry/EntityRegistry.js.map +1 -0
- package/build/dist/Server/Utils/Telemetry/ResourceFacetResolver.js +5 -0
- package/build/dist/Server/Utils/Telemetry/ResourceFacetResolver.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js +569 -0
- package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js.map +1 -0
- package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js +14 -9
- package/build/dist/Types/AnalyticsDatabase/AnalyticsTableName.js.map +1 -1
- package/build/dist/Types/AnalyticsDatabase/TableColumnType.js +1 -0
- package/build/dist/Types/AnalyticsDatabase/TableColumnType.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/DashboardTraceChartComponent.js +2 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardTraceChartComponent.js.map +1 -0
- package/build/dist/Types/Dashboard/DashboardTemplates.js +4 -5
- package/build/dist/Types/Dashboard/DashboardTemplates.js.map +1 -1
- package/build/dist/Types/Log/LogQueryParser.js +2 -2
- package/build/dist/Types/Log/LogQueryParser.js.map +1 -1
- package/build/dist/Types/Log/LogQueryToFilter.js +1 -1
- package/build/dist/Types/Log/LogQueryToFilter.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorStepExceptionMonitor.js +9 -1
- package/build/dist/Types/Monitor/MonitorStepExceptionMonitor.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorStepLogMonitor.js +9 -1
- package/build/dist/Types/Monitor/MonitorStepLogMonitor.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorStepMetricMonitor.js +13 -0
- package/build/dist/Types/Monitor/MonitorStepMetricMonitor.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorStepProfileMonitor.js +9 -1
- package/build/dist/Types/Monitor/MonitorStepProfileMonitor.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorStepTraceMonitor.js +9 -1
- package/build/dist/Types/Monitor/MonitorStepTraceMonitor.js.map +1 -1
- package/build/dist/Types/Monitor/MonitorType.js +8 -1
- package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
- package/build/dist/Types/ObjectID.js +9 -0
- package/build/dist/Types/ObjectID.js.map +1 -1
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/Types/Telemetry/EntityRelationshipType.js +32 -0
- package/build/dist/Types/Telemetry/EntityRelationshipType.js.map +1 -0
- package/build/dist/Types/Telemetry/EntityType.js +34 -0
- package/build/dist/Types/Telemetry/EntityType.js.map +1 -0
- package/build/dist/Types/Text.js +32 -1
- package/build/dist/Types/Text.js.map +1 -1
- package/build/dist/Types/Trace/TraceAggregationType.js +1 -0
- package/build/dist/Types/Trace/TraceAggregationType.js.map +1 -1
- package/build/dist/Types/Trace/TraceRecordingRuleDefinition.js +50 -1
- package/build/dist/Types/Trace/TraceRecordingRuleDefinition.js.map +1 -1
- package/build/dist/UI/Components/BulkUpdate/BulkLabelActions.js.map +1 -1
- package/build/dist/UI/Components/Forms/Fields/FormField.js +15 -12
- package/build/dist/UI/Components/Forms/Fields/FormField.js.map +1 -1
- package/build/dist/UI/Components/Input/Input.js +3 -1
- package/build/dist/UI/Components/Input/Input.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/LogsViewer.js +10 -9
- package/build/dist/UI/Components/LogsViewer/LogsViewer.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogDetailsPanel.js +8 -8
- package/build/dist/UI/Components/LogsViewer/components/LogDetailsPanel.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogSearchBar.js +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogSearchBar.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js +2 -2
- package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js +4 -4
- package/build/dist/UI/Components/LogsViewer/components/LogsFacetSidebar.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/components/LogsTable.js +3 -3
- package/build/dist/UI/Components/LogsViewer/components/LogsTable.js.map +1 -1
- package/build/dist/UI/Components/Navbar/NavBarMenuModal.js +43 -30
- package/build/dist/UI/Components/Navbar/NavBarMenuModal.js.map +1 -1
- package/build/dist/UI/Components/TelemetryViewer/TelemetryViewer.js +6 -2
- package/build/dist/UI/Components/TelemetryViewer/TelemetryViewer.js.map +1 -1
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.js +14 -3
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryFacetSidebar.js.map +1 -1
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogram.js +18 -10
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogram.js.map +1 -1
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogramTooltip.js +4 -2
- package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogramTooltip.js.map +1 -1
- package/build/dist/UI/Components/TextArea/TextArea.js +3 -1
- package/build/dist/UI/Components/TextArea/TextArea.js.map +1 -1
- package/build/dist/UI/Components/Toast/Toast.js +4 -2
- package/build/dist/UI/Components/Toast/Toast.js.map +1 -1
- package/build/dist/UI/Utils/LogExport.js +2 -2
- package/build/dist/UI/Utils/LogExport.js.map +1 -1
- package/build/dist/UI/Utils/TelemetryService.js +16 -16
- package/build/dist/UI/Utils/TelemetryService.js.map +1 -1
- package/build/dist/Utils/Dashboard/Components/DashboardTraceChartComponent.js +110 -0
- package/build/dist/Utils/Dashboard/Components/DashboardTraceChartComponent.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/Telemetry/EntityKey.js +115 -0
- package/build/dist/Utils/Telemetry/EntityKey.js.map +1 -0
- package/build/dist/Utils/Telemetry/EntityRelationship.js +71 -0
- package/build/dist/Utils/Telemetry/EntityRelationship.js.map +1 -0
- package/build/dist/Utils/Traces/CriticalPath.js +5 -5
- package/build/dist/Utils/Traces/CriticalPath.js.map +1 -1
- package/build/dist/Utils/UUID.js +50 -0
- package/build/dist/Utils/UUID.js.map +1 -1
- package/package.json +2 -1
- package/tsconfig.json +10 -1
- package/Server/Services/MetricItemAggMV1mByHostService.ts +0 -30
- package/Types/Profile/ProfileMetricType.ts +0 -16
- package/build/dist/Models/AnalyticsModels/MetricItemAggMV1mByHost.js.map +0 -1
- package/build/dist/Server/Services/MetricItemAggMV1mByHostService.js +0 -28
- package/build/dist/Server/Services/MetricItemAggMV1mByHostService.js.map +0 -1
- package/build/dist/Tests/MockType.js +0 -5
- package/build/dist/Tests/MockType.js.map +0 -1
- package/build/dist/Tests/Models/AnalyticsModels/Log.test.js +0 -12
- package/build/dist/Tests/Models/AnalyticsModels/Log.test.js.map +0 -1
- package/build/dist/Tests/Models/File.test.js +0 -10
- package/build/dist/Tests/Models/File.test.js.map +0 -1
- package/build/dist/Tests/Server/API/BaseAPI.test.js +0 -590
- package/build/dist/Tests/Server/API/BaseAPI.test.js.map +0 -1
- package/build/dist/Tests/Server/API/Helpers.js +0 -27
- package/build/dist/Tests/Server/API/Helpers.js.map +0 -1
- package/build/dist/Tests/Server/API/ProbeAPI.test.js +0 -84
- package/build/dist/Tests/Server/API/ProbeAPI.test.js.map +0 -1
- package/build/dist/Tests/Server/API/ProjectAPI.test.js +0 -170
- package/build/dist/Tests/Server/API/ProjectAPI.test.js.map +0 -1
- package/build/dist/Tests/Server/API/UserSmsApi.test.js +0 -177
- package/build/dist/Tests/Server/API/UserSmsApi.test.js.map +0 -1
- package/build/dist/Tests/Server/Middleware/BearerTokenAuthorization.test.js +0 -63
- package/build/dist/Tests/Server/Middleware/BearerTokenAuthorization.test.js.map +0 -1
- package/build/dist/Tests/Server/Middleware/ClusterKeyAuthorization.test.js +0 -58
- package/build/dist/Tests/Server/Middleware/ClusterKeyAuthorization.test.js.map +0 -1
- package/build/dist/Tests/Server/Middleware/NotificationMiddleware.test.js +0 -101
- package/build/dist/Tests/Server/Middleware/NotificationMiddleware.test.js.map +0 -1
- package/build/dist/Tests/Server/Middleware/ProjectAuthorization.test.js +0 -160
- package/build/dist/Tests/Server/Middleware/ProjectAuthorization.test.js.map +0 -1
- package/build/dist/Tests/Server/Middleware/UserAuthorization.test.js +0 -410
- package/build/dist/Tests/Server/Middleware/UserAuthorization.test.js.map +0 -1
- package/build/dist/Tests/Server/Services/AlertEpisodeMemberService.test.js +0 -165
- package/build/dist/Tests/Server/Services/AlertEpisodeMemberService.test.js.map +0 -1
- package/build/dist/Tests/Server/Services/AlertEpisodeService.test.js +0 -193
- package/build/dist/Tests/Server/Services/AlertEpisodeService.test.js.map +0 -1
- package/build/dist/Tests/Server/Services/AlertGroupingEngineService.test.js +0 -435
- package/build/dist/Tests/Server/Services/AlertGroupingEngineService.test.js.map +0 -1
- package/build/dist/Tests/Server/Services/AlertGroupingRuleService.test.js +0 -320
- package/build/dist/Tests/Server/Services/AlertGroupingRuleService.test.js.map +0 -1
- package/build/dist/Tests/Server/Services/AnalyticsDatabaseService.test.js +0 -266
- package/build/dist/Tests/Server/Services/AnalyticsDatabaseService.test.js.map +0 -1
- package/build/dist/Tests/Server/Services/BillingService.test.js +0 -910
- package/build/dist/Tests/Server/Services/BillingService.test.js.map +0 -1
- package/build/dist/Tests/Server/Services/LogAggregationService.test.js +0 -75
- package/build/dist/Tests/Server/Services/LogAggregationService.test.js.map +0 -1
- package/build/dist/Tests/Server/Services/ProbeService.test.js +0 -127
- package/build/dist/Tests/Server/Services/ProbeService.test.js.map +0 -1
- package/build/dist/Tests/Server/Services/ScheduledMaintenanceService.test.js +0 -114
- package/build/dist/Tests/Server/Services/ScheduledMaintenanceService.test.js.map +0 -1
- package/build/dist/Tests/Server/Services/TeamMemberService.test.js +0 -106
- package/build/dist/Tests/Server/Services/TeamMemberService.test.js.map +0 -1
- package/build/dist/Tests/Server/Services/TelemetryAttributeService.test.js +0 -50
- package/build/dist/Tests/Server/Services/TelemetryAttributeService.test.js.map +0 -1
- package/build/dist/Tests/Server/TestingUtils/Init.js +0 -4
- package/build/dist/Tests/Server/TestingUtils/Init.js.map +0 -1
- package/build/dist/Tests/Server/TestingUtils/Postgres/TestDataSourceOptions.js +0 -9
- package/build/dist/Tests/Server/TestingUtils/Postgres/TestDataSourceOptions.js.map +0 -1
- package/build/dist/Tests/Server/TestingUtils/Redis/TestRedisOptions.js +0 -16
- package/build/dist/Tests/Server/TestingUtils/Redis/TestRedisOptions.js.map +0 -1
- package/build/dist/Tests/Server/TestingUtils/Services/BillingServiceHelper.js +0 -125
- package/build/dist/Tests/Server/TestingUtils/Services/BillingServiceHelper.js.map +0 -1
- package/build/dist/Tests/Server/TestingUtils/Services/ProjectServiceHelper.js +0 -39
- package/build/dist/Tests/Server/TestingUtils/Services/ProjectServiceHelper.js.map +0 -1
- package/build/dist/Tests/Server/TestingUtils/Services/ScheduledMaintenanceServiceHelper.js +0 -20
- package/build/dist/Tests/Server/TestingUtils/Services/ScheduledMaintenanceServiceHelper.js.map +0 -1
- package/build/dist/Tests/Server/TestingUtils/Services/ScheduledMaintenanceStateServiceHelper.js +0 -31
- package/build/dist/Tests/Server/TestingUtils/Services/ScheduledMaintenanceStateServiceHelper.js.map +0 -1
- package/build/dist/Tests/Server/TestingUtils/Services/TeamMemberServiceHelper.js +0 -14
- package/build/dist/Tests/Server/TestingUtils/Services/TeamMemberServiceHelper.js.map +0 -1
- package/build/dist/Tests/Server/TestingUtils/Services/TeamServiceHelper.js +0 -21
- package/build/dist/Tests/Server/TestingUtils/Services/TeamServiceHelper.js.map +0 -1
- package/build/dist/Tests/Server/TestingUtils/Services/Types.js +0 -2
- package/build/dist/Tests/Server/TestingUtils/Services/Types.js.map +0 -1
- package/build/dist/Tests/Server/TestingUtils/Services/UserServiceHelper.js +0 -37
- package/build/dist/Tests/Server/TestingUtils/Services/UserServiceHelper.js.map +0 -1
- package/build/dist/Tests/Server/TestingUtils/__mocks__/Stripe.mock.js +0 -13
- package/build/dist/Tests/Server/TestingUtils/__mocks__/Stripe.mock.js.map +0 -1
- package/build/dist/Tests/Server/TestingUtils/__mocks__/TestDatabase.mock.js +0 -22
- package/build/dist/Tests/Server/TestingUtils/__mocks__/TestDatabase.mock.js.map +0 -1
- package/build/dist/Tests/Server/Types/Domain.test.js +0 -78
- package/build/dist/Tests/Server/Types/Domain.test.js.map +0 -1
- package/build/dist/Tests/Server/Utils/AnalyticsDatabase/Statement.test.js +0 -94
- package/build/dist/Tests/Server/Utils/AnalyticsDatabase/Statement.test.js.map +0 -1
- package/build/dist/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.js +0 -459
- package/build/dist/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.js.map +0 -1
- package/build/dist/Tests/Server/Utils/Cookie.test.js +0 -83
- package/build/dist/Tests/Server/Utils/Cookie.test.js.map +0 -1
- package/build/dist/Tests/Server/Utils/CronTab.test.js +0 -29
- package/build/dist/Tests/Server/Utils/CronTab.test.js.map +0 -1
- package/build/dist/Tests/Server/Utils/JsonToCsv.test.js +0 -114
- package/build/dist/Tests/Server/Utils/JsonToCsv.test.js.map +0 -1
- package/build/dist/Tests/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.test.js +0 -606
- package/build/dist/Tests/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.test.js.map +0 -1
- package/build/dist/Tests/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.test.js +0 -255
- package/build/dist/Tests/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.test.js.map +0 -1
- package/build/dist/Tests/Server/Utils/Monitor/MonitorMaintenanceSuppression.test.js +0 -142
- package/build/dist/Tests/Server/Utils/Monitor/MonitorMaintenanceSuppression.test.js.map +0 -1
- package/build/dist/Tests/Server/Utils/StatusPageResource.test.js +0 -122
- package/build/dist/Tests/Server/Utils/StatusPageResource.test.js.map +0 -1
- package/build/dist/Tests/Server/Utils/Telemetry/LogExceptionExtractor.test.js +0 -0
- package/build/dist/Tests/Server/Utils/Telemetry/LogExceptionExtractor.test.js.map +0 -1
- package/build/dist/Tests/Server/Utils/VM/VMAPI.test.js +0 -205
- package/build/dist/Tests/Server/Utils/VM/VMAPI.test.js.map +0 -1
- package/build/dist/Tests/Spy.js +0 -4
- package/build/dist/Tests/Spy.js.map +0 -1
- package/build/dist/Tests/Types/API/ErrorResponse.test.js +0 -13
- package/build/dist/Tests/Types/API/ErrorResponse.test.js.map +0 -1
- package/build/dist/Tests/Types/API/HTTPErrorResponse.test.js +0 -33
- package/build/dist/Tests/Types/API/HTTPErrorResponse.test.js.map +0 -1
- package/build/dist/Tests/Types/API/HTTPMethod.test.js +0 -16
- package/build/dist/Tests/Types/API/HTTPMethod.test.js.map +0 -1
- package/build/dist/Tests/Types/API/Headers.test.js +0 -14
- package/build/dist/Tests/Types/API/Headers.test.js.map +0 -1
- package/build/dist/Tests/Types/API/Hostname.test.js +0 -22
- package/build/dist/Tests/Types/API/Hostname.test.js.map +0 -1
- package/build/dist/Tests/Types/API/Protocal.test.js +0 -19
- package/build/dist/Tests/Types/API/Protocal.test.js.map +0 -1
- package/build/dist/Tests/Types/API/Response.test.js +0 -14
- package/build/dist/Tests/Types/API/Response.test.js.map +0 -1
- package/build/dist/Tests/Types/API/ResponseType.test.js +0 -13
- package/build/dist/Tests/Types/API/ResponseType.test.js.map +0 -1
- package/build/dist/Tests/Types/API/Route.test.js +0 -30
- package/build/dist/Tests/Types/API/Route.test.js.map +0 -1
- package/build/dist/Tests/Types/API/StatusCode.test.js +0 -26
- package/build/dist/Tests/Types/API/StatusCode.test.js.map +0 -1
- package/build/dist/Tests/Types/API/URL.test.js +0 -33
- package/build/dist/Tests/Types/API/URL.test.js.map +0 -1
- package/build/dist/Tests/Types/Alerts/AlertEventType.test.js +0 -34
- package/build/dist/Tests/Types/Alerts/AlertEventType.test.js.map +0 -1
- package/build/dist/Tests/Types/Alerts/AlertType.test.js +0 -19
- package/build/dist/Tests/Types/Alerts/AlertType.test.js.map +0 -1
- package/build/dist/Tests/Types/AppEnvironment.test.js +0 -13
- package/build/dist/Tests/Types/AppEnvironment.test.js.map +0 -1
- package/build/dist/Tests/Types/ApplicationLog/ApplicationLogType.test.js +0 -13
- package/build/dist/Tests/Types/ApplicationLog/ApplicationLogType.test.js.map +0 -1
- package/build/dist/Tests/Types/ArrayUtil.test.js +0 -71
- package/build/dist/Tests/Types/ArrayUtil.test.js.map +0 -1
- package/build/dist/Tests/Types/Billing/SubscriptionPlan.test.js +0 -181
- package/build/dist/Tests/Types/Billing/SubscriptionPlan.test.js.map +0 -1
- package/build/dist/Tests/Types/BrandColors.test.js +0 -124
- package/build/dist/Tests/Types/BrandColors.test.js.map +0 -1
- package/build/dist/Tests/Types/Char.test.js +0 -82
- package/build/dist/Tests/Types/Char.test.js.map +0 -1
- package/build/dist/Tests/Types/Code/CodeType.test.js +0 -13
- package/build/dist/Tests/Types/Code/CodeType.test.js.map +0 -1
- package/build/dist/Tests/Types/Color.test.js +0 -44
- package/build/dist/Tests/Types/Color.test.js.map +0 -1
- package/build/dist/Tests/Types/Company/CompanySize.test.js +0 -20
- package/build/dist/Tests/Types/Company/CompanySize.test.js.map +0 -1
- package/build/dist/Tests/Types/Company/JobRole.test.js +0 -22
- package/build/dist/Tests/Types/Company/JobRole.test.js.map +0 -1
- package/build/dist/Tests/Types/Countries.test.js +0 -249
- package/build/dist/Tests/Types/Countries.test.js.map +0 -1
- package/build/dist/Tests/Types/Database/ColumnLength.test.js +0 -43
- package/build/dist/Tests/Types/Database/ColumnLength.test.js.map +0 -1
- package/build/dist/Tests/Types/Database/ColumnType.test.js +0 -79
- package/build/dist/Tests/Types/Database/ColumnType.test.js.map +0 -1
- package/build/dist/Tests/Types/Database/Columns.test.js +0 -20
- package/build/dist/Tests/Types/Database/Columns.test.js.map +0 -1
- package/build/dist/Tests/Types/Database/CompareBase.test.js +0 -37
- package/build/dist/Tests/Types/Database/CompareBase.test.js.map +0 -1
- package/build/dist/Tests/Types/Database/Date.test.js +0 -62
- package/build/dist/Tests/Types/Database/Date.test.js.map +0 -1
- package/build/dist/Tests/Types/Database/EqualTo.test.js +0 -65
- package/build/dist/Tests/Types/Database/EqualTo.test.js.map +0 -1
- package/build/dist/Tests/Types/Database/EqualToOrNull.test.js +0 -62
- package/build/dist/Tests/Types/Database/EqualToOrNull.test.js.map +0 -1
- package/build/dist/Tests/Types/Database/InBetween.test.js +0 -72
- package/build/dist/Tests/Types/Database/InBetween.test.js.map +0 -1
- package/build/dist/Tests/Types/Database/LimitMax.test.js +0 -18
- package/build/dist/Tests/Types/Database/LimitMax.test.js.map +0 -1
- package/build/dist/Tests/Types/Database/NotEqual.test.js +0 -19
- package/build/dist/Tests/Types/Database/NotEqual.test.js.map +0 -1
- package/build/dist/Tests/Types/Database/Search.test.js +0 -10
- package/build/dist/Tests/Types/Database/Search.test.js.map +0 -1
- package/build/dist/Tests/Types/DatabaseType.test.js +0 -7
- package/build/dist/Tests/Types/DatabaseType.test.js.map +0 -1
- package/build/dist/Tests/Types/Date.test.js +0 -194
- package/build/dist/Tests/Types/Date.test.js.map +0 -1
- package/build/dist/Tests/Types/Dictionary.test.js +0 -25
- package/build/dist/Tests/Types/Dictionary.test.js.map +0 -1
- package/build/dist/Tests/Types/Domain.test.js +0 -54
- package/build/dist/Tests/Types/Domain.test.js.map +0 -1
- package/build/dist/Tests/Types/Email/Email.test.js +0 -51
- package/build/dist/Tests/Types/Email/Email.test.js.map +0 -1
- package/build/dist/Tests/Types/EmailWithName.test.js +0 -36
- package/build/dist/Tests/Types/EmailWithName.test.js.map +0 -1
- package/build/dist/Tests/Types/EncryptionAlgorithm.test.js +0 -7
- package/build/dist/Tests/Types/EncryptionAlgorithm.test.js.map +0 -1
- package/build/dist/Tests/Types/Exception/ApiException.test.js +0 -10
- package/build/dist/Tests/Types/Exception/ApiException.test.js.map +0 -1
- package/build/dist/Tests/Types/Exception/BadDataException.test.js +0 -12
- package/build/dist/Tests/Types/Exception/BadDataException.test.js.map +0 -1
- package/build/dist/Tests/Types/Exception/BadOperationException.test.js +0 -10
- package/build/dist/Tests/Types/Exception/BadOperationException.test.js.map +0 -1
- package/build/dist/Tests/Types/Exception/BadRequestException.test.js +0 -12
- package/build/dist/Tests/Types/Exception/BadRequestException.test.js.map +0 -1
- package/build/dist/Tests/Types/Exception/DatabaseNotConnectedException.test.js +0 -10
- package/build/dist/Tests/Types/Exception/DatabaseNotConnectedException.test.js.map +0 -1
- package/build/dist/Tests/Types/Exception/Exception.test.js +0 -15
- package/build/dist/Tests/Types/Exception/Exception.test.js.map +0 -1
- package/build/dist/Tests/Types/Exception/NotImplementedException.test.js +0 -12
- package/build/dist/Tests/Types/Exception/NotImplementedException.test.js.map +0 -1
- package/build/dist/Tests/Types/File.test.js +0 -22
- package/build/dist/Tests/Types/File.test.js.map +0 -1
- package/build/dist/Tests/Types/HashedString.test.js +0 -51
- package/build/dist/Tests/Types/HashedString.test.js.map +0 -1
- package/build/dist/Tests/Types/Html.test.js +0 -8
- package/build/dist/Tests/Types/Html.test.js.map +0 -1
- package/build/dist/Tests/Types/IP/IP.test.js +0 -65
- package/build/dist/Tests/Types/IP/IP.test.js.map +0 -1
- package/build/dist/Tests/Types/IP/IPType.test.js +0 -10
- package/build/dist/Tests/Types/IP/IPType.test.js.map +0 -1
- package/build/dist/Tests/Types/IP/IPv4.test.js +0 -17
- package/build/dist/Tests/Types/IP/IPv4.test.js.map +0 -1
- package/build/dist/Tests/Types/IP/IPv6.test.js +0 -17
- package/build/dist/Tests/Types/IP/IPv6.test.js.map +0 -1
- package/build/dist/Tests/Types/JSON.test.js +0 -37
- package/build/dist/Tests/Types/JSON.test.js.map +0 -1
- package/build/dist/Tests/Types/JSONFunctions.test.js +0 -38
- package/build/dist/Tests/Types/JSONFunctions.test.js.map +0 -1
- package/build/dist/Tests/Types/ListData.test.js +0 -34
- package/build/dist/Tests/Types/ListData.test.js.map +0 -1
- package/build/dist/Tests/Types/Monitor/KubernetesAlertTemplates.test.js +0 -121
- package/build/dist/Tests/Types/Monitor/KubernetesAlertTemplates.test.js.map +0 -1
- package/build/dist/Tests/Types/Name.test.js +0 -26
- package/build/dist/Tests/Types/Name.test.js.map +0 -1
- package/build/dist/Tests/Types/ObjectID.test.js +0 -12
- package/build/dist/Tests/Types/ObjectID.test.js.map +0 -1
- package/build/dist/Tests/Types/OnCallDutyPolicy/LayerUtil.test.js +0 -530
- package/build/dist/Tests/Types/OnCallDutyPolicy/LayerUtil.test.js.map +0 -1
- package/build/dist/Tests/Types/Permission.test.js +0 -99
- package/build/dist/Tests/Types/Permission.test.js.map +0 -1
- package/build/dist/Tests/Types/Phone.test.js +0 -37
- package/build/dist/Tests/Types/Phone.test.js.map +0 -1
- package/build/dist/Tests/Types/Port.test.js +0 -35
- package/build/dist/Tests/Types/Port.test.js.map +0 -1
- package/build/dist/Tests/Types/PositiveNumber.test.js +0 -101
- package/build/dist/Tests/Types/PositiveNumber.test.js.map +0 -1
- package/build/dist/Tests/Types/SecuritySeverity.test.js +0 -16
- package/build/dist/Tests/Types/SecuritySeverity.test.js.map +0 -1
- package/build/dist/Tests/Types/SerializableObject.test.js +0 -37
- package/build/dist/Tests/Types/SerializableObject.test.js.map +0 -1
- package/build/dist/Tests/Types/Sleep.test.js +0 -14
- package/build/dist/Tests/Types/Sleep.test.js.map +0 -1
- package/build/dist/Tests/Types/Text.test.js +0 -8
- package/build/dist/Tests/Types/Text.test.js.map +0 -1
- package/build/dist/Tests/Types/Timezone.test.js +0 -596
- package/build/dist/Tests/Types/Timezone.test.js.map +0 -1
- package/build/dist/Tests/Types/Typeof.test.js +0 -16
- package/build/dist/Tests/Types/Typeof.test.js.map +0 -1
- package/build/dist/Tests/Types/UserType.test.js +0 -16
- package/build/dist/Tests/Types/UserType.test.js.map +0 -1
- package/build/dist/Tests/Types/Version.test.js +0 -35
- package/build/dist/Tests/Types/Version.test.js.map +0 -1
- package/build/dist/Tests/Types/XML.test.js +0 -35
- package/build/dist/Tests/Types/XML.test.js.map +0 -1
- package/build/dist/Tests/UI/Components/404.test.js +0 -59
- package/build/dist/Tests/UI/Components/404.test.js.map +0 -1
- package/build/dist/Tests/UI/Components/Alert.test.js +0 -83
- package/build/dist/Tests/UI/Components/Alert.test.js.map +0 -1
- package/build/dist/Tests/UI/Components/Badge.test.js +0 -59
- package/build/dist/Tests/UI/Components/Badge.test.js.map +0 -1
- package/build/dist/Tests/UI/Components/BasicForm.test.js +0 -92
- package/build/dist/Tests/UI/Components/BasicForm.test.js.map +0 -1
- package/build/dist/Tests/UI/Components/Breadcrumbs.test.js +0 -69
- package/build/dist/Tests/UI/Components/Breadcrumbs.test.js.map +0 -1
- package/build/dist/Tests/UI/Components/Button.test.js +0 -104
- package/build/dist/Tests/UI/Components/Button.test.js.map +0 -1
- package/build/dist/Tests/UI/Components/Card.test.js +0 -81
- package/build/dist/Tests/UI/Components/Card.test.js.map +0 -1
- package/build/dist/Tests/UI/Components/ColorViewer.test.js +0 -42
- package/build/dist/Tests/UI/Components/ColorViewer.test.js.map +0 -1
- package/build/dist/Tests/UI/Components/ComponentsModal.test.js +0 -233
- package/build/dist/Tests/UI/Components/ComponentsModal.test.js.map +0 -1
- package/build/dist/Tests/UI/Components/ConfirmModal.test.js +0 -57
- package/build/dist/Tests/UI/Components/ConfirmModal.test.js.map +0 -1
- package/build/dist/Tests/UI/Components/DictionaryOfStrings.test.js +0 -84
- package/build/dist/Tests/UI/Components/DictionaryOfStrings.test.js.map +0 -1
- package/build/dist/Tests/UI/Components/Dropdown.test.js +0 -146
- package/build/dist/Tests/UI/Components/Dropdown.test.js.map +0 -1
- package/build/dist/Tests/UI/Components/DuplicateModel.test.js +0 -229
- package/build/dist/Tests/UI/Components/DuplicateModel.test.js.map +0 -1
- package/build/dist/Tests/UI/Components/EmptyState/EmptyState.test.js +0 -26
- package/build/dist/Tests/UI/Components/EmptyState/EmptyState.test.js.map +0 -1
- package/build/dist/Tests/UI/Components/ErrorBoundary.test.js +0 -32
- package/build/dist/Tests/UI/Components/ErrorBoundary.test.js.map +0 -1
- package/build/dist/Tests/UI/Components/FilePicker.test.js +0 -342
- package/build/dist/Tests/UI/Components/FilePicker.test.js.map +0 -1
- package/build/dist/Tests/UI/Components/HiddenText.test.js +0 -50
- package/build/dist/Tests/UI/Components/HiddenText.test.js.map +0 -1
- package/build/dist/Tests/UI/Components/Input.test.js +0 -223
- package/build/dist/Tests/UI/Components/Input.test.js.map +0 -1
- package/build/dist/Tests/UI/Components/Item.test.js +0 -58
- package/build/dist/Tests/UI/Components/Item.test.js.map +0 -1
- package/build/dist/Tests/UI/Components/List.test.js +0 -83
- package/build/dist/Tests/UI/Components/List.test.js.map +0 -1
- package/build/dist/Tests/UI/Components/Loader.test.js +0 -19
- package/build/dist/Tests/UI/Components/Loader.test.js.map +0 -1
- package/build/dist/Tests/UI/Components/MarkdownEditor.test.js +0 -85
- package/build/dist/Tests/UI/Components/MarkdownEditor.test.js.map +0 -1
- package/build/dist/Tests/UI/Components/MasterPage.test.js +0 -46
- package/build/dist/Tests/UI/Components/MasterPage.test.js.map +0 -1
- package/build/dist/Tests/UI/Components/Modal.test.js +0 -127
- package/build/dist/Tests/UI/Components/Modal.test.js.map +0 -1
- package/build/dist/Tests/UI/Components/NavBar.test.js +0 -52
- package/build/dist/Tests/UI/Components/NavBar.test.js.map +0 -1
- package/build/dist/Tests/UI/Components/OrderedStatesList.test.js +0 -86
- package/build/dist/Tests/UI/Components/OrderedStatesList.test.js.map +0 -1
- package/build/dist/Tests/UI/Components/Pagination.test.js +0 -137
- package/build/dist/Tests/UI/Components/Pagination.test.js.map +0 -1
- package/build/dist/Tests/UI/Components/Pill.test.js +0 -55
- package/build/dist/Tests/UI/Components/Pill.test.js.map +0 -1
- package/build/dist/Tests/UI/Components/Probe.test.js +0 -52
- package/build/dist/Tests/UI/Components/Probe.test.js.map +0 -1
- package/build/dist/Tests/UI/Components/ProgressBar.test.js +0 -41
- package/build/dist/Tests/UI/Components/ProgressBar.test.js.map +0 -1
- package/build/dist/Tests/UI/Components/RadioButtons.test.js +0 -66
- package/build/dist/Tests/UI/Components/RadioButtons.test.js.map +0 -1
- package/build/dist/Tests/UI/Components/SideMenuItem.test.js +0 -99
- package/build/dist/Tests/UI/Components/SideMenuItem.test.js.map +0 -1
- package/build/dist/Tests/UI/Components/SideOver.test.js +0 -77
- package/build/dist/Tests/UI/Components/SideOver.test.js.map +0 -1
- package/build/dist/Tests/UI/Components/Tabs.test.js +0 -56
- package/build/dist/Tests/UI/Components/Tabs.test.js.map +0 -1
- package/build/dist/Tests/UI/Components/Template/Template.test.js +0 -15
- package/build/dist/Tests/UI/Components/Template/Template.test.js.map +0 -1
- package/build/dist/Tests/UI/Components/TextArea.test.js +0 -112
- package/build/dist/Tests/UI/Components/TextArea.test.js.map +0 -1
- package/build/dist/Tests/UI/Components/TimePicker/TimePicker.test.js +0 -352
- package/build/dist/Tests/UI/Components/TimePicker/TimePicker.test.js.map +0 -1
- package/build/dist/Tests/UI/Components/Toast.test.js +0 -48
- package/build/dist/Tests/UI/Components/Toast.test.js.map +0 -1
- package/build/dist/Tests/UI/Components/Toggle.test.js +0 -95
- package/build/dist/Tests/UI/Components/Toggle.test.js.map +0 -1
- package/build/dist/Tests/UI/Components/TopSection.test.js +0 -33
- package/build/dist/Tests/UI/Components/TopSection.test.js.map +0 -1
- package/build/dist/Tests/UI/Components/XAxis.test.js +0 -21
- package/build/dist/Tests/UI/Components/XAxis.test.js.map +0 -1
- package/build/dist/Tests/UI/Index.js +0 -2
- package/build/dist/Tests/UI/Index.js.map +0 -1
- package/build/dist/Tests/UI/Mocks/FileMock.js +0 -3
- package/build/dist/Tests/UI/Mocks/FileMock.js.map +0 -1
- package/build/dist/Tests/Utils/API.test.js +0 -399
- package/build/dist/Tests/Utils/API.test.js.map +0 -1
- package/build/dist/Tests/Utils/Analytics.test.js +0 -67
- package/build/dist/Tests/Utils/Analytics.test.js.map +0 -1
- package/build/dist/Tests/Utils/CronTime.test.js +0 -22
- package/build/dist/Tests/Utils/CronTime.test.js.map +0 -1
- package/build/dist/Tests/Utils/Faker.test.js +0 -27
- package/build/dist/Tests/Utils/Faker.test.js.map +0 -1
- package/build/dist/Tests/Utils/MetricUnitUtil.test.js +0 -187
- package/build/dist/Tests/Utils/MetricUnitUtil.test.js.map +0 -1
- package/build/dist/Tests/Utils/Metrics/MetricFormulaEvaluator.test.js +0 -224
- package/build/dist/Tests/Utils/Metrics/MetricFormulaEvaluator.test.js.map +0 -1
- package/build/dist/Tests/Utils/Metrics/MetricResultUnitConverter.test.js +0 -180
- package/build/dist/Tests/Utils/Metrics/MetricResultUnitConverter.test.js.map +0 -1
- package/build/dist/Tests/Utils/RecordingRuleExpression.test.js +0 -142
- package/build/dist/Tests/Utils/RecordingRuleExpression.test.js.map +0 -1
- package/build/dist/Tests/Utils/Slug.test.js +0 -20
- package/build/dist/Tests/Utils/Slug.test.js.map +0 -1
- package/build/dist/Tests/Utils/UUID.test.js +0 -48
- package/build/dist/Tests/Utils/UUID.test.js.map +0 -1
- package/build/dist/Tests/jest.setup.js +0 -30
- package/build/dist/Tests/jest.setup.js.map +0 -1
- package/build/dist/Types/Profile/ProfileMetricType.js +0 -17
- package/build/dist/Types/Profile/ProfileMetricType.js.map +0 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { SQL, Statement } from "../Utils/AnalyticsDatabase/Statement";
|
|
2
|
+
import { getQuerySettings } from "../Utils/AnalyticsDatabase/QuerySettingsHelper";
|
|
2
3
|
import MetricService from "./MetricService";
|
|
3
4
|
import TableColumnType from "../../Types/AnalyticsDatabase/TableColumnType";
|
|
4
5
|
import { JSONObject } from "../../Types/JSON";
|
|
@@ -32,15 +33,15 @@ export interface FacetRequest extends MetricFilters {
|
|
|
32
33
|
/*
|
|
33
34
|
* Facet aggregation for the Metrics page sidebar. Same shape as
|
|
34
35
|
* TraceAggregationService / LogAggregationService — per-facet GROUP BY on
|
|
35
|
-
* the analytics table, with a `
|
|
36
|
-
* `
|
|
37
|
-
* the corresponding virtual facets.
|
|
36
|
+
* the analytics table, with a `primaryEntityType` discriminator that lets
|
|
37
|
+
* the `primaryEntityId` column carry Host / DockerHost / KubernetesCluster
|
|
38
|
+
* ids for the corresponding virtual facets.
|
|
38
39
|
*/
|
|
39
40
|
export class MetricAggregationService {
|
|
40
41
|
private static readonly DEFAULT_FACET_LIMIT: number = 500;
|
|
41
42
|
private static readonly TABLE_NAME: string = AnalyticsTableName.Metric;
|
|
42
43
|
private static readonly TOP_LEVEL_COLUMNS: Set<string> = new Set([
|
|
43
|
-
"
|
|
44
|
+
"primaryEntityId",
|
|
44
45
|
"name",
|
|
45
46
|
]);
|
|
46
47
|
private static readonly RESOURCE_FACET_KEYS: Map<string, ServiceType> =
|
|
@@ -82,6 +83,11 @@ export class MetricAggregationService {
|
|
|
82
83
|
}
|
|
83
84
|
|
|
84
85
|
private static buildFacetStatement(request: FacetRequest): Statement {
|
|
86
|
+
// Pre-rename alias from stale clients; the V3 column is primaryEntityId.
|
|
87
|
+
if (request.facetKey === "serviceId") {
|
|
88
|
+
request.facetKey = "primaryEntityId";
|
|
89
|
+
}
|
|
90
|
+
|
|
85
91
|
const limit: number =
|
|
86
92
|
request.limit ?? MetricAggregationService.DEFAULT_FACET_LIMIT;
|
|
87
93
|
|
|
@@ -98,7 +104,7 @@ export class MetricAggregationService {
|
|
|
98
104
|
|
|
99
105
|
if (isResourceFacet) {
|
|
100
106
|
statement.append(
|
|
101
|
-
SQL`SELECT toString(
|
|
107
|
+
SQL`SELECT toString(primaryEntityId) AS val, count() AS cnt FROM ${MetricAggregationService.TABLE_NAME}`,
|
|
102
108
|
);
|
|
103
109
|
} else if (isTopLevelColumn) {
|
|
104
110
|
statement.append(
|
|
@@ -106,10 +112,10 @@ export class MetricAggregationService {
|
|
|
106
112
|
);
|
|
107
113
|
} else {
|
|
108
114
|
statement.append(
|
|
109
|
-
SQL`SELECT
|
|
115
|
+
SQL`SELECT attributes[${{
|
|
110
116
|
type: TableColumnType.Text,
|
|
111
117
|
value: request.facetKey,
|
|
112
|
-
}}
|
|
118
|
+
}}] AS val, count() AS cnt FROM ${MetricAggregationService.TABLE_NAME}`,
|
|
113
119
|
);
|
|
114
120
|
}
|
|
115
121
|
|
|
@@ -128,27 +134,33 @@ export class MetricAggregationService {
|
|
|
128
134
|
|
|
129
135
|
if (isResourceFacet) {
|
|
130
136
|
statement.append(
|
|
131
|
-
SQL` AND
|
|
137
|
+
SQL` AND primaryEntityType = ${{
|
|
132
138
|
type: TableColumnType.Text,
|
|
133
139
|
value: resourceServiceType as string,
|
|
134
140
|
}}`,
|
|
135
141
|
);
|
|
136
|
-
} else if (request.facetKey === "
|
|
142
|
+
} else if (request.facetKey === "primaryEntityId") {
|
|
137
143
|
statement.append(
|
|
138
|
-
SQL` AND (
|
|
144
|
+
SQL` AND (primaryEntityType = '' OR primaryEntityType = ${{
|
|
139
145
|
type: TableColumnType.Text,
|
|
140
146
|
value: ServiceType.OpenTelemetry as string,
|
|
141
147
|
}})`,
|
|
142
148
|
);
|
|
143
149
|
} else if (!isTopLevelColumn) {
|
|
144
150
|
statement.append(
|
|
145
|
-
SQL` AND
|
|
151
|
+
SQL` AND mapContains(attributes, ${{
|
|
146
152
|
type: TableColumnType.Text,
|
|
147
153
|
value: request.facetKey,
|
|
148
|
-
}})
|
|
154
|
+
}})`,
|
|
149
155
|
);
|
|
150
156
|
}
|
|
151
157
|
|
|
158
|
+
/*
|
|
159
|
+
* Read-side retention filter: rows past their per-service retention
|
|
160
|
+
* stay in their part until the whole part drops (ttl_only_drop_parts).
|
|
161
|
+
*/
|
|
162
|
+
statement.append(" AND retentionDate >= now()");
|
|
163
|
+
|
|
152
164
|
MetricAggregationService.appendCommonFilters(statement, request);
|
|
153
165
|
|
|
154
166
|
statement.append(
|
|
@@ -163,7 +175,10 @@ export class MetricAggregationService {
|
|
|
163
175
|
* so a slow facet never starves the endpoint.
|
|
164
176
|
*/
|
|
165
177
|
statement.append(
|
|
166
|
-
|
|
178
|
+
getQuerySettings({
|
|
179
|
+
maxExecutionTimeInSeconds: 45,
|
|
180
|
+
timeoutOverflowMode: "break",
|
|
181
|
+
}),
|
|
167
182
|
);
|
|
168
183
|
|
|
169
184
|
return statement;
|
|
@@ -175,7 +190,7 @@ export class MetricAggregationService {
|
|
|
175
190
|
): void {
|
|
176
191
|
if (request.serviceIds && request.serviceIds.length > 0) {
|
|
177
192
|
statement.append(
|
|
178
|
-
SQL` AND
|
|
193
|
+
SQL` AND primaryEntityId IN (${{
|
|
179
194
|
type: TableColumnType.ObjectID,
|
|
180
195
|
value: new Includes(
|
|
181
196
|
request.serviceIds.map((id: ObjectID) => {
|
|
@@ -98,19 +98,19 @@ export class MetricBaselineService extends AnalyticsDatabaseService<MetricBaseli
|
|
|
98
98
|
];
|
|
99
99
|
|
|
100
100
|
/**
|
|
101
|
-
* Fetch the rolling-window baseline for one (metric, [
|
|
101
|
+
* Fetch the rolling-window baseline for one (metric, [entity],
|
|
102
102
|
* hour-of-week) cell. Aggregates the AggregateFunction states across
|
|
103
103
|
* the last `windowDays` days. Returns null when no data exists.
|
|
104
104
|
*
|
|
105
|
-
* `
|
|
106
|
-
* across every
|
|
107
|
-
* Useful for monitor criteria whose query isn't scoped to
|
|
108
|
-
* telemetry service.
|
|
105
|
+
* `primaryEntityId` is optional: when omitted, baselines are
|
|
106
|
+
* aggregated across every primaryEntityId that ingested the metric in
|
|
107
|
+
* the window. Useful for monitor criteria whose query isn't scoped to
|
|
108
|
+
* a single telemetry service.
|
|
109
109
|
*/
|
|
110
110
|
public async getBaseline(input: {
|
|
111
111
|
projectId: ObjectID | string;
|
|
112
112
|
metricName: string;
|
|
113
|
-
|
|
113
|
+
primaryEntityId?: ObjectID | string | undefined;
|
|
114
114
|
hourOfWeek: number;
|
|
115
115
|
windowDays?: number | undefined;
|
|
116
116
|
minSamples?: number | undefined;
|
|
@@ -133,27 +133,27 @@ export class MetricBaselineService extends AnalyticsDatabaseService<MetricBaseli
|
|
|
133
133
|
Math.min(167, Math.floor(input.hourOfWeek)),
|
|
134
134
|
);
|
|
135
135
|
|
|
136
|
-
const
|
|
137
|
-
? `AND
|
|
138
|
-
input.
|
|
139
|
-
? input.
|
|
140
|
-
: input.
|
|
136
|
+
const primaryEntityIdClause: string = input.primaryEntityId
|
|
137
|
+
? `AND primaryEntityId = '${this.escapeString(
|
|
138
|
+
input.primaryEntityId instanceof ObjectID
|
|
139
|
+
? input.primaryEntityId.toString()
|
|
140
|
+
: input.primaryEntityId,
|
|
141
141
|
)}'`
|
|
142
142
|
: "";
|
|
143
143
|
|
|
144
144
|
const sql: string = `
|
|
145
145
|
SELECT
|
|
146
|
-
countMerge(sampleCountState)
|
|
147
|
-
avgMerge(meanState)
|
|
148
|
-
stddevPopMerge(stddevState)
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
minMerge(minObsState)
|
|
152
|
-
maxMerge(maxObsState)
|
|
146
|
+
countMerge(sampleCountState) AS sampleCount,
|
|
147
|
+
avgMerge(meanState) AS mean,
|
|
148
|
+
stddevPopMerge(stddevState) AS stddev,
|
|
149
|
+
quantileBFloat16Merge(0.5)(medianState) AS median,
|
|
150
|
+
quantileBFloat16Merge(0.95)(p95State) AS p95,
|
|
151
|
+
minMerge(minObsState) AS minObserved,
|
|
152
|
+
maxMerge(maxObsState) AS maxObserved
|
|
153
153
|
FROM MetricBaselineHourly
|
|
154
154
|
WHERE projectId = '${projectIdStr}'
|
|
155
155
|
AND name = '${metricNameStr}'
|
|
156
|
-
${
|
|
156
|
+
${primaryEntityIdClause}
|
|
157
157
|
AND hourOfWeek = ${hour}
|
|
158
158
|
AND day >= today() - INTERVAL ${windowDays} DAY
|
|
159
159
|
`;
|
|
@@ -223,13 +223,13 @@ export class MetricBaselineService extends AnalyticsDatabaseService<MetricBaseli
|
|
|
223
223
|
|
|
224
224
|
/**
|
|
225
225
|
* Coverage probe: how much baseline data we have for a (metric,
|
|
226
|
-
*
|
|
226
|
+
* entity) pair. Used by the form UI to show "Learning — N days of
|
|
227
227
|
* data, baseline ready in M days".
|
|
228
228
|
*/
|
|
229
229
|
public async getCoverage(input: {
|
|
230
230
|
projectId: ObjectID | string;
|
|
231
231
|
metricName: string;
|
|
232
|
-
|
|
232
|
+
primaryEntityId?: ObjectID | string | undefined;
|
|
233
233
|
}): Promise<{ totalSamples: number; oldestDay: Date | null }> {
|
|
234
234
|
const projectIdStr: string = this.escapeString(
|
|
235
235
|
input.projectId instanceof ObjectID
|
|
@@ -238,11 +238,11 @@ export class MetricBaselineService extends AnalyticsDatabaseService<MetricBaseli
|
|
|
238
238
|
);
|
|
239
239
|
const metricNameStr: string = this.escapeString(input.metricName);
|
|
240
240
|
|
|
241
|
-
const
|
|
242
|
-
? `AND
|
|
243
|
-
input.
|
|
244
|
-
? input.
|
|
245
|
-
: input.
|
|
241
|
+
const primaryEntityIdClause: string = input.primaryEntityId
|
|
242
|
+
? `AND primaryEntityId = '${this.escapeString(
|
|
243
|
+
input.primaryEntityId instanceof ObjectID
|
|
244
|
+
? input.primaryEntityId.toString()
|
|
245
|
+
: input.primaryEntityId,
|
|
246
246
|
)}'`
|
|
247
247
|
: "";
|
|
248
248
|
|
|
@@ -253,7 +253,7 @@ export class MetricBaselineService extends AnalyticsDatabaseService<MetricBaseli
|
|
|
253
253
|
FROM MetricBaselineHourly
|
|
254
254
|
WHERE projectId = '${projectIdStr}'
|
|
255
255
|
AND name = '${metricNameStr}'
|
|
256
|
-
${
|
|
256
|
+
${primaryEntityIdClause}
|
|
257
257
|
AND day >= today() - INTERVAL ${MetricBaselineService.MAX_WINDOW_DAYS} DAY
|
|
258
258
|
`;
|
|
259
259
|
|
|
@@ -295,7 +295,7 @@ export class MetricBaselineService extends AnalyticsDatabaseService<MetricBaseli
|
|
|
295
295
|
public async getBandSeries(input: {
|
|
296
296
|
projectId: ObjectID | string;
|
|
297
297
|
metricName: string;
|
|
298
|
-
|
|
298
|
+
primaryEntityId?: ObjectID | string | undefined;
|
|
299
299
|
startTime: Date;
|
|
300
300
|
endTime: Date;
|
|
301
301
|
intervalMinutes: number;
|
|
@@ -317,11 +317,11 @@ export class MetricBaselineService extends AnalyticsDatabaseService<MetricBaseli
|
|
|
317
317
|
);
|
|
318
318
|
const metricNameStr: string = this.escapeString(input.metricName);
|
|
319
319
|
|
|
320
|
-
const
|
|
321
|
-
? `AND
|
|
322
|
-
input.
|
|
323
|
-
? input.
|
|
324
|
-
: input.
|
|
320
|
+
const primaryEntityIdClause: string = input.primaryEntityId
|
|
321
|
+
? `AND primaryEntityId = '${this.escapeString(
|
|
322
|
+
input.primaryEntityId instanceof ObjectID
|
|
323
|
+
? input.primaryEntityId.toString()
|
|
324
|
+
: input.primaryEntityId,
|
|
325
325
|
)}'`
|
|
326
326
|
: "";
|
|
327
327
|
|
|
@@ -334,7 +334,7 @@ export class MetricBaselineService extends AnalyticsDatabaseService<MetricBaseli
|
|
|
334
334
|
FROM MetricBaselineHourly
|
|
335
335
|
WHERE projectId = '${projectIdStr}'
|
|
336
336
|
AND name = '${metricNameStr}'
|
|
337
|
-
${
|
|
337
|
+
${primaryEntityIdClause}
|
|
338
338
|
AND day >= today() - INTERVAL ${windowDays} DAY
|
|
339
339
|
GROUP BY hourOfWeek
|
|
340
340
|
`;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import AnalyticsDatabaseService from "./AnalyticsDatabaseService";
|
|
2
|
+
import ClickhouseDatabase from "../Infrastructure/ClickhouseDatabase";
|
|
3
|
+
import MetricItemAggMV1mByHostV2 from "../../Models/AnalyticsModels/MetricItemAggMV1mByHostV2";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Read-side service for the `MetricItemAggMV1mByHostV2` MV target table —
|
|
7
|
+
* per-(host entity key, minute) pre-aggregated metric values for
|
|
8
|
+
* host-detail chart queries. Sister of `MetricItemAggMV1mService` (which
|
|
9
|
+
* is keyed by primaryEntityId rather than host).
|
|
10
|
+
*
|
|
11
|
+
* Today's reads go through `MetricService.tryBuildHostAggregateMVStatement`
|
|
12
|
+
* with raw SQL; this service exists so the model is registered with the
|
|
13
|
+
* analytics framework and the auto-create flow can manage the table + MV
|
|
14
|
+
* on app startup (idempotent with the RekeyMetricHostRollupToEntityKey
|
|
15
|
+
* migration, which also backfills from the dropped V1 table).
|
|
16
|
+
*
|
|
17
|
+
* AggregateFunction columns require `*Merge()` finalizers at read time —
|
|
18
|
+
* the generic typed `findBy` path is therefore not useful and should not
|
|
19
|
+
* be relied on against this table.
|
|
20
|
+
*/
|
|
21
|
+
export class MetricItemAggMV1mByHostV2Service extends AnalyticsDatabaseService<MetricItemAggMV1mByHostV2> {
|
|
22
|
+
public constructor(clickhouseDatabase?: ClickhouseDatabase | undefined) {
|
|
23
|
+
super({
|
|
24
|
+
modelType: MetricItemAggMV1mByHostV2,
|
|
25
|
+
database: clickhouseDatabase,
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export default new MetricItemAggMV1mByHostV2Service();
|
|
@@ -7,6 +7,7 @@ import AggregateBy, {
|
|
|
7
7
|
import DeleteBy from "../Types/AnalyticsDatabase/DeleteBy";
|
|
8
8
|
import Query from "../Types/AnalyticsDatabase/Query";
|
|
9
9
|
import { SQL, Statement } from "../Utils/AnalyticsDatabase/Statement";
|
|
10
|
+
import { getQuerySettings } from "../Utils/AnalyticsDatabase/QuerySettingsHelper";
|
|
10
11
|
import AggregationType, {
|
|
11
12
|
getPercentileLevel,
|
|
12
13
|
isPercentileAggregation,
|
|
@@ -14,6 +15,8 @@ import AggregationType, {
|
|
|
14
15
|
import AggregationInterval from "../../Types/BaseDatabase/AggregationInterval";
|
|
15
16
|
import AnalyticsTableName from "../../Types/AnalyticsDatabase/AnalyticsTableName";
|
|
16
17
|
import TableColumnType from "../../Types/AnalyticsDatabase/TableColumnType";
|
|
18
|
+
import { keyForHost } from "../../Utils/Telemetry/EntityKey";
|
|
19
|
+
import ObjectID from "../../Types/ObjectID";
|
|
17
20
|
import logger, { LogAttributes } from "../Utils/Logger";
|
|
18
21
|
|
|
19
22
|
export class MetricService extends AnalyticsDatabaseService<Metric> {
|
|
@@ -22,7 +25,7 @@ export class MetricService extends AnalyticsDatabaseService<Metric> {
|
|
|
22
25
|
}
|
|
23
26
|
|
|
24
27
|
/*
|
|
25
|
-
* Cascade deletes from `
|
|
28
|
+
* Cascade deletes from `MetricItemV3` into the aggregating
|
|
26
29
|
* materialized-view target tables.
|
|
27
30
|
*
|
|
28
31
|
* `MetricItemAggMV1m` and `MetricBaselineHourly` are AggregatingMergeTree
|
|
@@ -35,12 +38,12 @@ export class MetricService extends AnalyticsDatabaseService<Metric> {
|
|
|
35
38
|
* See https://github.com/OneUptime/oneuptime/issues/2419.
|
|
36
39
|
*
|
|
37
40
|
* The cascade only runs when the caller scoped the delete by
|
|
38
|
-
* `
|
|
39
|
-
* each MV table's own `retentionDate TTL DELETE`, so cascading those
|
|
41
|
+
* `primaryEntityId`. Global time-based purges (TTL cleanup) are handled
|
|
42
|
+
* by each MV table's own `retentionDate TTL DELETE`, so cascading those
|
|
40
43
|
* would pointlessly scan the whole MV. The per-host MV
|
|
41
|
-
* (`
|
|
42
|
-
* `
|
|
43
|
-
* skip it.
|
|
44
|
+
* (`MetricItemAggMV1mByHostV2`) is keyed by `hostEntityKey` rather than
|
|
45
|
+
* `primaryEntityId`, so an entity-scoped delete has nothing to remove
|
|
46
|
+
* there — skip it.
|
|
44
47
|
*/
|
|
45
48
|
public override async deleteBy(deleteBy: DeleteBy<Metric>): Promise<void> {
|
|
46
49
|
await super.deleteBy(deleteBy);
|
|
@@ -96,29 +99,29 @@ export class MetricService extends AnalyticsDatabaseService<Metric> {
|
|
|
96
99
|
>;
|
|
97
100
|
|
|
98
101
|
/*
|
|
99
|
-
* Cascade only when the delete is scoped by
|
|
100
|
-
* key is (projectId, name,
|
|
101
|
-
* the DELETE would scan a huge swath of unrelated
|
|
102
|
-
* removing data that belongs to other entities sharing
|
|
103
|
-
* project.
|
|
102
|
+
* Cascade only when the delete is scoped by primaryEntityId. The MV
|
|
103
|
+
* sort key is (projectId, name, primaryEntityId, bucketTime); without
|
|
104
|
+
* primaryEntityId the DELETE would scan a huge swath of unrelated
|
|
105
|
+
* rows and risk removing data that belongs to other entities sharing
|
|
106
|
+
* the same project.
|
|
104
107
|
*/
|
|
105
108
|
if (
|
|
106
|
-
queryRecord["
|
|
107
|
-
queryRecord["
|
|
109
|
+
queryRecord["primaryEntityId"] === undefined ||
|
|
110
|
+
queryRecord["primaryEntityId"] === null
|
|
108
111
|
) {
|
|
109
112
|
return null;
|
|
110
113
|
}
|
|
111
114
|
|
|
112
115
|
/*
|
|
113
116
|
* Only project the keys the MV target tables actually expose.
|
|
114
|
-
* `time`, `attributes`, `
|
|
117
|
+
* `time`, `attributes`, `primaryEntityType`, and the metric-payload
|
|
115
118
|
* columns don't exist on the MV schema and would either fail
|
|
116
119
|
* where-statement generation or reference a missing column.
|
|
117
120
|
*/
|
|
118
121
|
const allowedKeys: ReadonlyArray<string> = [
|
|
119
122
|
"projectId",
|
|
120
123
|
"name",
|
|
121
|
-
"
|
|
124
|
+
"primaryEntityId",
|
|
122
125
|
];
|
|
123
126
|
const out: Record<string, unknown> = {};
|
|
124
127
|
for (const key of allowedKeys) {
|
|
@@ -175,7 +178,7 @@ export class MetricService extends AnalyticsDatabaseService<Metric> {
|
|
|
175
178
|
* dominant attribute-filtered path and the per-host MV is
|
|
176
179
|
* the only one that can serve them. If it doesn't apply
|
|
177
180
|
* (no host filter, or extra attrs/groupBy), fall through
|
|
178
|
-
* to the project/
|
|
181
|
+
* to the project/primaryEntityId MV, then to the base table.
|
|
179
182
|
*/
|
|
180
183
|
const hostMvStatement: {
|
|
181
184
|
statement: Statement;
|
|
@@ -329,6 +332,7 @@ export class MetricService extends AnalyticsDatabaseService<Metric> {
|
|
|
329
332
|
` FROM ${databaseName}.${this.model.tableName} WHERE TRUE `,
|
|
330
333
|
);
|
|
331
334
|
statement.append(whereStatement);
|
|
335
|
+
statement.append(this.getRetentionReadFilter());
|
|
332
336
|
statement.append(SQL`) `);
|
|
333
337
|
|
|
334
338
|
statement.append(SQL` GROUP BY `).append(`${aggregationTimestampColumn}`);
|
|
@@ -358,7 +362,13 @@ export class MetricService extends AnalyticsDatabaseService<Metric> {
|
|
|
358
362
|
* cluster behavior consistent across aggregation kinds.
|
|
359
363
|
*/
|
|
360
364
|
statement.append(
|
|
361
|
-
|
|
365
|
+
getQuerySettings({
|
|
366
|
+
additionalSettings: {
|
|
367
|
+
optimize_aggregation_in_order: 1,
|
|
368
|
+
optimize_move_to_prewhere: 1,
|
|
369
|
+
max_threads: 4,
|
|
370
|
+
},
|
|
371
|
+
}),
|
|
362
372
|
);
|
|
363
373
|
|
|
364
374
|
const columns: Array<string> = [
|
|
@@ -388,7 +398,7 @@ export class MetricService extends AnalyticsDatabaseService<Metric> {
|
|
|
388
398
|
* - The dashboard's effective bucket interval is >= 1 minute (the
|
|
389
399
|
* MV stores 1-minute states; sub-minute requests need raw rows).
|
|
390
400
|
* - The query carries no per-attribute filter or group-by, since
|
|
391
|
-
* the MV is keyed by (projectId, name,
|
|
401
|
+
* the MV is keyed by (projectId, name, primaryEntityId, bucketTime)
|
|
392
402
|
* only — it does not preserve attribute breakdowns.
|
|
393
403
|
* - The query carries no group-by other than the time bucket.
|
|
394
404
|
*
|
|
@@ -449,6 +459,26 @@ export class MetricService extends AnalyticsDatabaseService<Metric> {
|
|
|
449
459
|
return null;
|
|
450
460
|
}
|
|
451
461
|
|
|
462
|
+
/*
|
|
463
|
+
* The MV only carries projectId/name/primaryEntityId/bucketTime, so a
|
|
464
|
+
* query filtering on any other column (e.g. entityKeys membership,
|
|
465
|
+
* which exists only on the raw Metric table) must fall back to the
|
|
466
|
+
* raw-table path or the generated WHERE would reference a column the
|
|
467
|
+
* MV does not have.
|
|
468
|
+
*/
|
|
469
|
+
const mvQueryableColumns: ReadonlyArray<string> = [
|
|
470
|
+
"projectId",
|
|
471
|
+
"name",
|
|
472
|
+
"primaryEntityId",
|
|
473
|
+
"time", // stripped below; bucketTime range is added explicitly
|
|
474
|
+
"attributes", // guarded empty above
|
|
475
|
+
];
|
|
476
|
+
for (const queryKey of Object.keys(queryRecord)) {
|
|
477
|
+
if (!mvQueryableColumns.includes(queryKey)) {
|
|
478
|
+
return null;
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
|
|
452
482
|
if (!this.database) {
|
|
453
483
|
this.useDefaultDatabase();
|
|
454
484
|
}
|
|
@@ -490,7 +520,7 @@ export class MetricService extends AnalyticsDatabaseService<Metric> {
|
|
|
490
520
|
);
|
|
491
521
|
statement.append(SQL` FROM ${databaseName}.MetricItemAggMV1m`);
|
|
492
522
|
statement.append(
|
|
493
|
-
` WHERE bucketTime >= toDateTime('${this.formatDateTime(aggregateBy.startTimestamp!)}') AND bucketTime <= toDateTime('${this.formatDateTime(aggregateBy.endTimestamp!)}')`,
|
|
523
|
+
` WHERE bucketTime >= toDateTime('${this.formatDateTime(aggregateBy.startTimestamp!)}') AND bucketTime <= toDateTime('${this.formatDateTime(aggregateBy.endTimestamp!)}')${this.getRetentionReadFilter()}`,
|
|
494
524
|
);
|
|
495
525
|
statement.append(SQL` `).append(nonTimeWhere);
|
|
496
526
|
|
|
@@ -509,7 +539,13 @@ export class MetricService extends AnalyticsDatabaseService<Metric> {
|
|
|
509
539
|
}} `,
|
|
510
540
|
);
|
|
511
541
|
statement.append(
|
|
512
|
-
|
|
542
|
+
getQuerySettings({
|
|
543
|
+
additionalSettings: {
|
|
544
|
+
optimize_aggregation_in_order: 1,
|
|
545
|
+
optimize_move_to_prewhere: 1,
|
|
546
|
+
max_threads: 4,
|
|
547
|
+
},
|
|
548
|
+
}),
|
|
513
549
|
);
|
|
514
550
|
|
|
515
551
|
logger.debug(`${this.model.tableName} MV Aggregate Statement`, {
|
|
@@ -531,16 +567,20 @@ export class MetricService extends AnalyticsDatabaseService<Metric> {
|
|
|
531
567
|
/*
|
|
532
568
|
* Per-host materialized-view fast path.
|
|
533
569
|
*
|
|
534
|
-
* Returns a statement that reads from
|
|
535
|
-
* (created by
|
|
536
|
-
*
|
|
570
|
+
* Returns a statement that reads from MetricItemAggMV1mByHostV2
|
|
571
|
+
* (created by RekeyMetricHostRollupToEntityKey), which is keyed by
|
|
572
|
+
* the stable `hostEntityKey` — the incoming `resource.host.name`
|
|
573
|
+
* filter value is folded into that key server-side via
|
|
574
|
+
* EntityKey.keyForHost, so spelling drift (case/whitespace) in the
|
|
575
|
+
* reported hostname still lands on one rollup stream. Applies when:
|
|
537
576
|
*
|
|
538
577
|
* - The aggregation is Sum/Avg/Min/Max/Count over `value`.
|
|
539
578
|
* - The only attribute filter is `resource.host.name` as a
|
|
540
579
|
* bare-string equality (the dashboard's host detail page
|
|
541
|
-
* pattern)
|
|
580
|
+
* pattern), and the query carries a `projectId` (the entity
|
|
581
|
+
* key is tenant-scoped by construction).
|
|
542
582
|
* - The query carries no group-by other than the time
|
|
543
|
-
* bucket — the MV is keyed by
|
|
583
|
+
* bucket — the MV is keyed by hostEntityKey and does not
|
|
544
584
|
* preserve other attribute breakdowns.
|
|
545
585
|
*
|
|
546
586
|
* Returns `null` if any condition fails so the caller falls
|
|
@@ -601,12 +641,54 @@ export class MetricService extends AnalyticsDatabaseService<Metric> {
|
|
|
601
641
|
if (attrValue === undefined || attrValue === null) {
|
|
602
642
|
return null;
|
|
603
643
|
}
|
|
644
|
+
|
|
645
|
+
/*
|
|
646
|
+
* The MV only carries projectId/name/hostEntityKey/bucketTime. Any
|
|
647
|
+
* other query key (primaryEntityId, entityScope, entityKeys, ...)
|
|
648
|
+
* would compile to a WHERE over a column the MV does not have, so
|
|
649
|
+
* fall back to the raw table for those. Mirrors
|
|
650
|
+
* tryBuildMinuteAggregateMVStatement.
|
|
651
|
+
*/
|
|
652
|
+
const mvQueryableColumns: ReadonlyArray<string> = [
|
|
653
|
+
"projectId",
|
|
654
|
+
"name",
|
|
655
|
+
"time", // stripped below; bucketTime range is added explicitly
|
|
656
|
+
"attributes", // rewritten below into the hostEntityKey predicate
|
|
657
|
+
];
|
|
658
|
+
for (const queryKey of Object.keys(queryRecord)) {
|
|
659
|
+
if (!mvQueryableColumns.includes(queryKey)) {
|
|
660
|
+
return null;
|
|
661
|
+
}
|
|
662
|
+
}
|
|
604
663
|
const hostIdentifier: string =
|
|
605
664
|
typeof attrValue === "string" ? attrValue : "";
|
|
606
665
|
if (!hostIdentifier) {
|
|
607
666
|
return null;
|
|
608
667
|
}
|
|
609
668
|
|
|
669
|
+
/*
|
|
670
|
+
* The entity key folds the tenant in (sha256(projectId|host|...)), so
|
|
671
|
+
* the MV row can only be located when the query is project-scoped.
|
|
672
|
+
* Dashboard reads always are; anything else falls back safely.
|
|
673
|
+
*/
|
|
674
|
+
const projectIdValue: unknown = queryRecord["projectId"];
|
|
675
|
+
let projectId: string = "";
|
|
676
|
+
if (projectIdValue instanceof ObjectID) {
|
|
677
|
+
projectId = projectIdValue.toString();
|
|
678
|
+
} else if (typeof projectIdValue === "string") {
|
|
679
|
+
projectId = projectIdValue;
|
|
680
|
+
}
|
|
681
|
+
if (!projectId) {
|
|
682
|
+
return null;
|
|
683
|
+
}
|
|
684
|
+
|
|
685
|
+
/*
|
|
686
|
+
* Same canonicalized key the ingest pipeline stamps into
|
|
687
|
+
* MetricItemV3.hostEntityKey (and the V2 MV groups by) — byte-equality
|
|
688
|
+
* is what makes this lookup correct, see Common/Utils/Telemetry/EntityKey.
|
|
689
|
+
*/
|
|
690
|
+
const hostEntityKey: string = keyForHost(projectId, hostIdentifier);
|
|
691
|
+
|
|
610
692
|
const interval: AggregationInterval = AggregateUtil.getAggregationInterval({
|
|
611
693
|
startDate: aggregateBy.startTimestamp!,
|
|
612
694
|
endDate: aggregateBy.endTimestamp!,
|
|
@@ -637,7 +719,7 @@ export class MetricService extends AnalyticsDatabaseService<Metric> {
|
|
|
637
719
|
* Strip both `time` (column doesn't exist on the MV; we
|
|
638
720
|
* inject an explicit bucketTime range below) and
|
|
639
721
|
* `attributes` (the attribute filter is now an explicit
|
|
640
|
-
* `
|
|
722
|
+
* `hostEntityKey =` predicate against an MV column).
|
|
641
723
|
*/
|
|
642
724
|
const filteredQuery: typeof aggregateBy.query =
|
|
643
725
|
this.stripAttributesAndTimeFromQuery(
|
|
@@ -654,13 +736,13 @@ export class MetricService extends AnalyticsDatabaseService<Metric> {
|
|
|
654
736
|
statement.append(
|
|
655
737
|
`SELECT ${mergedExpr} as value, date_trunc('${intervalLower}', toStartOfInterval(bucketTime, INTERVAL 1 ${intervalLower})) as time`,
|
|
656
738
|
);
|
|
657
|
-
statement.append(SQL` FROM ${databaseName}.
|
|
739
|
+
statement.append(SQL` FROM ${databaseName}.MetricItemAggMV1mByHostV2`);
|
|
658
740
|
statement.append(
|
|
659
|
-
` WHERE bucketTime >= toDateTime('${this.formatDateTime(aggregateBy.startTimestamp!)}') AND bucketTime <= toDateTime('${this.formatDateTime(aggregateBy.endTimestamp!)}')`,
|
|
741
|
+
` WHERE bucketTime >= toDateTime('${this.formatDateTime(aggregateBy.startTimestamp!)}') AND bucketTime <= toDateTime('${this.formatDateTime(aggregateBy.endTimestamp!)}')${this.getRetentionReadFilter()}`,
|
|
660
742
|
);
|
|
661
743
|
statement.append(
|
|
662
|
-
SQL` AND
|
|
663
|
-
value:
|
|
744
|
+
SQL` AND hostEntityKey = ${{
|
|
745
|
+
value: hostEntityKey,
|
|
664
746
|
type: TableColumnType.Text,
|
|
665
747
|
}}`,
|
|
666
748
|
);
|
|
@@ -681,7 +763,13 @@ export class MetricService extends AnalyticsDatabaseService<Metric> {
|
|
|
681
763
|
}} `,
|
|
682
764
|
);
|
|
683
765
|
statement.append(
|
|
684
|
-
|
|
766
|
+
getQuerySettings({
|
|
767
|
+
additionalSettings: {
|
|
768
|
+
optimize_aggregation_in_order: 1,
|
|
769
|
+
optimize_move_to_prewhere: 1,
|
|
770
|
+
max_threads: 4,
|
|
771
|
+
},
|
|
772
|
+
}),
|
|
685
773
|
);
|
|
686
774
|
|
|
687
775
|
logger.debug(`${this.model.tableName} Host MV Aggregate Statement`, {
|