@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
|
@@ -6,6 +6,11 @@ import TraceAggregationType from "./TraceAggregationType";
|
|
|
6
6
|
* match. Each source is aliased (A, B, C, ...) and referenced from the rule's
|
|
7
7
|
* expression string.
|
|
8
8
|
*/
|
|
9
|
+
export interface TraceRecordingRuleAttributeFilter {
|
|
10
|
+
key: string;
|
|
11
|
+
value: string;
|
|
12
|
+
}
|
|
13
|
+
|
|
9
14
|
export interface TraceRecordingRuleSource {
|
|
10
15
|
alias: string;
|
|
11
16
|
aggregationType: TraceAggregationType;
|
|
@@ -13,8 +18,16 @@ export interface TraceRecordingRuleSource {
|
|
|
13
18
|
spanNameRegex?: string;
|
|
14
19
|
spanKind?: string;
|
|
15
20
|
onlyErrors?: boolean;
|
|
21
|
+
/*
|
|
22
|
+
* Legacy single attribute filter — superseded by `filterAttributes` but
|
|
23
|
+
* still honored for rules saved before multi-filter support. Use
|
|
24
|
+
* TraceRecordingRuleDefinitionUtil.getSourceAttributeFilters to read the
|
|
25
|
+
* combined set.
|
|
26
|
+
*/
|
|
16
27
|
filterAttributeKey?: string;
|
|
17
28
|
filterAttributeValue?: string;
|
|
29
|
+
// Multiple attribute equality filters — ANDed (e.g. http.route AND url.host).
|
|
30
|
+
filterAttributes?: Array<TraceRecordingRuleAttributeFilter>;
|
|
18
31
|
}
|
|
19
32
|
|
|
20
33
|
/*
|
|
@@ -78,6 +91,11 @@ export class TraceRecordingRuleDefinitionUtil {
|
|
|
78
91
|
label: "p50 Duration (s)",
|
|
79
92
|
description: "Median span duration.",
|
|
80
93
|
},
|
|
94
|
+
{
|
|
95
|
+
value: TraceAggregationType.P90DurationSeconds,
|
|
96
|
+
label: "p90 Duration (s)",
|
|
97
|
+
description: "90th percentile span duration.",
|
|
98
|
+
},
|
|
81
99
|
{
|
|
82
100
|
value: TraceAggregationType.P95DurationSeconds,
|
|
83
101
|
label: "p95 Duration (s)",
|
|
@@ -112,6 +130,38 @@ export class TraceRecordingRuleDefinitionUtil {
|
|
|
112
130
|
];
|
|
113
131
|
}
|
|
114
132
|
|
|
133
|
+
/*
|
|
134
|
+
* Combined attribute filters for a source: the multi-filter array plus the
|
|
135
|
+
* legacy single pair (deduplicated by key, array entries win).
|
|
136
|
+
*/
|
|
137
|
+
public static getSourceAttributeFilters(
|
|
138
|
+
source: TraceRecordingRuleSource,
|
|
139
|
+
): Array<TraceRecordingRuleAttributeFilter> {
|
|
140
|
+
const filters: Array<TraceRecordingRuleAttributeFilter> = [];
|
|
141
|
+
const seenKeys: Set<string> = new Set<string>();
|
|
142
|
+
|
|
143
|
+
for (const filter of source.filterAttributes || []) {
|
|
144
|
+
if (!filter || typeof filter !== "object") {
|
|
145
|
+
continue;
|
|
146
|
+
}
|
|
147
|
+
const key: string = (filter.key || "").trim();
|
|
148
|
+
const value: string = (filter.value || "").trim();
|
|
149
|
+
if (!key || !value || seenKeys.has(key)) {
|
|
150
|
+
continue;
|
|
151
|
+
}
|
|
152
|
+
seenKeys.add(key);
|
|
153
|
+
filters.push({ key, value });
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
const legacyKey: string = (source.filterAttributeKey || "").trim();
|
|
157
|
+
const legacyValue: string = (source.filterAttributeValue || "").trim();
|
|
158
|
+
if (legacyKey && legacyValue && !seenKeys.has(legacyKey)) {
|
|
159
|
+
filters.push({ key: legacyKey, value: legacyValue });
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
return filters;
|
|
163
|
+
}
|
|
164
|
+
|
|
115
165
|
public static getNextAlias(
|
|
116
166
|
sources: Array<TraceRecordingRuleSource> | undefined,
|
|
117
167
|
): string {
|
|
@@ -161,6 +211,12 @@ export class TraceRecordingRuleDefinitionUtil {
|
|
|
161
211
|
const aliases: Set<string> = new Set<string>();
|
|
162
212
|
for (let i: number = 0; i < sources.length; i++) {
|
|
163
213
|
const source: TraceRecordingRuleSource = sources[i]!;
|
|
214
|
+
|
|
215
|
+
// Definitions arrive as JSON (deep links, API writes) — never throw.
|
|
216
|
+
if (!source || typeof source !== "object") {
|
|
217
|
+
return `Source #${i + 1}: Invalid source.`;
|
|
218
|
+
}
|
|
219
|
+
|
|
164
220
|
const prefix: string = `Source ${source.alias || `#${i + 1}`}: `;
|
|
165
221
|
|
|
166
222
|
if (!source.alias || !ALIAS_REGEX.test(source.alias)) {
|
|
@@ -184,6 +240,24 @@ export class TraceRecordingRuleDefinitionUtil {
|
|
|
184
240
|
if (hasFilterKey !== hasFilterValue) {
|
|
185
241
|
return `${prefix}Attribute filter needs both a key and a value (or leave both empty).`;
|
|
186
242
|
}
|
|
243
|
+
|
|
244
|
+
if (
|
|
245
|
+
source.filterAttributes !== undefined &&
|
|
246
|
+
!Array.isArray(source.filterAttributes)
|
|
247
|
+
) {
|
|
248
|
+
return `${prefix}Invalid attribute filters.`;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
for (const filter of source.filterAttributes || []) {
|
|
252
|
+
if (!filter || typeof filter !== "object") {
|
|
253
|
+
return `${prefix}Invalid attribute filter row.`;
|
|
254
|
+
}
|
|
255
|
+
const hasKey: boolean = Boolean(filter.key?.trim());
|
|
256
|
+
const hasValue: boolean = Boolean(filter.value?.trim());
|
|
257
|
+
if (hasKey !== hasValue) {
|
|
258
|
+
return `${prefix}Attribute filter needs both a key and a value (or remove the row).`;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
187
261
|
}
|
|
188
262
|
|
|
189
263
|
const expression: string = (definition.expression || "").trim();
|
|
@@ -466,7 +466,7 @@ const LogsViewer: FunctionComponent<ComponentProps> = (
|
|
|
466
466
|
* Logs without a service.name are tagged with the projectId
|
|
467
467
|
* (ServiceType.Unknown) and have no Service row. Register a
|
|
468
468
|
* synthetic "Unknown Service" keyed by the projectId so the
|
|
469
|
-
*
|
|
469
|
+
* primaryEntityId -> name resolution and the service facet render
|
|
470
470
|
* "Unknown Service" instead of a raw id. Harmless when no logs
|
|
471
471
|
* are unattributed — nothing resolves against it.
|
|
472
472
|
*/
|
|
@@ -631,17 +631,17 @@ const LogsViewer: FunctionComponent<ComponentProps> = (
|
|
|
631
631
|
|
|
632
632
|
// Resolve human-readable service name to UUID if needed
|
|
633
633
|
if (
|
|
634
|
-
queryFilter["
|
|
635
|
-
typeof queryFilter["
|
|
634
|
+
queryFilter["primaryEntityId"] &&
|
|
635
|
+
typeof queryFilter["primaryEntityId"] === "string"
|
|
636
636
|
) {
|
|
637
|
-
const serviceName: string = queryFilter["
|
|
637
|
+
const serviceName: string = queryFilter["primaryEntityId"] as string;
|
|
638
638
|
const resolvedId: string | undefined = resolveServiceNameToId(
|
|
639
639
|
serviceName,
|
|
640
640
|
serviceMap,
|
|
641
641
|
);
|
|
642
642
|
|
|
643
643
|
if (resolvedId) {
|
|
644
|
-
queryFilter["
|
|
644
|
+
queryFilter["primaryEntityId"] = resolvedId;
|
|
645
645
|
}
|
|
646
646
|
}
|
|
647
647
|
|
|
@@ -824,7 +824,7 @@ const LogsViewer: FunctionComponent<ComponentProps> = (
|
|
|
824
824
|
}
|
|
825
825
|
|
|
826
826
|
return props.activeFilters.map((filter: ActiveFilter): ActiveFilter => {
|
|
827
|
-
if (filter.facetKey === "
|
|
827
|
+
if (filter.facetKey === "primaryEntityId" && serviceMap[filter.value]) {
|
|
828
828
|
const service: Service | undefined = serviceMap[filter.value];
|
|
829
829
|
return {
|
|
830
830
|
...filter,
|
|
@@ -870,7 +870,7 @@ const LogsViewer: FunctionComponent<ComponentProps> = (
|
|
|
870
870
|
]);
|
|
871
871
|
|
|
872
872
|
/*
|
|
873
|
-
* Replace
|
|
873
|
+
* Replace primaryEntityId UUIDs with human-readable names in value suggestions,
|
|
874
874
|
* and merge in the lazily-fetched attribute value suggestions.
|
|
875
875
|
* Must be before early returns to maintain consistent hook call order.
|
|
876
876
|
*/
|
|
@@ -889,8 +889,11 @@ const LogsViewer: FunctionComponent<ComponentProps> = (
|
|
|
889
889
|
...attributeValueSuggestions,
|
|
890
890
|
};
|
|
891
891
|
|
|
892
|
-
if (
|
|
893
|
-
suggestions["
|
|
892
|
+
if (
|
|
893
|
+
suggestions["primaryEntityId"] &&
|
|
894
|
+
Object.keys(serviceMap).length > 0
|
|
895
|
+
) {
|
|
896
|
+
suggestions["primaryEntityId"] = suggestions["primaryEntityId"].map(
|
|
894
897
|
(id: string) => {
|
|
895
898
|
const service: Service | undefined = serviceMap[id];
|
|
896
899
|
return service?.name || id;
|
|
@@ -65,7 +65,7 @@ interface ContextLog {
|
|
|
65
65
|
time: string;
|
|
66
66
|
severity: string;
|
|
67
67
|
body: string;
|
|
68
|
-
|
|
68
|
+
primaryEntityId: string;
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
const prepareBody: (body: string | undefined) => PreparedBody = (
|
|
@@ -106,7 +106,7 @@ function parseContextRow(row: JSONObject): ContextLog {
|
|
|
106
106
|
time: String(row["time"] || ""),
|
|
107
107
|
severity: String(row["severityText"] || "Unspecified"),
|
|
108
108
|
body: String(row["body"] || ""),
|
|
109
|
-
|
|
109
|
+
primaryEntityId: String(row["primaryEntityId"] || ""),
|
|
110
110
|
};
|
|
111
111
|
}
|
|
112
112
|
|
|
@@ -121,9 +121,10 @@ const LogDetailsPanel: FunctionComponent<LogDetailsPanelProps> = (
|
|
|
121
121
|
const [contextLoaded, setContextLoaded] = useState<boolean>(false);
|
|
122
122
|
|
|
123
123
|
const variant: "floating" | "embedded" = props.variant || "floating";
|
|
124
|
-
const
|
|
125
|
-
const service: Service | undefined = props.serviceMap[
|
|
126
|
-
const serviceName: string =
|
|
124
|
+
const primaryEntityId: string = props.log.primaryEntityId?.toString() || "";
|
|
125
|
+
const service: Service | undefined = props.serviceMap[primaryEntityId];
|
|
126
|
+
const serviceName: string =
|
|
127
|
+
service?.name || primaryEntityId || "Unknown service";
|
|
127
128
|
const serviceColor: string =
|
|
128
129
|
(service?.serviceColor && service?.serviceColor.toString()) || "#64748b";
|
|
129
130
|
|
|
@@ -214,7 +215,7 @@ const LogDetailsPanel: FunctionComponent<LogDetailsPanelProps> = (
|
|
|
214
215
|
|
|
215
216
|
const loadContext: () => Promise<void> =
|
|
216
217
|
useCallback(async (): Promise<void> => {
|
|
217
|
-
if (!props.projectId || !
|
|
218
|
+
if (!props.projectId || !primaryEntityId || !props.log.time) {
|
|
218
219
|
setContextError("Missing project or service information for context.");
|
|
219
220
|
return;
|
|
220
221
|
}
|
|
@@ -230,7 +231,7 @@ const LogDetailsPanel: FunctionComponent<LogDetailsPanelProps> = (
|
|
|
230
231
|
),
|
|
231
232
|
data: {
|
|
232
233
|
logId: props.log.getColumnValue("_id")?.toString() || "",
|
|
233
|
-
|
|
234
|
+
primaryEntityId: primaryEntityId,
|
|
234
235
|
time: props.log.time
|
|
235
236
|
? OneUptimeDate.toString(props.log.time)
|
|
236
237
|
: "",
|
|
@@ -260,7 +261,7 @@ const LogDetailsPanel: FunctionComponent<LogDetailsPanelProps> = (
|
|
|
260
261
|
} finally {
|
|
261
262
|
setContextLoading(false);
|
|
262
263
|
}
|
|
263
|
-
}, [props.projectId,
|
|
264
|
+
}, [props.projectId, primaryEntityId, props.log]);
|
|
264
265
|
|
|
265
266
|
useEffect(() => {
|
|
266
267
|
if (activeTab === "context" && !contextLoaded && !contextLoading) {
|
|
@@ -622,7 +623,7 @@ const LogDetailsPanel: FunctionComponent<LogDetailsPanelProps> = (
|
|
|
622
623
|
time: props.log.time ? props.log.time.toString() : "",
|
|
623
624
|
severity: props.log.severityText?.toString() || "Unspecified",
|
|
624
625
|
body: props.log.body || "",
|
|
625
|
-
|
|
626
|
+
primaryEntityId: primaryEntityId,
|
|
626
627
|
},
|
|
627
628
|
true,
|
|
628
629
|
)}
|
|
@@ -398,7 +398,7 @@ function extractCurrentWord(value: string): string {
|
|
|
398
398
|
const FIELD_ALIAS_MAP: Record<string, string> = {
|
|
399
399
|
severity: "severityText",
|
|
400
400
|
level: "severityText",
|
|
401
|
-
service: "
|
|
401
|
+
service: "primaryEntityId",
|
|
402
402
|
trace: "traceId",
|
|
403
403
|
span: "spanId",
|
|
404
404
|
};
|
|
@@ -85,7 +85,7 @@ const CHART_COLORS_MUTED: Array<string> = [
|
|
|
85
85
|
|
|
86
86
|
const DIMENSION_OPTIONS: Array<{ value: string; label: string }> = [
|
|
87
87
|
{ value: "severityText", label: "Severity" },
|
|
88
|
-
{ value: "
|
|
88
|
+
{ value: "primaryEntityId", label: "Service" },
|
|
89
89
|
{ value: "traceId", label: "Trace ID" },
|
|
90
90
|
{ value: "spanId", label: "Span ID" },
|
|
91
91
|
];
|
|
@@ -372,7 +372,7 @@ const LogsAnalyticsView: FunctionComponent<LogsAnalyticsViewProps> = (
|
|
|
372
372
|
}
|
|
373
373
|
|
|
374
374
|
const serviceFilterValues: Set<string> | undefined =
|
|
375
|
-
props.appliedFacetFilters.get("
|
|
375
|
+
props.appliedFacetFilters.get("primaryEntityId");
|
|
376
376
|
|
|
377
377
|
if (serviceFilterValues && serviceFilterValues.size > 0) {
|
|
378
378
|
(requestData as Record<string, unknown>)["serviceIds"] =
|
|
@@ -39,7 +39,7 @@ export interface LogsFacetSidebarProps {
|
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
const RESOURCE_FACET_KEYS: ReadonlySet<string> = new Set([
|
|
42
|
-
"
|
|
42
|
+
"primaryEntityId",
|
|
43
43
|
"hostId",
|
|
44
44
|
"dockerHostId",
|
|
45
45
|
"kubernetesClusterId",
|
|
@@ -146,7 +146,7 @@ function buildClusterDisplayMap(
|
|
|
146
146
|
function getFacetTitle(key: string): string {
|
|
147
147
|
const titleMap: Record<string, string> = {
|
|
148
148
|
severityText: "Severity",
|
|
149
|
-
|
|
149
|
+
primaryEntityId: "Service",
|
|
150
150
|
hostId: "Host",
|
|
151
151
|
dockerHostId: "Docker Host",
|
|
152
152
|
kubernetesClusterId: "Kubernetes Cluster",
|
|
@@ -187,7 +187,7 @@ const LogsFacetSidebar: FunctionComponent<LogsFacetSidebarProps> = (
|
|
|
187
187
|
const facetKeys: Array<string> = useMemo(() => {
|
|
188
188
|
const priorityKeys: Array<string> = [
|
|
189
189
|
"severityText",
|
|
190
|
-
"
|
|
190
|
+
"primaryEntityId",
|
|
191
191
|
"hostId",
|
|
192
192
|
"dockerHostId",
|
|
193
193
|
"kubernetesClusterId",
|
|
@@ -280,7 +280,7 @@ const LogsFacetSidebar: FunctionComponent<LogsFacetSidebarProps> = (
|
|
|
280
280
|
let valueDisplayMap: Record<string, string> | undefined;
|
|
281
281
|
let valueColorMap: Record<string, string> | undefined;
|
|
282
282
|
|
|
283
|
-
if (key === "
|
|
283
|
+
if (key === "primaryEntityId") {
|
|
284
284
|
valueDisplayMap = serviceDisplayMap;
|
|
285
285
|
valueColorMap = serviceColorMap;
|
|
286
286
|
} else if (key === "hostId") {
|
|
@@ -233,10 +233,12 @@ const LogsTable: FunctionComponent<LogsTableProps> = (
|
|
|
233
233
|
<tbody className="divide-y divide-gray-100">
|
|
234
234
|
{props.logs.map((log: Log, index: number) => {
|
|
235
235
|
const rowId: string = resolveLogIdentifier(log, index);
|
|
236
|
-
const
|
|
237
|
-
|
|
236
|
+
const primaryEntityId: string =
|
|
237
|
+
log.primaryEntityId?.toString() || "";
|
|
238
|
+
const service: Service | undefined =
|
|
239
|
+
props.serviceMap[primaryEntityId];
|
|
238
240
|
const serviceName: string =
|
|
239
|
-
service?.name ||
|
|
241
|
+
service?.name || primaryEntityId || "Unknown";
|
|
240
242
|
const serviceColor: string =
|
|
241
243
|
(service?.serviceColor && service?.serviceColor.toString()) ||
|
|
242
244
|
"#94a3b8";
|
|
@@ -137,11 +137,13 @@ interface IndexedItem {
|
|
|
137
137
|
interface MenuGroup {
|
|
138
138
|
category: string;
|
|
139
139
|
items: IndexedItem[];
|
|
140
|
+
isRecent: boolean;
|
|
140
141
|
}
|
|
141
142
|
|
|
142
143
|
interface RawGroup {
|
|
143
144
|
category: string;
|
|
144
145
|
items: MoreMenuItem[];
|
|
146
|
+
isRecent: boolean;
|
|
145
147
|
}
|
|
146
148
|
|
|
147
149
|
const NavBarMenuModal: FunctionComponent<ComponentProps> = (
|
|
@@ -230,7 +232,7 @@ const NavBarMenuModal: FunctionComponent<ComponentProps> = (
|
|
|
230
232
|
byCategory.get(category)!.push(item);
|
|
231
233
|
});
|
|
232
234
|
return order.map((category: string) => {
|
|
233
|
-
return { category, items: byCategory.get(category)
|
|
235
|
+
return { category, items: byCategory.get(category)!, isRecent: false };
|
|
234
236
|
});
|
|
235
237
|
}, [filteredItems]);
|
|
236
238
|
|
|
@@ -242,7 +244,7 @@ const NavBarMenuModal: FunctionComponent<ComponentProps> = (
|
|
|
242
244
|
const displayGroups: MenuGroup[] = useMemo(() => {
|
|
243
245
|
const raw: RawGroup[] = [];
|
|
244
246
|
if (!query.trim() && recentItems.length > 0) {
|
|
245
|
-
raw.push({ category: recentLabel, items: recentItems });
|
|
247
|
+
raw.push({ category: recentLabel, items: recentItems, isRecent: true });
|
|
246
248
|
}
|
|
247
249
|
raw.push(...categoryGroups);
|
|
248
250
|
|
|
@@ -253,7 +255,7 @@ const NavBarMenuModal: FunctionComponent<ComponentProps> = (
|
|
|
253
255
|
flatIndex++;
|
|
254
256
|
return entry;
|
|
255
257
|
});
|
|
256
|
-
return { category: group.category, items };
|
|
258
|
+
return { category: group.category, items, isRecent: group.isRecent };
|
|
257
259
|
});
|
|
258
260
|
}, [query, recentItems, categoryGroups, recentLabel]);
|
|
259
261
|
|
|
@@ -444,7 +446,7 @@ const NavBarMenuModal: FunctionComponent<ComponentProps> = (
|
|
|
444
446
|
>
|
|
445
447
|
{/* Backdrop */}
|
|
446
448
|
<div
|
|
447
|
-
className={`fixed inset-0 bg-gray-900
|
|
449
|
+
className={`fixed inset-0 bg-gray-900/50 backdrop-blur-sm transition-opacity duration-200 ${
|
|
448
450
|
isShown ? "opacity-100" : "opacity-0"
|
|
449
451
|
}`}
|
|
450
452
|
/>
|
|
@@ -456,8 +458,10 @@ const NavBarMenuModal: FunctionComponent<ComponentProps> = (
|
|
|
456
458
|
>
|
|
457
459
|
<div className="flex min-h-full items-start justify-center p-4 sm:p-6">
|
|
458
460
|
<div
|
|
459
|
-
className={`relative mt-[6vh] flex w-full max-w-4xl flex-col overflow-hidden rounded-2xl bg-white shadow-2xl ring-1 ring-
|
|
460
|
-
isShown
|
|
461
|
+
className={`relative mt-[6vh] flex w-full max-w-4xl flex-col overflow-hidden rounded-2xl bg-white shadow-2xl ring-1 ring-gray-900/5 transition-all duration-200 ease-out ${
|
|
462
|
+
isShown
|
|
463
|
+
? "translate-y-0 scale-100 opacity-100"
|
|
464
|
+
: "translate-y-2 scale-[0.98] opacity-0"
|
|
461
465
|
}`}
|
|
462
466
|
style={{ maxHeight: "80vh" }}
|
|
463
467
|
onClick={(event: React.MouseEvent<HTMLDivElement>) => {
|
|
@@ -465,7 +469,7 @@ const NavBarMenuModal: FunctionComponent<ComponentProps> = (
|
|
|
465
469
|
}}
|
|
466
470
|
>
|
|
467
471
|
{/* Search header */}
|
|
468
|
-
<div className="flex items-center gap-3 border-b border-gray-100 px-
|
|
472
|
+
<div className="flex items-center gap-3 border-b border-gray-100 px-5 py-4">
|
|
469
473
|
<Icon
|
|
470
474
|
icon={IconProp.Search}
|
|
471
475
|
className="h-5 w-5 flex-shrink-0 text-gray-400"
|
|
@@ -482,6 +486,10 @@ const NavBarMenuModal: FunctionComponent<ComponentProps> = (
|
|
|
482
486
|
: undefined
|
|
483
487
|
}
|
|
484
488
|
aria-label={props.searchPlaceholder || "Search products"}
|
|
489
|
+
autoComplete="off"
|
|
490
|
+
autoCorrect="off"
|
|
491
|
+
autoCapitalize="off"
|
|
492
|
+
spellCheck={false}
|
|
485
493
|
value={query}
|
|
486
494
|
onChange={(event: React.ChangeEvent<HTMLInputElement>) => {
|
|
487
495
|
setQuery(event.target.value);
|
|
@@ -490,9 +498,23 @@ const NavBarMenuModal: FunctionComponent<ComponentProps> = (
|
|
|
490
498
|
placeholder={props.searchPlaceholder || "Search…"}
|
|
491
499
|
className="flex-1 border-0 bg-transparent p-0 text-base text-gray-900 placeholder-gray-400 focus:outline-none focus:ring-0"
|
|
492
500
|
/>
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
501
|
+
{query ? (
|
|
502
|
+
<button
|
|
503
|
+
type="button"
|
|
504
|
+
aria-label="Clear search"
|
|
505
|
+
onClick={() => {
|
|
506
|
+
setQuery("");
|
|
507
|
+
inputRef.current?.focus();
|
|
508
|
+
}}
|
|
509
|
+
className="flex h-6 w-6 flex-shrink-0 items-center justify-center rounded-full text-gray-400 transition-colors hover:bg-gray-100 hover:text-gray-600"
|
|
510
|
+
>
|
|
511
|
+
<Icon icon={IconProp.Close} className="h-4 w-4" />
|
|
512
|
+
</button>
|
|
513
|
+
) : (
|
|
514
|
+
<kbd className="hidden items-center rounded border border-gray-200 bg-gray-50 px-1.5 py-0.5 text-xs font-medium text-gray-400 sm:inline-flex">
|
|
515
|
+
{shortcutLabel}
|
|
516
|
+
</kbd>
|
|
517
|
+
)}
|
|
496
518
|
</div>
|
|
497
519
|
|
|
498
520
|
{/* Body */}
|
|
@@ -500,19 +522,21 @@ const NavBarMenuModal: FunctionComponent<ComponentProps> = (
|
|
|
500
522
|
id="navbar-menu-listbox"
|
|
501
523
|
role="listbox"
|
|
502
524
|
aria-label="Products"
|
|
503
|
-
className="flex-1 overflow-y-auto px-
|
|
525
|
+
className="flex-1 overflow-y-auto overscroll-contain px-5 pb-5 pt-4"
|
|
504
526
|
>
|
|
505
527
|
{flatItems.length === 0 ? (
|
|
506
528
|
<div className="flex flex-col items-center justify-center py-16 text-center">
|
|
507
|
-
<
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
529
|
+
<div className="mb-3 flex h-12 w-12 items-center justify-center rounded-full bg-gray-50 ring-1 ring-gray-100">
|
|
530
|
+
<Icon
|
|
531
|
+
icon={IconProp.Search}
|
|
532
|
+
className="h-5 w-5 text-gray-400"
|
|
533
|
+
/>
|
|
534
|
+
</div>
|
|
535
|
+
<p className="text-sm font-medium text-gray-900">
|
|
512
536
|
{props.noResultsText || "No results found."}
|
|
513
537
|
</p>
|
|
514
538
|
{query && (
|
|
515
|
-
<p className="mt-1 text-xs text-gray-
|
|
539
|
+
<p className="mt-1 text-xs text-gray-500">
|
|
516
540
|
“{query}”
|
|
517
541
|
</p>
|
|
518
542
|
)}
|
|
@@ -521,10 +545,18 @@ const NavBarMenuModal: FunctionComponent<ComponentProps> = (
|
|
|
521
545
|
displayGroups.map((group: MenuGroup) => {
|
|
522
546
|
return (
|
|
523
547
|
<div key={group.category} className="mb-6 last:mb-1">
|
|
524
|
-
<
|
|
525
|
-
{group.
|
|
526
|
-
|
|
527
|
-
|
|
548
|
+
<div className="mb-2.5 flex items-center gap-1.5 px-1">
|
|
549
|
+
{group.isRecent && (
|
|
550
|
+
<Icon
|
|
551
|
+
icon={IconProp.Clock}
|
|
552
|
+
className="h-3.5 w-3.5 text-gray-500"
|
|
553
|
+
/>
|
|
554
|
+
)}
|
|
555
|
+
<h3 className="text-[11px] font-semibold uppercase tracking-[0.1em] text-gray-500">
|
|
556
|
+
{group.category}
|
|
557
|
+
</h3>
|
|
558
|
+
</div>
|
|
559
|
+
<div className="grid grid-cols-1 gap-2 sm:grid-cols-2 lg:grid-cols-3">
|
|
528
560
|
{group.items.map((entry: IndexedItem) => {
|
|
529
561
|
const item: MoreMenuItem = entry.item;
|
|
530
562
|
const flatIndex: number = entry.flatIndex;
|
|
@@ -543,43 +575,44 @@ const NavBarMenuModal: FunctionComponent<ComponentProps> = (
|
|
|
543
575
|
ref={(element: HTMLDivElement | null) => {
|
|
544
576
|
cellRefs.current[flatIndex] = element;
|
|
545
577
|
}}
|
|
546
|
-
|
|
578
|
+
onMouseMove={() => {
|
|
547
579
|
setActiveIndex(flatIndex);
|
|
548
580
|
}}
|
|
549
|
-
className="relative"
|
|
550
581
|
>
|
|
551
|
-
{isCurrent && (
|
|
552
|
-
<span
|
|
553
|
-
aria-hidden="true"
|
|
554
|
-
className="absolute right-2 top-2 z-10 h-2 w-2 rounded-full bg-indigo-500 ring-2 ring-white"
|
|
555
|
-
/>
|
|
556
|
-
)}
|
|
557
582
|
<Link
|
|
558
583
|
to={item.route}
|
|
559
584
|
onClick={() => {
|
|
560
585
|
selectItem(item);
|
|
561
586
|
}}
|
|
562
|
-
className={`group flex h-full
|
|
587
|
+
className={`group flex h-full items-start gap-3 rounded-xl border p-3 text-left transition-colors duration-150 ${
|
|
563
588
|
isActive
|
|
564
|
-
? "
|
|
589
|
+
? "border-indigo-300 bg-indigo-50 shadow-sm"
|
|
565
590
|
: isCurrent
|
|
566
|
-
? "
|
|
567
|
-
: "
|
|
591
|
+
? "border-indigo-100 bg-indigo-50/40"
|
|
592
|
+
: "border-transparent"
|
|
568
593
|
}`}
|
|
569
594
|
>
|
|
570
595
|
<div
|
|
571
|
-
className={`flex h-
|
|
596
|
+
className={`flex h-10 w-10 flex-shrink-0 items-center justify-center rounded-lg ${colors.bg} ring-1 ${colors.ring}`}
|
|
572
597
|
>
|
|
573
598
|
<Icon
|
|
574
599
|
icon={item.icon}
|
|
575
|
-
className={`h-
|
|
600
|
+
className={`h-5 w-5 transition-transform duration-150 group-hover:scale-110 ${colors.text}`}
|
|
576
601
|
/>
|
|
577
602
|
</div>
|
|
578
|
-
<div className="w-
|
|
579
|
-
<p className="text-sm font-medium text-gray-900">
|
|
580
|
-
|
|
603
|
+
<div className="min-w-0 flex-1">
|
|
604
|
+
<p className="flex items-center gap-1.5 text-sm font-medium text-gray-900">
|
|
605
|
+
<span className="truncate">
|
|
606
|
+
{highlightMatch(item.title)}
|
|
607
|
+
</span>
|
|
608
|
+
{isCurrent && (
|
|
609
|
+
<span
|
|
610
|
+
aria-hidden="true"
|
|
611
|
+
className="h-1.5 w-1.5 flex-shrink-0 rounded-full bg-indigo-500"
|
|
612
|
+
/>
|
|
613
|
+
)}
|
|
581
614
|
</p>
|
|
582
|
-
<p className="mt-0.5 text-xs leading-
|
|
615
|
+
<p className="mt-0.5 text-xs leading-relaxed text-gray-500 line-clamp-2">
|
|
583
616
|
{highlightMatch(item.description)}
|
|
584
617
|
</p>
|
|
585
618
|
</div>
|
|
@@ -596,21 +629,25 @@ const NavBarMenuModal: FunctionComponent<ComponentProps> = (
|
|
|
596
629
|
|
|
597
630
|
{/* Footer */}
|
|
598
631
|
{props.footer && (
|
|
599
|
-
<div className="flex items-center justify-between gap-4 border-t border-gray-100 bg-gray-50 px-
|
|
632
|
+
<div className="flex items-center justify-between gap-4 border-t border-gray-100 bg-gray-50/80 px-5 py-3">
|
|
600
633
|
<Link
|
|
601
634
|
to={props.footer.link}
|
|
602
635
|
openInNewTab={true}
|
|
603
636
|
className="group flex min-w-0 items-center gap-3"
|
|
604
637
|
>
|
|
605
|
-
<div className="flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-lg bg-gray-
|
|
638
|
+
<div className="flex h-8 w-8 flex-shrink-0 items-center justify-center rounded-lg bg-gray-900 transition-colors group-hover:bg-gray-700">
|
|
606
639
|
<Icon
|
|
607
640
|
icon={IconProp.GitHub}
|
|
608
|
-
className="h-4 w-4 text-
|
|
641
|
+
className="h-4 w-4 text-white"
|
|
609
642
|
/>
|
|
610
643
|
</div>
|
|
611
644
|
<div className="min-w-0 text-left">
|
|
612
|
-
<p className="
|
|
613
|
-
{props.footer.title}
|
|
645
|
+
<p className="flex items-center gap-1 text-sm font-medium text-gray-900">
|
|
646
|
+
<span className="truncate">{props.footer.title}</span>
|
|
647
|
+
<Icon
|
|
648
|
+
icon={IconProp.ExternalLink}
|
|
649
|
+
className="h-3 w-3 flex-shrink-0 text-gray-400 opacity-0 transition-opacity duration-150 group-hover:opacity-100 group-focus-visible:opacity-100"
|
|
650
|
+
/>
|
|
614
651
|
</p>
|
|
615
652
|
<p className="truncate text-xs text-gray-500">
|
|
616
653
|
{props.footer.description}
|
|
@@ -92,6 +92,17 @@ export interface TelemetryViewerProps<T> {
|
|
|
92
92
|
onHistogramTimeRangeSelect?:
|
|
93
93
|
| ((startTime: Date, endTime: Date) => void)
|
|
94
94
|
| undefined;
|
|
95
|
+
// Extra controls in the histogram header (e.g. a chart-metric selector).
|
|
96
|
+
histogramHeaderActions?: ReactNode;
|
|
97
|
+
// Y-axis / tooltip value formatting (e.g. latency metrics in ms).
|
|
98
|
+
histogramValueFormatter?: ((value: number) => string) | undefined;
|
|
99
|
+
|
|
100
|
+
/*
|
|
101
|
+
* When set, replaces the histogram + facet sidebar + list with the given
|
|
102
|
+
* content (e.g. an analytics view). The toolbar, search bar, and active
|
|
103
|
+
* filter chips stay, so the override content can consume the same filters.
|
|
104
|
+
*/
|
|
105
|
+
mainContentOverride?: ReactNode;
|
|
95
106
|
|
|
96
107
|
// -- Pagination --
|
|
97
108
|
page: number;
|
|
@@ -201,19 +212,31 @@ function TelemetryViewerInner<T>(props: TelemetryViewerProps<T>): ReactElement {
|
|
|
201
212
|
/>
|
|
202
213
|
)}
|
|
203
214
|
|
|
215
|
+
{/* Main content override (e.g. analytics view) */}
|
|
216
|
+
{props.mainContentOverride}
|
|
217
|
+
|
|
204
218
|
{/* Histogram */}
|
|
205
|
-
{
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
219
|
+
{!props.mainContentOverride &&
|
|
220
|
+
showHistogram &&
|
|
221
|
+
props.histogramBuckets &&
|
|
222
|
+
props.histogramSeries && (
|
|
223
|
+
<TelemetryHistogram
|
|
224
|
+
buckets={props.histogramBuckets}
|
|
225
|
+
isLoading={props.histogramLoading || false}
|
|
226
|
+
series={props.histogramSeries}
|
|
227
|
+
title={props.histogramTitle}
|
|
228
|
+
onTimeRangeSelect={props.onHistogramTimeRangeSelect}
|
|
229
|
+
headerActions={props.histogramHeaderActions}
|
|
230
|
+
valueFormatter={props.histogramValueFormatter}
|
|
231
|
+
/>
|
|
232
|
+
)}
|
|
214
233
|
|
|
215
234
|
{/* Main area: facets + list */}
|
|
216
|
-
<div
|
|
235
|
+
<div
|
|
236
|
+
className={`flex min-h-0 flex-1 gap-3 ${
|
|
237
|
+
props.mainContentOverride ? "hidden" : ""
|
|
238
|
+
}`}
|
|
239
|
+
>
|
|
217
240
|
{showFacets && (
|
|
218
241
|
<TelemetryFacetSidebar
|
|
219
242
|
facetData={props.facetData || {}}
|