@oneuptime/common 11.0.12 → 11.0.13
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/StatusPage.ts +0 -42
- package/Server/Infrastructure/Postgres/SchemaMigrations/1782700000000-RemoveDeprecatedEnableSubscribersFromStatusPage.ts +35 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +2 -0
- package/Server/Infrastructure/Queue.ts +122 -0
- package/Server/Types/Markdown.ts +103 -0
- package/Server/Utils/AnalyticsDatabase/StatementGenerator.ts +4 -1
- package/Server/Utils/CodeRepository/CodeRepository.ts +78 -0
- package/Server/Utils/Execute.ts +6 -0
- package/Server/Utils/Logger.ts +66 -0
- package/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.ts +75 -0
- package/build/dist/Models/DatabaseModels/StatusPage.js +0 -44
- package/build/dist/Models/DatabaseModels/StatusPage.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1782700000000-RemoveDeprecatedEnableSubscribersFromStatusPage.js +28 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1782700000000-RemoveDeprecatedEnableSubscribersFromStatusPage.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/Infrastructure/Queue.js +63 -0
- package/build/dist/Server/Infrastructure/Queue.js.map +1 -1
- package/build/dist/Server/Types/Markdown.js +87 -0
- package/build/dist/Server/Types/Markdown.js.map +1 -1
- package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js +3 -0
- package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js.map +1 -1
- package/build/dist/Server/Utils/CodeRepository/CodeRepository.js +60 -0
- package/build/dist/Server/Utils/CodeRepository/CodeRepository.js.map +1 -1
- package/build/dist/Server/Utils/Execute.js +1 -3
- package/build/dist/Server/Utils/Execute.js.map +1 -1
- package/build/dist/Server/Utils/Logger.js +49 -1
- package/build/dist/Server/Utils/Logger.js.map +1 -1
- package/package.json +1 -1
|
@@ -26,7 +26,38 @@ export function getLogAttributesFromRequest(req) {
|
|
|
26
26
|
return {};
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
|
-
|
|
29
|
+
class logger {
|
|
30
|
+
static record(level, body) {
|
|
31
|
+
try {
|
|
32
|
+
const message = this.serializeLogBody(body);
|
|
33
|
+
this.recentLogs.push({
|
|
34
|
+
time: new Date().toISOString(),
|
|
35
|
+
level: level,
|
|
36
|
+
message: message.length > this.maxRecentLogMessageLength
|
|
37
|
+
? `${message.substring(0, this.maxRecentLogMessageLength)}… (truncated)`
|
|
38
|
+
: message,
|
|
39
|
+
});
|
|
40
|
+
/*
|
|
41
|
+
* Trim in batches rather than on every push so this stays O(1) amortised
|
|
42
|
+
* on the logging hot path: only re-slice once we have grown past a soft
|
|
43
|
+
* ceiling above the target size.
|
|
44
|
+
*/
|
|
45
|
+
if (this.recentLogs.length >
|
|
46
|
+
this.maxRecentLogs + this.recentLogTrimSlack) {
|
|
47
|
+
this.recentLogs = this.recentLogs.slice(-this.maxRecentLogs);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
catch (_a) {
|
|
51
|
+
// Never let log capture break the app.
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
// Newest-last snapshot of the recent-log ring buffer (optionally the last N).
|
|
55
|
+
static getRecentLogs(limit) {
|
|
56
|
+
if (!limit || limit >= this.recentLogs.length) {
|
|
57
|
+
return [...this.recentLogs];
|
|
58
|
+
}
|
|
59
|
+
return this.recentLogs.slice(this.recentLogs.length - limit);
|
|
60
|
+
}
|
|
30
61
|
static getLogLevel() {
|
|
31
62
|
if (!LogLevel) {
|
|
32
63
|
return ConfigLogLevel.INFO;
|
|
@@ -65,6 +96,7 @@ export default class logger {
|
|
|
65
96
|
if (logLevel === ConfigLogLevel.DEBUG || logLevel === ConfigLogLevel.INFO) {
|
|
66
97
|
// eslint-disable-next-line no-console
|
|
67
98
|
console.info(message);
|
|
99
|
+
this.record("INFO", message);
|
|
68
100
|
this.emit({
|
|
69
101
|
body: message,
|
|
70
102
|
severityNumber: SeverityNumber.INFO,
|
|
@@ -80,6 +112,7 @@ export default class logger {
|
|
|
80
112
|
logLevel === ConfigLogLevel.ERROR) {
|
|
81
113
|
// eslint-disable-next-line no-console
|
|
82
114
|
console.error(message);
|
|
115
|
+
this.record("ERROR", message);
|
|
83
116
|
this.emit({
|
|
84
117
|
body: message,
|
|
85
118
|
severityNumber: SeverityNumber.ERROR,
|
|
@@ -94,6 +127,7 @@ export default class logger {
|
|
|
94
127
|
logLevel === ConfigLogLevel.WARN) {
|
|
95
128
|
// eslint-disable-next-line no-console
|
|
96
129
|
console.warn(message);
|
|
130
|
+
this.record("WARN", message);
|
|
97
131
|
this.emit({
|
|
98
132
|
body: message,
|
|
99
133
|
severityNumber: SeverityNumber.WARN,
|
|
@@ -106,6 +140,7 @@ export default class logger {
|
|
|
106
140
|
if (logLevel === ConfigLogLevel.DEBUG) {
|
|
107
141
|
// eslint-disable-next-line no-console
|
|
108
142
|
console.debug(message);
|
|
143
|
+
this.record("DEBUG", message);
|
|
109
144
|
this.emit({
|
|
110
145
|
body: message,
|
|
111
146
|
severityNumber: SeverityNumber.DEBUG,
|
|
@@ -137,6 +172,7 @@ export default class logger {
|
|
|
137
172
|
if (logLevel === ConfigLogLevel.DEBUG) {
|
|
138
173
|
// eslint-disable-next-line no-console
|
|
139
174
|
console.trace(message);
|
|
175
|
+
this.record("TRACE", message);
|
|
140
176
|
this.emit({
|
|
141
177
|
body: message,
|
|
142
178
|
severityNumber: SeverityNumber.DEBUG,
|
|
@@ -145,4 +181,16 @@ export default class logger {
|
|
|
145
181
|
}
|
|
146
182
|
}
|
|
147
183
|
}
|
|
184
|
+
/*
|
|
185
|
+
* In-memory ring buffer of the most recent log lines this process emitted.
|
|
186
|
+
* The app writes logs to stdout only (no on-disk file), so this is the one
|
|
187
|
+
* way the master-admin support bundle / health dashboard can surface this
|
|
188
|
+
* instance's own recent logs for debugging — there is no path to the
|
|
189
|
+
* container's stdout or to other containers' logs from inside the process.
|
|
190
|
+
*/
|
|
191
|
+
logger.recentLogs = [];
|
|
192
|
+
logger.maxRecentLogs = 1000;
|
|
193
|
+
logger.recentLogTrimSlack = 256;
|
|
194
|
+
logger.maxRecentLogMessageLength = 4000;
|
|
195
|
+
export default logger;
|
|
148
196
|
//# sourceMappingURL=Logger.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../../../Server/Utils/Logger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,kBAAuC,MAAM,aAAa,CAAC;AAClE,OAAO,gBAAgB,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,SAAS,MAAM,iCAAiC,CAAC;AAExD,OAAO,cAAc,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"Logger.js","sourceRoot":"","sources":["../../../../Server/Utils/Logger.ts"],"names":[],"mappings":"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"}
|