summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-metrics/portage-exporter')
-rw-r--r--app-metrics/portage-exporter/Manifest1
-rw-r--r--app-metrics/portage-exporter/files/portage-exporter.confd26
-rw-r--r--app-metrics/portage-exporter/files/portage-exporter.initd49
-rw-r--r--app-metrics/portage-exporter/files/portage-exporter.service18
-rw-r--r--app-metrics/portage-exporter/metadata.xml14
-rw-r--r--app-metrics/portage-exporter/portage-exporter-0.1.0.ebuild24
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}
+}