perfmonger 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +15 -0
- data/.dir-locals.el +2 -0
- data/.gitignore +4 -0
- data/.rspec +1 -0
- data/.travis.yml +12 -0
- data/COPYING +674 -0
- data/Gemfile +5 -0
- data/HOWTO.md +15 -0
- data/NEWS +115 -0
- data/README.md +61 -0
- data/Rakefile +8 -0
- data/bin/perfmonger +6 -0
- data/data/NOTICE +8 -0
- data/data/Twitter_Bootstrap_LICENSE.txt +176 -0
- data/data/assets/css/bootstrap-responsive.css +1109 -0
- data/data/assets/css/bootstrap.css +6167 -0
- data/data/assets/css/perfmonger.css +17 -0
- data/data/assets/dashboard.erb +319 -0
- data/data/assets/img/glyphicons-halflings-white.png +0 -0
- data/data/assets/img/glyphicons-halflings.png +0 -0
- data/data/assets/js/bootstrap.js +2280 -0
- data/data/assets/js/bootstrap.min.js +6 -0
- data/data/assets/js/canvasjs.js +9042 -0
- data/data/assets/js/canvasjs.min.js +271 -0
- data/data/sysstat.ioconf +268 -0
- data/ext/perfmonger/extconf.rb +19 -0
- data/ext/perfmonger/perfmonger.h +58 -0
- data/ext/perfmonger/perfmonger_record.c +754 -0
- data/ext/perfmonger/sysstat/common.c +627 -0
- data/ext/perfmonger/sysstat/common.h +207 -0
- data/ext/perfmonger/sysstat/ioconf.c +515 -0
- data/ext/perfmonger/sysstat/ioconf.h +84 -0
- data/ext/perfmonger/sysstat/iostat.c +1100 -0
- data/ext/perfmonger/sysstat/iostat.h +121 -0
- data/ext/perfmonger/sysstat/libsysstat.h +19 -0
- data/ext/perfmonger/sysstat/mpstat.c +953 -0
- data/ext/perfmonger/sysstat/mpstat.h +79 -0
- data/ext/perfmonger/sysstat/rd_stats.c +2388 -0
- data/ext/perfmonger/sysstat/rd_stats.h +651 -0
- data/ext/perfmonger/sysstat/sysconfig.h +13 -0
- data/lib/perfmonger/cli.rb +115 -0
- data/lib/perfmonger/command/base_command.rb +39 -0
- data/lib/perfmonger/command/fingerprint.rb +453 -0
- data/lib/perfmonger/command/plot.rb +429 -0
- data/lib/perfmonger/command/record.rb +32 -0
- data/lib/perfmonger/command/record_option.rb +149 -0
- data/lib/perfmonger/command/server.rb +294 -0
- data/lib/perfmonger/command/stat.rb +60 -0
- data/lib/perfmonger/command/stat_option.rb +29 -0
- data/lib/perfmonger/command/summary.rb +402 -0
- data/lib/perfmonger/config.rb +6 -0
- data/lib/perfmonger/version.rb +5 -0
- data/lib/perfmonger.rb +12 -0
- data/misc/release-howto.txt +17 -0
- data/misc/sample-cpu.png +0 -0
- data/misc/sample-read-iops.png +0 -0
- data/perfmonger.gemspec +44 -0
- data/test/run-test.sh +39 -0
- data/test/spec/bin_spec.rb +37 -0
- data/test/spec/data/2devices.expected +42 -0
- data/test/spec/data/2devices.output +42 -0
- data/test/spec/spec_helper.rb +20 -0
- data/test/spec/summary_spec.rb +193 -0
- data/test/test-perfmonger.c +145 -0
- data/test/test.h +9 -0
- metadata +154 -0
@@ -0,0 +1,84 @@
|
|
1
|
+
/*
|
2
|
+
* ioconf: ioconf configuration file handling code
|
3
|
+
* Original code (C) 2004 by Red Hat (Charlie Bennett <ccb@redhat.com>)
|
4
|
+
*
|
5
|
+
* Modified and maintained by Sebastien GODARD (sysstat <at> orange.fr)
|
6
|
+
*/
|
7
|
+
|
8
|
+
#ifndef _IOCONF_H
|
9
|
+
#define _IOCONF_H
|
10
|
+
|
11
|
+
#include "sysconfig.h"
|
12
|
+
|
13
|
+
#define IOC_NAMELEN 31
|
14
|
+
#define IOC_DESCLEN 63
|
15
|
+
#define IOC_DEVLEN 47
|
16
|
+
#define IOC_MAXMINOR 2047
|
17
|
+
#define IOC_LINESIZ 255
|
18
|
+
#define IOC_PARTLEN 7
|
19
|
+
#define IOC_FMTLEN 15
|
20
|
+
|
21
|
+
#ifndef MAX_BLKDEV
|
22
|
+
#define MAX_BLKDEV 255
|
23
|
+
#endif
|
24
|
+
|
25
|
+
#define K_NODEV "nodev"
|
26
|
+
|
27
|
+
#define IS_WHOLE(maj,min) ((min % ioconf[maj]->blkp->pcount) == 0)
|
28
|
+
|
29
|
+
/*
|
30
|
+
* When is C going to get templates?
|
31
|
+
*/
|
32
|
+
#define IOC_ALLOC(P,TYPE,SIZE) \
|
33
|
+
do { \
|
34
|
+
if (P == NULL) { \
|
35
|
+
P = (TYPE *) malloc(SIZE); \
|
36
|
+
if (P == NULL) { \
|
37
|
+
perror("malloc"); \
|
38
|
+
ioc_free(); \
|
39
|
+
return 0; \
|
40
|
+
} \
|
41
|
+
} \
|
42
|
+
} \
|
43
|
+
while (0)
|
44
|
+
/* That dummy while allows ';' on the line that invokes the macro... */
|
45
|
+
|
46
|
+
|
47
|
+
struct blk_config {
|
48
|
+
char name[IOC_NAMELEN + 1]; /* device basename */
|
49
|
+
char cfmt[IOC_FMTLEN + 1]; /* controller format string */
|
50
|
+
char dfmt[IOC_FMTLEN + 1]; /* disk format string */
|
51
|
+
char pfmt[IOC_FMTLEN + 1]; /* partition format string */
|
52
|
+
/* ctrlno is in the ioc_entry */
|
53
|
+
unsigned int ctrl_explicit; /* use "cN" in name */
|
54
|
+
unsigned int dcount; /* number of devices handled by this major */
|
55
|
+
unsigned int pcount; /* partitions per device */
|
56
|
+
char desc[IOC_DESCLEN + 1];
|
57
|
+
/* disk info unit # conversion function */
|
58
|
+
char *(*cconv)(unsigned int);
|
59
|
+
|
60
|
+
/* extension properties (all this for initrd?) */
|
61
|
+
char ext_name[IOC_NAMELEN + 1];
|
62
|
+
unsigned int ext; /* flag - this is an extension record */
|
63
|
+
unsigned int ext_minor; /* which minor does this apply to */
|
64
|
+
};
|
65
|
+
|
66
|
+
#define BLK_CONFIG_SIZE (sizeof(struct blk_config))
|
67
|
+
|
68
|
+
|
69
|
+
struct ioc_entry {
|
70
|
+
int live; /* is this a Direct entry? */
|
71
|
+
unsigned int ctrlno; /* controller number */
|
72
|
+
unsigned int basemajor; /* Major number of the template */
|
73
|
+
char *desc; /* (dynamic) per-controller description */
|
74
|
+
struct blk_config *blkp; /* the real info, may be a shared ref */
|
75
|
+
};
|
76
|
+
|
77
|
+
#define IOC_ENTRY_SIZE (sizeof(struct ioc_entry))
|
78
|
+
|
79
|
+
|
80
|
+
extern int ioc_iswhole(unsigned int, unsigned int);
|
81
|
+
extern char *ioc_name(unsigned int, unsigned int);
|
82
|
+
extern char *transform_devmapname(unsigned int, unsigned int);
|
83
|
+
|
84
|
+
#endif
|