From c033a1658860afda227ee2d38193b0d987ef58a3 Mon Sep 17 00:00:00 2001 From: Josh Wu Date: Thu, 5 May 2022 01:29:04 -0700 Subject: Add LeAudioConnectionSession * Add MetricsCollector for LeAudio * Implement LogLeAudioConnectionSessionReported logging API * Add MetricsCollectorTest under bluetooth_le_audio_test Test: atest BluetoothInstrumentationTests Tag: #feature Bug: 207811438 Change-Id: Iaa50e0a7986bae8919cd2e7d280a5303dbcc6d1f Merged-In: Iaa50e0a7986bae8919cd2e7d280a5303dbcc6d1f --- system/common/metrics.cc | 49 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) (limited to 'system/common/metrics.cc') diff --git a/system/common/metrics.cc b/system/common/metrics.cc index 47870e0402..be1d1b3bac 100644 --- a/system/common/metrics.cc +++ b/system/common/metrics.cc @@ -908,6 +908,55 @@ void LogBluetoothHalCrashReason(const RawAddress& address, uint32_t error_code, } } +void LogLeAudioConnectionSessionReported( + int32_t group_size, int32_t group_metric_id, + int64_t connection_duration_nanos, + std::vector& device_connecting_offset_nanos, + std::vector& device_connected_offset_nanos, + std::vector& device_connection_duration_nanos, + std::vector& device_connection_status, + std::vector& device_disconnection_status, + std::vector& device_address, + std::vector& streaming_offset_nanos, + std::vector& streaming_duration_nanos, + std::vector& streaming_context_type) { + std::vector device_metric_id(device_address.size()); + for (uint64_t i = 0; i < device_address.size(); i++) { + if (!device_address[i].IsEmpty()) { + device_metric_id[i] = + MetricIdAllocator::GetInstance().AllocateId(device_address[i]); + } else { + device_metric_id[i] = 0; + } + } + int ret = stats_write( + LE_AUDIO_CONNECTION_SESSION_REPORTED, group_size, group_metric_id, + connection_duration_nanos, device_connecting_offset_nanos, + device_connected_offset_nanos, device_connection_duration_nanos, + device_connection_status, device_disconnection_status, device_metric_id, + streaming_offset_nanos, streaming_duration_nanos, streaming_context_type); + if (ret < 0) { + LOG(WARNING) << __func__ << ": failed for group " << group_metric_id + << "device_connecting_offset_nanos[" + << device_connecting_offset_nanos.size() << "], " + << "device_connected_offset_nanos[" + << device_connected_offset_nanos.size() << "], " + << "device_connection_duration_nanos[" + << device_connection_duration_nanos.size() << "], " + << "device_connection_status[" + << device_connection_status.size() << "], " + << "device_disconnection_status[" + << device_disconnection_status.size() << "], " + << "device_metric_id[" << device_metric_id.size() << "], " + << "streaming_offset_nanos[" << streaming_offset_nanos.size() + << "], " + << "streaming_duration_nanos[" + << streaming_duration_nanos.size() << "], " + << "streaming_context_type[" << streaming_context_type.size() + << "]"; + } +} + } // namespace common } // namespace bluetooth -- cgit v1.2.3-59-g8ed1b