Readd prometheus2 with corrected history.

PR:		225169
This commit is contained in:
Brad Davis 2018-03-30 22:34:09 +00:00
parent aa139b18f3
commit e3b0e4dc51
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=466011
5 changed files with 179 additions and 0 deletions

View file

@ -0,0 +1,53 @@
# $FreeBSD$
PORTNAME= prometheus
PORTVERSION= 2.1.0
DISTVERSIONPREFIX= v
CATEGORIES= net-mgmt
MAINTAINER= dor.bsd@xm0.uk
COMMENT= Systems monitoring and alerting toolkit
LICENSE= APACHE20
LICENSE_FILE= ${WRKSRC}/LICENSE
USES= go gmake
USE_GITHUB= yes
GH_ACCOUNT= prometheus
GH_PROJECT= prometheus
GO_PKGNAME= github.com/${GH_ACCOUNT}/${GH_PROJECT}
USE_RC_SUBR= prometheus
USERS= prometheus
GROUPS= prometheus
BUILD_USER?= ${USER}
LD_FLAG_X_PREFIX= -X ${GO_PKGNAME}/vendor/${GO_PKGNAME:H}/common/version
LD_FLAG_STRING= -s \
${LD_FLAG_X_PREFIX}.Version=${PORTVERSION} \
${LD_FLAG_X_PREFIX}.Revision=${PORTREVISION} \
${LD_FLAG_X_PREFIX}.Branch=release-${PORTVERSION:R} \
${LD_FLAG_X_PREFIX}.BuildUser=${BUILD_USER}
PROMETHEUS_BINARIES= prometheus promtool
do-build:
.for bin in ${PROMETHEUS_BINARIES}
( cd ${GO_WRKSRC}/cmd/${bin} ; \
${SETENV} ${MAKE_ENV} ${GO_ENV} go install -ldflags "${LD_FLAG_STRING}" )
.endfor
do-install:
.for bin in ${PROMETHEUS_BINARIES}
${INSTALL_PROGRAM} ${GO_WRKDIR_BIN}/${bin} ${STAGEDIR}${PREFIX}/bin
.endfor
${INSTALL_DATA} \
${WRKSRC}/documentation/examples/prometheus.yml \
${STAGEDIR}${LOCALBASE}/etc/prometheus.yml.sample
${MKDIR} ${STAGEDIR}${DESTDIR}/var/db/prometheus
.include <bsd.port.mk>

View file

@ -0,0 +1,3 @@
TIMESTAMP = 1516749966
SHA256 (prometheus-prometheus-v2.1.0_GH0.tar.gz) = c6fc92d695c9af30574eb41af5e0e89f4fde9a04a3169ba58aa2b2f80d5862a4
SIZE (prometheus-prometheus-v2.1.0_GH0.tar.gz) = 5669858

View file

@ -0,0 +1,100 @@
#!/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"

View file

@ -0,0 +1,19 @@
Prometheus is a systems and service monitoring system. It collects metrics
from configured targets at given intervals, evaluates rule expressions,
displays the results, and can trigger alerts if some condition is observed
to be true.
Prometheus' main distinguishing features as compared to other monitoring
systems are:
- a multi-dimensional data model (timeseries defined by metric name and
set of key/value dimensions)
- a flexible query language to leverage this dimensionality
- no dependency on distributed storage; single server nodes are autonomous
- timeseries collection happens via a pull model over HTTP
- pushing timeseries is supported via an intermediary gateway
- targets are discovered via service discovery or static configuration
- multiple modes of graphing and dashboarding support
- support for hierarchical and horizontal federation
WWW: https://prometheus.io/

View file

@ -0,0 +1,4 @@
bin/prometheus
bin/promtool
@sample etc/prometheus.yml.sample
@dir(prometheus,prometheus) /var/db/prometheus