Home | History | Annotate | Download | only in common
      1 /* Copyright (c) 2013 The Chromium OS Authors. All rights reserved.
      2  * Use of this source code is governed by a BSD-style license that can be
      3  * found in the LICENSE file.
      4  */
      5 
      6 #include <stdio.h>
      7 #include <syslog.h>
      8 #include <unistd.h>
      9 
     10 #define METRICS_CLIENT "metrics_client"
     11 
     12 void cras_metrics_log_event(const char *event)
     13 {
     14 	syslog(LOG_DEBUG, "Log event: %s", event);
     15 	if (!fork()) {
     16 		const char *argv[] = {METRICS_CLIENT, "-v", event, NULL} ;
     17 		execvp(argv[0], (char * const *)argv);
     18 		_exit(1);
     19 	}
     20 }
     21 
     22 void cras_metrics_log_histogram(const char *name, int sample, int min,
     23 				int max, int nbuckets)
     24 {
     25 	if (!fork()) {
     26 		char tmp[4][16];
     27 		snprintf(tmp[0], 16, "%d", sample);
     28 		snprintf(tmp[1], 16, "%d", min);
     29 		snprintf(tmp[2], 16, "%d", max);
     30 		snprintf(tmp[3], 16, "%d", nbuckets);
     31 		const char *argv[] = {METRICS_CLIENT, name, tmp[0], tmp[1],
     32 				      tmp[2], tmp[3], NULL};
     33 		execvp(argv[0], (char * const *)argv);
     34 		_exit(1);
     35 	}
     36 }
     37