From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 28 07:04:36 2020 Received: (at submit) by debbugs.gnu.org; 28 Nov 2020 12:04:36 +0000 Received: from localhost ([127.0.0.1]:47035 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiyxw-0000zl-G9 for submit@debbugs.gnu.org; Sat, 28 Nov 2020 07:04:36 -0500 Received: from lists.gnu.org ([209.51.188.17]:50600) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiyxq-0000za-Mm for submit@debbugs.gnu.org; Sat, 28 Nov 2020 07:04:34 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:48094) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kiyxq-0006VS-GT for guix-patches@gnu.org; Sat, 28 Nov 2020 07:04:30 -0500 Received: from mira.cbaines.net ([212.71.252.8]:42918) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kiyxn-0000VM-K8 for guix-patches@gnu.org; Sat, 28 Nov 2020 07:04:30 -0500 Received: from localhost (188.28.112.52.threembb.co.uk [188.28.112.52]) by mira.cbaines.net (Postfix) with ESMTPSA id E5F3027BBF8 for ; Sat, 28 Nov 2020 12:04:25 +0000 (GMT) Received: from capella (localhost [127.0.0.1]) by localhost (OpenSMTPD) with ESMTP id cc399f04 for ; Sat, 28 Nov 2020 12:04:23 +0000 (UTC) User-agent: mu4e 1.4.13; emacs 27.1 From: Christopher Baines To: guix-patches@gnu.org Subject: [PATCH 0/6] Prometheus node exporter service enhancements Date: Sat, 28 Nov 2020 12:04:23 +0000 Message-ID: <87zh31u1q0.fsf@cbaines.net> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" Received-SPF: pass client-ip=212.71.252.8; envelope-from=mail@cbaines.net; helo=mira.cbaines.net X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -2.3 (--) --=-=-= Content-Type: text/plain Some patches to enhance the Prometheus node exporter service. Christopher Baines (6): services: monitoring: Neaten up the Prometheus node exporter. monitoring: Add user and group for the Prometheus node exporter. services: monitoring: Use a log file for Prometheus node exporter. doc: Remove redundant node exporter configuration from the example. monitoring: Enable the Prometheus node exporter textfile collector. monitoring: Support extra options for the Prometheus node exporter. doc/guix.texi | 15 ++++--- gnu/services/monitoring.scm | 81 ++++++++++++++++++++++++++++++------- 2 files changed, 76 insertions(+), 20 deletions(-) --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQKlBAEBCgCPFiEEPonu50WOcg2XVOCyXiijOwuE9XcFAl/CPMdfFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcRHG1haWxAY2Jh aW5lcy5uZXQACgkQXiijOwuE9XcXdg/8DjveluxX4m7VL7Ybsfha7BeaNCHuyCK2 Cj2XbjhNiLwiVaM8CIX1WGXo/wC3J3wqnuTcYKb9hdplGCG7yyG5BfC4xcjM/fja 4c2mzyX1BK2ZGQ2GaN/NwE1R1A+/YYJHhgBLd+hD53mi0WExKPE2ZDz8UlaDX0vv CyFX7Ef0eaom1cy1z/uHJwRCmqDDkPqmsPsrb147uVQw8o2BvrY7pXn8o0RZ4SgW MnoXs46BrFklw2gia4w1SC4Tc+xnAxXKCY70LJoBbVyvhAjyU6DErjKOSeorz6pt wqWTF2qeADzjUGvmV5p2enJePArspEPmjKzYp7pNOgRajG6xNGCVe2m0TsvoXJ6I s1+b6C7ltOCaWnxcDHC/N02qLUCVun4rbXsuhuNppmGy0TrrIAgj8UueSD5EpIC9 jNSupsPmLy9wTpn6iN4k7fXvp6aCjGiK0hPy3taTGlnjezreyQozuNXUmKjYtN0X sACcPxR6pxLBhArOLQZ/oFhNz2gTP5ARS6Bg24hGLmOl98X6x2uxtoIS1cS7cyit P9cuHRZ/FV+qoLhKYR21fCmyb9c7w7hb5qqG3Cu+wWk3FTrKCbfX+BXRVqfZDcD4 s4cp1uwjjwbQ6hhw2LxIpKAQC/ylLlBxMQ8i7g52C6earABjwZ/Zn5mrNjQfBjpZ DI8gFVs+VnU= =Ua8Y -----END PGP SIGNATURE----- --=-=-=-- From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 28 07:11:56 2020 Received: (at 44922) by debbugs.gnu.org; 28 Nov 2020 12:11:56 +0000 Received: from localhost ([127.0.0.1]:47041 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiz52-0001Ag-Cd for submit@debbugs.gnu.org; Sat, 28 Nov 2020 07:11:56 -0500 Received: from mira.cbaines.net ([212.71.252.8]:41124) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiz51-0001AT-Dn for 44922@debbugs.gnu.org; Sat, 28 Nov 2020 07:11:55 -0500 Received: from localhost (188.28.112.52.threembb.co.uk [188.28.112.52]) by mira.cbaines.net (Postfix) with ESMTPSA id D88C927BBF8 for <44922@debbugs.gnu.org>; Sat, 28 Nov 2020 12:11:53 +0000 (GMT) Received: from localhost (localhost [local]) by localhost (OpenSMTPD) with ESMTPA id 14ceb0c4 for <44922@debbugs.gnu.org>; Sat, 28 Nov 2020 12:11:49 +0000 (UTC) From: Christopher Baines To: 44922@debbugs.gnu.org Subject: [PATCH 1/6] services: monitoring: Neaten up the Prometheus node exporter. Date: Sat, 28 Nov 2020 12:11:44 +0000 Message-Id: <20201128121149.18639-1-mail@cbaines.net> X-Mailer: git-send-email 2.29.2 In-Reply-To: <87zh31u1q0.fsf@cbaines.net> References: <87zh31u1q0.fsf@cbaines.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 44922 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) Add relevant exports, as well as a comment to better indicate where the relevant code starts. * gnu/services/monitoring.scm (prometheus-node-exporter-service-type): Capitalise Prometheus. --- gnu/services/monitoring.scm | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/gnu/services/monitoring.scm b/gnu/services/monitoring.scm index da3d736ba6..92df52b5ae 100644 --- a/gnu/services/monitoring.scm +++ b/gnu/services/monitoring.scm @@ -36,8 +36,12 @@ #:use-module (srfi srfi-26) #:use-module (srfi srfi-35) #:export (darkstat-configuration - prometheus-node-exporter-configuration darkstat-service-type + + prometheus-node-exporter-configuration + prometheus-node-exporter-configuration? + prometheus-node-exporter-configuration-package + prometheus-node-exporter-web-listen-address prometheus-node-exporter-service-type zabbix-server-configuration @@ -110,6 +114,11 @@ HTTP.") (service-extension shepherd-root-service-type (compose list darkstat-shepherd-service)))))) + +;;; +;;; Prometheus node exporter +;;; + (define-record-type* prometheus-node-exporter-configuration make-prometheus-node-exporter-configuration @@ -137,7 +146,7 @@ HTTP.") (name 'prometheus-node-exporter) (description "Run @command{node_exporter} to serve hardware and OS metrics to -prometheus.") +Prometheus.") (extensions (list (service-extension shepherd-root-service-type -- 2.29.2 From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 28 07:12:00 2020 Received: (at 44922) by debbugs.gnu.org; 28 Nov 2020 12:12:00 +0000 Received: from localhost ([127.0.0.1]:47047 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiz56-0001BG-KK for submit@debbugs.gnu.org; Sat, 28 Nov 2020 07:12:00 -0500 Received: from mira.cbaines.net ([212.71.252.8]:41126) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiz51-0001AU-RU for 44922@debbugs.gnu.org; Sat, 28 Nov 2020 07:11:56 -0500 Received: from localhost (188.28.112.52.threembb.co.uk [188.28.112.52]) by mira.cbaines.net (Postfix) with ESMTPSA id 078AA27BBF9 for <44922@debbugs.gnu.org>; Sat, 28 Nov 2020 12:11:54 +0000 (GMT) Received: from localhost (localhost [local]) by localhost (OpenSMTPD) with ESMTPA id e7d35e11 for <44922@debbugs.gnu.org>; Sat, 28 Nov 2020 12:11:49 +0000 (UTC) From: Christopher Baines To: 44922@debbugs.gnu.org Subject: [PATCH 2/6] monitoring: Add user and group for the Prometheus node exporter. Date: Sat, 28 Nov 2020 12:11:45 +0000 Message-Id: <20201128121149.18639-2-mail@cbaines.net> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20201128121149.18639-1-mail@cbaines.net> References: <87zh31u1q0.fsf@cbaines.net> <20201128121149.18639-1-mail@cbaines.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 44922 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) So it doesn't run as root, and because this will help with the textfile exporter. * gnu/services/monitoring.scm (%prometheus-node-exporter-accounts): New variable. (prometheus-node-exporter-shepherd-service): Use the relevant user and group. (prometheus-node-exporter-service-type): Extend the account service type. --- gnu/services/monitoring.scm | 39 ++++++++++++++++++++++++++----------- 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/gnu/services/monitoring.scm b/gnu/services/monitoring.scm index 92df52b5ae..d0934e7f27 100644 --- a/gnu/services/monitoring.scm +++ b/gnu/services/monitoring.scm @@ -128,18 +128,33 @@ HTTP.") (web-listen-address prometheus-node-exporter-web-listen-address (default ":9100"))) +(define %prometheus-node-exporter-accounts + (list (user-account + (name "prometheus-node-exporter") + (group "prometheus-node-exporter") + (system? #t) + (comment "Prometheus node exporter daemon user") + (home-directory "/var/empty") + (shell (file-append shadow "/sbin/nologin"))) + (user-group + (name "prometheus-node-exporter") + (system? #t)))) + (define prometheus-node-exporter-shepherd-service (match-lambda (( $ package web-listen-address) - (shepherd-service - (documentation "Prometheus node exporter.") - (provision '(prometheus-node-exporter)) - (requirement '(networking)) - (start #~(make-forkexec-constructor - (list #$(file-append package "/bin/node_exporter") - "--web.listen-address" #$web-listen-address))) - (stop #~(make-kill-destructor)))))) + (list + (shepherd-service + (documentation "Prometheus node exporter.") + (provision '(prometheus-node-exporter)) + (requirement '(networking)) + (start #~(make-forkexec-constructor + (list #$(file-append package "/bin/node_exporter") + "--web.listen-address" #$web-listen-address) + #:user "prometheus-node-exporter" + #:group "prometheus-node-exporter")) + (stop #~(make-kill-destructor))))))) (define prometheus-node-exporter-service-type (service-type @@ -148,9 +163,11 @@ HTTP.") "Run @command{node_exporter} to serve hardware and OS metrics to Prometheus.") (extensions - (list (service-extension - shepherd-root-service-type - (compose list prometheus-node-exporter-shepherd-service)))) + (list + (service-extension account-service-type + (const %prometheus-node-exporter-accounts)) + (service-extension shepherd-root-service-type + prometheus-node-exporter-shepherd-service))) (default-value (prometheus-node-exporter-configuration)))) -- 2.29.2 From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 28 07:12:01 2020 Received: (at 44922) by debbugs.gnu.org; 28 Nov 2020 12:12:01 +0000 Received: from localhost ([127.0.0.1]:47049 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiz56-0001BI-T8 for submit@debbugs.gnu.org; Sat, 28 Nov 2020 07:12:01 -0500 Received: from mira.cbaines.net ([212.71.252.8]:41128) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiz52-0001An-WE for 44922@debbugs.gnu.org; Sat, 28 Nov 2020 07:11:57 -0500 Received: from localhost (188.28.112.52.threembb.co.uk [188.28.112.52]) by mira.cbaines.net (Postfix) with ESMTPSA id E956327BBF8 for <44922@debbugs.gnu.org>; Sat, 28 Nov 2020 12:11:55 +0000 (GMT) Received: from localhost (localhost [local]) by localhost (OpenSMTPD) with ESMTPA id c0ac55fc for <44922@debbugs.gnu.org>; Sat, 28 Nov 2020 12:11:49 +0000 (UTC) From: Christopher Baines To: 44922@debbugs.gnu.org Subject: [PATCH 3/6] services: monitoring: Use a log file for Prometheus node exporter. Date: Sat, 28 Nov 2020 12:11:46 +0000 Message-Id: <20201128121149.18639-3-mail@cbaines.net> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20201128121149.18639-1-mail@cbaines.net> References: <87zh31u1q0.fsf@cbaines.net> <20201128121149.18639-1-mail@cbaines.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 44922 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) This makes the logs easier to find and read. * gnu/services/monitoring.scm (prometheus-node-exporter-shepherd-service): Pass #:log-file to make-forkexec-constructor. --- gnu/services/monitoring.scm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gnu/services/monitoring.scm b/gnu/services/monitoring.scm index d0934e7f27..239306fa39 100644 --- a/gnu/services/monitoring.scm +++ b/gnu/services/monitoring.scm @@ -153,7 +153,8 @@ HTTP.") (list #$(file-append package "/bin/node_exporter") "--web.listen-address" #$web-listen-address) #:user "prometheus-node-exporter" - #:group "prometheus-node-exporter")) + #:group "prometheus-node-exporter" + #:log-file "/var/log/prometheus-node-exporter.log")) (stop #~(make-kill-destructor))))))) (define prometheus-node-exporter-service-type -- 2.29.2 From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 28 07:12:01 2020 Received: (at 44922) by debbugs.gnu.org; 28 Nov 2020 12:12:01 +0000 Received: from localhost ([127.0.0.1]:47051 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiz57-0001BP-5V for submit@debbugs.gnu.org; Sat, 28 Nov 2020 07:12:01 -0500 Received: from mira.cbaines.net ([212.71.252.8]:41130) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiz54-0001Au-6j for 44922@debbugs.gnu.org; Sat, 28 Nov 2020 07:11:58 -0500 Received: from localhost (188.28.112.52.threembb.co.uk [188.28.112.52]) by mira.cbaines.net (Postfix) with ESMTPSA id 1EC3327BBF9 for <44922@debbugs.gnu.org>; Sat, 28 Nov 2020 12:11:56 +0000 (GMT) Received: from localhost (localhost [local]) by localhost (OpenSMTPD) with ESMTPA id 9aa37a56 for <44922@debbugs.gnu.org>; Sat, 28 Nov 2020 12:11:49 +0000 (UTC) From: Christopher Baines To: 44922@debbugs.gnu.org Subject: [PATCH 4/6] doc: Remove redundant node exporter configuration from the example. Date: Sat, 28 Nov 2020 12:11:47 +0000 Message-Id: <20201128121149.18639-4-mail@cbaines.net> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20201128121149.18639-1-mail@cbaines.net> References: <87zh31u1q0.fsf@cbaines.net> <20201128121149.18639-1-mail@cbaines.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 44922 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * doc/guix.texi (Prometheus Node Exporter Service): Simplify the example. --- doc/guix.texi | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index b0126b961d..ed41091cae 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -21896,13 +21896,10 @@ where monitoring these statistics is desirable. @defvar {Scheme variable} prometheus-node-exporter-service-type This is the service type for the @uref{https://github.com/prometheus/node_exporter/, prometheus-node-exporter} -service, its value must be a @code{prometheus-node-exporter-configuration} -record as in this example: +service, its value must be a @code{prometheus-node-exporter-configuration}. @lisp -(service prometheus-node-exporter-service-type - (prometheus-node-exporter-configuration - (web-listen-address ":9100"))) +(service prometheus-node-exporter-service-type) @end lisp @end defvar -- 2.29.2 From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 28 07:12:01 2020 Received: (at 44922) by debbugs.gnu.org; 28 Nov 2020 12:12:02 +0000 Received: from localhost ([127.0.0.1]:47053 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiz57-0001BX-E9 for submit@debbugs.gnu.org; Sat, 28 Nov 2020 07:12:01 -0500 Received: from mira.cbaines.net ([212.71.252.8]:41132) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiz55-0001B2-BD for 44922@debbugs.gnu.org; Sat, 28 Nov 2020 07:11:59 -0500 Received: from localhost (188.28.112.52.threembb.co.uk [188.28.112.52]) by mira.cbaines.net (Postfix) with ESMTPSA id 76DFD27BBFA for <44922@debbugs.gnu.org>; Sat, 28 Nov 2020 12:11:58 +0000 (GMT) Received: from localhost (localhost [local]) by localhost (OpenSMTPD) with ESMTPA id c4cea26b for <44922@debbugs.gnu.org>; Sat, 28 Nov 2020 12:11:49 +0000 (UTC) From: Christopher Baines To: 44922@debbugs.gnu.org Subject: [PATCH 6/6] monitoring: Support extra options for the Prometheus node exporter. Date: Sat, 28 Nov 2020 12:11:49 +0000 Message-Id: <20201128121149.18639-6-mail@cbaines.net> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20201128121149.18639-1-mail@cbaines.net> References: <87zh31u1q0.fsf@cbaines.net> <20201128121149.18639-1-mail@cbaines.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 44922 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) There are plenty of options supported that the Guix configuration record doesn't help you with, so add this field to allow users to do their own thing. * gnu/services/monitoring.scm (): Add extra-options field. (prometheus-node-exporter-shepherd-service): Handle the extra options. * doc/guix.texi (Prometheus Node Exporter Service): Document this. --- doc/guix.texi | 3 +++ gnu/services/monitoring.scm | 9 ++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index 6cd65b8739..dc624d89ec 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -21918,6 +21918,9 @@ This directory can be used to export metrics specific to this machine. Files containing metrics in the text format, with the filename ending in @code{.prom} should be placed in this directory. +@item @code{extra-options} (default: @code{'()}) +Extra options to pass to the Prometheus node exporter. + @end table @end deftp diff --git a/gnu/services/monitoring.scm b/gnu/services/monitoring.scm index c4bae229b8..4b6f8ed623 100644 --- a/gnu/services/monitoring.scm +++ b/gnu/services/monitoring.scm @@ -128,7 +128,9 @@ HTTP.") (web-listen-address prometheus-node-exporter-web-listen-address (default ":9100")) (textfile-directory prometheus-node-exporter-textfile-directory - (default "/var/lib/prometheus/node-exporter"))) + (default "/var/lib/prometheus/node-exporter")) + (extra-options prometheus-node-exporter-extra-options + (default '()))) (define %prometheus-node-exporter-accounts (list (user-account @@ -145,7 +147,7 @@ HTTP.") (define prometheus-node-exporter-shepherd-service (match-lambda (( $ - package web-listen-address textfile-directory) + package web-listen-address textfile-directory extra-options) (list (shepherd-service (documentation "Prometheus node exporter.") @@ -157,7 +159,8 @@ HTTP.") #$@(if textfile-directory (list "--collector.textfile.directory" textfile-directory) - '())) + '()) + #$@extra-options) #:user "prometheus-node-exporter" #:group "prometheus-node-exporter" #:log-file "/var/log/prometheus-node-exporter.log")) -- 2.29.2 From debbugs-submit-bounces@debbugs.gnu.org Sat Nov 28 07:12:02 2020 Received: (at 44922) by debbugs.gnu.org; 28 Nov 2020 12:12:02 +0000 Received: from localhost ([127.0.0.1]:47055 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiz57-0001Bk-RR for submit@debbugs.gnu.org; Sat, 28 Nov 2020 07:12:02 -0500 Received: from mira.cbaines.net ([212.71.252.8]:41134) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kiz55-0001B4-FP for 44922@debbugs.gnu.org; Sat, 28 Nov 2020 07:11:59 -0500 Received: from localhost (188.28.112.52.threembb.co.uk [188.28.112.52]) by mira.cbaines.net (Postfix) with ESMTPSA id 57EED27BBF8 for <44922@debbugs.gnu.org>; Sat, 28 Nov 2020 12:11:58 +0000 (GMT) Received: from localhost (localhost [local]) by localhost (OpenSMTPD) with ESMTPA id e0705baf for <44922@debbugs.gnu.org>; Sat, 28 Nov 2020 12:11:49 +0000 (UTC) From: Christopher Baines To: 44922@debbugs.gnu.org Subject: [PATCH 5/6] monitoring: Enable the Prometheus node exporter textfile collector. Date: Sat, 28 Nov 2020 12:11:48 +0000 Message-Id: <20201128121149.18639-5-mail@cbaines.net> X-Mailer: git-send-email 2.29.2 In-Reply-To: <20201128121149.18639-1-mail@cbaines.net> References: <87zh31u1q0.fsf@cbaines.net> <20201128121149.18639-1-mail@cbaines.net> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 44922 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) * gnu/services/monitoring.scm (): Add textfile-directory. (prometheus-node-exporter-textfile-directory, prometheus-node-exporter-activation): New procedures. (prometheus-node-exporter-shepherd-service): Pass --collector.textfile.directoryto the service. (prometheus-node-exporter-service-type): Extend the activation service type. * doc/guix.texi (Prometheus Node Exporter Service): Document. --- doc/guix.texi | 5 +++++ gnu/services/monitoring.scm | 27 ++++++++++++++++++++++++--- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/doc/guix.texi b/doc/guix.texi index ed41091cae..6cd65b8739 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -21913,6 +21913,11 @@ The prometheus-node-exporter package to use. @item @code{web-listen-address} (default: @code{":9100"}) Bind the web interface to the specified address. +@item @code{textfile-directory} (default: @code{"/var/lib/prometheus/node-exporter"}) +This directory can be used to export metrics specific to this machine. +Files containing metrics in the text format, with the filename ending in +@code{.prom} should be placed in this directory. + @end table @end deftp diff --git a/gnu/services/monitoring.scm b/gnu/services/monitoring.scm index 239306fa39..c4bae229b8 100644 --- a/gnu/services/monitoring.scm +++ b/gnu/services/monitoring.scm @@ -126,7 +126,9 @@ HTTP.") (package prometheus-node-exporter-configuration-package (default go-github-com-prometheus-node-exporter)) (web-listen-address prometheus-node-exporter-web-listen-address - (default ":9100"))) + (default ":9100")) + (textfile-directory prometheus-node-exporter-textfile-directory + (default "/var/lib/prometheus/node-exporter"))) (define %prometheus-node-exporter-accounts (list (user-account @@ -143,7 +145,7 @@ HTTP.") (define prometheus-node-exporter-shepherd-service (match-lambda (( $ - package web-listen-address) + package web-listen-address textfile-directory) (list (shepherd-service (documentation "Prometheus node exporter.") @@ -151,12 +153,29 @@ HTTP.") (requirement '(networking)) (start #~(make-forkexec-constructor (list #$(file-append package "/bin/node_exporter") - "--web.listen-address" #$web-listen-address) + "--web.listen-address" #$web-listen-address + #$@(if textfile-directory + (list "--collector.textfile.directory" + textfile-directory) + '())) #:user "prometheus-node-exporter" #:group "prometheus-node-exporter" #:log-file "/var/log/prometheus-node-exporter.log")) (stop #~(make-kill-destructor))))))) +(define (prometheus-node-exporter-activation config) + (with-imported-modules '((guix build utils)) + #~(let ((textfile-directory + #$(prometheus-node-exporter-textfile-directory config))) + (use-modules (guix build utils)) + + (when textfile-directory + (let ((user (getpw "prometheus-node-exporter"))) + #t + (mkdir-p textfile-directory) + (chown textfile-directory (passwd:uid user) (passwd:gid user)) + (chmod textfile-directory #o775)))))) + (define prometheus-node-exporter-service-type (service-type (name 'prometheus-node-exporter) @@ -167,6 +186,8 @@ Prometheus.") (list (service-extension account-service-type (const %prometheus-node-exporter-accounts)) + (service-extension activation-service-type + prometheus-node-exporter-activation) (service-extension shepherd-root-service-type prometheus-node-exporter-shepherd-service))) (default-value (prometheus-node-exporter-configuration)))) -- 2.29.2 From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 06 17:27:20 2020 Received: (at 44922) by debbugs.gnu.org; 6 Dec 2020 22:27:20 +0000 Received: from localhost ([127.0.0.1]:51622 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1km2Uy-00072s-1l for submit@debbugs.gnu.org; Sun, 06 Dec 2020 17:27:20 -0500 Received: from eggs.gnu.org ([209.51.188.92]:59298) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1km2Uw-00072e-3J for 44922@debbugs.gnu.org; Sun, 06 Dec 2020 17:27:18 -0500 Received: from fencepost.gnu.org ([2001:470:142:3::e]:44628) by eggs.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1km2Uq-0002MC-K1; Sun, 06 Dec 2020 17:27:12 -0500 Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=45582 helo=ribbon) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1km2Up-0005ba-Nq; Sun, 06 Dec 2020 17:27:12 -0500 From: =?utf-8?Q?Ludovic_Court=C3=A8s?= To: Christopher Baines Subject: Re: [bug#44922] [PATCH 0/6] Prometheus node exporter service enhancements References: <87zh31u1q0.fsf@cbaines.net> Date: Sun, 06 Dec 2020 23:27:10 +0100 In-Reply-To: <87zh31u1q0.fsf@cbaines.net> (Christopher Baines's message of "Sat, 28 Nov 2020 12:04:23 +0000") Message-ID: <87mtyq370h.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: 44922 Cc: 44922@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -3.3 (---) Hi, Christopher Baines skribis: > services: monitoring: Neaten up the Prometheus node exporter. > monitoring: Add user and group for the Prometheus node exporter. > services: monitoring: Use a log file for Prometheus node exporter. > doc: Remove redundant node exporter configuration from the example. > monitoring: Enable the Prometheus node exporter textfile collector. > monitoring: Support extra options for the Prometheus node exporter. ^ Should be =E2=80=9Cservices: prometheus-node-exporter: =E2=80=A6=E2=80=9D. Apart from that, on a quick look it LGTM. Go for it! Thanks, Ludo=E2=80=99. From debbugs-submit-bounces@debbugs.gnu.org Mon Dec 07 04:22:15 2020 Received: (at 44922-done) by debbugs.gnu.org; 7 Dec 2020 09:22:15 +0000 Received: from localhost ([127.0.0.1]:52394 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kmCil-0004Yh-CW for submit@debbugs.gnu.org; Mon, 07 Dec 2020 04:22:15 -0500 Received: from mira.cbaines.net ([212.71.252.8]:51830) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1kmCik-0004Ya-Gh for 44922-done@debbugs.gnu.org; Mon, 07 Dec 2020 04:22:15 -0500 Received: from localhost (188.28.112.220.threembb.co.uk [188.28.112.220]) by mira.cbaines.net (Postfix) with ESMTPSA id CD4BA27BC00; Mon, 7 Dec 2020 09:22:13 +0000 (GMT) Received: from capella (localhost [127.0.0.1]) by localhost (OpenSMTPD) with ESMTP id 4ef36497; Mon, 7 Dec 2020 09:22:11 +0000 (UTC) References: <87zh31u1q0.fsf@cbaines.net> <87mtyq370h.fsf@gnu.org> User-agent: mu4e 1.4.13; emacs 27.1 From: Christopher Baines To: Ludovic =?utf-8?Q?Court=C3=A8s?= Subject: Re: [bug#44922] [PATCH 0/6] Prometheus node exporter service enhancements In-reply-to: <87mtyq370h.fsf@gnu.org> Date: Mon, 07 Dec 2020 09:22:08 +0000 Message-ID: <87a6uqq8cf.fsf@cbaines.net> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha512; protocol="application/pgp-signature" X-Spam-Score: -0.0 (/) X-Debbugs-Envelope-To: 44922-done Cc: 44922-done@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: debbugs-submit-bounces@debbugs.gnu.org Sender: "Debbugs-submit" X-Spam-Score: -1.0 (-) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Ludovic Court=C3=A8s writes: > Hi, > > Christopher Baines skribis: > >> services: monitoring: Neaten up the Prometheus node exporter. >> monitoring: Add user and group for the Prometheus node exporter. >> services: monitoring: Use a log file for Prometheus node exporter. >> doc: Remove redundant node exporter configuration from the example. >> monitoring: Enable the Prometheus node exporter textfile collector. >> monitoring: Support extra options for the Prometheus node exporter. > ^ > Should be =E2=80=9Cservices: prometheus-node-exporter: =E2=80=A6=E2=80=9D. > > Apart from that, on a quick look it LGTM. Go for it! Great, I've pushed as 92f7c11af26580a7e6543efa94531652f187923a. Thanks, Chris --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQKlBAEBCgCPFiEEPonu50WOcg2XVOCyXiijOwuE9XcFAl/N9EBfFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldDNF ODlFRUU3NDU4RTcyMEQ5NzU0RTBCMjVFMjhBMzNCMEI4NEY1NzcRHG1haWxAY2Jh aW5lcy5uZXQACgkQXiijOwuE9XdqGg/+I1wWWIcPeQHIqbRyn5CiPwsi3RME5YEf 6UTgi7yjiKp1cWYjevwh2LYuwo65Qp31CMcrG8yXosGpaMfrvivCM7YXBDgXX6J0 r+T8FpqMWUhXhRTcfyn3dcgQWkdj6hX9Kh7Dc33/DcNdVfX2JSMGdedT+2nvRbqw LsHIKwdz7DqgdWKnILDvqVG/EgqOkQE6P4Xe6nF/n7hSuN9UO4onHLB+Nf/vy9kq K7tBfjdmsKsQ2EzBc3JDw4q5I3d95CuPDIiqqBYrHYoKqD+XZDAI42qJ4dj9bBAq kcaoXS6b+ScxlMVRiVnMqzQuQZ/I1h8eTGPWTJYRsN41+SKhVNIzvbgiVxStsXTE sVsiWiVdvp4C3CD8WflyGCiuorLmpgf0KD6lUVg00bp/TrCZlO/E3N7maXkYLH3O zuypRTujjxYSYi19b0igFRuEpn2VZxmT6ovmHf0URvKZrN4bAurwpzpYQLNOoNm2 2cqauI+c2+5mxvD/NAM+qGpwnxGCOlaHiV4yHvbJmXWStmAAGBMnFcg7grGljL4Q hOtrdhWeq+KlhJAOHPy0aCLK8PZD2WjZg3Y4+Rm2i1x7e5I9Peh2wbzSLUSg9/1Q Oot0bJL0PNxnXs5KKOAObHW6HE8UUi2obFawQ62GxkEI1BthKsHqgcaLNbOp2+2J wkFsahNkhQQ= =Gn5L -----END PGP SIGNATURE----- --=-=-=-- From unknown Sat Sep 20 04:47:08 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Mon, 04 Jan 2021 12:24:06 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator