Skip to content

Commit 48abdf1

Browse files
Cyber-SiKucaoxianfei1
authored andcommitted
[feat]playbook memcached add exporter
Signed-off-by: Cyber-SiKu <[email protected]>
1 parent 279c590 commit 48abdf1

File tree

5 files changed

+88
-7
lines changed

5 files changed

+88
-7
lines changed

playbook/memcached/hosts.yaml

+4
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,10 @@ hosts:
1212
- SUDO_ALIAS=sudo
1313
- ENGINE=docker
1414
- IMAGE=memcached:1.6.17
15+
- EXPORTER_IMAGE=quay.io/prometheus/memcached-exporter:v0.13.0
1516
- LISTEN=10.0.1.1
1617
- PORT=11211
18+
- EXPORTER_PORT=9150
1719
- USER=root
1820
- MEMORY_LIMIT=32768 # item memory in megabytes
1921
- MAX_ITEM_SIZE=8m # adjusts max item size (default: 1m, min: 1k, max: 1024m)
@@ -33,6 +35,7 @@ hosts:
3335
- IMAGE=memcached:1.6.17
3436
- LISTEN=10.0.1.2
3537
- PORT=11211
38+
- EXPORTER_PORT=9150
3639
- USER=root
3740
- MEMORY_LIMIT=32768 # item memory in megabytes
3841
- MAX_ITEM_SIZE=8m # adjusts max item size (default: 1m, min: 1k, max: 1024m)
@@ -52,6 +55,7 @@ hosts:
5255
- IMAGE=memcached:1.6.17
5356
- LISTEN=10.0.1.3
5457
- PORT=11211
58+
- EXPORTER_PORT=9150
5559
- USER=root
5660
- MEMORY_LIMIT=32768 # item memory in megabytes
5761
- MAX_ITEM_SIZE=8m # adjusts max item size (default: 1m, min: 1k, max: 1024m)

playbook/memcached/scripts/clean.sh

+16
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#!/usr/bin/env bash
22

33
g_container_name="memcached-"${PORT}
4+
g_expoter_container_name="memcached-exporter-"${EXPORTER_PORT}
45
g_docker_cmd="${SUDO_ALIAS} ${ENGINE}"
56
g_rm_cmd="${SUDO_ALIAS} rm -rf"
67

@@ -23,6 +24,13 @@ precheck() {
2324
die "container [${g_container_name}] not exists!!!\n"
2425
exit 1
2526
fi
27+
if [ "${EXPORTER_PORT}" ];then
28+
container_id=`${g_docker_cmd} ps --all --format "{{.ID}}" --filter name=${g_expoter_container_name}`
29+
if [ -z ${container_id} ]; then
30+
die "container [${g_expoter_container_name}] not exists!!!\n"
31+
exit 1
32+
fi
33+
fi
2634
}
2735

