Update version according to OSCI-856
[packages/precise/mcollective.git] / doc / classes / MCollective / RunnerStats.html
1 <?xml version="1.0" encoding="iso-8859-1"?>
2 <!DOCTYPE html 
3      PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
5
6 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
7 <head>
8   <title>Class: MCollective::RunnerStats</title>
9   <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
10   <meta http-equiv="Content-Script-Type" content="text/javascript" />
11   <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
12   <script type="text/javascript">
13   // <![CDATA[
14
15   function popupCode( url ) {
16     window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
17   }
18
19   function toggleCode( id ) {
20     if ( document.getElementById )
21       elem = document.getElementById( id );
22     else if ( document.all )
23       elem = eval( "document.all." + id );
24     else
25       return false;
26
27     elemStyle = elem.style;
28     
29     if ( elemStyle.display != "block" ) {
30       elemStyle.display = "block"
31     } else {
32       elemStyle.display = "none"
33     }
34
35     return true;
36   }
37   
38   // Make codeblocks hidden by default
39   document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
40   
41   // ]]>
42   </script>
43
44 </head>
45 <body>
46
47
48
49     <div id="classHeader">
50         <table class="header-table">
51         <tr class="top-aligned-row">
52           <td><strong>Class</strong></td>
53           <td class="class-name-in-header">MCollective::RunnerStats</td>
54         </tr>
55         <tr class="top-aligned-row">
56             <td><strong>In:</strong></td>
57             <td>
58                 <a href="../../files/lib/mcollective/runnerstats_rb.html">
59                 lib/mcollective/runnerstats.rb
60                 </a>
61         <br />
62             </td>
63         </tr>
64
65         <tr class="top-aligned-row">
66             <td><strong>Parent:</strong></td>
67             <td>
68                 Object
69             </td>
70         </tr>
71         </table>
72     </div>
73   <!-- banner header -->
74
75   <div id="bodyContent">
76
77
78
79   <div id="contextContent">
80
81     <div id="description">
82       <p>
83 Class to store stats about the mcollectived, it should live in the <a
84 href="PluginManager.html">PluginManager</a> so that agents etc can get hold
85 of it and return the stats to callers
86 </p>
87
88     </div>
89
90
91    </div>
92
93     <div id="method-list">
94       <h3 class="section-bar">Methods</h3>
95
96       <div class="name-list">
97       <a href="#M000476">filtered</a>&nbsp;&nbsp;
98       <a href="#M000473">new</a>&nbsp;&nbsp;
99       <a href="#M000475">passed</a>&nbsp;&nbsp;
100       <a href="#M000479">received</a>&nbsp;&nbsp;
101       <a href="#M000480">sent</a>&nbsp;&nbsp;
102       <a href="#M000481">to_hash</a>&nbsp;&nbsp;
103       <a href="#M000474">ttlexpired</a>&nbsp;&nbsp;
104       <a href="#M000478">unvalidated</a>&nbsp;&nbsp;
105       <a href="#M000477">validated</a>&nbsp;&nbsp;
106       </div>
107     </div>
108
109   </div>
110
111
112     <!-- if includes -->
113
114     <div id="section">
115
116
117
118
119
120       
121
122
123     <!-- if method_list -->
124     <div id="methods">
125       <h3 class="section-bar">Public Class methods</h3>
126
127       <div id="method-M000473" class="method-detail">
128         <a name="M000473"></a>
129
130         <div class="method-heading">
131           <a href="#M000473" class="method-signature">
132           <span class="method-name">new</span><span class="method-args">()</span>
133           </a>
134         </div>
135       
136         <div class="method-description">
137           <p><a class="source-toggle" href="#"
138             onclick="toggleCode('M000473-source');return false;">[Source]</a></p>
139           <div class="method-source-code" id="M000473-source">
140 <pre>
141     <span class="ruby-comment cmt"># File lib/mcollective/runnerstats.rb, line 5</span>
142  5:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>
143  6:       <span class="ruby-ivar">@starttime</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">now</span>.<span class="ruby-identifier">to_i</span>
144  7:       <span class="ruby-ivar">@validated</span> = <span class="ruby-value">0</span>
145  8:       <span class="ruby-ivar">@unvalidated</span> = <span class="ruby-value">0</span>
146  9:       <span class="ruby-ivar">@filtered</span> = <span class="ruby-value">0</span>
147 10:       <span class="ruby-ivar">@passed</span> = <span class="ruby-value">0</span>
148 11:       <span class="ruby-ivar">@total</span> = <span class="ruby-value">0</span>
149 12:       <span class="ruby-ivar">@replies</span> = <span class="ruby-value">0</span>
150 13:       <span class="ruby-ivar">@ttlexpired</span> = <span class="ruby-value">0</span>
151 14: 
152 15:       <span class="ruby-ivar">@mutex</span> = <span class="ruby-constant">Mutex</span>.<span class="ruby-identifier">new</span>
153 16:     <span class="ruby-keyword kw">end</span>
154 </pre>
155           </div>
156         </div>
157       </div>
158
159       <h3 class="section-bar">Public Instance methods</h3>
160
161       <div id="method-M000476" class="method-detail">
162         <a name="M000476"></a>
163
164         <div class="method-heading">
165           <a href="#M000476" class="method-signature">
166           <span class="method-name">filtered</span><span class="method-args">()</span>
167           </a>
168         </div>
169       
170         <div class="method-description">
171           <p>
172 Records a message that didnt pass the filters
173 </p>
174           <p><a class="source-toggle" href="#"
175             onclick="toggleCode('M000476-source');return false;">[Source]</a></p>
176           <div class="method-source-code" id="M000476-source">
177 <pre>
178     <span class="ruby-comment cmt"># File lib/mcollective/runnerstats.rb, line 31</span>
179 31:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">filtered</span>
180 32:       <span class="ruby-constant">Log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-value str">&quot;Incrementing filtered stat&quot;</span>)
181 33:       <span class="ruby-ivar">@filtered</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
182 34:     <span class="ruby-keyword kw">end</span>
183 </pre>
184           </div>
185         </div>
186       </div>
187
188       <div id="method-M000475" class="method-detail">
189         <a name="M000475"></a>
190
191         <div class="method-heading">
192           <a href="#M000475" class="method-signature">
193           <span class="method-name">passed</span><span class="method-args">()</span>
194           </a>
195         </div>
196       
197         <div class="method-description">
198           <p>
199 Records a message that <a href="RunnerStats.html#M000475">passed</a> the
200 filters
201 </p>
202           <p><a class="source-toggle" href="#"
203             onclick="toggleCode('M000475-source');return false;">[Source]</a></p>
204           <div class="method-source-code" id="M000475-source">
205 <pre>
206     <span class="ruby-comment cmt"># File lib/mcollective/runnerstats.rb, line 25</span>
207 25:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">passed</span>
208 26:       <span class="ruby-constant">Log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-value str">&quot;Incrementing passed stat&quot;</span>)
209 27:       <span class="ruby-ivar">@passed</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
210 28:     <span class="ruby-keyword kw">end</span>
211 </pre>
212           </div>
213         </div>
214       </div>
215
216       <div id="method-M000479" class="method-detail">
217         <a name="M000479"></a>
218
219         <div class="method-heading">
220           <a href="#M000479" class="method-signature">
221           <span class="method-name">received</span><span class="method-args">()</span>
222           </a>
223         </div>
224       
225         <div class="method-description">
226           <p>
227 Records receipt of a message
228 </p>
229           <p><a class="source-toggle" href="#"
230             onclick="toggleCode('M000479-source');return false;">[Source]</a></p>
231           <div class="method-source-code" id="M000479-source">
232 <pre>
233     <span class="ruby-comment cmt"># File lib/mcollective/runnerstats.rb, line 48</span>
234 48:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">received</span>
235 49:       <span class="ruby-constant">Log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-value str">&quot;Incrementing total stat&quot;</span>)
236 50:       <span class="ruby-ivar">@total</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
237 51:     <span class="ruby-keyword kw">end</span>
238 </pre>
239           </div>
240         </div>
241       </div>
242
243       <div id="method-M000480" class="method-detail">
244         <a name="M000480"></a>
245
246         <div class="method-heading">
247           <a href="#M000480" class="method-signature">
248           <span class="method-name">sent</span><span class="method-args">()</span>
249           </a>
250         </div>
251       
252         <div class="method-description">
253           <p>
254 Records sending a message
255 </p>
256           <p><a class="source-toggle" href="#"
257             onclick="toggleCode('M000480-source');return false;">[Source]</a></p>
258           <div class="method-source-code" id="M000480-source">
259 <pre>
260     <span class="ruby-comment cmt"># File lib/mcollective/runnerstats.rb, line 54</span>
261 54:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">sent</span>
262 55:       <span class="ruby-ivar">@mutex</span>.<span class="ruby-identifier">synchronize</span> <span class="ruby-keyword kw">do</span>
263 56:         <span class="ruby-constant">Log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-value str">&quot;Incrementing replies stat&quot;</span>)
264 57:         <span class="ruby-ivar">@replies</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
265 58:       <span class="ruby-keyword kw">end</span>
266 59:     <span class="ruby-keyword kw">end</span>
267 </pre>
268           </div>
269         </div>
270       </div>
271
272       <div id="method-M000481" class="method-detail">
273         <a name="M000481"></a>
274
275         <div class="method-heading">
276           <a href="#M000481" class="method-signature">
277           <span class="method-name">to_hash</span><span class="method-args">()</span>
278           </a>
279         </div>
280       
281         <div class="method-description">
282           <p>
283 Returns a hash with all stats
284 </p>
285           <p><a class="source-toggle" href="#"
286             onclick="toggleCode('M000481-source');return false;">[Source]</a></p>
287           <div class="method-source-code" id="M000481-source">
288 <pre>
289     <span class="ruby-comment cmt"># File lib/mcollective/runnerstats.rb, line 62</span>
290 62:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">to_hash</span>
291 63:       <span class="ruby-identifier">stats</span> = {<span class="ruby-identifier">:validated</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@validated</span>,
292 64:         <span class="ruby-identifier">:unvalidated</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@unvalidated</span>,
293 65:         <span class="ruby-identifier">:passed</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@passed</span>,
294 66:         <span class="ruby-identifier">:filtered</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@filtered</span>,
295 67:         <span class="ruby-identifier">:starttime</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@starttime</span>,
296 68:         <span class="ruby-identifier">:total</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@total</span>,
297 69:         <span class="ruby-identifier">:ttlexpired</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@ttlexpired</span>,
298 70:         <span class="ruby-identifier">:replies</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-ivar">@replies</span>}
299 71: 
300 72:       <span class="ruby-identifier">reply</span> = {<span class="ruby-identifier">:stats</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">stats</span>,
301 73:         <span class="ruby-identifier">:threads</span> =<span class="ruby-operator">&gt;</span> [],
302 74:         <span class="ruby-identifier">:pid</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">Process</span>.<span class="ruby-identifier">pid</span>,
303 75:         <span class="ruby-identifier">:times</span> =<span class="ruby-operator">&gt;</span> {} }
304 76: 
305 77:       <span class="ruby-operator">::</span><span class="ruby-constant">Process</span>.<span class="ruby-identifier">times</span>.<span class="ruby-identifier">each_pair</span>{<span class="ruby-operator">|</span><span class="ruby-identifier">k</span>,<span class="ruby-identifier">v</span><span class="ruby-operator">|</span>
306 78:         <span class="ruby-identifier">k</span> = <span class="ruby-identifier">k</span>.<span class="ruby-identifier">to_sym</span>
307 79:         <span class="ruby-identifier">reply</span>[<span class="ruby-identifier">:times</span>][<span class="ruby-identifier">k</span>] = <span class="ruby-identifier">v</span>
308 80:       }
309 81: 
310 82:       <span class="ruby-constant">Thread</span>.<span class="ruby-identifier">list</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">t</span><span class="ruby-operator">|</span>
311 83:         <span class="ruby-identifier">reply</span>[<span class="ruby-identifier">:threads</span>] <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{t.inspect}&quot;</span>
312 84:       <span class="ruby-keyword kw">end</span>
313 85: 
314 86:       <span class="ruby-identifier">reply</span>[<span class="ruby-identifier">:agents</span>] = <span class="ruby-constant">Agents</span>.<span class="ruby-identifier">agentlist</span>
315 87:       <span class="ruby-identifier">reply</span>
316 88:     <span class="ruby-keyword kw">end</span>
317 </pre>
318           </div>
319         </div>
320       </div>
321
322       <div id="method-M000474" class="method-detail">
323         <a name="M000474"></a>
324
325         <div class="method-heading">
326           <a href="#M000474" class="method-signature">
327           <span class="method-name">ttlexpired</span><span class="method-args">()</span>
328           </a>
329         </div>
330       
331         <div class="method-description">
332           <p>
333 Records a message that failed TTL checks
334 </p>
335           <p><a class="source-toggle" href="#"
336             onclick="toggleCode('M000474-source');return false;">[Source]</a></p>
337           <div class="method-source-code" id="M000474-source">
338 <pre>
339     <span class="ruby-comment cmt"># File lib/mcollective/runnerstats.rb, line 19</span>
340 19:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">ttlexpired</span>
341 20:       <span class="ruby-constant">Log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-value str">&quot;Incrementing ttl expired stat&quot;</span>)
342 21:       <span class="ruby-ivar">@ttlexpired</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
343 22:     <span class="ruby-keyword kw">end</span>
344 </pre>
345           </div>
346         </div>
347       </div>
348
349       <div id="method-M000478" class="method-detail">
350         <a name="M000478"></a>
351
352         <div class="method-heading">
353           <a href="#M000478" class="method-signature">
354           <span class="method-name">unvalidated</span><span class="method-args">()</span>
355           </a>
356         </div>
357       
358         <div class="method-description">
359           <p><a class="source-toggle" href="#"
360             onclick="toggleCode('M000478-source');return false;">[Source]</a></p>
361           <div class="method-source-code" id="M000478-source">
362 <pre>
363     <span class="ruby-comment cmt"># File lib/mcollective/runnerstats.rb, line 42</span>
364 42:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unvalidated</span>
365 43:       <span class="ruby-constant">Log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-value str">&quot;Incrementing unvalidated stat&quot;</span>)
366 44:       <span class="ruby-ivar">@unvalidated</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
367 45:     <span class="ruby-keyword kw">end</span>
368 </pre>
369           </div>
370         </div>
371       </div>
372
373       <div id="method-M000477" class="method-detail">
374         <a name="M000477"></a>
375
376         <div class="method-heading">
377           <a href="#M000477" class="method-signature">
378           <span class="method-name">validated</span><span class="method-args">()</span>
379           </a>
380         </div>
381       
382         <div class="method-description">
383           <p>
384 Records a message that <a href="RunnerStats.html#M000477">validated</a> ok
385 </p>
386           <p><a class="source-toggle" href="#"
387             onclick="toggleCode('M000477-source');return false;">[Source]</a></p>
388           <div class="method-source-code" id="M000477-source">
389 <pre>
390     <span class="ruby-comment cmt"># File lib/mcollective/runnerstats.rb, line 37</span>
391 37:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">validated</span>
392 38:       <span class="ruby-constant">Log</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-value str">&quot;Incrementing validated stat&quot;</span>)
393 39:       <span class="ruby-ivar">@validated</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
394 40:     <span class="ruby-keyword kw">end</span>
395 </pre>
396           </div>
397         </div>
398       </div>
399
400
401     </div>
402
403
404   </div>
405
406
407 <div id="validator-badges">
408   <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
409 </div>
410
411 </body>
412 </html>