]>
Commit | Line | Data |
---|---|---|
f37913e8 | 1 | #!/usr/bin/python3 |
55c28321 MT |
2 | ############################################################################### |
3 | # # | |
4 | # collecty - A system statistics collection daemon for IPFire # | |
5 | # Copyright (C) 2012 IPFire development team # | |
6 | # # | |
7 | # This program is free software: you can redistribute it and/or modify # | |
8 | # it under the terms of the GNU General Public License as published by # | |
9 | # the Free Software Foundation, either version 3 of the License, or # | |
10 | # (at your option) any later version. # | |
11 | # # | |
12 | # This program is distributed in the hope that it will be useful, # | |
13 | # but WITHOUT ANY WARRANTY; without even the implied warranty of # | |
14 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # | |
15 | # GNU General Public License for more details. # | |
16 | # # | |
17 | # You should have received a copy of the GNU General Public License # | |
18 | # along with this program. If not, see <http://www.gnu.org/licenses/>. # | |
19 | # # | |
20 | ############################################################################### | |
21 | ||
22 | import os | |
23 | ||
f37913e8 | 24 | from . import base |
55c28321 | 25 | |
73db5226 MT |
26 | from ..i18n import _ |
27 | ||
55c28321 MT |
28 | ENTROPY_FILE = "/proc/sys/kernel/random/entropy_avail" |
29 | ||
b1ea4956 | 30 | class GraphTemplateEntropy(base.GraphTemplate): |
55c28321 | 31 | name = "entropy" |
55c28321 | 32 | |
971ad5c8 MT |
33 | @property |
34 | def rrd_graph(self): | |
35 | _ = self.locale.translate | |
36 | ||
37 | return [ | |
971ad5c8 | 38 | "LINE3:entropy#ff0000:%-15s" % _("Available entropy"), |
cd8bba0b MT |
39 | "GPRINT:entropy_max:%12s\:" % _("Maximum") + " %5.0lf", |
40 | "GPRINT:entropy_min:%12s\:" % _("Minimum") + " %5.0lf", | |
41 | "GPRINT:entropy_avg:%12s\:" % _("Average") + " %5.0lf\\n", | |
971ad5c8 | 42 | ] |
b1ea4956 | 43 | |
f181246a | 44 | lower_limit = 0 |
73db5226 | 45 | |
f181246a MT |
46 | @property |
47 | def graph_title(self): | |
971ad5c8 | 48 | _ = self.locale.translate |
f181246a MT |
49 | return _("Available entropy") |
50 | ||
51 | @property | |
52 | def graph_vertical_label(self): | |
971ad5c8 | 53 | _ = self.locale.translate |
f181246a | 54 | return _("Bit") |
73db5226 | 55 | |
b1ea4956 | 56 | |
72364063 | 57 | class EntropyObject(base.Object): |
b1ea4956 | 58 | rrd_schema = [ |
de090041 | 59 | "DS:entropy:GAUGE:0:U", |
b1ea4956 MT |
60 | ] |
61 | ||
72364063 MT |
62 | @property |
63 | def id(self): | |
64 | return "default" | |
55c28321 | 65 | |
72364063 MT |
66 | def collect(self): |
67 | with open(ENTROPY_FILE) as f: | |
68 | return f.readline().strip() | |
55c28321 | 69 | |
55c28321 | 70 | |
72364063 MT |
71 | class EntropyPlugin(base.Plugin): |
72 | name = "entropy" | |
73 | description = "Entropy Plugin" | |
74 | ||
c968f6d9 | 75 | templates = [GraphTemplateEntropy] |
72364063 MT |
76 | |
77 | @property | |
78 | def objects(self): | |
79 | if not os.path.exists(ENTROPY_FILE): | |
80 | self.log.debug(_("Entropy kernel interface does not exist")) | |
81 | return [] | |
55c28321 | 82 | |
72364063 | 83 | return [EntropyObject(self)] |