Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 3 Mar 2017 11:21:14 +0000 (UTC)
From:      Alexander Motin <mav@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r314592 - head/usr.bin/ctlstat
Message-ID:  <201703031121.v23BLEj0036902@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: mav
Date: Fri Mar  3 11:21:13 2017
New Revision: 314592
URL: https://svnweb.freebsd.org/changeset/base/314592

Log:
  Fix JSON output.
  
  MFC after:	1 week

Modified:
  head/usr.bin/ctlstat/ctlstat.c

Modified: head/usr.bin/ctlstat/ctlstat.c
==============================================================================
--- head/usr.bin/ctlstat/ctlstat.c	Fri Mar  3 10:30:30 2017	(r314591)
+++ head/usr.bin/ctlstat/ctlstat.c	Fri Mar  3 11:21:13 2017	(r314592)
@@ -312,8 +312,8 @@ compute_stats(struct ctl_io_stats *cur_s
  * conducive to programming, however.
  */
 
-#define	PRINT_BINTIME(prefix, bt) \
-	printf("%s %jd.%06ju\n", prefix, (intmax_t)(bt).sec, \
+#define	PRINT_BINTIME(bt) \
+	printf("%jd.%06ju", (intmax_t)(bt).sec, \
 	       (uintmax_t)(((bt).frac >> 32) * 1000000 >> 32))
 static const char *iotypes[] = {"NO IO", "READ", "WRITE"};
 
@@ -335,15 +335,15 @@ ctlstat_dump(struct ctlstat_context *ctx
 			    stats[i].operations[iotype]);
 			printf("   dmas %ju\n", (uintmax_t)
 			    stats[i].dmas[iotype]);
-			PRINT_BINTIME("   io time", stats[i].time[iotype]);
-			PRINT_BINTIME("   dma time", stats[i].dma_time[iotype]);
+			printf("   io time ");
+			PRINT_BINTIME(stats[i].time[iotype]);
+			printf("\n   dma time ");
+			PRINT_BINTIME(stats[i].dma_time[iotype]);
+			printf("\n");
 		}
 	}
 }
 
-#define	JSON_BINTIME(prefix, bt) \
-	printf("\"%s\":%jd.%06ju,", prefix, (intmax_t)(bt).sec, \
-	    (uintmax_t)(((bt).frac >> 32) * 1000000 >> 32))
 static void
 ctlstat_json(struct ctlstat_context *ctx) {
 	int iotype, i;
@@ -357,14 +357,17 @@ ctlstat_json(struct ctlstat_context *ctx
 		    stats[i].item);
 		for (iotype = 0; iotype < CTL_STATS_NUM_TYPES; iotype++) {
 			printf("{\"type\":\"%s\",", iotypes[iotype]);
-			printf("\"bytes\":%ju,", (uintmax_t)stats[
-			       i].bytes[iotype]);
-			printf("\"operations\":%ju,", (uintmax_t)stats[
-			       i].operations[iotype]);
-			printf("\"dmas\":%ju}", (uintmax_t)
+			printf("\"bytes\":%ju,", (uintmax_t)
+			    stats[i].bytes[iotype]);
+			printf("\"operations\":%ju,", (uintmax_t)
+			    stats[i].operations[iotype]);
+			printf("\"dmas\":%ju,", (uintmax_t)
 			    stats[i].dmas[iotype]);
-			JSON_BINTIME("io time", stats[i].time[iotype]);
-			JSON_BINTIME("dma time", stats[i].dma_time[iotype]);
+			printf("\"io time\":");
+			PRINT_BINTIME(stats[i].time[iotype]);
+			printf(",\"dma time\":");
+			PRINT_BINTIME(stats[i].dma_time[iotype]);
+			printf("}");
 			if (iotype < (CTL_STATS_NUM_TYPES - 1))
 				printf(","); /* continue io array */
 		}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201703031121.v23BLEj0036902>