rrdtool plugin: Make sure "cache_timeout + random_variation" dosn't get negative.
[collectd.git] / src / collectd-snmp.pod
index e351081..3c6e799 100644 (file)
@@ -11,12 +11,14 @@ collectd-snmp - Documentation of collectd's C<snmp plugin>
       Type "voltage"
       Table false
       Instance "input_line1"
+      Scale 0.1
       Values "SNMPv2-SMI::enterprises.6050.5.4.1.1.2.1"
     </Data>
     <Data "hr_users">
       Type "users"
       Table false
       Instance ""
+      Shift -1
       Values "HOST-RESOURCES-MIB::hrSystemNumUsers.0"
     </Data>
     <Data "std_traffic">
@@ -31,7 +33,7 @@ collectd-snmp - Documentation of collectd's C<snmp plugin>
       Version 1
       Community "community_string"
       Collect "std_traffic"
-      Inverval 120
+      Interval 120
     </Host>
     <Host "some.server.mydomain.org">
       Address "192.168.0.42"
@@ -65,9 +67,8 @@ and ten threads are used.
 Since the aim of the C<snmp plugin> is to provide a generic interface to SNMP,
 it's configuration is not trivial and may take some time.
 
-Since the C<Net-SNMP> library is used you cann use all the environment
-variables that are interpreted by that package. See L<snmpcmd(1)> for more
-details.
+Since the C<Net-SNMP> library is used you can use all the environment variables
+that are interpreted by that package. See L<snmpcmd(1)> for more details.
 
 There are two types of blocks that can be contained in the
 C<E<lt>PluginE<nbsp>snmpE<gt>> block: B<Data> and B<Host>:
@@ -84,7 +85,7 @@ queried. The following options can be set:
 collectd's type that is to be used, e.E<nbsp>g. "if_octets" for interface
 traffic or "users" for a user count. The types are read from the B<TypesDB>
 (see L<collectd.conf(5)>), so you may want to check for which types are
-defined.
+defined. See L<types.db(5)> for a description of the format of this file.
 
 =item B<Table> I<true|false>
 
@@ -129,14 +130,31 @@ Sets the type-instance of the values that are dispatched. The meaning of this
 setting depends on whether B<Table> is set to I<true> or I<false>:
 
 If B<Table> is set to I<true>, I<Instance> is interpreted as an SNMP-prefix
-that will return a list of strings. Those strings are then used as the actual
+that will return a list of values. Those values are then used as the actual
 type-instance. An example would be the C<IF-MIB::ifDescr> subtree.
 L<variables(5)> from the SNMP distribution describes the format of OIDs.
 
+If B<Table> is set to I<true> and B<Instance> is omitted, then "SUBID" will be
+used as the instance.
+
 If B<Table> is set to I<false> the actual string configured for I<Instance> is
 copied into the value-list. In this case I<Instance> may be empty, i.E<nbsp>e.
 "".
 
+=item B<InstancePrefix> I<String>
+
+If B<Table> is set to I<true>, you may feel the need to add something to the
+instance of the files. If set, I<String> is prepended to the instance as
+determined by querying the agent. When B<Table> is set to I<false> this option
+has no effect.
+
+The C<UPS-MIB> is an example where you need this setting: It has voltages of
+the inlets, outlets and the battery of an UPS. However, it doesn't provide a
+descriptive column for these voltages. In this case having 1, 2,E<nbsp>... as
+instances is not enough, because the inlet voltages and outlet voltages may
+both have the subids 1, 2,E<nbsp>... You can use this setting to distinguish
+between the different voltages.
+
 =item B<Values> I<OID> [I<OID> ...]
 
 Configures the values to be queried from the SNMP host. The meaning slightly
@@ -152,6 +170,25 @@ If B<Table> is set to I<false>, each I<OID> must be the OID of exactly one
 value, e.E<nbsp>g. C<IF-MIB::ifInOctets.3> for the third counter of incoming
 traffic.
 
+=item B<Scale> I<Value>
+
+The gauge-values returned by the SNMP-agent are multiplied by I<Value>.  This
+is useful when values are transfered as a fixed point real number. For example,
+thermometers may transfer B<243> but actually mean B<24.3>, so you can specify
+a scale value of B<0.1> to correct this. The default value is, of course,
+B<1.0>.
+
+This value is not applied to counter-values.
+
+=item B<Shift> I<Value>
+
+I<Value> is added to gauge-values returned by the SNMP-agent after they have
+been multiplied by any B<Scale> value. If, for example, a thermometer returns
+degrees Kelvin you could specify a shift of B<273.15> here to store values in
+degrees Celsius. The default value is, of course, B<0.0>.
+
+This value is not applied to counter-values.
+
 =back
 
 =head2 The Host block
@@ -170,7 +207,7 @@ Set the address to connect to.
 
 =item B<Version> B<1>|B<2>
 
-Set the SNMP version to use. When giving B<2> version 2c is actually used.
+Set the SNMP version to use. When giving B<2> version C<2c> is actually used.
 Version 3 is not supported by this plugin.
 
 =item B<Community> I<Community>
@@ -185,16 +222,11 @@ before using it here.
 
 =item B<Interval> I<Seconds>
 
-Collect data from this host every I<Seconds> seconds. This value needs to be a
-multiple of the global B<Interval> setting and, if it is not, will be rounded
-B<down> to one and a warning is logged in this case. So if your global
-B<Interval> is set to I<10> and you configure I<25> here, it's rounded down to
-I<20>. By default the global B<Interval> setting will be used.
-
-This option is meant for devices with not much CPU power, e.E<nbsp>g. network
-equipment such as switches, embedded devices, rack monitoring systems and so
-on. Since the B<Step> of generated RRD files depends on this setting it's
-wise to select a reasonable value once and never change it.
+Collect data from this host every I<Seconds> seconds. This option is meant for
+devices with not much CPU power, e.E<nbsp>g. network equipment such as
+switches, embedded devices, rack monitoring systems and so on. Since the
+B<Step> of generated RRD files depends on this setting it's wise to select a
+reasonable value once and never change it.
 
 =back