2836
stop_container() {
@@ -32,6 +40,14 @@ stop_container() {
3240
exit 1
3341
fi
3442
success "rm container[${g_container_name}]\n"
43+
if [ "${EXPORTER_PORT}" ];then
44+
msg=`${g_docker_cmd} rm ${g_expoter_container_name}`
45+
if [ $? -ne 0 ];then
46+
die "${msg}\n"
47+
exit 1
48+
fi
49+
success "rm container[${g_expoter_container_name}]\n"
50+
fi
3551
}
3652

3753
rm_cachefile() {

playbook/memcached/scripts/deploy.sh

+38-4
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
#!/usr/bin/env bash
22

33
g_container_name="memcached-"${PORT}
4+
g_expoter_container_name="memcached-exporter-"${EXPORTER_PORT}
45
g_start_args=""
6+
g_expoter_start_args=""
57
g_docker_cmd="${SUDO_ALIAS} ${ENGINE}"
68
g_lsof_cmd="${SUDO_ALIAS} lsof"
79
g_rm_cmd="${SUDO_ALIAS} rm -rf"
@@ -28,7 +30,21 @@ precheck() {
2830
container_id=`${g_docker_cmd} ps --format "{{.ID}}" --filter name=${g_container_name} --all`
2931
if [ "${container_id}" ]; then
3032
success "container [${g_container_name}] already exists, skip\n"
31-
exit 0
33+
exit 1
34+
fi
35+
36+
if [ "${EXPORTER_PORT}" ];then
37+
container_id=`${g_docker_cmd} ps --format "{{.ID}}" --filter name=${g_expoter_container_name} --all`
38+
if [ "${container_id}" ]; then
39+
success "container [${g_expoter_container_name}] already exists, skip\n"
40+
exit 1
41+
fi
42+
43+
${g_lsof_cmd} -i:${EXPORTER_PORT} >& /dev/null
44+
if [ $? -eq 0 ];then
45+
die "port[${EXPORTER_PORT}] is in use!\n"
46+
exit 1
47+
fi
3248
fi
3349

3450
# check port
@@ -79,14 +95,25 @@ init() {
7995
if [ "${VERBOSE}" ];then
8096
g_start_args="${g_start_args} -${VERBOSE}"
8197
fi
98+
99+
100+
if [ "${EXPORTER_PORT}" ];then
101+
g_expoter_start_args="${g_expoter_start_args} --memcached.address=${LISTEN}:${PORT}"
102+
g_expoter_start_args="${g_expoter_start_args} --web.listen-address=${LISTEN}:${EXPORTER_PORT}"
103+
fi
82104
}
83105

84106
create_container() {
85-
success "create container [${g_container_name}]\n"
86107
${g_docker_cmd} create --name ${g_container_name} ${g_user} --network host ${g_volume_bind} ${IMAGE} memcached ${g_start_args} >& /dev/null
87-
88-
success "start container [${g_container_name}]\n"
108+
success "create container [${g_container_name}]\n"
109+
if [ "${EXPORTER_PORT}" ];then
110+
${g_docker_cmd} create --name ${g_expoter_container_name} --network host ${EXPORTER_IMAGE} ${g_expoter_start_args} >& /dev/null
111+
success "create container [${g_container_name}]\n"
112+
fi
89113
${g_docker_cmd} start ${g_container_name} >& /dev/null
114+
success "start container [${g_container_name}]\n"
115+
${g_docker_cmd} start ${g_expoter_container_name} >& /dev/null
116+
success "start container [${g_expoter_container_name}]\n"
90117

91118
success "wait 3 seconds, check container status...\n"
92119
sleep 3
@@ -95,14 +122,21 @@ create_container() {
95122
if [ ${g_status} != "running" ]; then
96123
exit 1
97124
fi
125+
if [ "${EXPORTER_PORT}" ];then
126+
if [ ${g_expoter_status} != "running" ]; then
127+
exit 1
128+
fi
129+
fi
98130
}
99131

100132
get_status_container() {
101133
g_status=`${g_docker_cmd} inspect --format='{{.State.Status}}' ${g_container_name}`
134+
g_expoter_status=`${g_docker_cmd} inspect --format='{{.State.Status}}' ${g_expoter_container_name}`
102135
}
103136

104137
show_info_container() {
105138
${g_docker_cmd} ps --all --filter "name=${g_container_name}" --format="table {{.ID}}\t{{.Names}}\t{{.Status}}"
139+
${g_docker_cmd} ps --all --filter "name=${g_expoter_container_name}" --format="table {{.ID}}\t{{.Names}}\t{{.Status}}"
106140
}
107141

108142
precheck

playbook/memcached/scripts/status.sh

+18-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
#!/usr/bin/env bash
22

33
g_container_name="memcached-"${PORT}
4+
g_expoter_container_name="memcached-exporter-"${EXPORTER_PORT}
45
g_start_args=""
56
g_docker_cmd="${SUDO_ALIAS} ${ENGINE}"
67
g_volume_bind=""
78
g_container_id=""
8-
g_status="running"
99

1010
function msg() {
1111
printf '%b' "$1" >&2
@@ -26,20 +26,35 @@ precheck() {
2626
success "container [${g_container_name}] not exists!!!"
2727
exit 1
2828
fi
29+
if [ "${EXPORTER_PORT}" ];then
30+
g_container_id=`${g_docker_cmd} ps --all --format "{{.ID}}" --filter name=${g_expoter_container_name}`
31+
if [ -z ${g_container_id} ]; then
32+
success "container [${g_expoter_container_name}] not exists!!!"
33+
exit 1
34+
fi
35+
fi
2936
}
3037

3138
show_info_container() {
3239
${g_docker_cmd} ps --all --filter "name=${g_container_name}" --format="table {{.ID}}\t{{.Names}}\t{{.Status}}"
40+
${g_docker_cmd} ps --all --filter "name=${g_expoter_container_name}" --format="table {{.ID}}\t{{.Names}}\t{{.Status}}"
3341
}
3442

3543
show_ip_port() {
3644
printf "memcached addr:\t%s:%d\n" ${LISTEN} ${PORT}
45+
printf "memcached-expoter addr:\t%s:%d\n" ${LISTEN} ${EXPORTER_PORT}
3746
}
3847

3948
get_status_container() {
40-
g_status=`${g_docker_cmd} inspect --format='{{.State.Status}}' ${g_container_name}`
41-
if [ ${g_status} != "running" ]; then
49+
status=`${g_docker_cmd} inspect --format='{{.State.Status}}' ${g_container_name}`
50+
if [ ${status} != "running" ]; then
51+
exit 1
52+
fi
53+
if [ "${EXPORTER_PORT}" ];then
54+
status=`${g_docker_cmd} inspect --format='{{.State.Status}}' ${g_expoter_container_name}`
55+
if [ ${status} != "running" ]; then
4256
exit 1
57+
fi
4358
fi
4459
}
4560

playbook/memcached/scripts/stop.sh

+12
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#!/usr/bin/env bash
22

33
g_container_name="memcached-"${PORT}
4+
g_expoter_container_name="memcached-exporter-"${EXPORTER_PORT}
45
g_docker_cmd="${SUDO_ALIAS} ${ENGINE}"
56

67
function msg() {
@@ -22,11 +23,22 @@ precheck() {
2223
die "container [${g_container_name}] not exists!!!\n"
2324
exit 1
2425
fi
26+
if [ "${EXPORTER_PORT}" ];then
27+
container_id=`${g_docker_cmd} ps --all --format "{{.ID}}" --filter name=${g_expoter_container_name}`
28+
if [ -z ${container_id} ]; then
29+
die "container [${g_expoter_container_name}] not exists!!!\n"
30+
exit 1
31+
fi
32+
fi
2533
}
2634

2735
stop_container() {
2836
${g_docker_cmd} stop ${g_container_name} >& /dev/null
2937
success "stop container[${g_container_name}]\n"
38+
if [ "${EXPORTER_PORT}" ];then
39+
${g_docker_cmd} stop ${g_expoter_container_name} >& /dev/null
40+
success "stop container[${g_expoter_container_name}]\n"
41+
fi
3042
}
3143

3244
precheck

0 commit comments

Comments
 (0)