1 |
commit: 34630b84c18176e658c5a7c8f60df27616191ea2 |
2 |
Author: André Erdmann <dywi <AT> mailerd <DOT> de> |
3 |
AuthorDate: Tue Jul 30 16:09:27 2013 +0000 |
4 |
Commit: André Erdmann <dywi <AT> mailerd <DOT> de> |
5 |
CommitDate: Tue Jul 30 16:09:27 2013 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=34630b84 |
7 |
|
8 |
stats collection: count dropped packages |
9 |
|
10 |
* count dropped packages (package info rejected by overlay.add) |
11 |
* use heartbeat/step from config |
12 |
* don't create daily stats |
13 |
|
14 |
--- |
15 |
roverlay/overlay/creator.py | 2 ++ |
16 |
roverlay/stats/base.py | 3 ++- |
17 |
roverlay/stats/collector.py | 8 +++++--- |
18 |
roverlay/stats/rrd.py | 24 ++++++++++-------------- |
19 |
4 files changed, 19 insertions(+), 18 deletions(-) |
20 |
|
21 |
diff --git a/roverlay/overlay/creator.py b/roverlay/overlay/creator.py |
22 |
index 0666335..c21617e 100644 |
23 |
--- a/roverlay/overlay/creator.py |
24 |
+++ b/roverlay/overlay/creator.py |
25 |
@@ -134,6 +134,8 @@ class OverlayCreator ( object ): |
26 |
) |
27 |
self._pkg_queue.put ( ejob ) |
28 |
self.stats.pkg_queued.inc() |
29 |
+ else: |
30 |
+ self.stats.pkg_dropped.inc() |
31 |
else: |
32 |
# else filtered out |
33 |
self.stats.pkg_filtered.inc() |
34 |
|
35 |
diff --git a/roverlay/stats/base.py b/roverlay/stats/base.py |
36 |
index b93b6b8..b51226e 100644 |
37 |
--- a/roverlay/stats/base.py |
38 |
+++ b/roverlay/stats/base.py |
39 |
@@ -66,13 +66,14 @@ class OverlayCreationStats ( OverlayCreationWorkerStats ): |
40 |
DESCRIPTION = "overlay creation" |
41 |
|
42 |
_MEMBERS = ( |
43 |
- ( 'creation_time', 'pkg_queued', 'pkg_filtered', ) |
44 |
+ ( 'creation_time', 'pkg_queued', 'pkg_filtered', 'pkg_dropped', ) |
45 |
+ OverlayCreationWorkerStats._MEMBERS |
46 |
) |
47 |
|
48 |
def __init__ ( self ): |
49 |
super ( OverlayCreationStats, self ).__init__() |
50 |
self.pkg_queued = abstract.Counter ( "queued" ) |
51 |
+ self.pkg_dropped = abstract.Counter ( "dropped" ) |
52 |
self.pkg_filtered = abstract.Counter ( "filtered" ) |
53 |
self.creation_time = abstract.TimeStats ( "ebuild creation" ) |
54 |
# --- end of __init__ (...) --- |
55 |
|
56 |
diff --git a/roverlay/stats/collector.py b/roverlay/stats/collector.py |
57 |
index 30b0e76..85eb358 100644 |
58 |
--- a/roverlay/stats/collector.py |
59 |
+++ b/roverlay/stats/collector.py |
60 |
@@ -80,7 +80,9 @@ class StatsCollector ( abstract.RoverlayStatsBase ): |
61 |
|
62 |
self.db_collector = dbcollector.StatsDBCollector ( self ) |
63 |
self._database = rrd.StatsDB ( |
64 |
- conf.get_or_fail ( "RRD_DB.file" ), self.db_collector |
65 |
+ filepath = conf.get_or_fail ( 'RRD_DB.file' ), |
66 |
+ collector = self.db_collector, |
67 |
+ step = conf.get_or_fail ( 'RRD_DB.step' ), |
68 |
) |
69 |
self._database.create_if_missing() |
70 |
# --- end of setup_database (...) --- |
71 |
@@ -101,11 +103,11 @@ class StatsCollector ( abstract.RoverlayStatsBase ): |
72 |
return str ( visualize.CreationStatsVisualizer ( self ) ) |
73 |
# --- end of to_creation_str (...) --- |
74 |
|
75 |
- def write_db ( self ): |
76 |
+ def write_database ( self ): |
77 |
self.db_collector.update() |
78 |
self._database.update() |
79 |
self._database.commit() |
80 |
- # --- end of write_db (...) --- |
81 |
+ # --- end of write_database (...) --- |
82 |
|
83 |
# --- end of StatsCollector --- |
84 |
|
85 |
|
86 |
diff --git a/roverlay/stats/rrd.py b/roverlay/stats/rrd.py |
87 |
index 66da434..2f9cce3 100644 |
88 |
--- a/roverlay/stats/rrd.py |
89 |
+++ b/roverlay/stats/rrd.py |
90 |
@@ -13,18 +13,15 @@ from roverlay.db.rrdtool import RRDVariable, RRDArchive |
91 |
|
92 |
class StatsDB ( roverlay.db.rrdtool.RRD ): |
93 |
|
94 |
- # default step |
95 |
- STEP = 300 |
96 |
- |
97 |
- def __init__ ( self, filepath, collector, step=None ): |
98 |
+ def __init__ ( self, filepath, collector, step ): |
99 |
+ super ( StatsDB, self ).__init__ ( filepath ) |
100 |
# COULDFIX: |
101 |
# vars / RRA creation is only necessary when creating a new database |
102 |
# |
103 |
self.collector = collector |
104 |
+ self.step = int ( step ) |
105 |
self.rrd_vars = self.make_vars() |
106 |
self.rrd_archives = self.make_rra() |
107 |
- self.step = step if step is not None else self.__class__.STEP |
108 |
- super ( StatsDB, self ).__init__ ( filepath ) |
109 |
# --- end of __init__ (...) --- |
110 |
|
111 |
def _do_create ( self, filepath ): |
112 |
@@ -33,11 +30,9 @@ class StatsDB ( roverlay.db.rrdtool.RRD ): |
113 |
'create', filepath, |
114 |
'--start', str ( self.INIT_TIME ), |
115 |
'--step', str ( self.step ), |
116 |
- ) + tuple ( |
117 |
- v.get_key() for v in self.rrd_vars |
118 |
- ) + tuple ( |
119 |
- v.get_key() for v in self.rrd_archives |
120 |
) |
121 |
+ + tuple ( v.get_key() for v in self.rrd_vars ) |
122 |
+ + tuple ( v.get_key() for v in self.rrd_archives ) |
123 |
) |
124 |
# --- end of _do_create (...) --- |
125 |
|
126 |
@@ -46,17 +41,18 @@ class StatsDB ( roverlay.db.rrdtool.RRD ): |
127 |
# --- end of update (...) --- |
128 |
|
129 |
def make_vars ( self ): |
130 |
+ heartbeat = 2 * self.step |
131 |
return tuple ( |
132 |
- RRDVariable ( k, 'DERIVE', val_max=0 ) |
133 |
+ RRDVariable ( k, 'DERIVE', val_max=0, heartbeat=heartbeat ) |
134 |
for k in self.collector.NUMSTATS_KEYS |
135 |
) |
136 |
# --- end of make_vars (...) --- |
137 |
|
138 |
def make_rra ( self ): |
139 |
return ( |
140 |
- RRDArchive.new_day ( 'LAST', 0.7 ), |
141 |
- RRDArchive.new_week ( 'AVERAGE', 0.7 ), |
142 |
- RRDArchive.new_month ( 'AVERAGE', 0.7 ), |
143 |
+ #RRDArchive.new_day ( 'LAST', 0.7, step=self.step ), |
144 |
+ RRDArchive.new_week ( 'AVERAGE', 0.7, step=self.step ), |
145 |
+ RRDArchive.new_month ( 'AVERAGE', 0.7, step=self.step ), |
146 |
) |
147 |
# --- end of make_rra (...) --- |