@posthog/core 1.33.0 → 1.35.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/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +54 -18
- package/dist/index.mjs +3 -3
- package/dist/logs/index.d.ts +14 -15
- package/dist/logs/index.d.ts.map +1 -1
- package/dist/logs/index.js +46 -18
- package/dist/logs/index.mjs +47 -19
- package/dist/logs/logs-utils.d.ts +16 -1
- package/dist/logs/logs-utils.d.ts.map +1 -1
- package/dist/logs/logs-utils.js +17 -0
- package/dist/logs/logs-utils.mjs +15 -1
- package/dist/logs/types.d.ts +23 -38
- package/dist/logs/types.d.ts.map +1 -1
- package/dist/posthog-core.d.ts +20 -0
- package/dist/posthog-core.d.ts.map +1 -1
- package/dist/posthog-core.js +79 -10
- package/dist/posthog-core.mjs +79 -10
- package/dist/types.d.ts +19 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +2 -1
- package/src/logs/index.spec.ts +259 -0
- package/src/logs/index.ts +108 -49
- package/src/logs/logs-utils.ts +30 -1
- package/src/logs/types.ts +32 -37
- package/src/posthog-core.ts +120 -13
- package/src/types.ts +19 -0
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@posthog/core",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.35.0",
|
|
4
4
|
"bugs": {
|
|
5
5
|
"url": "https://github.com/PostHog/posthog-js/issues"
|
|
6
6
|
},
|
|
@@ -70,7 +70,7 @@
|
|
|
70
70
|
}
|
|
71
71
|
},
|
|
72
72
|
"dependencies": {
|
|
73
|
-
"@posthog/types": "^1.
|
|
73
|
+
"@posthog/types": "^1.389.0"
|
|
74
74
|
},
|
|
75
75
|
"devDependencies": {
|
|
76
76
|
"@rslib/core": "0.10.6",
|
package/src/index.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { getFeatureFlagValue } from './featureFlagUtils'
|
|
1
|
+
export { getFeatureFlagValue, getEnabledFromValue, getVariantFromValue, parsePayload } from './featureFlagUtils'
|
|
2
2
|
export {
|
|
3
3
|
gzipCompress,
|
|
4
4
|
isGzipData,
|
|
@@ -12,6 +12,7 @@ export * as ErrorTracking from './error-tracking'
|
|
|
12
12
|
export {
|
|
13
13
|
buildOtlpLogRecord,
|
|
14
14
|
buildOtlpLogsPayload,
|
|
15
|
+
buildResourceAttributes,
|
|
15
16
|
getOtlpSeverityNumber,
|
|
16
17
|
getOtlpSeverityText,
|
|
17
18
|
toOtlpAnyValue,
|
package/src/logs/index.spec.ts
CHANGED
|
@@ -256,6 +256,49 @@ describe('PostHogLogs', () => {
|
|
|
256
256
|
expect(queue.map((e) => e.record.body.stringValue)).toEqual(['two', 'three', 'four'])
|
|
257
257
|
})
|
|
258
258
|
|
|
259
|
+
it('holds a burst up to maxQueueSize, evicting only above it (flush trigger decoupled from eviction cap)', () => {
|
|
260
|
+
// maxBufferSize triggers a flush at 2, but the async drain can't run mid-burst,
|
|
261
|
+
// so the queue grows to the larger eviction cap (4) before the oldest is dropped.
|
|
262
|
+
const logs = new PostHogLogs(
|
|
263
|
+
mockInstance,
|
|
264
|
+
resolveForTest({ maxBufferSize: 2, maxQueueSize: 4 }),
|
|
265
|
+
logger,
|
|
266
|
+
getContextFor(mockInstance),
|
|
267
|
+
immediateOnReady
|
|
268
|
+
)
|
|
269
|
+
|
|
270
|
+
logs.captureLog({ body: 'one' })
|
|
271
|
+
logs.captureLog({ body: 'two' })
|
|
272
|
+
logs.captureLog({ body: 'three' })
|
|
273
|
+
logs.captureLog({ body: 'four' })
|
|
274
|
+
logs.captureLog({ body: 'five' })
|
|
275
|
+
|
|
276
|
+
const queue = readQueue(mockInstance)
|
|
277
|
+
// Grew past the flush trigger (2) to the eviction cap (4); only 'one' evicted.
|
|
278
|
+
expect(queue.map((e) => e.record.body.stringValue)).toEqual(['two', 'three', 'four', 'five'])
|
|
279
|
+
})
|
|
280
|
+
|
|
281
|
+
it('clamps a maxQueueSize below maxBufferSize up to maxBufferSize (flush trigger always reachable)', () => {
|
|
282
|
+
// A misconfigured eviction cap below the flush trigger would otherwise stop
|
|
283
|
+
// the size-based flush from ever firing; it collapses to single-knob instead.
|
|
284
|
+
const logs = new PostHogLogs(
|
|
285
|
+
mockInstance,
|
|
286
|
+
resolveForTest({ maxBufferSize: 3, maxQueueSize: 1 }),
|
|
287
|
+
logger,
|
|
288
|
+
getContextFor(mockInstance),
|
|
289
|
+
immediateOnReady
|
|
290
|
+
)
|
|
291
|
+
|
|
292
|
+
logs.captureLog({ body: 'one' })
|
|
293
|
+
logs.captureLog({ body: 'two' })
|
|
294
|
+
logs.captureLog({ body: 'three' })
|
|
295
|
+
logs.captureLog({ body: 'four' })
|
|
296
|
+
|
|
297
|
+
const queue = readQueue(mockInstance)
|
|
298
|
+
// Evicts at maxBufferSize (3), not the bogus maxQueueSize (1).
|
|
299
|
+
expect(queue.map((e) => e.record.body.stringValue)).toEqual(['two', 'three', 'four'])
|
|
300
|
+
})
|
|
301
|
+
|
|
259
302
|
it('logs a diagnostic when evicting on overflow', () => {
|
|
260
303
|
const logs = new PostHogLogs(
|
|
261
304
|
mockInstance,
|
|
@@ -808,6 +851,140 @@ describe('PostHogLogs', () => {
|
|
|
808
851
|
jest.advanceTimersByTime(5000)
|
|
809
852
|
expect(mockInstance._sendLogsBatch).toHaveBeenCalledTimes(1)
|
|
810
853
|
})
|
|
854
|
+
|
|
855
|
+
it('re-arms the timer after a failed flush so a retry happens without a new capture', async () => {
|
|
856
|
+
// First flush fails (retry-later keeps the records); the second succeeds.
|
|
857
|
+
mockInstance._sendLogsBatch = jest
|
|
858
|
+
.fn()
|
|
859
|
+
.mockResolvedValueOnce({ kind: 'retry-later', error: new Error('net') })
|
|
860
|
+
.mockResolvedValueOnce({ kind: 'ok' })
|
|
861
|
+
|
|
862
|
+
const logs = new PostHogLogs(
|
|
863
|
+
mockInstance,
|
|
864
|
+
resolveForTest({ flushIntervalMs: 5000 }),
|
|
865
|
+
logger,
|
|
866
|
+
getContextFor(mockInstance),
|
|
867
|
+
immediateOnReady
|
|
868
|
+
)
|
|
869
|
+
logs.captureLog({ body: 'retry-me' })
|
|
870
|
+
|
|
871
|
+
// First timer fires → flush #1 → retry-later → record retained, timer re-armed.
|
|
872
|
+
await jest.advanceTimersByTimeAsync(5000)
|
|
873
|
+
expect(mockInstance._sendLogsBatch).toHaveBeenCalledTimes(1)
|
|
874
|
+
expect(readQueue(mockInstance)).toHaveLength(1)
|
|
875
|
+
|
|
876
|
+
// No new capture: the re-armed timer alone fires the retry, which drains.
|
|
877
|
+
await jest.advanceTimersByTimeAsync(5000)
|
|
878
|
+
expect(mockInstance._sendLogsBatch).toHaveBeenCalledTimes(2)
|
|
879
|
+
expect(readQueue(mockInstance)).toHaveLength(0)
|
|
880
|
+
})
|
|
881
|
+
|
|
882
|
+
it('stops re-arming once the queue is empty', async () => {
|
|
883
|
+
const logs = new PostHogLogs(
|
|
884
|
+
mockInstance,
|
|
885
|
+
resolveForTest({ flushIntervalMs: 5000 }),
|
|
886
|
+
logger,
|
|
887
|
+
getContextFor(mockInstance),
|
|
888
|
+
immediateOnReady
|
|
889
|
+
)
|
|
890
|
+
logs.captureLog({ body: 'one' })
|
|
891
|
+
|
|
892
|
+
await jest.advanceTimersByTimeAsync(5000)
|
|
893
|
+
expect(mockInstance._sendLogsBatch).toHaveBeenCalledTimes(1)
|
|
894
|
+
expect(readQueue(mockInstance)).toHaveLength(0)
|
|
895
|
+
|
|
896
|
+
// Successful drain leaves nothing queued, so no further timer should fire.
|
|
897
|
+
await jest.advanceTimersByTimeAsync(20000)
|
|
898
|
+
expect(mockInstance._sendLogsBatch).toHaveBeenCalledTimes(1)
|
|
899
|
+
})
|
|
900
|
+
|
|
901
|
+
it('backs off exponentially across consecutive failed flushes', async () => {
|
|
902
|
+
// Every flush fails, so the record stays queued and the retry interval grows:
|
|
903
|
+
// base (initial), base (1st retry), 2x, 4x, ...
|
|
904
|
+
mockInstance._sendLogsBatch = jest.fn(() => Promise.resolve({ kind: 'retry-later', error: new Error('down') }))
|
|
905
|
+
const base = 1000
|
|
906
|
+
const logs = new PostHogLogs(
|
|
907
|
+
mockInstance,
|
|
908
|
+
resolveForTest({ flushIntervalMs: base }),
|
|
909
|
+
logger,
|
|
910
|
+
getContextFor(mockInstance),
|
|
911
|
+
immediateOnReady
|
|
912
|
+
)
|
|
913
|
+
logs.captureLog({ body: 'x' })
|
|
914
|
+
|
|
915
|
+
await jest.advanceTimersByTimeAsync(base) // initial timer → attempt #1
|
|
916
|
+
expect(mockInstance._sendLogsBatch).toHaveBeenCalledTimes(1)
|
|
917
|
+
await jest.advanceTimersByTimeAsync(base) // 1st retry still at base → attempt #2
|
|
918
|
+
expect(mockInstance._sendLogsBatch).toHaveBeenCalledTimes(2)
|
|
919
|
+
|
|
920
|
+
// Now backoff: next retry is 2x base — base alone must not fire it.
|
|
921
|
+
await jest.advanceTimersByTimeAsync(base)
|
|
922
|
+
expect(mockInstance._sendLogsBatch).toHaveBeenCalledTimes(2)
|
|
923
|
+
await jest.advanceTimersByTimeAsync(base) // 2x base elapsed → attempt #3
|
|
924
|
+
expect(mockInstance._sendLogsBatch).toHaveBeenCalledTimes(3)
|
|
925
|
+
|
|
926
|
+
// Next retry is 4x base.
|
|
927
|
+
await jest.advanceTimersByTimeAsync(2 * base)
|
|
928
|
+
expect(mockInstance._sendLogsBatch).toHaveBeenCalledTimes(3)
|
|
929
|
+
await jest.advanceTimersByTimeAsync(2 * base) // 4x base elapsed → attempt #4
|
|
930
|
+
expect(mockInstance._sendLogsBatch).toHaveBeenCalledTimes(4)
|
|
931
|
+
})
|
|
932
|
+
|
|
933
|
+
it('resets the backoff after a successful flush', async () => {
|
|
934
|
+
let shouldFail = true
|
|
935
|
+
mockInstance._sendLogsBatch = jest.fn(() =>
|
|
936
|
+
Promise.resolve(shouldFail ? { kind: 'retry-later', error: new Error('down') } : { kind: 'ok' })
|
|
937
|
+
)
|
|
938
|
+
const base = 1000
|
|
939
|
+
const logs = new PostHogLogs(
|
|
940
|
+
mockInstance,
|
|
941
|
+
resolveForTest({ flushIntervalMs: base }),
|
|
942
|
+
logger,
|
|
943
|
+
getContextFor(mockInstance),
|
|
944
|
+
immediateOnReady
|
|
945
|
+
)
|
|
946
|
+
logs.captureLog({ body: 'a' })
|
|
947
|
+
|
|
948
|
+
await jest.advanceTimersByTimeAsync(base) // attempt #1 fail (failures→1)
|
|
949
|
+
await jest.advanceTimersByTimeAsync(base) // attempt #2 fail (failures→2, next 2x)
|
|
950
|
+
await jest.advanceTimersByTimeAsync(2 * base) // attempt #3 fail (failures→3, next 4x)
|
|
951
|
+
shouldFail = false
|
|
952
|
+
await jest.advanceTimersByTimeAsync(4 * base) // attempt #4 succeeds → drains + resets
|
|
953
|
+
expect(readQueue(mockInstance)).toHaveLength(0)
|
|
954
|
+
|
|
955
|
+
// A new capture flushes at the base interval again, not the backed-off one.
|
|
956
|
+
;(mockInstance._sendLogsBatch as jest.Mock).mockClear()
|
|
957
|
+
logs.captureLog({ body: 'b' })
|
|
958
|
+
await jest.advanceTimersByTimeAsync(base)
|
|
959
|
+
expect(mockInstance._sendLogsBatch).toHaveBeenCalledTimes(1)
|
|
960
|
+
})
|
|
961
|
+
|
|
962
|
+
it('onReconnect flushes immediately without waiting out the backoff', async () => {
|
|
963
|
+
let shouldFail = true
|
|
964
|
+
mockInstance._sendLogsBatch = jest.fn(() =>
|
|
965
|
+
Promise.resolve(shouldFail ? { kind: 'retry-later', error: new Error('down') } : { kind: 'ok' })
|
|
966
|
+
)
|
|
967
|
+
const base = 1000
|
|
968
|
+
const logs = new PostHogLogs(
|
|
969
|
+
mockInstance,
|
|
970
|
+
resolveForTest({ flushIntervalMs: base }),
|
|
971
|
+
logger,
|
|
972
|
+
getContextFor(mockInstance),
|
|
973
|
+
immediateOnReady
|
|
974
|
+
)
|
|
975
|
+
logs.captureLog({ body: 'x' })
|
|
976
|
+
|
|
977
|
+
await jest.advanceTimersByTimeAsync(base) // attempt #1 fails → record retained, backoff armed
|
|
978
|
+
expect(mockInstance._sendLogsBatch).toHaveBeenCalledTimes(1)
|
|
979
|
+
expect(readQueue(mockInstance)).toHaveLength(1)
|
|
980
|
+
|
|
981
|
+
// Reconnect drains now — no timer advance needed.
|
|
982
|
+
shouldFail = false
|
|
983
|
+
logs.onReconnect()
|
|
984
|
+
await jest.advanceTimersByTimeAsync(0)
|
|
985
|
+
expect(mockInstance._sendLogsBatch).toHaveBeenCalledTimes(2)
|
|
986
|
+
expect(readQueue(mockInstance)).toHaveLength(0)
|
|
987
|
+
})
|
|
811
988
|
})
|
|
812
989
|
|
|
813
990
|
describe('shutdown', () => {
|
|
@@ -1029,6 +1206,14 @@ describe('PostHogLogs', () => {
|
|
|
1029
1206
|
expect(logger.info).toHaveBeenCalledWith('Log was rejected in beforeSend function')
|
|
1030
1207
|
})
|
|
1031
1208
|
|
|
1209
|
+
it('logs the same info line when a fn empties the body', () => {
|
|
1210
|
+
// An emptied body is a drop too, so it surfaces the same diagnostic as a
|
|
1211
|
+
// null return rather than vanishing silently.
|
|
1212
|
+
const logs = makeLogs((r) => ({ ...r, body: '' }))
|
|
1213
|
+
logs.captureLog({ body: 'will-be-emptied' })
|
|
1214
|
+
expect(logger.info).toHaveBeenCalledWith('Log was rejected in beforeSend function')
|
|
1215
|
+
})
|
|
1216
|
+
|
|
1032
1217
|
it('never crashes the caller when a fn throws — drops the record (fail closed) and logs', () => {
|
|
1033
1218
|
const thrower = jest.fn(() => {
|
|
1034
1219
|
throw new Error('bad filter')
|
|
@@ -1228,4 +1413,78 @@ describe('PostHogLogs', () => {
|
|
|
1228
1413
|
expect(mockInstance._sendLogsBatch).toHaveBeenCalledTimes(2)
|
|
1229
1414
|
})
|
|
1230
1415
|
})
|
|
1416
|
+
|
|
1417
|
+
describe('queue advance under FIFO eviction', () => {
|
|
1418
|
+
it('keeps records captured during an in-flight flush at capacity', async () => {
|
|
1419
|
+
// Regression: the advance used to drop `consumed` records positionally,
|
|
1420
|
+
// but the FIFO cap evicts from the head while a batch is in flight, so a
|
|
1421
|
+
// positional drop discarded the records that arrived during the send.
|
|
1422
|
+
let resolveSend: (v: any) => void = () => {}
|
|
1423
|
+
const sendGate = new Promise((r) => {
|
|
1424
|
+
resolveSend = r
|
|
1425
|
+
})
|
|
1426
|
+
mockInstance._sendLogsBatch = jest.fn(() => sendGate)
|
|
1427
|
+
|
|
1428
|
+
const logs = new PostHogLogs(
|
|
1429
|
+
mockInstance,
|
|
1430
|
+
resolveForTest({ maxBufferSize: 3, maxBatchRecordsPerPost: 3 }),
|
|
1431
|
+
logger,
|
|
1432
|
+
getContextFor(mockInstance),
|
|
1433
|
+
immediateOnReady
|
|
1434
|
+
)
|
|
1435
|
+
|
|
1436
|
+
// Fill to capacity → triggers a background flush that awaits the gate.
|
|
1437
|
+
logs.captureLog({ body: 'a' })
|
|
1438
|
+
logs.captureLog({ body: 'b' })
|
|
1439
|
+
logs.captureLog({ body: 'c' })
|
|
1440
|
+
expect(mockInstance._sendLogsBatch).toHaveBeenCalledTimes(1)
|
|
1441
|
+
|
|
1442
|
+
// While the send is in flight, two captures arrive at capacity and evict
|
|
1443
|
+
// the (already-sent) head records a and b.
|
|
1444
|
+
logs.captureLog({ body: 'd' })
|
|
1445
|
+
logs.captureLog({ body: 'e' })
|
|
1446
|
+
|
|
1447
|
+
resolveSend({ kind: 'ok' })
|
|
1448
|
+
await logs.flush()
|
|
1449
|
+
|
|
1450
|
+
// The sent batch [a, b, c] leaves the queue; d and e survive for next flush.
|
|
1451
|
+
expect(readQueue(mockInstance).map((entry) => entry.record.body.stringValue)).toEqual(['d', 'e'])
|
|
1452
|
+
})
|
|
1453
|
+
|
|
1454
|
+
it('advances correctly across batches when eviction happens between iterations', async () => {
|
|
1455
|
+
// Regression: the eviction counter was reset once per flush, so an eviction
|
|
1456
|
+
// during the persist-await between batches got counted against the NEXT
|
|
1457
|
+
// batch's advance — under-dropping and re-sending an already-sent record.
|
|
1458
|
+
const entry = (body: string): any => ({ record: { body: { stringValue: body } } })
|
|
1459
|
+
mockInstance._store[PostHogPersistedProperty.LogsQueue] = [entry('a'), entry('b'), entry('c'), entry('d')]
|
|
1460
|
+
mockInstance._sendLogsBatch = jest.fn(() => Promise.resolve({ kind: 'ok' }))
|
|
1461
|
+
|
|
1462
|
+
let persistCalls = 0
|
|
1463
|
+
let logs: PostHogLogs
|
|
1464
|
+
// eslint-disable-next-line prefer-const
|
|
1465
|
+
logs = new PostHogLogs(
|
|
1466
|
+
mockInstance,
|
|
1467
|
+
resolveForTest({ maxBufferSize: 4, maxQueueSize: 4, maxBatchRecordsPerPost: 2 }),
|
|
1468
|
+
logger,
|
|
1469
|
+
getContextFor(mockInstance),
|
|
1470
|
+
immediateOnReady,
|
|
1471
|
+
() => {
|
|
1472
|
+
persistCalls++
|
|
1473
|
+
if (persistCalls === 1) {
|
|
1474
|
+
// After batch 1 [a,b] advances, captures arrive before batch 2 and
|
|
1475
|
+
// evict the head record 'c' at capacity.
|
|
1476
|
+
logs.captureLog({ body: 'e' })
|
|
1477
|
+
logs.captureLog({ body: 'f' })
|
|
1478
|
+
logs.captureLog({ body: 'g' })
|
|
1479
|
+
}
|
|
1480
|
+
return Promise.resolve()
|
|
1481
|
+
}
|
|
1482
|
+
)
|
|
1483
|
+
|
|
1484
|
+
await logs.flush()
|
|
1485
|
+
|
|
1486
|
+
// batch1 [a,b] dropped, 'c' evicted, batch2 [d,e] dropped — nothing sent twice.
|
|
1487
|
+
expect(readQueue(mockInstance).map((x) => x.record.body.stringValue)).toEqual(['f', 'g'])
|
|
1488
|
+
})
|
|
1489
|
+
})
|
|
1231
1490
|
})
|
package/src/logs/index.ts
CHANGED
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
import type { LogAttributeValue } from '@posthog/types'
|
|
2
|
-
import { buildOtlpLogRecord, buildOtlpLogsPayload } from './logs-utils'
|
|
2
|
+
import { buildOtlpLogRecord, buildOtlpLogsPayload, buildResourceAttributes } from './logs-utils'
|
|
3
3
|
import { Logger, PostHogPersistedProperty } from '../types'
|
|
4
|
-
import type { PostHogCoreStateless } from '../posthog-core-stateless'
|
|
5
4
|
import { isArray, safeSetTimeout } from '../utils'
|
|
6
|
-
import type {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
LogSdkContext,
|
|
11
|
-
ResolvedPostHogLogsConfig,
|
|
12
|
-
} from './types'
|
|
5
|
+
import type { BufferedLogEntry, CaptureLogOptions, LogSdkContext, LogsHost, ResolvedPostHogLogsConfig } from './types'
|
|
6
|
+
|
|
7
|
+
// Caps the retry backoff at 2^6 = 64× the flush interval.
|
|
8
|
+
const MAX_FLUSH_BACKOFF_EXPONENT = 6
|
|
13
9
|
|
|
14
10
|
export class PostHogLogs {
|
|
15
11
|
private _maxBufferSize: number
|
|
12
|
+
// Eviction cap; `_maxBufferSize` only triggers a flush. Collapses to
|
|
13
|
+
// `_maxBufferSize` when the host sets no separate value.
|
|
14
|
+
private _maxQueueSize: number
|
|
16
15
|
private _flushIntervalMs: number
|
|
17
16
|
// Mutable — halved on 413 to shrink the next POST, and ramped back up by
|
|
18
17
|
// one record after each successful send so a one-off oversized payload
|
|
@@ -22,6 +21,12 @@ export class PostHogLogs {
|
|
|
22
21
|
// Serializes concurrent flushes — the second caller awaits the first rather
|
|
23
22
|
// than racing it and double-sending the same head-of-queue records.
|
|
24
23
|
private _flushPromise: Promise<void> | null = null
|
|
24
|
+
// Head records evicted (FIFO) while a batch is in flight; the queue-advance
|
|
25
|
+
// subtracts these so it drops the sent records, not ones captured mid-send.
|
|
26
|
+
private _evictedSinceAdvance = 0
|
|
27
|
+
// Consecutive failed flushes; drives exponential backoff on the retry timer.
|
|
28
|
+
// A successful flush resets it to 0.
|
|
29
|
+
private _consecutiveFlushFailures = 0
|
|
25
30
|
|
|
26
31
|
// Fixed-window rate cap. Tumbling (not sliding) for cheap arithmetic on the
|
|
27
32
|
// hot path. Window rolls the first time `captureLog` fires after the window
|
|
@@ -34,7 +39,7 @@ export class PostHogLogs {
|
|
|
34
39
|
private _droppedWarned = false
|
|
35
40
|
|
|
36
41
|
constructor(
|
|
37
|
-
private readonly _instance:
|
|
42
|
+
private readonly _instance: LogsHost,
|
|
38
43
|
private readonly _config: ResolvedPostHogLogsConfig,
|
|
39
44
|
private readonly _logger: Logger,
|
|
40
45
|
private readonly _getContext: () => LogSdkContext,
|
|
@@ -47,12 +52,38 @@ export class PostHogLogs {
|
|
|
47
52
|
private readonly _waitForStoragePersist: () => Promise<void> = () => Promise.resolve()
|
|
48
53
|
) {
|
|
49
54
|
this._maxBufferSize = _config.maxBufferSize
|
|
55
|
+
// Never below the flush trigger: a smaller eviction cap would stop the
|
|
56
|
+
// size-based flush from ever firing. Collapses to `maxBufferSize` when unset.
|
|
57
|
+
this._maxQueueSize = Math.max(_config.maxQueueSize ?? _config.maxBufferSize, _config.maxBufferSize)
|
|
50
58
|
this._flushIntervalMs = _config.flushIntervalMs
|
|
51
59
|
this._maxBatchRecordsPerPost = _config.maxBatchRecordsPerPost
|
|
52
60
|
this._rateCapWindowMs = _config.rateCapWindowMs
|
|
53
61
|
this._maxLogsPerInterval = _config.maxLogsPerInterval
|
|
54
62
|
}
|
|
55
63
|
|
|
64
|
+
/**
|
|
65
|
+
* Clears the flush timer and rate-cap state. The host owns the record queue
|
|
66
|
+
* and clears it separately (the browser empties its in-memory store).
|
|
67
|
+
*/
|
|
68
|
+
reset(): void {
|
|
69
|
+
this._clearFlushTimer()
|
|
70
|
+
this._flushPromise = null
|
|
71
|
+
this._intervalWindowStart = 0
|
|
72
|
+
this._intervalLogCount = 0
|
|
73
|
+
this._droppedWarned = false
|
|
74
|
+
this._evictedSinceAdvance = 0
|
|
75
|
+
this._consecutiveFlushFailures = 0
|
|
76
|
+
this._maxBatchRecordsPerPost = this._config.maxBatchRecordsPerPost
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// Call when connectivity is restored: clear the failure backoff and flush now,
|
|
80
|
+
// so records don't wait out a (possibly minutes-long) backoff delay after the
|
|
81
|
+
// network returns. The host owns connectivity detection (web: `online` event).
|
|
82
|
+
onReconnect(): void {
|
|
83
|
+
this._consecutiveFlushFailures = 0
|
|
84
|
+
this._flushInBackground()
|
|
85
|
+
}
|
|
86
|
+
|
|
56
87
|
captureLog(options: CaptureLogOptions): void {
|
|
57
88
|
if (this._instance.isDisabled) {
|
|
58
89
|
return
|
|
@@ -70,8 +101,10 @@ export class PostHogLogs {
|
|
|
70
101
|
if (filtered === null) {
|
|
71
102
|
return
|
|
72
103
|
}
|
|
73
|
-
// beforeSend could return a record with empty body —
|
|
104
|
+
// beforeSend could return a record with empty body — drop it, mirroring the
|
|
105
|
+
// null-return path so both beforeSend drops surface the same diagnostic.
|
|
74
106
|
if (!filtered.body) {
|
|
107
|
+
this._logger.info(`Log was rejected in beforeSend function`)
|
|
75
108
|
return
|
|
76
109
|
}
|
|
77
110
|
|
|
@@ -196,6 +229,12 @@ export class PostHogLogs {
|
|
|
196
229
|
let sentCount = 0
|
|
197
230
|
|
|
198
231
|
while (queue.length > 0 && sentCount < originalQueueLength) {
|
|
232
|
+
// Reset per batch so the advance below counts only evictions during THIS
|
|
233
|
+
// batch's send. Evictions during the persist await or between iterations
|
|
234
|
+
// are already reflected in the next iteration's queue read, so they must
|
|
235
|
+
// not carry into the next batch's drop math.
|
|
236
|
+
this._evictedSinceAdvance = 0
|
|
237
|
+
|
|
199
238
|
const batchSize = Math.min(queue.length, this._maxBatchRecordsPerPost)
|
|
200
239
|
const batch = queue.slice(0, batchSize)
|
|
201
240
|
const records = batch.map((e) => e.record)
|
|
@@ -250,36 +289,19 @@ export class PostHogLogs {
|
|
|
250
289
|
}
|
|
251
290
|
|
|
252
291
|
private async _persistQueueAdvance(consumed: number): Promise<void> {
|
|
253
|
-
// Re-read
|
|
292
|
+
// Re-read in case captures landed mid-flush. Subtract head records the FIFO cap
|
|
293
|
+
// evicted during the send (already-sent records that left the queue), so we drop
|
|
294
|
+
// only the still-present sent records, not ones captured during the send.
|
|
295
|
+
const evicted = this._evictedSinceAdvance
|
|
296
|
+
const drop = Math.max(0, consumed - evicted)
|
|
254
297
|
const refreshed = this._instance.getPersistedProperty<BufferedLogEntry[]>(PostHogPersistedProperty.LogsQueue) ?? []
|
|
255
|
-
this._instance.setPersistedProperty(PostHogPersistedProperty.LogsQueue, refreshed.slice(
|
|
256
|
-
//
|
|
257
|
-
// events' `flushStorage()` contract. Prevents duplicates if the app crashes
|
|
258
|
-
// after the HTTP success but before the queue-advance persists.
|
|
298
|
+
this._instance.setPersistedProperty(PostHogPersistedProperty.LogsQueue, refreshed.slice(drop))
|
|
299
|
+
// Persist before the next batch sends so a crash after HTTP success can't dupe.
|
|
259
300
|
await this._waitForStoragePersist()
|
|
260
301
|
}
|
|
261
302
|
|
|
262
|
-
/**
|
|
263
|
-
* OTLP resource attributes for every batch.
|
|
264
|
-
*
|
|
265
|
-
* Layout: user `resourceAttributes` spread first, then SDK-controlled
|
|
266
|
-
* keys layered on top so users cannot accidentally clobber them. Most logs
|
|
267
|
-
* backends index on `service.name` and `telemetry.sdk.*` for routing,
|
|
268
|
-
* SDK-version dashboards, and bug-correlation; letting a stray user key
|
|
269
|
-
* overwrite them silently breaks ingestion attribution. The dedicated
|
|
270
|
-
* `serviceName` / `environment` / `serviceVersion` config fields are the
|
|
271
|
-
* supported way to override `service.name` / `deployment.environment` /
|
|
272
|
-
* `service.version`.
|
|
273
|
-
*/
|
|
274
303
|
private _buildResourceAttributes(): Record<string, LogAttributeValue> {
|
|
275
|
-
return
|
|
276
|
-
...this._config.resourceAttributes,
|
|
277
|
-
'service.name': this._config.serviceName || 'unknown_service',
|
|
278
|
-
...(this._config.environment && { 'deployment.environment': this._config.environment }),
|
|
279
|
-
...(this._config.serviceVersion && { 'service.version': this._config.serviceVersion }),
|
|
280
|
-
'telemetry.sdk.name': this._instance.getLibraryId(),
|
|
281
|
-
'telemetry.sdk.version': this._instance.getLibraryVersion(),
|
|
282
|
-
}
|
|
304
|
+
return buildResourceAttributes(this._config, this._instance.getLibraryId(), this._instance.getLibraryVersion())
|
|
283
305
|
}
|
|
284
306
|
|
|
285
307
|
private _enqueue(entry: BufferedLogEntry): void {
|
|
@@ -290,28 +312,50 @@ export class PostHogLogs {
|
|
|
290
312
|
}
|
|
291
313
|
|
|
292
314
|
const queue = this._instance.getPersistedProperty<BufferedLogEntry[]>(PostHogPersistedProperty.LogsQueue) ?? []
|
|
293
|
-
|
|
315
|
+
// Drop the oldest only above the eviction cap, not at the flush trigger, so a
|
|
316
|
+
// burst is held while the async flush drains.
|
|
317
|
+
if (queue.length >= this._maxQueueSize) {
|
|
294
318
|
queue.shift()
|
|
319
|
+
this._evictedSinceAdvance++
|
|
295
320
|
this._logger.info('Logs queue is full, dropping oldest record.')
|
|
296
321
|
}
|
|
297
322
|
queue.push(entry)
|
|
298
323
|
this._instance.setPersistedProperty(PostHogPersistedProperty.LogsQueue, queue)
|
|
299
324
|
|
|
300
|
-
//
|
|
301
|
-
//
|
|
325
|
+
// Flush trigger: drain now rather than waiting for the timer. The queue may
|
|
326
|
+
// grow past this up to the eviction cap while the flush is in flight.
|
|
302
327
|
if (queue.length >= this._maxBufferSize) {
|
|
303
328
|
this._flushInBackground()
|
|
304
329
|
return
|
|
305
330
|
}
|
|
306
331
|
|
|
307
|
-
//
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
332
|
+
// Arm one timer at a time; re-arming within the window would push the flush out.
|
|
333
|
+
this._armFlushTimer()
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
// Arms the flush timer if none is pending. One-shot: the callback clears the
|
|
337
|
+
// handle so the next enqueue (or a flush that left records) schedules again.
|
|
338
|
+
private _armFlushTimer(delayMs: number = this._flushIntervalMs): void {
|
|
339
|
+
if (this._flushTimer) {
|
|
340
|
+
return
|
|
314
341
|
}
|
|
342
|
+
this._flushTimer = safeSetTimeout(() => {
|
|
343
|
+
this._flushTimer = undefined
|
|
344
|
+
this._flushInBackground()
|
|
345
|
+
}, delayMs)
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
// Retry delay after a flush that left records: the first retry is at the base
|
|
349
|
+
// interval, then exponential backoff (capped) so a sustained outage isn't
|
|
350
|
+
// retried every interval.
|
|
351
|
+
private _nextFlushDelay(): number {
|
|
352
|
+
const exponent = Math.min(Math.max(0, this._consecutiveFlushFailures - 1), MAX_FLUSH_BACKOFF_EXPONENT)
|
|
353
|
+
return this._flushIntervalMs * 2 ** exponent
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
private _hasQueuedRecords(): boolean {
|
|
357
|
+
const queue = this._instance.getPersistedProperty<BufferedLogEntry[]>(PostHogPersistedProperty.LogsQueue)
|
|
358
|
+
return !!queue && queue.length > 0
|
|
315
359
|
}
|
|
316
360
|
|
|
317
361
|
/**
|
|
@@ -371,9 +415,24 @@ export class PostHogLogs {
|
|
|
371
415
|
}
|
|
372
416
|
|
|
373
417
|
private _flushInBackground(): void {
|
|
374
|
-
void this.flush()
|
|
375
|
-
|
|
376
|
-
|
|
418
|
+
void this.flush()
|
|
419
|
+
.then(
|
|
420
|
+
() => {
|
|
421
|
+
this._consecutiveFlushFailures = 0
|
|
422
|
+
},
|
|
423
|
+
(err) => {
|
|
424
|
+
this._consecutiveFlushFailures++
|
|
425
|
+
this._logger.error('PostHog logs flush failed:', err)
|
|
426
|
+
}
|
|
427
|
+
)
|
|
428
|
+
.finally(() => {
|
|
429
|
+
// Records remaining (transient failure or mid-flush captures) would otherwise
|
|
430
|
+
// sit undelivered on a quiet page; re-arm so the timer retries them, backing
|
|
431
|
+
// off on consecutive failures.
|
|
432
|
+
if (!this._instance.isDisabled && this._hasQueuedRecords()) {
|
|
433
|
+
this._armFlushTimer(this._nextFlushDelay())
|
|
434
|
+
}
|
|
435
|
+
})
|
|
377
436
|
}
|
|
378
437
|
|
|
379
438
|
private _clearFlushTimer(): void {
|