track method

void track(
  1. TelemetryEvent event
)

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());
  }
}