endSession method
Record a session-end event and flush remaining events.
Implementation
Future<void> endSession({Map<String, dynamic>? metadata}) async {
if (!_sessionStarted) return;
// Drain pending performance metrics into events.
_flushPerformanceMetrics();
track(
TelemetryEvent(
name: 'session_end',
type: TelemetryEventType.sessionEnd,
properties: {
'totalTracked': _totalTracked,
'totalFlushed': _totalFlushed,
if (metadata != null) ...metadata,
},
sessionId: _sessionId,
),
);
_sessionStarted = false;
await flush();
}