@cryptotaxi247 / netdata-1 / commits / cd2ccf252

postqueue charts

Costa Tsaousis (ktsaou) committed May 20, 2014 at 23:43 UTC cd2ccf2523630be775ed264fcc6c57a7ad35b64e
1 file changed +68
charts.d/postfix.chart.sh new
+68
@@ -0,0 +1,68 @@
1 +#!/bin/sh
2 +
3 +postfix_postqueue=
4 +
5 +postfix_check() {
6 + # this should return:
7 + # - 0 to enable the chart
8 + # - 1 to disable the chart
9 +
10 + # try to find the postqueue executable
11 + if [ -z "$postfix_postqueue" -o ! -x "$postfix_postqueue" ]
12 + then
13 + postfix_postqueue="`which postqueue 2>/dev/null`"
14 + if [ -z "$postfix_postqueue" -o ! -x "$postfix_postqueue" ]
15 + then
16 + local d=
17 + for d in /sbin /usr/sbin /usr/local/sbin
18 + do
19 + if [ -x "$d/postqueue" ]
20 + then
21 + postfix_postqueue="$d/postqueue"
22 + break
23 + fi
24 + done
25 + fi
26 + fi
27 +
28 + if [ -z "$postfix_postqueue" -o ! -x "$postfix_postqueue" ]
29 + then
30 + echo >&2 "Cannot find postqueue. Please set 'postfix_postqueue=/path/to/postqueue' in $confd/postfix.conf"
31 + return 1
32 + fi
33 +
34 + return 0
35 +}
36 +
37 +postfix_create() {
38 +cat <<EOF
39 +CHART postfix.qemails '' "Postfix Queue Emails" "emails" postfix postfix line 5000 $update_every
40 +DIMENSION emails '' absolute-no-interpolation 1 1
41 +CHART postfix.qsize '' "Postfix Queue Emails Size" "emails size in KB" postfix postfix area 5001 $update_every
42 +DIMENSION size '' absolute 1 1
43 +EOF
44 +
45 + return 0
46 +}
47 +
48 +postfix_update() {
49 + # do all the work to collect / calculate the values
50 + # for each dimension
51 + # remember: KEEP IT SIMPLE AND SHORT
52 +
53 + eval `$postfix_postqueue -p | grep "^--" | sed -e "s/-- \([0-9]\+\) Kbytes in \([0-9]\+\) Requests.$/local postfix_q_size=\1\nlocal postfix_q_emails=\2/g" | grep "^local postfix_q_"`
54 + test -z "$postfix_q_emails" && local postfix_q_emails=0
55 + test -z "$postfix_q_size" && local postfix_q_size=0
56 +
57 + # write the result of the work.
58 + cat <<VALUESEOF
59 +BEGIN postfix.qemails $1
60 +SET emails = $postfix_q_emails
61 +END
62 +BEGIN postfix.qsize $1
63 +SET size = $postfix_q_size
64 +END
65 +VALUESEOF
66 +
67 + return 0
68 +}