mirror of
https://git.FreeBSD.org/ports.git
synced 2024-11-21 00:25:50 +00:00
101 lines
3.0 KiB
Plaintext
101 lines
3.0 KiB
Plaintext
|
#!/bin/sh
|
||
|
|
||
|
# PROVIDE: prometheus
|
||
|
# REQUIRE: LOGIN
|
||
|
# KEYWORD: shutdown
|
||
|
#
|
||
|
# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
|
||
|
# to enable this service:
|
||
|
#
|
||
|
# prometheus_enable (bool): Set to NO by default
|
||
|
# Set it to YES to enable prometheus
|
||
|
# prometheus_user (string): Set user to run prometheus
|
||
|
# Default is "prometheus"
|
||
|
# prometheus_group (string): Set group to run prometheus
|
||
|
# Default is "prometheus"
|
||
|
# prometheus_data_dir (string): Set dir to run prometheus in
|
||
|
# Default is "/var/db/prometheus"
|
||
|
# prometheus_log_file (string): Set file that prometheus will log to
|
||
|
# Default is "/var/log/prometheus.log"
|
||
|
# prometheus_args (string): Set additional command line arguments
|
||
|
# Default is ""
|
||
|
|
||
|
. /etc/rc.subr
|
||
|
|
||
|
name=prometheus
|
||
|
rcvar=prometheus_enable
|
||
|
|
||
|
load_rc_config $name
|
||
|
|
||
|
: ${prometheus_enable:="NO"}
|
||
|
: ${prometheus_user:="prometheus"}
|
||
|
: ${prometheus_group:="prometheus"}
|
||
|
: ${prometheus_config:="%%PREFIX%%/etc/prometheus.yml"}
|
||
|
: ${prometheus_data_dir:="/var/db/prometheus"}
|
||
|
: ${prometheus_log_file:="/var/log/prometheus.log"}
|
||
|
: ${prometheus_args:=""}
|
||
|
|
||
|
pidfile="/var/run/${name}.pid"
|
||
|
required_files="${prometheus_config}"
|
||
|
command="/usr/sbin/daemon"
|
||
|
procname="%%PREFIX%%/bin/${name}"
|
||
|
sig_reload="HUP"
|
||
|
extra_commands="reload"
|
||
|
command_args="-p ${pidfile} /usr/bin/env ${procname} \
|
||
|
--config.file=${prometheus_config} \
|
||
|
--storage.tsdb.path=${prometheus_data_dir} \
|
||
|
${prometheus_args} >> ${prometheus_log_file} 2>&1"
|
||
|
|
||
|
start_precmd=prometheus_startprecmd
|
||
|
|
||
|
# This checks for the existence of a prometheus 1.x data dir at the
|
||
|
# $prometheus_data_dir location. If one is found, Prometheus will not start.
|
||
|
prometheus_check_data_dir_version()
|
||
|
{
|
||
|
local data_dir_version_file="${prometheus_data_dir}/VERSION"
|
||
|
|
||
|
if [ -f "${data_dir_version_file}" ]; then
|
||
|
local data_dir_version="0"
|
||
|
|
||
|
read data_dir_version < "${data_dir_version_file}"
|
||
|
|
||
|
if [ "${data_dir_version}" = "1" ]; then
|
||
|
return 1
|
||
|
fi
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
prometheus_startprecmd()
|
||
|
{
|
||
|
if [ ! -e ${pidfile} ]; then
|
||
|
install \
|
||
|
-o ${prometheus_user} \
|
||
|
-g ${prometheus_group} \
|
||
|
/dev/null ${pidfile};
|
||
|
fi
|
||
|
if [ ! -f "${prometheus_log_file}" ]; then
|
||
|
install \
|
||
|
-o ${prometheus_user} \
|
||
|
-g ${prometheus_group} \
|
||
|
-m 640 \
|
||
|
/dev/null ${prometheus_log_file};
|
||
|
fi
|
||
|
if [ ! -d ${prometheus_data_dir} ]; then
|
||
|
install \
|
||
|
-d \
|
||
|
-o ${prometheus_user} \
|
||
|
-g ${prometheus_group} \
|
||
|
-m 750 \
|
||
|
${prometheus_data_dir}
|
||
|
else
|
||
|
# The directory already existed. Ensure it's not a prometheus 1.x
|
||
|
# data dir.
|
||
|
if ! prometheus_check_data_dir_version; then
|
||
|
err 1 "Found net-mgmt/prometheus1 data dir, refusing to start."
|
||
|
fi
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
load_rc_config $name
|
||
|
run_rc_command "$1"
|