ipa_conv man page on DragonFly

Man page or keyword search:  
man Server   44335 pages
apropos Keyword Search (all sections)
Output format
DragonFly logo
[printable version]

IPA_CONV(8)							   IPA_CONV(8)

NAME
       ipa_conv -- IPA accounting/database module for converting statistics

DESCRIPTION
       ipa_conv	 is  an IPA accounting/database module with the following fea‐
       tures:

       -      The module is designed for converting statistics;

       -      Statistics is converted according to custom plans, several plans
	      can be used at the same time;

       -      Each  plan can have converting rules for months, days, week days
	      and time ranges;

       -      Statistics of one static rule  can  be  converted	 and  sent  to
	      another static rule.

       The name of the accounting system and the name of the database is conv.

DESIGN OVERVIEW
       ipa_conv consists of one accounting module and one database module, but
       these two modules are implemented in one object file.  This  file  must
       be  loaded  two	times  in the ipa.conf(5) configuration file, one time
       using the ac_mod parameter and second time using the db_mod  parameter.
       Actually	 only  a  single  copy	of  an object file is brought into the
       address space of ipa(8) and the module checks this at the time of  ini‐
       tialization.

       An  arbitrary  static  rule  can use this module as a database (in this
       case this rule is called ``source rule'') and/or as an accounting  sys‐
       tem  (in	 this  case  this  rule is called ``destination rule'').  Each
       source rule is the source of statistics for some one destination	 rule.
       Each  source  rule  has a converting plan for converting statistics for
       corresponding destination rule.	One destination rule can receive  con‐
       verted statistics from several source rules.

       When  the  database  part  of the module gets statistics for the source
       rule it converts this statistics according to the converting  plan  and
       sends  converted	 statistics  to the destination rule.  The destination
       rule receives converted statistics from the accounting part of the mod‐
       ule.   In  other words, the module works like a pipe between two rules,
       it converts statistics from one rule and sends converted statistics  to
       another rule.

       A  converting  plan  consists of time intervals with information how to
       convert original statistics.  This information  contains	 two  numbers,
       the  first number X is the amount of original statistics and the second
       number Y is the amount of corresponding converted  statistics:  full  X
       units  of  the  original statistics are converted to Y units (X > 0 and
       Y >= 0).	 By default the module scales X and Y values  to  the  minimum
       possible values, but this feature can be disabled.

       There  are  several formats of time intervals (given below).  The data‐
       base part of the module always chooses the most specific time interval.
       The most specific time interval is chosen when the database part of the
       module gets updated statistics for some source rule.  If the  value  of
       statistics  was	s1  at t1 time and the value of statistics is s2 at t2
       time for some source rule and there were not database  updates  between
       t1  and	t2  of this rule, then the time interval is chosen for t2 time
       and the difference (s2 - s1) is converted and sent to  the  destination
       rule  (this  difference	can  be	 negative).   Too  long time intervals
       between database updates can cause inaccurate converting of statistics.

       Usually a source rule should be written above the corresponding	desti‐
       nation  rule  in the configuration file and it is better to tell ipa(8)
       to not change internally their order (use the keep_rules_order  parame‐
       ter).  If a source rule is processed first and the corresponding desti‐
       nation rule is processed second at the same time, then the  destination
       rule  will receive converted statistics from a source rule immediately.
       Otherwise it will receive converted  statistics	during	next  database
       update time.

       This module works with increasing statistics and decreasing statistics.
       But since a database module receives only non-negative statistics, then
       this  module  cannot handle correctly situation when statistics of some
       rule became negative (in this case the module's database part  receives
       zero  statistics	 from  ipa(8)).	  If  this statistics becomes positive
       again, then the module will work as expected.

