diff options
Diffstat (limited to 'app-metrics/portage-exporter')
6 files changed, 132 insertions, 0 deletions
diff --git a/app-metrics/portage-exporter/Manifest b/app-metrics/portage-exporter/Manifest new file mode 100644 index 000000000000..187c1ee1fd0c --- /dev/null +++ b/app-metrics/portage-exporter/Manifest @@ -0,0 +1 @@ +DIST portage-exporter-0.1.0.tar.gz 14931 BLAKE2B bfafe9ac71b3ca756ac621d424cf80f988c3564c3a7d28b1d87781674cca00b7e3ed0c045d3d82bf19e6ce2021135dd85001aef3fe33360760da00dc17573666 SHA512 16efcb1ae6417f0db48247468f369db76bafeace136e296724fbb517d38b0ec5cbaf7b1949b7c5fb87337eeb374535f53a4a432f8aa5b10a3bb5b418fead2a94 diff --git a/app-metrics/portage-exporter/files/portage-exporter.confd b/app-metrics/portage-exporter/files/portage-exporter.confd new file mode 100644 index 000000000000..3bd24a22a809 --- /dev/null +++ b/app-metrics/portage-exporter/files/portage-exporter.confd @@ -0,0 +1,26 @@ +# /etc/conf.d/portage-exporter + +# PID file +#EXPORTER_PIDFILE="/run/${RC_SVCNAME}.pid" + +# The termination timeout (start-stop-daemon parameter "retry") ensures +# that the service will be terminated within a given time (60 + 5 seconds +# per default) when you are stopping the service. +#EXPORTER_TERMTIMEOUT="TERM/60/KILL/5" + +# User to run exporter as +#EXPORTER_USER="portage-exporter" + +# User group to run exporter as +#EXPORTER_GROUP="portage-exporter" + +# You can use this configuration option to pass additional options to the +# start-stop-daemon, see start-stop-daemon(8) for more details. +# Per default we wait 1000ms after we have started the service to ensure +# that the daemon is really up and running. +#EXPORTER_SSDARGS="--wait 1000" + +# Exporter flags (passed via env) +#SERVE_ADDRESS=":2112" +#SERVE_PATH=/metrics +VDB_UPDATE_INTERVAL=1800 diff --git a/app-metrics/portage-exporter/files/portage-exporter.initd b/app-metrics/portage-exporter/files/portage-exporter.initd new file mode 100644 index 000000000000..9aa53f509a6e --- /dev/null +++ b/app-metrics/portage-exporter/files/portage-exporter.initd @@ -0,0 +1,49 @@ +#!/sbin/openrc-run +# Copyright 2016-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +description="Prometheus exporter for Portage packages" + +EXPORTER_FLAGS=${EXPORTER_FLAGS:-""} +#EXPORTER_USER=${EXPORTER_USER:-"portage-exporter"} +#EXPORTER_GROUP=${EXPORTER_GROUP:-"portage-exporter"} +EXPORTER_PIDFILE=${EXPORTER_PIDFILE:-"/run/${RC_SVCNAME}.pid"} +EXPORTER_SSDARGS=${EXPORTER_SSDARGS:-"--wait 1000"} +EXPORTER_TERMTIMEOUT=${EXPORTER_TERMTIMEOUT:-"TERM/60/KILL/5"} + +command="/usr/bin/portage-exporter" +command_args="${EXPORTER_FLAGS}" +command_background="true" +start_stop_daemon_args="${EXPORTER_SSDARGS}" +start_stop_daemon_args="${start_stop_daemon_args} ${EXPORTER_USER:+--user }${EXPORTER_USER}" +start_stop_daemon_args="${start_stop_daemon_args} ${EXPORTER_GROUP:+--group }${EXPORTER_GROUP}" + +getconfig() { + local key="$1" + local value_default="$2" + local value= + + if service_started; then + value="$(service_get_value "${key}")" + fi + + if [ -z "${value}" ]; then + # Value not explicitly set + echo "${value_default}" + else + echo "${value}" + fi + + return 0 +} + +pidfile="$(getconfig pidfile ${EXPORTER_PIDFILE})" +retry="$(getconfig retry ${EXPORTER_TERMTIMEOUT})" + +depend() { + after net.lo loopback +} + +start_post() { + service_set_value retry "${EXPORTER_TERMTIMEOUT}" +} diff --git a/app-metrics/portage-exporter/files/portage-exporter.service b/app-metrics/portage-exporter/files/portage-exporter.service new file mode 100644 index 000000000000..bec84b4c0413 --- /dev/null +++ b/app-metrics/portage-exporter/files/portage-exporter.service @@ -0,0 +1,18 @@ +[Unit] +Description=Gentoo Portage Exporter +Wants=network-online.target +After=network-online.target + +[Service] +User=portage-exporter +DynamicUser=yes +Type=simple +PassEnvironment=SERVE_ADDRESS SERVE_PATH VDB_UPDATE_INTERVAL +ExecStart=/usr/bin/portage-exporter + +# Environment=SERVE_ADDRESS=:2112 +# Environment=SERVE_PATH=/metrics +# Environment=VDB_UPDATE_INTERVAL=1800 + +[Install] +WantedBy=multi-user.target diff --git a/app-metrics/portage-exporter/metadata.xml b/app-metrics/portage-exporter/metadata.xml new file mode 100644 index 000000000000..7fe25777ee4c --- /dev/null +++ b/app-metrics/portage-exporter/metadata.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>robbat2@gentoo.org</email> + </maintainer> + <maintainer type="person"> + <!-- upstream --> + <email>arthurzam@gentoo.org</email> + </maintainer> + <upstream> + <remote-id type="github">projg2/portage-exporter</remote-id> + </upstream> +</pkgmetadata> diff --git a/app-metrics/portage-exporter/portage-exporter-0.1.0.ebuild b/app-metrics/portage-exporter/portage-exporter-0.1.0.ebuild new file mode 100644 index 000000000000..a9b7cbd38c65 --- /dev/null +++ b/app-metrics/portage-exporter/portage-exporter-0.1.0.ebuild @@ -0,0 +1,24 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake systemd + +DESCRIPTION="Prometheus exporter for Gentoo Portage" +HOMEPAGE="https://github.com/projg2/portage-exporter" +SRC_URI="https://github.com/projg2/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="GPL-3" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +RDEPEND="dev-cpp/prometheus-cpp" + +src_install() { + cmake_src_install + + systemd_newunit "${FILESDIR}"/${PN}.service ${PN}.service + newinitd "${FILESDIR}"/${PN}.initd ${PN} + newconfd "${FILESDIR}"/${PN}.confd ${PN} +} |