Difference between revisions of "Public.getmanagepercentavailnodewindow (function)"

From dbscript Online Help
Jump to: navigation, search
Line 2: Line 2:
  
 
{| border="1" cellpadding="5" cellspacing="0" style="border-collapse:collapse"
 
{| border="1" cellpadding="5" cellspacing="0" style="border-collapse:collapse"
|-
+
|- valign="top"
 
| '''Function
 
| '''Function
 
| public.getmanagepercentavailnodewindow
 
| public.getmanagepercentavailnodewindow
|-
 
 
|}
 
|}
 
  
 
=== Source ===
 
=== Source ===
Line 54: Line 52:
 
| '''Referenced Object
 
| '''Referenced Object
  
|-
+
|- valign="top"
 
| Execute
 
| Execute
 
| Function
 
| Function
 
| [[public.getmanagedoutagefornodeinwindow_(function)|public.getmanagedoutagefornodeinwindow]]
 
| [[public.getmanagedoutagefornodeinwindow_(function)|public.getmanagedoutagefornodeinwindow]]
  
|-
+
|- valign="top"
 
| Execute
 
| Execute
 
| Function
 
| Function

Revision as of 00:38, 25 June 2010

wikibot

Function public.getmanagepercentavailnodewindow

Source

CREATE OR REPLACE FUNCTION public.getmanagepercentavailnodewindow(integer, timestamp without time zone, timestamp without time zone)
 RETURNS double precision
 LANGUAGE plpgsql
AS $function$
   DECLARE
	nid ALIAS FOR $1;
	xtime ALIAS FOR $2;
	ytime ALIAS FOR $3;
	downtime float8 := 0.0;
	count integer := 0;
	rollingWindow float := 0;
	totalServiceTime float := 0;
   BEGIN
	IF xtime < ytime THEN
		rollingWindow := EXTRACT (EPOCH FROM (ytime - xtime));
		downtime := getManagedOutageForNodeInWindow(nid, ytime, xtime)/1000;
	ELSE
		rollingWindow := EXTRACT (EPOCH FROM (xtime - ytime));
		downtime := getManagedOutageForNodeInWindow(nid, xtime, ytime)/1000;
	END IF;
	count := getManagedServiceCountForNode(nid);
	totalServiceTime := count * rollingWindow;

	IF totalServiceTime > 0 THEN
		RETURN 100 * (1 - (downtime / totalServiceTime));
	ELSE
		IF totalServiceTime = 0 THEN
                        RETURN 100;
                ELSE
                        RETURN -1;
                END IF;
	END IF;
   END;
$function$

References

Dependency Type Object Type Referenced Object
Execute Function public.getmanagedoutagefornodeinwindow
Execute Function public.getmanagedservicecountfornode