CONFIGURATION FILE FORMAT
       One part of  the	 configuration	for  the  module  is  integrated  into
       ipa.conf(5),  other  parts  of the configuration are kept in files with
       converting plans.  The configuration prefix of this module is ``conv''.

       The conv:scale parameter specifies whether the module should scale val‐
       ues in all loaded converting plans:

	   conv:scale = <boolean>;

       This  parameter	should not be placed in any section and should be used
       before conv:load parameters.  The default value of  this	 parameter  is
       ``yes'' and the module scales values in all plans.

       The  conv:load  parameter loads a file with converting plan and gives a
       local name to loaded plan:

	   conv:load = <plan-name> "/path/file";

       This parameter should not be placed in any section  and	it  should  be
       used  before conv:plan parameters.  The given file is loaded and parsed
       when the module parses this parameter.

       The conv:dest  parameter	 specifies  the	 destination  rule  name,  the
       conv:plan parameter specifies the converting plan for this rule:

	   conv:dest = <rule-name>;
	   conv:plan = <plan-name>;

       These  two  parameters  can  be placed in the rule section.  The module
       checks whether the given destination rule exists at the end of configu‐
       ration  file  parsing.  If a destination rule is inactive, then it does
       not received converted statistics.

       The conv:quiet parameter allows to make the module less	or  more  ver‐
       bose:

	   conv:quiet = <value>;

       This  parameter should not be placed in any section.  The default value
       of this parameter is 3.	If its value has 0x1 bit off, then the	module
       sends a warning message when ipa(8) deinitializes some destination rule
       and this rule still have some converted statistics.  If its  value  has
       0x2 bit off, then the module sends a warning message when ipa(8) deini‐
       tializes some source rule and this rule still have some	not  converted
       original statistics.

       The conv:debug parameter helps to debug the module:

	   conv:debug = <level>;

       This  parameter	should	not be placed in any section.  Only two values
       are allowed for the debug level: 0 and 1.  The default  value  of  this
       parameter is 0 and debugging is disabled.

CONVERTING PLAN FORMAT
       A  file	with converting plan consists of lines.	 Each line should have
       not more than 255 characters.  Each line can have a shell-like  comment
       that  starts  with  the	'#' character.	Empty lines or lines with only
       comments are ignored.

       A converting plan for one time interval should be written in  one  line
       containing  three fields.  The first field is a time interval, the sec‐
       ond field is the amount of original statistics and the third  field  is
       the  amount  of	corresponding  converted statistics.  These fields are
       separated by space or tab characters.

       A time interval can be given in different formats, but  time  intervals
       of  one	format	should not overlap.  Here is the list of time interval
       formats (time intervals types are checked exactly  in  the  same	 order
       when the most specific time interval is being searched):

       o      year.mon.day/h1:m1-h2:m2 specifies time interval for year, month
	      and day.

       o      year.mon.day specifies year, month and day.

       o      mon.day/h1:m1-h2:m2 specifies time interval for month and day.

       o      mon.day specifies month and day.

       o      mon specifies a month.

       o      X/h1:m1-h2:m2 specifies time interval for	 a  week  day.	 Valid
	      values  for  X  are:  `S'	 Sunday,  `M' Monday, `T' Tuesday, `W'
	      Wednesday, `H' Thursday, `F' Friday, `A' Saturday.

       o      X specifies a week day

       o      h1:m1-h2:m2 specifies time interval.

       o      `*' specifies the default settings and must exist in any plan.

       A month can be given as the first three characters of English  language
       month name.

       A day starts at 00:00 and ends at 24:00.

       Example:

       There  is one rule r1 that gets statistics from some accounting system.
       It is necessary to get only 50% of that statistics at night from	 00:00
       till 07:00 and statistics should not be changed at other time.

       Let's create a file with converting plan /etc/ipa/plan/night:

	   # Interval	   Original	   Converted
	   *		   1		   1		   # 100%
	   00:00-07:00	   2		   1		   #  50% (night)

       Let's  create ipa.conf, rule r2 will get converted statistics from rule
       r1:

	   /* ... */

	   ac_mod "ipa_conv.so";
	   db_mod "ipa_conv.so";

	   conv:load = night "/etc/ipa/plan/night";

	   rule r1 {
	       /* ... */
	       db_list = conv;
	       conv:dest = r2;
	       conv:plan = night;
	   }

	   rule r2 {
	       /* ... */
	       ac_list = conv;
	   }

       Rule r1 can use several	databases,  rule  r2  can  use	databases  and
       another	accounting  systems.  The accounting system used by rule r1 is
       not shown in this example.

AUTHOR
       Andrey Simonenko <simon@comsys.ntu-kpi.kiev.ua>

BUGS
       If you find any, please send email me.

				 July 22, 2009			   IPA_CONV(8)
[top]

List of man pages available for DragonFly

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net