Observability topic
Observability
Connect Inttegro's privacy-safe native diagnostics to telemetry owned by the Flutter application.
import 'package:inttegro_flutter/telemetry.dart';
final subscription =
Inttegro.instance.paymentSheetTelemetryEvents.listen((event) {
diagnostics.record(
name: event.name.wireValue,
flowId: event.flowId,
sequence: event.sequence,
operation: event.operation?.wireValue,
statusCode: event.httpStatusCode,
requestId: event.requestId,
retryAfterSeconds: event.retryAfterSeconds,
errorType: event.errorType,
);
});
Inttegro installs no exporter. The stream covers native presentation, Checkout retrieval, payment attempts, confirmation, authorization waits, polling, terminal state, and public Checkout transport activity.
When an idempotent mutation receives 503 with a valid Retry-After header,
the native transport waits and retries once with the same idempotency key. The
response event records that bounded delay. If the second attempt fails,
the diagnostic stream retains the corresponding requestId and
retryAfterSeconds; lifecycle failures remain intentionally smaller and safe
for ordinary application code.
Events exclude Order and Payment IDs, customer and payer fields, payment-method details, billing and shipping addresses, request and response bodies, redirect URLs, and raw error messages. Preserve this boundary when mapping events into logs or spans. Treat flow and request IDs as correlation values rather than high-cardinality metric dimensions.
Supply a valid W3C traceparent and optional tracestate through
PaymentSheetTelemetry. The native Checkout transport propagates them only
while telemetry is enabled. Set enabled to false to disable both diagnostic
events and trace-header propagation.
Libraries
- telemetry Observability
- Privacy-safe diagnostics from Inttegro's native payment flow.