summaryrefslogtreecommitdiff
path: root/cras/src/server/cras_server_metrics.c
diff options
context:
space:
mode:
authorYu-Hsuan Hsu <yuhsuan@chromium.org>2019-08-01 22:33:35 +0800
committerCommit Bot <commit-bot@chromium.org>2019-08-16 06:43:47 +0000
commitcebdfbfa9230d5840b33076da0c94d3d10458fb3 (patch)
treef68aa00809a7a767a6107a9077753e9e43438b37 /cras/src/server/cras_server_metrics.c
parent7091651f8d35dfd5875f40fda13cc9f1634612d5 (diff)
downloadadhd-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.c14
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)