X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Frrd_tool.c;h=f393f860d6f8749f69550b2e8df85c81f754cf4f;hb=390f90c996ec2902cccf0682a252936e1c7b6f2c;hp=f56b90ccb6c21e68e42678aaf77578b42cfa224b;hpb=7f408c1ae7d1011c489fbd9123b1dd03d869e088;p=rrdtool.git diff --git a/src/rrd_tool.c b/src/rrd_tool.c index f56b90c..f393f86 100644 --- a/src/rrd_tool.c +++ b/src/rrd_tool.c @@ -159,6 +159,7 @@ void PrintUsage(char *cmd) "\trrdtool xport [-s|--start seconds] [-e|--end seconds]\n" "\t\t[-m|--maxrows rows]\n" "\t\t[--step seconds]\n" + "\t\t[--enumds]\n" "\t\t[DEF:vname=rrd:ds-name:CF]\n" "\t\t[CDEF:vname=rpn-expression]\n" "\t\t[XPORT:vname:legend]\n\n"; @@ -647,13 +648,22 @@ int HandleInputLine(int argc, char **argv, FILE* out) free (data); } } else if (strcmp("xport", argv[1]) == 0) { - int xxsize; + int xxsize; unsigned long int j = 0; time_t start,end, ti; unsigned long step, col_cnt,row_cnt; rrd_value_t *data,*ptr; char **legend_v; - if(rrd_xport(argc-1, &argv[1], &xxsize,&start,&end,&step,&col_cnt,&legend_v,&data) != -1) { + int enumds = 0; + int i; + char *vtag = NULL; + vtag = malloc( strlen(COL_DATA_TAG)+10); + for ( i = 2; i < argc; i++){ + if (strcmp("--enumds", argv[i]) == 0) + enumds = 1; + } + + if(rrd_xport(argc-1, &argv[1], &xxsize,&start,&end,&step,&col_cnt,&legend_v,&data) != -1) { row_cnt = (end-start)/step; ptr = data; printf("\n\n", XML_ENCODING); @@ -680,11 +690,16 @@ int HandleInputLine(int argc, char **argv, FILE* out) printf ("<%s>%lu", COL_TIME_TAG, ti, COL_TIME_TAG); for (j = 0; j < col_cnt; j++) { rrd_value_t newval = DNAN; + if (enumds == 1) + snprintf(vtag,15,"%s%lu", COL_DATA_TAG, j); + else + snprintf(vtag,15,"%s",COL_DATA_TAG); + newval = *ptr; if(isnan(newval)){ - printf("<%s>NaN", COL_DATA_TAG, COL_DATA_TAG); + printf("<%s>NaN", vtag,vtag); } else { - printf("<%s>%0.10e", COL_DATA_TAG, newval, COL_DATA_TAG); + printf("<%s>%0.10e", vtag, newval, vtag); }; ptr++; } @@ -694,6 +709,7 @@ int HandleInputLine(int argc, char **argv, FILE* out) printf(" \n", DATA_TAG); printf("\n", ROOT_TAG); } + free(vtag); } else if (strcmp("graph", argv[1]) == 0) { char **calcpr;