diff options
author | Igor Pashev <pashev.igor@gmail.com> | 2014-10-26 12:33:50 +0400 |
---|---|---|
committer | Igor Pashev <pashev.igor@gmail.com> | 2014-10-26 12:33:50 +0400 |
commit | 47e6e7c84f008a53061e661f31ae96629bc694ef (patch) | |
tree | 648a07f3b5b9d67ce19b0fd72e8caa1175c98f1a /qa/pconf | |
download | pcp-debian.tar.gz |
Debian 3.9.10debian/3.9.10debian
Diffstat (limited to 'qa/pconf')
-rw-r--r-- | qa/pconf/GNUmakefile | 18 | ||||
-rw-r--r-- | qa/pconf/cpu/GNUmakefile | 17 | ||||
-rw-r--r-- | qa/pconf/cpu/aggregate_util | 34 | ||||
-rw-r--r-- | qa/pconf/cpu/excess_fpe | 43 | ||||
-rw-r--r-- | qa/pconf/cpu/load_average | 29 | ||||
-rw-r--r-- | qa/pconf/cpu/single_util | 36 | ||||
-rw-r--r-- | qa/pconf/cpu/system_calls | 29 | ||||
-rw-r--r-- | qa/pconf/cpu/system_mode | 45 | ||||
-rw-r--r-- | qa/pconf/disk/GNUmakefile | 16 | ||||
-rw-r--r-- | qa/pconf/disk/average_iops | 31 | ||||
-rw-r--r-- | qa/pconf/disk/single_iops | 37 | ||||
-rw-r--r-- | qa/pconf/filesys/GNUmakefile | 16 | ||||
-rw-r--r-- | qa/pconf/filesys/buffer_cache | 37 | ||||
-rw-r--r-- | qa/pconf/filesys/capacity | 34 | ||||
-rw-r--r-- | qa/pconf/global/GNUmakefile | 16 | ||||
-rw-r--r-- | qa/pconf/global/pcp_eoe | 93 | ||||
-rw-r--r-- | qa/pconf/global/sss | 10 | ||||
-rw-r--r-- | qa/pconf/memory/GNUmakefile | 16 | ||||
-rw-r--r-- | qa/pconf/memory/exhausted | 26 | ||||
-rw-r--r-- | qa/pconf/network/GNUmakefile | 16 | ||||
-rw-r--r-- | qa/pconf/network/interface_bytes | 52 | ||||
-rw-r--r-- | qa/pconf/network/interface_packets | 53 | ||||
-rw-r--r-- | qa/pconf/network/tcp_dropped_conns | 42 | ||||
-rw-r--r-- | qa/pconf/network/tcp_retransmit | 39 |
24 files changed, 785 insertions, 0 deletions
diff --git a/qa/pconf/GNUmakefile b/qa/pconf/GNUmakefile new file mode 100644 index 0000000..5efad8a --- /dev/null +++ b/qa/pconf/GNUmakefile @@ -0,0 +1,18 @@ +#!gmake + +TOPDIR = ../.. +include $(TOPDIR)/src/include/builddefs + +TESTDIR = $(PCP_VAR_DIR)/testsuite/pconf +SUBDIRS = cpu disk filesys global memory network + +default default_pcp: $(SUBDIRS) + $(SUBDIRS_MAKERULE) + +setup: + +install install_pcp: $(SUBDIRS) + $(INSTALL) -m 755 -d $(TESTDIR) + $(SUBDIRS_MAKERULE) + +include $(BUILDRULES) diff --git a/qa/pconf/cpu/GNUmakefile b/qa/pconf/cpu/GNUmakefile new file mode 100644 index 0000000..3588b68 --- /dev/null +++ b/qa/pconf/cpu/GNUmakefile @@ -0,0 +1,17 @@ +#!gmake + +TOPDIR = ../../.. +include $(TOPDIR)/src/include/builddefs + +TESTDIR = $(PCP_VAR_DIR)/testsuite/pconf/cpu +CONFIGS = aggregate_util excess_fpe load_average \ + single_util system_calls system_mode +LSRCFILES = $(CONFIGS) + +default default_pcp setup: + +install install_pcp: + $(INSTALL) -m 755 -d $(TESTDIR) + $(INSTALL) -m 644 $(CONFIGS) $(TESTDIR) + +include $(BUILDRULES) diff --git a/qa/pconf/cpu/aggregate_util b/qa/pconf/cpu/aggregate_util new file mode 100644 index 0000000..504264b --- /dev/null +++ b/qa/pconf/cpu/aggregate_util @@ -0,0 +1,34 @@ +#pmieconf-rules 1 +# + +rule cpu.aggregate_util + default = "$rule$" + predicate = +"some_host ( + kernel.all.cpu.user $hosts$ + + kernel.all.cpu.sys $hosts$ + + kernel.all.cpu.intr $hosts$ + > hinv.ncpu $hosts$ * $threshold$ / 100 +)" + enabled = no + version = 1 + help = +"The average processor utilization over all CPUs exceeded +threshold percent during the last sample interval."; + +string rule + default = "aggregate processor saturation" + modify = no + display = no; + +percent threshold + default = 90 + help = +"Threshold percentage for CPU saturation, in the range 0 (idle) +to 100 (completely busy), independent of the number of CPUs."; + +string action_expand + default = %h + display = no + modify = no; + diff --git a/qa/pconf/cpu/excess_fpe b/qa/pconf/cpu/excess_fpe new file mode 100644 index 0000000..fe166eb --- /dev/null +++ b/qa/pconf/cpu/excess_fpe @@ -0,0 +1,43 @@ +#pmieconf-rules 1 +# + +rule cpu.excess_fpe + default = "$rule$" + predicate = +"some_host ( + some_inst ( + kernel.percpu.cpu.sys $hosts$ > $systime_util$ / 100 && + kernel.percpu.syscall $hosts$ < $syscall_rate$ + ) +)" + enabled = no + version = 1 + help = +"This predicate attempts to detect processes generating very large +numbers of floating point exceptions (FPEs). Characteristic of this +situation is heavy system time coupled with low system call rates +(exceptions are delivered through the kernel to the process, taking +some system time, but no system call is serviced on the applications +behalf."; + +string rule + default = "possible high floating point exception rate" + modify = no + display = no; + +percent systime_util + default = 50 + help = +"Threshold percentage for kernel CPU utilization, in the range 0 +(idle) to 100 (completely busy)"; + +double syscall_rate + default = 100 + help = +"Threshold system call rate at which something is deemed amiss."; + +string action_expand + default = %i@%h + display = no + modify = no; + diff --git a/qa/pconf/cpu/load_average b/qa/pconf/cpu/load_average new file mode 100644 index 0000000..e5fa9bc --- /dev/null +++ b/qa/pconf/cpu/load_average @@ -0,0 +1,29 @@ +#pmieconf-rules 1 +# + +rule cpu.load_average + default = "$rule$" + predicate = +"some_host ( + kernel.all.load $hosts$ #'1 minute' + > hinv.ncpu $hosts$ * $threshold$ +)" + enabled = yes + version = 1 + help = +"The current 1-minute load average is higher than threshold times the +number of CPUs. +The load average measures the number of processes that are running, +runnable or soon to be runnable (i.e. in short term sleep)."; + +string rule + default = "high 1-minute load average" + modify = no + display = no; + +double threshold + default = 1.5 + help = +"The threshold multiplier for load per CPU, typically in the range +0.5 (very light load) to 4.0 (very heavy load )."; + diff --git a/qa/pconf/cpu/single_util b/qa/pconf/cpu/single_util new file mode 100644 index 0000000..3f5dc81 --- /dev/null +++ b/qa/pconf/cpu/single_util @@ -0,0 +1,36 @@ +#pmieconf-rules 1 +# + +rule cpu.single_util + default = "$rule$" + predicate = +"some_host ( + some_inst ( + kernel.percpu.cpu.user $hosts$ + + kernel.percpu.cpu.sys $hosts$ + + kernel.percpu.cpu.intr $hosts$ + > $threshold$ / 100 + ) +)" + enabled = no + version = 1 + help = +"The average processor utilization for at least one CPU exceeded +threshold percent during the last sample interval."; + +string rule + default = "single processor saturation" + modify = no + display = no; + +percent threshold + default = 95 + help = +"Threshold percentage for CPU saturation, in the range 0 (idle) +to 100 (completely busy)"; + +string action_expand + default = %i@%h + display = no + modify = no; + diff --git a/qa/pconf/cpu/system_calls b/qa/pconf/cpu/system_calls new file mode 100644 index 0000000..c2244e1 --- /dev/null +++ b/qa/pconf/cpu/system_calls @@ -0,0 +1,29 @@ +#pmieconf-rules 1 +# + +rule cpu.system_calls + default = "$rule$" + predicate = +"some_host ( + ( kernel.all.syscall $hosts$ / hinv.ncpu $hosts$ ) + > $threshold$ count/sec +)" + enabled = no + version = 1 + help = +"Average number of system calls per CPU per second exceeded threshold +over the past sample interval."; + +string rule + default = "high average system call rate per CPU" + modify = no + display = no; + +double threshold + default = 2500 + help = +"The threshold of system calls per second per CPU. The appropriate +value is a function of the processor type and the workload, but in +the range 500 (a few, expensive systems calls) to 5000 (many, +lightweight system calls) would be typical."; + diff --git a/qa/pconf/cpu/system_mode b/qa/pconf/cpu/system_mode new file mode 100644 index 0000000..bdecce7 --- /dev/null +++ b/qa/pconf/cpu/system_mode @@ -0,0 +1,45 @@ +#pmieconf-rules 1 +# + +rule cpu.system_mode + default = "$rule$" + predicate = +"some_host ( + ( kernel.all.cpu.user $hosts$ + + kernel.all.cpu.sys $hosts$ + > hinv.ncpu $hosts$ * $busy$ / 100 ) && + ( kernel.all.cpu.sys $hosts$ / + ( kernel.all.cpu.user $hosts$ + + kernel.all.cpu.sys $hosts$ ) + > $threshold$ / 100 ) +)" + enabled = yes + version = 1 + help = +"The average processor utilization over all CPUs was at least busy +percent during the last sample interval, and the ratio of system time +to busy time exceeded threshold percent."; + +string rule + default = "busy executing in system mode" + modify = no + display = no; + +percent busy + default = 75 + help = +"Busy percentage for average CPU utilization, in the range 0 (idle) +to 100 (completely busy), independent of the number of CPUs."; + +percent threshold + default = 80 + help = +"Threshold percentage for system time as a fraction of the non-idle +CPU time, in the range 0 (no system time) to 100 (all system time), +independent of the number of CPUs."; + +string action_expand + default = "%h" + display = no + modify = no; + diff --git a/qa/pconf/disk/GNUmakefile b/qa/pconf/disk/GNUmakefile new file mode 100644 index 0000000..ef3575e --- /dev/null +++ b/qa/pconf/disk/GNUmakefile @@ -0,0 +1,16 @@ +#!gmake + +TOPDIR = ../../.. +include $(TOPDIR)/src/include/builddefs + +TESTDIR = $(PCP_VAR_DIR)/testsuite/pconf/disk +CONFIGS = average_iops single_iops +LSRCFILES = $(CONFIGS) + +default default_pcp setup: + +install install_pcp: + $(INSTALL) -m 755 -d $(TESTDIR) + $(INSTALL) -m 644 $(CONFIGS) $(TESTDIR) + +include $(BUILDRULES) diff --git a/qa/pconf/disk/average_iops b/qa/pconf/disk/average_iops new file mode 100644 index 0000000..9b03ebe --- /dev/null +++ b/qa/pconf/disk/average_iops @@ -0,0 +1,31 @@ +#pmieconf-rules 1 +# + +rule disk.average_iops + default = "$rule$" + predicate = +"some_host ( + ( disk.all.total $hosts$ / hinv.ndisk $hosts$ ) + > $threshold$ count/sec +)" + enabled = no + version = 1 + help = +"The average rate of disk I/O operations per spindle per second +exceeded the threshold during the last sample interval."; + +string rule + default = "high average disk activity per spindle" + modify = no + display = no; + +double threshold + default = 25 + help = +"Threshold in units of disk I/O operations per spindle per second. +As a hint, the achievable peak is of the order of 100, although the +disk model, the number of disks per controller, the spindle load +balance and the distribution of transfer sizes all combine to make +the practical peak either larger or smaller for any specific +system."; + diff --git a/qa/pconf/disk/single_iops b/qa/pconf/disk/single_iops new file mode 100644 index 0000000..cc42eff --- /dev/null +++ b/qa/pconf/disk/single_iops @@ -0,0 +1,37 @@ +#pmieconf-rules 1 +# + +rule disk.single_iops + default = "$rule$" + predicate = +"some_host ( + some_inst ( + disk.dev.total $hosts$ > $threshold$ count/sec + ) +)" + enabled = no + version = 1 + help = +"For at least one spindle, the average rate of disk I/O operations +per second exceeded the threshold during the last sample interval."; + +string rule + default = "busy disk spindle" + modify = no + display = no; + +double threshold + default = 40 + help = +"Threshold in units of disk I/O operations per second. +As a hint, the achievable peak is of the order of 100 IOPS for one +disk, although the disk model, the number of disks per controller, +the spindle load balance and the distribution of transfer sizes all +combine to make the practical peak either larger or smaller for any +specific system."; + +string action_expand + default = "%v:%i@%h" + display = no + modify = no; + diff --git a/qa/pconf/filesys/GNUmakefile b/qa/pconf/filesys/GNUmakefile new file mode 100644 index 0000000..3620af7 --- /dev/null +++ b/qa/pconf/filesys/GNUmakefile @@ -0,0 +1,16 @@ +#!gmake + +TOPDIR = ../../.. +include $(TOPDIR)/src/include/builddefs + +TESTDIR = $(PCP_VAR_DIR)/testsuite/pconf/filesys +CONFIGS = buffer_cache capacity +LSRCFILES = $(CONFIGS) + +default default_pcp setup: + +install install_pcp: + $(INSTALL) -m 755 -d $(TESTDIR) + $(INSTALL) -m 644 $(CONFIGS) $(TESTDIR) + +include $(BUILDRULES) diff --git a/qa/pconf/filesys/buffer_cache b/qa/pconf/filesys/buffer_cache new file mode 100644 index 0000000..e964d0e --- /dev/null +++ b/qa/pconf/filesys/buffer_cache @@ -0,0 +1,37 @@ +#pmieconf-rules 1 +# + +rule filesys.buffer_cache + default = "$rule$" + predicate = +"some_host ( + ( (kernel.all.io.lread $hosts$ + - kernel.all.io.bread $hosts$) + / kernel.all.io.lread $hosts$ ) < $threshold$ / 100 + && kernel.all.io.lread $hosts$ > 30 * 16 Kbytes/sec +)" + enabled = no + version = 1 + help = +"Some file system read activity (at least 30 x 16 Kbyte logical reads +per second), and the read hit ratio in the buffer cache is below +threshold percent."; + +string rule + default = "low read hit ratio in buffer cache" + modify = no + display = no; + +percent threshold + default = 80 + help = +"The minimum acceptable buffer cache read hit ratio, expressed as a +percentage. Values may be in the range 0 (nothing is read from the +cache and poor performance is expected) to 100 (all reads come from +the cache, no disk I/O required and good performance expected)."; + +string action_expand + default = "%v%@%h" + display = no + modify = no; + diff --git a/qa/pconf/filesys/capacity b/qa/pconf/filesys/capacity new file mode 100644 index 0000000..ffccddf --- /dev/null +++ b/qa/pconf/filesys/capacity @@ -0,0 +1,34 @@ +#pmieconf-rules 1 +# + +rule filesys.capacity + default = "$rule$" + predicate = +"some_host ( + some_inst ( + ( 100 * filesys.used $hosts$ > + $threshold$ * filesys.capacity $hosts$ ) && + rate filesys.used $hosts$ > 0 + ) +)" + enabled = yes + version = 1 + help = +"Filesystem is at least threshold percent full and the allocated +space is growing."; + +string rule + default = "imminent file system full" + modify = no + display = no; + +percent threshold + default = 95 + help = +"The threshold of file system fullness, usually in the range 90 to 99."; + +string action_expand + default = "%i@%h" + display = no + modify = no; + diff --git a/qa/pconf/global/GNUmakefile b/qa/pconf/global/GNUmakefile new file mode 100644 index 0000000..d0eb2b0 --- /dev/null +++ b/qa/pconf/global/GNUmakefile @@ -0,0 +1,16 @@ +#!gmake + +TOPDIR = ../../.. +include $(TOPDIR)/src/include/builddefs + +TESTDIR = $(PCP_VAR_DIR)/testsuite/pconf/global +CONFIGS = pcp_eoe sss +LSRCFILES = $(CONFIGS) + +default default_pcp setup: + +install install_pcp: + $(INSTALL) -m 755 -d $(TESTDIR) + $(INSTALL) -m 644 $(CONFIGS) $(TESTDIR) + +include $(BUILDRULES) diff --git a/qa/pconf/global/pcp_eoe b/qa/pconf/global/pcp_eoe new file mode 100644 index 0000000..6abcb66 --- /dev/null +++ b/qa/pconf/global/pcp_eoe @@ -0,0 +1,93 @@ +#pmieconf-rules 1 +# + + +# +# parameter definitions applicable to all rules +# (unless overridden at the level of an individual rule or group) +# + +double global.delta + default = 120 + help = +"Sample interval in seconds between evaluations of this rule."; + +unsigned global.holdoff + default = 15 + help = +"Once the condition is true, this parameter controls suppression of +further evaluation of the rule for the specified number of minutes. +A value of zero allows re-evaluation of the rule at the next sample +time."; + +hostlist global.hosts + default = "" + help = +"May be set to a list of host names for which the rules will be +evaluated. Each host name should be prefixed by a colon and +multiple entries separated by white space, e.g. :myhost :yourhost +If the list is empty, the host will be the host named in the -h +option to pmie(1) if specified, else the local host."; + + +# +# action definitions applicable to all rules follow +# +# o $rule$ defined locally & contains the "message" to be propagated +# o $action_expand$ often overridden locally & contains the part of the +# action string which is rule-semantics specific and will be expanded +# possibly multiple times on truthful evaluation of the predicate to +# contain values/instances/hosts which matched,e.g: +# "%v@%h" might expand to "1.1@moomba 1.7@rattle 4.5@wobbly" if all +# the rule is true for all of the hosts moomba, rattle and wobbly. +# + +string global.action_expand + display = no + modify = no + default = "%v@%h"; # (value@host) + # some common alternatives: + # %i@%h (inst@host) + # %h (host) + # %v:%i@%h (value:inst@host) + # %v%@%h (value%@host) + +shell global.email_action + enabled = no + default = "/usr/sbin/Mail -s '$rule$^ $action_expand$^' $email_recipients$" + help = +"The system log file /var/adm/SYSLOG will be updated when the rule +condition is true."; + +string global.email_recipients + default = "root" + help = +"Space separated list of e-mail addresses for notification from the +\"email_action\" when it is enabled"; + +shell global.user_action + enabled = no + default = "$user_command$" + help = +"Execute \"user_command\" when the rule condition is true"; + +string global.user_command + default = "/usr/bin/true $rule$^ $action_expand$" + help = +"Shell (sh(1)) command line to execute when rule condition is true +and \"user_action\" is enabled."; + +shell global.pcplog_action + enabled = yes + default = "/usr/pcp/bin/pmpost $rule$^ $action_expand$" + help = +"The PCP notices file /var/adm/pcplog/NOTICES will be updated when +the rule condition is true."; + +syslog global.syslog_action + enabled = no + default = "-p daemon.info $rule$^ $action_expand$" + help = +"The system log file /var/adm/SYSLOG will be updated when the rule +condition is true."; + diff --git a/qa/pconf/global/sss b/qa/pconf/global/sss new file mode 100644 index 0000000..ce80501 --- /dev/null +++ b/qa/pconf/global/sss @@ -0,0 +1,10 @@ +#pmieconf-rules 1 +# + +shell global.sss_action + enabled = no + default = "/usr/bin/sslogger -cSSTOOLS -tPERFORMANCE -m '$rule$^ $action_expand$^'" + help = +"The SSS (System Support Software) framework for the support of SGI +systems will be notified when the rule condition is true."; + diff --git a/qa/pconf/memory/GNUmakefile b/qa/pconf/memory/GNUmakefile new file mode 100644 index 0000000..658a17f --- /dev/null +++ b/qa/pconf/memory/GNUmakefile @@ -0,0 +1,16 @@ +#!gmake + +TOPDIR = ../../.. +include $(TOPDIR)/src/include/builddefs + +TESTDIR = $(PCP_VAR_DIR)/testsuite/pconf/memory +CONFIGS = exhausted +LSRCFILES = $(CONFIGS) + +default default_pcp setup: + +install install_pcp: + $(INSTALL) -m 755 -d $(TESTDIR) + $(INSTALL) -m 644 $(CONFIGS) $(TESTDIR)/$(CONFIGS) + +include $(BUILDRULES) diff --git a/qa/pconf/memory/exhausted b/qa/pconf/memory/exhausted new file mode 100644 index 0000000..fad39ea --- /dev/null +++ b/qa/pconf/memory/exhausted @@ -0,0 +1,26 @@ +#pmieconf-rules 1 +# + +rule memory.exhausted + default = "$rule$" + predicate = +"some_host (30 %_sample swap.pagesout $hosts$ @0..9 > 0)" + enabled = yes + version = 1 + help = +"The system is swapping modified pages out of main memory to the +swap partitions, and has been doing this on at least 3 of the +last 10 evaluations of this rule. +There appears to be insufficient main memory to meet the resident +demands of the current workload."; + +string rule + default = "chronic main memory exhaustion" + modify = no + display = no; + +string action_expand + default = "%h" + modify = no + display = no; + diff --git a/qa/pconf/network/GNUmakefile b/qa/pconf/network/GNUmakefile new file mode 100644 index 0000000..73b87b6 --- /dev/null +++ b/qa/pconf/network/GNUmakefile @@ -0,0 +1,16 @@ +#!gmake + +TOPDIR = ../../.. +include $(TOPDIR)/src/include/builddefs + +TESTDIR = $(PCP_VAR_DIR)/testsuite/pconf/network +CONFIGS = interface_bytes interface_packets tcp_dropped_conns tcp_retransmit +LSRCFILES = $(CONFIGS) + +default default_pcp setup: + +install install_pcp: + $(INSTALL) -m 755 -d $(TESTDIR) + $(INSTALL) -m 644 $(CONFIGS) $(TESTDIR) + +include $(BUILDRULES) diff --git a/qa/pconf/network/interface_bytes b/qa/pconf/network/interface_bytes new file mode 100644 index 0000000..5f75885 --- /dev/null +++ b/qa/pconf/network/interface_bytes @@ -0,0 +1,52 @@ +#pmieconf-rules 1 +# + +rule network.interface_bytes + default = "$rule$" + predicate = +"some_host ( + some_inst ( + network.interface.total.bytes $hosts$ $interfaces$ > + $threshold$ Kbytes/sec + ) +)" + enabled = no + version = 1 + help = +"For at least one network interface, the average transfer rate (in +and/or out) exceeded the threshold during the last sample interval."; + +string rule + default = "busy network interface (bytes)" + modify = no + display = no; + +double threshold + default = 500 + help = +"Threshold in units of Kbytes (in or out) per second per interface. +A tolerable value depends on the type of network interface and +the packet size; some experimentation may be required to find an +accpetable threshold."; + +string interfaces + default = "" + help = +"May be set to a list of network interfaces for which the rule will +be evaluated, as a subset of configured network interfaces. Each +network interface should be enclosed in single quotes, prefixed by a +pound or hash (#) and multiple entries separated by white space, +e.g. #'ec0' #'ec2' +To discover the names of the network interfaces, execute the +following command on the target host: + pminfo -f network.interface.total.bytes +the (double) quoted instance names are the required network interface +names. +This is most useful to remove the loopback, SLIP and PPP interfaces +from the rule evaluations."; + +string action_expand + default = "%v:%i@%h" + display = no + modify = no; + diff --git a/qa/pconf/network/interface_packets b/qa/pconf/network/interface_packets new file mode 100644 index 0000000..b98198d --- /dev/null +++ b/qa/pconf/network/interface_packets @@ -0,0 +1,53 @@ +#pmieconf-rules 1 +# + +rule network.interface_packets + default = "$rule$" + predicate = +"some_host ( + some_inst ( + network.interface.total.packets $hosts$ $interfaces$ > + $threshold$ count/sec + ) +)" + enabled = no + version = 1 + help = +"For at least one network interface, the average rate of packet +transfers (in and/or out) exceeded the threshold during the last +sample interval."; + +string rule + default = "busy network interface (packets)" + modify = no + display = no; + +double threshold + default = 2000 + help = +"Threshold in units of packets (in or out) per second per interface. +A tolerable value depends on the type of network interface and +the packet size; some experimentation may be required to find +an accpetable threshold."; + +string interfaces + default ="" + help = +"May be set to a list of network interfaces for which the rule will +be evaluated, as a subset of configured network interfaces. Each +network interface should be enclosed in single quotes, prefixed by a +pound or hash (#) and multiple entries separated by white space, +e.g. #'ec0' #'ec2' +To discover the names of the network interfaces, execute the +following command on the target host: + pminfo -f network.interface.total.packets +the (double) quoted instance names are the required network interface +names. +This is most useful to remove the loopback, SLIP and PPP interfaces +from the rule evaluations."; + +string action_expand + default = "%v:%i@%h" + display = no + modify = no; + diff --git a/qa/pconf/network/tcp_dropped_conns b/qa/pconf/network/tcp_dropped_conns new file mode 100644 index 0000000..4b03184 --- /dev/null +++ b/qa/pconf/network/tcp_dropped_conns @@ -0,0 +1,42 @@ +#pmieconf-rules 1 +# + +rule network.tcp_dropped_conns + default = "$rule$" + predicate = +"some_host ( + ( 100 * ( network.tcp.drops $hosts$ + + network.tcp.conndrops $hosts$ + + network.tcp.timeoutdrop $hosts$ ) / + network.tcp.connects $hosts$ ) > $threshold$ && + network.tcp.connects $hosts$ > 20 count/minute +)" + enabled = no + version = 1 + help = +"There is some TCP connection activity (at least 20 connections +per minute) and the average ratio of TCP dropped connections to +successful connections exceeds threshold percent during the last +sample interval. +High drop rates indicate either network congestion (check the packet +retransmission rate) or an application like a Web browser that is +prone to terminating TCP connections prematurely, perhaps due to +sluggish response or user impatience."; + +string rule + default = "high number of dropped TCP connections" + modify = no + display = no; + +percent threshold + default = 20 + help = +"Maximum acceptable percentage of dropped TCP connections per new +TCP connection, in the range 0 (not expecting any connections to be +dropped) to 100 (expect most connections to be dropped)."; + +string action_expand + default = "%v%@%h" + display = no + modify = no; + diff --git a/qa/pconf/network/tcp_retransmit b/qa/pconf/network/tcp_retransmit new file mode 100644 index 0000000..0c14119 --- /dev/null +++ b/qa/pconf/network/tcp_retransmit @@ -0,0 +1,39 @@ +#pmieconf-rules 1 +# + +rule network.tcp_retransmit + default = "$rule$" + predicate = +"some_host ( + ( 100 * ( network.tcp.sndrexmitpack $hosts$ + + network.tcp.rexmttimeo $hosts$ ) / + network.tcp.sndpack $hosts$ ) > $threshold$ && + network.tcp.sndpack $hosts$ > 100 count/second +)" + enabled = no + version = 1 + help = +"There is some network output activity (at least 100 TCP packets per +second) and the average ratio of retransmitted TCP packets to output +TCP packets exceeds threshold percent during the last sample +interval. +High retransmission rates are suggestive of network congestion, or +long latency between the end-points of the TCP connections."; + +string rule + default = "high number of TCP packet retransmissions" + modify = no + display = no; + +percent threshold + default = 20 + help = +"Maximum acceptable percentage of retransmiited TCP packets per TCP +output packet, in the range 0 (not expecting any retransmission) to +100 (chronic saturation on the network)."; + +string action_expand + default = "%v%@%h" + display = no + modify = no; + |