app-metrics/prometheus-cpu-mem-monitor: Add very first draft version #28

Merged
manuel merged 1 commit from prometheus-cpu-mem-monitor into master 2019-11-11 01:02:51 +01:00
7 changed files with 91 additions and 0 deletions

View file

@ -0,0 +1,6 @@
*prometheus-cpu-mem-monitor-0.0.0.1 (11 Nov 2019)
11 Nov 2019; <manuel@gentoo.org> +files/prometheus-cpu-mem-monitor.service,
+files/prometheus-cpu-mem-monitor.sh, +files/prometheus-cpu-mem-monitor.timer,
+metadata.xml, +prometheus-cpu-mem-monitor-0.0.0.1.ebuild:
app-metrics/prometheus-cpu-mem-monitor: Add very first draft version

View file

@ -0,0 +1,6 @@
AUX prometheus-cpu-mem-monitor.service 243 BLAKE2B 6f774e36b2e1b2dbc1614a930f2e64da9b664a0bef6023bb69db571949266625f32ec057ac31be12f1ec2fbcb9c5d7a732377471f750b5346384c366808ba42a SHA512 7d21c89a0ebf577fe654ef93b7098b4ef40127892213e26141583d64a8fadc683799b0da588b8ddb4a692129de536e3c75dc80be83939ba7a5c47f45e84be7b2
AUX prometheus-cpu-mem-monitor.sh 564 BLAKE2B 1fcff16c183709c569398795afbce2ab11e558badfb437b8e4048cde5102e7ae7fe58ea11f64cb1bce7754bdfd7f85bddcaaf4deefd2a658ca76b1973df9d8bc SHA512 dfbd52eb86dca8e0d576f262b98a4efe145524653a3cfe9ae51e14695d0a02d3fc7618e0f236b5200ef59b84d81acf373b3a49665dbc23c694f299a29569479e
AUX prometheus-cpu-mem-monitor.timer 291 BLAKE2B d41b99088752863c3ffaf065279702a5ddec90edabe0fd7ec11d71b883756f370c4236aa1c4074b4d3869b02f29142aca4b5247dd49281299d5625a3fe4f3509 SHA512 2245655fec3417c44c64c04074f1f5c061e7c80a3b34ba0f683c12b74b1a7c5c46abec16bb78fca479381982d8286bab0919be223c2e9c08d26d3e80ced772a3
EBUILD prometheus-cpu-mem-monitor-0.0.0.1.ebuild 470 BLAKE2B 804936dedf7f4ee79ae4094a409779ccbe2e7fbcd0e3411f3d20adb344313f7a48686d2f9258514abbb3f1a1e8af060fe67bc2ad5ccb92e5d254069ee7e20501 SHA512 37cbfca25bf066276284b379befb759b5f8f7bcb6bfd4b9c2653e561c12368ac9819a3a12ba00707631e5603b09bad358cf3ca2800359f3de7b0763b8ff3b54b
MISC ChangeLog 343 BLAKE2B 140091e8f77dcf9b15534d36836af7aac2981d7bf6dc7b042094fc992eb6da938df6dea003c5130568845953e8e74ec35d577b9e945128934e383ddb805c3b2b SHA512 c0a7b88771132f795a790b6bcf9586053fd539e0e48de20fb08030ea2e3dd22a6e1e2e640241403124bd16f9bfaf3617c7410df770c4ee697f73bca24cdef076
MISC metadata.xml 337 BLAKE2B bd72b6097fead5eaf80082790d3712ae0893b118140b62f58639f0e5c56bebf57dbd0ccd0ea19af82b2dce88c88c494d88290f98df4818e4fad3f4386398d171 SHA512 aee4825d8b90a8fd84fb558b9af4b7eb889fcf81bae6c7b317a9d69f62b06dd0f0bc2aa91aa2c32f10ff91fdbf64b341d7e5adc3c65a5225c7e0e92d7a6b7816

View file

@ -0,0 +1,11 @@
# Calculate host statistics for prometheus
# Written by Manuel Friedli
# Changelog:
# 2019-11-10: Inception
[Unit]
Description=Calculate CPU/Memory stats for prometheus
[Service]
Type=oneshot
ExecStart=/usr/bin/prometheus-cpu-mem-monitor.sh

View file

@ -0,0 +1,19 @@
#!/bin/bash
# Extract per-process CPU and memory usage from "ps aux" and send the data to prometheus
#
TARGET_URL="http://localhost:9091/metrics/job/top/instance/vps-02.friedli.info"
z=$(ps aux)
while read -r z
do
cpustats=$cpustats$(awk '{print "cpu_usage{process=\""$11"\", pid=\""$2"\"}", $3z}');
memstats=$memstats$(awk '{print "memory_usage{process=\""$11"\", pid=\""$2"\"}", $4z}');
done <<< "$z"
curl -X POST -H "Content-Type: text/plain" --data "$cpustats
" ${TARGET_URL}
curl -X POST -H "Content-Type: text/plain" --data "$memstats
" ${TARGET_URL}

View file

@ -0,0 +1,15 @@
# Timer for calculating host statistics for prometheus
# Written by Manuel Friedli
# Changelog:
# 2019-11-10: Inception
[Unit]
Description=Timer for calculating CPU/Memory stats for prometheus
[Timer]
OnBootSec=1s
OnUnitInactiveSec=10s
AccuracySec=1s
[Install]
WantedBy=multi-user.target

View file

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<maintainer type="person">
<email>manuel@fritteli.ch</email>
<name>Manuel Friedli</name>
</maintainer>
<upstream>
<remote-id type="github">prometheus/node_exporter</remote-id>
</upstream>
</pkgmetadata>

View file

@ -0,0 +1,23 @@
# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=6
inherit user systemd
KEYWORDS="~amd64"
DESCRIPTION="CPU and memory monitoring for prometheus"
HOMEPAGE="https://gittr.ch/linux/gentoo-overlay"
LICENSE="GPL-2"
SLOT="0"
IUSE=""
DEPEND="sys-process/procps"
S="${WORKDIR}"
src_install() {
dobin "${FILESDIR}/${PN}.sh"
systemd_dounit "${FILESDIR}/${PN}.service"
systemd_dounit "${FILESDIR}/${PN}.timer"
}