Commit 6ea37735 authored by Meilin Wang's avatar Meilin Wang Committed by Chromium LUCI CQ

[Nearby Share] Add metrics Nearby.Connections.Bluetooth.LEMedium.*.

Bug: b/163064897
Change-Id: I796a1f8efdb4d14d07cca102257413bf46aac429
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2586018
Commit-Queue: Meilin Wang <meilinw@chromium.org>
Reviewed-by: default avatarIlya Sherman <isherman@chromium.org>
Reviewed-by: default avatarRyan Hansberry <hansberry@chromium.org>
Cr-Commit-Position: refs/heads/master@{#836895}
parent b487fb73
...@@ -4,12 +4,35 @@ ...@@ -4,12 +4,35 @@
#include "chrome/services/sharing/nearby/platform/ble_medium.h" #include "chrome/services/sharing/nearby/platform/ble_medium.h"
#include "base/metrics/histogram_functions.h"
#include "chrome/services/sharing/nearby/platform/bluetooth_device.h" #include "chrome/services/sharing/nearby/platform/bluetooth_device.h"
namespace location { namespace location {
namespace nearby { namespace nearby {
namespace chrome { namespace chrome {
namespace {
void LogStartAdvertisingResult(bool success) {
base::UmaHistogramBoolean(
"Nearby.Connections.Bluetooth.LEMedium.StartAdvertising.Result", success);
}
void LogStopAdvertisingResult(bool success) {
base::UmaHistogramBoolean(
"Nearby.Connections.Bluetooth.LEMedium.StopAdvertising.Result", success);
}
void LogStartScanningResult(bool success) {
base::UmaHistogramBoolean(
"Nearby.Connections.Bluetooth.LEMedium.StartScanning.Result", success);
}
void LogStopScanningResult(bool success) {
base::UmaHistogramBoolean(
"Nearby.Connections.Bluetooth.LEMedium.StopScanning.Result", success);
}
} // namespace
BleMedium::BleMedium( BleMedium::BleMedium(
const mojo::SharedRemote<bluetooth::mojom::Adapter>& adapter) const mojo::SharedRemote<bluetooth::mojom::Adapter>& adapter)
: adapter_(adapter) { : adapter_(adapter) {
...@@ -42,8 +65,10 @@ bool BleMedium::StartAdvertising( ...@@ -42,8 +65,10 @@ bool BleMedium::StartAdvertising(
advertisement.data() + advertisement.size()), advertisement.data() + advertisement.size()),
/*use_scan_data=*/true, &pending_advertisement); /*use_scan_data=*/true, &pending_advertisement);
if (!success || !pending_advertisement.is_valid()) if (!success || !pending_advertisement.is_valid()) {
LogStartAdvertisingResult(false);
return false; return false;
}
registered_service_id_to_fast_advertisement_service_uuid_map_.emplace( registered_service_id_to_fast_advertisement_service_uuid_map_.emplace(
service_id, service_uuid); service_id, service_uuid);
...@@ -55,6 +80,7 @@ bool BleMedium::StartAdvertising( ...@@ -55,6 +80,7 @@ bool BleMedium::StartAdvertising(
remote_advertisement.set_disconnect_handler(base::BindOnce( remote_advertisement.set_disconnect_handler(base::BindOnce(
&BleMedium::AdvertisementReleased, base::Unretained(this), service_uuid)); &BleMedium::AdvertisementReleased, base::Unretained(this), service_uuid));
LogStartAdvertisingResult(true);
return true; return true;
} }
...@@ -64,18 +90,22 @@ bool BleMedium::StopAdvertising(const std::string& service_id) { ...@@ -64,18 +90,22 @@ bool BleMedium::StopAdvertising(const std::string& service_id) {
service_id); service_id);
if (uuid_it == if (uuid_it ==
registered_service_id_to_fast_advertisement_service_uuid_map_.end()) { registered_service_id_to_fast_advertisement_service_uuid_map_.end()) {
LogStopAdvertisingResult(true);
return true; return true;
} }
auto advertisement_it = registered_advertisements_map_.find(uuid_it->second); auto advertisement_it = registered_advertisements_map_.find(uuid_it->second);
registered_service_id_to_fast_advertisement_service_uuid_map_.erase(uuid_it); registered_service_id_to_fast_advertisement_service_uuid_map_.erase(uuid_it);
if (advertisement_it == registered_advertisements_map_.end()) if (advertisement_it == registered_advertisements_map_.end()) {
LogStopAdvertisingResult(true);
return true; return true;
}
bool success = advertisement_it->second->Unregister(); bool success = advertisement_it->second->Unregister();
registered_advertisements_map_.erase(advertisement_it); registered_advertisements_map_.erase(advertisement_it);
LogStopAdvertisingResult(success);
return success; return success;
} }
...@@ -95,6 +125,7 @@ bool BleMedium::StartScanning( ...@@ -95,6 +125,7 @@ bool BleMedium::StartScanning(
if (IsScanning() && if (IsScanning() &&
base::Contains(discovered_peripheral_callbacks_map_, service_uuid)) { base::Contains(discovered_peripheral_callbacks_map_, service_uuid)) {
LogStartScanningResult(true);
return true; return true;
} }
...@@ -111,6 +142,7 @@ bool BleMedium::StartScanning( ...@@ -111,6 +142,7 @@ bool BleMedium::StartScanning(
adapter_->AddObserver(adapter_observer_.BindNewPipeAndPassRemote()); adapter_->AddObserver(adapter_observer_.BindNewPipeAndPassRemote());
if (!success) { if (!success) {
adapter_observer_.reset(); adapter_observer_.reset();
LogStartScanningResult(false);
return false; return false;
} }
...@@ -119,6 +151,7 @@ bool BleMedium::StartScanning( ...@@ -119,6 +151,7 @@ bool BleMedium::StartScanning(
if (!success || !discovery_session.is_valid()) { if (!success || !discovery_session.is_valid()) {
adapter_observer_.reset(); adapter_observer_.reset();
LogStartScanningResult(false);
return false; return false;
} }
...@@ -140,6 +173,7 @@ bool BleMedium::StartScanning( ...@@ -140,6 +173,7 @@ bool BleMedium::StartScanning(
discovery_service_id_to_fast_advertisement_service_uuid_map_); discovery_service_id_to_fast_advertisement_service_uuid_map_);
} }
LogStartScanningResult(true);
return true; return true;
} }
...@@ -163,8 +197,10 @@ bool BleMedium::StopScanning(const std::string& service_id) { ...@@ -163,8 +197,10 @@ bool BleMedium::StopScanning(const std::string& service_id) {
discovered_peripheral_callbacks_map_.empty(), discovered_peripheral_callbacks_map_.empty(),
discovery_service_id_to_fast_advertisement_service_uuid_map_.empty()); discovery_service_id_to_fast_advertisement_service_uuid_map_.empty());
if (!discovered_peripheral_callbacks_map_.empty()) if (!discovered_peripheral_callbacks_map_.empty()) {
LogStopScanningResult(true);
return true; return true;
}
bool stop_discovery_success = true; bool stop_discovery_success = true;
if (discovery_session_) { if (discovery_session_) {
...@@ -175,6 +211,7 @@ bool BleMedium::StopScanning(const std::string& service_id) { ...@@ -175,6 +211,7 @@ bool BleMedium::StopScanning(const std::string& service_id) {
adapter_observer_.reset(); adapter_observer_.reset();
discovery_session_.reset(); discovery_session_.reset();
LogStopScanningResult(stop_discovery_success);
return stop_discovery_success; return stop_discovery_success;
} }
......
...@@ -9536,6 +9536,40 @@ reviews. Googlers can read more about this at go/gwsq-gerrit. ...@@ -9536,6 +9536,40 @@ reviews. Googlers can read more about this at go/gwsq-gerrit.
</token> </token>
</histogram> </histogram>
<histogram name="Nearby.Connections.Bluetooth.LEMedium.StartAdvertising.Result"
enum="BooleanSuccess" expires_after="2021-12-10">
<owner>hansberry@chromium.org</owner>
<owner>nearby-share-chromeos-eng@google.com</owner>
<summary>
Records whether the request to start advertising has succeeded.
</summary>
</histogram>
<histogram name="Nearby.Connections.Bluetooth.LEMedium.StartScanning.Result"
enum="BooleanSuccess" expires_after="2021-12-10">
<owner>hansberry@chromium.org</owner>
<owner>nearby-share-chromeos-eng@google.com</owner>
<summary>
Records whether BLE scanning has been initiated successfully.
</summary>
</histogram>
<histogram name="Nearby.Connections.Bluetooth.LEMedium.StopAdvertising.Result"
enum="BooleanSuccess" expires_after="2021-12-10">
<owner>hansberry@chromium.org</owner>
<owner>nearby-share-chromeos-eng@google.com</owner>
<summary>
Records whether the request to stop advertising has succeeded.
</summary>
</histogram>
<histogram name="Nearby.Connections.Bluetooth.LEMedium.StopScanning.Result"
enum="BooleanSuccess" expires_after="2021-12-10">
<owner>hansberry@chromium.org</owner>
<owner>nearby-share-chromeos-eng@google.com</owner>
<summary>Records whether BLE scanning has been stopped successfully.</summary>
</histogram>
<histogram name="Nearby.Connections.InstantMessaging.{Direction}Express.Result" <histogram name="Nearby.Connections.InstantMessaging.{Direction}Express.Result"
enum="BooleanSuccess" expires_after="2021-08-19"> enum="BooleanSuccess" expires_after="2021-08-19">
<owner>nohle@chromium.org</owner> <owner>nohle@chromium.org</owner>
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment