diff options
Diffstat (limited to 'src/pmchart/views')
28 files changed, 456 insertions, 0 deletions
diff --git a/src/pmchart/views/Apache b/src/pmchart/views/Apache new file mode 100644 index 0000000..5df9062 --- /dev/null +++ b/src/pmchart/views/Apache @@ -0,0 +1,8 @@ +#kmchart +version 1 + +chart title "Apache Hit Rate [%h]" style plot legend off + plot metric apache.total_accesses + +chart title "Apache Data Rate [%h]" style plot legend off + plot metric apache.total_kbytes diff --git a/src/pmchart/views/ApacheServer b/src/pmchart/views/ApacheServer new file mode 100644 index 0000000..10b01b9 --- /dev/null +++ b/src/pmchart/views/ApacheServer @@ -0,0 +1,38 @@ +#kmchart +version 1 + +# CPU view +chart title "CPU Utilization [%h]" style utilization + plot legend "User" color #2d2de2 metric kernel.all.cpu.user + plot legend "Sys" color #e71717 metric kernel.all.cpu.sys + optional-plot legend "Nice" color #c2f3c2 metric kernel.all.cpu.nice + optional-plot legend "Intr" color #cdcd00 metric kernel.all.cpu.intr + optional-plot legend "Wait" color #00cdcd metric kernel.all.cpu.wait.total + optional-plot legend "Steal" color #fba2f5 metric kernel.all.cpu.steal + plot legend "Idle" color #16d816 metric kernel.all.cpu.idle + +chart title "Average Load [%h]" style plot antialiasing off + plot legend "1 min" metric kernel.all.load instance "1 minute" + plot legend "# cpus" metric hinv.ncpu + +# Netbytes view +chart title "Network Interface Bytes [%h]" style stacking + plot legend "in %i" metric network.interface.in.bytes not-matching "^lo|^sl|^ppp|^sit|^gif|^stf|^wlt|^vmnet|^MS TCP Loopback interface" + plot legend "out %i" metric network.interface.out.bytes not-matching "^lo|^sl|^ppp|^sit|^gif|^stf|^wlt|^vmnet|^MS TCP Loopback interface" + +chart title "Busy/Idle servers" style plot antialiasing off + plot legend "Busy" metric apache.busy_servers + plot legend "Idle" metric apache.idle_servers + +chart style stacking + plot legend "Closing" color #ffff00 metric apache.sb_closing + plot legend "DNS" color #0000ff metric apache.sb_dns_lookup + plot legend "Finishing" color #ff0000 metric apache.sb_finishing + plot legend "Cleanup" color #008000 metric apache.sb_idle_cleanup + plot legend "Keepalive" color #ee82ee metric apache.sb_keepalive + plot legend "Logging" color #aa5500 metric apache.sb_logging + plot legend "Open" color #666666 metric apache.sb_open_slot + plot legend "Reading" color #aaff00 metric apache.sb_reading + plot legend "Starting" color #aa00ff metric apache.sb_starting + plot legend "Waiting" color #aaaa7f metric apache.sb_waiting + plot legend "Writing" color #ffff00 metric apache.sb_writing_reply diff --git a/src/pmchart/views/BusyCPU b/src/pmchart/views/BusyCPU new file mode 100755 index 0000000..90903da --- /dev/null +++ b/src/pmchart/views/BusyCPU @@ -0,0 +1,164 @@ +#!/bin/sh +# +# Dynamic kmchart view for the most busy current processes ... note +# this is a snapshot at the time the view is instantiated and does +# not track the busiest processes over time +# +# Busy here means CPU consumption +# + +# a token attempt to make this general +. /etc/pcp.env + +tmp=`mktemp -d /var/tmp/pcp.XXXXXXXXX` || exit 1 +trap "rm -rf $tmp; exit" 0 1 2 3 15 + +# bad stuff ... +# +_err() +{ + echo "Failed to fetch user mode CPU cycles metrics" >$tmp/msg + echo >>$tmp/msg + for f in $tmp/err.* + do + cat $f >>$tmp/msg + done + echo >>$tmp/msg + echo "Sorry, there is nothing to display." >>$tmp/msg + pmconfirm >/dev/null \ + -header "pmchart view construction failure" \ + -file $tmp/msg \ + -icon error \ + -B "OK" + exit +} + +# find top 10 consumers of user mode CPU cycles and generate a plot for each +# +# top(1) is ill-suited for use in a script, so we have to emulate this +# using PCP tools as follows: +# 1. get cummulative user mode CPU cycles for all processes +# 2. sleep 5 seconds +# 3. get cummulative user mode CPU cycles for all processes +# 4. compute delta user mode CPU cycles from 1. and 2. +# 5. sort and select top 10 processes +# + +# use $tmp/sed to remove this shell and its children from +# the list of busy processses +# +echo "/\[0*$$ /d" >$tmp/sed + +# progress notifier while we do our job +# +pmquery >/dev/null 2>&1 \ + -timeout 5 \ + -header "kmchart view construction" \ + -t "Finding top CPU burners, please wait 5 seconds ..." & +query=$! +echo "/\[0*$query /d" >>$tmp/sed + +# deal with alternative metric names ... +# +i=0 +fail=true +for metric in proc.psinfo.utime proc.psusage.utime +do + nval=`pmprobe -if $* $metric 2>&1 \ + | tee $tmp/err.$i \ + | $PCP_AWK_PROG '{print $2}'` + if [ "$nval" -gt 0 ] + then + fail=false + break + fi + i=`expr $i + 1` +done +if $fail +then + _err + #NOTREACHED +fi + +# note arguments from pmchart are nothing or -h host or -a archive +# +if pminfo -F $* $metric >$tmp/1 2>$tmp/err.a +then + sleep 5 + if pminfo -F $* $metric >$tmp/2 2>$tmp/err.b + then + : + else + _err + #NOTREACHED + fi +else + _err + #NOTREACHED +fi + +# get pid and user mode CPU cycles usage from lines like +# inst [8072 or "08072 rlogin gonzo.melbourne "] value 28 +# and turn them into this +# $tmp/1.list +# 8072 28 +# $tmp/2.list +# 8072 28 08072 rlogin gonzo.melbourne +# + +sed -f $tmp/sed $tmp/1 \ +| sed -n -e '/inst \[/{ +s/.*inst \[// +s/ or .* \([0-9][0-9]*\)$/ \1/p +}' \ +| sort >$tmp/1.list + +sed -n -e '/inst \[/{ +s/.*inst \[// +s/or "\(.*\)".* \([0-9][0-9]*\)$/\2 \1/p +}' $tmp/2 \ +| sort >$tmp/2.list + +#DEBUG# echo "First list ..." >/tmp/busy.debug +#DEBUG# cat $tmp/1.list >>/tmp/busy.debug +#DEBUG# echo "Second list ..." >>/tmp/busy.debug +#DEBUG# cat $tmp/2.list >>/tmp/busy.debug + +join $tmp/1.list $tmp/2.list \ +| $PCP_AWK_PROG ' +$3 > $2 { # this process has consumed some user mode CPU cycles + printf "%d",$3-$2 + for (i = 4; i <= NF; i++) printf " %s",$i + print"" + }' >$tmp/found + +if [ ! -s $tmp/found ] +then + # no processes qualify + # + pmconfirm >/dev/null \ + -header "pmchart view construction failure" \ + -t "No qualifying processes were found!" \ + -icon warning \ + -B "OK" + exit +fi + +# chart preamble +# +cat <<End-of-File +#pmchart +Version 2.0 host dynamic + +Chart Title "Top user mode CPU burners at `date +'%a %b %e %R'`" Style stacking +End-of-File + +# plot specifications, one per process +# + +sort -nr +0 -1 $tmp/found \ +| sed 10q \ +| while read cpuburn inst +do + echo " Plot Color #-cycle Host * Metric $metric Instance $inst" +done diff --git a/src/pmchart/views/CPU b/src/pmchart/views/CPU new file mode 100644 index 0000000..8724505 --- /dev/null +++ b/src/pmchart/views/CPU @@ -0,0 +1,11 @@ +#kmchart +version 1 + +chart title "CPU Utilization [%h]" style utilization + plot legend "User" color #2d2de2 metric kernel.all.cpu.user + plot legend "Kernel" color #e71717 metric kernel.all.cpu.sys + optional-plot legend "Nice" color #c2f3c2 metric kernel.all.cpu.nice + optional-plot legend "Intr" color #cdcd00 metric kernel.all.cpu.intr + optional-plot legend "Wait" color #00cdcd metric kernel.all.cpu.wait.total + optional-plot legend "Steal" color #fba2f5 metric kernel.all.cpu.steal + plot legend "Idle" color #16d816 metric kernel.all.cpu.idle diff --git a/src/pmchart/views/Cisco b/src/pmchart/views/Cisco new file mode 100644 index 0000000..fae3416 --- /dev/null +++ b/src/pmchart/views/Cisco @@ -0,0 +1,6 @@ +#kmchart +version 1 + +chart title "Cisco Data Rate [%h]" style plot + plot legend "In %i" metric cisco.rate_in + plot legend "Out %i" metric cisco.rate_out diff --git a/src/pmchart/views/Disk b/src/pmchart/views/Disk new file mode 100644 index 0000000..a6da4d1 --- /dev/null +++ b/src/pmchart/views/Disk @@ -0,0 +1,6 @@ +#kmchart +version 1 + +chart title "IOPS over all Disks [%h]" style stacking + plot legend "Reads" color yellow metric disk.all.read + plot legend "Writes" color violet metric disk.all.write diff --git a/src/pmchart/views/Diskbytes b/src/pmchart/views/Diskbytes new file mode 100644 index 0000000..4dcadbe --- /dev/null +++ b/src/pmchart/views/Diskbytes @@ -0,0 +1,6 @@ +#kmchart +version 1 + +chart title "Disk Throughput [%h]" style stacking + plot legend "Read rate" color yellow metric disk.all.read_bytes + plot legend "Write rate" color violet metric disk.all.write_bytes diff --git a/src/pmchart/views/ElasticsearchServer b/src/pmchart/views/ElasticsearchServer new file mode 100644 index 0000000..4372c8a --- /dev/null +++ b/src/pmchart/views/ElasticsearchServer @@ -0,0 +1,29 @@ +#kmchart +version 1 + +# CPU view +chart title "CPU Utilization [%h]" style utilization + plot legend "User" color #2d2de2 metric kernel.all.cpu.user + plot legend "Sys" color #e71717 metric kernel.all.cpu.sys + optional-plot legend "Nice" color #c2f3c2 metric kernel.all.cpu.nice + optional-plot legend "Intr" color #cdcd00 metric kernel.all.cpu.intr + optional-plot legend "Wait" color #00cdcd metric kernel.all.cpu.wait.total + optional-plot legend "Steal" color #fba2f5 metric kernel.all.cpu.steal + plot legend "Idle" color #16d816 metric kernel.all.cpu.idle + +chart title "Average Load [%h]" style plot antialiasing off + plot legend "1 min" metric kernel.all.load instance "1 minute" + plot legend "# cpus" metric hinv.ncpu + +# Query/Fetch per second +chart title "Searches" style plot antialiasing off + plot legend "Query" metric elasticsearch.search.all.total.search.query_total + plot legend "Fetch" metric elasticsearch.search.all.total.search.fetch_total + +# CPU usage per node +chart title "CPU %" style plot antialiasing off + plot legend "cpu %i" metric elasticsearch.nodes.process.cpu.percent + +# Doc count per node +chart title "Document" style plot antialiasing off + plot legend "docs %i" metric elasticsearch.nodes.indices.docs.count
\ No newline at end of file diff --git a/src/pmchart/views/Filesystem b/src/pmchart/views/Filesystem new file mode 100644 index 0000000..34c587c --- /dev/null +++ b/src/pmchart/views/Filesystem @@ -0,0 +1,5 @@ +#kmchart +version 1 + +chart title "File System Fullness % [%h]" style plot + plot legend "%i" metric filesys.full not-matching "/dev/shm|/dev$" diff --git a/src/pmchart/views/GNUmakefile b/src/pmchart/views/GNUmakefile new file mode 100644 index 0000000..1d6f3f3 --- /dev/null +++ b/src/pmchart/views/GNUmakefile @@ -0,0 +1,21 @@ +TOPDIR = ../../.. +include $(TOPDIR)/src/include/builddefs + +VIEWDIR = $(PCP_VAR_DIR)/config/pmchart +VIEWS = CPU Disk Diskbytes Loadavg NFS2 NFS3 Filesystem Memory Netbytes \ + Netpackets PMCD Syscalls Paging Overview Schemes Sockets Swap \ + ApacheServer ElasticsearchServer vCPU MemAvailable + +LSRCFILES = $(VIEWS) + +default build-me: + +include $(BUILDRULES) + +install: default + $(INSTALL) -m 755 -d $(VIEWDIR) + $(INSTALL) -m 0444 $(VIEWS) $(VIEWDIR) + +default_pcp: default + +install_pcp: install diff --git a/src/pmchart/views/Loadavg b/src/pmchart/views/Loadavg new file mode 100644 index 0000000..8655205 --- /dev/null +++ b/src/pmchart/views/Loadavg @@ -0,0 +1,7 @@ +#kmchart +version 1 + +chart title "Load Average [%h]" style plot antialiasing off + plot title "1 min" metric kernel.all.load instance "1 minute" + plot title "5 min" metric kernel.all.load instance "5 minute" + plot title "15 min"metric kernel.all.load instance "15 minute" diff --git a/src/pmchart/views/MemAvailable b/src/pmchart/views/MemAvailable new file mode 100644 index 0000000..718a95b --- /dev/null +++ b/src/pmchart/views/MemAvailable @@ -0,0 +1,6 @@ +#kmchart +version 1 + +chart title "Memory Available [%h]" style area + optional-plot color #00ff00 metric mem.util.available + plot color #3549ff metric mem.physmem diff --git a/src/pmchart/views/Memory b/src/pmchart/views/Memory new file mode 100644 index 0000000..3c54ad6 --- /dev/null +++ b/src/pmchart/views/Memory @@ -0,0 +1,10 @@ +#kmchart +version 1 + +chart title "Real Memory Usage [%h]" style stacking + # Linux + optional-plot color #9cffab metric mem.util.cached + optional-plot color #fe68ad metric mem.util.bufmem + optional-plot color #ffae2c metric mem.util.other + # all + plot color #00ff00 metric mem.util.free diff --git a/src/pmchart/views/NFS2 b/src/pmchart/views/NFS2 new file mode 100644 index 0000000..1d442a7 --- /dev/null +++ b/src/pmchart/views/NFS2 @@ -0,0 +1,6 @@ +#kmchart +version 1 + +chart title "NFS2 Calls [%h]" style plot + plot legend "client" metric nfs.client.calls + plot legend "server" metric nfs.server.calls diff --git a/src/pmchart/views/NFS3 b/src/pmchart/views/NFS3 new file mode 100644 index 0000000..807935e --- /dev/null +++ b/src/pmchart/views/NFS3 @@ -0,0 +1,6 @@ +#kmchart +version 1 + +chart title "NFS3 Calls [%h]" style plot + plot legend "client" metric nfs3.client.calls + plot legend "server" metric nfs3.server.calls diff --git a/src/pmchart/views/Netbytes b/src/pmchart/views/Netbytes new file mode 100644 index 0000000..451faea --- /dev/null +++ b/src/pmchart/views/Netbytes @@ -0,0 +1,6 @@ +#kmchart +version 1 + +chart title "Network Interface Bytes [%h]" style stacking + plot legend "in %i" metric network.interface.in.bytes not-matching "^lo|^gif|^sl|^sit|^stf|^tun|^wlt|^virbr|^vnet|^vmnet|^MS TCP Loopback interface" + plot legend "out %i" metric network.interface.out.bytes not-matching "^lo|^gif|^sl|^sit|^stf|^tun|^wlt|^virbr|^vnet|^vmnet|^MS TCP Loopback interface" diff --git a/src/pmchart/views/Netpackets b/src/pmchart/views/Netpackets new file mode 100644 index 0000000..a492b55 --- /dev/null +++ b/src/pmchart/views/Netpackets @@ -0,0 +1,6 @@ +#kmchart +version 1 + +chart title "Network Interface Packets [%h]" style stacking + plot legend "in %i" metric network.interface.in.packets not-matching "^lo|^gif|^sl|^sit|^stf|^tun|^wlt|^virbr|^vnet|^vmnet|^MS TCP Loopback interface" + plot legend "out %i" metric network.interface.out.packets not-matching "^lo|^gif|^sl|^sit|^stf|^tun|^wlt|^virbr|^vnet|^vmnet|^MS TCP Loopback interface" diff --git a/src/pmchart/views/Overview b/src/pmchart/views/Overview new file mode 100644 index 0000000..a70ed40 --- /dev/null +++ b/src/pmchart/views/Overview @@ -0,0 +1,32 @@ +#kmchart +version 1 + +# CPU view +chart title "CPU Utilization [%h]" style utilization + plot legend "User" color #2d2de2 metric kernel.all.cpu.user + plot legend "Sys" color #e71717 metric kernel.all.cpu.sys + optional-plot legend "Nice" color #c2f3c2 metric kernel.all.cpu.nice + optional-plot legend "Intr" color #cdcd00 metric kernel.all.cpu.intr + optional-plot legend "Wait" color #00cdcd metric kernel.all.cpu.wait.total + optional-plot legend "Steal" color #fba2f5 metric kernel.all.cpu.steal + plot legend "Idle" color #16d816 metric kernel.all.cpu.idle + +chart title "Average Load [%h]" style plot antialiasing off + plot legend "1 min" metric kernel.all.load instance "1 minute" + plot legend "# cpus" metric hinv.ncpu + +# Disk view +chart title "IOPS over all Disks [%h]" style stacking + plot legend "Reads" color yellow metric disk.all.read + plot legend "Writes" color violet metric disk.all.write + +# Netbytes view +chart title "Network Interface Bytes [%h]" style stacking + plot legend "in %i" metric network.interface.in.bytes not-matching "^lo|^sl|^ppp|^sit|^gif|^stf|^wlt|^vmnet|^MS TCP Loopback interface" + plot legend "out %i" metric network.interface.out.bytes not-matching "^lo|^sl|^ppp|^sit|^gif|^stf|^wlt|^vmnet|^MS TCP Loopback interface" + +chart title "Real Memory Usage [%h]" style stacking + optional-plot color #9cffab metric mem.util.cached + optional-plot color #fe68ad metric mem.util.bufmem + optional-plot color #ffae2c metric mem.util.other + plot color #00ff00 metric mem.util.free diff --git a/src/pmchart/views/PMCD b/src/pmchart/views/PMCD new file mode 100644 index 0000000..bd82c56 --- /dev/null +++ b/src/pmchart/views/PMCD @@ -0,0 +1,14 @@ +#kmchart +version 1 + +chart title "Packets for PMCD [%h]" style stacking + plot legend "In" metric pmcd.pdu_in.total + plot legend "Out" metric pmcd.pdu_out.total + +chart title "CPU Time for PMCD and DSO PMDAs [%h]" style stacking + optional-plot legend "User" color #2d2de2 metric proc.psinfo.utime matching "[\\/](pmcd |pmcd$)" + optional-plot legend "Sys" color #e71717 metric proc.psinfo.stime matching "[\\/](pmcd |pmcd$)" + +chart title "CPU Time for Other PMDAs [%h]" style stacking legend off + optional-plot color #2d2de2 metric proc.psinfo.utime matching "[\\/]pmda[a-z]" + optional-plot color #e71717 metric proc.psinfo.stime matching "[\\/]pmda[a-z]" diff --git a/src/pmchart/views/Paging b/src/pmchart/views/Paging new file mode 100644 index 0000000..39a397c --- /dev/null +++ b/src/pmchart/views/Paging @@ -0,0 +1,6 @@ +#kmchart +version 1 + +chart title "VM Activity - Page Migrations [%h]" style plot + plot legend "Out" metric swap.pagesout + plot legend "In" metric swap.pagesin diff --git a/src/pmchart/views/Schemes b/src/pmchart/views/Schemes new file mode 100644 index 0000000..b4c98d3 --- /dev/null +++ b/src/pmchart/views/Schemes @@ -0,0 +1,6 @@ +#kmchart +version 1 +scheme Fire #f2b600 #ede200 #d21005 #e4d904 #f35241 +scheme Nature #b4ff3a #d2954e #069806 #8b5f07 #08ed00 +scheme Neon #ff34f9 #fffb00 #1df0ff #12ff01 #ffc800 +scheme Ocean #f5dd85 #aaf5cb #4790f5 #bdcfcc #12cfa0 diff --git a/src/pmchart/views/Sendmail b/src/pmchart/views/Sendmail new file mode 100644 index 0000000..faf1f59 --- /dev/null +++ b/src/pmchart/views/Sendmail @@ -0,0 +1,10 @@ +#kmchart +version 1 + +chart title "Sendmail Bytes [%h]" style plot + plot legend "Recv" color #137bfe metric sendmail.total.bytes_from + plot legend "Sent" color #fefa1a metric sendmail.total.bytes_to + +chart title "Sendmail Mail Items [%h]" style plot + plot legend "Recv" color #1e1cfe metric sendmail.total.msgs_from + plot legend "Sent" color #fe9913 metric sendmail.total.msgs_to diff --git a/src/pmchart/views/ShpingCPU b/src/pmchart/views/ShpingCPU new file mode 100644 index 0000000..a39e808 --- /dev/null +++ b/src/pmchart/views/ShpingCPU @@ -0,0 +1,8 @@ +#kmchart +version 1 + +chart title "User CPU Time for shping Commands [%h]" style plot + plot legend "%i" metric shping.time.cpu_usr + +chart title "System CPU Time for shping Commands [%h]" style plot + plot legend "%i" metric shping.time.cpu_sys diff --git a/src/pmchart/views/ShpingElapsed b/src/pmchart/views/ShpingElapsed new file mode 100644 index 0000000..b83d3c0 --- /dev/null +++ b/src/pmchart/views/ShpingElapsed @@ -0,0 +1,5 @@ +#kmchart +version 1 + +chart title "shping Response Time [%h]" style plot + plot legend "%i" metric shping.time.real diff --git a/src/pmchart/views/Sockets b/src/pmchart/views/Sockets new file mode 100644 index 0000000..177b3aa --- /dev/null +++ b/src/pmchart/views/Sockets @@ -0,0 +1,7 @@ +#kmchart +version 1 + +chart title "Sockets in Use [%h]" style plot + optional-plot legend "TCP" metric network.sockstat.tcp.inuse + optional-plot legend "UDP" metric network.sockstat.udp.inuse + optional-plot legend "Raw" metric network.sockstat.raw.inuse diff --git a/src/pmchart/views/Swap b/src/pmchart/views/Swap new file mode 100644 index 0000000..542636c --- /dev/null +++ b/src/pmchart/views/Swap @@ -0,0 +1,6 @@ +#kmchart +version 1 + +chart title "Logical Swap Allocation [%h]" style stacking + optional-plot legend "Free" color #16e116 metric swap.free + optional-plot legend "Used" color #e71717 metric swap.used diff --git a/src/pmchart/views/Syscalls b/src/pmchart/views/Syscalls new file mode 100644 index 0000000..bd260b3 --- /dev/null +++ b/src/pmchart/views/Syscalls @@ -0,0 +1,9 @@ +#kmchart +version 1 + +chart title "System Calls [%h]" style plot + optional-plot legend "All" metric kernel.all.syscall + optional-plot legend "exec" metric kernel.all.sysexec + optional-plot legend "fork" metric kernel.all.sysfork + optional-plot legend "read" metric kernel.all.sysread + optional-plot legend "write" metric kernel.all.syswrite diff --git a/src/pmchart/views/vCPU b/src/pmchart/views/vCPU new file mode 100644 index 0000000..a45680f --- /dev/null +++ b/src/pmchart/views/vCPU @@ -0,0 +1,12 @@ +#kmchart +version 1 + +chart title "CPU and Guest CPU Utilization [%h]" style utilization + plot legend "User" color #2d2de2 metric kernel.all.cpu.vuser + plot legend "Kernel" color #e71717 metric kernel.all.cpu.sys + optional-plot legend "Guest" color #666666 metric kernel.all.cpu.guest + optional-plot legend "Nice" color #c2f3c2 metric kernel.all.cpu.nice + optional-plot legend "Intr" color #cdcd00 metric kernel.all.cpu.intr + optional-plot legend "Wait" color #00cdcd metric kernel.all.cpu.wait.total + optional-plot legend "Steal" color #fba2f5 metric kernel.all.cpu.steal + plot legend "Idle" color #16d816 metric kernel.all.cpu.idle |