Merge branch 'collectd-4.10'
authorFlorian Forster <octo@leeloo.lan.home.verplant.org>
Sun, 13 Jun 2010 19:44:21 +0000 (21:44 +0200)
committerFlorian Forster <octo@leeloo.lan.home.verplant.org>
Sun, 13 Jun 2010 19:44:21 +0000 (21:44 +0200)
1  2 
configure.in
src/collectd.conf.in
src/collectd.conf.pod

diff --combined configure.in
@@@ -104,13 -104,9 +104,13 @@@ AC_ARG_ENABLE(standards
  if test "x$enable_standards" = "xyes"
  then
        AC_DEFINE(_ISOC99_SOURCE,        1, [Define to enforce ISO C99 compliance.])
 -      AC_DEFINE(_POSIX_C_SOURCE, 200112L, [Define to enforce POSIX.1-2001 compliance.])
 -      AC_DEFINE(_XOPEN_SOURCE,       600, [Define to enforce X/Open 6 (XSI) compliance.])
 +      AC_DEFINE(_POSIX_C_SOURCE, 200809L, [Define to enforce POSIX.1-2008 compliance.])
 +      AC_DEFINE(_XOPEN_SOURCE,       700, [Define to enforce X/Open 7 (XSI) compliance.])
        AC_DEFINE(_REENTRANT,            1, [Define to enable reentrancy interfaces.])
 +      if test "x$GCC" = "xyes"
 +      then
 +              CFLAGS="$CFLAGS -std=c99"
 +      fi
  fi
  AM_CONDITIONAL(BUILD_FEATURE_STANDARDS, test "x$enable_standards" = "xyes")
  
@@@ -592,55 -588,6 +592,55 @@@ AC_CHECK_FUNCS(syslog, [have_syslog="ye
  AC_CHECK_FUNCS(getutent, [have_getutent="yes"], [have_getutent="no"])
  AC_CHECK_FUNCS(getutxent, [have_getutxent="yes"], [have_getutxent="no"])
  AC_CHECK_FUNCS(swapctl, [have_swapctl="yes"], [have_swapctl="no"])
 +if test "x$have_swapctl" = "xyes"; then
 +        AC_CACHE_CHECK([whether swapctl takes two arguments],
 +                [c_cv_have_swapctl_two_args],
 +                AC_COMPILE_IFELSE(
 +                        AC_LANG_PROGRAM([[AC_INCLUDES_DEFAULT
 +#if HAVE_SYS_SWAP_H && !defined(_LP64) && _FILE_OFFSET_BITS == 64
 +#  undef _FILE_OFFSET_BITS
 +#  undef _LARGEFILE64_SOURCE
 +#endif
 +#include <sys/stat.h>
 +#include <sys/swap.h>]],
 +                                [[
 +                                int num = swapctl(0, NULL);
 +                                ]]
 +                        ),
 +                        [c_cv_have_swapctl_two_args="yes"],
 +                        [c_cv_have_swapctl_two_args="no"]
 +                )
 +        )
 +        AC_CACHE_CHECK([whether swapctl takes three arguments],
 +                [c_cv_have_swapctl_three_args],
 +                AC_COMPILE_IFELSE(
 +                        AC_LANG_PROGRAM([[AC_INCLUDES_DEFAULT
 +#if HAVE_SYS_SWAP_H && !defined(_LP64) && _FILE_OFFSET_BITS == 64
 +#  undef _FILE_OFFSET_BITS
 +#  undef _LARGEFILE64_SOURCE
 +#endif
 +#include <sys/stat.h>
 +#include <sys/swap.h>]],
 +                                [[
 +                                int num = swapctl(0, NULL,0);
 +                                ]]
 +                        ),
 +                        [c_cv_have_swapctl_three_args="yes"],
 +                        [c_cv_have_swapctl_three_args="no"]
 +                )
 +        )
 +fi
 +# Check for different versions of `swapctl' here..
 +if test "x$have_swapctl" = "xyes"; then
 +        if test "x$c_cv_have_swapctl_two_args" = "xyes"; then
 +                AC_DEFINE(HAVE_SWAPCTL_TWO_ARGS, 1,
 +                          [Define if the function swapctl exists and takes two arguments.])
 +        fi
 +        if test "x$c_cv_have_swapctl_three_args" = "xyes"; then
 +                AC_DEFINE(HAVE_SWAPCTL_THREE_ARGS, 1,
 +                          [Define if the function swapctl exists and takes three arguments.])
 +        fi
 +fi
  
  # For load module
  AC_CHECK_FUNCS(getloadavg, [have_getloadavg="yes"], [have_getloadavg="no"])
  AC_MSG_CHECKING([if have htonll defined])
  
      have_htonll="no"
-     AC_RUN_IFELSE([
+     AC_LINK_IFELSE([
         AC_LANG_PROGRAM([
  #include <sys/types.h>
  #include <netinet/in.h>
  AM_CONDITIONAL(BUILD_WITH_LIBYAJL, test "x$with_libyajl" = "xyes")
  # }}}
  
 +# --with-libvarnish {{{
 +with_libvarnish_cppflags=""
 +with_libvarnish_cflags=""
 +with_libvarnish_libs=""
 +AC_ARG_WITH(libvarnish, [AS_HELP_STRING([--with-libvarnish@<:@=PREFIX@:>@], [Path to libvarnish.])],
 +[
 +      if test "x$withval" = "xno"
 +      then
 +              with_libvarnish="no"
 +      else if test "x$withval" = "xyes"
 +      then
 +              with_libvarnish="use_pkgconfig"
 +      else if test -d "$with_libvarnish/lib"
 +      then
 +              AC_MSG_NOTICE([Not checking for libvarnish: Manually configured])
 +              with_libvarnish_cflags="-I$withval/include"
 +              with_libvarnish_libs="-L$withval/lib -lvarnish -lvarnishcompat -lvarnishapi"
 +              with_libvarnish="yes"
 +      fi; fi; fi
 +],
 +[with_libvarnish="use_pkgconfig"])
 +
 +# configure using pkg-config
 +if test "x$with_libvarnish" = "xuse_pkgconfig"
 +then
 +      if test "x$PKG_CONFIG" = "x"
 +      then
 +              with_libvarnish="no (Don't have pkg-config)"
 +      fi
 +fi
 +if test "x$with_libvarnish" = "xuse_pkgconfig"
 +then
 +      AC_MSG_NOTICE([Checking for varnishapi using $PKG_CONFIG])
 +      $PKG_CONFIG --exists 'varnishapi' 2>/dev/null
 +      if test $? -ne 0
 +      then
 +              with_libvarnish="no (pkg-config doesn't know library)"
 +      fi
 +fi
 +if test "x$with_libvarnish" = "xuse_pkgconfig"
 +then
 +      with_libvarnish_cflags="`$PKG_CONFIG --cflags 'varnishapi'`"
 +      if test $? -ne 0
 +      then
 +              with_libvarnish="no ($PKG_CONFIG failed)"
 +      fi
 +      with_libvarnish_libs="`$PKG_CONFIG --libs 'varnishapi'`"
 +      if test $? -ne 0
 +      then
 +              with_libvarnish="no ($PKG_CONFIG failed)"
 +      fi
 +fi
 +if test "x$with_libvarnish" = "xuse_pkgconfig"
 +then
 +      with_libvarnish="yes"
 +fi
 +
 +# with_libvarnish_cflags and with_libvarnish_libs are set up now, let's do
 +# the actual checks.
 +if test "x$with_libvarnish" = "xyes"
 +then
 +      SAVE_CPPFLAGS="$CPPFLAGS"
 +      CPPFLAGS="$CPPFLAGS $with_libvarnish_cflags"
 +      AC_CHECK_HEADERS(varnish/varnishapi.h, [], [with_libvarnish="no (varnish/varnishapi.h not found)"])
 +
 +      CPPFLAGS="$SAVE_CPPFLAGS"
 +fi
 +if test "x$with_libvarnish" = "xyes"
 +then
 +      SAVE_CPPFLAGS="$CPPFLAGS"
 +      #SAVE_LDFLAGS="$LDFLAGS"
 +
 +      CPPFLAGS="$CPPFLAGS $with_libvarnish_cflags"
 +      #LDFLAGS="$LDFLAGS $with_libvarnish_libs"
 +
 +      AC_CHECK_LIB(varnishapi, VSL_OpenStats,
 +                   [with_libvarnish="yes"],
 +                   [with_libvarnish="no (symbol VSL_OpenStats not found)"],
 +                   [$with_libvarnish_libs])
 +
 +      CPPFLAGS="$SAVE_CPPFLAGS"
 +      #LDFLAGS="$SAVE_LDFLAGS"
 +fi
 +if test "x$with_libvarnish" = "xyes"
 +then
 +      BUILD_WITH_LIBVARNISH_CFLAGS="$with_libvarnish_cflags"
 +      BUILD_WITH_LIBVARNISH_LIBS="$with_libvarnish_libs"
 +      AC_SUBST(BUILD_WITH_LIBVARNISH_CFLAGS)
 +      AC_SUBST(BUILD_WITH_LIBVARNISH_LIBS)
 +fi
 +# }}}
 +
  # pkg-config --exists 'libxml-2.0'; pkg-config --exists libvirt {{{
  with_libxml2="no (pkg-config isn't available)"
  with_libxml2_cflags=""
@@@ -4487,7 -4342,6 +4487,7 @@@ AC_PLUGIN([target_notification], [yes]
  AC_PLUGIN([target_replace], [yes],             [The replace target])
  AC_PLUGIN([target_scale],[yes],                [The scale target])
  AC_PLUGIN([target_set],  [yes],                [The set target])
 +AC_PLUGIN([target_v5upgrade], [yes],           [The v5upgrade target])
  AC_PLUGIN([tcpconns],    [$plugin_tcpconns],   [TCP connection statistics])
  AC_PLUGIN([teamspeak2],  [yes],                [TeamSpeak2 server statistics])
  AC_PLUGIN([ted],         [$plugin_ted],        [Read The Energy Detective values])
@@@ -4497,7 -4351,6 +4497,7 @@@ AC_PLUGIN([unixsock],    [yes]
  AC_PLUGIN([uptime],      [$plugin_uptime],     [Uptime statistics])
  AC_PLUGIN([users],       [$plugin_users],      [User statistics])
  AC_PLUGIN([uuid],        [yes],                [UUID as hostname plugin])
 +AC_PLUGIN([varnish],     [$with_libvarnish],   [Varnish cache statistics])
  AC_PLUGIN([vmem],        [$plugin_vmem],       [Virtual memory statistics])
  AC_PLUGIN([vserver],     [$plugin_vserver],    [Linux VServer statistics])
  AC_PLUGIN([wireless],    [$plugin_wireless],   [Wireless statistics])
@@@ -4705,7 -4558,6 +4705,7 @@@ Configuration
      libstatgrab . . . . . $with_libstatgrab
      libtokyotyrant  . . . $with_libtokyotyrant
      libupsclient  . . . . $with_libupsclient
 +    libvarnish  . . . . . $with_libvarnish
      libvirt . . . . . . . $with_libvirt
      libxml2 . . . . . . . $with_libxml2
      libxmms . . . . . . . $with_libxmms
      target_replace  . . . $enable_target_replace
      target_scale  . . . . $enable_target_scale
      target_set  . . . . . $enable_target_set
 +    target_v5upgrade  . . $enable_target_v5upgrade
      tcpconns  . . . . . . $enable_tcpconns
      teamspeak2  . . . . . $enable_teamspeak2
      ted . . . . . . . . . $enable_ted
      uptime  . . . . . . . $enable_uptime
      users . . . . . . . . $enable_users
      uuid  . . . . . . . . $enable_uuid
 +    varnish . . . . . . . $enable_varnish
      vmem  . . . . . . . . $enable_vmem
      vserver . . . . . . . $enable_vserver
      wireless  . . . . . . $enable_wireless
diff --combined src/collectd.conf.in
  ##############################################################################
  
  #Hostname    "localhost"
 -FQDNLookup   true
 +#FQDNLookup   true
  #BaseDir     "@prefix@/var/lib/@PACKAGE_NAME@"
  #PIDFile     "@prefix@/var/run/@PACKAGE_NAME@.pid"
  #PluginDir   "@prefix@/lib/@PACKAGE_NAME@"
  #TypesDB     "@prefix@/share/@PACKAGE_NAME@/types.db"
  #Interval     10
+ #Timeout      2
  #ReadThreads  5
  
  ##############################################################################
@@@ -34,6 -35,7 +35,7 @@@
  #     LogLevel @DEFAULT_LOG_LEVEL@
  #     File STDOUT
  #     Timestamp true
+ #     PrintSeverity false
  #</Plugin>
  
  #<Plugin syslog>
@@@ -88,6 -90,7 +90,7 @@@
  #@BUILD_PLUGIN_MEMCACHEC_TRUE@LoadPlugin memcachec
  #@BUILD_PLUGIN_MEMCACHED_TRUE@LoadPlugin memcached
  @BUILD_PLUGIN_MEMORY_TRUE@@BUILD_PLUGIN_MEMORY_TRUE@LoadPlugin memory
+ #@BUILD_PLUGIN_MODBUS_TRUE@LoadPlugin modbus
  #@BUILD_PLUGIN_MULTIMETER_TRUE@LoadPlugin multimeter
  #@BUILD_PLUGIN_MYSQL_TRUE@LoadPlugin mysql
  #@BUILD_PLUGIN_NETAPP_TRUE@LoadPlugin netapp
  #@BUILD_PLUGIN_UPTIME_TRUE@LoadPlugin uptime
  #@BUILD_PLUGIN_USERS_TRUE@LoadPlugin users
  #@BUILD_PLUGIN_UUID_TRUE@LoadPlugin uuid
 +#@BUILD_PLUGIN_VARNISH_TRUE@LoadPlugin varnish
  #@BUILD_PLUGIN_VMEM_TRUE@LoadPlugin vmem
  #@BUILD_PLUGIN_VSERVER_TRUE@LoadPlugin vserver
  #@BUILD_PLUGIN_WIRELESS_TRUE@LoadPlugin wireless
  #             MTime "-5m"
  #             Size "+10k"
  #             Recursive true
+ #             IncludeHidden false
  #     </Directory>
  #</Plugin>
  
  #     InterfaceDevice "name:device"
  #     IgnoreSelected false
  #     HostnameFormat name
 +#     InterfaceFormat name
  #</Plugin>
  
  #<Plugin madwifi>
  #             Key "page_key"
  #             <Match>
  #                     Regex "(\\d+) bytes sent"
+ #                     ExcludeRegex "<lines to be excluded>"
  #                     DSType CounterAdd
  #                     Type "ipt_octets"
  #                     Instance "type_instance"
  #     Port "11211"
  #</Plugin>
  
+ #<Plugin modbus>
+ #     <Data "data_name">
+ #             RegisterBase 1234
+ #             RegisterType float
+ #             Type gauge
+ #             Instance "..."
+ #     </Data>
+ #
+ #     <Host "name">
+ #             Address "addr"
+ #             Port "1234"
+ #             Interval 60
+ #
+ #             <Slave 1>
+ #                     Instance "foobar" # optional
+ #                     Collect "data_name"
+ #             </Slave>
+ #     </Host>
+ #</Plugin>
  #<Plugin mysql>
  #     <Database db_name>
  #             Host "database.serv.er"
  #</Plugin>
  
  @LOAD_PLUGIN_NETWORK@<Plugin network>
+ #     # client setup:
  @LOAD_PLUGIN_NETWORK@ Server "ff18::efc0:4a42" "25826"
- @LOAD_PLUGIN_NETWORK@ Server "239.192.74.66" "25826"
- #     Listen "ff18::efc0:4a42" "25826"
- #     Listen "239.192.74.66" "25826"
+ @LOAD_PLUGIN_NETWORK@ <Server "239.192.74.66" "25826">
+ #             SecurityLevel Encrypt
+ #             Username "user"
+ #             Password "secret"
+ #             Interface "eth0"
+ @LOAD_PLUGIN_NETWORK@ </Server>
  #     TimeToLive "128"
- #     Forward false
- #     CacheFlush 1800
+ #
+ #     # server setup:
+ #     Listen "ff18::efc0:4a42" "25826"
+ #     <Listen "239.192.74.66" "25826">
+ #             SecurityLevel Sign
+ #             AuthFile "/etc/collectd/passwd"
+ #             Interface "eth0"
+ #     </Listen>
+ #     MaxPacketSize 1024
+ #
+ #     # proxy setup (client and server as above):
+ #     Forward true
+ #
+ #     # statistics about the network plugin itself
  #     ReportStats false
+ #
+ #     # "garbage collection"
+ #     CacheFlush 1800
  @LOAD_PLUGIN_NETWORK@</Plugin>
  
  #<Plugin nginx>
  
  #<Plugin openvpn>
  #     StatusFile "/etc/openvpn/openvpn-status.log"
+ #     ImprovedNamingSchema false
+ #     CollectCompression true
+ #     CollectIndividualUsers true
+ #     CollectUserCount false
  #</Plugin>
  
  #<Plugin oracle>
  #             Query magic
  #     </Database>
  #     <Database bar>
+ #             Interval 60
  #             Service "service_name"
  #             Query backend # predefined
  #             Query rt36_tickets
  #     UUIDFile "/etc/uuid"
  #</Plugin>
  
 +#<Plugin varnish>
 +#   This tag support an argument if you want to
 +#   monitor the local instance just use </Instance>
 +#   If you prefer defining another instance you can do
 +#   so by using <Instance "myinstance">
 +#   <Instance>
 +#      CollectCache true
 +#      CollectBackend true
 +#      CollectConnections true
 +#      CollectSHM true
 +#      CollectESI false
 +#      CollectFetch false
 +#      CollectHCB false
 +#      CollectSMA false
 +#      CollectSMS false
 +#      CollectSM false
 +#      CollectTotals false
 +#      CollectWorkers false
 +#   </Instance>
 +#</Plugin>
 +
  #<Plugin vmem>
  #     Verbose false
  #</Plugin>
  #     <URL "http://example.com/collectd-post">
  #             User "collectd"
  #             Password "weCh3ik0"
+ #             VerifyPeer true
+ #             VerifyHost true
+ #             CACert "/etc/ssl/ca.crt"
+ #             Format "Command"
+ #             StoreRates false
  #     </URL>
  #</Plugin>
  
diff --combined src/collectd.conf.pod
@@@ -128,8 -128,13 +128,8 @@@ hostname will be determined using the L
  
  If B<Hostname> is determined automatically this setting controls whether or not
  the daemon should try to figure out the "fully qualified domain name", FQDN.
 -This is done using a lookup of the name returned by C<gethostname>.
 -
 -Using this feature (i.E<nbsp>e. setting this option to B<true>) is recommended.
 -However, to preserve backwards compatibility the default is set to B<false>.
 -The sample config file that is installed with C<makeE<nbsp>install> includes a
 -line which sets this option, though, so that default installations will have
 -this setting enabled.
 +This is done using a lookup of the name returned by C<gethostname>. This option
 +is enabled by default.
  
  =item B<PreCacheChain> I<ChainName>
  
@@@ -1563,16 -1568,6 +1563,16 @@@ You can also specify combinations of th
  means to concatenate the guest name and UUID (with a literal colon character
  between, thus I<"foo:1234-1234-1234-1234">).
  
 +=item B<InterfaceFormat> B<name>|B<address>
 +
 +When the libvirt plugin logs interface data, it sets the name of the collected
 +data according to this setting. The default is to use the path as provided by
 +the hypervisor (the "dev" property of the target node), which is equal to
 +setting B<name>.
 +
 +B<address> means use the interface's mac address. This is useful since the
 +interface path might change between reboots of a guest or across migrations.
 +
  =back
  
  =head2 Plugin C<logfile>
@@@ -2532,7 -2527,7 +2532,7 @@@ I<libgcrypt>
  Set the outgoing interface for IP packets. This applies at least
  to IPv6 packets and if possible to IPv4. If this option is not applicable,
  undefined or a non-existent interface name is specified, the default
- behaviour is to let the kernel choose the appropriate interface. Be warned
+ behavior is to let the kernel choose the appropriate interface. Be warned
  that the manual selection of an interface for unicast traffic is only
  necessary in rare cases.
  
@@@ -2589,7 -2584,7 +2589,7 @@@ the file is being read, it is locked us
  Set the incoming interface for IP packets explicitly. This applies at least
  to IPv6 packets and if possible to IPv4. If this option is not applicable,
  undefined or a non-existent interface name is specified, the default
- behaviour is, to let the kernel choose the appropriate interface. Thus incoming
+ behavior is, to let the kernel choose the appropriate interface. Thus incoming
  traffic gets only accepted, if it arrives on the given interface.
  
  =back
@@@ -2956,7 -2951,7 +2956,7 @@@ because aggregating this data in a sav
  =item B<CollectUserCount> B<true>|B<false>
  
  When enabled, the number of currently connected clients or users is collected.
- This is expecially interesting when B<CollectIndividualUsers> is disabled, but
+ This is especially interesting when B<CollectIndividualUsers> is disabled, but
  can be configured independently from that option. Defaults to B<false>.
  
  =back
@@@ -3028,6 -3023,83 +3028,83 @@@ refer to them from
  This plugin embeds a Perl-interpreter into collectd and provides an interface
  to collectd's plugin system. See L<collectd-perl(5)> for its documentation.
  
+ =head2 Plugin C<pinba>
+ The I<Pinba plugin> receives profiling information from I<Pinba>, an extension
+ for the I<PHP> interpreter. At the end of executing a script, i.e. after a
+ PHP-based webpage has been delivered, the extension will send a UDP packet
+ containing timing information, peak memory usage and so on. The plugin will
+ wait for such packets, parse them and account the provided information, which
+ is then dispatched to the daemon once per interval.
+ Synopsis:
+  <Plugin pinba>
+    Address "::0"
+    Port "30002"
+    # Overall statistics for the website.
+    <View "www-total">
+      Server "www.example.com"
+    </View>
+    # Statistics for www-a only
+    <View "www-a">
+      Host "www-a.example.com"
+      Server "www.example.com"
+    </View>
+    # Statistics for www-b only
+    <View "www-b">
+      Host "www-b.example.com"
+      Server "www.example.com"
+    </View>
+  </Plugin>
+ The plugin provides the following configuration options:
+ =over 4
+ =item B<Address> I<Node>
+ Configures the address used to open a listening socket. By default, plugin will
+ bind to the I<any> address C<::0>.
+ =item B<Port> I<Service>
+ Configures the port (service) to bind to. By default the default Pinba port
+ "30002" will be used. The option accepts service names in addition to port
+ numbers and thus requires a I<string> argument.
+ =item E<lt>B<View> I<Name>E<gt> block
+ The packets sent by the Pinba extension include the hostname of the server, the
+ server name (the name of the virtual host) and the script that was executed.
+ Using B<View> blocks it is possible to separate the data into multiple groups
+ to get more meaningful statistics. Each packet is added to all matching groups,
+ so that a packet may be accounted for more than once.
+ =over 4
+ =item B<Host> I<Host>
+ Matches the hostname of the system the webserver / script is running on. This
+ will contain the result of the L<gethostname(2)> system call. If not
+ configured, all hostnames will be accepted.
+ =item B<Server> I<Server>
+ Matches the name of the I<virtual host>, i.e. the contents of the
+ C<$_SERVER["SERVER_NAME"]> variable when within PHP. If not configured, all
+ server names will be accepted.
+ =item B<Script> I<Script>
+ Matches the name of the I<script name>, i.e. the contents of the
+ C<$_SERVER["SCRIPT_NAME"]> variable when within PHP. If not configured, all
+ script names will be accepted.
+ =back
+ =back
  =head2 Plugin C<ping>
  
  The I<Ping> plugin starts a new thread which sends ICMP "ping" packets to the
@@@ -3081,7 -3153,7 +3158,7 @@@ operating systems
  
  =item B<MaxMissed> I<Packets>
  
- Trigger a DNS resolv after the host has not replied to I<Packets> packets. This
+ Trigger a DNS resolve after the host has not replied to I<Packets> packets. This
  enables the use of dynamic DNS services (like dyndns.org) with the ping plugin.
  
  Default: B<-1> (disabled)
@@@ -4504,13 -4576,6 +4581,13 @@@ information
           WarningMin 100000000
         </Type>
       </Plugin>
 +
 +     <Type "load">
 +      DataSource "midterm"
 +      FailureMax 4
 +      Hits 3
 +      Hysteresis 3
 +     </Type>
     </Host>
   </Threshold>
  
@@@ -4583,27 -4648,6 +4660,27 @@@ percentage value, relative to the othe
  example for the "df" type, where you may want to issue a warning when less than
  5E<nbsp>% of the total space is available. Defaults to B<false>.
  
 +=item B<Hits> I<Value>
 +
 +Sets the number of occurrences which the threshold must be arised before to
 +dispatch any notification or, in other words, the number of B<Interval>s
 +than the threshold must be match before dispatch any notification.
 +
 +=item B<Hysteresis> I<Value>
 +
 +Sets the hysteresis value for threshold. The hysteresis is a method to
 +prevent flapping between states, until a new received value for
 +a previously matched threshold down below the threshold condition
 +(B<WarningMax>, B<FailureMin> or everthing else) minus the hysteresis value,
 +the failure (respectively warning) state will be keep.
 +
 +=item B<Interesting> B<true>|B<false>
 +
 +If set to B<true> (the default), the threshold must be treated as
 +interesting and, when a number of B<Timeout> values will lost, then
 +a missing notification will be dispatched. On the other hand, if set to
 +B<false>, the missing notification will never dispatched for this threshold.
 +
  =back
  
  =head1 FILTER CONFIGURATION