@oneuptime/common 10.8.2 → 11.0.1
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/ModelImportExport.test.ts +366 -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/ImportExport/ExportModelCard.tsx +90 -0
- package/UI/Components/ImportExport/ImportModelsModal.tsx +239 -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/ModelTable/ModelTable.tsx +294 -143
- 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/ModelImportExport.ts +207 -0
- 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/ModelImportExport.ts +369 -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/ImportExport/ExportModelCard.js +50 -0
- package/build/dist/UI/Components/ImportExport/ExportModelCard.js.map +1 -0
- package/build/dist/UI/Components/ImportExport/ImportModelsModal.js +115 -0
- package/build/dist/UI/Components/ImportExport/ImportModelsModal.js.map +1 -0
- 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/ModelTable/ModelTable.js +166 -74
- package/build/dist/UI/Components/ModelTable/ModelTable.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/ModelImportExport.js +142 -0
- package/build/dist/UI/Utils/ModelImportExport.js.map +1 -0
- 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/ModelImportExport.js +257 -0
- package/build/dist/Utils/ModelImportExport.js.map +1 -0
- 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
|
@@ -36,7 +36,7 @@ export default class EvaluateOverTime {
|
|
|
36
36
|
const query: Query<Metric> = {
|
|
37
37
|
projectId: data.projectId,
|
|
38
38
|
time: new InBetween(lastMinutesDate, now),
|
|
39
|
-
|
|
39
|
+
primaryEntityId: data.monitorId,
|
|
40
40
|
name: MonitorMetricTypeUtil.getMonitorMeticTypeByCheckOn(data.metricType),
|
|
41
41
|
};
|
|
42
42
|
|
|
@@ -133,9 +133,8 @@ export default class MonitorLogUtil {
|
|
|
133
133
|
);
|
|
134
134
|
|
|
135
135
|
const monitorLogRow: JSONObject = {
|
|
136
|
-
_id: ObjectID.
|
|
136
|
+
_id: ObjectID.generateTimeOrdered().toString(),
|
|
137
137
|
createdAt: logTimestamp,
|
|
138
|
-
updatedAt: logTimestamp,
|
|
139
138
|
projectId: data.projectId.toString(),
|
|
140
139
|
monitorId: data.monitorId.toString(),
|
|
141
140
|
time: logTimestamp,
|
|
@@ -132,12 +132,11 @@ export default class MonitorMetricUtil {
|
|
|
132
132
|
);
|
|
133
133
|
|
|
134
134
|
return {
|
|
135
|
-
_id: ObjectID.
|
|
135
|
+
_id: ObjectID.generateTimeOrdered().toString(),
|
|
136
136
|
createdAt: ingestionTimestamp,
|
|
137
|
-
updatedAt: ingestionTimestamp,
|
|
138
137
|
projectId: data.projectId.toString(),
|
|
139
|
-
|
|
140
|
-
|
|
138
|
+
primaryEntityId: data.monitorId.toString(),
|
|
139
|
+
primaryEntityType: ServiceType.Monitor,
|
|
141
140
|
name: data.metricName,
|
|
142
141
|
aggregationTemporality: null,
|
|
143
142
|
metricPointType: data.metricPointType || MetricPointType.Sum,
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import Includes from "../../Types/BaseDatabase/Includes";
|
|
2
|
+
import { FindWhereProperty } from "../../Types/BaseDatabase/Query";
|
|
3
|
+
import ObjectID from "../../Types/ObjectID";
|
|
4
|
+
import QueryHelper from "../Types/Database/QueryHelper";
|
|
5
|
+
import { And, Equal, FindOperator } from "typeorm";
|
|
6
|
+
|
|
7
|
+
/*
|
|
8
|
+
* Combines a caller-supplied filter value with a privacy Raw clause so that
|
|
9
|
+
* BOTH apply. The privacy filters used to overwrite the caller's value, which
|
|
10
|
+
* silently widened per-record queries (e.g. `incidentId: <id>` on the
|
|
11
|
+
* incident's Private Notes page) to every record the user was allowed to see
|
|
12
|
+
* — leaking notes/feed/owner rows across incidents for non-admin users.
|
|
13
|
+
*
|
|
14
|
+
* Runs in onBefore* hooks, i.e. BEFORE QueryUtil.serializeQuery, so the
|
|
15
|
+
* existing value can be a plain value (string/ObjectID/boolean/array), an
|
|
16
|
+
* Includes operator, or an already-built TypeORM FindOperator. Values are
|
|
17
|
+
* converted to TypeORM operators here because serializeQuery does not
|
|
18
|
+
* transform values nested inside And().
|
|
19
|
+
*/
|
|
20
|
+
export function combineWithPrivacyClause(
|
|
21
|
+
existingValue: unknown,
|
|
22
|
+
privacyClause: FindWhereProperty<any>,
|
|
23
|
+
): FindWhereProperty<any> {
|
|
24
|
+
const privacyOperator: FindOperator<any> =
|
|
25
|
+
privacyClause as unknown as FindOperator<any>;
|
|
26
|
+
|
|
27
|
+
if (existingValue === undefined || existingValue === null) {
|
|
28
|
+
return privacyClause;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
if (existingValue instanceof FindOperator) {
|
|
32
|
+
return And(existingValue, privacyOperator) as FindWhereProperty<any>;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
if (existingValue instanceof ObjectID) {
|
|
36
|
+
return And(
|
|
37
|
+
Equal(existingValue.toString()),
|
|
38
|
+
privacyOperator,
|
|
39
|
+
) as FindWhereProperty<any>;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
if (existingValue instanceof Includes) {
|
|
43
|
+
return And(
|
|
44
|
+
QueryHelper.any(existingValue.values) as unknown as FindOperator<any>,
|
|
45
|
+
privacyOperator,
|
|
46
|
+
) as FindWhereProperty<any>;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
if (Array.isArray(existingValue)) {
|
|
50
|
+
return And(
|
|
51
|
+
QueryHelper.any(
|
|
52
|
+
existingValue as Array<string | ObjectID | number>,
|
|
53
|
+
) as unknown as FindOperator<any>,
|
|
54
|
+
privacyOperator,
|
|
55
|
+
) as FindWhereProperty<any>;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
if (
|
|
59
|
+
typeof existingValue === "string" ||
|
|
60
|
+
typeof existingValue === "number" ||
|
|
61
|
+
typeof existingValue === "boolean" ||
|
|
62
|
+
existingValue instanceof Date
|
|
63
|
+
) {
|
|
64
|
+
return And(Equal(existingValue), privacyOperator) as FindWhereProperty<any>;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
/*
|
|
68
|
+
* Unrecognized operator shape (no caller passes these on privacy-filtered
|
|
69
|
+
* keys today). Fail closed: the privacy clause must always apply.
|
|
70
|
+
*/
|
|
71
|
+
return privacyClause;
|
|
72
|
+
}
|
|
@@ -1,17 +1,119 @@
|
|
|
1
1
|
import { JSONObject } from "../../../Types/JSON";
|
|
2
|
+
import protobuf from "protobufjs";
|
|
2
3
|
import zlib from "zlib";
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
|
-
* Encodes profile data into
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* can be consumed by tools that support pprof JSON.
|
|
6
|
+
* Encodes profile data into the standard pprof wire format: a gzipped
|
|
7
|
+
* `perftools.profiles.Profile` protobuf message, openable with
|
|
8
|
+
* `go tool pprof`, Speedscope, and every other pprof consumer.
|
|
9
9
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
10
|
+
* Stacktrace frames arrive as denormalized "function@file:line" strings
|
|
11
|
+
* (the format ProfileSample rows store and Dashboard ProfileUtil parses);
|
|
12
|
+
* the encoder rebuilds the string table / function / location indirection
|
|
13
|
+
* that pprof requires.
|
|
13
14
|
*/
|
|
14
15
|
|
|
16
|
+
/*
|
|
17
|
+
* Inline protobuf descriptor for the pprof Profile message, mirroring
|
|
18
|
+
* google/pprof profile.proto. Embedded as JSON (rather than loaded from
|
|
19
|
+
* a .proto file at runtime) so this module works in any deployment
|
|
20
|
+
* without carrying proto assets next to the compiled output.
|
|
21
|
+
*/
|
|
22
|
+
const PPROF_DESCRIPTOR: protobuf.INamespace = {
|
|
23
|
+
nested: {
|
|
24
|
+
perftools: {
|
|
25
|
+
nested: {
|
|
26
|
+
profiles: {
|
|
27
|
+
nested: {
|
|
28
|
+
Profile: {
|
|
29
|
+
fields: {
|
|
30
|
+
sampleType: { rule: "repeated", type: "ValueType", id: 1 },
|
|
31
|
+
sample: { rule: "repeated", type: "Sample", id: 2 },
|
|
32
|
+
mapping: { rule: "repeated", type: "Mapping", id: 3 },
|
|
33
|
+
location: { rule: "repeated", type: "Location", id: 4 },
|
|
34
|
+
function: { rule: "repeated", type: "Function", id: 5 },
|
|
35
|
+
stringTable: { rule: "repeated", type: "string", id: 6 },
|
|
36
|
+
dropFrames: { type: "int64", id: 7 },
|
|
37
|
+
keepFrames: { type: "int64", id: 8 },
|
|
38
|
+
timeNanos: { type: "int64", id: 9 },
|
|
39
|
+
durationNanos: { type: "int64", id: 10 },
|
|
40
|
+
periodType: { type: "ValueType", id: 11 },
|
|
41
|
+
period: { type: "int64", id: 12 },
|
|
42
|
+
comment: { rule: "repeated", type: "int64", id: 13 },
|
|
43
|
+
defaultSampleType: { type: "int64", id: 15 },
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
ValueType: {
|
|
47
|
+
fields: {
|
|
48
|
+
type: { type: "int64", id: 1 },
|
|
49
|
+
unit: { type: "int64", id: 2 },
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
Sample: {
|
|
53
|
+
fields: {
|
|
54
|
+
locationId: { rule: "repeated", type: "uint64", id: 1 },
|
|
55
|
+
value: { rule: "repeated", type: "int64", id: 2 },
|
|
56
|
+
label: { rule: "repeated", type: "Label", id: 3 },
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
Label: {
|
|
60
|
+
fields: {
|
|
61
|
+
key: { type: "int64", id: 1 },
|
|
62
|
+
str: { type: "int64", id: 2 },
|
|
63
|
+
num: { type: "int64", id: 3 },
|
|
64
|
+
numUnit: { type: "int64", id: 4 },
|
|
65
|
+
},
|
|
66
|
+
},
|
|
67
|
+
Mapping: {
|
|
68
|
+
fields: {
|
|
69
|
+
id: { type: "uint64", id: 1 },
|
|
70
|
+
memoryStart: { type: "uint64", id: 2 },
|
|
71
|
+
memoryLimit: { type: "uint64", id: 3 },
|
|
72
|
+
fileOffset: { type: "uint64", id: 4 },
|
|
73
|
+
filename: { type: "int64", id: 5 },
|
|
74
|
+
buildId: { type: "int64", id: 6 },
|
|
75
|
+
hasFunctions: { type: "bool", id: 7 },
|
|
76
|
+
hasFilenames: { type: "bool", id: 8 },
|
|
77
|
+
hasLineNumbers: { type: "bool", id: 9 },
|
|
78
|
+
hasInlineFrames: { type: "bool", id: 10 },
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
Location: {
|
|
82
|
+
fields: {
|
|
83
|
+
id: { type: "uint64", id: 1 },
|
|
84
|
+
mappingId: { type: "uint64", id: 2 },
|
|
85
|
+
address: { type: "uint64", id: 3 },
|
|
86
|
+
line: { rule: "repeated", type: "Line", id: 4 },
|
|
87
|
+
isFolded: { type: "bool", id: 5 },
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
Line: {
|
|
91
|
+
fields: {
|
|
92
|
+
functionId: { type: "uint64", id: 1 },
|
|
93
|
+
line: { type: "int64", id: 2 },
|
|
94
|
+
},
|
|
95
|
+
},
|
|
96
|
+
Function: {
|
|
97
|
+
fields: {
|
|
98
|
+
id: { type: "uint64", id: 1 },
|
|
99
|
+
name: { type: "int64", id: 2 },
|
|
100
|
+
systemName: { type: "int64", id: 3 },
|
|
101
|
+
filename: { type: "int64", id: 4 },
|
|
102
|
+
startLine: { type: "int64", id: 5 },
|
|
103
|
+
},
|
|
104
|
+
},
|
|
105
|
+
},
|
|
106
|
+
},
|
|
107
|
+
},
|
|
108
|
+
},
|
|
109
|
+
},
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
const PprofRoot: protobuf.Root = protobuf.Root.fromJSON(PPROF_DESCRIPTOR);
|
|
113
|
+
const PprofProfileMessage: protobuf.Type = PprofRoot.lookupType(
|
|
114
|
+
"perftools.profiles.Profile",
|
|
115
|
+
);
|
|
116
|
+
|
|
15
117
|
export interface PprofSample {
|
|
16
118
|
stacktrace: Array<string>;
|
|
17
119
|
value: number;
|
|
@@ -139,7 +241,13 @@ export default class PprofEncoder {
|
|
|
139
241
|
for (const sample of profile.samples) {
|
|
140
242
|
const locationIds: Array<number> = [];
|
|
141
243
|
|
|
142
|
-
|
|
244
|
+
/*
|
|
245
|
+
* Stored stacktrace arrays preserve the wire order of their
|
|
246
|
+
* sources — pprof `Sample.location_id` and OTLP `Stack.
|
|
247
|
+
* location_indices` are both leaf-first — so emitting
|
|
248
|
+
* location_ids in array order keeps the leaf-first ordering
|
|
249
|
+
* pprof consumers require.
|
|
250
|
+
*/
|
|
143
251
|
for (const frame of sample.stacktrace) {
|
|
144
252
|
const atIndex: number = frame.indexOf("@");
|
|
145
253
|
let functionName: string = frame;
|
|
@@ -202,17 +310,33 @@ export default class PprofEncoder {
|
|
|
202
310
|
}
|
|
203
311
|
|
|
204
312
|
/**
|
|
205
|
-
*
|
|
313
|
+
* Serialize the profile as a gzipped `perftools.profiles.Profile`
|
|
314
|
+
* protobuf — the on-disk format `go tool pprof` and friends expect.
|
|
315
|
+
* The intermediate structure from `encode` already uses the proto's
|
|
316
|
+
* camelCased field names, so it maps onto the message verbatim.
|
|
206
317
|
*/
|
|
207
318
|
public static async encodeAndCompress(
|
|
208
319
|
profile: PprofProfile,
|
|
209
320
|
): Promise<Buffer> {
|
|
210
321
|
const pprofData: PprofProto = PprofEncoder.encode(profile);
|
|
211
|
-
|
|
322
|
+
|
|
323
|
+
const message: protobuf.Message = PprofProfileMessage.fromObject({
|
|
324
|
+
sampleType: pprofData.sampleType,
|
|
325
|
+
sample: pprofData.samples,
|
|
326
|
+
location: pprofData.locations,
|
|
327
|
+
function: pprofData.functions,
|
|
328
|
+
stringTable: pprofData.stringTable,
|
|
329
|
+
timeNanos: pprofData.timeNanos,
|
|
330
|
+
durationNanos: pprofData.durationNanos,
|
|
331
|
+
periodType: pprofData.periodType,
|
|
332
|
+
period: pprofData.period,
|
|
333
|
+
});
|
|
334
|
+
|
|
335
|
+
const encoded: Uint8Array = PprofProfileMessage.encode(message).finish();
|
|
212
336
|
|
|
213
337
|
return new Promise<Buffer>(
|
|
214
338
|
(resolve: (value: Buffer) => void, reject: (reason: Error) => void) => {
|
|
215
|
-
zlib.gzip(
|
|
339
|
+
zlib.gzip(encoded, (err: Error | null, result: Buffer) => {
|
|
216
340
|
if (err) {
|
|
217
341
|
reject(err);
|
|
218
342
|
} else {
|
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
import BaseModel from "../../../Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel";
|
|
2
|
+
import DatabaseService from "../../Services/DatabaseService";
|
|
3
|
+
import Query from "../../Types/Database/Query";
|
|
4
|
+
import Select from "../../Types/Database/Select";
|
|
5
|
+
import QueryDeepPartialEntity from "../../../Types/Database/PartialEntity";
|
|
6
|
+
import ObjectID from "../../../Types/ObjectID";
|
|
7
|
+
import EntityType from "../../../Types/Telemetry/EntityType";
|
|
8
|
+
import GlobalCache from "../../Infrastructure/GlobalCache";
|
|
9
|
+
import logger from "../Logger";
|
|
10
|
+
import { ExtractedEntity } from "./TelemetryEntity";
|
|
11
|
+
import TelemetryEntityService from "../../Services/TelemetryEntityService";
|
|
12
|
+
import TelemetryEntityRelationshipService from "../../Services/TelemetryEntityRelationshipService";
|
|
13
|
+
import {
|
|
14
|
+
deriveRelationships,
|
|
15
|
+
EntityRelationshipEdge,
|
|
16
|
+
} from "../../../Utils/Telemetry/EntityRelationship";
|
|
17
|
+
|
|
18
|
+
/*
|
|
19
|
+
* Shared entity-registry reconciliation machinery (phases 2 + 5 of the
|
|
20
|
+
* entity model — see Internal/Docs/OpenTelemetryEntities.md). Lives in
|
|
21
|
+
* Common so every ingest path that discovers entities — the OTLP pipeline
|
|
22
|
+
* (OtelIngestBaseService.resolveTelemetryResource) and the lower-fidelity
|
|
23
|
+
* name-only paths (syslog / fluent via
|
|
24
|
+
* OpenTelemetryIngestService.telemetryServiceFromName) — funnels through
|
|
25
|
+
* the SAME promotion gate and Redis fence.
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
/*
|
|
29
|
+
* High-churn types are membership-only by default (doc §Edge Cases /
|
|
30
|
+
* Decision 7): their keys flow into the `entityKeys` column on signals,
|
|
31
|
+
* but they are never promoted to registry rows — container restarts and
|
|
32
|
+
* pid reuse would otherwise mint unbounded registry rows. Everything
|
|
33
|
+
* else promotes. `service.instance` is membership-only too: semconv
|
|
34
|
+
* `service.instance.id` is typically a per-restart UUID, so each deploy
|
|
35
|
+
* would mint a fresh registry row per instance.
|
|
36
|
+
*/
|
|
37
|
+
const MEMBERSHIP_ONLY_TYPES: ReadonlySet<EntityType> = new Set<EntityType>([
|
|
38
|
+
EntityType.Container,
|
|
39
|
+
EntityType.Process,
|
|
40
|
+
EntityType.ServiceInstance,
|
|
41
|
+
EntityType.TelemetrySdk,
|
|
42
|
+
]);
|
|
43
|
+
|
|
44
|
+
/*
|
|
45
|
+
* Per-(project, entityType) registry budget (doc §Edge Cases — "reuse the
|
|
46
|
+
* existing per-service metricCardinalityBudget concept as a per-type
|
|
47
|
+
* entity budget"). Beyond budget, NEW registry rows stop being created —
|
|
48
|
+
* membership keys still flow into `entityKeys` on signals, and existing
|
|
49
|
+
* rows keep their `lastSeenAt` bumps so the prune TTL never reaps live
|
|
50
|
+
* entities. Hardcoded defaults; a per-project override is a follow-up.
|
|
51
|
+
*/
|
|
52
|
+
export const DEFAULT_ENTITY_BUDGET: ReadonlyMap<EntityType, number> = new Map<
|
|
53
|
+
EntityType,
|
|
54
|
+
number
|
|
55
|
+
>([
|
|
56
|
+
[EntityType.Service, 10000],
|
|
57
|
+
[EntityType.Host, 10000],
|
|
58
|
+
[EntityType.KubernetesCluster, 10000],
|
|
59
|
+
[EntityType.KubernetesNode, 1000],
|
|
60
|
+
[EntityType.KubernetesNamespace, 1000],
|
|
61
|
+
[EntityType.KubernetesPod, 5000],
|
|
62
|
+
[EntityType.KubernetesDeployment, 5000],
|
|
63
|
+
]);
|
|
64
|
+
|
|
65
|
+
// For types not in the map (future promotions of high-churn types).
|
|
66
|
+
export const FALLBACK_ENTITY_BUDGET: number = 5000;
|
|
67
|
+
|
|
68
|
+
export function getEntityBudget(entityType: EntityType): number {
|
|
69
|
+
return DEFAULT_ENTITY_BUDGET.get(entityType) ?? FALLBACK_ENTITY_BUDGET;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
export const REGISTRY_PROMOTED_TYPES: ReadonlySet<EntityType> =
|
|
73
|
+
new Set<EntityType>(
|
|
74
|
+
Object.values(EntityType).filter((entityType: EntityType) => {
|
|
75
|
+
return !MEMBERSHIP_ONLY_TYPES.has(entityType);
|
|
76
|
+
}),
|
|
77
|
+
);
|
|
78
|
+
|
|
79
|
+
/*
|
|
80
|
+
* Same Redis namespace / key shape / TTL as
|
|
81
|
+
* OtelIngestBaseService.shouldRunMaintenance, so an entity set fenced by
|
|
82
|
+
* one ingest path is fenced for all of them.
|
|
83
|
+
*/
|
|
84
|
+
const FENCE_NAMESPACE: string = "otel-maintenance-fence";
|
|
85
|
+
const FENCE_SCOPE: string = "entity-reconcile";
|
|
86
|
+
const FENCE_TTL_SECONDS: number = 5 * 60; // 5 minutes
|
|
87
|
+
|
|
88
|
+
async function shouldReconcile(fenceId: string): Promise<boolean> {
|
|
89
|
+
try {
|
|
90
|
+
const key: string = `${FENCE_SCOPE}:${fenceId}`;
|
|
91
|
+
const seen: string | null = await GlobalCache.getString(
|
|
92
|
+
FENCE_NAMESPACE,
|
|
93
|
+
key,
|
|
94
|
+
);
|
|
95
|
+
if (seen) {
|
|
96
|
+
return false;
|
|
97
|
+
}
|
|
98
|
+
await GlobalCache.setString(FENCE_NAMESPACE, key, "1", {
|
|
99
|
+
expiresInSeconds: FENCE_TTL_SECONDS,
|
|
100
|
+
});
|
|
101
|
+
return true;
|
|
102
|
+
} catch {
|
|
103
|
+
// If the cache is down, default to running the reconcile.
|
|
104
|
+
return true;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
/*
|
|
109
|
+
* Over-budget skips happen per row, but the warn log is fenced to once per
|
|
110
|
+
* (project, entityType) per fence window — an over-budget project would
|
|
111
|
+
* otherwise emit a warn line for every skipped entity of every batch.
|
|
112
|
+
*/
|
|
113
|
+
export async function shouldWarnEntityBudgetOnce(data: {
|
|
114
|
+
projectId: ObjectID;
|
|
115
|
+
entityType: EntityType;
|
|
116
|
+
}): Promise<boolean> {
|
|
117
|
+
try {
|
|
118
|
+
const key: string = `entity-budget-warn:${data.projectId.toString()}:${
|
|
119
|
+
data.entityType
|
|
120
|
+
}`;
|
|
121
|
+
const seen: string | null = await GlobalCache.getString(
|
|
122
|
+
FENCE_NAMESPACE,
|
|
123
|
+
key,
|
|
124
|
+
);
|
|
125
|
+
if (seen) {
|
|
126
|
+
return false;
|
|
127
|
+
}
|
|
128
|
+
await GlobalCache.setString(FENCE_NAMESPACE, key, "1", {
|
|
129
|
+
expiresInSeconds: FENCE_TTL_SECONDS,
|
|
130
|
+
});
|
|
131
|
+
return true;
|
|
132
|
+
} catch {
|
|
133
|
+
// If the cache is down, default to warning (visibility over silence).
|
|
134
|
+
return true;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/*
|
|
139
|
+
* Upsert discovered entities into the `TelemetryEntity` registry and their
|
|
140
|
+
* co-occurrence edges into `TelemetryEntityRelationship`. Gated by a single
|
|
141
|
+
* per-batch Redis fence keyed on the PROMOTED entity subset, so a stable
|
|
142
|
+
* resource reconciles at most once per window while a changed set (e.g. a
|
|
143
|
+
* pod reschedule) reconciles immediately — and the high-churn
|
|
144
|
+
* membership-only keys (container restarts, pid reuse) cannot churn the
|
|
145
|
+
* fence id and defeat the throttle. Edges are derived only among promoted
|
|
146
|
+
* entities so no edge references a key the registry never registered.
|
|
147
|
+
*
|
|
148
|
+
* Forward-only and best-effort: every error is swallowed (logged) here, so
|
|
149
|
+
* callers may fire-and-forget — a registry failure must never break signal
|
|
150
|
+
* ingest. `entityKeys` stamping on signal rows is independent of this and
|
|
151
|
+
* stays synchronous at the call sites.
|
|
152
|
+
*/
|
|
153
|
+
export async function reconcileEntityRegistryThrottled(data: {
|
|
154
|
+
projectId: ObjectID;
|
|
155
|
+
entities: Array<ExtractedEntity>;
|
|
156
|
+
}): Promise<void> {
|
|
157
|
+
try {
|
|
158
|
+
const promoted: Array<ExtractedEntity> = data.entities.filter(
|
|
159
|
+
(entity: ExtractedEntity) => {
|
|
160
|
+
return REGISTRY_PROMOTED_TYPES.has(entity.entityType);
|
|
161
|
+
},
|
|
162
|
+
);
|
|
163
|
+
|
|
164
|
+
if (promoted.length === 0) {
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
const fenceId: string = `${data.projectId.toString()}:${promoted
|
|
169
|
+
.map((entity: ExtractedEntity) => {
|
|
170
|
+
return entity.entityKey;
|
|
171
|
+
})
|
|
172
|
+
.sort()
|
|
173
|
+
.join(",")}`;
|
|
174
|
+
|
|
175
|
+
if (!(await shouldReconcile(fenceId))) {
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
await TelemetryEntityService.reconcileEntities({
|
|
180
|
+
projectId: data.projectId,
|
|
181
|
+
entities: promoted,
|
|
182
|
+
});
|
|
183
|
+
|
|
184
|
+
/*
|
|
185
|
+
* Topology (phase 5): the co-occurrence edges derive from the same
|
|
186
|
+
* entity set, so they reconcile under the same fence — no extra
|
|
187
|
+
* Redis check. A stable resource bumps both the registry and the
|
|
188
|
+
* graph once per window; a changed set re-derives both.
|
|
189
|
+
*/
|
|
190
|
+
const edges: Array<EntityRelationshipEdge> = deriveRelationships(
|
|
191
|
+
promoted.map((entity: ExtractedEntity) => {
|
|
192
|
+
return {
|
|
193
|
+
entityType: entity.entityType,
|
|
194
|
+
entityKey: entity.entityKey,
|
|
195
|
+
};
|
|
196
|
+
}),
|
|
197
|
+
);
|
|
198
|
+
if (edges.length > 0) {
|
|
199
|
+
await TelemetryEntityRelationshipService.reconcileRelationships({
|
|
200
|
+
projectId: data.projectId,
|
|
201
|
+
edges,
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
} catch (err) {
|
|
205
|
+
logger.error("Entity registry reconciliation failed:");
|
|
206
|
+
logger.error(err as Error);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
/*
|
|
211
|
+
* Find-or-create by natural key, bumping `lastSeenAt` — the one upsert
|
|
212
|
+
* scaffold shared by TelemetryEntityService and
|
|
213
|
+
* TelemetryEntityRelationshipService. Both tables have a unique index on
|
|
214
|
+
* their natural key, so a concurrent first-contact create loses the race
|
|
215
|
+
* with a unique-violation: in that case the winning row is re-fetched and
|
|
216
|
+
* its `lastSeenAt` bumped immediately (instead of waiting a full throttle
|
|
217
|
+
* window). A create failure with NO winning row is a real error (e.g. a
|
|
218
|
+
* column constraint violation) and is surfaced at warn.
|
|
219
|
+
*/
|
|
220
|
+
export async function reconcileByNaturalKey<
|
|
221
|
+
TBaseModel extends BaseModel & { lastSeenAt?: Date },
|
|
222
|
+
>(data: {
|
|
223
|
+
service: DatabaseService<TBaseModel>;
|
|
224
|
+
query: Query<TBaseModel>;
|
|
225
|
+
buildModel: () => TBaseModel;
|
|
226
|
+
lastSeenAt: Date;
|
|
227
|
+
/** Human-readable row identity for log lines, e.g. "entity host/abc123". */
|
|
228
|
+
describe: string;
|
|
229
|
+
/** Extra columns to select on the existing row, for `buildUpdate` diffing. */
|
|
230
|
+
select?: Select<TBaseModel> | undefined;
|
|
231
|
+
/**
|
|
232
|
+
* Extra fields to fold into the `lastSeenAt` bump (descriptive-attribute
|
|
233
|
+
* merge, label union). Return an empty object when nothing changed so the
|
|
234
|
+
* bump stays a single-column update.
|
|
235
|
+
*/
|
|
236
|
+
buildUpdate?:
|
|
237
|
+
| ((existing: TBaseModel) => QueryDeepPartialEntity<TBaseModel>)
|
|
238
|
+
| undefined;
|
|
239
|
+
/**
|
|
240
|
+
* Gate run only when a NEW row is about to be created (entity budget).
|
|
241
|
+
* Returning false skips creation silently — the gate owns its own
|
|
242
|
+
* logging/throttling. Existing-row bumps are never gated.
|
|
243
|
+
*/
|
|
244
|
+
beforeCreate?: (() => Promise<boolean>) | undefined;
|
|
245
|
+
}): Promise<void> {
|
|
246
|
+
const select: Select<TBaseModel> = {
|
|
247
|
+
...({ _id: true } as Select<TBaseModel>),
|
|
248
|
+
...(data.select || {}),
|
|
249
|
+
};
|
|
250
|
+
|
|
251
|
+
const buildBump: (
|
|
252
|
+
existing: TBaseModel,
|
|
253
|
+
) => QueryDeepPartialEntity<TBaseModel> = (
|
|
254
|
+
existing: TBaseModel,
|
|
255
|
+
): QueryDeepPartialEntity<TBaseModel> => {
|
|
256
|
+
// Unresolved generic mapped type — TS cannot prove overlap directly.
|
|
257
|
+
return {
|
|
258
|
+
lastSeenAt: data.lastSeenAt,
|
|
259
|
+
...(data.buildUpdate ? data.buildUpdate(existing) : {}),
|
|
260
|
+
} as unknown as QueryDeepPartialEntity<TBaseModel>;
|
|
261
|
+
};
|
|
262
|
+
|
|
263
|
+
const existing: TBaseModel | null = await data.service.findOneBy({
|
|
264
|
+
query: data.query,
|
|
265
|
+
select,
|
|
266
|
+
props: { isRoot: true },
|
|
267
|
+
});
|
|
268
|
+
|
|
269
|
+
if (existing) {
|
|
270
|
+
// Throttled bump of lastSeenAt (+ any caller-supplied merge fields).
|
|
271
|
+
await data.service.updateOneById({
|
|
272
|
+
id: existing.id!,
|
|
273
|
+
data: buildBump(existing),
|
|
274
|
+
props: { isRoot: true },
|
|
275
|
+
});
|
|
276
|
+
return;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
if (data.beforeCreate && !(await data.beforeCreate())) {
|
|
280
|
+
return;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
try {
|
|
284
|
+
await data.service.create({
|
|
285
|
+
data: data.buildModel(),
|
|
286
|
+
props: { isRoot: true },
|
|
287
|
+
});
|
|
288
|
+
return;
|
|
289
|
+
} catch (err) {
|
|
290
|
+
/*
|
|
291
|
+
* Re-find to disambiguate: a row now exists means a concurrent worker
|
|
292
|
+
* won the unique-indexed create race (harmless — bump it); no row
|
|
293
|
+
* means the insert itself was invalid, which must be visible.
|
|
294
|
+
*/
|
|
295
|
+
const winner: TBaseModel | null = await data.service.findOneBy({
|
|
296
|
+
query: data.query,
|
|
297
|
+
select,
|
|
298
|
+
props: { isRoot: true },
|
|
299
|
+
});
|
|
300
|
+
|
|
301
|
+
if (winner) {
|
|
302
|
+
logger.debug(
|
|
303
|
+
`EntityRegistry: create raced for ${data.describe} (concurrent insert); bumping lastSeenAt on the winning row.`,
|
|
304
|
+
);
|
|
305
|
+
await data.service.updateOneById({
|
|
306
|
+
id: winner.id!,
|
|
307
|
+
data: buildBump(winner),
|
|
308
|
+
props: { isRoot: true },
|
|
309
|
+
});
|
|
310
|
+
return;
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
logger.warn(`EntityRegistry: create failed for ${data.describe}:`);
|
|
314
|
+
logger.warn(err as Error);
|
|
315
|
+
}
|
|
316
|
+
}
|
|
@@ -25,8 +25,12 @@ import CaptureSpan from "./CaptureSpan";
|
|
|
25
25
|
* Resolving the value list from Postgres instead means every project resource
|
|
26
26
|
* shows up regardless of recent telemetry activity, and the sidebar search
|
|
27
27
|
* matches across the full set (not just the loaded subset).
|
|
28
|
+
*
|
|
29
|
+
* `serviceId` is the pre-rename alias of `primaryEntityId`, kept so stale
|
|
30
|
+
* clients keep resolving the Services facet across a deploy.
|
|
28
31
|
*/
|
|
29
32
|
export const RESOURCE_FACET_KEYS: ReadonlySet<string> = new Set([
|
|
33
|
+
"primaryEntityId",
|
|
30
34
|
"serviceId",
|
|
31
35
|
"hostId",
|
|
32
36
|
"dockerHostId",
|
|
@@ -92,6 +96,7 @@ export default class ResourceFacetResolver {
|
|
|
92
96
|
: undefined;
|
|
93
97
|
|
|
94
98
|
switch (spec.facetKey) {
|
|
99
|
+
case "primaryEntityId":
|
|
95
100
|
case "serviceId":
|
|
96
101
|
return ResourceFacetResolver.queryServices(
|
|
97
102
|
projectId,
|