[flutter_tools] Rework iOS vmservice handshake failure usage event (#51419)

This commit is contained in:
Zachary Anderson 2020-02-25 15:22:17 -05:00 committed by GitHub
parent 1ec2a43672
commit d73dd6b356
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 25 additions and 14 deletions

View File

@ -6,6 +6,7 @@ import 'package:meta/meta.dart';
import 'package:vm_service/vm_service.dart';
import 'package:vm_service/vm_service_io.dart' as vm_service_io;
import '../base/io.dart';
import '../base/logger.dart';
import '../device.dart';
import '../mdns_discovery.dart';
@ -120,19 +121,14 @@ class FallbackDiscovery {
} on Exception catch (err) {
_logger.printTrace(err.toString());
_logger.printTrace('Failed to connect directly, falling back to mDNS');
UsageEvent(
_kEventName,
'failure',
label: err.toString(),
value: hostPort,
).send();
_sendFailureEvent(err, assumedDevicePort);
return null;
}
// Attempt to connect to the VM service 5 times.
int attempts = 0;
const int kDelaySeconds = 2;
Object firstException;
Exception firstException;
while (attempts < 5) {
try {
final VmService vmService = await _vmServiceConnectUri(assumedWsUri.toString());
@ -163,12 +159,27 @@ class FallbackDiscovery {
attempts += 1;
}
_logger.printTrace('Failed to connect directly, falling back to mDNS');
UsageEvent(
_kEventName,
'failure',
label: firstException?.toString() ?? 'Connection attempts exhausted',
value: hostPort,
).send();
_sendFailureEvent(firstException, assumedDevicePort);
return null;
}
void _sendFailureEvent(Exception err, int assumedDevicePort) {
String eventAction;
String eventLabel;
if (err == null) {
eventAction = 'failure-attempts-exhausted';
eventLabel = assumedDevicePort.toString();
} else if (err is HttpException) {
eventAction = 'failure-http';
eventLabel = '${err.message}, device port = $assumedDevicePort';
} else {
eventAction = 'failure-other';
eventLabel = '$err, device port = $assumedDevicePort';
}
UsageEvent(
_kEventName,
eventAction,
label: eventLabel,
).send();
}
}

View File

@ -643,7 +643,7 @@ void main() {
expect(launchResult.hasObservatory, isFalse);
verify(mockUsage.sendEvent(
'ios-handshake',
'failure',
'failure-other',
label: anyNamed('label'),
value: anyNamed('value'),
)).called(1);