track method
Queue a telemetry event. It will be sent on the next flush.
Implementation
void track(TelemetryEvent event) {
if (_disposed || !_config.enabled) return;
// Drop disabled event types silently.
if (_config.disabledEventTypes.contains(event.type)) {
_totalDropped++;
return;
}
// Attach session id if missing.
final enriched = TelemetryEvent(
name: event.name,
type: event.type,
properties: _config.scrubPiiEnabled
? scrubPii(event.properties)
: Map<String, dynamic>.from(event.properties),
timestamp: event.timestamp,
sessionId: event.sessionId.isEmpty ? _sessionId : event.sessionId,
);
_totalTracked++;
final full = _batch.add(enriched);
if (full) {
// Fire-and-forget flush when batch fills up.
unawaited(flush());
}
}