@oneuptime/common 10.5.9 → 10.5.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Models/AnalyticsModels/ExceptionInstance.ts +1 -1
- package/Models/AnalyticsModels/Log.ts +1 -1
- package/Models/AnalyticsModels/Metric.ts +1 -1
- package/Models/AnalyticsModels/Profile.ts +1 -1
- package/Models/AnalyticsModels/ProfileSample.ts +1 -1
- package/Models/AnalyticsModels/Span.ts +1 -1
- package/Models/DatabaseModels/TelemetryException.ts +46 -34
- package/Models/DatabaseModels/TelemetryUsageBilling.ts +35 -2
- package/Server/API/AIAgentDataAPI.ts +25 -7
- package/Server/API/TelemetryAPI.ts +6 -0
- package/Server/API/TelemetryExceptionAPI.ts +6 -2
- package/Server/EnvironmentConfig.ts +27 -0
- package/Server/Infrastructure/ClickhouseDatabase.ts +21 -1
- package/Server/Infrastructure/Postgres/DataSourceOptions.ts +19 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1780381124553-MigrationName.ts +28 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1780382837019-MigrationName.ts +24 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1780387560604-MigrationName.ts +47 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1780388219225-MigrationName.ts +34 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +8 -0
- package/Server/Infrastructure/PostgresDatabase.ts +27 -1
- package/Server/Infrastructure/QueueWorker.ts +54 -4
- package/Server/Infrastructure/Redis.ts +11 -0
- package/Server/Services/AnalyticsDatabaseService.ts +87 -0
- package/Server/Services/DatabaseService.ts +73 -0
- package/Server/Services/TelemetryAttributeService.ts +38 -2
- package/Server/Services/TelemetryExceptionService.ts +24 -49
- package/Server/Services/TelemetryUsageBillingService.ts +289 -166
- package/Server/Types/AnalyticsDatabase/ModelPermission.ts +102 -72
- package/Server/Types/Database/Permissions/OwnedScopePermission.ts +81 -60
- package/Server/Types/Database/Permissions/OwnerTableRegistry.ts +67 -0
- package/Server/Utils/Express.ts +32 -0
- package/Server/Utils/GracefulShutdown.ts +194 -0
- package/Server/Utils/Logger.ts +12 -1
- package/Server/Utils/Monitor/MonitorLogUtil.ts +22 -17
- package/Server/Utils/Profiling.ts +14 -6
- package/Server/Utils/StartServer.ts +13 -5
- package/Server/Utils/Telemetry/ContextSpanProcessor.ts +48 -0
- package/Server/Utils/Telemetry/LogExceptionExtractor.ts +289 -0
- package/Server/Utils/Telemetry/SpanUtil.ts +16 -35
- package/Server/Utils/Telemetry/StackTraceParser.ts +423 -0
- package/Server/Utils/Telemetry/TelemetryContext.ts +190 -0
- package/Server/Utils/Telemetry.ts +33 -7
- package/Tests/Server/Services/TelemetryAttributeService.test.ts +83 -0
- package/Tests/Server/Utils/Telemetry/LogExceptionExtractor.test.ts +0 -0
- package/Types/Database/AccessControl/OwnedThrough.ts +31 -3
- package/Types/Telemetry/ServiceType.ts +10 -0
- package/UI/Components/AutocompleteTextInput/AutocompleteTextInput.tsx +7 -1
- package/UI/Components/Dictionary/Dictionary.tsx +19 -0
- package/UI/Components/Filters/FiltersForm.tsx +1 -0
- package/UI/Components/Filters/JSONFilter.tsx +2 -0
- package/UI/Components/Filters/Types/Filter.ts +1 -0
- package/UI/Components/LogsViewer/LogsViewer.tsx +16 -0
- package/UI/Utils/Project.ts +6 -0
- package/UI/Utils/Telemetry/Telemetry.ts +65 -0
- package/UI/Utils/TelemetryService.ts +150 -0
- package/build/dist/Models/AnalyticsModels/ExceptionInstance.js +1 -1
- package/build/dist/Models/AnalyticsModels/ExceptionInstance.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/Log.js +1 -1
- package/build/dist/Models/AnalyticsModels/Log.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/Metric.js +1 -1
- package/build/dist/Models/AnalyticsModels/Metric.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/Profile.js +1 -1
- package/build/dist/Models/AnalyticsModels/Profile.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/ProfileSample.js +1 -1
- package/build/dist/Models/AnalyticsModels/ProfileSample.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/Span.js +1 -1
- package/build/dist/Models/AnalyticsModels/Span.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TelemetryException.js +47 -33
- package/build/dist/Models/DatabaseModels/TelemetryException.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TelemetryUsageBilling.js +36 -2
- package/build/dist/Models/DatabaseModels/TelemetryUsageBilling.js.map +1 -1
- package/build/dist/Server/API/AIAgentDataAPI.js +24 -8
- package/build/dist/Server/API/AIAgentDataAPI.js.map +1 -1
- package/build/dist/Server/API/TelemetryAPI.js +4 -0
- package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
- package/build/dist/Server/API/TelemetryExceptionAPI.js +6 -2
- package/build/dist/Server/API/TelemetryExceptionAPI.js.map +1 -1
- package/build/dist/Server/EnvironmentConfig.js +19 -0
- package/build/dist/Server/EnvironmentConfig.js.map +1 -1
- package/build/dist/Server/Infrastructure/ClickhouseDatabase.js +16 -2
- package/build/dist/Server/Infrastructure/ClickhouseDatabase.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/DataSourceOptions.js +10 -9
- package/build/dist/Server/Infrastructure/Postgres/DataSourceOptions.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780381124553-MigrationName.js +23 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780381124553-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780382837019-MigrationName.js +19 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780382837019-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780387560604-MigrationName.js +22 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780387560604-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780388219225-MigrationName.js +25 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1780388219225-MigrationName.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +8 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Infrastructure/PostgresDatabase.js +20 -1
- package/build/dist/Server/Infrastructure/PostgresDatabase.js.map +1 -1
- package/build/dist/Server/Infrastructure/QueueWorker.js +40 -3
- package/build/dist/Server/Infrastructure/QueueWorker.js.map +1 -1
- package/build/dist/Server/Infrastructure/Redis.js +5 -0
- package/build/dist/Server/Infrastructure/Redis.js.map +1 -1
- package/build/dist/Server/Services/AnalyticsDatabaseService.js +59 -0
- package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
- package/build/dist/Server/Services/DatabaseService.js +62 -0
- package/build/dist/Server/Services/DatabaseService.js.map +1 -1
- package/build/dist/Server/Services/TelemetryAttributeService.js +23 -1
- package/build/dist/Server/Services/TelemetryAttributeService.js.map +1 -1
- package/build/dist/Server/Services/TelemetryExceptionService.js +16 -41
- package/build/dist/Server/Services/TelemetryExceptionService.js.map +1 -1
- package/build/dist/Server/Services/TelemetryUsageBillingService.js +211 -147
- package/build/dist/Server/Services/TelemetryUsageBillingService.js.map +1 -1
- package/build/dist/Server/Types/AnalyticsDatabase/ModelPermission.js +84 -63
- package/build/dist/Server/Types/AnalyticsDatabase/ModelPermission.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/OwnedScopePermission.js +67 -49
- package/build/dist/Server/Types/Database/Permissions/OwnedScopePermission.js.map +1 -1
- package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js +51 -0
- package/build/dist/Server/Types/Database/Permissions/OwnerTableRegistry.js.map +1 -1
- package/build/dist/Server/Utils/Express.js +23 -0
- package/build/dist/Server/Utils/Express.js.map +1 -1
- package/build/dist/Server/Utils/GracefulShutdown.js +145 -0
- package/build/dist/Server/Utils/GracefulShutdown.js.map +1 -0
- package/build/dist/Server/Utils/Logger.js +8 -1
- package/build/dist/Server/Utils/Logger.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorLogUtil.js +12 -10
- package/build/dist/Server/Utils/Monitor/MonitorLogUtil.js.map +1 -1
- package/build/dist/Server/Utils/Profiling.js +8 -3
- package/build/dist/Server/Utils/Profiling.js.map +1 -1
- package/build/dist/Server/Utils/StartServer.js +12 -4
- package/build/dist/Server/Utils/StartServer.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/ContextSpanProcessor.js +37 -0
- package/build/dist/Server/Utils/Telemetry/ContextSpanProcessor.js.map +1 -0
- package/build/dist/Server/Utils/Telemetry/LogExceptionExtractor.js +214 -0
- package/build/dist/Server/Utils/Telemetry/LogExceptionExtractor.js.map +1 -0
- package/build/dist/Server/Utils/Telemetry/SpanUtil.js +15 -24
- package/build/dist/Server/Utils/Telemetry/SpanUtil.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/StackTraceParser.js +365 -0
- package/build/dist/Server/Utils/Telemetry/StackTraceParser.js.map +1 -0
- package/build/dist/Server/Utils/Telemetry/TelemetryContext.js +124 -0
- package/build/dist/Server/Utils/Telemetry/TelemetryContext.js.map +1 -0
- package/build/dist/Server/Utils/Telemetry.js +22 -5
- package/build/dist/Server/Utils/Telemetry.js.map +1 -1
- package/build/dist/Tests/Server/Services/TelemetryAttributeService.test.js +50 -0
- package/build/dist/Tests/Server/Services/TelemetryAttributeService.test.js.map +1 -0
- package/build/dist/Tests/Server/Utils/Telemetry/LogExceptionExtractor.test.js +0 -0
- package/build/dist/Tests/Server/Utils/Telemetry/LogExceptionExtractor.test.js.map +1 -0
- package/build/dist/Types/Database/AccessControl/OwnedThrough.js +7 -2
- package/build/dist/Types/Database/AccessControl/OwnedThrough.js.map +1 -1
- package/build/dist/Types/Telemetry/ServiceType.js +10 -0
- package/build/dist/Types/Telemetry/ServiceType.js.map +1 -1
- package/build/dist/UI/Components/AutocompleteTextInput/AutocompleteTextInput.js +7 -1
- package/build/dist/UI/Components/AutocompleteTextInput/AutocompleteTextInput.js.map +1 -1
- package/build/dist/UI/Components/Dictionary/Dictionary.js +10 -0
- package/build/dist/UI/Components/Dictionary/Dictionary.js.map +1 -1
- package/build/dist/UI/Components/Filters/FiltersForm.js +1 -1
- package/build/dist/UI/Components/Filters/FiltersForm.js.map +1 -1
- package/build/dist/UI/Components/Filters/JSONFilter.js +1 -1
- package/build/dist/UI/Components/Filters/JSONFilter.js.map +1 -1
- package/build/dist/UI/Components/LogsViewer/LogsViewer.js +15 -0
- package/build/dist/UI/Components/LogsViewer/LogsViewer.js.map +1 -1
- package/build/dist/UI/Utils/Project.js +5 -0
- package/build/dist/UI/Utils/Project.js.map +1 -1
- package/build/dist/UI/Utils/Telemetry/Telemetry.js +44 -0
- package/build/dist/UI/Utils/Telemetry/Telemetry.js.map +1 -1
- package/build/dist/UI/Utils/TelemetryService.js +113 -0
- package/build/dist/UI/Utils/TelemetryService.js.map +1 -0
- package/package.json +1 -1
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import MonitorLogService from "../../Services/MonitorLogService";
|
|
2
2
|
import GlobalConfigService from "../../Services/GlobalConfigService";
|
|
3
3
|
import logger from "../Logger";
|
|
4
|
+
import GracefulShutdown, { ShutdownPriority } from "../GracefulShutdown";
|
|
4
5
|
import OneUptimeDate from "../../../Types/Date";
|
|
5
6
|
import ObjectID from "../../../Types/ObjectID";
|
|
6
7
|
/*
|
|
@@ -167,17 +168,19 @@ class MonitorLogUtil {
|
|
|
167
168
|
}
|
|
168
169
|
}
|
|
169
170
|
/*
|
|
170
|
-
* Register
|
|
171
|
-
*
|
|
172
|
-
*
|
|
173
|
-
*
|
|
171
|
+
* Register the shutdown flush exactly once, lazily on first ingest. We avoid
|
|
172
|
+
* registering at module-load time so tooling that imports this file (e.g.
|
|
173
|
+
* migration runners, CLI scripts) doesn't end up holding a stray handler.
|
|
174
|
+
*
|
|
175
|
+
* Runs in the Buffers tier — ahead of the DataStores tier — so the buffer is
|
|
176
|
+
* drained to Clickhouse before the datastore pools are torn down.
|
|
174
177
|
*/
|
|
175
178
|
static ensureShutdownHooks() {
|
|
176
179
|
if (this.shutdownHooksRegistered) {
|
|
177
180
|
return;
|
|
178
181
|
}
|
|
179
182
|
this.shutdownHooksRegistered = true;
|
|
180
|
-
|
|
183
|
+
GracefulShutdown.registerHandler("MonitorLogUtil", ShutdownPriority.Buffers, async () => {
|
|
181
184
|
try {
|
|
182
185
|
await this.flushAndWait();
|
|
183
186
|
}
|
|
@@ -185,9 +188,7 @@ class MonitorLogUtil {
|
|
|
185
188
|
logger.error("Error flushing MonitorLog buffer on shutdown:");
|
|
186
189
|
logger.error(err);
|
|
187
190
|
}
|
|
188
|
-
};
|
|
189
|
-
process.on("SIGTERM", flushOnShutdown);
|
|
190
|
-
process.on("SIGINT", flushOnShutdown);
|
|
191
|
+
});
|
|
191
192
|
}
|
|
192
193
|
}
|
|
193
194
|
// Default retention in days if GlobalConfig is not set
|
|
@@ -201,8 +202,9 @@ MonitorLogUtil.CACHE_TTL_MS = 5 * 60 * 1000; // 5 minutes
|
|
|
201
202
|
* here until either MONITOR_LOG_FLUSH_BATCH_SIZE rows arrive
|
|
202
203
|
* (size trigger) or MONITOR_LOG_FLUSH_INTERVAL_MS elapses since
|
|
203
204
|
* the first row entered an empty buffer (time trigger),
|
|
204
|
-
* whichever comes first. On graceful shutdown the
|
|
205
|
-
*
|
|
205
|
+
* whichever comes first. On graceful shutdown the registered
|
|
206
|
+
* GracefulShutdown handler below drains the buffer (in the
|
|
207
|
+
* Buffers tier, before the datastores are torn down).
|
|
206
208
|
*/
|
|
207
209
|
MonitorLogUtil.buffer = [];
|
|
208
210
|
MonitorLogUtil.flushTimer = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MonitorLogUtil.js","sourceRoot":"","sources":["../../../../../Server/Utils/Monitor/MonitorLogUtil.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,kCAAkC,CAAC;AACjE,OAAO,mBAAmB,MAAM,oCAAoC,CAAC;AAErE,OAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,OAAO,aAAa,MAAM,qBAAqB,CAAC;AAChD,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAI/C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,4BAA4B,GAAW,KAAM,CAAC;AACpD,MAAM,6BAA6B,GAAW,IAAK,CAAC;AAEpD,MAAqB,cAAc;
|
|
1
|
+
{"version":3,"file":"MonitorLogUtil.js","sourceRoot":"","sources":["../../../../../Server/Utils/Monitor/MonitorLogUtil.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import Pyroscope from "@pyroscope/nodejs";
|
|
2
2
|
import { EnableProfiling } from "../EnvironmentConfig";
|
|
3
3
|
import logger from "./Logger";
|
|
4
|
+
import GracefulShutdown, { ShutdownPriority } from "./GracefulShutdown";
|
|
4
5
|
export default class Profiling {
|
|
5
6
|
static init(data) {
|
|
6
7
|
if (!EnableProfiling) {
|
|
@@ -31,11 +32,15 @@ export default class Profiling {
|
|
|
31
32
|
logger.error("Failed to initialize profiling:", profilingLogAttributes);
|
|
32
33
|
logger.error(err, profilingLogAttributes);
|
|
33
34
|
}
|
|
34
|
-
|
|
35
|
-
|
|
35
|
+
// Stop the profiler last (Telemetry tier), alongside the OTEL flush.
|
|
36
|
+
GracefulShutdown.registerHandler("Profiling", ShutdownPriority.Telemetry, async () => {
|
|
37
|
+
try {
|
|
38
|
+
await Pyroscope.stop();
|
|
39
|
+
}
|
|
40
|
+
catch (err) {
|
|
36
41
|
logger.error("Error stopping profiler:", profilingLogAttributes);
|
|
37
42
|
logger.error(err, profilingLogAttributes);
|
|
38
|
-
}
|
|
43
|
+
}
|
|
39
44
|
});
|
|
40
45
|
}
|
|
41
46
|
static getServerAddress() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Profiling.js","sourceRoot":"","sources":["../../../../Server/Utils/Profiling.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,MAAyB,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"Profiling.js","sourceRoot":"","sources":["../../../../Server/Utils/Profiling.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ import logger, { getLogAttributesFromRequest, } from "./Logger";
|
|
|
9
9
|
import "./Process";
|
|
10
10
|
import Response from "./Response";
|
|
11
11
|
import SpanUtil from "./Telemetry/SpanUtil";
|
|
12
|
+
import TelemetryContext from "./Telemetry/TelemetryContext";
|
|
12
13
|
import { api } from "@opentelemetry/sdk-node";
|
|
13
14
|
import StatusCode from "../../Types/API/StatusCode";
|
|
14
15
|
import HTTPErrorResponse from "../../Types/API/HTTPErrorResponse";
|
|
@@ -142,11 +143,18 @@ app.use((_req, _res, next) => {
|
|
|
142
143
|
app.use((req, _res, next) => {
|
|
143
144
|
const requestId = crypto.randomUUID();
|
|
144
145
|
req.requestId = requestId;
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
146
|
+
/*
|
|
147
|
+
* Open a telemetry-context scope for the entire request. requestId is seeded
|
|
148
|
+
* here; projectId/userId are added later by the auth middleware. Because
|
|
149
|
+
* ContextSpanProcessor and Logger read this ambient context, every span and
|
|
150
|
+
* log produced downstream inherits it automatically.
|
|
151
|
+
*/
|
|
152
|
+
TelemetryContext.runWithContext({ requestId: requestId }, () => {
|
|
153
|
+
SpanUtil.addAttributesToCurrentSpan({
|
|
154
|
+
requestId: requestId,
|
|
155
|
+
});
|
|
156
|
+
next();
|
|
148
157
|
});
|
|
149
|
-
next();
|
|
150
158
|
});
|
|
151
159
|
const init = async (data) => {
|
|
152
160
|
const { appName, port, isFrontendApp = false } = data;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StartServer.js","sourceRoot":"","sources":["../../../../Server/Utils/StartServer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"StartServer.js","sourceRoot":"","sources":["../../../../Server/Utils/StartServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import TelemetryContext from "./TelemetryContext";
|
|
2
|
+
/**
|
|
3
|
+
* Copies the ambient {@link TelemetryContext} attributes (projectId, userId,
|
|
4
|
+
* monitorId, incidentId, requestId, ...) onto every span at creation time.
|
|
5
|
+
*
|
|
6
|
+
* Combined with `TelemetryContext` scopes seeded at each entry point (HTTP
|
|
7
|
+
* request, worker job, probe check, cron run), this makes the full
|
|
8
|
+
* tenant/business context queryable on all spans — including the ~1958
|
|
9
|
+
* attribute-less `@CaptureSpan` spans — without touching any of those call
|
|
10
|
+
* sites.
|
|
11
|
+
*/
|
|
12
|
+
export default class ContextSpanProcessor {
|
|
13
|
+
onStart(span, _parentContext) {
|
|
14
|
+
try {
|
|
15
|
+
const attributes = TelemetryContext.getAttributes();
|
|
16
|
+
for (const key in attributes) {
|
|
17
|
+
const value = attributes[key];
|
|
18
|
+
if (value !== undefined && value !== null) {
|
|
19
|
+
span.setAttribute(key, value);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
catch (_a) {
|
|
24
|
+
// Context enrichment must never break span creation.
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
onEnd(_span) {
|
|
28
|
+
// no-op: enrichment happens entirely in onStart.
|
|
29
|
+
}
|
|
30
|
+
shutdown() {
|
|
31
|
+
return Promise.resolve();
|
|
32
|
+
}
|
|
33
|
+
forceFlush() {
|
|
34
|
+
return Promise.resolve();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=ContextSpanProcessor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ContextSpanProcessor.js","sourceRoot":"","sources":["../../../../../Server/Utils/Telemetry/ContextSpanProcessor.ts"],"names":[],"mappings":"AAAA,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAQlD;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,OAAO,oBAAoB;IAChC,OAAO,CAAC,IAAU,EAAE,cAAuB;QAChD,IAAI,CAAC;YACH,MAAM,UAAU,GACd,gBAAgB,CAAC,aAAa,EAAE,CAAC;YAEnC,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;gBAC7B,MAAM,KAAK,GAA0C,UAAU,CAAC,GAAG,CAAC,CAAC;gBAErE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;oBAC1C,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC;QACH,CAAC;QAAC,WAAM,CAAC;YACP,qDAAqD;QACvD,CAAC;IACH,CAAC;IAEM,KAAK,CAAC,KAAmB;QAC9B,iDAAiD;IACnD,CAAC;IAEM,QAAQ;QACb,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAEM,UAAU;QACf,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;CACF"}
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
import StackTraceParser from "./StackTraceParser";
|
|
2
|
+
/**
|
|
3
|
+
* OTel log severityNumber >= 17 is ERROR (17-20) or FATAL (21-24). Path B only
|
|
4
|
+
* scans those — the overwhelming majority of logs are below this and never
|
|
5
|
+
* reach the parser.
|
|
6
|
+
*/
|
|
7
|
+
const MIN_ERROR_SEVERITY_NUMBER = 17;
|
|
8
|
+
/**
|
|
9
|
+
* Only the first 16 KB of a body is parsed. A clean single-record stack trace
|
|
10
|
+
* fits comfortably (~150 frames); the top frames are the most diagnostic and
|
|
11
|
+
* are at the front. Guards against pathological multi-megabyte error logs on
|
|
12
|
+
* the hot path.
|
|
13
|
+
*/
|
|
14
|
+
const MAX_PARSE_BODY_LENGTH = 16 * 1024;
|
|
15
|
+
/*
|
|
16
|
+
* Raw log bodies are unbounded (unlike SDK-bounded span exception.stacktrace),
|
|
17
|
+
* so clamp what we store into the ZSTD stackTrace column and the Postgres summary.
|
|
18
|
+
*/
|
|
19
|
+
const MAX_STORED_STACK_TRACE_LENGTH = 64 * 1024;
|
|
20
|
+
const MAX_MESSAGE_LENGTH = 1024;
|
|
21
|
+
/**
|
|
22
|
+
* Single pre-compiled signature for "this body plausibly contains a stack
|
|
23
|
+
* trace". Evaluated once before the (more expensive) multi-language parser.
|
|
24
|
+
* Covers: Python traceback header, JS/Java `at file:line`, Go panic/goroutine,
|
|
25
|
+
* Python `File "...", line N`, and a typed `SomethingException`/`SomethingError`.
|
|
26
|
+
*/
|
|
27
|
+
const LOOKS_LIKE_STACK_TRACE = /(?:Traceback \(most recent call last\)|\n\s+at\s+.+:\d+|\bpanic:\s|goroutine\s+\d+\s+\[|\n\s*File\s+"[^"]+",\s+line\s+\d+|\b[A-Za-z_][\w.$]*(?:Exception|Error)\b)/;
|
|
28
|
+
// Header parsers for deriving exceptionType + message from a raw body.
|
|
29
|
+
const PYTHON_TRACEBACK_HEADER = /^Traceback \(most recent call last\):/;
|
|
30
|
+
const JAVA_THREAD_PREFIX = /^Exception in thread\s+"[^"]*"\s+(.*)$/;
|
|
31
|
+
const GO_PANIC = /^panic:\s*(.*)$/;
|
|
32
|
+
/*
|
|
33
|
+
* Leading identifier is optional so a bare "Error: msg" / "Exception: msg"
|
|
34
|
+
* (common in Node.js) matches as well as "TypeError" / "java.lang.IOException".
|
|
35
|
+
*/
|
|
36
|
+
const TYPED_ERROR = /^((?:[A-Za-z_][\w.$]*)?(?:Error|Exception|Warning|Fault))(?::\s*([\s\S]*))?$/;
|
|
37
|
+
const QUALIFIED_TYPE = /^([A-Za-z_][\w.$]*\.[A-Za-z_][\w.$]*):\s*(.*)$/;
|
|
38
|
+
export default class LogExceptionExtractor {
|
|
39
|
+
/**
|
|
40
|
+
* Detect an exception in a single log record. Returns null when none is
|
|
41
|
+
* found. Never throws — extraction must never fail log ingest.
|
|
42
|
+
*/
|
|
43
|
+
static extractFromLogRecord(input) {
|
|
44
|
+
try {
|
|
45
|
+
/*
|
|
46
|
+
* Path A — explicit OTel exception.* attributes. Always on, cheapest,
|
|
47
|
+
* highest-signal (the app explicitly recorded an exception on the log).
|
|
48
|
+
*/
|
|
49
|
+
const fromAttributes = LogExceptionExtractor.extractFromAttributes(input.attributes);
|
|
50
|
+
if (fromAttributes) {
|
|
51
|
+
return fromAttributes;
|
|
52
|
+
}
|
|
53
|
+
// Path B — raw body scan. Gated to keep the hot path cheap.
|
|
54
|
+
if (input.severityNumber < MIN_ERROR_SEVERITY_NUMBER) {
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
if (input.hasTraceAndSpan) {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
return LogExceptionExtractor.extractFromBody(input.body);
|
|
61
|
+
}
|
|
62
|
+
catch (_a) {
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
static extractFromAttributes(attributes) {
|
|
67
|
+
if (!attributes) {
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
const stackTrace = asString(attributes["exception.stacktrace"]);
|
|
71
|
+
const exceptionType = asString(attributes["exception.type"]);
|
|
72
|
+
const message = asString(attributes["exception.message"]);
|
|
73
|
+
if (!stackTrace && !exceptionType && !message) {
|
|
74
|
+
return null;
|
|
75
|
+
}
|
|
76
|
+
const clampedStack = clamp(stackTrace, MAX_STORED_STACK_TRACE_LENGTH);
|
|
77
|
+
let parsedFrames = "[]";
|
|
78
|
+
if (clampedStack) {
|
|
79
|
+
try {
|
|
80
|
+
const parsed = StackTraceParser.parse(clampedStack);
|
|
81
|
+
parsedFrames = JSON.stringify(parsed.frames);
|
|
82
|
+
}
|
|
83
|
+
catch (_a) {
|
|
84
|
+
parsedFrames = "[]";
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return {
|
|
88
|
+
message: clamp(message, MAX_MESSAGE_LENGTH),
|
|
89
|
+
exceptionType: exceptionType,
|
|
90
|
+
stackTrace: clampedStack,
|
|
91
|
+
parsedFrames: parsedFrames,
|
|
92
|
+
escaped: toNullableBoolean(attributes["exception.escaped"]),
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
static extractFromBody(body) {
|
|
96
|
+
if (!body) {
|
|
97
|
+
return null;
|
|
98
|
+
}
|
|
99
|
+
const sliced = body.length > MAX_PARSE_BODY_LENGTH
|
|
100
|
+
? body.slice(0, MAX_PARSE_BODY_LENGTH)
|
|
101
|
+
: body;
|
|
102
|
+
if (!LOOKS_LIKE_STACK_TRACE.test(sliced)) {
|
|
103
|
+
return null;
|
|
104
|
+
}
|
|
105
|
+
const parsed = StackTraceParser.parse(sliced);
|
|
106
|
+
/*
|
|
107
|
+
* Require at least one parsed frame. A signature match with zero frames is
|
|
108
|
+
* usually prose that merely mentions "...Error:" / "...Exception" — not an
|
|
109
|
+
* actual stack trace. Path A is the path allowed to emit without frames.
|
|
110
|
+
*/
|
|
111
|
+
if (!parsed.frames || parsed.frames.length === 0) {
|
|
112
|
+
return null;
|
|
113
|
+
}
|
|
114
|
+
const header = LogExceptionExtractor.parseHeader(sliced);
|
|
115
|
+
return {
|
|
116
|
+
message: clamp(header.message, MAX_MESSAGE_LENGTH),
|
|
117
|
+
exceptionType: header.exceptionType,
|
|
118
|
+
stackTrace: clamp(sliced, MAX_STORED_STACK_TRACE_LENGTH),
|
|
119
|
+
parsedFrames: JSON.stringify(parsed.frames),
|
|
120
|
+
escaped: null,
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Best-effort derivation of exceptionType + message from a raw stack-trace
|
|
125
|
+
* body. A stable, clean exceptionType improves grouping and exception-monitor
|
|
126
|
+
* targeting, but a miss is harmless — the fingerprint also uses the message
|
|
127
|
+
* and the normalized stack trace.
|
|
128
|
+
*/
|
|
129
|
+
static parseHeader(body) {
|
|
130
|
+
const lines = body
|
|
131
|
+
.split("\n")
|
|
132
|
+
.map((l) => {
|
|
133
|
+
return l.trim();
|
|
134
|
+
})
|
|
135
|
+
.filter((l) => {
|
|
136
|
+
return l.length > 0;
|
|
137
|
+
});
|
|
138
|
+
if (lines.length === 0) {
|
|
139
|
+
return { exceptionType: "", message: "" };
|
|
140
|
+
}
|
|
141
|
+
/*
|
|
142
|
+
* Python: header is "Traceback (most recent call last):"; the "Type: message"
|
|
143
|
+
* line is at the BOTTOM of the traceback, so scan upward for it.
|
|
144
|
+
*/
|
|
145
|
+
if (PYTHON_TRACEBACK_HEADER.test(lines[0])) {
|
|
146
|
+
for (let i = lines.length - 1; i >= 0; i--) {
|
|
147
|
+
const candidate = lines[i].match(TYPED_ERROR);
|
|
148
|
+
if (candidate) {
|
|
149
|
+
return {
|
|
150
|
+
exceptionType: candidate[1] || "",
|
|
151
|
+
message: (candidate[2] || "").trim(),
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
// Truncated traceback with no type line — keep the last line as message.
|
|
156
|
+
return { exceptionType: "", message: lines[lines.length - 1] };
|
|
157
|
+
}
|
|
158
|
+
// Strip Java's "Exception in thread "name"" prefix if present.
|
|
159
|
+
let firstLine = lines[0];
|
|
160
|
+
const threadMatch = firstLine.match(JAVA_THREAD_PREFIX);
|
|
161
|
+
if (threadMatch) {
|
|
162
|
+
firstLine = threadMatch[1].trim();
|
|
163
|
+
}
|
|
164
|
+
const goMatch = firstLine.match(GO_PANIC);
|
|
165
|
+
if (goMatch) {
|
|
166
|
+
return { exceptionType: "panic", message: (goMatch[1] || "").trim() };
|
|
167
|
+
}
|
|
168
|
+
// "TypeError: msg", "java.lang.NullPointerException: msg", "...Exception"
|
|
169
|
+
const typedMatch = firstLine.match(TYPED_ERROR);
|
|
170
|
+
if (typedMatch) {
|
|
171
|
+
return {
|
|
172
|
+
exceptionType: typedMatch[1] || "",
|
|
173
|
+
message: (typedMatch[2] || "").trim(),
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
// Generic qualified "pkg.Sub.Type: msg"
|
|
177
|
+
const qualifiedMatch = firstLine.match(QUALIFIED_TYPE);
|
|
178
|
+
if (qualifiedMatch) {
|
|
179
|
+
return {
|
|
180
|
+
exceptionType: qualifiedMatch[1] || "",
|
|
181
|
+
message: (qualifiedMatch[2] || "").trim(),
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
return { exceptionType: "", message: firstLine };
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
function asString(value) {
|
|
188
|
+
if (typeof value === "string") {
|
|
189
|
+
return value;
|
|
190
|
+
}
|
|
191
|
+
return "";
|
|
192
|
+
}
|
|
193
|
+
function toNullableBoolean(value) {
|
|
194
|
+
if (typeof value === "boolean") {
|
|
195
|
+
return value;
|
|
196
|
+
}
|
|
197
|
+
if (typeof value === "string") {
|
|
198
|
+
const normalized = value.trim().toLowerCase();
|
|
199
|
+
if (normalized === "true") {
|
|
200
|
+
return true;
|
|
201
|
+
}
|
|
202
|
+
if (normalized === "false") {
|
|
203
|
+
return false;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
return null;
|
|
207
|
+
}
|
|
208
|
+
function clamp(value, max) {
|
|
209
|
+
if (value && value.length > max) {
|
|
210
|
+
return value.slice(0, max);
|
|
211
|
+
}
|
|
212
|
+
return value;
|
|
213
|
+
}
|
|
214
|
+
//# sourceMappingURL=LogExceptionExtractor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LogExceptionExtractor.js","sourceRoot":"","sources":["../../../../../Server/Utils/Telemetry/LogExceptionExtractor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,26 @@
|
|
|
1
|
-
import OpenTelemetryAPI from "@opentelemetry/api";
|
|
2
1
|
import { DisableTelemetry } from "../../EnvironmentConfig";
|
|
2
|
+
import TelemetryContext from "./TelemetryContext";
|
|
3
|
+
import OpenTelemetryAPI from "@opentelemetry/api";
|
|
3
4
|
export default class SpanUtil {
|
|
4
5
|
/**
|
|
5
|
-
* Add attributes to the
|
|
6
|
-
*
|
|
6
|
+
* Add attributes to the current unit of work.
|
|
7
|
+
*
|
|
8
|
+
* This does two things:
|
|
9
|
+
* 1. Merges the attributes into the ambient {@link TelemetryContext} so that
|
|
10
|
+
* every span and log produced later in this request/job/check inherits
|
|
11
|
+
* them (OTel span attributes do NOT propagate parent -> child on their
|
|
12
|
+
* own, so this is what actually makes context flow downstream).
|
|
13
|
+
* 2. Tags the currently active span immediately, if there is one.
|
|
14
|
+
*
|
|
15
|
+
* Safe to call even when there is no active span or scope, or when telemetry
|
|
16
|
+
* is disabled.
|
|
7
17
|
*/
|
|
8
18
|
static addAttributesToCurrentSpan(attributes) {
|
|
9
19
|
if (DisableTelemetry) {
|
|
10
20
|
return;
|
|
11
21
|
}
|
|
22
|
+
// Propagate to all downstream spans + logs via the ambient context.
|
|
23
|
+
TelemetryContext.setAttributes(attributes);
|
|
12
24
|
const span = OpenTelemetryAPI.trace.getActiveSpan();
|
|
13
25
|
if (!span) {
|
|
14
26
|
return;
|
|
@@ -27,26 +39,5 @@ export default class SpanUtil {
|
|
|
27
39
|
}
|
|
28
40
|
}
|
|
29
41
|
}
|
|
30
|
-
/**
|
|
31
|
-
* Build span attributes from a request-like object.
|
|
32
|
-
* Similar to getLogAttributesFromRequest in Logger but for spans.
|
|
33
|
-
*/
|
|
34
|
-
static getSpanAttributesFromRequest(req) {
|
|
35
|
-
var _a;
|
|
36
|
-
if (!req) {
|
|
37
|
-
return {};
|
|
38
|
-
}
|
|
39
|
-
const attributes = {};
|
|
40
|
-
if (req.requestId) {
|
|
41
|
-
attributes["requestId"] = req.requestId;
|
|
42
|
-
}
|
|
43
|
-
if (req.tenantId) {
|
|
44
|
-
attributes["projectId"] = req.tenantId.toString();
|
|
45
|
-
}
|
|
46
|
-
if ((_a = req.userAuthorization) === null || _a === void 0 ? void 0 : _a.userId) {
|
|
47
|
-
attributes["userId"] = req.userAuthorization.userId.toString();
|
|
48
|
-
}
|
|
49
|
-
return attributes;
|
|
50
|
-
}
|
|
51
42
|
}
|
|
52
43
|
//# sourceMappingURL=SpanUtil.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SpanUtil.js","sourceRoot":"","sources":["../../../../../Server/Utils/Telemetry/SpanUtil.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"SpanUtil.js","sourceRoot":"","sources":["../../../../../Server/Utils/Telemetry/SpanUtil.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAClD,OAAO,gBAA0B,MAAM,oBAAoB,CAAC;AAoB5D,MAAM,CAAC,OAAO,OAAO,QAAQ;IAC3B;;;;;;;;;;;;OAYG;IACI,MAAM,CAAC,0BAA0B,CAAC,UAA0B;QACjE,IAAI,gBAAgB,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QAED,oEAAoE;QACpE,gBAAgB,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QAE3C,MAAM,IAAI,GAAqB,gBAAgB,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;QAEtE,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;QACT,CAAC;QAED,IAAI,CAAC,mBAAmB,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACI,MAAM,CAAC,mBAAmB,CAAC,IAGjC;QACC,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QAElC,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,MAAM,KAAK,GAA0C,UAAU,CAAC,GAAG,CAAC,CAAC;YAErE,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBAC1C,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|