Projet

Général

Profil

Paste
Télécharger au format
Statistiques
| Branche: | Révision:

root / plugins / system / multicpu1sec / multicpu1sec-c.c @ 81e9ffca

Historique | Voir | Annoter | Télécharger (1,23 ko)

1 81e9ffca Steve Schnepp
/*
2
 * multicpu1sec C plugin
3
 */
4
#include <stdio.h>
5
#include <string.h>
6
7
#define PROC_STAT "/proc/stat"
8
9
int fail(char* msg) {
10
        perror(msg);
11
12
        return 1;
13
}
14
15
int config() {
16
        /* Get the number of CPU */
17
        FILE* f;
18
        if ( !(f=fopen(PROC_STAT, "r")) ) {
19
                return fail("cannot open " PROC_STAT);
20
        }
21
22
        // Starting with -1, since the first line is the "global cpu line"
23
        int ncpu = -1;
24
        while (! feof(f)) {
25
                char buffer[1024];
26
                if (fgets(buffer, 1024, f) == 0) {
27
                        break;
28
                }
29
30
                if (! strncmp(buffer, "cpu", 3)) ncpu ++;
31
        }
32
33
        fclose(f);
34
35
        printf(
36
                "graph_title multicpu1sec\n"
37
                "graph_category system::1sec\n"
38
                "graph_vlabel average cpu use %\n"
39
                "graph_scale no\n"
40
                "graph_total All CPUs\n"
41
                "update_rate 1\n"
42
                "graph_data_size custom 1d, 10s for 1w, 1m for 1t, 5m for 1y\n"
43
        );
44
45
        int i;
46
        for (i = 0; i < ncpu; i++) {
47
                printf("cpu%d.label CPU %d\n", i, i);
48
                printf("cpu%d.draw %s\n", i, "AREASTACK");
49
                printf("cpu%d.min 0\n", i);
50
        }
51
52
53
}
54
55
int acquire() {
56
        printf("acquire()\n");
57
}
58
59
int fetch() {
60
        printf("fetch()\n");
61
}
62
63
int main(int argc, char **argv) {
64
        if (argc > 1) {
65
                char* first_arg = argv[1];
66
                if (! strcmp(first_arg, "config")) {
67
                        return config();
68
                }
69
70
                if (! strcmp(first_arg, "acquire")) {
71
                        return acquire();
72
                }
73
        }
74
75
        return fetch();
76
}