[__jitsi_meet] Simplify exporter logic and update it to 1.2.0
This uses the newly merged __single_binary_service and: - Fixes the bug where once added, the exporter could not be removed - Simplifies keeping it up to date Sponsored by: camilion.eu, eXO.cat
This commit is contained in:
parent
977b530dab
commit
0cff414884
2 changed files with 18 additions and 67 deletions
|
@ -1,7 +0,0 @@
|
||||||
#!/bin/sh -e
|
|
||||||
|
|
||||||
EXPORTER_VERSION_FILE="/usr/local/bin/.prometheus-jitsi-meet-exporter.cdist.version"
|
|
||||||
|
|
||||||
if [ -f "${EXPORTER_VERSION_FILE}" ]; then
|
|
||||||
cat "${EXPORTER_VERSION_FILE}"
|
|
||||||
fi
|
|
|
@ -1,7 +1,6 @@
|
||||||
#!/bin/sh -e
|
#!/bin/sh -e
|
||||||
|
|
||||||
os="$(cat "${__global}/explorer/os")"
|
os="$(cat "${__global}/explorer/os")"
|
||||||
init="$(cat "${__global}/explorer/init")"
|
|
||||||
case "${os}" in
|
case "${os}" in
|
||||||
devuan|debian)
|
devuan|debian)
|
||||||
;;
|
;;
|
||||||
|
@ -27,8 +26,6 @@ if [ -z "${TURN_SERVER}" ]; then
|
||||||
TURN_SERVER="${JITSI_HOST}"
|
TURN_SERVER="${JITSI_HOST}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
PROMETHEUS_JITSI_EXPORTER_IS_VERSION="$(cat "${__object}/explorer/prometheus-jitsi-meet-explorer-version")"
|
|
||||||
|
|
||||||
# The rest is loosely based on Jitsi's documentation
|
# The rest is loosely based on Jitsi's documentation
|
||||||
# https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-quickstart
|
# https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-quickstart
|
||||||
|
|
||||||
|
@ -203,65 +200,26 @@ export JITSI_HOST
|
||||||
"${__type}/files/jicofo.conf.sh" | \
|
"${__type}/files/jicofo.conf.sh" | \
|
||||||
__file /etc/jitsi/jicofo/jicofo.conf --mode 0444 --source '-'
|
__file /etc/jitsi/jicofo/jicofo.conf --mode 0444 --source '-'
|
||||||
|
|
||||||
|
|
||||||
# These two should be changed on new release
|
# These two should be changed on new release
|
||||||
PROMETHEUS_JITSI_EXPORTER_SHOULD_VERSION="1.1.5"
|
EXPORTER_VERSION="1.2.0"
|
||||||
PROMETHEUS_JITSI_EXPORTER_CHECKSUM="sha256:3ddf43a48d9a2f62be1bc6db9e7ba75d61994f9423e5c5b28be019f41f06f745"
|
EXPORTER_CHECKSUM="sha256:6377ffa7be0c7deb66545616add7245da96f8b7746d6712f41cfa9fe72c935ce"
|
||||||
PROMETHEUS_JITSI_EXPORTER_URL="https://github.com/systemli/prometheus-jitsi-meet-exporter/releases/download/${PROMETHEUS_JITSI_EXPORTER_SHOULD_VERSION}/prometheus-jitsi-meet-exporter-linux-amd64"
|
EXPORTER_URL="https://github.com/systemli/prometheus-jitsi-meet-exporter/releases/download/${EXPORTER_VERSION}/prometheus-jitsi-meet-exporter_${EXPORTER_VERSION}_linux_amd64.tar.gz"
|
||||||
PROMETHEUS_JITSI_EXPORTER_VERSION_FILE="/usr/local/bin/.prometheus-jitsi-meet-exporter.cdist.version"
|
if [ -f "${__object}/parameter/disable-prometheus-exporter" ]; then
|
||||||
if [ ! -f "${__object}/parameter/disable-prometheus-exporter" ]; then
|
EXPORTER_STATE="absent"
|
||||||
case "${init}" in
|
else
|
||||||
init|sysvinit)
|
EXPORTER_STATE="present"
|
||||||
__runit
|
|
||||||
require="__runit" __runit_service \
|
|
||||||
prometheus-jitsi-meet-exporter --log --source - <<EOF
|
|
||||||
#!/bin/sh -e
|
|
||||||
cd /tmp
|
|
||||||
exec chpst -u "nobody:nogroup" env HOME="/tmp" \\
|
|
||||||
prometheus-jitsi-meet-exporter \\
|
|
||||||
-videobridge-url 'http://localhost:8888/stats' \\
|
|
||||||
-web.listen-address ':9888' 2>&1
|
|
||||||
EOF
|
|
||||||
|
|
||||||
export require="__runit_service/prometheus-jitsi-meet-exporter"
|
|
||||||
JITSI_MEET_EXPORTER_SERVICE="sv %s prometheus-jitsi-meet-exporter"
|
|
||||||
;;
|
|
||||||
systemd)
|
|
||||||
__systemd_unit prometheus-jitsi-meet-exporter.service \
|
|
||||||
--source "-" \
|
|
||||||
--enablement-state "enabled" <<EOF
|
|
||||||
[Unit]
|
|
||||||
Description=Metrics Exporter for Jitsi Meet
|
|
||||||
After=network.target
|
|
||||||
|
|
||||||
[Service]
|
|
||||||
Type=simple
|
|
||||||
DynamicUser=yes
|
|
||||||
ExecStart=/usr/local/bin/prometheus-jitsi-meet-exporter -videobridge-url 'http://localhost:8888/stats' -web.listen-address ':9888'
|
|
||||||
Restart=always
|
|
||||||
|
|
||||||
[Install]
|
|
||||||
WantedBy=multi-user.target
|
|
||||||
EOF
|
|
||||||
export require="__systemd_unit/prometheus-jitsi-meet-exporter.service"
|
|
||||||
JITSI_MEET_EXPORTER_SERVICE="service prometheus-jitsi-meet-exporter %s"
|
|
||||||
;;
|
|
||||||
esac
|
|
||||||
if [ "${PROMETHEUS_JITSI_EXPORTER_SHOULD_VERSION}" != \
|
|
||||||
"${PROMETHEUS_JITSI_EXPORTER_IS_VERSION}" ]; then
|
|
||||||
# shellcheck disable=SC2059
|
|
||||||
__download \
|
|
||||||
/tmp/prometheus-jitsi-meet-exporter \
|
|
||||||
--url "${PROMETHEUS_JITSI_EXPORTER_URL}" \
|
|
||||||
--download remote \
|
|
||||||
--sum "${PROMETHEUS_JITSI_EXPORTER_CHECKSUM}" \
|
|
||||||
--onchange "$(printf "${JITSI_MEET_EXPORTER_SERVICE}" "stop") || true; chmod 555 /tmp/prometheus-jitsi-meet-exporter && mv /tmp/prometheus-jitsi-meet-exporter /usr/local/bin/prometheus-jitsi-meet-exporter && $(printf "${JITSI_MEET_EXPORTER_SERVICE}" "restart")"
|
|
||||||
printf "%s" "${PROMETHEUS_JITSI_EXPORTER_SHOULD_VERSION}" | \
|
|
||||||
require="${require} __download/tmp/prometheus-jitsi-meet-exporter" __file \
|
|
||||||
"${PROMETHEUS_JITSI_EXPORTER_VERSION_FILE}" \
|
|
||||||
--source "-"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
# TODO: disable the exporter if it is deployed and then admin changes their mind
|
__evilham_single_binary_service prometheus-jitsi-meet-exporter \
|
||||||
|
--state "${EXPORTER_STATE}" \
|
||||||
|
--do-not-manage-user \
|
||||||
|
--user "nobody" \
|
||||||
|
--group "nogroup" \
|
||||||
|
--version "${EXPORTER_VERSION}" \
|
||||||
|
--checksum "${EXPORTER_CHECKSUM}" \
|
||||||
|
--url "${EXPORTER_URL}" \
|
||||||
|
--unpack \
|
||||||
|
--service-args "-videobridge-url 'http://localhost:8080/colibri/stats' -web.listen-address ':9888'"
|
||||||
|
|
||||||
#
|
#
|
||||||
# Setup interpreter assets if requested
|
# Setup interpreter assets if requested
|
||||||
|
|
Loading…
Reference in a new issue