ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/libstatgrab/examples/disk_traffic.c
(Generate patch)

Comparing projects/libstatgrab/examples/disk_traffic.c (file contents):
Revision 1.1 by pajs, Thu Jun 5 15:38:44 2003 UTC vs.
Revision 1.4 by tdb, Sun Nov 23 13:51:10 2003 UTC

# Line 1 | Line 1
1   /*
2   * i-scream central monitoring system
3 < * http://www.i-scream.org.uk
4 < * Copyright (C) 2000-2002 i-scream
3 > * http://www.i-scream.org
4 > * Copyright (C) 2000-2003 i-scream
5   *
6   * This program is free software; you can redistribute it and/or
7   * modify it under the terms of the GNU General Public License
# Line 22 | Line 22
22   * and diaply them. Also it adds up all the traffic to create and print out
23   * a total
24   * Takes several arguments :
25 < * -d <number>  Takes the number of seconds to wait to get traffic sent since last call
26 < *              Note, this is not disk traffic per second. Its the traffic since last
27 < *              call. If you want it traffic per second averaged over time since last call
25 > * -d <number>  Takes the number of seconds to wait to get traffic sent since last call
26 > *              Note, this is not disk traffic per second. Its the traffic since last
27 > *              call. If you want it traffic per second averaged over time since last call
28   *              You need to divide against the time since last time this was called. The time
29   *              between 2 calls is stored in systime in the disk_stat_t structure.
30   * -b           Display in bytes
31   * -k           Display in kilobytes
32 < * -m           Display in megabytes
32 > * -m           Display in megabytes
33   */
34  
35   #include <stdio.h>
# Line 51 | Line 51 | int main(int argc, char **argv){
51          int num_diskio_stats;
52  
53          /* Parse command line options */
54 <        while ((c = getopt(argc, argv, "d:bkm")) != EOF){
54 >        while ((c = getopt(argc, argv, "d:bkm")) != -1){
55                  switch (c){
56                          case 'd':
57                                  delay = atoi(optarg);
# Line 68 | Line 68 | int main(int argc, char **argv){
68                  }
69          }
70  
71 <        /* We are not intrested in the amount of traffic ever transmitted, just differences.
71 >        /* Initialise statgrab */
72 >        statgrab_init();
73 >
74 >        /* We are not interested in the amount of traffic ever transmitted, just differences.
75           * Because of this, we do nothing for the very first call.
76           */
77 <        
77 >
78          diskio_stats = get_diskio_stats_diff(&num_diskio_stats);
79          if (diskio_stats == NULL){
80                  perror("Error. Failed to get disk stats");
# Line 80 | Line 83 | int main(int argc, char **argv){
83  
84          /* Clear the screen ready for display the disk stats */
85          printf("\033[2J");
86 <        
86 >
87          /* Keep getting the disk stats */
88          while ( (diskio_stats = get_diskio_stats_diff(&num_diskio_stats)) != NULL){
89                  int x;
# Line 100 | Line 103 | int main(int argc, char **argv){
103                                          break;
104                                  case 'k':
105                                          printf("\033[%d;2H%-25s : %5lld k", line_number++, "Disk read", (diskio_stats->read_bytes / 1024));
106 <                                        printf("\033[%d;2H%-25s : %5lld", line_number++, "Disk write", (diskio_stats->write_bytes / 1024));
107 <                                        break;
106 >                                        printf("\033[%d;2H%-25s : %5lld", line_number++, "Disk write", (diskio_stats->write_bytes / 1024));
107 >                                        break;
108                                  case 'm':
109                                          printf("\033[%d;2H%-25s : %5.2f m", line_number++, "Disk read", diskio_stats->read_bytes / (1024.00*1024.00));
110                                          printf("\033[%d;2H%-25s : %5.2f m", line_number++, "Disk write", diskio_stats->write_bytes / (1024.00*1024.00));
111                          }
112                          printf("\033[%d;2H%-25s : %ld ", line_number++, "Disk systime", (long) diskio_stats->systime);
113 <                
113 >
114                          /* Add a blank line between interfaces */      
115                          line_number++;
116  
# Line 119 | Line 122 | int main(int argc, char **argv){
122                           * to keep track of the orginal pointer to free later */
123                          diskio_stats++;
124                  }
125 <                
125 >
126                  printf("\033[%d;2H%-25s : %-10s", line_number++, "Disk Name", "Total Disk IO");
127                  switch(units){
128                          case 'b':
# Line 135 | Line 138 | int main(int argc, char **argv){
138                                  printf("\033[%d;2H%-25s : %5.2f m", line_number++, "Disk Total write", (total_write  / (1024.00*1024.00)));
139                                  break;
140                  }
141 <                
141 >
142                  fflush(stdout);
143  
144                  sleep(delay);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines