diff options
author | Yu-Hsuan Hsu <yuhsuan@chromium.org> | 2019-08-01 22:33:35 +0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2019-08-16 06:43:47 +0000 |
commit | cebdfbfa9230d5840b33076da0c94d3d10458fb3 (patch) | |
tree | f68aa00809a7a767a6107a9077753e9e43438b37 /cras/src/server/cras_server_metrics.c | |
parent | 7091651f8d35dfd5875f40fda13cc9f1634612d5 (diff) | |
download | adhd-cebdfbfa9230d5840b33076da0c94d3d10458fb3.tar.gz |
CRAS: server_metrics - Log client types of streams
Add two new UMA logs StreamClientTypeInput and StreamClientTypeOutput.
It can show the distribution of CRAS's clients.
BUG=chromium:988295
TEST=These logs can be recorded well on peppy.
Change-Id: Id9ef62921008fe86fabece2e3fd7a32bebc291d8
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/third_party/adhd/+/1731250
Tested-by: Yu-Hsuan Hsu <yuhsuan@chromium.org>
Commit-Queue: Yu-Hsuan Hsu <yuhsuan@chromium.org>
Reviewed-by: Cheng-Yi Chiang <cychiang@chromium.org>
Diffstat (limited to 'cras/src/server/cras_server_metrics.c')
-rw-r--r-- | cras/src/server/cras_server_metrics.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/cras/src/server/cras_server_metrics.c b/cras/src/server/cras_server_metrics.c index 12f1bdfb..33a8ee4b 100644 --- a/cras/src/server/cras_server_metrics.c +++ b/cras/src/server/cras_server_metrics.c @@ -43,6 +43,8 @@ const char kMissedCallbackSecondTimeOutput[] = const char kNoCodecsFoundMetric[] = "Cras.NoCodecsFoundAtBoot"; const char kStreamTimeoutMilliSeconds[] = "Cras.StreamTimeoutMilliSeconds"; const char kStreamCallbackThreshold[] = "Cras.StreamCallbackThreshold"; +const char kStreamClientTypeInput[] = "Cras.StreamClientTypeInput"; +const char kStreamClientTypeOutput[] = "Cras.StreamClientTypeOutput"; const char kStreamFlags[] = "Cras.StreamFlags"; const char kStreamSamplingFormat[] = "Cras.StreamSamplingFormat"; const char kStreamSamplingRate[] = "Cras.StreamSamplingRate"; @@ -77,10 +79,12 @@ enum CRAS_SERVER_METRICS_TYPE { }; struct cras_server_metrics_stream_config { + enum CRAS_STREAM_DIRECTION direction; unsigned cb_threshold; unsigned flags; int format; unsigned rate; + enum CRAS_CLIENT_TYPE client_type; }; struct cras_server_metrics_device_data { @@ -506,10 +510,12 @@ int cras_server_metrics_stream_config(struct cras_rstream_config *config) union cras_server_metrics_data data; int err; + data.stream_config.direction = config->direction; data.stream_config.cb_threshold = (unsigned)config->cb_threshold; data.stream_config.flags = (unsigned)config->flags; data.stream_config.format = (int)config->format->format; data.stream_config.rate = (unsigned)config->format->frame_rate; + data.stream_config.client_type = config->client_type; init_server_metrics_msg(&msg, STREAM_CONFIG, data); err = cras_server_metrics_message_send( @@ -550,6 +556,14 @@ metrics_stream_config(struct cras_server_metrics_stream_config config) /* Logs stream sampling rate. */ cras_metrics_log_sparse_histogram(kStreamSamplingRate, config.rate); + + /* Logs stream client type. */ + if (config.direction == CRAS_STREAM_INPUT) + cras_metrics_log_sparse_histogram(kStreamClientTypeInput, + config.client_type); + else + cras_metrics_log_sparse_histogram(kStreamClientTypeOutput, + config.client_type); } static void handle_metrics_message(struct cras_main_message *msg, void *arg) |