forked from sourcegraph/sourcegraph-public-snapshot
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathprometheus.sh
More file actions
executable file
·59 lines (45 loc) · 1.54 KB
/
prometheus.sh
File metadata and controls
executable file
·59 lines (45 loc) · 1.54 KB
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
#!/usr/bin/env bash
# Description: Prometheus collects metrics and aggregates them into graphs.
#
set -euf -o pipefail
pushd "$(dirname "${BASH_SOURCE[0]}")/.." > /dev/null
CONFIG_DIR="$(pwd)/docker-images/prometheus/config"
PROMETHEUS_DISK="${HOME}/.sourcegraph-dev/data/prometheus"
IMAGE=sourcegraph/prometheus:10.0.10@sha256:4d73d99f3b18d8e4e09f63671c51eabcba956e357ab33d682de8cf1540e3b863
CONTAINER=prometheus
CID_FILE="${PROMETHEUS_DISK}/prometheus.cid"
mkdir -p ${PROMETHEUS_DISK}/logs
rm -f ${CID_FILE}
function finish {
if test -f ${CID_FILE}; then
echo 'trapped CTRL-C: stopping docker prometheus container'
docker stop $(cat ${CID_FILE})
rm -f ${CID_FILE}
fi
rm -f ${CONFIG_DIR}/prometheus_targets.yml
docker rm -f $CONTAINER
}
trap finish EXIT
NET_ARG=""
PROM_TARGETS="dev/prometheus/all/prometheus_targets.yml"
if [[ "$OSTYPE" == "linux-gnu" ]]; then
NET_ARG="--net=host"
PROM_TARGETS="dev/prometheus/linux/prometheus_targets.yml"
fi
cp ${PROM_TARGETS} ${CONFIG_DIR}/prometheus_targets.yml
docker inspect $CONTAINER > /dev/null 2>&1 && docker rm -f $CONTAINER
# Generate Grafana dashboards
pushd observability
DEV=true RELOAD=false go generate
popd
docker run --rm ${NET_ARG} --cidfile ${CID_FILE} \
--name=prometheus \
--cpus=1 \
--memory=4g \
--user=$UID \
-p 0.0.0.0:9090:9090 \
-v ${PROMETHEUS_DISK}:/prometheus \
-v ${CONFIG_DIR}:/sg_prometheus_add_ons \
-e PROMETHEUS_ADDITIONAL_FLAGS=--web.enable-lifecycle \
${IMAGE} >> ${PROMETHEUS_DISK}/logs/prometheus.log 2>&1 &
wait $!