GNU bug report logs - #31911
[PATCH] services: Add prometheus-node-exporter-service-type.

Previous Next

Package: guix-patches;

Reported by: Gábor Boskovits <boskovits <at> gmail.com>

Date: Wed, 20 Jun 2018 13:01:01 UTC

Severity: normal

Tags: patch

Done: Gábor Boskovits <boskovits <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Gábor Boskovits <boskovits <at> gmail.com>
Subject: bug#31911: closed (services: Add prometheus-node-exporter-service-type.)
Date: Mon, 09 Jul 2018 08:44:02 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#31911: [PATCH] services: Add prometheus-node-exporter-service-type.

which was filed against the guix-patches package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 31911 <at> debbugs.gnu.org.

-- 
31911: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=31911
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Gábor Boskovits <boskovits <at> gmail.com>
To: 31911-done <at> debbugs.gnu.org
Subject: services: Add prometheus-node-exporter-service-type.
Date: Mon, 9 Jul 2018 10:43:11 +0200
[Message part 3 (text/plain, inline)]
Pushed to master as a33652ee336ae9a5d2ab5fd54bf2397caec42a0e.
[Message part 4 (text/html, inline)]
[Message part 5 (message/rfc822, inline)]
From: Gábor Boskovits <boskovits <at> gmail.com>
To: guix-patches <at> gnu.org
Cc: Gábor Boskovits <boskovits <at> gmail.com>
Subject: [PATCH] services: Add prometheus-node-exporter-service-type.
Date: Wed, 20 Jun 2018 14:59:46 +0200
* gnu/services/monitoring.scm (prometheus-node-exporter-service-type):
New variable.
(<prometheus-node-exporter-configuration>): New record type.
(prometheus-node-exporter-shepherd-service): New procedure.
* gnu/doc/guix.texi (Monitoring Services): Document it.
---
 doc/guix.texi               | 32 ++++++++++++++++++++++++++++++++
 gnu/services/monitoring.scm | 37 ++++++++++++++++++++++++++++++++++++-
 2 files changed, 68 insertions(+), 1 deletion(-)

diff --git a/doc/guix.texi b/doc/guix.texi
index 1ecb11002..6a649c549 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -15570,6 +15570,38 @@ Specify the path of the base URL.  This can be useful if
 @end table
 @end deftp
 
+@subsubheading Prometheus Node Exporter Service
+@cindex prometheus-node-exporter
+Prometheus node exporter is a Prometheus exporter. It makes hardware and
+operating system statistics provided by *NIX kernels available for the
+Prometheus monitoring system. This service should be deployed on all
+physical nodes and virtual machines, 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:
+
+@example
+(service prometheus-node-exporter-service-type
+         (prometheus-node-exporter-configuration
+           (web-listen-address ":9100")))
+@end example
+@end defvar
+
+@deftp {Data Type} prometheus-node-exporter-configuration
+Data type representing the configuration of @command{node_exporter}.
+
+@table @asis
+@item @code{package} (default: @code{go-github-com-prometheus-node-exporter})
+The prometheus-node-exporter package to use.
+@item @code{web-listen-address} (default: @code{":9100"})
+Bind the web interface to the specified address.
+
+@end table
+@end deftp
 
 @node Kerberos Services
 @subsubsection Kerberos Services
diff --git a/gnu/services/monitoring.scm b/gnu/services/monitoring.scm
index 49a65db4b..2fc90c867 100644
--- a/gnu/services/monitoring.scm
+++ b/gnu/services/monitoring.scm
@@ -26,7 +26,9 @@
   #:use-module (guix records)
   #:use-module (ice-9 match)
   #:export (darkstat-configuration
-            darkstat-service-type))
+            prometheus-node-exporter-configuration
+            darkstat-service-type
+            prometheus-node-exporter-service-type))
 
 
 ;;;
@@ -89,3 +91,36 @@ HTTP.")
                              (const %darkstat-accounts))
           (service-extension shepherd-root-service-type
                              (compose list darkstat-shepherd-service))))))
+
+(define-record-type* <prometheus-node-exporter-configuration>
+  prometheus-node-exporter-configuration
+  make-prometheus-node-exporter-configuration
+  prometheus-node-exporter-configuration?
+  (package prometheus-node-exporter-configuration-package
+           (default go-github-com-prometheus-node-exporter))
+  (web-listen-address prometheus-node-exporter-web-listen-address
+                      (default ":9100")))
+
+(define prometheus-node-exporter-shepherd-service
+  (match-lambda
+    (( $ <prometheus-node-exporter-configuration>
+         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))))))
+
+(define prometheus-node-exporter-service-type
+  (service-type
+   (name 'prometheus-node-exporter)
+   (description
+    "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))))))
-- 
2.17.1




This bug report was last modified 6 years and 318 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.