diff --git a/net-mgmt/prometheus2/Makefile b/net-mgmt/prometheus2/Makefile index d280783ae875..d4b368550bf6 100644 --- a/net-mgmt/prometheus2/Makefile +++ b/net-mgmt/prometheus2/Makefile @@ -2,7 +2,7 @@ PORTNAME= prometheus DISTVERSIONPREFIX= v -DISTVERSION= 2.23.0 +DISTVERSION= 2.24.1 CATEGORIES= net-mgmt MAINTAINER= dor.bsd@xm0.uk @@ -21,30 +21,24 @@ GO_BUILDFLAGS= -v -ldflags "${LD_FLAG_STRING}" -tags netgo,builtinassets GO_TARGET= ./cmd/prometheus \ ./cmd/promtool -SUB_FILES= prometheus - SUB_LIST+= PROMETHEUS_USER=${PROMETHEUS_USER} \ PROMETHEUS_GROUP=${PROMETHEUS_GROUP} \ PROMETHEUS_CONSOLE_LIBRARIES_DIR=${PROMETHEUS_CONSOLE_LIBRARIES_DIR} \ PROMETHEUS_CONSOLES_DIR=${PROMETHEUS_CONSOLES_DIR} \ - PROMETHEUS_DB_DIR=${PROMETHEUS_DB_DIR} \ - PROMETHEUS_LOG_DIR=${PROMETHEUS_LOG_DIR} \ - PROMETHEUS_LOG_FILE=${PROMETHEUS_LOG_FILE} \ - PROMETHEUS_SHARE_DIR=${PROMETHEUS_SHARE_DIR} + PROMETHEUS_DB_DIR=${PROMETHEUS_DB_DIR} USERS= ${PROMETHEUS_USER} GROUPS= ${PROMETHEUS_GROUP} -PLIST_SUB+= PORTNAME=${PORTNAME} \ +PLIST_SUB+= PROMETHEUS_USER=${PROMETHEUS_USER} \ + PROMETHEUS_GROUP=${PROMETHEUS_GROUP} \ PROMETHEUS_CONSOLE_LIBRARIES_DIR=${PROMETHEUS_CONSOLE_LIBRARIES_DIR} \ - PROMETHEUS_CONSOLES_DIR=${PROMETHEUS_CONSOLES_DIR} \ - PROMETHEUS_DB_DIR=${PROMETHEUS_DB_DIR} \ - PROMETHEUS_LOG_DIR=${PROMETHEUS_LOG_DIR} + PROMETHEUS_CONSOLES_DIR=${PROMETHEUS_CONSOLES_DIR} OPTIONS_DEFINE= DOCS BUILD_USER?= ${USER} -LD_FLAG_STRING= -s \ +LD_FLAG_STRING= -s \ ${LD_FLAG_X_PREFIX}.Version=${PORTVERSION} \ ${LD_FLAG_X_PREFIX}.Revision=${PORTREVISION} \ ${LD_FLAG_X_PREFIX}.Branch=release-${PORTVERSION:R} \ @@ -55,12 +49,9 @@ LD_FLAG_X_PREFIX= -X github.com/prometheus/common/version PROMETHEUS_USER?= prometheus PROMETHEUS_GROUP?= prometheus -PROMETHEUS_CONSOLES_DIR= ${PROMETHEUS_SHARE_DIR}/consoles -PROMETHEUS_CONSOLE_LIBRARIES_DIR= ${PROMETHEUS_SHARE_DIR}/console_libraries -PROMETHEUS_DB_DIR= /var/db/${PORTNAME} -PROMETHEUS_LOG_DIR= /var/log/prometheus -PROMETHEUS_LOG_FILE= ${PROMETHEUS_LOG_DIR}/prometheus.log -PROMETHEUS_SHARE_DIR= ${DATADIR} +PROMETHEUS_CONSOLES_DIR?= ${DATADIR}/consoles +PROMETHEUS_CONSOLE_LIBRARIES_DIR?= ${DATADIR}/console_libraries +PROMETHEUS_DB_DIR?= /var/db/${PORTNAME} # Bring DISTINFO_FILE into scope so we can get the timestamp. .include @@ -72,23 +63,19 @@ post-patch: ${WRKSRC}/web/ui/assets_vfadata.go post-install: + ${MKDIR} ${STAGEDIR}${DESTDIR}${PROMETHEUS_CONSOLES_DIR} + ${MKDIR} ${STAGEDIR}${DESTDIR}${PROMETHEUS_CONSOLE_LIBRARIES_DIR} ${INSTALL_DATA} \ ${WRKSRC}/documentation/examples/prometheus.yml \ ${STAGEDIR}${LOCALBASE}/etc/prometheus.yml.sample - @${MKDIR} ${STAGEDIR}${DESTDIR}${PROMETHEUS_DB_DIR} - @${MKDIR} ${STAGEDIR}${DESTDIR}${PROMETHEUS_CONSOLES_DIR} - @${MKDIR} ${STAGEDIR}${DESTDIR}${PROMETHEUS_CONSOLE_LIBRARIES_DIR} - @${MKDIR} ${STAGEDIR}${PROMETHEUS_LOG_DIR} ( cd ${WRKSRC}/console_libraries \ - && ${COPYTREE_SHARE} . ${STAGEDIR}${PROMETHEUS_CONSOLE_LIBRARIES_DIR} \ - ) + && ${COPYTREE_SHARE} . ${STAGEDIR}${PROMETHEUS_CONSOLE_LIBRARIES_DIR} ) ( cd ${WRKSRC}/consoles \ - && ${COPYTREE_SHARE} . ${STAGEDIR}${PROMETHEUS_CONSOLES_DIR} \ - ) + && ${COPYTREE_SHARE} . ${STAGEDIR}${PROMETHEUS_CONSOLES_DIR} ) post-install-DOCS-on: ${MKDIR} ${STAGEDIR}${DOCSDIR} - cd ${WRKSRC}/docs && \ - ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR} + ( cd ${WRKSRC}/docs \ + && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR} ) .include diff --git a/net-mgmt/prometheus2/distinfo b/net-mgmt/prometheus2/distinfo index af9bf6134acc..00f179d568db 100644 --- a/net-mgmt/prometheus2/distinfo +++ b/net-mgmt/prometheus2/distinfo @@ -1,5 +1,5 @@ -TIMESTAMP = 1606419997 -SHA256 (prometheus-prometheus-v2.23.0_GH0.tar.gz) = 7ef1d61052fe3dace20b89ab287a6a0e835f8f111ab41584aa39b80f6093842b -SIZE (prometheus-prometheus-v2.23.0_GH0.tar.gz) = 14470328 -SHA256 (ports-assets-net-mgmt_prometheus2-v2.23.0_GH0.tar.gz) = 05348fd617fd2dd253442cc9a1a12ec03c320f41e14ecd1e2b2ed70edd47eae4 -SIZE (ports-assets-net-mgmt_prometheus2-v2.23.0_GH0.tar.gz) = 5064489 +TIMESTAMP = 1611646755 +SHA256 (prometheus-prometheus-v2.24.1_GH0.tar.gz) = 9e08bacde869c6c4b68a9e34c7074b812be1391b33d033d3072a5e1ad2debd87 +SIZE (prometheus-prometheus-v2.24.1_GH0.tar.gz) = 14633738 +SHA256 (ports-assets-net-mgmt_prometheus2-v2.24.1_GH0.tar.gz) = e8b25f3745a2b40a0afdb8973f1c470ab4570b78724f522219e8aa77f671222f +SIZE (ports-assets-net-mgmt_prometheus2-v2.24.1_GH0.tar.gz) = 5195942 diff --git a/net-mgmt/prometheus2/files/prometheus.in b/net-mgmt/prometheus2/files/prometheus.in index 913d291b5037..7171ec94472b 100644 --- a/net-mgmt/prometheus2/files/prometheus.in +++ b/net-mgmt/prometheus2/files/prometheus.in @@ -8,23 +8,50 @@ # to enable this service: # # prometheus_enable (bool) -# Set to NO by default # Set it to YES to enable prometheus +# Set to NO by default # prometheus_user (string) -# Set user to run prometheus +# Set user that prometheus will run under # Default is "%%PROMETHEUS_USER%%" # prometheus_group (string) -# Set group to run prometheus +# Set group that own prometheus files # Default is "%%PROMETHEUS_GROUP%%" -# prometheus_data_dir (string) -# Set dir to run prometheus in -# Default is "%%PROMETHEUS_DB_DIR%%" +# prometheus_config (string) +# Set full path to config file +# Default is "%%PREFIX%%/etc/prometheus.yml" +# prometheus_pidfile (string) +# Set full path to pid file +# Default is "/var/run/prometheus.pid" +# prometheus_syslog_output_enable (bool) +# Set it to NO to disable syslog output +# Set to YES by default +# prometheus_syslog_output_tag (str) +# Set syslog tag if syslog enabled +# Default is "prometheus" +# prometheus_syslog_output_priority (string) +# Set syslog priority if syslog enabled +# Default is "info" +# prometheus_syslog_output_facility (string) +# Set syslog facility if syslog enabled +# Default is "daemon" # prometheus_consoles (string) # Set dir that contains Prometheus consoles # Default is "%%PROMETHEUS_CONSOLES_DIR%%" # prometheus_console_libraries (string) # Set dir containing Prometheus console libraries # Default is "%%PROMETHEUS_CONSOLE_LIBRARIES_DIR%%" +# prometheus_data_dir (string) +# Set dir to run prometheus in +# Default is "%%PROMETHEUS_DB_DIR%%" +# prometheus_loglevel (string) +# Set one of [debug, info, warn, error] +# Default is "info" +# prometheus_logformat (string) +# Set one of [logfmt, json] +# Default is "logfmt" +# prometheus_env (string) +# Set environment variables used with prometheus +# Default is "" # prometheus_args (string) # Set additional command line arguments # Default is "" @@ -40,67 +67,75 @@ load_rc_config $name : ${prometheus_user:="%%PROMETHEUS_USER%%"} : ${prometheus_group:="%%PROMETHEUS_GROUP%%"} : ${prometheus_config:="%%PREFIX%%/etc/prometheus.yml"} -: ${prometheus_data_dir:="%%PROMETHEUS_DB_DIR%%"} +: ${prometheus_pidfile:="/var/run/prometheus.pid"} +: ${prometheus_syslog_output_enable:="YES"} : ${prometheus_consoles_dir:="%%PROMETHEUS_CONSOLES_DIR%%"} : ${prometheus_console_libraries_dir:="%%PROMETHEUS_CONSOLE_LIBRARIES_DIR%%"} -: ${prometheus_args:=""} +: ${prometheus_data_dir:="%%PROMETHEUS_DB_DIR%%"} +: ${prometheus_loglevel:="info"} +: ${prometheus_logformat:="logfmt"} -pidfile="/var/run/${name}.pid" +if checkyesno prometheus_syslog_output_enable; then + if [ -n "${prometheus_syslog_output_tag}" ]; then + prometheus_syslog_output_flags="-T ${prometheus_syslog_output_tag}" + else + prometheus_syslog_output_flags="-T ${name}" + fi + if [ -n "${prometheus_syslog_output_priority}" ]; then + prometheus_syslog_output_flags="${prometheus_syslog_output_flags} -s ${prometheus_syslog_output_priority}" + fi + if [ -n "${prometheus_syslog_output_facility}" ]; then + prometheus_syslog_output_flags="${prometheus_syslog_output_flags} -l ${prometheus_syslog_output_facility}" + fi +fi + +pidfile="${prometheus_pidfile}" required_files="${prometheus_config}" + +procname="%%PREFIX%%/bin/prometheus" command="/usr/sbin/daemon" -procname="%%PREFIX%%/bin/${name}" -sig_reload="HUP" +command_args="-f ${prometheus_syslog_output_flags} -p ${pidfile} -t ${name} \ + /usr/bin/env ${prometheus_env} ${procname} \ + --config.file=${prometheus_config} \ + --web.console.templates=${prometheus_consoles_dir} \ + --web.console.libraries=${prometheus_console_libraries_dir} \ + --storage.tsdb.path=${prometheus_data_dir} \ + --log.level=${prometheus_loglevel} \ + --log.format=${prometheus_logformat} \ + ${prometheus_args}" + +start_precmd="prometheus_start_precmd" extra_commands="reload" -command_args="-p ${pidfile} -m 3 -T ${name} \ - /usr/bin/env ${procname} \ - --config.file=${prometheus_config} \ - --storage.tsdb.path=${prometheus_data_dir} \ - --web.console.templates=${prometheus_consoles_dir} \ - --web.console.libraries=${prometheus_console_libraries_dir} \ - ${prometheus_args}" -start_precmd=prometheus_startprecmd - -# This checks for the existence of a prometheus 1.x data dir at the +# This checks for the existence of a prometheus 1.x data at the # $prometheus_data_dir location. If one is found, Prometheus will not start. -prometheus_check_data_dir_version() +prometheus_check_data_version() { - local data_dir_version_file="${prometheus_data_dir}/VERSION" + local _version + local _version_file="${prometheus_data_dir}/VERSION" - if [ -f "${data_dir_version_file}" ]; then - local data_dir_version="0" + if [ -f "${_version_file}" ]; then + read _version < "${_version_file}" - read data_dir_version < "${data_dir_version_file}" - - if [ "${data_dir_version}" = "1" ]; then - return 1 - fi - fi + if [ "${_version}" = "1" ]; then + return 1 + fi + fi } -prometheus_startprecmd() +prometheus_start_precmd() { - if [ ! -e ${pidfile} ]; then - install \ - -o ${prometheus_user} \ - -g ${prometheus_group} \ - /dev/null ${pidfile}; - 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 + if [ ! -e "${pidfile}" ]; then + install -m 0600 -o "${prometheus_user}" -g "${prometheus_group}" /dev/null "${pidfile}" + fi + if [ ! -d "${prometheus_data_dir}" ]; then + install -d -m 750 -o "${prometheus_user}" -g "${prometheus_group}" "${prometheus_data_dir}" + else + # Ensure it's not a prometheus 1.x data + if [ ! prometheus_check_data_version ]; then + err 1 "Found \"net-mgmt/prometheus1\" data, refusing to start." + fi + fi } -load_rc_config $name run_rc_command "$1" diff --git a/net-mgmt/prometheus2/pkg-plist b/net-mgmt/prometheus2/pkg-plist index 6ac04326bce0..23818bc41285 100644 --- a/net-mgmt/prometheus2/pkg-plist +++ b/net-mgmt/prometheus2/pkg-plist @@ -11,6 +11,7 @@ bin/promtool %%PROMETHEUS_CONSOLES_DIR%%/prometheus.html %%PORTDOCS%%%%DOCSDIR%%/configuration/alerting_rules.md %%PORTDOCS%%%%DOCSDIR%%/configuration/configuration.md +%%PORTDOCS%%%%DOCSDIR%%/configuration/https.md %%PORTDOCS%%%%DOCSDIR%%/configuration/index.md %%PORTDOCS%%%%DOCSDIR%%/configuration/recording_rules.md %%PORTDOCS%%%%DOCSDIR%%/configuration/template_examples.md @@ -32,5 +33,3 @@ bin/promtool %%PORTDOCS%%%%DOCSDIR%%/stability.md %%PORTDOCS%%%%DOCSDIR%%/storage.md @sample etc/prometheus.yml.sample -@dir(prometheus,prometheus) %%PROMETHEUS_DB_DIR%% -@dir(root,root) %%PROMETHEUS_LOG_DIR%%