Skip to content

Commit dc5938f

Browse files
authored
fix: Remove undefined agentRuntime in Session Trace (#1227)
1 parent 5a11398 commit dc5938f

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

src/features/session_trace/aggregate/trace/storage.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ export class TraceStorage {
4040
storeSTN (stn) {
4141
if (this.parent.blocked) return
4242
if (this.nodeCount >= MAX_NODES_PER_HARVEST) { // limit the amount of pending data awaiting next harvest
43-
if (this.parent.agentRuntime.session.state.sessionTraceMode !== MODE.ERROR) return
43+
if (this.parent.mode !== MODE.ERROR) return
4444
const openedSpace = this.trimSTNs(ERROR_MODE_SECONDS_WINDOW) // but maybe we could make some space by discarding irrelevant nodes if we're in sessioned Error mode
4545
if (openedSpace === 0) return
4646
}

tests/components/session_trace/aggregate.test.js

+20
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { Instrument as SessionTrace } from '../../../src/features/session_trace/instrument'
22
import { setupAgent } from '../setup-agent'
33
import { MODE } from '../../../src/common/session/constants'
4+
import { MAX_NODES_PER_HARVEST } from '../../../src/features/session_trace/constants'
45

56
let mainAgent
67

@@ -103,3 +104,22 @@ test('tracks previously stored events and processes them once per occurrence', d
103104
done()
104105
}, 100)
105106
})
107+
108+
test('when max nodes per harvest is reached, no node is further added in FULL mode', () => {
109+
sessionTraceAggregate.traceStorage.nodeCount = MAX_NODES_PER_HARVEST
110+
sessionTraceAggregate.mode = MODE.FULL
111+
112+
sessionTraceAggregate.traceStorage.storeSTN({ n: 'someNode', s: 123 })
113+
expect(sessionTraceAggregate.traceStorage.nodeCount).toEqual(MAX_NODES_PER_HARVEST)
114+
expect(Object.keys(sessionTraceAggregate.traceStorage.trace).length).toEqual(0)
115+
})
116+
117+
test('when max nodes per harvest is reached, node is still added in ERROR mode', () => {
118+
sessionTraceAggregate.traceStorage.nodeCount = MAX_NODES_PER_HARVEST
119+
sessionTraceAggregate.mode = MODE.ERROR
120+
jest.spyOn(sessionTraceAggregate.traceStorage, 'trimSTNs').mockReturnValue(MAX_NODES_PER_HARVEST)
121+
122+
sessionTraceAggregate.traceStorage.storeSTN({ n: 'someNode', s: 123 })
123+
expect(sessionTraceAggregate.traceStorage.nodeCount).toEqual(MAX_NODES_PER_HARVEST + 1)
124+
expect(Object.keys(sessionTraceAggregate.traceStorage.trace).length).toEqual(1)
125+
})

0 commit comments

Comments
 (0)