X-Git-Url: https://git.octo.it/?p=collectd.git;a=blobdiff_plain;f=src%2Fcollectd.conf.pod;h=8dff63c195f6d700528618a9f5806c20215ce62f;hp=51be401b8ce915d16d153e9a4e6fda07896f7329;hb=bf1c2612bc0405c895f754ebfbb24484122c7cfa;hpb=2700666217249cd4794dfc17b4ac3b28f3dca56b diff --git a/src/collectd.conf.pod b/src/collectd.conf.pod index 51be401b..8dff63c1 100644 --- a/src/collectd.conf.pod +++ b/src/collectd.conf.pod @@ -530,9 +530,9 @@ are disabled by default. =head2 Plugin C The I can be used to communicate with other instances of -I or third party applications using an AMQP message broker. Values -are sent to or received from the broker, which handles routing, queueing and -possibly filtering out messages. +I or third party applications using an AMQP 0.9.1 message broker. +Values are sent to or received from the broker, which handles routing, +queueing and possibly filtering out messages. B @@ -738,6 +738,171 @@ is preserved, i.e. passed through. =back +=head2 Plugin C + +The I can be used to communicate with other instances of +I or third party applications using an AMQP 1.0 message +intermediary. Metric values or notifications are sent to the +messaging intermediary which may handle direct messaging or +queue based transfer. + +B + + + # Send values to an AMQP 1.0 intermediary + + Host "localhost" + Port "5672" + User "guest" + Password "guest" + Address "collectd" +# RetryDelay 1 + + Format "command" + PreSettle false + Notify false + # StoreRates false + # GraphitePrefix "collectd." + # GraphiteEscapeChar "_" + # GraphiteSeparateInstances false + # GraphiteAlwaysAppendDS false + # GraphitePreserveSeparator false + + + + +The plugin's configuration consists of a I that configures +communications to the AMQP 1.0 messaging bus and one or more I +corresponding to metric or event publishers to the messaging system. + +The address in the I block concatenated with the name given in the +I block starting tag will be used as the send-to address for +communications over the messaging link. + +The following options are accepted within each I block: + +=over 4 + +=item B I + +Hostname or IP-address of the AMQP 1.0 intermediary. Defaults to the +default behavior of the underlying communications library, +I, which is "localhost". + +=item B I + +Service name or port number on which the AMQP 1.0 intermediary accepts +connections. This argument must be a string, even if the numeric form +is used. Defaults to "5672". + +=item B I + +=item B I + +Credentials used to authenticate to the AMQP 1.0 intermediary. By +default "guest"/"guest" is used. + +=item B
I
+ +This option specifies the prefix for the send-to value in the message. +By default, "collectd" will be used. + +=item B I + +When the AMQP1 connection is lost, defines the time in seconds to wait +before attempting to reconnect. Defaults to 1, which implies attempt +to reconnect at 1 second intervals. + +=back + +The following options are accepted within each I block: + +=over 4 + +=item B B|B|B + +Selects the format in which messages are sent to the intermediary. If set to +B (the default), values are sent as C commands which are +identical to the syntax used by the I and I. In this +case, the C header field will be set to C. + +If set to B, the values are encoded in the I, +an easy and straight forward exchange format. The C header field +will be set to C. + +If set to B, values are encoded in the I format, which is +" \n". The C header field will be set to +C. + +A subscribing client I use the C header field to +determine how to decode the values. + +=item B B|B + +If set to B (the default), the plugin will wait for a message +acknowledgement from the messaging bus before sending the next +message. This indicates transfer of ownership to the messaging +system. If set to B, the plugin will not wait for a message +acknowledgement and the message may be dropped prior to transfer of +ownership. + +=item B B|B + +If set to B (the default), the plugin will service the +instance write call back as a value list. If set to B the +plugin will service the instance as a write notification callback +for alert formatting. + +=item B B|B + +Determines whether or not C, C and C data sources +are converted to a I (i.e. a C value). If set to B (the +default), no conversion is performed. Otherwise the conversion is performed +using the internal value cache. + +Please note that currently this option is only used if the B option has +been set to B. + +=item B + +A prefix can be added in the metric name when outputting in the I format. +It's added before the I name. +Metric name will be "" + +=item B + +A postfix can be added in the metric name when outputting in the I format. +It's added after the I name. +Metric name will be "" + +=item B + +Specify a character to replace dots (.) in the host part of the metric name. +In I metric name, dots are used as separators between different +metric parts (host, plugin, type). +Default is "_" (I). + +=item B B|B + +If set to B, the plugin instance and type instance will be in their own +path component, for example C. If set to B (the +default), the plugin and plugin instance (and likewise the type and type +instance) are put into one component, for example C. + +=item B B|B + +If set to B, append the name of the I (DS) to the "metric" +identifier. If set to B (the default), this is only done when there is +more than one DS. + +=item B B|B + +If set to B (the default) the C<.> (dot) character is replaced with +I. Otherwise, if set to B, the C<.> (dot) character +is preserved, i.e. passed through. + +=back + =head2 Plugin C To configure the C-plugin you first need to configure the Apache @@ -1383,6 +1548,35 @@ at all, B cgroups are selected. =back +=head2 Plugin C + +The I designed to check and notify about host or service +status based on I metric. + +When new metric of I type appears in cache, OK notification is sent. +When new value for metric is less than previous value, WARNING notification is +sent about host/service restart. +When no new updates comes for metric and cache entry expires, then FAILURE +notification is sent about unreachable host or service. + +By default (when no explicit configuration), plugin checks for I metric. + +B + + + Type "uptime" + Type "my_uptime_type" + + +=over 4 + +=item B I + +Metric type to check for status/values. The type should consist single GAUGE +data source. + +=back + =head2 Plugin C The C plugin collects ntp data from a B server, such as clock @@ -1491,12 +1685,25 @@ Defaults to B. =head2 Plugin C -This plugin doesn't have any options. It reads +This plugin is available on Linux and FreeBSD only. It doesn't have any +options. On Linux it reads F (for the first CPU installed) to get the current CPU frequency. If this file does not exist make sure B (L) or a similar tool is installed and an "cpu governor" (that's a kernel module) is loaded. +On Linux, if the system has the I kernel module loaded, this +plugin reports the rate of p-state (cpu frequency) transitions and the +percentage of time spent in each p-state. + +On FreeBSD it does a sysctl dev.cpu.0.freq and submits this as instance 0. +At this time FreeBSD only has one frequency setting for all cores. +See the BUGS section in the FreeBSD man page for cpufreq(4) for more details. + +On FreeBSD the plugin checks the success of sysctl dev.cpu.0.freq and +unregisters the plugin when this fails. A message will be logged to indicate +this. + =head2 Plugin C This plugin doesn't have any options. It reads CLOCK_BOOTTIME and @@ -1626,6 +1833,7 @@ finance page and dispatch the value to collectd. Plugin "quotes" URL "http://finance.google.com/finance?q=NYSE%3AAMD" + AddressFamily "any" User "foo" Password "bar" Digest false @@ -1666,6 +1874,18 @@ Defaults to C. URL of the web site to retrieve. Since a regular expression will be used to extract information from this data, non-binary data is a big plus here ;) +=item B I + +IP version to resolve URL to. Useful in cases when hostname in URL resolves +to both IPv4 and IPv6 addresses, and you are interested in using one of them +specifically. +Use C to enforce IPv4, C to enforce IPv6, or C to keep the +default behavior of resolving addresses to all IP versions your system allows. +If C is compiled without IPv6 support, using C will result in +a warning and fallback to C. +If C cannot be parsed, a warning will be printed and the whole B +block will be ignored. + =item B I Username to use if authorization is required to read the page. @@ -1743,6 +1963,11 @@ plugin below on how matches are defined. If the B or B options are set to B, B blocks are optional. +=item B I + +Sets the interval (in seconds) in which the values will be collected from this +URL. By default the global B setting will be used. + =item B I The B option sets the overall timeout for HTTP requests to B, in @@ -1772,6 +1997,7 @@ C<_stats> runtime statistics module of I + AddressFamily "any" Instance "httpd" Type "http_requests" @@ -1816,6 +2042,18 @@ The following options are valid within B blocks: =over 4 +=item B I + +IP version to resolve URL to. Useful in cases when hostname in URL resolves +to both IPv4 and IPv6 addresses, and you are interested in using one of them +specifically. +Use C to enforce IPv4, C to enforce IPv6, or C to keep the +default behavior of resolving addresses to all IP versions your system allows. +If C is compiled without IPv6 support, using C will result in +a warning and fallback to C. +If C cannot be parsed, a warning will be printed and the whole B +block will be ignored. + =item B I Use I as the host name when submitting values. Defaults to the global @@ -1887,6 +2125,7 @@ The B uses B (L) and B + AddressFamily "any" Host "my_host" #Plugin "curl_xml" Instance "some_instance" @@ -1923,6 +2162,18 @@ Within the B block the following options are accepted: =over 4 +=item B I + +IP version to resolve URL to. Useful in cases when hostname in URL resolves +to both IPv4 and IPv6 addresses, and you are interested in using one of them +specifically. +Use C to enforce IPv4, C to enforce IPv6, or C to keep the +default behavior of resolving addresses to all IP versions your system allows. +If C is compiled without IPv6 support, using C will result in +a warning and fallback to C. +If C cannot be parsed, a warning will be printed and the whole B +block will be ignored. + =item B I Use I as the host name when submitting values. Defaults to the global @@ -1939,6 +2190,11 @@ Use I as the plugin instance when submitting values. May be overridden by B option inside B blocks. Defaults to an empty string (no plugin instance). +=item B I + +Sets the interval (in seconds) in which the values will be collected from this +URL. By default the global B setting will be used. + =item B I I If an XPath expression references namespaces, they must be specified @@ -3031,6 +3287,30 @@ Pause to apply between attempts of connection to gpsd in seconds (default 5 sec) =back +=head2 Plugin C + +Efficiently collects various statistics from the system's NVIDIA GPUs using the +NVML library. Currently collected are fan speed, core temperature, percent +load, percent memory used, compute and memory frequencies, and power +consumption. + +=over 4 + +=item B + +If one or more of these options is specified, only GPUs at that index (as +determined by nvidia-utils through I) have statistics collected. +If no instance of this option is specified, all GPUs are monitored. + +=item B + +If set to true, all detected GPUs B the ones at indices specified by +B entries are collected. For greater clarity, setting IgnoreSelected +without any GPUIndex directives will result in B statistics being +collected. + +=back + =head2 Plugin C The I plugin provides an RPC interface to submit values to or query @@ -3094,6 +3374,13 @@ Whether to enable SSL for incoming connections. Default: false. Filenames specifying SSL certificate and key material to be used with SSL connections. +=item B B|B + +When enabled, a valid client certificate is required to connect to the server. +When disabled, a client certifiacte is not requested and any unsolicited client +certificate is accepted. +Enabled by default. + =back =back @@ -3288,6 +3575,7 @@ B Cores "0-2" "3,4,6" "8-10,15" + Processes "sshd,qemu-system-x86" "bash" B @@ -3303,11 +3591,10 @@ recommended to set interval higher than 1 sec. =item B I -All events are reported on a per core basis. Monitoring of the events can be -configured for group of cores (aggregated statistics). This field defines groups -of cores on which to monitor supported events. The field is represented as list -of strings with core group values. Each string represents a list of cores in a -group. Allowed formats are: +Monitoring of the events can be configured for group of cores +(aggregated statistics). This field defines groups of cores on which to monitor +supported events. The field is represented as list of strings with core group +values. Each string represents a list of cores in a group. Allowed formats are: 0,1,2,3 0-10,20-18 1,3,5-8,10,0x10-12 @@ -3315,6 +3602,15 @@ group. Allowed formats are: If an empty string is provided as value for this field default cores configuration is applied - a separate group is created for each core. +=item B I + +Monitoring of the events can be configured for group of processes +(aggregated statistics). This field defines groups of processes on which to +monitor supported events. The field is represented as list of strings with +process names group values. Each string represents a list of processes in a +group. Allowed format is: + sshd,bash,qemu + =back B By default global interval is used to retrieve statistics on monitored @@ -3464,8 +3760,23 @@ a notification is sent. Defaults to B. If system event log (SEL) is enabled, plugin will listen for sensor threshold and discrete events. When event is received the notification is sent. +SEL event filtering can be configured using B and B +config options. Defaults to B. +=item B I + +Selects sensors to get events from or to ignore, depending on B. + +See F for details. + +=item B I|I + +If no configuration is given, the B plugin will pass events from all +sensors. This option enables you to do that: By setting B +to I the effect of B is inverted: All events from selected +sensors are ignored and all events from other sensors are passed. + =item B I|I If SEL clear event is enabled, plugin will delete event from SEL list after @@ -4070,8 +4381,9 @@ which the sizes of physical memory vary. The B connects to a Modbus "slave" via Modbus/TCP or Modbus/RTU and reads register values. It supports reading single registers (unsigned 16Ebit -values), large integer values (unsigned 32Ebit values) and floating point -values (two registers interpreted as IEEE floats in big endian notation). +values), large integer values (unsigned 32Ebit and 64Ebit values) and +floating point values (two registers interpreted as IEEE floats in big endian +notation). B @@ -4081,6 +4393,8 @@ B RegisterCmd ReadHolding Type voltage Instance "input-1" + #Scale 1.0 + #Shift 0.0 @@ -4139,11 +4453,22 @@ Configures the base register to read from the device. If the option B has been set to B or B, this and the next register will be read (the register number is increased by one). -=item B B|B|B|B|B - -Specifies what kind of data is returned by the device. If the type is B, -B or B, two 16Ebit registers will be read and the data is -combined into one value. Defaults to B. +=item B B|B|B|B|B|B|B|B|B|B + +Specifies what kind of data is returned by the device. This defaults to +B. If the type is B, B, B, B, +B or B, two 16Ebit registers at B +and B will be read and the data is combined into one +32Evalue. For B, B and B the most significant +16Ebits are in the register at B and the least +significant 16Ebits are in the register at B. +For B, B, or B, the high and low order +registers are swapped with the most significant 16Ebits in +the B and the least significant 16Ebits in +B. If the type is B or B, four 16Ebit +registers at B, B, B and +B will be read and the data combined into one +64Evalue. =item B B|B @@ -4158,9 +4483,19 @@ supported. =item B I -Sets the type instance to use when dispatching the value to I. If +Sets the type instance to use when dispatching the value to I. If unset, an empty string (no type instance) is used. +=item B I + +The values taken from device are multiplied by I. The field is optional +and the default is B<1.0>. + +=item B I + +I is added to values from device after they have been multiplied by +B value. The field is optional and the default value is B<0.0>. + =back =item EB IE blocks @@ -4195,6 +4530,12 @@ For Modbus/RTU, specifies the path to the serial device being used. For Modbus/RTU, specifies the baud rate of the serial device. Note, connections currently support only 8/N/1. +=item B I + +For Modbus/RTU, specifies the type of the serial device. +RS232, RS422 and RS485 are supported. Defaults to RS232. +Available only on Linux systems with libmodbus>=2.9.4. + =item B I Sets the interval (in seconds) in which the values will be collected from this @@ -5084,8 +5425,9 @@ When configuring with B only the basic statistics will be collected, namely octets, packets, and errors. These statistics are collected by the C plugin, too, so using both at the same time is no benefit. -When configured with B all counters B the basic ones, -so that no data needs to be collected twice if you use the C plugin. +When configured with B all counters B the basic ones +will be collected, so that no data needs to be collected twice if you use the +C plugin. This includes dropped packets, received multicast packets, collisions and a whole zoo of differentiated RX and TX errors. You can try the following command to get an idea of what awaits you: @@ -5227,6 +5569,12 @@ 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. +=item B I + +Set the outgoing IP address for IP packets. This option can be used instead of +the I option to explicitly define the IP address which will be used +to send Packets to the remote server. + =item B I Sets the interval at which to re-resolve the DNS for the I. This is @@ -6019,6 +6367,7 @@ B Address "127.0.0.1" Socket "/var/run/openvswitch/db.sock" Bridges "br0" "br_ext" + InterfaceStats false The plugin provides the following configuration options: @@ -6052,6 +6401,59 @@ omitted or is empty then all OVS bridges will be monitored. Default: empty (monitor all bridges) +=item B B|B + +Indicates that the plugin should gather statistics for individual interfaces +in addition to ports. This can be useful when monitoring an OVS setup with +bond ports, where you might wish to know individual statistics for the +interfaces included in the bonds. Defaults to B. + +=back + +=head2 Plugin C + +The I plugin collects PCI Express errors from Device Status in Capability +structure and from Advanced Error Reporting Extended Capability where available. +At every read it polls config space of PCI Express devices and dispatches +notification for every error that is set. It checks for new errors at every read. +The device is indicated in plugin_instance according to format "domain:bus:dev.fn". +Errors are divided into categories indicated by type_instance: "correctable", and +for uncorrectable errors "non_fatal" or "fatal". +Fatal errors are reported as I and all others as I. + +B + + + Source "sysfs" + AccessDir "/sys/bus/pci" + ReportMasked false + PersistentNotifications false + + +B + +=over 4 + +=item B B|B + +Use B or B to read data from /sysfs or /proc. +The default value is B. + +=item B I + +Directory used to access device config space. It is optional and defaults to +/sys/bus/pci for B and to /proc/bus/pci for B. + +=item B B|B + +If true plugin will notify about errors that are set to masked in Error Mask register. +Such errors are not reported to the PCI Express Root Complex. Defaults to B. + +=item B B|B + +If false plugin will dispatch notification only on set/clear of error. +The ones already reported will be ignored. Defaults to B. + =back =head2 Plugin C @@ -6188,6 +6590,11 @@ long string is used so that the packet size of an ICMPv4 packet is exactly Sets the source address to use. I may either be a numerical network address or a network hostname. +=item B I + +Sets the address family to use. I may be "any", "ipv4" or "ipv6". This +option will be ignored if you set a B. + =item B I Sets the outgoing network device to be used. I has to specify an @@ -6860,18 +7267,21 @@ The statistics collected for matched processes are: - number of memory mapped files (under Linux) - io data (where available) - context switches (under Linux) - - minor and major pagefaults. + - minor and major pagefaults + - Delay Accounting information (Linux only, requires libmnl) B - CollectFileDescriptor true - CollectContextSwitch true + CollectFileDescriptor true + CollectContextSwitch true + CollectDelayAccounting false Process "name" ProcessMatch "name" "regex" - CollectFileDescriptor false - CollectContextSwitch false + CollectFileDescriptor false + CollectContextSwitch false + CollectDelayAccounting true CollectFileDescriptor false @@ -6901,6 +7311,18 @@ I must not contain slashes. Collect the number of context switches for matched processes. Disabled by default. +=item B I + +If enabled, collect Linux Delay Accounding information for matching processes. +Delay Accounting provides the time processes wait for the CPU to become +available, for I/O operations to finish, for pages to be swapped in and for +freed pages to be reclaimed. The metrics are reported as "seconds per second" +using the C type, e.g. C. +Disabled by default. + +This option is only available on Linux, requires the C library and +requires the C capability at runtime. + =item B I Collect number of file descriptors of matched processes. @@ -6914,9 +7336,46 @@ the Linux kernel. =back -Options B and B may be used inside -B and B blocks - then they affect corresponding match -only. Otherwise they set the default value for subsequent matches. +The B, B, +B and B options may be used inside +B and B blocks. When used there, these options affect +reporting the corresponding processes only. Outside of B and +B blocks these options set the default value for subsequent +matches. + +=head2 Plugin C + +The I plugin monitors when processes start (EXEC) and stop (EXIT). + +B + + + BufferLength 10 + Process "name" + ProcessRegex "regex" + + +B + +=over 4 + +=item B I + +Maximum number of process events that can be stored in plugin's ring buffer. +By default, this is set to 10. Once an event has been read, its location +becomes available for storing a new event. + +=item B I + +Enumerate a process name to monitor. All processes that match this exact +name will be monitored for EXECs and EXITs. + +=item B I + +Enumerate a process pattern to monitor. All processes that match this +regular expression will be monitored for EXECs and EXITs. + +=back =head2 Plugin C @@ -6983,6 +7442,7 @@ multiple routers: CollectRegistrationTable true CollectDF true CollectDisk true + CollectHealth true @@ -7043,29 +7503,37 @@ Defaults to B. When enabled, the number of sectors written and bad blocks will be collected. Defaults to B. +=item B B|B + +When enabled, the health statistics will be collected. This includes the +voltage and temperature on supported hardware. +Defaults to B. + =back =head2 Plugin C -The I connects to one or more Redis servers and gathers -information about each server's state. For each server there is a I block -which configures the connection parameters for this node. +The I connects to one or more Redis servers, gathers +information about each server's state and executes user-defined queries. +For each server there is a I block which configures the connection +parameters and set of user-defined queries for this node. Host "localhost" Port "6379" + #Socket "/var/run/redis/redis.sock" Timeout 2000 + ReportCommandStats false + ReportCpuUsage true + #Database 0 Type "queue_length" Instance "myqueue" - + -The information shown in the synopsis above is the I -which is used by the plugin if no configuration is present. - =over 4 =item B I @@ -7073,7 +7541,9 @@ which is used by the plugin if no configuration is present. The B block identifies a new Redis node, that is a new Redis instance running in an specified host and port. The name for node is a canonical identifier which is used as I. It is limited to -64Echaracters in length. +128Echaracters in length. + +When no B is configured explicitly, plugin connects to "localhost:6379". =item B I @@ -7086,6 +7556,11 @@ The B option is the TCP port on which the Redis instance accepts connections. Either a service name of a port number may be given. Please note that numerical port numbers must be given as a string, too. +=item B I + +Connect to Redis using the UNIX domain socket at I. If this +setting is given, the B and B settings are ignored. + =item B I Use I to authenticate when connecting to I. @@ -7093,25 +7568,47 @@ Use I to authenticate when connecting to I. =item B I The B option set the socket timeout for node response. Since the Redis -read function is blocking, you should keep this value as low as possible. Keep -in mind that the sum of all B values for all B should be lower -than B defined globally. +read function is blocking, you should keep this value as low as possible. +It is expected what B values should be lower than B defined +globally. + +Defaults to 2000 (2 seconds). + +=item B B|B + +Enables or disables reporting of statistics based on the command type, including +rate of command calls and average CPU time consumed by command processing. +Defaults to B. + +=item B B|B + +Enables or disables reporting of CPU consumption statistics. +Defaults to B. =item B I The B block identifies a query to execute against the redis server. -There may be an arbitrary number of queries to execute. +There may be an arbitrary number of queries to execute. Each query should +return single string or integer. =item B I -Within a query definition, a valid collectd type to use as when submitting +Within a query definition, a valid I to use as when submitting the result of the query. When not supplied, will default to B. +Currently only types with one datasource are supported. +See L for more details on types and their configuration. + =item B I Within a query definition, an optional type instance to use when submitting the result of the query. When not supplied will default to the escaped -command, up to 64 chars. +command, up to 128 chars. + +=item B I + +This index selects the Redis logical database to use for query. Defaults +to C<0>. =back @@ -7551,7 +8048,9 @@ B IndexOID "IF-MIB::ifIndex" SizeOID "IF-MIB::ifNumber" - Instance true + + Source "PluginInstance" + Plugin "interface" OIDs "IF-MIB::ifDescr" @@ -7562,12 +8061,44 @@ B OIDs "IF-MIB::ifInOctets" "IF-MIB::ifOutOctets" + + + + Source "PluginInstance" + + Plugin "virt" + OIDs "LIBVIRT-HYPERVISOR-MIB::lvhAffinityDomainName" + + + Plugin "virt" + + Source "TypeInstance" + Regex "^vcpu_([0-9]{1,3})-cpu_[0-9]{1,3}$" + Group 1 + + OIDs "LIBVIRT-HYPERVISOR-MIB::lvhVCPUIndex" + + + Plugin "virt" + + Source "TypeInstance" + Regex "^vcpu_[0-9]{1,3}-cpu_([0-9]{1,3})$" + Group 1 + + OIDs "LIBVIRT-HYPERVISOR-MIB::lvhCPUIndex" + + + Plugin "virt" + Type "cpu_affinity" + OIDs "LIBVIRT-HYPERVISOR-MIB::lvhCPUAffinity" + +
There are two types of blocks that can be contained in the CPluginE snmp_agentE> block: B and B: -=head3 The B block +=head3 B block The B block defines a list OIDs that are to be handled. This block can define scalar or table OIDs. If B block is defined inside of B
@@ -7576,11 +8107,34 @@ The following options can be set: =over 4 -=item B I +=item B block + +B block contains all data needed for proper index build of snmp table. +In case more than +one table B block has B block present then multiple key index is +built. If B block defines scalar data type B has no effect and can +be omitted. + +=over 8 + +=item B I -When B is set to B, the value for requested OID is copied from -plugin instance field of corresponding collectd value. If B block defines -scalar data type B has no effect and can be omitted. +B can be set to one of the following values: "Hostname", "Plugin", +"PluginInstance", "Type", "TypeInstance". This value indicates which field of +corresponding collectd metric is taken as a SNMP table index. + +=item B I + +B option can also be used to parse strings or numbers out of +specific field. For example: type-instance field which is "vcpu1-cpu2" can be +parsed into two numeric fields CPU = 2 and VCPU = 1 and can be later used +as a table index. + +=item B I + +B number can be specified in case groups are used in regex. + +=back =item B I @@ -7756,6 +8310,70 @@ or is not reliable. =back +=head2 Plugin C + +The I plugin monitors rsyslog messages. + +B + + + Listen "192.168.0.2" "6666" + BufferSize 1024 + BufferLength 10 + RegexFilter "regex" + + + rsyslog should be configured such that it sends data to the IP and port you + include in the plugin configuration. For example, given the configuration + above, something like this would be set in /etc/rsyslog.conf: + + if $programname != 'collectd' then + *.* @192.168.0.2:6666 + + This plugin is designed to consume JSON rsyslog data, so a more complete + rsyslog configuration would look like so (where we define a JSON template + and use it when sending data to our IP and port): + + $template ls_json,"{%timestamp:::date-rfc3339,jsonf:@timestamp%, \ + %source:::jsonf:@source_host%,\"@source\":\"syslog://%fromhost-ip:::json%\", \ + \"@message\":\"%timestamp% %app-name%:%msg:::json%\",\"@fields\": \ + {%syslogfacility-text:::jsonf:facility%,%syslogseverity:::jsonf:severity-num%, \ + %syslogseverity-text:::jsonf:severity%,%programname:::jsonf:program%, \ + %procid:::jsonf:processid%}}" + + if $programname != 'collectd' then + *.* @192.168.0.2:6666;ls_json + + Please note that these rsyslog.conf examples are *not* complete, as rsyslog + requires more than these options in the configuration file. These examples + are meant to demonstration the proper remote logging and JSON format syntax. + +B + +=over 4 + +=item B I I + +Listen on this IP on this port for incoming rsyslog messages. + +=item B I + +Maximum allowed size for incoming rsyslog messages. Messages that exceed +this number will be truncated to this size. Default is 4096 bytes. + +=item B I + +Maximum number of rsyslog events that can be stored in plugin's ring buffer. +By default, this is set to 10. Once an event has been read, its location +becomes available for storing a new event. + +=item B I + +Enumerate a regex filter to apply to all incoming rsyslog messages. If a +message matches this filter, it will be published. + +=back + =head2 Plugin C =over 4 @@ -8124,13 +8742,14 @@ B Type "percent" Instance "dropped" - Index 1 + ValueFrom 1 Plugin "snortstats" Instance "eth0" Interval 600 Collect "snort-dropped" + #TimeFrom 0 @@ -8452,6 +9071,33 @@ dynamic number assigned by the kernel. Otherwise, CnE> is used if there is only one package and CnE-coreEmE> if there is more than one, where I is the n-th core of package I. +=item B I|I + +Reading data from CPU has side-effect: collectd process's CPU affinity mask +changes. After reading data is completed, affinity mask needs to be restored. +This option allows to set restore policy. + +B (the default): Restore the affinity by setting affinity to any/all +CPUs. + +B: Save affinity using sched_getaffinity() before reading data and +restore it after. + +On some systems, sched_getaffinity() will fail due to inconsistency of the CPU +set size between userspace and kernel. In these cases plugin will detect the +unsuccessful call and fail with an error, preventing data collection. +Most of configurations does not need to save affinity as Collectd process is +allowed to run on any/all available CPUs. + +If you need to save and restore affinity and get errors like 'Unable to save +the CPU affinity', setting 'possible_cpus' kernel boot option may also help. + +See following links for details: + +L +L +L + =back =head2 Plugin C @@ -8721,6 +9367,40 @@ only on the host system. Only I is required. +Consider the following example config: + + + Connection "qemu:///system" + HostnameFormat "hostname" + InterfaceFormat "address" + PluginInstanceFormat "name" + + +It will generate the following values: + + node42.example.com/virt-instance-0006f26c/disk_octets-vda + node42.example.com/virt-instance-0006f26c/disk_ops-vda + node42.example.com/virt-instance-0006f26c/if_dropped-ca:fe:ca:fe:ca:fe + node42.example.com/virt-instance-0006f26c/if_errors-ca:fe:ca:fe:ca:fe + node42.example.com/virt-instance-0006f26c/if_octets-ca:fe:ca:fe:ca:fe + node42.example.com/virt-instance-0006f26c/if_packets-ca:fe:ca:fe:ca:fe + node42.example.com/virt-instance-0006f26c/memory-actual_balloon + node42.example.com/virt-instance-0006f26c/memory-available + node42.example.com/virt-instance-0006f26c/memory-last_update + node42.example.com/virt-instance-0006f26c/memory-major_fault + node42.example.com/virt-instance-0006f26c/memory-minor_fault + node42.example.com/virt-instance-0006f26c/memory-rss + node42.example.com/virt-instance-0006f26c/memory-swap_in + node42.example.com/virt-instance-0006f26c/memory-swap_out + node42.example.com/virt-instance-0006f26c/memory-total + node42.example.com/virt-instance-0006f26c/memory-unused + node42.example.com/virt-instance-0006f26c/memory-usable + node42.example.com/virt-instance-0006f26c/virt_cpu_total + node42.example.com/virt-instance-0006f26c/virt_vcpu-0 + +You can get information on the metric's units from the online libvirt documentation. +For instance, I is in nanoseconds. + =over 4 =item B I @@ -8762,13 +9442,51 @@ surrounded by I and collectd was compiled with support for regexps. The default is to collect statistics for all domains and all their devices. -Example: +B B and B options are related to +corresponding B<*Format> options. Specifically, B filtering depends +on B setting - if user wants to filter block devices by +'target' name then B option has to be set to 'target' and +B option must be set to a valid block device target +name("/:hdb/"). Mixing formats and filter values from different worlds (i.e., +using 'target' name as B value with B set to +'source') may lead to unexpected results (all devices filtered out or all +visible, depending on the value of B option). +Similarly, option B is related to B setting +(i.e., when user wants to use MAC address as a filter then B +has to be set to 'address' - using wrong type here may filter out all of the +interfaces). + +B + +Ignore all I devices on any domain, but other block devices (eg. I) +will be collected: BlockDevice "/:hdb/" IgnoreSelected "true" + BlockDeviceFormat "target" -Ignore all I devices on any domain, but other block devices (eg. I) -will be collected. +B + +Collect metrics only for block device on 'baremetal0' domain when its +'source' matches given path: + + BlockDevice "baremetal0:/var/lib/libvirt/images/baremetal0.qcow2" + BlockDeviceFormat source + +As you can see it is possible to filter devices/interfaces using +various formats - for block devices 'target' or 'source' name can be +used. Interfaces can be filtered using 'name', 'address' or 'number'. + +B + +Collect metrics only for domains 'baremetal0' and 'baremetal1' and +ignore any other domain: + + Domain "baremetal0" + Domain "baremetal1" + +It is possible to filter multiple block devices/domains/interfaces by +adding multiple filtering entries in separate lines. =item B B|B @@ -8799,6 +9517,11 @@ to C. Setting C will cause the I to be set to C. +B this option determines also what field will be used for +filtering over block devices (filter value in B +will be applied to target or source). More info about filtering +block devices can be found in the description of B. + =item B B|B The B controls whether the full path or the @@ -8813,7 +9536,7 @@ be set to C. Setting C will cause the I to be set to C. -=item B B +=item B B When the virt plugin logs data, it sets the hostname of the collected data according to this setting. The default is to use the guest name as provided by @@ -8823,7 +9546,11 @@ B means use the guest's UUID. This is useful if you want to track the same guest across migrations. B means to use the global B setting, which is probably not -useful on its own because all guests will appear to have the same name. +useful on its own because all guests will appear to have the same name. This is +useful in conjunction with B though. + +B means use information from guest's metadata. Use +B and B to localize this information. You can also specify combinations of these fields. For example B means to concatenate the guest name and UUID (with a literal colon character @@ -8833,7 +9560,7 @@ At the moment of writing (collectd-5.5), hostname string is limited to 62 characters. In case when combination of fields exceeds 62 characters, hostname will be truncated without a warning. -=item B B|B
+=item B B|B
|B When the virt 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 @@ -8843,23 +9570,47 @@ setting B. B
means use the interface's mac address. This is useful since the interface path might change between reboots of a guest or across migrations. -=item B B +B means use the interface's number in guest. + +B this option determines also what field will be used for +filtering over interface device (filter value in B +will be applied to name, address or number). More info about filtering +interfaces can be found in the description of B. + +=item B B When the virt plugin logs data, it sets the plugin_instance of the collected data according to this setting. The default is to not set the plugin_instance. B means use the guest's name as provided by the hypervisor. B means use the guest's UUID. +B means use information from guest's metadata. You can also specify combinations of the B and B fields. For example B means to concatenate the guest name and UUID (with a literal colon character between, thus I<"foo:1234-1234-1234-1234">). -=item B B +=item B B -How many read instances you want to use for this plugin. The default is one, -and the sensible setting is a multiple of the B value. -If you are not sure, just use the default setting. +When B is used in B or B, this +selects in which metadata namespace we will pick the hostname. The default is +I. + +=item B B + +When B is used in B or B, this +describes where the hostname is located in the libvirt metadata. The default is +I. + +=item B B|B + +Enabled by default. Allows to disable stats reporting of block devices for +whole plugin. + +=item B B|B + +Enabled by default. Allows to disable stats reporting of network interfaces for +whole plugin. =item B B @@ -8881,9 +9632,7 @@ I<0.9.5> or later. =item B: report disk errors if any occured. Requires libvirt API version I<0.9.10> or later. -=item B: report domain state and reason in human-readable format as -a notification. If libvirt API version I<0.9.2> or later is available, domain -reason will be included in notification. +=item B: report domain state and reason as 'domain_state' metric. =item B: report file system information as a notification. Requires libvirt API version I<1.2.11> or later. Can be collected only if I @@ -8898,6 +9647,9 @@ Requires libvirt API version I<1.2.9> or later. a domain. Only one type of job statistics can be collected at the same time. Requires libvirt API version I<1.2.9> or later. +=item B: report statistics about memory usage details, provided +by libvirt virDomainMemoryStats() function. + =item B: report the physical user/system cpu time consumed by the hypervisor, per-vm. Requires libvirt API version I<0.9.11> or later. @@ -8906,10 +9658,57 @@ metrics they must be enabled for domain and supported by the platform. Requires libvirt API version I<1.3.3> or later. B: I metrics can't be collected if I plugin is enabled. +=item B: report domain virtual CPUs utilisation. + =item B: report pinning of domain VCPUs to host physical CPUs. +=item B: report 'disk_physical' statistic for disk device. +B: This statistic is only reported for disk devices with 'source' +property available. + +=item B: report 'disk_allocation' statistic for disk device. +B: This statistic is only reported for disk devices with 'source' +property available. + +=item B: report 'disk_capacity' statistic for disk device. +B: This statistic is only reported for disk devices with 'source' +property available. + =back +=item B B|B + +Override default configuration to only send notifications when there is a change +in the lifecycle state of a domain. When set to true notifications will be sent +for every read cycle. Default is false. Does not affect the stats being +dispatched. + +=item B B + +How many read instances you want to use for this plugin. The default is one, +and the sensible setting is a multiple of the B value. + +This option is only useful when domains are specially tagged. +If you are not sure, just use the default setting. + +The reader instance will only query the domains with attached matching tag. +Tags should have the form of 'virt-X' where X is the reader instance number, +starting from 0. + +The special-purpose reader instance #0, guaranteed to be always present, +will query all the domains with missing or unrecognized tag, so no domain will +ever be left out. + +Domain tagging is done with a custom attribute in the libvirt domain metadata +section. Value is selected by an XPath I +expression in the I namespace. +(XPath and namespace values are not configurable yet). + +Tagging could be used by management applications to evenly spread the +load among the reader threads, or to pin on the same threads all +the libvirt domains which use the same shared storage, to minimize +the disruption in presence of storage outages. + =back =head2 Plugin C @@ -8963,6 +9762,8 @@ Synopsis: Protocol "tcp" LogSendErrors true Prefix "collectd" + UseTags false + ReverseHost false @@ -9000,13 +9801,20 @@ approach and logging errors fills syslog with unneeded messages. =item B I -When set, I is added in front of the host name. Dots and whitespace are -I escaped in this string (see B below). +When B is I, B value is added in front of the host name. +When B is I, B value is added in front of series name. + +Dots and whitespace are I escaped in this string (see B +below). =item B I -When set, I is appended to the host name. Dots and whitespace are -I escaped in this string (see B below). +When B is I, B value appended to the host name. +When B is I, B value appended to the end of series name +(before the first ; that separates the name from the tags). + +Dots and whitespace are I escaped in this string (see B +below). =item B I @@ -9028,6 +9836,8 @@ path component, for example C. If set to B (the default), the plugin and plugin instance (and likewise the type and type instance) are put into one component, for example C. +Option value is not used when B is I. + =item B B|B If set to B, append the name of the I (DS) to the "metric" @@ -9040,12 +9850,55 @@ If set to B (the default) the C<.> (dot) character is replaced with I. Otherwise, if set to B, the C<.> (dot) character is preserved, i.e. passed through. +Option value is not used when B is I. + =item B B|B If set to B, detect and remove duplicate components in Graphite metric names. For example, the metric name C will be shortened to C. +=item B B|B + +If set to B, Graphite metric names will be generated as tagged series. +This allows for much more flexibility than the traditional hierarchical layout. + +Example: +C + +You can use B option to add more tags by specifying it like +C<;tag1=value1;tag2=value2>. Note what tagging support was added since Graphite +version 1.1.x. + +If set to B, the B and B settings +are not used. + +Default value: B. + +=item B B|B + +If set to B, the (dot separated) parts of the B field of the +I will be rewritten in reverse order. The rewrite happens I +special characters are replaced with the B. + +This option might be convenient if the metrics are presented with Graphite in a +DNS like tree structure (probably without replacing dots in hostnames). + +Example: + Hostname "node3.cluster1.example.com" + LoadPlugin "cpu" + LoadPlugin "write_graphite" + + + EscapeCharacter "." + ReverseHost true + + + + result on the wire: com.example.cluster1.node3.cpu-0.cpu-idle 99.900993 1543010932 + +Default value: B. + =back =head2 Plugin C @@ -9214,6 +10067,13 @@ B =over 4 +=item B I + +Bind to the hostname / address I. By default, the plugin will bind to the +"any" address, i.e. accept packets sent to any of the hosts addresses. + +This option is supported only for libmicrohttpd newer than 0.9.0. + =item B I Port the embedded webserver should listen on. Defaults to B<9103>. @@ -9471,17 +10331,26 @@ been set to B. =item B (B=I only) A prefix can be added in the metric name when outputting in the I -format. It's added before the I name. +format. + +When B is I, prefix is added before the I name. Metric name will be CprefixEEhostEEpostfixEEpluginEEtypeEEnameE> +When B is I, prefix is added in front of series name. + =item B (B=I only) A postfix can be added in the metric name when outputting in the I -format. It's added after the I name. +format. + +When B is I, postfix is added after the I name. Metric name will be CprefixEEhostEEpostfixEEpluginEEtypeEEnameE> +When B is I, prefix value appended to the end of series +name (before the first ; that separates the name from the tags). + =item B (B=I only) Specify a character to replace dots (.) in the host part of the metric name. @@ -9496,6 +10365,8 @@ path component, for example C. If set to B (the default), the plugin and plugin instance (and likewise the type and type instance) are put into one component, for example C. +Option value is not used when B is I. + =item B B|B If set to B, append the name of the I (DS) to the "metric" @@ -9508,6 +10379,14 @@ If set to B (the default) the C<.> (dot) character is replaced with I. Otherwise, if set to B, the C<.> (dot) character is preserved, i.e. passed through. +Option value is not used when B is I. + +=item B B|B + +If set to B Graphite metric names will be generated as tagged series. + +Default value: B. + =item B B|B If set to B (the default), convert counter values to rates. If set to @@ -9868,6 +10747,268 @@ attribute for each metric being sent out to I. =back +=head2 Plugin C + +The C plugin writes metrics to the +I service. + +This plugin supports two authentication methods: When configured, credentials +are read from the JSON credentials file specified with B. +Alternatively, when running on +I (GCE), an I token is retrieved from the +I and used to authenticate to GCM. + +B + + + CredentialFile "/path/to/service_account.json" + + Label "project_id" "monitored_project" + + + +=over 4 + +=item B I + +Path to a JSON credentials file holding the credentials for a GCP service +account. + +If B is not specified, the plugin uses I. That means which credentials are used depends on the environment: + +=over 4 + +=item + +The environment variable C is checked. If this +variable is specified it should point to a JSON file that defines the +credentials. + +=item + +The path C<${HOME}/.config/gcloud/application_default_credentials.json> is +checked. This where credentials used by the I command line utility are +stored. You can use C to create these +credentials. + +Please note that these credentials are often of your personal account, not a +service account, and are therefore unfit to be used in a production +environment. + +=item + +When running on GCE, the built-in service account associated with the virtual +machine instance is used. +See also the B option below. + +=back + +=item B I + +The I or the I of the I. The +I is a string identifying the GCP project, which you can chose +freely when creating a new project. The I is a 12-digit decimal +number. You can look up both on the I. + +This setting is optional. If not set, the project ID is read from the +credentials file or determined from the GCE's metadata service. + +=item B I (GCE only) + +Choses the GCE I used for authentication. + +Each GCE instance has a C I but may also be +associated with additional I. This is often used to restrict +the permissions of services running on the GCE instance to the required +minimum. The I requires the +C scope. When multiple I are available, this option selects which one is used by +I. + +=item B I + +Configures the I to use when storing metrics. +More information on I and I are +available at L. + +This block takes one string argument, the I. Inside the block are +one or more B