@oneuptime/common 14.0.5 → 14.0.7
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/DatabaseModels/InventoryItem.ts +23 -12
- package/Server/Infrastructure/Postgres/SchemaMigrations/1795200000000-AddInventoryItemProjectEntityKeyIndex.ts +217 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +2 -0
- package/Server/Services/AlertService.ts +32 -36
- package/Server/Services/IncidentAlertService.ts +609 -2
- package/Server/Services/IncidentService.ts +134 -44
- package/Server/Services/InventoryItemService.ts +38 -0
- package/Server/Services/IoTDeviceCredentialService.ts +13 -4
- package/Server/Services/MetricService.ts +1 -1
- package/Server/Services/ScheduledMaintenanceService.ts +50 -46
- package/Server/Services/UserNotificationRuleService.ts +55 -53
- package/Server/Services/WorkspaceNotificationSummaryService.ts +38 -20
- package/Server/Types/Database/QueryHelper.ts +54 -1
- package/Server/Utils/AI/Toolbox/MetricTools.ts +13 -2
- package/Server/Utils/AI/Toolbox/ResourceTools.ts +12 -1
- package/Server/Utils/AffectedResources/LinkedAffectedResources.ts +576 -0
- package/Server/Utils/Alert/AlertStateChangeAuthorization.ts +129 -0
- package/Server/Utils/AnalyticsDatabase/StatementGenerator.ts +1 -1
- package/Server/Utils/Inventory/InventoryOverviewAggregation.ts +111 -0
- package/Server/Utils/Monitor/Criteria/CompareCriteria.ts +33 -0
- package/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.ts +4 -3
- package/Server/Utils/Monitor/MonitorCriteriaEvaluator.ts +3 -1
- package/Server/Utils/Response.ts +31 -0
- package/Server/Utils/Topology/TopologyConcurrencyLimiter.ts +229 -0
- package/Server/Utils/Topology/TopologyQueries.ts +1350 -0
- package/Server/Utils/Topology/TopologyRequest.ts +463 -0
- package/Server/Utils/Topology/TopologyResponseCache.ts +183 -0
- package/Server/Utils/Topology/TopologySql.ts +1024 -0
- package/Tests/App/Dashboard/AcknowledgeAlertsOnDeclare.test.ts +369 -0
- package/Tests/App/Dashboard/AffectedResourcesSlo.test.tsx +1 -1
- package/Tests/App/Dashboard/AffectedResourcesSummaryStep.test.tsx +510 -123
- package/Tests/App/Dashboard/AlertsTableAffectedResources.test.tsx +490 -0
- package/Tests/App/Dashboard/ChangeAlertStateDeclareIncident.test.tsx +886 -0
- package/Tests/App/Dashboard/CreateReviewStepRoleSummary.test.tsx +1250 -0
- package/Tests/App/Dashboard/CreateReviewStepSelectionSummary.test.tsx +738 -0
- package/Tests/App/Dashboard/DeclareIncidentFromAlert.test.ts +417 -0
- package/Tests/App/Dashboard/EntityDetailPanel.test.tsx +1948 -229
- package/Tests/App/Dashboard/EntityDetailPanelLifecycle.test.tsx +493 -0
- package/Tests/App/Dashboard/EntityDetailPanelNavigation.test.tsx +439 -0
- package/Tests/App/Dashboard/EventOverviewPages.test.tsx +292 -1
- package/Tests/App/Dashboard/EventStatusPanel.test.tsx +798 -2
- package/Tests/App/Dashboard/FetchStateAndSeverityElements.test.tsx +669 -0
- package/Tests/App/Dashboard/FetchUsers.test.tsx +230 -0
- package/Tests/App/Dashboard/IncidentCreateAcknowledgeAlerts.test.tsx +1611 -0
- package/Tests/App/Dashboard/InfrastructureExplorer.test.tsx +1365 -57
- package/Tests/App/Dashboard/InfrastructureGraph.test.tsx +964 -23
- package/Tests/App/Dashboard/InventoryRelationships.test.tsx +885 -0
- package/Tests/App/Dashboard/NetworkTopologyExplorerSearch.test.tsx +1267 -0
- package/Tests/App/Dashboard/ResourceOverviewTileTooltips.test.tsx +4 -1
- package/Tests/App/Dashboard/RumOverviewPage.test.tsx +127 -0
- package/Tests/App/Dashboard/ServiceMapDatabaseLink.test.tsx +201 -15
- package/Tests/App/Dashboard/ServiceMapGraph.test.tsx +508 -36
- package/Tests/App/Dashboard/SiteSearchBox.test.tsx +2110 -0
- package/Tests/App/Dashboard/TelemetryMetricsSignals.test.ts +168 -8
- package/Tests/App/Dashboard/TopologyDataLifecycle.test.tsx +583 -0
- package/Tests/App/Dashboard/TopologyDataLoading.test.tsx +982 -218
- package/Tests/App/Dashboard/TopologyPageNavigation.test.tsx +818 -114
- package/Tests/Server/Infrastructure/Postgres/RenameInventoryItemMigration.test.ts +90 -21
- package/Tests/Server/Services/DomainService.test.ts +525 -0
- package/Tests/Server/Services/IncidentAlertAcknowledgeOnDeclare.test.ts +2630 -0
- package/Tests/Server/Services/IncidentAlertPostgres.test.ts +1625 -1
- package/Tests/Server/Services/IncidentDeclareAcknowledgeAlerts.test.ts +2189 -0
- package/Tests/Server/Services/InventoryItemServiceOverviewCounts.test.ts +345 -0
- package/Tests/Server/Services/InventoryOverviewPostgres.test.ts +254 -0
- package/Tests/Server/Services/IoTDeviceCredentialService.test.ts +819 -0
- package/Tests/Server/Services/LinkedAffectedResourcesCreatedFeed.test.ts +420 -0
- package/Tests/Server/Services/MetricServiceAggregate.test.ts +12 -0
- package/Tests/Server/Services/SavedViewDefaults.test.ts +325 -0
- package/Tests/Server/Services/SloAffectedResourceCreatedFeed.test.ts +92 -36
- package/Tests/Server/Services/StatusPageCertificateService.test.ts +169 -0
- package/Tests/Server/Services/TeamComplianceSettingService.test.ts +191 -0
- package/Tests/Server/Types/Database/QueryHelperSearchAllWords.test.ts +651 -0
- package/Tests/Server/Utils/AI/AlertWriteTools.test.ts +256 -0
- package/Tests/Server/Utils/AI/IncidentWriteTools.test.ts +482 -0
- package/Tests/Server/Utils/AffectedResources/LinkedAffectedResources.test.ts +858 -0
- package/Tests/Server/Utils/Alert/AlertStateChangeAuthorization.test.ts +1172 -0
- package/Tests/Server/Utils/Monitor/Criteria/CompareCriteria.test.ts +54 -0
- package/Tests/Server/Utils/Monitor/MetricDecimalThreshold.test.ts +417 -0
- package/Tests/Server/Utils/Monitor/MonitorCriteriaEvaluatorAffectedResourceEdgeCases.test.ts +96 -0
- package/Tests/Server/Utils/Topology/InventoryItemEntityKeyIndexMigration.test.ts +386 -0
- package/Tests/Server/Utils/Topology/InventoryItemEntityKeyIndexMigrationPostgres.test.ts +430 -0
- package/Tests/Server/Utils/Topology/TopologyActivityParityPostgres.test.ts +279 -0
- package/Tests/Server/Utils/Topology/TopologyConcurrencyLimiter.test.ts +534 -0
- package/Tests/Server/Utils/Topology/TopologyEstateGenerator.ts +624 -0
- package/Tests/Server/Utils/Topology/TopologyJsonResponse.test.ts +90 -0
- package/Tests/Server/Utils/Topology/TopologyQueries.test.ts +1634 -0
- package/Tests/Server/Utils/Topology/TopologyQueriesDifferentialPostgres.test.ts +683 -0
- package/Tests/Server/Utils/Topology/TopologyQueriesPostgres.test.ts +2624 -0
- package/Tests/Server/Utils/Topology/TopologyReference.ts +1018 -0
- package/Tests/Server/Utils/Topology/TopologyRequest.test.ts +643 -0
- package/Tests/Server/Utils/Topology/TopologyResponseCache.test.ts +305 -0
- package/Tests/Server/Utils/Topology/TopologySql.test.ts +973 -0
- package/Tests/Types/BaseDatabase/AggregationType.test.ts +5 -1
- package/Tests/Types/Dashboard/KubernetesDashboardTemplate.test.ts +184 -0
- package/Tests/Types/Dashboard/KubernetesDashboardTemplates.test.ts +107 -0
- package/Tests/Types/Monitor/KubernetesAlertTemplates.test.ts +8 -14
- package/Tests/Types/Monitor/KubernetesMetricCatalog.test.ts +4 -3
- package/Tests/Types/Monitor/Utils/KubernetesAgentEmittedMetrics.ts +27 -6
- package/Tests/Types/Topology/TopologyTypeRules.test.ts +176 -0
- package/Tests/UI/Rum/ChunkLoader.test.ts +76 -0
- package/Tests/UI/Rum/ReplayRailDetail.test.tsx +53 -0
- package/Tests/UI/Rum/ReplaySignals.test.ts +54 -0
- package/Tests/Utils/Dashboard/KubernetesClusterCpuTileRepair.test.ts +370 -0
- package/Tests/Utils/Incident/IncidentFromAlerts.test.ts +302 -0
- package/Tests/Utils/Rules/MonitorTypeRuleCriteria.test.ts +181 -0
- package/Types/BaseDatabase/AggregationType.ts +7 -0
- package/Types/Dashboard/DashboardTemplates.ts +20 -7
- package/Types/Incident/IncidentAlertLink.ts +19 -0
- package/Types/Rum/SessionReplayCustomEvents.ts +29 -3
- package/Types/Rum/WebVitals.ts +13 -0
- package/Types/Telemetry/InventoryLiveness.ts +26 -0
- package/Types/Topology/TopologyApi.ts +428 -0
- package/Types/Topology/TopologyTypeRules.ts +191 -0
- package/UI/Components/Input/Input.tsx +11 -0
- package/Utils/Dashboard/KubernetesClusterCpuTileRepair.ts +147 -0
- package/Utils/Incident/IncidentFromAlerts.ts +78 -0
- package/build/dist/Models/DatabaseModels/InventoryItem.js +20 -11
- package/build/dist/Models/DatabaseModels/InventoryItem.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1795200000000-AddInventoryItemProjectEntityKeyIndex.js +165 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1795200000000-AddInventoryItemProjectEntityKeyIndex.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +2 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Services/AlertService.js +21 -33
- package/build/dist/Server/Services/AlertService.js.map +1 -1
- package/build/dist/Server/Services/IncidentAlertService.js +457 -3
- package/build/dist/Server/Services/IncidentAlertService.js.map +1 -1
- package/build/dist/Server/Services/IncidentService.js +96 -42
- package/build/dist/Server/Services/IncidentService.js.map +1 -1
- package/build/dist/Server/Services/InventoryItemService.js +31 -0
- package/build/dist/Server/Services/InventoryItemService.js.map +1 -1
- package/build/dist/Server/Services/IoTDeviceCredentialService.js +12 -5
- package/build/dist/Server/Services/IoTDeviceCredentialService.js.map +1 -1
- package/build/dist/Server/Services/MetricService.js +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceService.js +37 -40
- package/build/dist/Server/Services/ScheduledMaintenanceService.js.map +1 -1
- package/build/dist/Server/Services/UserNotificationRuleService.js +55 -51
- package/build/dist/Server/Services/UserNotificationRuleService.js.map +1 -1
- package/build/dist/Server/Services/WorkspaceNotificationSummaryService.js +42 -25
- package/build/dist/Server/Services/WorkspaceNotificationSummaryService.js.map +1 -1
- package/build/dist/Server/Types/Database/QueryHelper.js +47 -1
- package/build/dist/Server/Types/Database/QueryHelper.js.map +1 -1
- package/build/dist/Server/Utils/AI/Toolbox/MetricTools.js +13 -2
- package/build/dist/Server/Utils/AI/Toolbox/MetricTools.js.map +1 -1
- package/build/dist/Server/Utils/AI/Toolbox/ResourceTools.js +12 -1
- package/build/dist/Server/Utils/AI/Toolbox/ResourceTools.js.map +1 -1
- package/build/dist/Server/Utils/AffectedResources/LinkedAffectedResources.js +405 -0
- package/build/dist/Server/Utils/AffectedResources/LinkedAffectedResources.js.map +1 -0
- package/build/dist/Server/Utils/Alert/AlertStateChangeAuthorization.js +112 -0
- package/build/dist/Server/Utils/Alert/AlertStateChangeAuthorization.js.map +1 -0
- package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js +1 -1
- package/build/dist/Server/Utils/Inventory/InventoryOverviewAggregation.js +81 -0
- package/build/dist/Server/Utils/Inventory/InventoryOverviewAggregation.js.map +1 -0
- package/build/dist/Server/Utils/Monitor/Criteria/CompareCriteria.js +31 -0
- package/build/dist/Server/Utils/Monitor/Criteria/CompareCriteria.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.js +1 -1
- package/build/dist/Server/Utils/Monitor/Criteria/MetricMonitorCriteria.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorCriteriaEvaluator.js.map +1 -1
- package/build/dist/Server/Utils/Response.js +30 -0
- package/build/dist/Server/Utils/Response.js.map +1 -1
- package/build/dist/Server/Utils/Topology/TopologyConcurrencyLimiter.js +178 -0
- package/build/dist/Server/Utils/Topology/TopologyConcurrencyLimiter.js.map +1 -0
- package/build/dist/Server/Utils/Topology/TopologyQueries.js +884 -0
- package/build/dist/Server/Utils/Topology/TopologyQueries.js.map +1 -0
- package/build/dist/Server/Utils/Topology/TopologyRequest.js +275 -0
- package/build/dist/Server/Utils/Topology/TopologyRequest.js.map +1 -0
- package/build/dist/Server/Utils/Topology/TopologyResponseCache.js +146 -0
- package/build/dist/Server/Utils/Topology/TopologyResponseCache.js.map +1 -0
- package/build/dist/Server/Utils/Topology/TopologySql.js +688 -0
- package/build/dist/Server/Utils/Topology/TopologySql.js.map +1 -0
- package/build/dist/Types/BaseDatabase/AggregationType.js +7 -0
- package/build/dist/Types/BaseDatabase/AggregationType.js.map +1 -1
- package/build/dist/Types/Dashboard/DashboardTemplates.js +20 -7
- package/build/dist/Types/Dashboard/DashboardTemplates.js.map +1 -1
- package/build/dist/Types/Incident/IncidentAlertLink.js +17 -0
- package/build/dist/Types/Incident/IncidentAlertLink.js.map +1 -1
- package/build/dist/Types/Rum/SessionReplayCustomEvents.js.map +1 -1
- package/build/dist/Types/Rum/WebVitals.js +12 -0
- package/build/dist/Types/Rum/WebVitals.js.map +1 -1
- package/build/dist/Types/Telemetry/InventoryLiveness.js +23 -0
- package/build/dist/Types/Telemetry/InventoryLiveness.js.map +1 -1
- package/build/dist/Types/Topology/TopologyApi.js +55 -0
- package/build/dist/Types/Topology/TopologyApi.js.map +1 -0
- package/build/dist/Types/Topology/TopologyTypeRules.js +165 -0
- package/build/dist/Types/Topology/TopologyTypeRules.js.map +1 -0
- package/build/dist/UI/Components/Input/Input.js +1 -1
- package/build/dist/UI/Components/Input/Input.js.map +1 -1
- package/build/dist/Utils/Dashboard/KubernetesClusterCpuTileRepair.js +110 -0
- package/build/dist/Utils/Dashboard/KubernetesClusterCpuTileRepair.js.map +1 -0
- package/build/dist/Utils/Incident/IncidentFromAlerts.js +38 -0
- package/build/dist/Utils/Incident/IncidentFromAlerts.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Wire contract of the Topology API (POST /api/telemetry/topology/...).
|
|
3
|
+
*
|
|
4
|
+
* The Topology maps used to download the whole inventory — every item and
|
|
5
|
+
* every relationship — and build the maps in the browser, which stopped at
|
|
6
|
+
* 10,000 rows of each. These endpoints do the graph work in Postgres instead
|
|
7
|
+
* and return only what each view draws, so counts, search and connections
|
|
8
|
+
* cover the whole inventory however large it is.
|
|
9
|
+
*
|
|
10
|
+
* This is an internal contract between the server and the Dashboard bundle
|
|
11
|
+
* that shipped with it, not a public API. `formatVersion` changes whenever a
|
|
12
|
+
* response shape does, so an old bundle talking to a new server can tell the
|
|
13
|
+
* user to reload instead of misreading the payload.
|
|
14
|
+
*
|
|
15
|
+
* Every request carries `rangeStart` (ISO 8601). The server floors it to the
|
|
16
|
+
* minute, uses it for every "reported in range" decision, and echoes the value
|
|
17
|
+
* it used; the client must compute activity against the echoed value so both
|
|
18
|
+
* sides agree about which resources are active. Timestamps in responses are
|
|
19
|
+
* epoch milliseconds.
|
|
20
|
+
*/
|
|
21
|
+
export const TOPOLOGY_API_FORMAT_VERSION = 1;
|
|
22
|
+
export var TopologyApiPath;
|
|
23
|
+
(function (TopologyApiPath) {
|
|
24
|
+
TopologyApiPath["ServiceMap"] = "/telemetry/topology/service-map";
|
|
25
|
+
TopologyApiPath["Infrastructure"] = "/telemetry/topology/infrastructure";
|
|
26
|
+
TopologyApiPath["InfrastructureCollection"] = "/telemetry/topology/infrastructure/collection";
|
|
27
|
+
TopologyApiPath["InfrastructureCollectionSearch"] = "/telemetry/topology/infrastructure/collection-search";
|
|
28
|
+
TopologyApiPath["Entity"] = "/telemetry/topology/entity";
|
|
29
|
+
TopologyApiPath["EntityConnections"] = "/telemetry/topology/entity/connections";
|
|
30
|
+
/*
|
|
31
|
+
* The same sections over everything the inventory holds rather than over a
|
|
32
|
+
* range (see TopologyEntityAllTimeRequestJSON): the inventory item page's
|
|
33
|
+
* Connections card, which has no time range.
|
|
34
|
+
*/
|
|
35
|
+
TopologyApiPath["EntityAllTime"] = "/telemetry/topology/entity/all-time";
|
|
36
|
+
TopologyApiPath["EntityAllTimeConnections"] = "/telemetry/topology/entity/all-time/connections";
|
|
37
|
+
})(TopologyApiPath || (TopologyApiPath = {}));
|
|
38
|
+
export const TopologyApiLimits = {
|
|
39
|
+
MaxServiceMapEntities: 50000,
|
|
40
|
+
MaxServiceMapDependencies: 200000,
|
|
41
|
+
MaxInfrastructureNodes: 200000,
|
|
42
|
+
InlineFlatItemsPerType: 1000,
|
|
43
|
+
CollectionPageSizeDefault: 50,
|
|
44
|
+
CollectionPageSizeMax: 200,
|
|
45
|
+
MaxSearchTerms: 10,
|
|
46
|
+
MaxSearchTermLength: 100,
|
|
47
|
+
MaxCollectionSearchTypes: 100,
|
|
48
|
+
EntityDependencyRows: 100,
|
|
49
|
+
EntityOtherRows: 25,
|
|
50
|
+
EntityConnectionsPageSizeMax: 200,
|
|
51
|
+
EntityConnectionScanLimit: 100000,
|
|
52
|
+
MaxMapRangeStartAgeDays: 400,
|
|
53
|
+
};
|
|
54
|
+
export const TOPOLOGY_CONNECTION_SECTIONS = ["calls", "calledBy", "runsOn", "related"];
|
|
55
|
+
//# sourceMappingURL=TopologyApi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TopologyApi.js","sourceRoot":"","sources":["../../../../Types/Topology/TopologyApi.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,CAAC,MAAM,2BAA2B,GAAW,CAAC,CAAC;AAErD,MAAM,CAAN,IAAY,eAcX;AAdD,WAAY,eAAe;IACzB,iEAA8C,CAAA;IAC9C,wEAAqD,CAAA;IACrD,6FAA0E,CAAA;IAC1E,0GAAuF,CAAA;IACvF,wDAAqC,CAAA;IACrC,+EAA4D,CAAA;IAC5D;;;;OAIG;IACH,wEAAqD,CAAA;IACrD,+FAA4E,CAAA;AAC9E,CAAC,EAdW,eAAe,KAAf,eAAe,QAc1B;AAED,MAAM,CAAC,MAAM,iBAAiB,GAuC1B;IACF,qBAAqB,EAAE,KAAM;IAC7B,yBAAyB,EAAE,MAAO;IAClC,sBAAsB,EAAE,MAAO;IAC/B,sBAAsB,EAAE,IAAK;IAC7B,yBAAyB,EAAE,EAAE;IAC7B,qBAAqB,EAAE,GAAG;IAC1B,cAAc,EAAE,EAAE;IAClB,mBAAmB,EAAE,GAAG;IACxB,wBAAwB,EAAE,GAAG;IAC7B,oBAAoB,EAAE,GAAG;IACzB,eAAe,EAAE,EAAE;IACnB,4BAA4B,EAAE,GAAG;IACjC,yBAAyB,EAAE,MAAO;IAClC,uBAAuB,EAAE,GAAG;CAC7B,CAAC;AAsEF,MAAM,CAAC,MAAM,4BAA4B,GACvC,CAAC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import EntityRelationshipType from "../Telemetry/EntityRelationshipType";
|
|
2
|
+
import EntityType from "../Telemetry/EntityType";
|
|
3
|
+
/*
|
|
4
|
+
* The rules that shape the Topology maps, shared by the server (which reduces
|
|
5
|
+
* the inventory graph in SQL) and the Dashboard (which builds the maps from
|
|
6
|
+
* the reduced data). Keeping them in one place is what lets the server hand
|
|
7
|
+
* the browser a few rows per resource instead of every relationship and still
|
|
8
|
+
* produce exactly the tree the Dashboard would have built from all of them.
|
|
9
|
+
*/
|
|
10
|
+
/*
|
|
11
|
+
* Types the Service Map owns. They describe software and its dependencies,
|
|
12
|
+
* not where anything runs, so they never become Infrastructure rows.
|
|
13
|
+
*/
|
|
14
|
+
export const TOPOLOGY_APPLICATION_TYPES = new Set([
|
|
15
|
+
EntityType.Service,
|
|
16
|
+
EntityType.ServiceInstance,
|
|
17
|
+
EntityType.TelemetrySdk,
|
|
18
|
+
EntityType.Database,
|
|
19
|
+
EntityType.RemoteService,
|
|
20
|
+
EntityType.Process,
|
|
21
|
+
]);
|
|
22
|
+
/** Types that may nest inside a structural container. */
|
|
23
|
+
export const NESTABLE_CHILD_TYPES = new Set([
|
|
24
|
+
EntityType.Container,
|
|
25
|
+
EntityType.Process,
|
|
26
|
+
EntityType.KubernetesPod,
|
|
27
|
+
EntityType.KubernetesNode,
|
|
28
|
+
EntityType.KubernetesNamespace,
|
|
29
|
+
EntityType.KubernetesDeployment,
|
|
30
|
+
EntityType.ProxmoxNode,
|
|
31
|
+
EntityType.ProxmoxGuest,
|
|
32
|
+
EntityType.VMwareCluster,
|
|
33
|
+
EntityType.VMwareHost,
|
|
34
|
+
EntityType.VMwareVirtualMachine,
|
|
35
|
+
EntityType.VMwareDatastore,
|
|
36
|
+
EntityType.DockerSwarmNode,
|
|
37
|
+
EntityType.DockerSwarmService,
|
|
38
|
+
EntityType.DockerSwarmTask,
|
|
39
|
+
]);
|
|
40
|
+
/*
|
|
41
|
+
* Valid structural containers, higher = more specific. Doubles as the
|
|
42
|
+
* allow-list of parent types: a candidate whose parent type is absent here
|
|
43
|
+
* (e.g. a Service) is rejected before priority is compared.
|
|
44
|
+
*/
|
|
45
|
+
export const CONTAINER_SPECIFICITY = {
|
|
46
|
+
[EntityType.KubernetesCluster]: 0,
|
|
47
|
+
[EntityType.ProxmoxCluster]: 0,
|
|
48
|
+
/*
|
|
49
|
+
* vSphere nests vCenter ⊃ cluster ⊃ ESXi host ⊃ VM; datastores sit
|
|
50
|
+
* directly under the vCenter. The cluster is optional (standalone hosts
|
|
51
|
+
* hang straight off the vCenter), so the host is more specific than the
|
|
52
|
+
* cluster but both may parent directly to the vCenter.
|
|
53
|
+
*/
|
|
54
|
+
[EntityType.VMwareVCenter]: 0,
|
|
55
|
+
[EntityType.VMwareCluster]: 1,
|
|
56
|
+
[EntityType.CephCluster]: 0,
|
|
57
|
+
[EntityType.DockerSwarmCluster]: 0,
|
|
58
|
+
[EntityType.Host]: 1,
|
|
59
|
+
[EntityType.KubernetesNamespace]: 1,
|
|
60
|
+
[EntityType.KubernetesNode]: 2,
|
|
61
|
+
[EntityType.KubernetesDeployment]: 2,
|
|
62
|
+
[EntityType.ProxmoxNode]: 2,
|
|
63
|
+
[EntityType.VMwareHost]: 2,
|
|
64
|
+
[EntityType.DockerSwarmNode]: 2,
|
|
65
|
+
[EntityType.KubernetesPod]: 3,
|
|
66
|
+
[EntityType.ProxmoxGuest]: 3,
|
|
67
|
+
[EntityType.VMwareVirtualMachine]: 3,
|
|
68
|
+
[EntityType.DockerSwarmTask]: 3,
|
|
69
|
+
[EntityType.Container]: 4,
|
|
70
|
+
};
|
|
71
|
+
/* Which relationship expresses containment best: part-of > runs-on > member-of. */
|
|
72
|
+
export const NESTING_RELATIONSHIP_PRIORITY = {
|
|
73
|
+
[EntityRelationshipType.PartOf]: 3,
|
|
74
|
+
[EntityRelationshipType.RunsOn]: 2,
|
|
75
|
+
[EntityRelationshipType.MemberOf]: 1,
|
|
76
|
+
};
|
|
77
|
+
/* Replicas worth collapsing: leaf resources that come in fleets. */
|
|
78
|
+
export const REPLICA_GROUPABLE_TYPES = new Set([
|
|
79
|
+
EntityType.Host,
|
|
80
|
+
EntityType.KubernetesPod,
|
|
81
|
+
EntityType.Container,
|
|
82
|
+
EntityType.DockerSwarmTask,
|
|
83
|
+
EntityType.ProxmoxGuest,
|
|
84
|
+
EntityType.VMwareVirtualMachine,
|
|
85
|
+
]);
|
|
86
|
+
/* service → where it runs (service→host is hosted-on, service→pod runs-on). */
|
|
87
|
+
export const PLACEMENT_RELATIONSHIP_TYPES = new Set([
|
|
88
|
+
EntityRelationshipType.RunsOn,
|
|
89
|
+
EntityRelationshipType.HostedOn,
|
|
90
|
+
]);
|
|
91
|
+
/*
|
|
92
|
+
* The attributes the Service Map reads to label a node ("Node.js",
|
|
93
|
+
* "PostgreSQL"), in the order it tries them. The server ships only these, so
|
|
94
|
+
* the list lives here rather than beside the reader.
|
|
95
|
+
*/
|
|
96
|
+
export const SERVICE_MAP_DETAIL_ATTRIBUTE_KEYS = [
|
|
97
|
+
"telemetry.sdk.language",
|
|
98
|
+
"db.system.name",
|
|
99
|
+
"network.protocol.name",
|
|
100
|
+
"messaging.system",
|
|
101
|
+
];
|
|
102
|
+
/*
|
|
103
|
+
* Orders two keys by Unicode code point, which is the order Postgres gives
|
|
104
|
+
* `COLLATE "C"` on a UTF-8 database (UTF-8 bytes sort like code points). The
|
|
105
|
+
* server breaks ranking ties that way, so wherever the Dashboard must pick
|
|
106
|
+
* the same winner it compares with this rather than with `<`.
|
|
107
|
+
*
|
|
108
|
+
* JavaScript's `<` compares UTF-16 code units. The two orders agree
|
|
109
|
+
* everywhere except where a character beyond U+FFFF (stored as a surrogate
|
|
110
|
+
* pair, U+D800-U+DFFF) meets one in U+E000-U+FFFF: as code units the
|
|
111
|
+
* surrogate is smaller, as code points it is larger. Keys made only of
|
|
112
|
+
* characters up to U+FFFF therefore compare exactly as `<` compares them.
|
|
113
|
+
*/
|
|
114
|
+
export function compareCodePoints(a, b) {
|
|
115
|
+
if (a === b) {
|
|
116
|
+
return 0;
|
|
117
|
+
}
|
|
118
|
+
const length = Math.min(a.length, b.length);
|
|
119
|
+
for (let index = 0; index < length; index++) {
|
|
120
|
+
const left = a.charCodeAt(index);
|
|
121
|
+
const right = b.charCodeAt(index);
|
|
122
|
+
if (left === right) {
|
|
123
|
+
continue;
|
|
124
|
+
}
|
|
125
|
+
if (left >= 0xd800 && right >= 0xd800) {
|
|
126
|
+
const leftIsSurrogate = left <= 0xdfff;
|
|
127
|
+
const rightIsSurrogate = right <= 0xdfff;
|
|
128
|
+
if (leftIsSurrogate !== rightIsSurrogate) {
|
|
129
|
+
/* The half of a character beyond U+FFFF outranks U+E000-U+FFFF. */
|
|
130
|
+
return leftIsSurrogate ? 1 : -1;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return left < right ? -1 : 1;
|
|
134
|
+
}
|
|
135
|
+
/* One is a prefix of the other: the shorter sorts first. */
|
|
136
|
+
return a.length < b.length ? -1 : 1;
|
|
137
|
+
}
|
|
138
|
+
export function isTopologyInfrastructureType(entityType) {
|
|
139
|
+
return (Boolean(entityType) &&
|
|
140
|
+
entityType !== EntityType.Service &&
|
|
141
|
+
!TOPOLOGY_APPLICATION_TYPES.has(entityType));
|
|
142
|
+
}
|
|
143
|
+
/*
|
|
144
|
+
* Structural infrastructure types can take part in the tree: they nest, hold
|
|
145
|
+
* other resources, or are grouped with their replicas. Everything else that is
|
|
146
|
+
* infrastructure (network devices, IoT devices, cloud resources, manually
|
|
147
|
+
* registered appliances, types this version does not know) is flat: it never
|
|
148
|
+
* has a parent, never contains anything, and nothing groups it. Flat types are
|
|
149
|
+
* also the ones whose volume is not bounded by the discovery budgets, so the
|
|
150
|
+
* server summarizes a large flat type instead of shipping every row.
|
|
151
|
+
*/
|
|
152
|
+
export function isStructuralInfrastructureType(entityType) {
|
|
153
|
+
if (!isTopologyInfrastructureType(entityType)) {
|
|
154
|
+
return false;
|
|
155
|
+
}
|
|
156
|
+
const type = entityType;
|
|
157
|
+
return (NESTABLE_CHILD_TYPES.has(type) ||
|
|
158
|
+
CONTAINER_SPECIFICITY[type] !== undefined ||
|
|
159
|
+
REPLICA_GROUPABLE_TYPES.has(type));
|
|
160
|
+
}
|
|
161
|
+
export function isFlatInfrastructureType(entityType) {
|
|
162
|
+
return (isTopologyInfrastructureType(entityType) &&
|
|
163
|
+
!isStructuralInfrastructureType(entityType));
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=TopologyTypeRules.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TopologyTypeRules.js","sourceRoot":"","sources":["../../../../Types/Topology/TopologyTypeRules.ts"],"names":[],"mappings":"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"}
|
|
@@ -135,7 +135,7 @@ const Input = (props) => {
|
|
|
135
135
|
return (React.createElement(React.Fragment, null,
|
|
136
136
|
React.createElement("div", { className: props.outerDivClassName ||
|
|
137
137
|
`relative mt-2 mb-1 rounded-md shadow-sm w-full` },
|
|
138
|
-
React.createElement("input", { autoFocus: props.autoFocus, ref: ref, id: props.id, onFocus: props.onFocus, onClick: props.onClick, "data-testid": props.dataTestId, spellCheck: !props.disableSpellCheck, autoComplete: props.autoComplete, "aria-label": props.ariaLabel, "aria-labelledby": props.ariaLabelledby, "aria-haspopup": props.ariaHasPopup, "aria-expanded": props.ariaExpanded, "aria-controls": props.ariaControls, "aria-invalid": props.error || props.ariaInvalid ? "true" : undefined, "aria-describedby": props.error ? "input-error-message" : props.ariaDescribedby, onChange: (e) => {
|
|
138
|
+
React.createElement("input", { autoFocus: props.autoFocus, ref: ref, id: props.id, onFocus: props.onFocus, onClick: props.onClick, "data-testid": props.dataTestId, spellCheck: !props.disableSpellCheck, autoComplete: props.autoComplete, "aria-label": props.ariaLabel, "aria-labelledby": props.ariaLabelledby, "aria-haspopup": props.ariaHasPopup, "aria-expanded": props.ariaExpanded, "aria-controls": props.ariaControls, role: props.role, "aria-autocomplete": props.ariaAutoComplete, "aria-activedescendant": props.ariaActiveDescendant, "aria-invalid": props.error || props.ariaInvalid ? "true" : undefined, "aria-describedby": props.error ? "input-error-message" : props.ariaDescribedby, onChange: (e) => {
|
|
139
139
|
const value = e.target.value;
|
|
140
140
|
if ((props.type === InputType.DATE ||
|
|
141
141
|
props.type === InputType.DATETIME_LOCAL) &&
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Input.js","sourceRoot":"","sources":["../../../../../UI/Components/Input/Input.tsx"],"names":[],"mappings":"AAAA,WAAW;AACX,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,iBAAiB,MAAM,yBAAyB,CAAC;AACxD,OAAO,IAAI,MAAM,cAAc,CAAC;AAChC,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAChD,OAAO,QAAQ,MAAM,8BAA8B,CAAC;AACpD,OAAO,KAAK,EAAE,EAGZ,SAAS,EACT,MAAM,EACN,QAAQ,GACT,MAAM,OAAO,CAAC;AAEf,MAAM,CAAN,IAAY,SAQX;AARD,WAAY,SAAS;IACnB,0BAAa,CAAA;IACb,kCAAqB,CAAA;IACrB,8BAAiB,CAAA;IACjB,0BAAa,CAAA;IACb,8CAAiC,CAAA;IACjC,wBAAW,CAAA;IACX,0BAAa,CAAA;AACf,CAAC,EARW,SAAS,KAAT,SAAS,QAQpB;
|
|
1
|
+
{"version":3,"file":"Input.js","sourceRoot":"","sources":["../../../../../UI/Components/Input/Input.tsx"],"names":[],"mappings":"AAAA,WAAW;AACX,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,iBAAiB,MAAM,yBAAyB,CAAC;AACxD,OAAO,IAAI,MAAM,cAAc,CAAC;AAChC,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAChD,OAAO,QAAQ,MAAM,8BAA8B,CAAC;AACpD,OAAO,KAAK,EAAE,EAGZ,SAAS,EACT,MAAM,EACN,QAAQ,GACT,MAAM,OAAO,CAAC;AAEf,MAAM,CAAN,IAAY,SAQX;AARD,WAAY,SAAS;IACnB,0BAAa,CAAA;IACb,kCAAqB,CAAA;IACrB,8BAAiB,CAAA;IACjB,0BAAa,CAAA;IACb,8CAAiC,CAAA;IACjC,wBAAW,CAAA;IACX,0BAAa,CAAA;AACf,CAAC,EARW,SAAS,KAAT,SAAS,QAQpB;AAkDD,MAAM,KAAK,GAAsC,CAC/C,KAAqB,EACP,EAAE;IAChB,MAAM,EAAE,eAAe,EAAE,GAAG,iBAAiB,EAAE,CAAC;IAChD,IAAI,SAAS,GAAW,EAAE,CAAC;IAE3B,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;QACrB,SAAS;YACP,6OAA6O,CAAC;IAClP,CAAC;SAAM,CAAC;QACN,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IAC9B,CAAC;IAED,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,SAAS;YACP,mHAAmH,CAAC;IACxH,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnB,SAAS,IAAI,+CAA+C,CAAC;IAC/D,CAAC;IAED,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,EAAE,CAAC,CAAC;IAEtD;;;;OAIG;IACH,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC,CAAC;IACrE,MAAM,GAAG,GACP,MAAM,CAA0B,IAAI,CAAC,CAAC;IAExC,MAAM,WAAW,GACf,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,cAAc,CAAC;IAE3E,SAAS,CAAC,GAAG,EAAE;QACb,IACE,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI;YAC7B,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,cAAc,EACvC,CAAC;YACD,IAAI,KAAK,IAAK,KAAiB,YAAY,IAAI,EAAE,CAAC;gBAChD,IAAI,UAAU,GAAW,EAAE,CAAC;gBAC5B,IAAI,CAAC;oBACH,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,cAAc,EAAE,CAAC;wBAC5C,UAAU,GAAG,aAAa,CAAC,qBAAqB,CAAC,KAAY,CAAC,CAAC;oBACjE,CAAC;yBAAM,CAAC;wBACN,UAAU,GAAG,aAAa,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;oBAC3D,CAAC;gBACH,CAAC;gBAAC,OAAO,CAAM,EAAE,CAAC;oBAChB,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAClB,CAAC;gBACD,mBAAmB,CAAC,UAAU,CAAC,CAAC;YAClC,CAAC;iBAAM,IACL,KAAK;gBACJ,KAAa,CAAC,QAAQ;gBACvB,CAAE,KAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,EAC/B,CAAC;gBACD,gCAAgC;gBAChC,MAAM,IAAI,GAAS,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBACnD,IAAI,UAAU,GAAW,EAAE,CAAC;gBAC5B,IAAI,CAAC;oBACH,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,cAAc,EAAE,CAAC;wBAC5C,UAAU,GAAG,aAAa,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC;oBACzD,CAAC;yBAAM,CAAC;wBACN,UAAU,GAAG,aAAa,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC;oBAC1D,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAQ,EAAE,CAAC;oBAClB,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBACpB,CAAC;gBACD,mBAAmB,CAAC,UAAU,CAAC,CAAC;YAClC,CAAC;iBAAM,IACL,CAAC,KAAK;gBACN,CAAE,KAAa,CAAC,QAAQ,IAAI,CAAE,KAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAC5D,CAAC;gBACD,mBAAmB,CAAC,EAAE,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ;;;;;;;;;;;;;;;;;OAiBG;IACH,MAAM,YAAY,GAAW,WAAW;QACtC,CAAC,CAAC,gBAAgB;QAClB,CAAC,CAAE,KAAgB,IAAI,EAAE,CAAC;IAE5B,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,KAAK,GAA4B,GAAG,CAAC,OAAO,CAAC;QAEnD;;;;WAIG;QACH,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,YAAY,EAAE,CAAC;YAC1C,KAAK,CAAC,KAAK,GAAG,YAAY,CAAC;QAC7B,CAAC;IACH,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC,CAAC;IAExB,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACvB,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC/B,CAAC;QAED,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACvB,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;IAEzB,SAAS,CAAC,GAAG,EAAE;QACb,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;IACjE,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAElB,OAAO,CACL;QACE,6BACE,SAAS,EACP,KAAK,CAAC,iBAAiB;gBACvB,gDAAgD;YAGlD,+BACE,SAAS,EAAE,KAAK,CAAC,SAAS,EAC1B,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,KAAK,CAAC,EAAE,EACZ,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,OAAO,EAAE,KAAK,CAAC,OAAO,iBACT,KAAK,CAAC,UAAU,EAC7B,UAAU,EAAE,CAAC,KAAK,CAAC,iBAAiB,EACpC,YAAY,EAAE,KAAK,CAAC,YAAY,gBACpB,KAAK,CAAC,SAAS,qBACV,KAAK,CAAC,cAAc,mBACtB,KAAK,CAAC,YAAY,mBAClB,KAAK,CAAC,YAAY,mBAClB,KAAK,CAAC,YAAY,EACjC,IAAI,EAAE,KAAK,CAAC,IAAI,uBACG,KAAK,CAAC,gBAAgB,2BAClB,KAAK,CAAC,oBAAoB,kBACnC,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,sBAEjE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,KAAK,CAAC,eAAe,EAE7D,QAAQ,EAAE,CAAC,CAAsC,EAAE,EAAE;oBACnD,MAAM,KAAK,GAAkB,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;oBAE5C,IACE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI;wBAC5B,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,cAAc,CAAC;wBAC1C,KAAK,EACL,CAAC;wBACD;;;;2BAIG;wBACH,MAAM,IAAI,GAAS,aAAa,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;wBAChE,MAAM,UAAU,GAAW,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;wBACxD,QAAQ,CAAC,UAAU,CAAC,CAAC;wBACrB,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;4BACnB,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;wBAC7B,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,QAAQ,CAAC,KAAK,CAAC,CAAC;wBAChB,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;4BACnB,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;wBACxB,CAAC;oBACH,CAAC;gBACH,CAAC,EACD,QAAQ,EAAE,KAAK,CAAC,QAAQ,EACxB,SAAS,EACP,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,SAAS;oBACnC,CAAC,CAAC,CAAC,KAA4C,EAAE,EAAE;;wBAC/C,MAAA,KAAK,CAAC,SAAS,sDAAG,KAAK,CAAC,CAAC;wBAEzB;;;2BAGG;wBACH,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;4BAC3B,OAAO;wBACT,CAAC;wBAED,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;4BAC1B,MAAA,KAAK,CAAC,YAAY,qDAAI,CAAC;wBACzB,CAAC;oBACH,CAAC;oBACH,CAAC,CAAC,SAAS,EAEf,QAAQ,EAAE,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,QAAQ,IAAI,KAAK,EACnD,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,MAAM,EAC1B,IAAI,EACF,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,cAAc;oBACvC,KAAK,CAAC,sBAAsB;oBAC1B,CAAC,CAAC,GAAG;oBACL,CAAC,CAAC,SAAS,EAEf,WAAW,EAAE,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,EAC/C,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,GAAG,EAAE;oBACX,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;wBACjB,KAAK,CAAC,MAAM,EAAE,CAAC;oBACjB,CAAC;gBACH,CAAC,GACD;YAED,KAAK,CAAC,KAAK,IAAI,CACd,6BACE,SAAS,EAAC,uEAAuE,iBACrE,MAAM;gBAElB,oBAAC,IAAI,IAAC,IAAI,EAAE,QAAQ,CAAC,UAAU,EAAE,SAAS,EAAC,sBAAsB,GAAG,CAChE,CACP,CACG;QAEL,KAAK,CAAC,KAAK,IAAI,CACd,2BACE,EAAE,EAAC,qBAAqB,iBACZ,eAAe,EAC3B,SAAS,EAAC,2BAA2B,EACrC,IAAI,EAAC,OAAO,IAEX,KAAK,CAAC,KAAK,CACV,CACL,CACA,CACJ,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,KAAK,CAAC"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import DashboardComponentType from "../../Types/Dashboard/DashboardComponentType";
|
|
2
|
+
import MetricsAggregationType from "../../Types/Metrics/MetricsAggregationType";
|
|
3
|
+
/*
|
|
4
|
+
* Repairs the "Cluster CPU (cores in use)" tile on Kubernetes dashboards
|
|
5
|
+
* created before the template stopped summing a gauge.
|
|
6
|
+
*
|
|
7
|
+
* The tile was a Value widget over k8s.node.cpu.usage with `Sum`. The server
|
|
8
|
+
* sums every node's reading in each time bucket, then the Value widget sums
|
|
9
|
+
* the buckets, so the number scales with the scrape count and the window
|
|
10
|
+
* length: three nodes on 1.5 cores each read ~540 over the default hour
|
|
11
|
+
* instead of 4.5. The template now ships the busiest node's peak (`Max`);
|
|
12
|
+
* templates are COPIED into a dashboard when it is created, so dashboards
|
|
13
|
+
* that already exist keep the old tile until this rewrites them.
|
|
14
|
+
*
|
|
15
|
+
* Only the template's exact signature is touched: a Value widget with the
|
|
16
|
+
* template's title, metric and `Sum`. A tile the user renamed or re-aggregated
|
|
17
|
+
* is theirs and stays as they left it. Everything else on the tile — its
|
|
18
|
+
* position, thresholds, trend direction, any filters the user added — is kept.
|
|
19
|
+
*
|
|
20
|
+
* React-free and import-light so plain node tests load it.
|
|
21
|
+
*/
|
|
22
|
+
export const KUBERNETES_NODE_CPU_USAGE_METRIC = "k8s.node.cpu.usage";
|
|
23
|
+
export const LEGACY_CLUSTER_CPU_TILE_TITLE = "Cluster CPU (cores in use)";
|
|
24
|
+
export const BUSIEST_NODE_CPU_TILE_TITLE = "Busiest Node CPU (cores, peak)";
|
|
25
|
+
function asObject(value) {
|
|
26
|
+
if (value && typeof value === "object" && !Array.isArray(value)) {
|
|
27
|
+
return value;
|
|
28
|
+
}
|
|
29
|
+
return undefined;
|
|
30
|
+
}
|
|
31
|
+
// The tile's filterData, where the fetch layer reads metric and aggregation.
|
|
32
|
+
function getFilterData(component) {
|
|
33
|
+
const args = asObject(component["arguments"]);
|
|
34
|
+
const metricQueryConfig = asObject(args === null || args === void 0 ? void 0 : args["metricQueryConfig"]);
|
|
35
|
+
const metricQueryData = asObject(metricQueryConfig === null || metricQueryConfig === void 0 ? void 0 : metricQueryConfig["metricQueryData"]);
|
|
36
|
+
return asObject(metricQueryData === null || metricQueryData === void 0 ? void 0 : metricQueryData["filterData"]);
|
|
37
|
+
}
|
|
38
|
+
export default class KubernetesClusterCpuTileRepair {
|
|
39
|
+
/*
|
|
40
|
+
* The legacy tile's signature as a Postgres jsonb containment (`@>`)
|
|
41
|
+
* document. Containment against an array matches an element that holds
|
|
42
|
+
* ALL of these keys, so a dashboard only matches when one component
|
|
43
|
+
* carries the title, metric and aggregation together. The
|
|
44
|
+
* misspelled `aggegationType` is the key the fetch layer reads.
|
|
45
|
+
*/
|
|
46
|
+
static getLegacyTileContainment() {
|
|
47
|
+
return {
|
|
48
|
+
components: [
|
|
49
|
+
{
|
|
50
|
+
componentType: DashboardComponentType.Value,
|
|
51
|
+
arguments: {
|
|
52
|
+
title: LEGACY_CLUSTER_CPU_TILE_TITLE,
|
|
53
|
+
metricQueryConfig: {
|
|
54
|
+
metricQueryData: {
|
|
55
|
+
filterData: {
|
|
56
|
+
metricName: KUBERNETES_NODE_CPU_USAGE_METRIC,
|
|
57
|
+
aggegationType: MetricsAggregationType.Sum,
|
|
58
|
+
},
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
],
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
// The same signature as getLegacyTileContainment, for one component.
|
|
67
|
+
static isLegacyTile(component) {
|
|
68
|
+
const componentObject = asObject(component);
|
|
69
|
+
if (!componentObject ||
|
|
70
|
+
componentObject["componentType"] !== DashboardComponentType.Value) {
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
const args = asObject(componentObject["arguments"]);
|
|
74
|
+
const filterData = getFilterData(componentObject);
|
|
75
|
+
return ((args === null || args === void 0 ? void 0 : args["title"]) === LEGACY_CLUSTER_CPU_TILE_TITLE &&
|
|
76
|
+
(filterData === null || filterData === void 0 ? void 0 : filterData["metricName"]) === KUBERNETES_NODE_CPU_USAGE_METRIC &&
|
|
77
|
+
(filterData === null || filterData === void 0 ? void 0 : filterData["aggegationType"]) === MetricsAggregationType.Sum);
|
|
78
|
+
}
|
|
79
|
+
/*
|
|
80
|
+
* Returns a repaired COPY of a stored dashboardViewConfig, or null when it
|
|
81
|
+
* holds no legacy tile — so a caller writes only when something changed,
|
|
82
|
+
* and a second run is a no-op. The input is never mutated.
|
|
83
|
+
*/
|
|
84
|
+
static repair(dashboardViewConfig) {
|
|
85
|
+
const configObject = asObject(dashboardViewConfig);
|
|
86
|
+
const components = configObject === null || configObject === void 0 ? void 0 : configObject["components"];
|
|
87
|
+
if (!configObject || !Array.isArray(components)) {
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
if (!components.some(KubernetesClusterCpuTileRepair.isLegacyTile)) {
|
|
91
|
+
return null;
|
|
92
|
+
}
|
|
93
|
+
// A stored config is plain jsonb, so a JSON round trip is a full copy.
|
|
94
|
+
const config = JSON.parse(JSON.stringify(configObject));
|
|
95
|
+
let repairedTileCount = 0;
|
|
96
|
+
for (const component of config["components"]) {
|
|
97
|
+
if (!KubernetesClusterCpuTileRepair.isLegacyTile(component)) {
|
|
98
|
+
continue;
|
|
99
|
+
}
|
|
100
|
+
const componentObject = component;
|
|
101
|
+
componentObject["arguments"]["title"] =
|
|
102
|
+
BUSIEST_NODE_CPU_TILE_TITLE;
|
|
103
|
+
getFilterData(componentObject)["aggegationType"] =
|
|
104
|
+
MetricsAggregationType.Max;
|
|
105
|
+
repairedTileCount++;
|
|
106
|
+
}
|
|
107
|
+
return { config, repairedTileCount };
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=KubernetesClusterCpuTileRepair.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KubernetesClusterCpuTileRepair.js","sourceRoot":"","sources":["../../../../Utils/Dashboard/KubernetesClusterCpuTileRepair.ts"],"names":[],"mappings":"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"}
|
|
@@ -136,6 +136,44 @@ export default class IncidentFromAlerts {
|
|
|
136
136
|
const target = sortedIncidentSeverities[Math.min(rank, sortedIncidentSeverities.length - 1)];
|
|
137
137
|
return target ? target.id : null;
|
|
138
138
|
}
|
|
139
|
+
/*
|
|
140
|
+
* Which of the alerts acknowledging would change. States are compared by
|
|
141
|
+
* order, like the server does: an alert in a custom state after
|
|
142
|
+
* Acknowledged, or resolved, has been acknowledged already. An alert whose
|
|
143
|
+
* state is not among the given states is counted as not acknowledged - the
|
|
144
|
+
* server skips it if it turns out to be. Null when the project has no
|
|
145
|
+
* Acknowledged state with an order (nothing could be acknowledged), so the
|
|
146
|
+
* page does not offer it at all.
|
|
147
|
+
*/
|
|
148
|
+
static getAlertsToAcknowledge(data) {
|
|
149
|
+
const acknowledgedState = data.alertStates.find((state) => {
|
|
150
|
+
return state.isAcknowledgedState === true;
|
|
151
|
+
});
|
|
152
|
+
if (!acknowledgedState || typeof acknowledgedState.order !== "number") {
|
|
153
|
+
return null;
|
|
154
|
+
}
|
|
155
|
+
const acknowledgedOrder = acknowledgedState.order;
|
|
156
|
+
const result = {
|
|
157
|
+
alertIds: [],
|
|
158
|
+
alreadyAcknowledgedCount: 0,
|
|
159
|
+
};
|
|
160
|
+
for (const alert of data.alerts) {
|
|
161
|
+
const currentState = alert.currentAlertStateId
|
|
162
|
+
? data.alertStates.find((state) => {
|
|
163
|
+
return (state.id.trim().toLowerCase() ===
|
|
164
|
+
alert.currentAlertStateId.trim().toLowerCase());
|
|
165
|
+
})
|
|
166
|
+
: undefined;
|
|
167
|
+
if (currentState &&
|
|
168
|
+
typeof currentState.order === "number" &&
|
|
169
|
+
currentState.order >= acknowledgedOrder) {
|
|
170
|
+
result.alreadyAcknowledgedCount++;
|
|
171
|
+
continue;
|
|
172
|
+
}
|
|
173
|
+
result.alertIds.push(alert.id);
|
|
174
|
+
}
|
|
175
|
+
return result;
|
|
176
|
+
}
|
|
139
177
|
/* "Alert #42" / "Alert ALT-42", or "Alert" when the number is unknown. */
|
|
140
178
|
static getAlertReference(alert) {
|
|
141
179
|
if (alert.alertNumberWithPrefix) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"IncidentFromAlerts.js","sourceRoot":"","sources":["../../../../Utils/Incident/IncidentFromAlerts.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,mCAAmC,EAAE,MAAM,wCAAwC,CAAC;AA2E7F;;;;GAIG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAEvC,CAAC,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;AAU9E,MAAM,0BAA0B,GAAkC;IAChE,UAAU;IACV,GAAG,8BAA8B;CAClC,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,kBAAkB;IACrC;;;;OAIG;IACI,MAAM,CAAC,uBAAuB,CACnC,KAAgC;QAEhC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;QAC/C,CAAC;QAED,MAAM,QAAQ,GAAkB,EAAE,CAAC;QAEnC,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,MAAM,EAAE,GAAW,KAAK,CAAC,IAAI,EAAE,CAAC;YAEhC,IAAI,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;gBAC9D,SAAS;YACX,CAAC;YAED,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpB,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,mCAAmC,CAAC;YAChE,YAAY,EAAE,QAAQ,CAAC,MAAM,GAAG,mCAAmC;SACpE,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,qBAAqB,CACjC,UAAoB;QAEpB,OAAO,UAAU;aACd,GAAG,CAAC,CAAC,QAAW,EAAE,KAAa,EAAE,EAAE;YAClC,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAC7B,CAAC,CAAC;aACD,IAAI,CACH,CACE,CAAiC,EACjC,CAAiC,EACzB,EAAE;YACV,MAAM,SAAS,GAAY,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,KAAK,QAAQ,CAAC;YAChE,MAAM,SAAS,GAAY,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,KAAK,QAAQ,CAAC;YAEhE,IAAI,SAAS,IAAI,SAAS,EAAE,CAAC;gBAC3B,MAAM,UAAU,GACb,CAAC,CAAC,QAAQ,CAAC,KAAgB,GAAI,CAAC,CAAC,QAAQ,CAAC,KAAgB,CAAC;gBAE9D,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;oBACrB,OAAO,UAAU,CAAC;gBACpB,CAAC;gBAED,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;YAC3B,CAAC;YAED,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;gBAC5B,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5B,CAAC;YAED,OAAO,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;QAC3B,CAAC,CACF;aACA,GAAG,CAAC,CAAC,KAAqC,EAAK,EAAE;YAChD,OAAO,KAAK,CAAC,QAAQ,CAAC;QACxB,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;OAGG;IACI,MAAM,CAAC,eAAe,CAC3B,UAAqC,EACrC,UAAqC;QAErC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,IAAI,GAAW,IAAI,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,SAAS,CACnE,CAAC,QAA4B,EAAE,EAAE;YAC/B,OAAO,QAAQ,CAAC,EAAE,KAAK,UAAU,CAAC;QACpC,CAAC,CACF,CAAC;QAEF,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,kBAAkB,CAC9B,MAAsC,EACtC,eAA0C;QAE1C,IAAI,UAAU,GAAmC,IAAI,CAAC;QACtD,IAAI,cAAc,GAAkB,IAAI,CAAC;QAEzC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAkB,IAAI,CAAC,eAAe,CAC9C,KAAK,CAAC,eAAe,EACrB,eAAe,CAChB,CAAC;YAEF,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,UAAU,GAAG,KAAK,CAAC;gBACnB,cAAc,GAAG,IAAI,CAAC;gBACtB,SAAS;YACX,CAAC;YAED,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;gBAClB,SAAS;YACX,CAAC;YAED,IAAI,cAAc,KAAK,IAAI,IAAI,IAAI,GAAG,cAAc,EAAE,CAAC;gBACrD,UAAU,GAAG,KAAK,CAAC;gBACnB,cAAc,GAAG,IAAI,CAAC;YACxB,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;;;;OAMG;IACI,MAAM,CAAC,kCAAkC,CAAC,IAIhD;QACC,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClE,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,aAAa,GACjB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,QAA4B,EAAE,EAAE;YACzD,OAAO,QAAQ,CAAC,EAAE,KAAK,IAAI,CAAC,eAAe,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEL,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,iBAAiB,GAAW,CAAC,aAAa,CAAC,IAAI,IAAI,EAAE,CAAC;aACzD,IAAI,EAAE;aACN,WAAW,EAAE,CAAC;QAEjB,IAAI,iBAAiB,EAAE,CAAC;YACtB,MAAM,QAAQ,GACZ,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,QAA4B,EAAE,EAAE;gBAC5D,OAAO,CACL,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,iBAAiB,CACjE,CAAC;YACJ,CAAC,CAAC,CAAC;YAEL,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO,QAAQ,CAAC,EAAE,CAAC;YACrB,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAAkB,IAAI,CAAC,eAAe,CAC9C,aAAa,CAAC,EAAE,EAChB,IAAI,CAAC,eAAe,CACrB,CAAC;QAEF,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;YAClB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,wBAAwB,GAC5B,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAEtD,MAAM,MAAM,GACV,wBAAwB,CACtB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,wBAAwB,CAAC,MAAM,GAAG,CAAC,CAAC,CACpD,CAAC;QAEJ,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACnC,CAAC;IAED,0EAA0E;IACnE,MAAM,CAAC,iBAAiB,CAAC,KAA8B;QAC5D,IAAI,KAAK,CAAC,qBAAqB,EAAE,CAAC;YAChC,OAAO,SAAS,KAAK,CAAC,qBAAqB,EAAE,CAAC;QAChD,CAAC;QAED,IAAI,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;YAC1C,OAAO,UAAU,KAAK,CAAC,WAAW,EAAE,CAAC;QACvC,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAEM,MAAM,CAAC,oBAAoB,CAChC,KAAgC;QAEhC,MAAM,MAAM,GAAmC,KAAK,CAAC,MAAM,CAAC;QAE5D,MAAM,OAAO,GAA8B;YACzC,KAAK,EAAE,EAAE;YACT,WAAW,EAAE,EAAE;YACf,kBAAkB,EAAE,SAAS;YAC7B,QAAQ,EAAE,EAAE;YACZ,KAAK,EAAE,EAAE;YACT,kBAAkB,EAAE,EAAE;YACtB,WAAW,EAAE,EAAE;YACf,WAAW,EAAE,EAAE;YACf,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE,EAAE;YACZ,SAAS,EAAE,KAAK;SACjB,CAAC;QAEF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,MAAM,UAAU,GAAmC,IAAI,CAAC,kBAAkB,CACxE,MAAM,EACN,KAAK,CAAC,eAAe,CACtB,CAAC;QAEF,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,CAAC,KAAK,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC,KAAK,IAAI,EAAE,CAAC;YACvC,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,CAAC,CAAE,CAAC,WAAW,IAAI,EAAE,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,GAAG,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,KAAI,EAAE,CAAC;YACxC,OAAO,CAAC,WAAW,GAAG,MAAM;iBACzB,GAAG,CAAC,CAAC,KAA8B,EAAU,EAAE;gBAC9C,OAAO,KAAK,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC;YAC9E,CAAC,CAAC;iBACD,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC;QAED,OAAO,CAAC,kBAAkB;YACxB,IAAI,CAAC,kCAAkC,CAAC;gBACtC,eAAe,EAAE,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,eAAe;gBAC5C,eAAe,EAAE,KAAK,CAAC,eAAe;gBACtC,kBAAkB,EAAE,KAAK,CAAC,kBAAkB;aAC7C,CAAC,IAAI,SAAS,CAAC;QAElB,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAClB,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YACpD,CAAC;YAED,KAAK,MAAM,GAAG,IAAI,8BAA8B,EAAE,CAAC;gBACjD,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC;oBACxC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,QAAQ,CAAC,CAAC;gBAC3C,CAAC;YACH,CAAC;YAED,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,IAAI,EAAE,EAAE,CAAC;gBAC3C,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;oBACnD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;YAED,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC;gBACpB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;YAC3B,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,2BAA2B,CACvC,aAAyB,EACzB,OAAkC;QAElC,MAAM,MAAM,qBAAoB,aAAa,CAAE,CAAC;QAEhD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YACpD,MAAM,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;QAClC,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YAChE,MAAM,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;QAC9C,CAAC;QAED,IACE,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;YACzC,OAAO,CAAC,kBAAkB,EAC1B,CAAC;YACD,MAAM,CAAC,kBAAkB,CAAC,GAAG,OAAO,CAAC,kBAAkB,CAAC;QAC1D,CAAC;QAED,KAAK,MAAM,GAAG,IAAI,0BAA0B,EAAE,CAAC;YAC7C,MAAM,SAAS,GAAyB,EAAE,CAAC;YAE3C,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gBACjD,MAAM,QAAQ,GAAyB,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;gBAEtE,IAAI,QAAQ,EAAE,CAAC;oBACb,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBACxC,CAAC;YACH,CAAC;YAED,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBACpC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YACxC,CAAC;YAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,MAAM,CAAC,GAAG,CAAC,GAAG,SAAiC,CAAC;YAClD,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAAkB,EAAE,CAAC;QAEnC,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC;YACtD,MAAM,EAAE,GAAkB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAE9C,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;gBACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACpB,CAAC;QACH,CAAC;QAED,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACvC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAChC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,MAAM,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAAC;QAC9B,CAAC;QAED,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;YACtB,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;QAC7B,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,MAAM,CAAC,WAAW,CACxB,SAA+B,EAC/B,QAAuB;QAEvB,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QAED,MAAM,YAAY,GAAY,SAAS,CAAC,IAAI,CAAC,CAAC,QAAuB,EAAE,EAAE;YACvE,OAAO,QAAQ,CAAC,GAAG,KAAK,QAAQ,CAAC,GAAG,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,SAAS,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;QACnE,CAAC;IACH,CAAC;IAEO,MAAM,CAAC,OAAO,CAAC,KAA4B;QACjD,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC1C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5C,CAAC;IAEO,MAAM,CAAC,OAAO,CAAC,KAA4B;QACjD,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE,KAA0B,CAAC,CAAC,CAAC,EAAE,CAAC;IACjE,CAAC;IAEO,MAAM,CAAC,IAAI,CAAC,KAAgB;;QAClC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,IAAI,IAAI,CAAC;QACvB,CAAC;QAED,IAAI,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACvC,MAAM,EAAE,GACN,MAAC,KAAoB,CAAC,KAAK,CAAC,mCAAK,KAAoB,CAAC,IAAI,CAAC,CAAC;YAE9D,IAAI,EAAE,KAAK,IAAI,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;gBACpC,MAAM,QAAQ,GAAW,EAAE,CAAC,QAAQ,EAAE,CAAC;gBACvC,OAAO,QAAQ,IAAI,IAAI,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,MAAM,CAAC,eAAe,CAAC,KAAgB;QAC7C,MAAM,EAAE,GAAkB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAE3C,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,IAAI,GACR,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;YAChC,CAAC,CAAE,KAAoB,CAAC,MAAM,CAAC;YAC/B,CAAC,CAAC,SAAS,CAAC;QAEhB,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACjE,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"IncidentFromAlerts.js","sourceRoot":"","sources":["../../../../Utils/Incident/IncidentFromAlerts.ts"],"names":[],"mappings":"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"}
|