summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xmunin/postgres-WAL-traffic50
1 files changed, 50 insertions, 0 deletions
diff --git a/munin/postgres-WAL-traffic b/munin/postgres-WAL-traffic
new file mode 100755
index 0000000..4fc78c7
--- /dev/null
+++ b/munin/postgres-WAL-traffic
@@ -0,0 +1,50 @@
+#!/bin/bash
+
+# Copyright Peter Palfrader <peter@palfrader.org>
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+if [ "$1" = "autoconf" ]; then
+ echo yes
+ exit 0
+fi
+
+if [ "$1" = "config" ]; then
+ echo 'graph_title Postgres WAL Traffic'
+ echo 'graph_args -l 0'
+ echo 'graph_vlabel bytes/min'
+ echo 'graph_info This graph shows amount of transaction log traffic'
+ echo 'walt.label WAL Traffic'
+ echo 'walt.cdef walt,60,*'
+ echo 'walt.type DERIVE'
+ echo 'walt.draw AREA'
+ exit 0
+fi
+
+
+INFO=`psql -p 5433 --no-align --command 'SELECT * FROM pg_xlogfile_name_offset(pg_current_xlog_insert_location())' --field-separator ' ' --quiet | tail -n2 | head -n1`
+
+file=`echo "$INFO" | awk '{print $1}'`
+offset=`echo "$INFO" | awk '{print $2}'`
+
+serial=`echo "$file" | cut -b 9- | sed -e s/^0*/0x/`
+
+bytes=$(( serial * 16*1024*1024 + offset ))
+echo echo "walt.value $bytes"