braintree / braintree_ios

Braintree SDK for iOS
https://developer.paypal.com/braintree/docs/start/hello-client/ios/v5
MIT License
556 stars 290 forks source link

Add additional timing metrics #1346

Closed scannillo closed 1 week ago

scannillo commented 1 week ago

Summary

The SDK added metrics to track how long we wait for each API request we make to the BW GW (see PR 1292). The numbers we're seeing are higher than what the GW expects for time spent on their service for each endpoint.

This PR adds metrics that allow us to dig further into this round-trip number by providing timestamps for TCP connection start time & actual HTTP request start times (see this diagram by Apple). Having these timestamps will allow us to break apart our round trip API number into 3 pieces: task + DNS time, connection establishment, and HTTP time.

Here's an example of how they would be used in FPTI (after some math to subtract the timestamps): Screenshot 2024-06-25 at 3 17 17 PM

Changes

Screenshot 2024-06-25 at 3 23 17 PM

Next Steps

After we get decent data on this, I don't think these metrics have to live in the SDK forever and could be removed at a later time.

Checklist

Authors

@scannillo