From patchwork Sat Nov 28 12:11:44 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christopher Baines X-Patchwork-Id: 25405 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 5DC0427BBF9; Sat, 28 Nov 2020 12:12:09 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.9 required=5.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,UNPARSEABLE_RELAY autolearn=unavailable autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 0ABD827BBF8 for ; Sat, 28 Nov 2020 12:12:09 +0000 (GMT) Received: from localhost ([::1]:55706 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kiz5E-0000DA-2Z for patchwork@mira.cbaines.net; Sat, 28 Nov 2020 07:12:08 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:49282) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kiz58-0000D1-Se for guix-patches@gnu.org; Sat, 28 Nov 2020 07:12:02 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:35509) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kiz58-0002uE-Jp for guix-patches@gnu.org; Sat, 28 Nov 2020 07:12:02 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1kiz58-0001Br-Cx for guix-patches@gnu.org; Sat, 28 Nov 2020 07:12:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#44922] [PATCH 1/6] services: monitoring: Neaten up the Prometheus node exporter. Resent-From: Christopher Baines Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 28 Nov 2020 12:12:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 44922 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 44922@debbugs.gnu.org Received: via spool by 44922-submit@debbugs.gnu.org id=B44922.16065655164510 (code B ref 44922); Sat, 28 Nov 2020 12:12:02 +0000 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 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 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches 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 From patchwork Sat Nov 28 12:11:45 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christopher Baines X-Patchwork-Id: 25407 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id EA62227BBF9; Sat, 28 Nov 2020 12:12:15 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.9 required=5.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,UNPARSEABLE_RELAY autolearn=unavailable autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 8960427BBF8 for ; Sat, 28 Nov 2020 12:12:15 +0000 (GMT) Received: from localhost ([::1]:56048 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kiz5K-0000PU-NW for patchwork@mira.cbaines.net; Sat, 28 Nov 2020 07:12:14 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:49284) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kiz59-0000D7-A4 for guix-patches@gnu.org; Sat, 28 Nov 2020 07:12:03 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:35510) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kiz59-0002uK-2p for guix-patches@gnu.org; Sat, 28 Nov 2020 07:12:03 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1kiz58-0001C5-T8 for guix-patches@gnu.org; Sat, 28 Nov 2020 07:12:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#44922] [PATCH 2/6] monitoring: Add user and group for the Prometheus node exporter. Resent-From: Christopher Baines Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 28 Nov 2020 12:12:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 44922 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 44922@debbugs.gnu.org Received: via spool by 44922-submit@debbugs.gnu.org id=B44922.16065655204547 (code B ref 44922); Sat, 28 Nov 2020 12:12:02 +0000 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 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 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches 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)))) From patchwork Sat Nov 28 12:11:46 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christopher Baines X-Patchwork-Id: 25406 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 5EE0827BBF9; Sat, 28 Nov 2020 12:12:11 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.9 required=5.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,UNPARSEABLE_RELAY autolearn=unavailable autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 12E0B27BBF8 for ; Sat, 28 Nov 2020 12:12:11 +0000 (GMT) Received: from localhost ([::1]:55768 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kiz5G-0000Ff-8U for patchwork@mira.cbaines.net; Sat, 28 Nov 2020 07:12:10 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:49300) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kiz59-0000DV-Pz for guix-patches@gnu.org; Sat, 28 Nov 2020 07:12:03 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:35511) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kiz59-0002uQ-Hh for guix-patches@gnu.org; Sat, 28 Nov 2020 07:12:03 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1kiz59-0001CC-9d for guix-patches@gnu.org; Sat, 28 Nov 2020 07:12:03 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#44922] [PATCH 3/6] services: monitoring: Use a log file for Prometheus node exporter. Resent-From: Christopher Baines Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 28 Nov 2020 12:12:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 44922 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 44922@debbugs.gnu.org Received: via spool by 44922-submit@debbugs.gnu.org id=B44922.16065655214554 (code B ref 44922); Sat, 28 Nov 2020 12:12:03 +0000 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 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 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches 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 From patchwork Sat Nov 28 12:11:47 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christopher Baines X-Patchwork-Id: 25409 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 2DAC127BBF9; Sat, 28 Nov 2020 12:12:22 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.9 required=5.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,UNPARSEABLE_RELAY, URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id CC8C427BBF8 for ; Sat, 28 Nov 2020 12:12:21 +0000 (GMT) Received: from localhost ([::1]:56470 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kiz5R-0000aH-1D for patchwork@mira.cbaines.net; Sat, 28 Nov 2020 07:12:21 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:49306) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kiz5A-0000E1-2Y for guix-patches@gnu.org; Sat, 28 Nov 2020 07:12:04 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:35512) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kiz59-0002uZ-Ra for guix-patches@gnu.org; Sat, 28 Nov 2020 07:12:03 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1kiz59-0001CK-Md for guix-patches@gnu.org; Sat, 28 Nov 2020 07:12:03 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#44922] [PATCH 4/6] doc: Remove redundant node exporter configuration from the example. Resent-From: Christopher Baines Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 28 Nov 2020 12:12:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 44922 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 44922@debbugs.gnu.org Received: via spool by 44922-submit@debbugs.gnu.org id=B44922.16065655214562 (code B ref 44922); Sat, 28 Nov 2020 12:12:03 +0000 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 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 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches * 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 From patchwork Sat Nov 28 12:11:48 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christopher Baines X-Patchwork-Id: 25410 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id A87AF27BBF9; Sat, 28 Nov 2020 12:12:27 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.9 required=5.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,UNPARSEABLE_RELAY, URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 32DF327BBF8 for ; Sat, 28 Nov 2020 12:12:27 +0000 (GMT) Received: from localhost ([::1]:56760 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kiz5W-0000i4-Dm for patchwork@mira.cbaines.net; Sat, 28 Nov 2020 07:12:26 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:49316) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kiz5A-0000F4-SI for guix-patches@gnu.org; Sat, 28 Nov 2020 07:12:04 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:35514) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kiz5A-0002uu-Kt for guix-patches@gnu.org; Sat, 28 Nov 2020 07:12:04 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1kiz5A-0001CY-FT for guix-patches@gnu.org; Sat, 28 Nov 2020 07:12:04 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#44922] [PATCH 5/6] monitoring: Enable the Prometheus node exporter textfile collector. Resent-From: Christopher Baines Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 28 Nov 2020 12:12:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 44922 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 44922@debbugs.gnu.org Received: via spool by 44922-submit@debbugs.gnu.org id=B44922.16065655224589 (code B ref 44922); Sat, 28 Nov 2020 12:12:04 +0000 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 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 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches * 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)))) From patchwork Sat Nov 28 12:11:49 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Christopher Baines X-Patchwork-Id: 25408 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id 00CDD27BBF9; Sat, 28 Nov 2020 12:12:17 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.9 required=5.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_PASS,UNPARSEABLE_RELAY, URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTPS id 9191227BBF8 for ; Sat, 28 Nov 2020 12:12:17 +0000 (GMT) Received: from localhost ([::1]:56188 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kiz5M-0000T4-PG for patchwork@mira.cbaines.net; Sat, 28 Nov 2020 07:12:16 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:49312) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kiz5A-0000Ea-GB for guix-patches@gnu.org; Sat, 28 Nov 2020 07:12:04 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:35513) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1kiz5A-0002uk-8V for guix-patches@gnu.org; Sat, 28 Nov 2020 07:12:04 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1kiz5A-0001CR-2x for guix-patches@gnu.org; Sat, 28 Nov 2020 07:12:04 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#44922] [PATCH 6/6] monitoring: Support extra options for the Prometheus node exporter. Resent-From: Christopher Baines Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sat, 28 Nov 2020 12:12:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 44922 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 44922@debbugs.gnu.org Received: via spool by 44922-submit@debbugs.gnu.org id=B44922.16065655224575 (code B ref 44922); Sat, 28 Nov 2020 12:12:04 +0000 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 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 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches 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"))