@oneuptime/common 10.8.2 → 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/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 +10 -10
- 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/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 +12 -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/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 +186 -50
- package/Server/Services/ProfileAggregationService.ts +904 -126
- 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 +5 -0
- 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/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/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/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/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/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 +12 -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/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/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/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/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/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
|
@@ -28,7 +28,7 @@ export enum MetricPointType {
|
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
@OperationalResource()
|
|
31
|
-
@OwnedThrough("
|
|
31
|
+
@OwnedThrough("primaryEntityId", Service, { includeProjectScope: true })
|
|
32
32
|
export default class Metric extends AnalyticsBaseModel {
|
|
33
33
|
public constructor() {
|
|
34
34
|
const projectIdColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
|
|
@@ -62,71 +62,73 @@ export default class Metric extends AnalyticsBaseModel {
|
|
|
62
62
|
});
|
|
63
63
|
|
|
64
64
|
// this can also be the monitor id or the telemetry service id.
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
65
|
+
const primaryEntityIdColumn: AnalyticsTableColumn =
|
|
66
|
+
new AnalyticsTableColumn({
|
|
67
|
+
key: "primaryEntityId",
|
|
68
|
+
title: "Service ID",
|
|
69
|
+
description: "ID of the Service which created the Metric",
|
|
70
|
+
required: true,
|
|
71
|
+
type: TableColumnType.ObjectID,
|
|
72
|
+
accessControl: {
|
|
73
|
+
read: [
|
|
74
|
+
Permission.ProjectOwner,
|
|
75
|
+
Permission.ProjectAdmin,
|
|
76
|
+
Permission.ProjectMember,
|
|
77
|
+
Permission.Viewer,
|
|
78
|
+
Permission.TelemetryAdmin,
|
|
79
|
+
Permission.TelemetryMember,
|
|
80
|
+
Permission.TelemetryViewer,
|
|
81
|
+
Permission.ReadTelemetryServiceLog,
|
|
82
|
+
],
|
|
83
|
+
create: [
|
|
84
|
+
Permission.ProjectOwner,
|
|
85
|
+
Permission.ProjectAdmin,
|
|
86
|
+
Permission.ProjectMember,
|
|
87
|
+
Permission.TelemetryAdmin,
|
|
88
|
+
Permission.TelemetryMember,
|
|
89
|
+
Permission.CreateTelemetryServiceLog,
|
|
90
|
+
],
|
|
91
|
+
update: [],
|
|
92
|
+
},
|
|
93
|
+
});
|
|
93
94
|
|
|
94
95
|
// this can also be the monitor id or the telemetry service id.
|
|
95
|
-
const
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
96
|
+
const primaryEntityTypeColumn: AnalyticsTableColumn =
|
|
97
|
+
new AnalyticsTableColumn({
|
|
98
|
+
key: "primaryEntityType",
|
|
99
|
+
isLowCardinality: true,
|
|
100
|
+
title: "Service Type",
|
|
101
|
+
description: "Type of the service that this telemetry belongs to",
|
|
102
|
+
required: false,
|
|
103
|
+
type: TableColumnType.Text,
|
|
104
|
+
skipIndex: {
|
|
105
|
+
name: "idx_service_type",
|
|
106
|
+
type: SkipIndexType.Set,
|
|
107
|
+
params: [5],
|
|
108
|
+
granularity: 4,
|
|
109
|
+
},
|
|
110
|
+
accessControl: {
|
|
111
|
+
read: [
|
|
112
|
+
Permission.ProjectOwner,
|
|
113
|
+
Permission.ProjectAdmin,
|
|
114
|
+
Permission.ProjectMember,
|
|
115
|
+
Permission.Viewer,
|
|
116
|
+
Permission.TelemetryAdmin,
|
|
117
|
+
Permission.TelemetryMember,
|
|
118
|
+
Permission.TelemetryViewer,
|
|
119
|
+
Permission.ReadTelemetryServiceLog,
|
|
120
|
+
],
|
|
121
|
+
create: [
|
|
122
|
+
Permission.ProjectOwner,
|
|
123
|
+
Permission.ProjectAdmin,
|
|
124
|
+
Permission.ProjectMember,
|
|
125
|
+
Permission.TelemetryAdmin,
|
|
126
|
+
Permission.TelemetryMember,
|
|
127
|
+
Permission.CreateTelemetryServiceLog,
|
|
128
|
+
],
|
|
129
|
+
update: [],
|
|
130
|
+
},
|
|
131
|
+
});
|
|
130
132
|
|
|
131
133
|
// add name and description
|
|
132
134
|
const nameColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
|
|
@@ -168,6 +170,8 @@ export default class Metric extends AnalyticsBaseModel {
|
|
|
168
170
|
const aggregationTemporalityColumn: AnalyticsTableColumn =
|
|
169
171
|
new AnalyticsTableColumn({
|
|
170
172
|
key: "aggregationTemporality",
|
|
173
|
+
// Enum-shaped (Delta / Cumulative / Unspecified) — dictionary-encode.
|
|
174
|
+
isLowCardinality: true,
|
|
171
175
|
title: "Aggregation Temporality",
|
|
172
176
|
description: "Aggregation Temporality of this Metric",
|
|
173
177
|
required: false,
|
|
@@ -296,11 +300,11 @@ export default class Metric extends AnalyticsBaseModel {
|
|
|
296
300
|
// end time.
|
|
297
301
|
const timeUnixNanoColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
|
|
298
302
|
key: "timeUnixNano",
|
|
299
|
-
codec: { codec: "ZSTD", level: 1 },
|
|
303
|
+
codec: [{ codec: "DoubleDelta" }, { codec: "ZSTD", level: 1 }],
|
|
300
304
|
title: "Time (in Unix Nano)",
|
|
301
305
|
description: "When did the Metric happen?",
|
|
302
306
|
required: true,
|
|
303
|
-
type: TableColumnType.
|
|
307
|
+
type: TableColumnType.UInt64,
|
|
304
308
|
accessControl: {
|
|
305
309
|
read: [
|
|
306
310
|
Permission.ProjectOwner,
|
|
@@ -327,11 +331,11 @@ export default class Metric extends AnalyticsBaseModel {
|
|
|
327
331
|
const startTimeUnixNanoColumn: AnalyticsTableColumn =
|
|
328
332
|
new AnalyticsTableColumn({
|
|
329
333
|
key: "startTimeUnixNano",
|
|
330
|
-
codec: { codec: "ZSTD", level: 1 },
|
|
334
|
+
codec: [{ codec: "DoubleDelta" }, { codec: "ZSTD", level: 1 }],
|
|
331
335
|
title: "Start Time (in Unix Nano)",
|
|
332
336
|
description: "When did the Metric happen?",
|
|
333
337
|
required: false,
|
|
334
|
-
type: TableColumnType.
|
|
338
|
+
type: TableColumnType.UInt64,
|
|
335
339
|
accessControl: {
|
|
336
340
|
read: [
|
|
337
341
|
Permission.ProjectOwner,
|
|
@@ -386,6 +390,103 @@ export default class Metric extends AnalyticsBaseModel {
|
|
|
386
390
|
},
|
|
387
391
|
});
|
|
388
392
|
|
|
393
|
+
const entityKeysColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
|
|
394
|
+
key: "entityKeys",
|
|
395
|
+
codec: { codec: "ZSTD", level: 3 },
|
|
396
|
+
title: "Entity Keys",
|
|
397
|
+
description:
|
|
398
|
+
"Stable keys of every OpenTelemetry entity (service, host, k8s.pod, container, ...) this signal belongs to. A superset that includes the primary entity. Enables cross-cutting membership queries via has(entityKeys, :key).",
|
|
399
|
+
required: true,
|
|
400
|
+
defaultValue: [],
|
|
401
|
+
type: TableColumnType.ArrayText,
|
|
402
|
+
skipIndex: {
|
|
403
|
+
name: "idx_entity_keys",
|
|
404
|
+
type: SkipIndexType.BloomFilter,
|
|
405
|
+
params: [0.01],
|
|
406
|
+
granularity: 1,
|
|
407
|
+
},
|
|
408
|
+
accessControl: {
|
|
409
|
+
read: [
|
|
410
|
+
Permission.ProjectOwner,
|
|
411
|
+
Permission.ProjectAdmin,
|
|
412
|
+
Permission.ProjectMember,
|
|
413
|
+
Permission.Viewer,
|
|
414
|
+
Permission.TelemetryAdmin,
|
|
415
|
+
Permission.TelemetryMember,
|
|
416
|
+
Permission.TelemetryViewer,
|
|
417
|
+
Permission.ReadTelemetryServiceLog,
|
|
418
|
+
],
|
|
419
|
+
create: [
|
|
420
|
+
Permission.ProjectOwner,
|
|
421
|
+
Permission.ProjectAdmin,
|
|
422
|
+
Permission.ProjectMember,
|
|
423
|
+
Permission.TelemetryAdmin,
|
|
424
|
+
Permission.TelemetryMember,
|
|
425
|
+
Permission.CreateTelemetryServiceLog,
|
|
426
|
+
],
|
|
427
|
+
update: [],
|
|
428
|
+
},
|
|
429
|
+
});
|
|
430
|
+
|
|
431
|
+
/*
|
|
432
|
+
* Scalar per-entity-type key columns — denormalized single-value
|
|
433
|
+
* siblings of `entityKeys`. Each holds the 16-hex key (see
|
|
434
|
+
* Common/Utils/Telemetry/EntityKey) of the row's entity of that type,
|
|
435
|
+
* or '' when the resource carries no such entity (non-Nullable String,
|
|
436
|
+
* so old rows read the type default ''). Unlike the array column, a
|
|
437
|
+
* scalar equality predicate is usable as an MV/sort key (the per-host
|
|
438
|
+
* minute rollup `MetricItemAggMV1mByHostV2` groups by `hostEntityKey`)
|
|
439
|
+
* and gets a cheaper bloom-filter probe; only the high-traffic keys
|
|
440
|
+
* (service/host/k8s.pod) carry skip indexes. Stamped at ingest by the
|
|
441
|
+
* same extractor that fills `entityKeys`; never part of identity.
|
|
442
|
+
*/
|
|
443
|
+
const scalarEntityKeyColumns: Array<AnalyticsTableColumn> = [
|
|
444
|
+
{
|
|
445
|
+
key: "serviceEntityKey",
|
|
446
|
+
title: "Service Entity Key",
|
|
447
|
+
indexName: "idx_service_entity_key",
|
|
448
|
+
},
|
|
449
|
+
{
|
|
450
|
+
key: "hostEntityKey",
|
|
451
|
+
title: "Host Entity Key",
|
|
452
|
+
indexName: "idx_host_entity_key",
|
|
453
|
+
},
|
|
454
|
+
{
|
|
455
|
+
key: "k8sPodEntityKey",
|
|
456
|
+
title: "Kubernetes Pod Entity Key",
|
|
457
|
+
indexName: "idx_k8s_pod_entity_key",
|
|
458
|
+
},
|
|
459
|
+
{ key: "k8sNodeEntityKey", title: "Kubernetes Node Entity Key" },
|
|
460
|
+
{ key: "k8sClusterEntityKey", title: "Kubernetes Cluster Entity Key" },
|
|
461
|
+
{ key: "containerEntityKey", title: "Container Entity Key" },
|
|
462
|
+
].map(
|
|
463
|
+
(def: {
|
|
464
|
+
key: string;
|
|
465
|
+
title: string;
|
|
466
|
+
indexName?: string | undefined;
|
|
467
|
+
}): AnalyticsTableColumn => {
|
|
468
|
+
return new AnalyticsTableColumn({
|
|
469
|
+
key: def.key,
|
|
470
|
+
title: def.title,
|
|
471
|
+
description:
|
|
472
|
+
"Scalar entity key for this entity type (see entityKeys); '' when the resource has no entity of this type.",
|
|
473
|
+
required: true,
|
|
474
|
+
defaultValue: "",
|
|
475
|
+
type: TableColumnType.Text,
|
|
476
|
+
codec: { codec: "ZSTD", level: 1 },
|
|
477
|
+
skipIndex: def.indexName
|
|
478
|
+
? {
|
|
479
|
+
name: def.indexName,
|
|
480
|
+
type: SkipIndexType.BloomFilter,
|
|
481
|
+
params: [0.01],
|
|
482
|
+
granularity: 1,
|
|
483
|
+
}
|
|
484
|
+
: undefined,
|
|
485
|
+
accessControl: entityKeysColumn.accessControl,
|
|
486
|
+
});
|
|
487
|
+
},
|
|
488
|
+
);
|
|
489
|
+
|
|
389
490
|
const attributeKeysColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
|
|
390
491
|
key: "attributeKeys",
|
|
391
492
|
codec: { codec: "ZSTD", level: 3 },
|
|
@@ -484,7 +585,7 @@ export default class Metric extends AnalyticsBaseModel {
|
|
|
484
585
|
|
|
485
586
|
const sumColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
|
|
486
587
|
key: "sum",
|
|
487
|
-
codec: { codec: "ZSTD", level: 1 },
|
|
588
|
+
codec: [{ codec: "Gorilla" }, { codec: "ZSTD", level: 1 }],
|
|
488
589
|
title: "Sum",
|
|
489
590
|
description: "Sum",
|
|
490
591
|
required: false,
|
|
@@ -514,7 +615,7 @@ export default class Metric extends AnalyticsBaseModel {
|
|
|
514
615
|
|
|
515
616
|
const valueColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
|
|
516
617
|
key: "value",
|
|
517
|
-
codec: { codec: "ZSTD", level: 1 },
|
|
618
|
+
codec: [{ codec: "Gorilla" }, { codec: "ZSTD", level: 1 }],
|
|
518
619
|
title: "Value",
|
|
519
620
|
description: "Value",
|
|
520
621
|
required: false,
|
|
@@ -544,7 +645,7 @@ export default class Metric extends AnalyticsBaseModel {
|
|
|
544
645
|
|
|
545
646
|
const minColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
|
|
546
647
|
key: "min",
|
|
547
|
-
codec: { codec: "ZSTD", level: 1 },
|
|
648
|
+
codec: [{ codec: "Gorilla" }, { codec: "ZSTD", level: 1 }],
|
|
548
649
|
title: "Min",
|
|
549
650
|
description: "Min",
|
|
550
651
|
required: false,
|
|
@@ -574,7 +675,7 @@ export default class Metric extends AnalyticsBaseModel {
|
|
|
574
675
|
|
|
575
676
|
const maxColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
|
|
576
677
|
key: "max",
|
|
577
|
-
codec: { codec: "ZSTD", level: 1 },
|
|
678
|
+
codec: [{ codec: "Gorilla" }, { codec: "ZSTD", level: 1 }],
|
|
578
679
|
title: "Max",
|
|
579
680
|
description: "Max",
|
|
580
681
|
required: false,
|
|
@@ -1071,8 +1172,8 @@ export default class Metric extends AnalyticsBaseModel {
|
|
|
1071
1172
|
},
|
|
1072
1173
|
tableColumns: [
|
|
1073
1174
|
projectIdColumn,
|
|
1074
|
-
|
|
1075
|
-
|
|
1175
|
+
primaryEntityIdColumn,
|
|
1176
|
+
primaryEntityTypeColumn,
|
|
1076
1177
|
nameColumn,
|
|
1077
1178
|
aggregationTemporalityColumn,
|
|
1078
1179
|
metricPointTypeColumn,
|
|
@@ -1082,6 +1183,8 @@ export default class Metric extends AnalyticsBaseModel {
|
|
|
1082
1183
|
startTimeUnixNanoColumn,
|
|
1083
1184
|
attributesColumn,
|
|
1084
1185
|
attributeKeysColumn,
|
|
1186
|
+
entityKeysColumn,
|
|
1187
|
+
...scalarEntityKeyColumns,
|
|
1085
1188
|
isMonotonicColumn,
|
|
1086
1189
|
countColumn,
|
|
1087
1190
|
sumColumn,
|
|
@@ -1103,13 +1206,15 @@ export default class Metric extends AnalyticsBaseModel {
|
|
|
1103
1206
|
retentionDateColumn,
|
|
1104
1207
|
],
|
|
1105
1208
|
projections: [],
|
|
1106
|
-
sortKeys: ["projectId", "name", "
|
|
1107
|
-
primaryKeys: ["projectId", "name", "
|
|
1108
|
-
partitionKey: "
|
|
1209
|
+
sortKeys: ["projectId", "name", "primaryEntityId", "time"],
|
|
1210
|
+
primaryKeys: ["projectId", "name", "primaryEntityId", "time"],
|
|
1211
|
+
partitionKey: "toYYYYMMDD(time)",
|
|
1212
|
+
tableSettings:
|
|
1213
|
+
"ttl_only_drop_parts = 1, non_replicated_deduplication_window = 10000",
|
|
1109
1214
|
ttlExpression: "retentionDate DELETE",
|
|
1110
1215
|
/*
|
|
1111
1216
|
* `time` is the 4th column of the Metric sort key (after
|
|
1112
|
-
* projectId + name +
|
|
1217
|
+
* projectId + name + primaryEntityId). A list query that filters
|
|
1113
1218
|
* by name (the typical "metric detail" drilldown) can still
|
|
1114
1219
|
* stream from the index when sorting by `time DESC`. With
|
|
1115
1220
|
* no name filter the sort is less efficient but still far
|
|
@@ -1128,12 +1233,12 @@ export default class Metric extends AnalyticsBaseModel {
|
|
|
1128
1233
|
this.setColumnValue("projectId", v);
|
|
1129
1234
|
}
|
|
1130
1235
|
|
|
1131
|
-
public get
|
|
1132
|
-
return this.getColumnValue("
|
|
1236
|
+
public get primaryEntityId(): ObjectID | undefined {
|
|
1237
|
+
return this.getColumnValue("primaryEntityId") as ObjectID | undefined;
|
|
1133
1238
|
}
|
|
1134
1239
|
|
|
1135
|
-
public get
|
|
1136
|
-
return this.getColumnValue("
|
|
1240
|
+
public get primaryEntityType(): ServiceType | undefined {
|
|
1241
|
+
return this.getColumnValue("primaryEntityType") as ServiceType | undefined;
|
|
1137
1242
|
}
|
|
1138
1243
|
|
|
1139
1244
|
public get name(): string | undefined {
|
|
@@ -1172,12 +1277,12 @@ export default class Metric extends AnalyticsBaseModel {
|
|
|
1172
1277
|
this.setColumnValue("isMonotonic", v);
|
|
1173
1278
|
}
|
|
1174
1279
|
|
|
1175
|
-
public set
|
|
1176
|
-
this.setColumnValue("
|
|
1280
|
+
public set primaryEntityId(v: ObjectID | undefined) {
|
|
1281
|
+
this.setColumnValue("primaryEntityId", v);
|
|
1177
1282
|
}
|
|
1178
1283
|
|
|
1179
|
-
public set
|
|
1180
|
-
this.setColumnValue("
|
|
1284
|
+
public set primaryEntityType(v: ServiceType | undefined) {
|
|
1285
|
+
this.setColumnValue("primaryEntityType", v);
|
|
1181
1286
|
}
|
|
1182
1287
|
|
|
1183
1288
|
public get time(): Date | undefined {
|
|
@@ -1204,6 +1309,14 @@ export default class Metric extends AnalyticsBaseModel {
|
|
|
1204
1309
|
this.setColumnValue("attributeKeys", v);
|
|
1205
1310
|
}
|
|
1206
1311
|
|
|
1312
|
+
public get entityKeys(): Array<string> | undefined {
|
|
1313
|
+
return this.getColumnValue("entityKeys") as Array<string> | undefined;
|
|
1314
|
+
}
|
|
1315
|
+
|
|
1316
|
+
public set entityKeys(v: Array<string> | undefined) {
|
|
1317
|
+
this.setColumnValue("entityKeys", v);
|
|
1318
|
+
}
|
|
1319
|
+
|
|
1207
1320
|
public get startTime(): Date | undefined {
|
|
1208
1321
|
return this.getColumnValue("startTime") as Date | undefined;
|
|
1209
1322
|
}
|
|
@@ -5,13 +5,13 @@ import AnalyticsTableColumn from "../../Types/AnalyticsDatabase/TableColumn";
|
|
|
5
5
|
import TableColumnType from "../../Types/AnalyticsDatabase/TableColumnType";
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
|
-
* Per-(day, hour-of-week) statistical baseline of `
|
|
8
|
+
* Per-(day, hour-of-week) statistical baseline of `MetricItemV3` value
|
|
9
9
|
* samples — backbone of metric anomaly detection.
|
|
10
10
|
*
|
|
11
11
|
* Populated by `MetricBaselineHourly_mv` (defined in the
|
|
12
12
|
* `AddMetricBaselineHourlyMV` data migration), which fires on every
|
|
13
|
-
* insert into `
|
|
14
|
-
*
|
|
13
|
+
* insert into `MetricItemV3` and groups by `(projectId, name,
|
|
14
|
+
* primaryEntityId, day, hourOfWeek)`. Each row holds AggregateFunction
|
|
15
15
|
* states (count/avg/stddevPop/quantile/min/max) — finalize at read
|
|
16
16
|
* time via the matching `*Merge()`.
|
|
17
17
|
*
|
|
@@ -40,7 +40,7 @@ export default class MetricBaselineHourly extends AnalyticsBaseModel {
|
|
|
40
40
|
const projectIdColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
|
|
41
41
|
key: "projectId",
|
|
42
42
|
title: "Project ID",
|
|
43
|
-
description: "ID of project (tenant key, replicated from
|
|
43
|
+
description: "ID of project (tenant key, replicated from MetricItemV3)",
|
|
44
44
|
required: true,
|
|
45
45
|
type: TableColumnType.Text,
|
|
46
46
|
isTenantId: true,
|
|
@@ -49,18 +49,19 @@ export default class MetricBaselineHourly extends AnalyticsBaseModel {
|
|
|
49
49
|
const nameColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
|
|
50
50
|
key: "name",
|
|
51
51
|
title: "Metric Name",
|
|
52
|
-
description: "Metric name (replicated from
|
|
52
|
+
description: "Metric name (replicated from MetricItemV3)",
|
|
53
53
|
required: true,
|
|
54
54
|
type: TableColumnType.Text,
|
|
55
55
|
});
|
|
56
56
|
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
57
|
+
const primaryEntityIdColumn: AnalyticsTableColumn =
|
|
58
|
+
new AnalyticsTableColumn({
|
|
59
|
+
key: "primaryEntityId",
|
|
60
|
+
title: "Service ID",
|
|
61
|
+
description: "Primary entity ID (replicated from MetricItemV3)",
|
|
62
|
+
required: true,
|
|
63
|
+
type: TableColumnType.Text,
|
|
64
|
+
});
|
|
64
65
|
|
|
65
66
|
const dayColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
|
|
66
67
|
key: "day",
|
|
@@ -111,24 +112,34 @@ export default class MetricBaselineHourly extends AnalyticsBaseModel {
|
|
|
111
112
|
aggregateFunctionDefinition: "stddevPop, Float64",
|
|
112
113
|
});
|
|
113
114
|
|
|
115
|
+
/*
|
|
116
|
+
* quantileBFloat16, not quantile(reservoir sampling): the BFloat16
|
|
117
|
+
* sketch is a fixed-size histogram of bfloat16 buckets, so its state
|
|
118
|
+
* stays small and merges cheaply no matter how many samples fold in,
|
|
119
|
+
* where the default quantile keeps an 8 KB reservoir per cell. The
|
|
120
|
+
* ~0.4% relative precision of bfloat16 is far inside the noise of an
|
|
121
|
+
* anomaly baseline. State types can't be ALTERed in place — switching
|
|
122
|
+
* required the RebuildMetricBaselineHourlyWithBFloat16Quantiles
|
|
123
|
+
* migration to drop + recreate this table and its MV.
|
|
124
|
+
*/
|
|
114
125
|
const medianStateColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
|
|
115
126
|
key: "medianState",
|
|
116
127
|
title: "Median (state)",
|
|
117
128
|
description:
|
|
118
|
-
"AggregateFunction(
|
|
129
|
+
"AggregateFunction(quantileBFloat16(0.5), Float64) state. Read via quantileBFloat16Merge(0.5)(medianState). Emitted for the future MedianMad anomaly method.",
|
|
119
130
|
required: true,
|
|
120
131
|
type: TableColumnType.AggregateFunction,
|
|
121
|
-
aggregateFunctionDefinition: "
|
|
132
|
+
aggregateFunctionDefinition: "quantileBFloat16(0.5), Float64",
|
|
122
133
|
});
|
|
123
134
|
|
|
124
135
|
const p95StateColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
|
|
125
136
|
key: "p95State",
|
|
126
137
|
title: "P95 (state)",
|
|
127
138
|
description:
|
|
128
|
-
"AggregateFunction(
|
|
139
|
+
"AggregateFunction(quantileBFloat16(0.95), Float64) state. Read via quantileBFloat16Merge(0.95)(p95State).",
|
|
129
140
|
required: true,
|
|
130
141
|
type: TableColumnType.AggregateFunction,
|
|
131
|
-
aggregateFunctionDefinition: "
|
|
142
|
+
aggregateFunctionDefinition: "quantileBFloat16(0.95), Float64",
|
|
132
143
|
});
|
|
133
144
|
|
|
134
145
|
const minObsStateColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
|
|
@@ -159,7 +170,7 @@ export default class MetricBaselineHourly extends AnalyticsBaseModel {
|
|
|
159
170
|
tableColumns: [
|
|
160
171
|
projectIdColumn,
|
|
161
172
|
nameColumn,
|
|
162
|
-
|
|
173
|
+
primaryEntityIdColumn,
|
|
163
174
|
dayColumn,
|
|
164
175
|
hourOfWeekColumn,
|
|
165
176
|
sampleCountStateColumn,
|
|
@@ -187,18 +198,18 @@ AS
|
|
|
187
198
|
SELECT
|
|
188
199
|
projectId,
|
|
189
200
|
name,
|
|
190
|
-
|
|
201
|
+
primaryEntityId,
|
|
191
202
|
toDate(time) AS day,
|
|
192
203
|
toUInt8((toDayOfWeek(time, 1) - 1) * 24 + toHour(time)) AS hourOfWeek,
|
|
193
204
|
countState(toFloat64(coalesce(value, sum, 0))) AS sampleCountState,
|
|
194
205
|
avgState(toFloat64(coalesce(value, sum, 0))) AS meanState,
|
|
195
206
|
stddevPopState(toFloat64(coalesce(value, sum, 0))) AS stddevState,
|
|
196
|
-
|
|
197
|
-
|
|
207
|
+
quantileBFloat16State(0.5)(toFloat64(coalesce(value, sum, 0))) AS medianState,
|
|
208
|
+
quantileBFloat16State(0.95)(toFloat64(coalesce(value, sum, 0))) AS p95State,
|
|
198
209
|
minState(toFloat64(coalesce(value, sum, 0))) AS minObsState,
|
|
199
210
|
maxState(toFloat64(coalesce(value, sum, 0))) AS maxObsState
|
|
200
|
-
FROM
|
|
201
|
-
GROUP BY projectId, name,
|
|
211
|
+
FROM MetricItemV3
|
|
212
|
+
GROUP BY projectId, name, primaryEntityId, day, hourOfWeek`,
|
|
202
213
|
},
|
|
203
214
|
],
|
|
204
215
|
/*
|
|
@@ -206,9 +217,17 @@ GROUP BY projectId, name, serviceId, day, hourOfWeek`,
|
|
|
206
217
|
* MetricBaselineService.getBaseline so lookups touch a tight
|
|
207
218
|
* granule range.
|
|
208
219
|
*/
|
|
209
|
-
sortKeys: ["projectId", "name", "
|
|
210
|
-
primaryKeys: [
|
|
211
|
-
|
|
220
|
+
sortKeys: ["projectId", "name", "primaryEntityId", "hourOfWeek", "day"],
|
|
221
|
+
primaryKeys: [
|
|
222
|
+
"projectId",
|
|
223
|
+
"name",
|
|
224
|
+
"primaryEntityId",
|
|
225
|
+
"hourOfWeek",
|
|
226
|
+
"day",
|
|
227
|
+
],
|
|
228
|
+
partitionKey: "toYYYYMM(day)",
|
|
229
|
+
tableSettings:
|
|
230
|
+
"ttl_only_drop_parts = 1, non_replicated_deduplication_window = 10000",
|
|
212
231
|
ttlExpression: "day + INTERVAL 90 DAY",
|
|
213
232
|
});
|
|
214
233
|
}
|
|
@@ -5,12 +5,12 @@ import AnalyticsTableColumn from "../../Types/AnalyticsDatabase/TableColumn";
|
|
|
5
5
|
import TableColumnType from "../../Types/AnalyticsDatabase/TableColumnType";
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
|
-
* Per-minute pre-aggregated rollup of `
|
|
8
|
+
* Per-minute pre-aggregated rollup of `MetricItemV3` value samples.
|
|
9
9
|
*
|
|
10
10
|
* Populated by the attached materialized view `MetricItemAggMV1m_mv`
|
|
11
11
|
* (declared below in `materializedViews` and applied idempotently by
|
|
12
12
|
* the analytics schema-sync on every boot), which fires on every
|
|
13
|
-
* insert into `
|
|
13
|
+
* insert into `MetricItemV3`. Each row holds AggregateFunction
|
|
14
14
|
* *states* — partial intermediate values combined by background merges
|
|
15
15
|
* and finalized at read time via `*Merge()` (e.g.
|
|
16
16
|
* `sumMerge(valueSumState)`).
|
|
@@ -33,7 +33,7 @@ export default class MetricItemAggMV1m extends AnalyticsBaseModel {
|
|
|
33
33
|
const projectIdColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
|
|
34
34
|
key: "projectId",
|
|
35
35
|
title: "Project ID",
|
|
36
|
-
description: "ID of project (tenant key, replicated from
|
|
36
|
+
description: "ID of project (tenant key, replicated from MetricItemV3)",
|
|
37
37
|
required: true,
|
|
38
38
|
type: TableColumnType.Text,
|
|
39
39
|
isTenantId: true,
|
|
@@ -42,18 +42,19 @@ export default class MetricItemAggMV1m extends AnalyticsBaseModel {
|
|
|
42
42
|
const nameColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
|
|
43
43
|
key: "name",
|
|
44
44
|
title: "Metric Name",
|
|
45
|
-
description: "Metric name (replicated from
|
|
45
|
+
description: "Metric name (replicated from MetricItemV3)",
|
|
46
46
|
required: true,
|
|
47
47
|
type: TableColumnType.Text,
|
|
48
48
|
});
|
|
49
49
|
|
|
50
|
-
const
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
50
|
+
const primaryEntityIdColumn: AnalyticsTableColumn =
|
|
51
|
+
new AnalyticsTableColumn({
|
|
52
|
+
key: "primaryEntityId",
|
|
53
|
+
title: "Service ID",
|
|
54
|
+
description: "Primary entity ID (replicated from MetricItemV3)",
|
|
55
|
+
required: true,
|
|
56
|
+
type: TableColumnType.Text,
|
|
57
|
+
});
|
|
57
58
|
|
|
58
59
|
const bucketTimeColumn: AnalyticsTableColumn = new AnalyticsTableColumn({
|
|
59
60
|
key: "bucketTime",
|
|
@@ -109,7 +110,7 @@ export default class MetricItemAggMV1m extends AnalyticsBaseModel {
|
|
|
109
110
|
key: "retentionDate",
|
|
110
111
|
title: "Retention Date",
|
|
111
112
|
description:
|
|
112
|
-
"Date after which this row is eligible for TTL deletion. Computed by the MV as max(retentionDate) per bucket — inherits from the source
|
|
113
|
+
"Date after which this row is eligible for TTL deletion. Computed by the MV as max(retentionDate) per bucket — inherits from the source MetricItemV3 rows.",
|
|
113
114
|
required: true,
|
|
114
115
|
type: TableColumnType.Date,
|
|
115
116
|
});
|
|
@@ -122,7 +123,7 @@ export default class MetricItemAggMV1m extends AnalyticsBaseModel {
|
|
|
122
123
|
tableColumns: [
|
|
123
124
|
projectIdColumn,
|
|
124
125
|
nameColumn,
|
|
125
|
-
|
|
126
|
+
primaryEntityIdColumn,
|
|
126
127
|
bucketTimeColumn,
|
|
127
128
|
valueSumStateColumn,
|
|
128
129
|
valueCountStateColumn,
|
|
@@ -132,7 +133,7 @@ export default class MetricItemAggMV1m extends AnalyticsBaseModel {
|
|
|
132
133
|
],
|
|
133
134
|
projections: [],
|
|
134
135
|
/*
|
|
135
|
-
* Materialized view that pre-rolls
|
|
136
|
+
* Materialized view that pre-rolls MetricItemV3 value samples into
|
|
136
137
|
* 1-minute buckets. This is the canonical definition: the analytics
|
|
137
138
|
* schema-sync (AnalyticsTableManagement.createMaterializedViews)
|
|
138
139
|
* creates it on every boot if missing, so a wiped/recreated
|
|
@@ -149,20 +150,22 @@ AS
|
|
|
149
150
|
SELECT
|
|
150
151
|
projectId,
|
|
151
152
|
name,
|
|
152
|
-
|
|
153
|
+
primaryEntityId,
|
|
153
154
|
toStartOfMinute(time) AS bucketTime,
|
|
154
155
|
sumState(toFloat64(coalesce(value, sum, 0))) AS valueSumState,
|
|
155
156
|
countState(toFloat64(coalesce(value, sum, 0))) AS valueCountState,
|
|
156
157
|
minState(toFloat64(coalesce(value, sum, 0))) AS valueMinState,
|
|
157
158
|
maxState(toFloat64(coalesce(value, sum, 0))) AS valueMaxState,
|
|
158
159
|
max(retentionDate) AS retentionDate
|
|
159
|
-
FROM
|
|
160
|
-
GROUP BY projectId, name,
|
|
160
|
+
FROM MetricItemV3
|
|
161
|
+
GROUP BY projectId, name, primaryEntityId, bucketTime`,
|
|
161
162
|
},
|
|
162
163
|
],
|
|
163
|
-
sortKeys: ["projectId", "name", "
|
|
164
|
-
primaryKeys: ["projectId", "name", "
|
|
165
|
-
partitionKey: "
|
|
164
|
+
sortKeys: ["projectId", "name", "primaryEntityId", "bucketTime"],
|
|
165
|
+
primaryKeys: ["projectId", "name", "primaryEntityId", "bucketTime"],
|
|
166
|
+
partitionKey: "toYYYYMM(bucketTime)",
|
|
167
|
+
tableSettings:
|
|
168
|
+
"ttl_only_drop_parts = 1, non_replicated_deduplication_window = 10000",
|
|
166
169
|
ttlExpression: "retentionDate DELETE",
|
|
167
170
|
});
|
|
168
171
|
}
|