@dasasian/firebase-structured-logger 0.7.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +183 -17
- package/dist/client/logger.d.ts +16 -0
- package/dist/client/logger.d.ts.map +1 -1
- package/dist/client/logger.js +137 -18
- package/dist/client/logger.js.map +1 -1
- package/dist/client/rateLimiter.d.ts +98 -10
- package/dist/client/rateLimiter.d.ts.map +1 -1
- package/dist/client/rateLimiter.js +282 -18
- package/dist/client/rateLimiter.js.map +1 -1
- package/dist/functions/httpHandler.d.ts.map +1 -1
- package/dist/functions/httpHandler.js +3 -0
- package/dist/functions/httpHandler.js.map +1 -1
- package/dist/functions/logHandler.d.ts +2 -1
- package/dist/functions/logHandler.d.ts.map +1 -1
- package/dist/functions/logHandler.js +16 -3
- package/dist/functions/logHandler.js.map +1 -1
- package/dist/functions/logger.d.ts +13 -0
- package/dist/functions/logger.d.ts.map +1 -1
- package/dist/functions/logger.js +299 -14
- package/dist/functions/logger.js.map +1 -1
- package/dist/functions/sourceMapCache.d.ts +14 -4
- package/dist/functions/sourceMapCache.d.ts.map +1 -1
- package/dist/functions/sourceMapCache.js +95 -6
- package/dist/functions/sourceMapCache.js.map +1 -1
- package/dist/functions/traceContext.d.ts +21 -7
- package/dist/functions/traceContext.d.ts.map +1 -1
- package/dist/functions/traceContext.js +60 -12
- package/dist/functions/traceContext.js.map +1 -1
- package/dist/shared/types.d.ts +7 -0
- package/dist/shared/types.d.ts.map +1 -1
- package/package.json +11 -5
- package/skills/query-logs/SKILL.md +35 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logHandler.js","sourceRoot":"","sources":["../../src/functions/logHandler.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"logHandler.js","sourceRoot":"","sources":["../../src/functions/logHandler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,17 @@
|
|
|
1
|
+
import type { write as FirebaseWrite } from "firebase-functions/logger";
|
|
1
2
|
import type { LogSeverity, LogPayload } from "../shared/types";
|
|
3
|
+
type EntryWriter = typeof FirebaseWrite;
|
|
4
|
+
/**
|
|
5
|
+
* What firebase-functions' `write()` does, minus the trace id: one JSON line, WARNING
|
|
6
|
+
* and above to stderr and the rest to stdout (its console mapping), and a
|
|
7
|
+
* self-referencing object written as "[Circular]" rather than throwing. Cloud Run's log
|
|
8
|
+
* agent promotes `severity`, `message` and the `logging.googleapis.com/*` keys exactly
|
|
9
|
+
* as Cloud Functions does.
|
|
10
|
+
*
|
|
11
|
+
* Writes to the streams, not `console`: firebase-functions' compat module patches
|
|
12
|
+
* `console`, and a patched `console.error` would wrap this line a second time.
|
|
13
|
+
*/
|
|
14
|
+
export declare function writeJsonLine(entry: Parameters<EntryWriter>[0]): void;
|
|
2
15
|
export declare const LOG_FILENAME = "dev.jsonl";
|
|
3
16
|
interface FunctionsLoggerConfig {
|
|
4
17
|
appId: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/functions/logger.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/functions/logger.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,KAAK,IAAI,aAAa,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAmB,MAAM,iBAAiB,CAAC;AAQhF,KAAK,WAAW,GAAG,OAAO,aAAa,CAAC;AA+CxC;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAKrE;AAkKD,eAAO,MAAM,YAAY,cAAc,CAAC;AAExC,UAAU,qBAAqB;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAKD;;;GAGG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,qBAAqB,GAAG,IAAI,CAQ9D;AAoFD;;GAEG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC1C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CASxB;AAED;;GAEG;AACH,wBAAgB,QAAQ,CACtB,OAAO,EAAE,UAAU,GAAG;IAAE,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAClE,IAAI,CAoON;AAaD;;GAEG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;eAuBrC,OAAO,WACH,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,YACjC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,gBACnB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GAC5C,IAAI;oBAWI,MAAM,WACN,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,YACjC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,gBACnB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KAC5C,IAAI;uBAEI,MAAM,WACN,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,YACjC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,gBACnB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KAC5C,IAAI;qBAEI,MAAM,WACN,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,YACjC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,gBACnB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KAC5C,IAAI;EAEV;AAED,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC;AAG3D,YAAY,EAAE,WAAW,EAAE,CAAC"}
|
package/dist/functions/logger.js
CHANGED
|
@@ -34,19 +34,232 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.LOG_FILENAME = void 0;
|
|
37
|
+
exports.writeJsonLine = writeJsonLine;
|
|
37
38
|
exports.initLogger = initLogger;
|
|
38
39
|
exports.cleanLabels = cleanLabels;
|
|
39
40
|
exports.writeLog = writeLog;
|
|
40
41
|
exports.createLogWriter = createLogWriter;
|
|
41
42
|
const fs = __importStar(require("fs"));
|
|
42
43
|
const path = __importStar(require("path"));
|
|
43
|
-
const logger_1 = require("firebase-functions/logger");
|
|
44
44
|
const ulid_1 = require("ulid");
|
|
45
45
|
const severity_1 = require("../shared/severity");
|
|
46
46
|
const error_1 = require("../shared/error");
|
|
47
47
|
const sourceMapCache_1 = require("./sourceMapCache");
|
|
48
48
|
const paths_js_1 = require("../shared/paths.js");
|
|
49
49
|
const traceContext_1 = require("./traceContext");
|
|
50
|
+
/**
|
|
51
|
+
* OPTIONAL PEER — firebase-functions is loaded lazily, on purpose.
|
|
52
|
+
*
|
|
53
|
+
* On Cloud Functions it is always installed, and its `write()` is the only way to
|
|
54
|
+
* attach the trace id of the current invocation: every v2 trigger (HTTP, callable,
|
|
55
|
+
* Firestore, Pub/Sub, scheduler…) reads it from the incoming request and keeps it in
|
|
56
|
+
* a store the package does not export. So where it exists, we use it.
|
|
57
|
+
*
|
|
58
|
+
* On Cloud Run, or any Node server behind `createHttpLogHandler`, it is not installed,
|
|
59
|
+
* and a top-level import made this whole entry point fail on `require` there (#39).
|
|
60
|
+
* Without it, `writeJsonLine` does the same job and traceContext supplies the trace.
|
|
61
|
+
*
|
|
62
|
+
* `require` rather than `await import`: `writeLog` is synchronous, and in this
|
|
63
|
+
* CommonJS build a dynamic import compiles to `require` anyway.
|
|
64
|
+
*/
|
|
65
|
+
function loadFirebaseWrite() {
|
|
66
|
+
try {
|
|
67
|
+
return require("firebase-functions/logger").write;
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
let entryWriter;
|
|
74
|
+
function writeEntry(entry) {
|
|
75
|
+
entryWriter ??= loadFirebaseWrite() ?? writeJsonLine;
|
|
76
|
+
entryWriter(entry);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* JSON.stringify with a circular-safe replacer: a self-referencing object is
|
|
80
|
+
* written as "[Circular]" rather than throwing. Shared by writeJsonLine and the
|
|
81
|
+
* entry-size budget below — both have to measure/emit the exact same bytes.
|
|
82
|
+
*/
|
|
83
|
+
function safeStringify(value) {
|
|
84
|
+
const seen = new WeakSet();
|
|
85
|
+
return JSON.stringify(value, (_key, v) => {
|
|
86
|
+
if (typeof v !== "object" || v === null)
|
|
87
|
+
return v;
|
|
88
|
+
if (seen.has(v))
|
|
89
|
+
return "[Circular]";
|
|
90
|
+
seen.add(v);
|
|
91
|
+
return v;
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* What firebase-functions' `write()` does, minus the trace id: one JSON line, WARNING
|
|
96
|
+
* and above to stderr and the rest to stdout (its console mapping), and a
|
|
97
|
+
* self-referencing object written as "[Circular]" rather than throwing. Cloud Run's log
|
|
98
|
+
* agent promotes `severity`, `message` and the `logging.googleapis.com/*` keys exactly
|
|
99
|
+
* as Cloud Functions does.
|
|
100
|
+
*
|
|
101
|
+
* Writes to the streams, not `console`: firebase-functions' compat module patches
|
|
102
|
+
* `console`, and a patched `console.error` would wrap this line a second time.
|
|
103
|
+
*/
|
|
104
|
+
function writeJsonLine(entry) {
|
|
105
|
+
const line = safeStringify(entry);
|
|
106
|
+
const toStderr = (0, severity_1.isLogSeverity)(entry.severity) && severity_1.SEVERITY_ORDER[entry.severity] <= severity_1.SEVERITY_ORDER.WARNING;
|
|
107
|
+
(toStderr ? process.stderr : process.stdout).write(line + "\n");
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Cloud Functions and Cloud Run both cut a stdout/stderr log line at exactly
|
|
111
|
+
* 102,400 bytes (100 KiB) — past that, the platform delivers it as broken
|
|
112
|
+
* plain text with no severity or labels, and Error Reporting never sees it
|
|
113
|
+
* (issue #21). The margin below that ceiling covers firebase-functions adding
|
|
114
|
+
* its own trace field after this measurement, plus multi-byte UTF-8
|
|
115
|
+
* characters, which count for more bytes than JS string length.
|
|
116
|
+
*/
|
|
117
|
+
const MAX_ENTRY_BYTES = 90 * 1024;
|
|
118
|
+
const MAX_FIELD_BYTES = 8 * 1024;
|
|
119
|
+
const MAX_LABEL_BYTES = 1024;
|
|
120
|
+
const OVERFLOW_ATTACHMENT_NAME = "fsl-overflow.json";
|
|
121
|
+
const STACK_TRUNCATION_MARKER = " … truncated by fsl";
|
|
122
|
+
function entryByteLength(entry) {
|
|
123
|
+
return Buffer.byteLength(safeStringify(entry), "utf-8");
|
|
124
|
+
}
|
|
125
|
+
/** Cut a string to `maxBytes` UTF-8 bytes, ending in "…" when it was cut. */
|
|
126
|
+
function truncateToBytes(text, maxBytes) {
|
|
127
|
+
if (Buffer.byteLength(text, "utf-8") <= maxBytes)
|
|
128
|
+
return text;
|
|
129
|
+
// Binary search the largest prefix (in UTF-16 code units) whose UTF-8
|
|
130
|
+
// encoding still fits, leaving room for the ellipsis.
|
|
131
|
+
let lo = 0;
|
|
132
|
+
let hi = text.length;
|
|
133
|
+
while (lo < hi) {
|
|
134
|
+
const mid = Math.ceil((lo + hi) / 2);
|
|
135
|
+
if (Buffer.byteLength(text.slice(0, mid), "utf-8") <= maxBytes - 3)
|
|
136
|
+
lo = mid;
|
|
137
|
+
else
|
|
138
|
+
hi = mid - 1;
|
|
139
|
+
}
|
|
140
|
+
return text.slice(0, lo) + "…";
|
|
141
|
+
}
|
|
142
|
+
/** Keep the first `keepLines` lines of a stack, noting that it was cut. */
|
|
143
|
+
function truncateStackLines(stack, keepLines) {
|
|
144
|
+
const lines = stack.split("\n");
|
|
145
|
+
if (lines.length <= keepLines)
|
|
146
|
+
return stack;
|
|
147
|
+
return [...lines.slice(0, keepLines), STACK_TRUNCATION_MARKER].join("\n");
|
|
148
|
+
}
|
|
149
|
+
// Top-level keys writeLog itself puts on the entry, or that it spreads
|
|
150
|
+
// straight from jsonPayload.error/breadcrumbs. Anything else spread from
|
|
151
|
+
// jsonPayload (context, or a future field) is an "other payload key" for
|
|
152
|
+
// shrink step (b). severity, the two logging.googleapis.com/* keys and
|
|
153
|
+
// serviceContext are never removed by any step.
|
|
154
|
+
const PROTECTED_ENTRY_KEYS = new Set([
|
|
155
|
+
"severity",
|
|
156
|
+
"timestamp",
|
|
157
|
+
"message",
|
|
158
|
+
"logging.googleapis.com/labels",
|
|
159
|
+
"logging.googleapis.com/trace",
|
|
160
|
+
"stack_trace",
|
|
161
|
+
"serviceContext",
|
|
162
|
+
"error",
|
|
163
|
+
"breadcrumbs",
|
|
164
|
+
"timestamp",
|
|
165
|
+
]);
|
|
166
|
+
/** Keep only the last 10 breadcrumbs, each with its `data` field removed. */
|
|
167
|
+
function shrinkBreadcrumbs(breadcrumbs) {
|
|
168
|
+
return breadcrumbs.slice(-10).map(({ data: _data, ...rest }) => rest);
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Shrink a too-large entry, re-measuring after each step and stopping as soon
|
|
172
|
+
* as it fits under MAX_ENTRY_BYTES. Order runs from least to most useful:
|
|
173
|
+
* breadcrumb `data` first, then whole non-error payload keys, then the tail of
|
|
174
|
+
* a stack (Error Reporting groups on the top frames, so those are kept
|
|
175
|
+
* longest), then long text fields, and label values only as a last resort.
|
|
176
|
+
*
|
|
177
|
+
* Builds new objects at every step — the caller's original entry (and the
|
|
178
|
+
* copy saved as the overflow attachment) must not be mutated.
|
|
179
|
+
*/
|
|
180
|
+
function shrinkEntry(original) {
|
|
181
|
+
const fits = (entry) => entryByteLength(entry) <= MAX_ENTRY_BYTES;
|
|
182
|
+
let entry = original;
|
|
183
|
+
if (fits(entry))
|
|
184
|
+
return entry;
|
|
185
|
+
// a. breadcrumbs -> last 10, without `data`.
|
|
186
|
+
if (Array.isArray(entry.breadcrumbs)) {
|
|
187
|
+
entry = { ...entry, breadcrumbs: shrinkBreadcrumbs(entry.breadcrumbs) };
|
|
188
|
+
if (fits(entry))
|
|
189
|
+
return entry;
|
|
190
|
+
}
|
|
191
|
+
// b. every other jsonPayload key (context, and anything else a caller adds).
|
|
192
|
+
const extraKeys = Object.keys(entry).filter((k) => !PROTECTED_ENTRY_KEYS.has(k));
|
|
193
|
+
if (extraKeys.length > 0) {
|
|
194
|
+
const trimmed = { ...entry };
|
|
195
|
+
for (const key of extraKeys)
|
|
196
|
+
delete trimmed[key];
|
|
197
|
+
entry = trimmed;
|
|
198
|
+
if (fits(entry))
|
|
199
|
+
return entry;
|
|
200
|
+
}
|
|
201
|
+
// c. stack_trace and error.stack -> the top frames matter most, so cut
|
|
202
|
+
// harder in steps rather than all the way in one go.
|
|
203
|
+
const originalStackTrace = typeof entry.stack_trace === "string" ? entry.stack_trace : undefined;
|
|
204
|
+
const originalError = entry.error;
|
|
205
|
+
const originalErrorStack = typeof originalError?.stack === "string" ? originalError.stack : undefined;
|
|
206
|
+
if (originalStackTrace !== undefined || originalErrorStack !== undefined) {
|
|
207
|
+
for (const keepLines of [30, 15, 7, 3, 1]) {
|
|
208
|
+
const next = { ...entry };
|
|
209
|
+
if (originalStackTrace !== undefined) {
|
|
210
|
+
next.stack_trace = truncateStackLines(originalStackTrace, keepLines);
|
|
211
|
+
}
|
|
212
|
+
if (originalErrorStack !== undefined) {
|
|
213
|
+
next.error = { ...originalError, stack: truncateStackLines(originalErrorStack, keepLines) };
|
|
214
|
+
}
|
|
215
|
+
entry = next;
|
|
216
|
+
if (fits(entry))
|
|
217
|
+
return entry;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
// d. message, error.message and error.cause -> 8 KiB each.
|
|
221
|
+
{
|
|
222
|
+
const next = { ...entry };
|
|
223
|
+
if (typeof next.message === "string")
|
|
224
|
+
next.message = truncateToBytes(next.message, MAX_FIELD_BYTES);
|
|
225
|
+
const error = next.error;
|
|
226
|
+
if (error) {
|
|
227
|
+
const nextError = { ...error };
|
|
228
|
+
if (typeof nextError.message === "string")
|
|
229
|
+
nextError.message = truncateToBytes(nextError.message, MAX_FIELD_BYTES);
|
|
230
|
+
if (typeof nextError.cause === "string")
|
|
231
|
+
nextError.cause = truncateToBytes(nextError.cause, MAX_FIELD_BYTES);
|
|
232
|
+
next.error = nextError;
|
|
233
|
+
}
|
|
234
|
+
entry = next;
|
|
235
|
+
if (fits(entry))
|
|
236
|
+
return entry;
|
|
237
|
+
}
|
|
238
|
+
// e. last resort: any label value over 1 KiB.
|
|
239
|
+
const labels = entry["logging.googleapis.com/labels"];
|
|
240
|
+
if (labels) {
|
|
241
|
+
const nextLabels = {};
|
|
242
|
+
for (const [k, v] of Object.entries(labels)) {
|
|
243
|
+
nextLabels[k] = Buffer.byteLength(v, "utf-8") > MAX_LABEL_BYTES ? truncateToBytes(v, MAX_LABEL_BYTES) : v;
|
|
244
|
+
}
|
|
245
|
+
entry = { ...entry, "logging.googleapis.com/labels": nextLabels };
|
|
246
|
+
}
|
|
247
|
+
return entry;
|
|
248
|
+
}
|
|
249
|
+
// Warned once per process, not per entry — an app producing one oversized
|
|
250
|
+
// entry usually produces many, and the cause is the same every time.
|
|
251
|
+
let warnedOverBudget = false;
|
|
252
|
+
function warnOverBudget(objectPath) {
|
|
253
|
+
if (warnedOverBudget)
|
|
254
|
+
return;
|
|
255
|
+
warnedOverBudget = true;
|
|
256
|
+
console.warn(`[fsl] A log entry was over ${MAX_ENTRY_BYTES} bytes. Cloud Functions and Cloud Run cut a ` +
|
|
257
|
+
"line at 102,400 bytes and it would have arrived broken, so it was shortened before writing.");
|
|
258
|
+
console.warn(objectPath
|
|
259
|
+
? `[fsl] The full entry was saved to ${objectPath}.`
|
|
260
|
+
: "[fsl] It was lost: there is no Storage to save the full entry to. " +
|
|
261
|
+
"Fix: name a bucket (createHttpLogHandler({ bucketName }) or configureAttachments({ bucket })).");
|
|
262
|
+
}
|
|
50
263
|
const IS_EMULATOR = process.env.FUNCTIONS_EMULATOR === "true";
|
|
51
264
|
exports.LOG_FILENAME = "dev.jsonl";
|
|
52
265
|
let globalConfig = null;
|
|
@@ -103,8 +316,7 @@ function rotateLogFile(logDir, maxRotatedFiles) {
|
|
|
103
316
|
console.warn("[fsl] Failed to rotate log file:", err);
|
|
104
317
|
}
|
|
105
318
|
}
|
|
106
|
-
async function uploadLogAttachments(logId, logAttachments) {
|
|
107
|
-
const bucket = (0, sourceMapCache_1.getAttachmentBucket)();
|
|
319
|
+
async function uploadLogAttachments(bucket, logId, logAttachments) {
|
|
108
320
|
await Promise.all(Object.entries(logAttachments).map(async ([name, data]) => {
|
|
109
321
|
const file = bucket.file((0, paths_js_1.attachmentPath)(logId, name, (0, sourceMapCache_1.getAttachmentPrefix)()));
|
|
110
322
|
await file.save(Buffer.from(data, "base64"));
|
|
@@ -151,7 +363,7 @@ function cleanLabels(labels) {
|
|
|
151
363
|
function writeLog(payload) {
|
|
152
364
|
// An unrecognised severity is not merely mislabelled — it is fatal. Both
|
|
153
365
|
// dispatches look the value up in a fixed table: CONSOLE_FN below, and
|
|
154
|
-
// firebase-functions' own CONSOLE_SEVERITY inside
|
|
366
|
+
// firebase-functions' own CONSOLE_SEVERITY inside its write(). A miss resolves to
|
|
155
367
|
// undefined and calling it throws, which Logger.send()'s catch then swallows,
|
|
156
368
|
// so the entry disappears with no useful diagnostic — and only in production,
|
|
157
369
|
// since the emulator takes the other branch.
|
|
@@ -175,14 +387,26 @@ function writeLog(payload) {
|
|
|
175
387
|
return;
|
|
176
388
|
}
|
|
177
389
|
const logId = (0, ulid_1.ulid)();
|
|
178
|
-
|
|
390
|
+
// Resolved before the labels, so `hasAttachments` is only claimed when there is
|
|
391
|
+
// somewhere to put them. With no Storage the attachments are dropped (warned once
|
|
392
|
+
// by getAttachmentBucket) and the entry is still written.
|
|
393
|
+
let attachmentBucket = null;
|
|
394
|
+
if (payload.attachments && Object.keys(payload.attachments).length > 0) {
|
|
395
|
+
try {
|
|
396
|
+
attachmentBucket = (0, sourceMapCache_1.getAttachmentBucket)();
|
|
397
|
+
}
|
|
398
|
+
catch (err) {
|
|
399
|
+
console.warn("[fsl] Log attachment upload failed:", err);
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
const hasAttachments = attachmentBucket !== null;
|
|
179
403
|
const labels = {
|
|
180
404
|
...payload.labels,
|
|
181
405
|
logId,
|
|
182
406
|
...(hasAttachments ? { hasAttachments: "true" } : {}),
|
|
183
407
|
};
|
|
184
|
-
if (
|
|
185
|
-
uploadLogAttachments(logId, payload.attachments).catch((err) => {
|
|
408
|
+
if (attachmentBucket) {
|
|
409
|
+
uploadLogAttachments(attachmentBucket, logId, payload.attachments).catch((err) => {
|
|
186
410
|
console.warn("[fsl] Log attachment upload failed:", err);
|
|
187
411
|
});
|
|
188
412
|
}
|
|
@@ -218,11 +442,12 @@ function writeLog(payload) {
|
|
|
218
442
|
CONSOLE_FN[severity](`[${severity}] ${payload.message}`, labels);
|
|
219
443
|
return;
|
|
220
444
|
}
|
|
221
|
-
// Production:
|
|
222
|
-
// This avoids server-side stack injection and
|
|
223
|
-
// automatic trace context injection for
|
|
445
|
+
// Production: firebase-functions' write() where it is installed, writeJsonLine
|
|
446
|
+
// where it is not (see loadFirebaseWrite) — bypassing entryFromArgs. This avoids server-side stack injection and
|
|
447
|
+
// jsonPayload nesting, while preserving automatic trace context injection for
|
|
448
|
+
// request correlation in Cloud Logging.
|
|
224
449
|
//
|
|
225
|
-
// Labels MUST be emitted under "logging.googleapis.com/labels".
|
|
450
|
+
// Labels MUST be emitted under "logging.googleapis.com/labels". write() does no
|
|
226
451
|
// mapping — it JSON-stringifies the object straight to stdout — and Cloud Logging
|
|
227
452
|
// only promotes specifically-named fields to the LogEntry. A plain `labels` key is
|
|
228
453
|
// not one of them, so it lands in jsonPayload.labels and `labels.appId="..."`
|
|
@@ -269,20 +494,80 @@ function writeLog(payload) {
|
|
|
269
494
|
return { ...rest, error: errorWithoutStack };
|
|
270
495
|
})()
|
|
271
496
|
: payload.jsonPayload;
|
|
272
|
-
// Set the trace ourselves when we have one.
|
|
497
|
+
// Set the trace ourselves when we have one. write() attaches this from
|
|
273
498
|
// firebase-functions' own store, which is only populated inside their request
|
|
274
499
|
// wrapper — empty on Cloud Run and anything behind createHttpLogHandler. When
|
|
275
500
|
// theirs IS populated it overwrites this, which is the right precedence: inside
|
|
276
501
|
// Cloud Functions their value is authoritative.
|
|
277
|
-
const trace = (0, traceContext_1.
|
|
278
|
-
|
|
502
|
+
const trace = (0, traceContext_1.traceField)();
|
|
503
|
+
// A repeat summary is timestamped at `lastSeen`, not at the moment it was
|
|
504
|
+
// sent — see README, "Repeats are counted, not dropped". Anything else
|
|
505
|
+
// keeps Cloud Logging's own ingestion time: `labels.repeatCount` is the only
|
|
506
|
+
// signal that this is a summary, so a plain entry that happens to carry a
|
|
507
|
+
// `timestamp` (an unrelated caller, or a replay) has it ignored rather than
|
|
508
|
+
// trusted. Bounded to the last 8 days and no more than 5 minutes into the
|
|
509
|
+
// future, so a malformed or stale value cannot backdate — or postdate — an
|
|
510
|
+
// entry into or out of a retention window.
|
|
511
|
+
// Written as `{ seconds, nanos }`: an RFC 3339 *string* under `timestamp` is
|
|
512
|
+
// not one of the shapes Cloud Logging's agent reads (it takes this object, a
|
|
513
|
+
// timestampSeconds/timestampNanos pair, or a `time` string), so it stays in
|
|
514
|
+
// jsonPayload and the entry keeps its ingestion time. The smoke run caught it.
|
|
515
|
+
let summaryTimestamp;
|
|
516
|
+
if (labels.repeatCount !== undefined && payload.timestamp) {
|
|
517
|
+
const parsed = Date.parse(payload.timestamp);
|
|
518
|
+
if (!Number.isNaN(parsed)) {
|
|
519
|
+
const now = Date.now();
|
|
520
|
+
const eightDaysMs = 8 * 24 * 60 * 60 * 1000;
|
|
521
|
+
const fiveMinutesMs = 5 * 60 * 1000;
|
|
522
|
+
if (now - parsed <= eightDaysMs && parsed - now <= fiveMinutesMs) {
|
|
523
|
+
summaryTimestamp = { seconds: Math.floor(parsed / 1000), nanos: (parsed % 1000) * 1_000_000 };
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
const finishedEntry = {
|
|
279
528
|
severity,
|
|
280
529
|
message: payload.message,
|
|
281
530
|
"logging.googleapis.com/labels": labels,
|
|
282
531
|
...(trace ? { "logging.googleapis.com/trace": trace } : {}),
|
|
283
532
|
...errorReporting,
|
|
284
533
|
...jsonPayload,
|
|
534
|
+
// Last, so a payload field of the same name cannot replace it.
|
|
535
|
+
...(summaryTimestamp ? { timestamp: summaryTimestamp } : {}),
|
|
536
|
+
};
|
|
537
|
+
if (entryByteLength(finishedEntry) <= MAX_ENTRY_BYTES) {
|
|
538
|
+
writeEntry(finishedEntry);
|
|
539
|
+
return;
|
|
540
|
+
}
|
|
541
|
+
// Over budget. Resolve a bucket for the overflow attachment the same way
|
|
542
|
+
// attachments do: firebase-admin can throw synchronously with no
|
|
543
|
+
// initialised app, and that is "no Storage", not a crash.
|
|
544
|
+
let overflowBucket = null;
|
|
545
|
+
try {
|
|
546
|
+
overflowBucket = (0, sourceMapCache_1.getAttachmentBucket)();
|
|
547
|
+
}
|
|
548
|
+
catch (err) {
|
|
549
|
+
console.warn("[fsl] Log attachment upload failed:", err);
|
|
550
|
+
}
|
|
551
|
+
const overflowPath = (0, paths_js_1.attachmentPath)(logId, OVERFLOW_ATTACHMENT_NAME, (0, sourceMapCache_1.getAttachmentPrefix)());
|
|
552
|
+
const shrunkEntry = shrinkEntry(finishedEntry);
|
|
553
|
+
const shrunkLabels = {
|
|
554
|
+
...shrunkEntry["logging.googleapis.com/labels"],
|
|
555
|
+
truncated: "true",
|
|
556
|
+
...(overflowBucket ? { hasAttachments: "true" } : {}),
|
|
557
|
+
};
|
|
558
|
+
writeEntry({
|
|
559
|
+
...shrunkEntry,
|
|
560
|
+
"logging.googleapis.com/labels": shrunkLabels,
|
|
285
561
|
});
|
|
562
|
+
if (overflowBucket) {
|
|
563
|
+
overflowBucket
|
|
564
|
+
.file(overflowPath)
|
|
565
|
+
.save(Buffer.from(safeStringify(finishedEntry), "utf-8"))
|
|
566
|
+
.catch((err) => {
|
|
567
|
+
console.warn(`[fsl] Overflow upload failed for ${overflowPath}:`, err);
|
|
568
|
+
});
|
|
569
|
+
}
|
|
570
|
+
warnOverBudget(overflowBucket ? overflowPath : undefined);
|
|
286
571
|
}
|
|
287
572
|
function logAttachmentsToBase64(logAttachments) {
|
|
288
573
|
if (!logAttachments)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/functions/logger.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/functions/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import type { Bucket } from '@google-cloud/storage';
|
|
2
2
|
import type { EncodedSourceMap } from '@jridgewell/trace-mapping';
|
|
3
|
+
/** Which step of the chain Storage resolves to. */
|
|
4
|
+
export type StorageSource = 'firebase-admin' | 'google-cloud-storage' | 'none';
|
|
5
|
+
/** Which step of the chain a lookup for `bucketName` would take. */
|
|
6
|
+
export declare function storageSource(bucketName?: string | undefined): StorageSource;
|
|
3
7
|
interface CacheEntry {
|
|
4
8
|
map: EncodedSourceMap | null;
|
|
5
9
|
bytes: number;
|
|
@@ -38,20 +42,26 @@ export declare function configureAttachments(options: {
|
|
|
38
42
|
bucket?: string;
|
|
39
43
|
prefix?: string;
|
|
40
44
|
}): void;
|
|
41
|
-
/**
|
|
42
|
-
|
|
45
|
+
/**
|
|
46
|
+
* Bucket for attachments: explicit, then the source-map bucket, then the project
|
|
47
|
+
* default. Null when there is no Storage at all — see loadFirebaseAdminStorage.
|
|
48
|
+
*/
|
|
49
|
+
export declare function getAttachmentBucket(): Bucket | null;
|
|
43
50
|
/** Prefix for attachments, defaulting to the documented one. */
|
|
44
51
|
export declare function getAttachmentPrefix(): string | undefined;
|
|
45
52
|
/** Reset attachment config. Tests only — production configures once at module load. */
|
|
46
53
|
export declare function resetAttachmentConfig(): void;
|
|
47
54
|
/**
|
|
48
|
-
* Resolve the configured Storage bucket, falling back to the project default
|
|
55
|
+
* Resolve the configured Storage bucket, falling back to the project default — or
|
|
56
|
+
* null when the chain ends with no Storage (see loadFirebaseAdminStorage).
|
|
49
57
|
*
|
|
50
58
|
* The return type is spelled out rather than inferred: without it the emitted
|
|
51
59
|
* `.d.ts` would need to name `Bucket` from a path inside `node_modules`, which
|
|
52
60
|
* TypeScript 7 rejects as non-portable (TS2883).
|
|
53
61
|
*/
|
|
54
|
-
export declare function getBucket(bucketName?: string | undefined): Bucket;
|
|
62
|
+
export declare function getBucket(bucketName?: string | undefined): Bucket | null;
|
|
63
|
+
/** Forget which Storage the chain resolved to, and the warning. Tests only. */
|
|
64
|
+
export declare function resetStorageResolution(): void;
|
|
55
65
|
/**
|
|
56
66
|
* Get source map — checks embedded first (instant), then Storage (for old releases).
|
|
57
67
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sourceMapCache.d.ts","sourceRoot":"","sources":["../../src/functions/sourceMapCache.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;
|
|
1
|
+
{"version":3,"file":"sourceMapCache.d.ts","sourceRoot":"","sources":["../../src/functions/sourceMapCache.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAkCjE,mDAAmD;AACnD,MAAM,MAAM,aAAa,GAAG,gBAAgB,GAAG,sBAAsB,GAAG,MAAM,CAAA;AAY9E,oEAAoE;AACpE,wBAAgB,aAAa,CAAC,UAAU,qBAAgB,GAAG,aAAa,CAGvE;AAkBD,UAAU,UAAU;IAClB,GAAG,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAC5B,KAAK,EAAE,MAAM,CAAA;CACd;AAgCD;;;;GAIG;AACH,eAAO,MAAM,eAAe;eACf,MAAM;eACN,MAAM,OAAO,gBAAgB,GAAG,IAAI,SAAS,MAAM;;;;;;;CAG/D,CAAA;AAuBD,wBAAgB,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAEjE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAGxF;AAKD;;;GAGG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,IAAI,CAEnD;AAED,gEAAgE;AAChE,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,SAAS,CAExD;AAED,uFAAuF;AACvF,wBAAgB,qBAAqB,IAAI,IAAI,CAG5C;AAED;;;;;;;GAOG;AACH,wBAAgB,SAAS,CAAC,UAAU,qBAAgB,GAAG,MAAM,GAAG,IAAI,CASnE;AAmBD,+EAA+E;AAC/E,wBAAgB,sBAAsB,IAAI,IAAI,CAI7C;AAuFD;;GAEG;AACH;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,YAAY,CAChC,SAAS,EAAE,MAAM,EACjB,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAkBlC;AA6CD,4CAA4C;AAC5C,wBAAgB,sBAAsB,IAAI,IAAI,CAG7C;AAiBD,wBAAgB,mBAAmB,IAAI,IAAI,CAM1C"}
|