diff options
-rw-r--r-- | plugin/memcached.php | 190 |
1 files changed, 190 insertions, 0 deletions
diff --git a/plugin/memcached.php b/plugin/memcached.php new file mode 100644 index 0000000..0236635 --- /dev/null +++ b/plugin/memcached.php | |||
@@ -0,0 +1,190 @@ | |||
1 | <?php | ||
2 | |||
3 | # Collectd Memcached plugin | ||
4 | |||
5 | # Details on http://github.com/octo/collectd/blob/master/src/memcached.c | ||
6 | |||
7 | |||
8 | |||
9 | require_once 'conf/common.inc.php'; | ||
10 | require_once 'inc/collectd.inc.php'; | ||
11 | |||
12 | ## LAYOUT | ||
13 | # df-cache.rrd | ||
14 | # memcached_command-(flush|get|set).rrd | ||
15 | # memcached_connections-current.rrd | ||
16 | # memcached_items-current.rrd | ||
17 | # memcached_octets.rrd | ||
18 | # memcached_ops-(evictions|hits|misses).rrd | ||
19 | # percent-hitratio.rrd | ||
20 | # ps_count.rrd | ||
21 | # ps_cputime.rrd | ||
22 | |||
23 | |||
24 | switch($_GET['t']) { | ||
25 | # df-cache.rrd | ||
26 | case 'df': | ||
27 | require_once 'type/Default.class.php'; | ||
28 | $obj = new Type_Default($CONFIG); | ||
29 | $obj->data_sources = array('used', 'free'); | ||
30 | $obj->order = array('used', 'free'); | ||
31 | $obj->ds_names = array( | ||
32 | 'used' => 'Used ', | ||
33 | 'free' => 'Free ', | ||
34 | ); | ||
35 | $obj->colors = array( | ||
36 | 'used' => '00e000', | ||
37 | 'free' => '0000ff', | ||
38 | |||
39 | ); | ||
40 | $obj->rrd_title = 'Memcached Memory Usage'; | ||
41 | $obj->rrd_vertical = 'bytes'; | ||
42 | break; | ||
43 | |||
44 | # memcached_command-(flush|get|set).rrd | ||
45 | case 'memcached_command': | ||
46 | require_once 'type/GenericStacked.class.php'; | ||
47 | $obj = new Type_GenericStacked($CONFIG); | ||
48 | $obj->order = array('flush', 'get', 'set'); | ||
49 | $obj->ds_names = array( | ||
50 | 'flush' => 'Flush ', | ||
51 | 'get' => 'Get ', | ||
52 | 'set' => 'Set ', | ||
53 | ); | ||
54 | $obj->colors = array( | ||
55 | 'flush' => '00e000', | ||
56 | 'get' => '0000ff', | ||
57 | 'set' => 'ffb000', | ||
58 | ); | ||
59 | $obj->rrd_title = 'Memcached Commands'; | ||
60 | $obj->rrd_vertical = 'Commands'; | ||
61 | break; | ||
62 | |||
63 | # memcached_connections-current.rrd | ||
64 | case 'memcached_connections': | ||
65 | require_once 'type/Default.class.php'; | ||
66 | $obj = new Type_Default($CONFIG); | ||
67 | $obj->data_sources = array('value'); | ||
68 | $obj->ds_names = array( | ||
69 | 'value ' => 'Connections', | ||
70 | ); | ||
71 | $obj->colors = array( | ||
72 | 'percent' => '00b000', | ||
73 | |||
74 | ); | ||
75 | $obj->rrd_title = 'Memcached Number of Connections'; | ||
76 | $obj->rrd_vertical = 'Connections'; | ||
77 | break; | ||
78 | |||
79 | # memcached_items-current.rrd | ||
80 | case 'memcached_items': | ||
81 | require_once 'type/Default.class.php'; | ||
82 | $obj = new Type_Default($CONFIG); | ||
83 | $obj->data_sources = array('value'); | ||
84 | $obj->ds_names = array( | ||
85 | 'value ' => 'Items', | ||
86 | ); | ||
87 | $obj->colors = array( | ||
88 | 'value' => '00b000', | ||
89 | ); | ||
90 | $obj->rrd_title = 'Number of Items in Memcached'; | ||
91 | $obj->rrd_vertical = 'Items'; | ||
92 | break; | ||
93 | |||
94 | # memcached_octets.rrd | ||
95 | case 'memcached_octets': | ||
96 | require_once 'type/Default.class.php'; | ||
97 | $obj = new Type_Default($CONFIG); | ||
98 | $obj->data_sources = array('rx', 'tx'); | ||
99 | $obj->order = array('rx', 'tx'); | ||
100 | $obj->ds_names = array( | ||
101 | 'rx' => 'Receive', | ||
102 | 'tx' => 'Transmit ', | ||
103 | ); | ||
104 | $obj->colors = array( | ||
105 | 'rx' => '0000ff', | ||
106 | 'tx' => '00b000', | ||
107 | ); | ||
108 | $obj->rrd_title = 'Memcached Network Traffic'; | ||
109 | $obj->rrd_vertical = 'Bytes'; | ||
110 | break; | ||
111 | # memcached_ops-(evictions|hits|misses).rrd | ||
112 | case 'memcached_ops': | ||
113 | require_once 'type/GenericStacked.class.php'; | ||
114 | $obj = new Type_GenericStacked($CONFIG); | ||
115 | $obj->order = array('evictions', 'hits', 'misses'); | ||
116 | $obj->ds_names = array( | ||
117 | 'evictions' => 'Evictions ', | ||
118 | 'hits' => 'Hits ', | ||
119 | 'misses' => 'Misses ', | ||
120 | ); | ||
121 | $obj->colors = array( | ||
122 | 'evictions' => '00e000', | ||
123 | 'hits' => '0000ff', | ||
124 | 'misses' => 'ffb000', | ||
125 | ); | ||
126 | $obj->rrd_title = 'Memcached Operations'; | ||
127 | $obj->rrd_vertical = 'Commands'; | ||
128 | break; | ||
129 | |||
130 | # percent-hitratio.rrd | ||
131 | case 'percent': | ||
132 | require_once 'type/Default.class.php'; | ||
133 | $obj = new Type_Default($CONFIG); | ||
134 | $obj->data_sources = array('percent'); | ||
135 | $obj->ds_names = array( | ||
136 | 'percent ' => 'Percentage', | ||
137 | ); | ||
138 | $obj->colors = array( | ||
139 | 'percent' => '00e000', | ||
140 | |||
141 | ); | ||
142 | $obj->rrd_title = 'Memcached Hits/Gets Ratio'; | ||
143 | $obj->rrd_vertical = 'Percent'; | ||
144 | break; | ||
145 | # ps_count.rrd | ||
146 | case 'ps_count': | ||
147 | require_once 'type/Default.class.php'; | ||
148 | $obj = new Type_Default($CONFIG); | ||
149 | $obj->data_sources = array('threads'); | ||
150 | $obj->order = array( 'threads'); | ||
151 | $obj->ds_names = array( | ||
152 | |||
153 | 'threads' => 'Threads ', | ||
154 | ); | ||
155 | $obj->colors = array( | ||
156 | |||
157 | 'threads' => '00b000', | ||
158 | ); | ||
159 | $obj->rrd_title = 'Memcached number of Threads'; | ||
160 | $obj->rrd_vertical = 'Threads'; | ||
161 | break; | ||
162 | |||
163 | # ps_cputime.rrd | ||
164 | case 'ps_cputime': | ||
165 | require_once 'type/Default.class.php'; | ||
166 | $obj = new Type_Default($CONFIG); | ||
167 | $obj->data_sources = array('user', 'syst'); | ||
168 | $obj->order = array( 'user', 'syst'); | ||
169 | $obj->ds_names = array( | ||
170 | 'user' => 'User ', | ||
171 | 'syst' => 'System ', | ||
172 | ); | ||
173 | $obj->colors = array( | ||
174 | 'user' => '00e000', | ||
175 | 'syst' => '0000ff', | ||
176 | |||
177 | ); | ||
178 | $obj->rrd_title = 'CPU Time consumed by the memcached process'; | ||
179 | $obj->rrd_vertical = 'Time'; | ||
180 | break; | ||
181 | } | ||
182 | |||
183 | $obj->width = $width; | ||
184 | $obj->heigth = $heigth; | ||
185 | $obj->rrd_format = '%5.1lf%s'; | ||
186 | |||
187 | collectd_flush($obj->identifiers); | ||
188 | $obj->rrd_graph(); | ||
189 | |||
190 | ?> | ||