forked from netdata/netdata
-
Notifications
You must be signed in to change notification settings - Fork 0
/
airsearches.chart.sh
executable file
·91 lines (73 loc) · 2.18 KB
/
airsearches.chart.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#!/bin/sh
airsearches_url=
airsearches_cmds=
airsearches_update_every=15
airsearches_get() {
wget 2>/dev/null -O - "$airsearches_url" |\
sed -e "s|<br />|\n|g" -e "s|: |=|g" -e "s| \+|_|g" -e "s/^/airsearches_/g" |\
tr "[A-Z]\.\!@#\$%^&*()_+\-" "[a-z]_____________" |\
egrep "^airsearches_[a-z0-9_]+=[0-9]+$"
}
airsearches_check() {
# make sure we have all the commands we need
require_cmd wget || return 1
# make sure we are configured
if [ -z "$airsearches_url" ]
then
echo >&2 "$PROGRAM_NAME: airsearches: not configured. Please set airsearches_url='url' in $confd/airsearches.conf"
return 1
fi
# check once if the url works
wget 2>/dev/null -O /dev/null "$airsearches_url"
if [ ! $? -eq 0 ]
then
echo >&2 "$PROGRAM_NAME: airsearches: cannot fetch the url: $airsearches_url. Please set airsearches_url='url' in $confd/airsearches.conf"
return 1
fi
# if the admin did not give any commands
# find the available ones
if [ -z "$airsearches_cmds" ]
then
airsearches_cmds="$(airsearches_get | cut -d '=' -f 1 | sed "s/^airsearches_//g" | sort -u)"
echo
fi
# did we find any commands?
if [ -z "$airsearches_cmds" ]
then
echo >&2 "$PROGRAM_NAME: airsearches: cannot find command list automatically. Please set airsearches_cmds='...' in $confd/airsearches.conf"
return 1
fi
# ok we can do it
return 0
}
airsearches_create() {
[ -z "$airsearches_cmds" ] && return 1
# create the charts
local x=
echo "CHART airsearches.affiliates '' 'Air Searches per affiliate' 'requests / min' airsearches '' stacked 20000 $airsearches_update_every"
for x in $airsearches_cmds
do
echo "DIMENSION $x '' incremental 60 1"
done
return 0
}
airsearches_update() {
# the first argument to this function is the microseconds since last update
# pass this parameter to the BEGIN statement (see bellow).
# do all the work to collect / calculate the values
# for each dimension
# remember: KEEP IT SIMPLE AND SHORT
# get the values from airsearches
eval "$(airsearches_get)"
# write the result of the work.
local x=
echo "BEGIN airsearches.affiliates $1"
for x in $airsearches_cmds
do
eval "v=\$airsearches_$x"
echo "SET $x = $v"
done
echo "END"
airsearches_dt=0
return 0
}