1 <?xml version="1.0" encoding="iso-8859-1"?>
3 PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
4 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
6 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
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">
15 function popupCode( url ) {
16 window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
19 function toggleCode( id ) {
20 if ( document.getElementById )
21 elem = document.getElementById( id );
22 else if ( document.all )
23 elem = eval( "document.all." + id );
27 elemStyle = elem.style;
29 if ( elemStyle.display != "block" ) {
30 elemStyle.display = "block"
32 elemStyle.display = "none"
38 // Make codeblocks hidden by default
39 document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
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>
55 <tr class="top-aligned-row">
56 <td><strong>In:</strong></td>
58 <a href="../../files/lib/mcollective/runnerstats_rb.html">
59 lib/mcollective/runnerstats.rb
65 <tr class="top-aligned-row">
66 <td><strong>Parent:</strong></td>
73 <!-- banner header -->
75 <div id="bodyContent">
79 <div id="contextContent">
81 <div id="description">
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
93 <div id="method-list">
94 <h3 class="section-bar">Methods</h3>
96 <div class="name-list">
97 <a href="#M000476">filtered</a>
98 <a href="#M000473">new</a>
99 <a href="#M000475">passed</a>
100 <a href="#M000479">received</a>
101 <a href="#M000480">sent</a>
102 <a href="#M000481">to_hash</a>
103 <a href="#M000474">ttlexpired</a>
104 <a href="#M000478">unvalidated</a>
105 <a href="#M000477">validated</a>
123 <!-- if method_list -->
125 <h3 class="section-bar">Public Class methods</h3>
127 <div id="method-M000473" class="method-detail">
128 <a name="M000473"></a>
130 <div class="method-heading">
131 <a href="#M000473" class="method-signature">
132 <span class="method-name">new</span><span class="method-args">()</span>
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">
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>
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>
159 <h3 class="section-bar">Public Instance methods</h3>
161 <div id="method-M000476" class="method-detail">
162 <a name="M000476"></a>
164 <div class="method-heading">
165 <a href="#M000476" class="method-signature">
166 <span class="method-name">filtered</span><span class="method-args">()</span>
170 <div class="method-description">
172 Records a message that didnt pass the filters
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">
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">"Incrementing filtered stat"</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>
188 <div id="method-M000475" class="method-detail">
189 <a name="M000475"></a>
191 <div class="method-heading">
192 <a href="#M000475" class="method-signature">
193 <span class="method-name">passed</span><span class="method-args">()</span>
197 <div class="method-description">
199 Records a message that <a href="RunnerStats.html#M000475">passed</a> the
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">
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">"Incrementing passed stat"</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>
216 <div id="method-M000479" class="method-detail">
217 <a name="M000479"></a>
219 <div class="method-heading">
220 <a href="#M000479" class="method-signature">
221 <span class="method-name">received</span><span class="method-args">()</span>
225 <div class="method-description">
227 Records receipt of a message
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">
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">"Incrementing total stat"</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>
243 <div id="method-M000480" class="method-detail">
244 <a name="M000480"></a>
246 <div class="method-heading">
247 <a href="#M000480" class="method-signature">
248 <span class="method-name">sent</span><span class="method-args">()</span>
252 <div class="method-description">
254 Records sending a message
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">
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">"Incrementing replies stat"</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>
272 <div id="method-M000481" class="method-detail">
273 <a name="M000481"></a>
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>
281 <div class="method-description">
283 Returns a hash with all stats
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">
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">></span> <span class="ruby-ivar">@validated</span>,
292 64: <span class="ruby-identifier">:unvalidated</span> =<span class="ruby-operator">></span> <span class="ruby-ivar">@unvalidated</span>,
293 65: <span class="ruby-identifier">:passed</span> =<span class="ruby-operator">></span> <span class="ruby-ivar">@passed</span>,
294 66: <span class="ruby-identifier">:filtered</span> =<span class="ruby-operator">></span> <span class="ruby-ivar">@filtered</span>,
295 67: <span class="ruby-identifier">:starttime</span> =<span class="ruby-operator">></span> <span class="ruby-ivar">@starttime</span>,
296 68: <span class="ruby-identifier">:total</span> =<span class="ruby-operator">></span> <span class="ruby-ivar">@total</span>,
297 69: <span class="ruby-identifier">:ttlexpired</span> =<span class="ruby-operator">></span> <span class="ruby-ivar">@ttlexpired</span>,
298 70: <span class="ruby-identifier">:replies</span> =<span class="ruby-operator">></span> <span class="ruby-ivar">@replies</span>}
300 72: <span class="ruby-identifier">reply</span> = {<span class="ruby-identifier">:stats</span> =<span class="ruby-operator">></span> <span class="ruby-identifier">stats</span>,
301 73: <span class="ruby-identifier">:threads</span> =<span class="ruby-operator">></span> [],
302 74: <span class="ruby-identifier">:pid</span> =<span class="ruby-operator">></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">></span> {} }
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>
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"><<</span> <span class="ruby-node">"#{t.inspect}"</span>
312 84: <span class="ruby-keyword kw">end</span>
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>
322 <div id="method-M000474" class="method-detail">
323 <a name="M000474"></a>
325 <div class="method-heading">
326 <a href="#M000474" class="method-signature">
327 <span class="method-name">ttlexpired</span><span class="method-args">()</span>
331 <div class="method-description">
333 Records a message that failed TTL checks
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">
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">"Incrementing ttl expired stat"</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>
349 <div id="method-M000478" class="method-detail">
350 <a name="M000478"></a>
352 <div class="method-heading">
353 <a href="#M000478" class="method-signature">
354 <span class="method-name">unvalidated</span><span class="method-args">()</span>
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">
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">"Incrementing unvalidated stat"</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>
373 <div id="method-M000477" class="method-detail">
374 <a name="M000477"></a>
376 <div class="method-heading">
377 <a href="#M000477" class="method-signature">
378 <span class="method-name">validated</span><span class="method-args">()</span>
382 <div class="method-description">
384 Records a message that <a href="RunnerStats.html#M000477">validated</a> ok
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">
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">"Incrementing validated stat"</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>
407 <div id="validator-badges">
408 <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>