diff --git a/app-metrics/prometheus-cpu-mem-monitor/ChangeLog b/app-metrics/prometheus-cpu-mem-monitor/ChangeLog new file mode 100644 index 0000000..c1f5479 --- /dev/null +++ b/app-metrics/prometheus-cpu-mem-monitor/ChangeLog @@ -0,0 +1,6 @@ +*prometheus-cpu-mem-monitor-0.0.0.1 (11 Nov 2019) + + 11 Nov 2019; +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 diff --git a/app-metrics/prometheus-cpu-mem-monitor/Manifest b/app-metrics/prometheus-cpu-mem-monitor/Manifest new file mode 100644 index 0000000..3bd44bc --- /dev/null +++ b/app-metrics/prometheus-cpu-mem-monitor/Manifest @@ -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 diff --git a/app-metrics/prometheus-cpu-mem-monitor/files/prometheus-cpu-mem-monitor.service b/app-metrics/prometheus-cpu-mem-monitor/files/prometheus-cpu-mem-monitor.service new file mode 100644 index 0000000..367f687 --- /dev/null +++ b/app-metrics/prometheus-cpu-mem-monitor/files/prometheus-cpu-mem-monitor.service @@ -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 diff --git a/app-metrics/prometheus-cpu-mem-monitor/files/prometheus-cpu-mem-monitor.sh b/app-metrics/prometheus-cpu-mem-monitor/files/prometheus-cpu-mem-monitor.sh new file mode 100755 index 0000000..8a7bcf5 --- /dev/null +++ b/app-metrics/prometheus-cpu-mem-monitor/files/prometheus-cpu-mem-monitor.sh @@ -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} diff --git a/app-metrics/prometheus-cpu-mem-monitor/files/prometheus-cpu-mem-monitor.timer b/app-metrics/prometheus-cpu-mem-monitor/files/prometheus-cpu-mem-monitor.timer new file mode 100644 index 0000000..cd8f33d --- /dev/null +++ b/app-metrics/prometheus-cpu-mem-monitor/files/prometheus-cpu-mem-monitor.timer @@ -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 diff --git a/app-metrics/prometheus-cpu-mem-monitor/metadata.xml b/app-metrics/prometheus-cpu-mem-monitor/metadata.xml new file mode 100644 index 0000000..b92cc03 --- /dev/null +++ b/app-metrics/prometheus-cpu-mem-monitor/metadata.xml @@ -0,0 +1,11 @@ + + + + + manuel@fritteli.ch + Manuel Friedli + + + prometheus/node_exporter + + diff --git a/app-metrics/prometheus-cpu-mem-monitor/prometheus-cpu-mem-monitor-0.0.0.1.ebuild b/app-metrics/prometheus-cpu-mem-monitor/prometheus-cpu-mem-monitor-0.0.0.1.ebuild new file mode 100644 index 0000000..c6dd46b --- /dev/null +++ b/app-metrics/prometheus-cpu-mem-monitor/prometheus-cpu-mem-monitor-0.0.0.1.ebuild @@ -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" +}