@oneuptime/common 12.0.2 → 12.0.3
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/DatabaseBaseModel/DatabaseBaseModel.ts +14 -0
- package/Models/DatabaseModels/Index.ts +2 -0
- package/Models/DatabaseModels/LogDropFilter.ts +9 -20
- package/Models/DatabaseModels/StatusPageMonitorRule.ts +911 -0
- package/Models/DatabaseModels/StatusPageResource.ts +73 -0
- package/Models/DatabaseModels/TraceDropFilter.ts +9 -20
- package/Server/API/BaseAPI.ts +13 -2
- package/Server/API/DashboardAPI.ts +39 -0
- package/Server/EnvironmentConfig.ts +31 -1
- package/Server/Infrastructure/GlobalCache.ts +115 -0
- package/Server/Infrastructure/Postgres/DataSourceOptions.ts +16 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1786005052769-AddStatusPageMonitorRule.ts +123 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +2 -0
- package/Server/Services/AlertStateTimelineService.ts +20 -0
- package/Server/Services/CephClusterService.ts +26 -86
- package/Server/Services/CloudResourceService.ts +23 -83
- package/Server/Services/DatabaseService.ts +111 -0
- package/Server/Services/DockerHostService.ts +19 -79
- package/Server/Services/DockerSwarmClusterService.ts +27 -88
- package/Server/Services/HostService.ts +46 -99
- package/Server/Services/IncidentStateTimelineService.ts +20 -0
- package/Server/Services/Index.ts +2 -0
- package/Server/Services/IoTFleetService.ts +19 -79
- package/Server/Services/KubernetesClusterService.ts +17 -78
- package/Server/Services/LabelService.ts +57 -10
- package/Server/Services/MetricTypeService.ts +84 -0
- package/Server/Services/MonitorService.ts +89 -14
- package/Server/Services/MonitorStatusTimelineService.ts +29 -0
- package/Server/Services/MonitorTemplateService.ts +65 -0
- package/Server/Services/PodmanHostService.ts +19 -79
- package/Server/Services/ProxmoxClusterService.ts +23 -83
- package/Server/Services/RumApplicationService.ts +19 -80
- package/Server/Services/ScheduledMaintenanceStateTimelineService.ts +21 -0
- package/Server/Services/ServerlessFunctionService.ts +24 -85
- package/Server/Services/ServiceService.ts +299 -73
- package/Server/Services/StatusPageMonitorRuleEngineService.ts +752 -0
- package/Server/Services/StatusPageMonitorRuleService.ts +471 -0
- package/Server/Services/TelemetryEntityRelationshipService.ts +1 -0
- package/Server/Services/TelemetryEntityService.ts +1 -0
- package/Server/Utils/Database/ProjectScopedReferenceValidator.ts +170 -39
- package/Server/Utils/Monitor/MonitorResource.ts +63 -36
- package/Server/Utils/Monitor/MonitorStatusTimeline.ts +36 -0
- package/Server/Utils/Monitor/MonitorStepsProjectValidator.ts +148 -127
- package/Server/Utils/Monitor/MonitorStepsReferenceExtractor.ts +434 -0
- package/Server/Utils/SingleFlight.ts +83 -0
- package/Server/Utils/StatusPage/MonitorRulePatternValidator.ts +46 -0
- package/Server/Utils/Telemetry/EntityRegistry.ts +107 -26
- package/Server/Utils/Telemetry/ResourceHeartbeat.ts +314 -0
- package/Server/Utils/Telemetry/Telemetry.ts +351 -122
- package/Tests/App/Dashboard/WidgetCatalog.test.ts +2 -0
- package/Tests/Models/DatabaseModels/ColumnTransformerInvariants.test.ts +306 -0
- package/Tests/Models/DatabaseModels/NumberColumnDeserialization.test.ts +333 -0
- package/Tests/Models/DatabaseModels/StatusPageMonitorRuleModel.test.ts +190 -0
- package/Tests/Server/API/DashboardPublicResourceListAPI.test.ts +26 -0
- package/Tests/Server/Infrastructure/GlobalCache.test.ts +226 -0
- package/Tests/Server/Infrastructure/PostgresLockTimeoutOptions.test.ts +181 -0
- package/Tests/Server/Services/DatabaseServiceUpdateColumnsIfUnlocked.test.ts +342 -0
- package/Tests/Server/Services/DropFilterSaveValidation.test.ts +245 -0
- package/Tests/Server/Services/HostServiceUpdateLastSeen.test.ts +163 -15
- package/Tests/Server/Services/MetricTypeAttachServices.test.ts +222 -0
- package/Tests/Server/Services/MissingReferenceWriteGuard.test.ts +614 -0
- package/Tests/Server/Services/MonitorStatusTimelineFastPath.test.ts +23 -0
- package/Tests/Server/Services/ResourceUpdateLastSeenLivenessFallback.test.ts +305 -56
- package/Tests/Server/Services/ServiceUpdateLastSeenSplitGates.test.ts +705 -0
- package/Tests/Server/Services/StatusPageMonitorRuleEngineService.test.ts +1719 -0
- package/Tests/Server/Services/StatusPageMonitorRuleHooks.test.ts +1212 -0
- package/Tests/Server/Services/StatusPageMonitorRuleMonitorCreateHook.test.ts +228 -0
- package/Tests/Server/Utils/APIKey/AccessPermission.test.ts +267 -0
- package/Tests/Server/Utils/Database/ProjectScopedReferenceValidator.test.ts +260 -13
- package/Tests/Server/Utils/EntityRegistryRowFence.test.ts +302 -0
- package/Tests/Server/Utils/MetricTypeIndexConvergence.test.ts +598 -0
- package/Tests/Server/Utils/Monitor/MonitorStatusTimelineUnusableStatus.test.ts +154 -0
- package/Tests/Server/Utils/Monitor/MonitorStepsProjectValidator.test.ts +638 -92
- package/Tests/Server/Utils/Monitor/MonitorStepsReferenceExtractor.test.ts +724 -0
- package/Tests/Server/Utils/SingleFlight.test.ts +221 -0
- package/Tests/Types/Dashboard/NetworkDashboardTemplate.test.ts +793 -0
- package/Tests/Types/Database/BigIntColumnTransformer.test.ts +147 -0
- package/Tests/Types/Database/DatabasePropertyTransformer.test.ts +140 -0
- package/Tests/Types/Database/NumericColumnValue.test.ts +127 -0
- package/Tests/Types/Decimal.test.ts +37 -0
- package/Tests/Types/Monitor/SnmpVersionParsing.test.ts +152 -0
- package/Tests/Types/Port.test.ts +38 -0
- package/Tests/UI/Components/LogsHistogram.test.tsx +276 -0
- package/Tests/UI/Components/UseLiveLogsRefresh.test.tsx +489 -0
- package/Tests/UI/Components/UseLogsHistogram.test.tsx +500 -0
- package/Tests/Utils/Dashboard/Components/DashboardComponentsUtil.test.ts +120 -0
- package/Tests/Utils/Dashboard/DashboardNetworkMapComponent.test.ts +327 -0
- package/Types/Dashboard/DashboardComponentType.ts +1 -0
- package/Types/Dashboard/DashboardComponents/ComponentArgument.ts +1 -0
- package/Types/Dashboard/DashboardComponents/DashboardNetworkMapComponent.ts +40 -0
- package/Types/Dashboard/DashboardTemplates.ts +397 -0
- package/Types/Database/BigIntColumnTransformer.ts +74 -0
- package/Types/Database/DatabaseProperty.ts +26 -0
- package/Types/Database/NumericColumnValue.ts +128 -0
- package/Types/Decimal.ts +16 -4
- package/Types/Permission.ts +48 -0
- package/Types/Port.ts +16 -4
- package/UI/Components/LogsViewer/useLiveLogsRefresh.ts +86 -0
- package/UI/Components/LogsViewer/useLogsHistogram.ts +113 -0
- package/Utils/Dashboard/Components/DashboardNetworkMapComponent.ts +136 -0
- package/Utils/Dashboard/Components/Index.ts +7 -0
- package/build/dist/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.js +12 -0
- package/build/dist/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Index.js +2 -0
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/LogDropFilter.js +9 -20
- package/build/dist/Models/DatabaseModels/LogDropFilter.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageMonitorRule.js +925 -0
- package/build/dist/Models/DatabaseModels/StatusPageMonitorRule.js.map +1 -0
- package/build/dist/Models/DatabaseModels/StatusPageResource.js +72 -0
- package/build/dist/Models/DatabaseModels/StatusPageResource.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TraceDropFilter.js +9 -20
- package/build/dist/Models/DatabaseModels/TraceDropFilter.js.map +1 -1
- package/build/dist/Server/API/BaseAPI.js +11 -1
- package/build/dist/Server/API/BaseAPI.js.map +1 -1
- package/build/dist/Server/API/DashboardAPI.js +39 -0
- package/build/dist/Server/API/DashboardAPI.js.map +1 -1
- package/build/dist/Server/EnvironmentConfig.js +27 -1
- package/build/dist/Server/EnvironmentConfig.js.map +1 -1
- package/build/dist/Server/Infrastructure/GlobalCache.js +91 -0
- package/build/dist/Server/Infrastructure/GlobalCache.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/DataSourceOptions.js +5 -3
- package/build/dist/Server/Infrastructure/Postgres/DataSourceOptions.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786005052769-AddStatusPageMonitorRule.js +48 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1786005052769-AddStatusPageMonitorRule.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/AlertStateTimelineService.js +19 -0
- package/build/dist/Server/Services/AlertStateTimelineService.js.map +1 -1
- package/build/dist/Server/Services/CephClusterService.js +26 -76
- package/build/dist/Server/Services/CephClusterService.js.map +1 -1
- package/build/dist/Server/Services/CloudResourceService.js +23 -73
- package/build/dist/Server/Services/CloudResourceService.js.map +1 -1
- package/build/dist/Server/Services/DatabaseService.js +86 -0
- package/build/dist/Server/Services/DatabaseService.js.map +1 -1
- package/build/dist/Server/Services/DockerHostService.js +19 -69
- package/build/dist/Server/Services/DockerHostService.js.map +1 -1
- package/build/dist/Server/Services/DockerSwarmClusterService.js +27 -78
- package/build/dist/Server/Services/DockerSwarmClusterService.js.map +1 -1
- package/build/dist/Server/Services/HostService.js +58 -102
- package/build/dist/Server/Services/HostService.js.map +1 -1
- package/build/dist/Server/Services/IncidentStateTimelineService.js +19 -0
- package/build/dist/Server/Services/IncidentStateTimelineService.js.map +1 -1
- package/build/dist/Server/Services/Index.js +2 -0
- package/build/dist/Server/Services/Index.js.map +1 -1
- package/build/dist/Server/Services/IoTFleetService.js +19 -69
- package/build/dist/Server/Services/IoTFleetService.js.map +1 -1
- package/build/dist/Server/Services/KubernetesClusterService.js +17 -68
- package/build/dist/Server/Services/KubernetesClusterService.js.map +1 -1
- package/build/dist/Server/Services/LabelService.js +42 -7
- package/build/dist/Server/Services/LabelService.js.map +1 -1
- package/build/dist/Server/Services/MetricTypeService.js +74 -0
- package/build/dist/Server/Services/MetricTypeService.js.map +1 -1
- package/build/dist/Server/Services/MonitorService.js +81 -9
- package/build/dist/Server/Services/MonitorService.js.map +1 -1
- package/build/dist/Server/Services/MonitorStatusTimelineService.js +28 -0
- package/build/dist/Server/Services/MonitorStatusTimelineService.js.map +1 -1
- package/build/dist/Server/Services/MonitorTemplateService.js +60 -0
- package/build/dist/Server/Services/MonitorTemplateService.js.map +1 -1
- package/build/dist/Server/Services/PodmanHostService.js +19 -69
- package/build/dist/Server/Services/PodmanHostService.js.map +1 -1
- package/build/dist/Server/Services/ProxmoxClusterService.js +23 -73
- package/build/dist/Server/Services/ProxmoxClusterService.js.map +1 -1
- package/build/dist/Server/Services/RumApplicationService.js +19 -70
- package/build/dist/Server/Services/RumApplicationService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js +20 -0
- package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js.map +1 -1
- package/build/dist/Server/Services/ServerlessFunctionService.js +24 -75
- package/build/dist/Server/Services/ServerlessFunctionService.js.map +1 -1
- package/build/dist/Server/Services/ServiceService.js +236 -61
- package/build/dist/Server/Services/ServiceService.js.map +1 -1
- package/build/dist/Server/Services/StatusPageMonitorRuleEngineService.js +603 -0
- package/build/dist/Server/Services/StatusPageMonitorRuleEngineService.js.map +1 -0
- package/build/dist/Server/Services/StatusPageMonitorRuleService.js +401 -0
- package/build/dist/Server/Services/StatusPageMonitorRuleService.js.map +1 -0
- package/build/dist/Server/Services/TelemetryEntityRelationshipService.js +1 -0
- package/build/dist/Server/Services/TelemetryEntityRelationshipService.js.map +1 -1
- package/build/dist/Server/Services/TelemetryEntityService.js +1 -0
- package/build/dist/Server/Services/TelemetryEntityService.js.map +1 -1
- package/build/dist/Server/Utils/Database/ProjectScopedReferenceValidator.js +105 -29
- package/build/dist/Server/Utils/Database/ProjectScopedReferenceValidator.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorResource.js +56 -32
- package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorStatusTimeline.js +30 -3
- package/build/dist/Server/Utils/Monitor/MonitorStatusTimeline.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorStepsProjectValidator.js +110 -98
- package/build/dist/Server/Utils/Monitor/MonitorStepsProjectValidator.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorStepsReferenceExtractor.js +312 -0
- package/build/dist/Server/Utils/Monitor/MonitorStepsReferenceExtractor.js.map +1 -0
- package/build/dist/Server/Utils/SingleFlight.js +76 -0
- package/build/dist/Server/Utils/SingleFlight.js.map +1 -0
- package/build/dist/Server/Utils/StatusPage/MonitorRulePatternValidator.js +29 -0
- package/build/dist/Server/Utils/StatusPage/MonitorRulePatternValidator.js.map +1 -0
- package/build/dist/Server/Utils/Telemetry/EntityRegistry.js +78 -19
- package/build/dist/Server/Utils/Telemetry/EntityRegistry.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/ResourceHeartbeat.js +160 -0
- package/build/dist/Server/Utils/Telemetry/ResourceHeartbeat.js.map +1 -0
- package/build/dist/Server/Utils/Telemetry/Telemetry.js +279 -104
- package/build/dist/Server/Utils/Telemetry/Telemetry.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/ComponentArgument.js +1 -0
- package/build/dist/Types/Dashboard/DashboardComponents/ComponentArgument.js.map +1 -1
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardNetworkMapComponent.js +2 -0
- package/build/dist/Types/Dashboard/DashboardComponents/DashboardNetworkMapComponent.js.map +1 -0
- package/build/dist/Types/Dashboard/DashboardTemplates.js +368 -0
- package/build/dist/Types/Dashboard/DashboardTemplates.js.map +1 -1
- package/build/dist/Types/Database/BigIntColumnTransformer.js +66 -0
- package/build/dist/Types/Database/BigIntColumnTransformer.js.map +1 -0
- package/build/dist/Types/Database/DatabaseProperty.js +25 -0
- package/build/dist/Types/Database/DatabaseProperty.js.map +1 -1
- package/build/dist/Types/Database/NumericColumnValue.js +97 -0
- package/build/dist/Types/Database/NumericColumnValue.js.map +1 -0
- package/build/dist/Types/Decimal.js +14 -3
- package/build/dist/Types/Decimal.js.map +1 -1
- package/build/dist/Types/Permission.js +42 -0
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/Types/Port.js +15 -5
- package/build/dist/Types/Port.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/useLiveLogsRefresh.js +44 -0
- package/build/dist/UI/Components/LogsViewer/useLiveLogsRefresh.js.map +1 -0
- package/build/dist/UI/Components/LogsViewer/useLogsHistogram.js +75 -0
- package/build/dist/UI/Components/LogsViewer/useLogsHistogram.js.map +1 -0
- package/build/dist/Utils/Dashboard/Components/DashboardNetworkMapComponent.js +114 -0
- package/build/dist/Utils/Dashboard/Components/DashboardNetworkMapComponent.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/package.json +1 -1
|
@@ -9,6 +9,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
9
9
|
};
|
|
10
10
|
import DatabaseService from "./DatabaseService";
|
|
11
11
|
import MonitorService from "./MonitorService";
|
|
12
|
+
import MonitorStepsProjectValidator from "../Utils/Monitor/MonitorStepsProjectValidator";
|
|
12
13
|
import BadDataException from "../../Types/Exception/BadDataException";
|
|
13
14
|
import LIMIT_MAX from "../../Types/Database/LimitMax";
|
|
14
15
|
import Model from "../../Models/DatabaseModels/MonitorTemplate";
|
|
@@ -23,6 +24,53 @@ export class Service extends DatabaseService {
|
|
|
23
24
|
constructor() {
|
|
24
25
|
super(Model);
|
|
25
26
|
}
|
|
27
|
+
/*
|
|
28
|
+
* A template's monitorSteps embeds the same reference ids a monitor's does,
|
|
29
|
+
* and every one of them reaches a real monitor eventually — through "create
|
|
30
|
+
* monitor from template" and through syncLinkedMonitors, which pushes the
|
|
31
|
+
* blob onto every linked monitor. Validating it here is what makes the error
|
|
32
|
+
* land on the template the bad id was typed into, rather than on a monitor
|
|
33
|
+
* sync days later. Without this the template is the one place a dangling id
|
|
34
|
+
* can still enter the system.
|
|
35
|
+
*/
|
|
36
|
+
async onBeforeCreate(createBy) {
|
|
37
|
+
await MonitorStepsProjectValidator.validateMonitorStepsBelongToProject({
|
|
38
|
+
monitorSteps: createBy.data.monitorSteps,
|
|
39
|
+
projectId: createBy.props.tenantId || createBy.data.projectId,
|
|
40
|
+
});
|
|
41
|
+
return { createBy, carryForward: null };
|
|
42
|
+
}
|
|
43
|
+
async onBeforeUpdate(updateBy) {
|
|
44
|
+
if (!updateBy.data.monitorSteps) {
|
|
45
|
+
return { updateBy, carryForward: null };
|
|
46
|
+
}
|
|
47
|
+
/*
|
|
48
|
+
* Per matched template, so each is checked against its own project and its
|
|
49
|
+
* own currently-stored ids — see MonitorService.onBeforeUpdate for why the
|
|
50
|
+
* stored ids matter.
|
|
51
|
+
*/
|
|
52
|
+
const templates = await this.findBy({
|
|
53
|
+
query: updateBy.query,
|
|
54
|
+
select: {
|
|
55
|
+
projectId: true,
|
|
56
|
+
monitorSteps: true,
|
|
57
|
+
},
|
|
58
|
+
limit: LIMIT_MAX,
|
|
59
|
+
skip: 0,
|
|
60
|
+
props: {
|
|
61
|
+
isRoot: true,
|
|
62
|
+
ignoreHooks: true,
|
|
63
|
+
},
|
|
64
|
+
});
|
|
65
|
+
for (const template of templates) {
|
|
66
|
+
await MonitorStepsProjectValidator.validateMonitorStepsBelongToProject({
|
|
67
|
+
monitorSteps: updateBy.data.monitorSteps,
|
|
68
|
+
projectId: updateBy.props.tenantId || template.projectId,
|
|
69
|
+
alreadyStoredMonitorSteps: template.monitorSteps,
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
return { updateBy, carryForward: null };
|
|
73
|
+
}
|
|
26
74
|
/**
|
|
27
75
|
* Count monitors created from this template.
|
|
28
76
|
* Caller must already have read access on the template via the API layer.
|
|
@@ -272,6 +320,18 @@ export class Service extends DatabaseService {
|
|
|
272
320
|
});
|
|
273
321
|
}
|
|
274
322
|
}
|
|
323
|
+
__decorate([
|
|
324
|
+
CaptureSpan(),
|
|
325
|
+
__metadata("design:type", Function),
|
|
326
|
+
__metadata("design:paramtypes", [Object]),
|
|
327
|
+
__metadata("design:returntype", Promise)
|
|
328
|
+
], Service.prototype, "onBeforeCreate", null);
|
|
329
|
+
__decorate([
|
|
330
|
+
CaptureSpan(),
|
|
331
|
+
__metadata("design:type", Function),
|
|
332
|
+
__metadata("design:paramtypes", [Object]),
|
|
333
|
+
__metadata("design:returntype", Promise)
|
|
334
|
+
], Service.prototype, "onBeforeUpdate", null);
|
|
275
335
|
__decorate([
|
|
276
336
|
CaptureSpan(),
|
|
277
337
|
__metadata("design:type", Function),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MonitorTemplateService.js","sourceRoot":"","sources":["../../../../Server/Services/MonitorTemplateService.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,cAAc,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"MonitorTemplateService.js","sourceRoot":"","sources":["../../../../Server/Services/MonitorTemplateService.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,7 @@ import PodmanHostLabelRuleEngineService from "./PodmanHostLabelRuleEngineService
|
|
|
12
12
|
import PodmanHostOwnerRuleEngineService from "./PodmanHostOwnerRuleEngineService";
|
|
13
13
|
import Model from "../../Models/DatabaseModels/PodmanHost";
|
|
14
14
|
import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
|
|
15
|
+
import ResourceHeartbeat from "../Utils/Telemetry/ResourceHeartbeat";
|
|
15
16
|
import ObjectID from "../../Types/ObjectID";
|
|
16
17
|
import QueryHelper from "../Types/Database/QueryHelper";
|
|
17
18
|
import OneUptimeDate from "../../Types/Date";
|
|
@@ -146,7 +147,6 @@ export class Service extends DatabaseService {
|
|
|
146
147
|
}
|
|
147
148
|
async updateLastSeen(hostId, extra) {
|
|
148
149
|
var _a, _b, _c;
|
|
149
|
-
const cacheKey = hostId.toString();
|
|
150
150
|
const extrasFingerprint = crypto
|
|
151
151
|
.createHash("sha1")
|
|
152
152
|
.update(JSON.stringify({
|
|
@@ -155,88 +155,38 @@ export class Service extends DatabaseService {
|
|
|
155
155
|
agentVersion: (_c = extra === null || extra === void 0 ? void 0 : extra.agentVersion) !== null && _c !== void 0 ? _c : null,
|
|
156
156
|
}))
|
|
157
157
|
.digest("hex");
|
|
158
|
-
let cached = null;
|
|
159
|
-
try {
|
|
160
|
-
cached = await GlobalCache.getString(LAST_SEEN_CACHE_NAMESPACE, cacheKey);
|
|
161
|
-
}
|
|
162
|
-
catch (_d) {
|
|
163
|
-
/*
|
|
164
|
-
* Cache unavailable — fail open and refresh lastSeenAt anyway. A
|
|
165
|
-
* cache error must never skip the DB write below, otherwise the
|
|
166
|
-
* resource is wrongly marked "disconnected" while telemetry is
|
|
167
|
-
* still flowing. Mirrors shouldRunMaintenance's fail-open stance.
|
|
168
|
-
*/
|
|
169
|
-
cached = null;
|
|
170
|
-
}
|
|
171
|
-
if (cached === extrasFingerprint) {
|
|
172
|
-
return; // same data was written recently
|
|
173
|
-
}
|
|
174
|
-
try {
|
|
175
|
-
await GlobalCache.setString(LAST_SEEN_CACHE_NAMESPACE, cacheKey, extrasFingerprint, { expiresInSeconds: LAST_SEEN_THROTTLE_SECONDS });
|
|
176
|
-
}
|
|
177
|
-
catch (_e) {
|
|
178
|
-
// Best-effort throttle write; proceed with the DB update regardless.
|
|
179
|
-
}
|
|
180
158
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
181
159
|
const liveness = {
|
|
182
160
|
lastSeenAt: OneUptimeDate.getCurrentDate(),
|
|
183
161
|
otelCollectorStatus: "connected",
|
|
184
162
|
};
|
|
185
163
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
186
|
-
const
|
|
164
|
+
const metadata = {};
|
|
187
165
|
if (extra === null || extra === void 0 ? void 0 : extra.osType) {
|
|
188
|
-
|
|
166
|
+
metadata.osType = extra.osType;
|
|
189
167
|
}
|
|
190
168
|
if (extra === null || extra === void 0 ? void 0 : extra.osVersion) {
|
|
191
|
-
|
|
169
|
+
metadata.osVersion = extra.osVersion;
|
|
192
170
|
}
|
|
193
171
|
if (extra === null || extra === void 0 ? void 0 : extra.agentVersion) {
|
|
194
|
-
|
|
172
|
+
metadata.agentVersion = extra.agentVersion;
|
|
195
173
|
}
|
|
196
174
|
/*
|
|
197
|
-
*
|
|
198
|
-
*
|
|
199
|
-
*
|
|
200
|
-
*
|
|
201
|
-
* Collector-supplied strings are clamped to their declared column
|
|
202
|
-
* widths inside updateColumnsByIdWithoutHooks — see
|
|
203
|
-
* DatabaseService.truncateStringColumnsToMaxLength.
|
|
175
|
+
* One gated, non-blocking heartbeat write. The gates, the fail-open /
|
|
176
|
+
* fail-closed split and the liveness-only fallback all live in
|
|
177
|
+
* ResourceHeartbeat — see there for why this row's throttle used to
|
|
178
|
+
* provide no throttling at all.
|
|
204
179
|
*/
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
* collector-supplied columns; if any one of them makes Postgres
|
|
216
|
-
* reject the statement, lastSeenAt silently stops advancing and
|
|
217
|
-
* markDisconnectedHosts flips a perfectly healthy Podman host to
|
|
218
|
-
* "disconnected" 15 minutes later — with telemetry still arriving the
|
|
219
|
-
* whole time. That was issue #3006 on the Host path (a host.ip list
|
|
220
|
-
* longer than the then-varchar(500) column). Retry with liveness only
|
|
221
|
-
* so the enrichment is what gets dropped, never the heartbeat.
|
|
222
|
-
*/
|
|
223
|
-
logger.warn(`PodmanHostService.updateLastSeen: metadata write failed for Podman host ${hostId.toString()}, falling back to a liveness-only update: ${err instanceof Error ? err.message : String(err)}`);
|
|
224
|
-
/*
|
|
225
|
-
* The throttle fingerprint was already stored, so without this the
|
|
226
|
-
* next batch would short-circuit on a cache hit and skip the retry
|
|
227
|
-
* for the rest of the window.
|
|
228
|
-
*/
|
|
229
|
-
try {
|
|
230
|
-
await GlobalCache.deleteKey(LAST_SEEN_CACHE_NAMESPACE, cacheKey);
|
|
231
|
-
}
|
|
232
|
-
catch (_f) {
|
|
233
|
-
// Best-effort; the fallback write below is what actually matters.
|
|
234
|
-
}
|
|
235
|
-
await this.updateColumnsByIdWithoutHooks({
|
|
236
|
-
id: hostId,
|
|
237
|
-
data: liveness,
|
|
238
|
-
});
|
|
239
|
-
}
|
|
180
|
+
await ResourceHeartbeat.write({
|
|
181
|
+
service: this,
|
|
182
|
+
id: hostId,
|
|
183
|
+
cacheNamespace: LAST_SEEN_CACHE_NAMESPACE,
|
|
184
|
+
throttleInSeconds: LAST_SEEN_THROTTLE_SECONDS,
|
|
185
|
+
liveness: liveness,
|
|
186
|
+
metadata: metadata,
|
|
187
|
+
fingerprint: extrasFingerprint,
|
|
188
|
+
describe: `podman host ${hostId.toString()}`,
|
|
189
|
+
});
|
|
240
190
|
}
|
|
241
191
|
/**
|
|
242
192
|
* Additively attach labels to a Podman host. Existing labels are
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PodmanHostService.js","sourceRoot":"","sources":["../../../../Server/Services/PodmanHostService.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"PodmanHostService.js","sourceRoot":"","sources":["../../../../Server/Services/PodmanHostService.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,7 @@ import ProxmoxClusterLabelRuleEngineService from "./ProxmoxClusterLabelRuleEngin
|
|
|
12
12
|
import ProxmoxClusterOwnerRuleEngineService from "./ProxmoxClusterOwnerRuleEngineService";
|
|
13
13
|
import Model from "../../Models/DatabaseModels/ProxmoxCluster";
|
|
14
14
|
import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
|
|
15
|
+
import ResourceHeartbeat from "../Utils/Telemetry/ResourceHeartbeat";
|
|
15
16
|
import ObjectID from "../../Types/ObjectID";
|
|
16
17
|
import QueryHelper from "../Types/Database/QueryHelper";
|
|
17
18
|
import OneUptimeDate from "../../Types/Date";
|
|
@@ -147,7 +148,6 @@ export class Service extends DatabaseService {
|
|
|
147
148
|
*/
|
|
148
149
|
async updateLastSeen(clusterId, extra) {
|
|
149
150
|
var _a, _b, _c, _d, _e, _f, _g;
|
|
150
|
-
const cacheKey = clusterId.toString();
|
|
151
151
|
const extrasFingerprint = crypto
|
|
152
152
|
.createHash("sha1")
|
|
153
153
|
.update(JSON.stringify({
|
|
@@ -160,101 +160,51 @@ export class Service extends DatabaseService {
|
|
|
160
160
|
guestsWithoutBackupCount: (_g = extra === null || extra === void 0 ? void 0 : extra.guestsWithoutBackupCount) !== null && _g !== void 0 ? _g : null,
|
|
161
161
|
}))
|
|
162
162
|
.digest("hex");
|
|
163
|
-
let cached = null;
|
|
164
|
-
try {
|
|
165
|
-
cached = await GlobalCache.getString(LAST_SEEN_CACHE_NAMESPACE, cacheKey);
|
|
166
|
-
}
|
|
167
|
-
catch (_h) {
|
|
168
|
-
/*
|
|
169
|
-
* Cache unavailable — fail open and refresh lastSeenAt anyway. A
|
|
170
|
-
* cache error must never skip the DB write below, otherwise the
|
|
171
|
-
* resource is wrongly marked "disconnected" while telemetry is
|
|
172
|
-
* still flowing. Mirrors shouldRunMaintenance's fail-open stance.
|
|
173
|
-
*/
|
|
174
|
-
cached = null;
|
|
175
|
-
}
|
|
176
|
-
if (cached === extrasFingerprint) {
|
|
177
|
-
return; // same data was written recently
|
|
178
|
-
}
|
|
179
|
-
try {
|
|
180
|
-
await GlobalCache.setString(LAST_SEEN_CACHE_NAMESPACE, cacheKey, extrasFingerprint, { expiresInSeconds: LAST_SEEN_THROTTLE_SECONDS });
|
|
181
|
-
}
|
|
182
|
-
catch (_j) {
|
|
183
|
-
// Best-effort throttle write; proceed with the DB update regardless.
|
|
184
|
-
}
|
|
185
163
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
186
164
|
const liveness = {
|
|
187
165
|
lastSeenAt: OneUptimeDate.getCurrentDate(),
|
|
188
166
|
otelCollectorStatus: "connected",
|
|
189
167
|
};
|
|
190
168
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
191
|
-
const
|
|
169
|
+
const metadata = {};
|
|
192
170
|
if (extra === null || extra === void 0 ? void 0 : extra.pveVersion) {
|
|
193
|
-
|
|
171
|
+
metadata.pveVersion = extra.pveVersion;
|
|
194
172
|
}
|
|
195
173
|
if (extra === null || extra === void 0 ? void 0 : extra.agentVersion) {
|
|
196
|
-
|
|
174
|
+
metadata.agentVersion = extra.agentVersion;
|
|
197
175
|
}
|
|
198
176
|
// Counts: 0 is a legitimate value — gate on undefined, not falsiness.
|
|
199
177
|
if ((extra === null || extra === void 0 ? void 0 : extra.nodeCount) !== undefined) {
|
|
200
|
-
|
|
178
|
+
metadata.nodeCount = extra.nodeCount;
|
|
201
179
|
}
|
|
202
180
|
if ((extra === null || extra === void 0 ? void 0 : extra.onlineNodeCount) !== undefined) {
|
|
203
|
-
|
|
181
|
+
metadata.onlineNodeCount = extra.onlineNodeCount;
|
|
204
182
|
}
|
|
205
183
|
if ((extra === null || extra === void 0 ? void 0 : extra.guestCount) !== undefined) {
|
|
206
|
-
|
|
184
|
+
metadata.guestCount = extra.guestCount;
|
|
207
185
|
}
|
|
208
186
|
if ((extra === null || extra === void 0 ? void 0 : extra.storageCount) !== undefined) {
|
|
209
|
-
|
|
187
|
+
metadata.storageCount = extra.storageCount;
|
|
210
188
|
}
|
|
211
189
|
if ((extra === null || extra === void 0 ? void 0 : extra.guestsWithoutBackupCount) !== undefined) {
|
|
212
|
-
|
|
190
|
+
metadata.guestsWithoutBackupCount = extra.guestsWithoutBackupCount;
|
|
213
191
|
}
|
|
214
192
|
/*
|
|
215
|
-
*
|
|
216
|
-
*
|
|
217
|
-
*
|
|
218
|
-
*
|
|
219
|
-
* Collector-supplied strings are clamped to their declared column
|
|
220
|
-
* widths inside updateColumnsByIdWithoutHooks — see
|
|
221
|
-
* DatabaseService.truncateStringColumnsToMaxLength.
|
|
193
|
+
* One gated, non-blocking heartbeat write. The gates, the fail-open /
|
|
194
|
+
* fail-closed split and the liveness-only fallback all live in
|
|
195
|
+
* ResourceHeartbeat — see there for why this row's throttle used to
|
|
196
|
+
* provide no throttling at all.
|
|
222
197
|
*/
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
* collector-supplied columns; if any one of them makes Postgres
|
|
234
|
-
* reject the statement, lastSeenAt silently stops advancing and
|
|
235
|
-
* markDisconnectedClusters flips a perfectly healthy Proxmox cluster
|
|
236
|
-
* to "disconnected" 15 minutes later — with telemetry still arriving
|
|
237
|
-
* the whole time. That was issue #3006 on the Host path (a host.ip
|
|
238
|
-
* list longer than the then-varchar(500) column). Retry with liveness
|
|
239
|
-
* only so the enrichment is what gets dropped, never the heartbeat.
|
|
240
|
-
*/
|
|
241
|
-
logger.warn(`ProxmoxClusterService.updateLastSeen: metadata write failed for Proxmox cluster ${clusterId.toString()}, falling back to a liveness-only update: ${err instanceof Error ? err.message : String(err)}`);
|
|
242
|
-
/*
|
|
243
|
-
* The throttle fingerprint was already stored, so without this the
|
|
244
|
-
* next batch would short-circuit on a cache hit and skip the retry
|
|
245
|
-
* for the rest of the window.
|
|
246
|
-
*/
|
|
247
|
-
try {
|
|
248
|
-
await GlobalCache.deleteKey(LAST_SEEN_CACHE_NAMESPACE, cacheKey);
|
|
249
|
-
}
|
|
250
|
-
catch (_k) {
|
|
251
|
-
// Best-effort; the fallback write below is what actually matters.
|
|
252
|
-
}
|
|
253
|
-
await this.updateColumnsByIdWithoutHooks({
|
|
254
|
-
id: clusterId,
|
|
255
|
-
data: liveness,
|
|
256
|
-
});
|
|
257
|
-
}
|
|
198
|
+
await ResourceHeartbeat.write({
|
|
199
|
+
service: this,
|
|
200
|
+
id: clusterId,
|
|
201
|
+
cacheNamespace: LAST_SEEN_CACHE_NAMESPACE,
|
|
202
|
+
throttleInSeconds: LAST_SEEN_THROTTLE_SECONDS,
|
|
203
|
+
liveness: liveness,
|
|
204
|
+
metadata: metadata,
|
|
205
|
+
fingerprint: extrasFingerprint,
|
|
206
|
+
describe: `proxmox cluster ${clusterId.toString()}`,
|
|
207
|
+
});
|
|
258
208
|
}
|
|
259
209
|
/**
|
|
260
210
|
* Additively attach labels to a Proxmox cluster. Existing labels are
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProxmoxClusterService.js","sourceRoot":"","sources":["../../../../Server/Services/ProxmoxClusterService.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,oCAAoC,MAAM,wCAAwC,CAAC;AAC1F,OAAO,oCAAoC,MAAM,wCAAwC,CAAC;AAC1F,OAAO,KAAK,MAAM,4CAA4C,CAAC;AAG/D,OAAO,WAAW,MAAM,gCAAgC,CAAC;AACzD,OAAO,QAAQ,MAAM,sBAAsB,CAAC;AAC5C,OAAO,WAAW,MAAM,+BAA+B,CAAC;AACxD,OAAO,aAAa,MAAM,kBAAkB,CAAC;AAC7C,OAAO,SAAS,MAAM,+BAA+B,CAAC;AACtD,OAAO,WAAW,MAAM,+BAA+B,CAAC;AACxD,OAAO,MAAyB,MAAM,iBAAiB,CAAC;AACxD,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,MAAM,yBAAyB,GAAW,2BAA2B,CAAC;AACtE,MAAM,0BAA0B,GAAW,EAAE,CAAC;AAE9C,MAAM,8BAA8B,GAAW,gCAAgC,CAAC;AAChF,MAAM,gCAAgC,GAAW,EAAE,CAAC;AAEpD,MAAM,OAAO,OAAQ,SAAQ,eAAsB;IACjD;QACE,KAAK,CAAC,KAAK,CAAC,CAAC;IACf,CAAC;IAGwB,AAAN,KAAK,CAAC,eAAe,CACtC,SAA0B,EAC1B,WAAkB;QAElB;;;;WAIG;QACH,IAAI,WAAW,CAAC,SAAS,IAAI,WAAW,CAAC,EAAE,EAAE,CAAC;YAC5C,OAAO,CAAC,OAAO,EAAE;iBACd,IAAI,CAAC,KAAK,IAAI,EAAE;gBACf,MAAM,oCAAoC,CAAC,0BAA0B,CACnE,WAAW,CACZ,CAAC;YACJ,CAAC,CAAC;iBACD,IAAI,CAAC,KAAK,IAAI,EAAE;gBACf,MAAM,oCAAoC,CAAC,0BAA0B,CACnE,WAAW,CACZ,CAAC;YACJ,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,KAAY,EAAE,EAAE;;gBACtB,MAAM,CAAC,KAAK,CACV,kFAAkF,KAAK,EAAE,EACzF;oBACE,SAAS,EAAE,MAAA,WAAW,CAAC,SAAS,0CAAE,QAAQ,EAAE;oBAC5C,gBAAgB,EAAE,MAAA,WAAW,CAAC,EAAE,0CAAE,QAAQ,EAAE;iBAC5B,CACnB,CAAC;YACJ,CAAC,CAAC,CAAC;QACP,CAAC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAGY,AAAN,KAAK,CAAC,kBAAkB,CAAC,IAG/B;QACC;;;;;;;;;;WAUG;QACH,MAAM,IAAI,GAAW,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;QAEtC,MAAM,eAAe,GAAiB,MAAM,IAAI,CAAC,SAAS,CAAC;YACzD,KAAK,EAAE;gBACL,SAAS,EAAE,IAAI,CAAC,SAAS;gBACzB,IAAI,EAAE,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC;aACzC;YACD,MAAM,EAAE;gBACN,GAAG,EAAE,IAAI;gBACT,SAAS,EAAE,IAAI;gBACf,IAAI,EAAE,IAAI;aACX;YACD,KAAK,EAAE;gBACL,MAAM,EAAE,IAAI;aACb;SACF,CAAC,CAAC;QAEH,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,eAAe,CAAC;QACzB,CAAC;QAED,IAAI,CAAC;YACH,qBAAqB;YACrB,MAAM,UAAU,GAAU,IAAI,KAAK,EAAE,CAAC;YACtC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;YACtC,UAAU,CAAC,IAAI,GAAG,IAAI,CAAC;YACvB,UAAU,CAAC,mBAAmB,GAAG,WAAW,CAAC;YAC7C,UAAU,CAAC,UAAU,GAAG,aAAa,CAAC,cAAc,EAAE,CAAC;YAEvD,MAAM,cAAc,GAAU,MAAM,IAAI,CAAC,MAAM,CAAC;gBAC9C,IAAI,EAAE,UAAU;gBAChB,KAAK,EAAE;oBACL,MAAM,EAAE,IAAI;iBACb;aACF,CAAC,CAAC;YAEH,OAAO,cAAc,CAAC;QACxB,CAAC;QAAC,WAAM,CAAC;YACP;;;;;eAKG;YACH,MAAM,gBAAgB,GAAiB,MAAM,IAAI,CAAC,SAAS,CAAC;gBAC1D,KAAK,EAAE;oBACL,SAAS,EAAE,IAAI,CAAC,SAAS;oBACzB,IAAI,EAAE,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC;iBACzC;gBACD,MAAM,EAAE;oBACN,GAAG,EAAE,IAAI;oBACT,SAAS,EAAE,IAAI;oBACf,IAAI,EAAE,IAAI;iBACX;gBACD,KAAK,EAAE;oBACL,MAAM,EAAE,IAAI;iBACb;aACF,CAAC,CAAC;YAEH,IAAI,gBAAgB,EAAE,CAAC;gBACrB,OAAO,gBAAgB,CAAC;YAC1B,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,4CAA4C,GAAG,IAAI,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IAEU,AAAN,KAAK,CAAC,cAAc,CACzB,SAAmB,EACnB,KAQC;;QAED,MAAM,
|
|
1
|
+
{"version":3,"file":"ProxmoxClusterService.js","sourceRoot":"","sources":["../../../../Server/Services/ProxmoxClusterService.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
10
10
|
import DatabaseService from "./DatabaseService";
|
|
11
11
|
import Model from "../../Models/DatabaseModels/RumApplication";
|
|
12
12
|
import CaptureSpan from "../Utils/Telemetry/CaptureSpan";
|
|
13
|
+
import ResourceHeartbeat from "../Utils/Telemetry/ResourceHeartbeat";
|
|
13
14
|
import ObjectID from "../../Types/ObjectID";
|
|
14
15
|
import QueryHelper from "../Types/Database/QueryHelper";
|
|
15
16
|
import OneUptimeDate from "../../Types/Date";
|
|
@@ -210,7 +211,6 @@ export class Service extends DatabaseService {
|
|
|
210
211
|
}
|
|
211
212
|
async updateLastSeen(rumApplicationId, extra) {
|
|
212
213
|
var _a, _b, _c;
|
|
213
|
-
const cacheKey = rumApplicationId.toString();
|
|
214
214
|
const extrasFingerprint = crypto
|
|
215
215
|
.createHash("sha1")
|
|
216
216
|
.update(JSON.stringify({
|
|
@@ -219,89 +219,38 @@ export class Service extends DatabaseService {
|
|
|
219
219
|
sdkLanguage: (_c = extra === null || extra === void 0 ? void 0 : extra.sdkLanguage) !== null && _c !== void 0 ? _c : null,
|
|
220
220
|
}))
|
|
221
221
|
.digest("hex");
|
|
222
|
-
let cached = null;
|
|
223
|
-
try {
|
|
224
|
-
cached = await GlobalCache.getString(LAST_SEEN_CACHE_NAMESPACE, cacheKey);
|
|
225
|
-
}
|
|
226
|
-
catch (_d) {
|
|
227
|
-
/*
|
|
228
|
-
* Cache unavailable — fail open and refresh lastSeenAt anyway. A
|
|
229
|
-
* cache error must never skip the DB write below, otherwise the
|
|
230
|
-
* resource is wrongly marked "disconnected" while telemetry is
|
|
231
|
-
* still flowing. Mirrors shouldRunMaintenance's fail-open stance.
|
|
232
|
-
*/
|
|
233
|
-
cached = null;
|
|
234
|
-
}
|
|
235
|
-
if (cached === extrasFingerprint) {
|
|
236
|
-
return; // same data was written recently
|
|
237
|
-
}
|
|
238
|
-
try {
|
|
239
|
-
await GlobalCache.setString(LAST_SEEN_CACHE_NAMESPACE, cacheKey, extrasFingerprint, { expiresInSeconds: LAST_SEEN_THROTTLE_SECONDS });
|
|
240
|
-
}
|
|
241
|
-
catch (_e) {
|
|
242
|
-
// Best-effort throttle write; proceed with the DB update regardless.
|
|
243
|
-
}
|
|
244
222
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
245
223
|
const liveness = {
|
|
246
224
|
lastSeenAt: OneUptimeDate.getCurrentDate(),
|
|
247
225
|
otelCollectorStatus: "connected",
|
|
248
226
|
};
|
|
249
227
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
250
|
-
const
|
|
228
|
+
const metadata = {};
|
|
251
229
|
if (extra === null || extra === void 0 ? void 0 : extra.agentVersion) {
|
|
252
|
-
|
|
230
|
+
metadata.agentVersion = extra.agentVersion;
|
|
253
231
|
}
|
|
254
232
|
if (extra === null || extra === void 0 ? void 0 : extra.clientType) {
|
|
255
|
-
|
|
233
|
+
metadata.clientType = extra.clientType;
|
|
256
234
|
}
|
|
257
235
|
if (extra === null || extra === void 0 ? void 0 : extra.sdkLanguage) {
|
|
258
|
-
|
|
236
|
+
metadata.sdkLanguage = extra.sdkLanguage;
|
|
259
237
|
}
|
|
260
238
|
/*
|
|
261
|
-
*
|
|
262
|
-
*
|
|
263
|
-
*
|
|
264
|
-
*
|
|
265
|
-
* Collector-supplied strings are clamped to their declared column
|
|
266
|
-
* widths inside updateColumnsByIdWithoutHooks — see
|
|
267
|
-
* DatabaseService.truncateStringColumnsToMaxLength.
|
|
239
|
+
* One gated, non-blocking heartbeat write. The gates, the fail-open /
|
|
240
|
+
* fail-closed split and the liveness-only fallback all live in
|
|
241
|
+
* ResourceHeartbeat — see there for why this row's throttle used to
|
|
242
|
+
* provide no throttling at all.
|
|
268
243
|
*/
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
* collector-supplied columns; if any one of them makes Postgres
|
|
280
|
-
* reject the statement, lastSeenAt silently stops advancing and
|
|
281
|
-
* markDisconnectedApplications flips a perfectly healthy RUM
|
|
282
|
-
* application to "disconnected" 15 minutes later — with telemetry
|
|
283
|
-
* still arriving the whole time. That was issue #3006 on the Host
|
|
284
|
-
* path (a host.ip list longer than the then-varchar(500) column).
|
|
285
|
-
* Retry with liveness only so the enrichment is what gets dropped,
|
|
286
|
-
* never the heartbeat.
|
|
287
|
-
*/
|
|
288
|
-
logger.warn(`RumApplicationService.updateLastSeen: metadata write failed for RUM application ${rumApplicationId.toString()}, falling back to a liveness-only update: ${err instanceof Error ? err.message : String(err)}`);
|
|
289
|
-
/*
|
|
290
|
-
* The throttle fingerprint was already stored, so without this the
|
|
291
|
-
* next batch would short-circuit on a cache hit and skip the retry
|
|
292
|
-
* for the rest of the window.
|
|
293
|
-
*/
|
|
294
|
-
try {
|
|
295
|
-
await GlobalCache.deleteKey(LAST_SEEN_CACHE_NAMESPACE, cacheKey);
|
|
296
|
-
}
|
|
297
|
-
catch (_f) {
|
|
298
|
-
// Best-effort; the fallback write below is what actually matters.
|
|
299
|
-
}
|
|
300
|
-
await this.updateColumnsByIdWithoutHooks({
|
|
301
|
-
id: rumApplicationId,
|
|
302
|
-
data: liveness,
|
|
303
|
-
});
|
|
304
|
-
}
|
|
244
|
+
await ResourceHeartbeat.write({
|
|
245
|
+
service: this,
|
|
246
|
+
id: rumApplicationId,
|
|
247
|
+
cacheNamespace: LAST_SEEN_CACHE_NAMESPACE,
|
|
248
|
+
throttleInSeconds: LAST_SEEN_THROTTLE_SECONDS,
|
|
249
|
+
liveness: liveness,
|
|
250
|
+
metadata: metadata,
|
|
251
|
+
fingerprint: extrasFingerprint,
|
|
252
|
+
describe: `rum application ${rumApplicationId.toString()}`,
|
|
253
|
+
});
|
|
305
254
|
}
|
|
306
255
|
/*
|
|
307
256
|
* Session replay ingest health markers.
|