summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJordan Bracco <href@random.sh>2022-03-16 19:26:32 +0000
committerJordan Bracco <href@random.sh>2022-03-16 19:26:32 +0000
commit30dd00bbf97354ee81c417032008298e3ec09582 (patch)
tree9a955a969549c775f4ac49763f4607dd6b1f9f89
parentsysutils/opa: Update 0.32.0 -> 0.38.1 (diff)
new port: sysutils/prometheus-smartctl-exporterhref/sysutils/prometheus-smartctl-exporter
-rw-r--r--sysutils/prometheus-smartctl-exporter/Makefile39
-rw-r--r--sysutils/prometheus-smartctl-exporter/distinfo31
-rw-r--r--sysutils/prometheus-smartctl-exporter/files/patch-options.go20
-rw-r--r--sysutils/prometheus-smartctl-exporter/files/patch-smartctl__exporter.yaml22
-rwxr-xr-xsysutils/prometheus-smartctl-exporter/files/prometheus-smartctl-exporter.in52
-rw-r--r--sysutils/prometheus-smartctl-exporter/pkg-descr4
-rw-r--r--sysutils/prometheus-smartctl-exporter/pkg-plist2
7 files changed, 170 insertions, 0 deletions
diff --git a/sysutils/prometheus-smartctl-exporter/Makefile b/sysutils/prometheus-smartctl-exporter/Makefile
new file mode 100644
index 000000000000..7fbd3598d495
--- /dev/null
+++ b/sysutils/prometheus-smartctl-exporter/Makefile
@@ -0,0 +1,39 @@
+PORTNAME= prometheus-smartctl-exporter
+DISTVERSION= 0.6.a.20201014
+CATEGORIES= sysutils
+
+MAINTAINER= href@random.sh
+COMMENT= Prometheus metrics exporter for smartmontools
+
+LICENSE= LGPL3
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+USES= go:modules
+USE_GITHUB= yes
+USE_RC_SUBR= ${PORTNAME}
+
+GH_ACCOUNT= prometheus-community
+GH_PROJECT= smartctl_exporter
+GH_TAGNAME= e27581d56ad80340fb076d3ce22cef337ed76679
+GH_TUPLE= \
+ beorn7:perks:v1.0.1:beorn7_perks/vendor/github.com/beorn7/perks \
+ cespare:xxhash:v2.1.1:cespare_xxhash_v2/vendor/github.com/cespare/xxhash/v2 \
+ go-yaml:yaml:v2.3.0:go_yaml_yaml/vendor/gopkg.in/yaml.v2 \
+ golang:protobuf:v1.4.2:golang_protobuf/vendor/github.com/golang/protobuf \
+ golang:sys:f1bc736245b1:golang_sys/vendor/golang.org/x/sys \
+ matttproud:golang_protobuf_extensions:v1.0.1:matttproud_golang_protobuf_extensions/vendor/github.com/matttproud/golang_protobuf_extensions \
+ prometheus:client_golang:v1.7.1:prometheus_client_golang/vendor/github.com/prometheus/client_golang \
+ prometheus:client_model:v0.2.0:prometheus_client_model/vendor/github.com/prometheus/client_model \
+ prometheus:common:v0.10.0:prometheus_common/vendor/github.com/prometheus/common \
+ prometheus:procfs:v0.1.3:prometheus_procfs/vendor/github.com/prometheus/procfs \
+ protocolbuffers:protobuf-go:v1.23.0:protocolbuffers_protobuf_go/vendor/google.golang.org/protobuf \
+ tidwall:gjson:v1.6.0:tidwall_gjson/vendor/github.com/tidwall/gjson \
+ tidwall:match:v1.0.1:tidwall_match/vendor/github.com/tidwall/match \
+ tidwall:pretty:v1.0.0:tidwall_pretty/vendor/github.com/tidwall/pretty
+
+GO_TARGET= .:${PREFIX}/libexec/${PORTNAME}
+
+post-install:
+ ${INSTALL_DATA} ${WRKSRC}/smartctl_exporter.yaml ${STAGEDIR}${LOCALBASE}/etc/prometheus-smartctl-exporter.yml.sample
+
+.include <bsd.port.mk>
diff --git a/sysutils/prometheus-smartctl-exporter/distinfo b/sysutils/prometheus-smartctl-exporter/distinfo
new file mode 100644
index 000000000000..65c49f8a6271
--- /dev/null
+++ b/sysutils/prometheus-smartctl-exporter/distinfo
@@ -0,0 +1,31 @@
+TIMESTAMP = 1647454630
+SHA256 (prometheus-community-smartctl_exporter-0.6.a.20201014-e27581d56ad80340fb076d3ce22cef337ed76679_GH0.tar.gz) = d6adda1384fddd9f003d5282b09190ae3140f3fc91c5dfdc1700744218852644
+SIZE (prometheus-community-smartctl_exporter-0.6.a.20201014-e27581d56ad80340fb076d3ce22cef337ed76679_GH0.tar.gz) = 24891
+SHA256 (beorn7-perks-v1.0.1_GH0.tar.gz) = 98db84bb0224a26094e6adba91b7ee7a1a7ace28cb648d818f8e779e6a19f825
+SIZE (beorn7-perks-v1.0.1_GH0.tar.gz) = 10867
+SHA256 (cespare-xxhash-v2.1.1_GH0.tar.gz) = 0ee31178d2c5a1249be4e26294a2f428008dc4e1ecbbfbe47f74e41026df1148
+SIZE (cespare-xxhash-v2.1.1_GH0.tar.gz) = 9292
+SHA256 (go-yaml-yaml-v2.3.0_GH0.tar.gz) = 42027002bf258009d498600b04b8c9cbb29d2193185ea7bfa8fefe194fe72a07
+SIZE (go-yaml-yaml-v2.3.0_GH0.tar.gz) = 72816
+SHA256 (golang-protobuf-v1.4.2_GH0.tar.gz) = a1e486b3ed6f502c43e10cb28bde4e8f020a420ef9958d3fbe61801492c07c87
+SIZE (golang-protobuf-v1.4.2_GH0.tar.gz) = 171778
+SHA256 (golang-sys-f1bc736245b1_GH0.tar.gz) = 3d505599b75124b006f437147b838efc9c3c59cb95f9b545e3352160abb073aa
+SIZE (golang-sys-f1bc736245b1_GH0.tar.gz) = 1054443
+SHA256 (matttproud-golang_protobuf_extensions-v1.0.1_GH0.tar.gz) = 2def0ee6f6b12b1efc0e3007d89f598608a072610e805c3655ea9d13c3ead49b
+SIZE (matttproud-golang_protobuf_extensions-v1.0.1_GH0.tar.gz) = 37184
+SHA256 (prometheus-client_golang-v1.7.1_GH0.tar.gz) = e61fefe06b7ac561c77435c98336f4ccc8cee60420de3a39db6d09fb7b83e9ed
+SIZE (prometheus-client_golang-v1.7.1_GH0.tar.gz) = 160050
+SHA256 (prometheus-client_model-v0.2.0_GH0.tar.gz) = 4ab1be9cdfa702d7f49beeb09a256bcc6a2aad55e8a0a37e7732a46934264e12
+SIZE (prometheus-client_model-v0.2.0_GH0.tar.gz) = 10986
+SHA256 (prometheus-common-v0.10.0_GH0.tar.gz) = 349381082ea8e66637c2d2475f1ae0e74ca04a7b91eb3b96817c261b87668fd3
+SIZE (prometheus-common-v0.10.0_GH0.tar.gz) = 107763
+SHA256 (prometheus-procfs-v0.1.3_GH0.tar.gz) = 0b0872058bfdef11d9942535c992420150724c3b5a912a48a8d2ea26ac39efa6
+SIZE (prometheus-procfs-v0.1.3_GH0.tar.gz) = 156868
+SHA256 (protocolbuffers-protobuf-go-v1.23.0_GH0.tar.gz) = e7266bedaa4f110216fce52ae533dc5eba475d3829bb0592e8876684e202ae1f
+SIZE (protocolbuffers-protobuf-go-v1.23.0_GH0.tar.gz) = 1214648
+SHA256 (tidwall-gjson-v1.6.0_GH0.tar.gz) = 182c85373d19f27e09e17b987027718b3f1c753918a2f6c71b4019f02fcecc53
+SIZE (tidwall-gjson-v1.6.0_GH0.tar.gz) = 50674
+SHA256 (tidwall-match-v1.0.1_GH0.tar.gz) = e20457b7f9fbcdc60c239b4651e70b9a8caded8e5e09cd285078ba7f9c4e639f
+SIZE (tidwall-match-v1.0.1_GH0.tar.gz) = 4367
+SHA256 (tidwall-pretty-v1.0.0_GH0.tar.gz) = 6c0288d56a8cd066977cfc98caa8a331c148a4cd98aae47a37819d4709bdf420
+SIZE (tidwall-pretty-v1.0.0_GH0.tar.gz) = 8824
diff --git a/sysutils/prometheus-smartctl-exporter/files/patch-options.go b/sysutils/prometheus-smartctl-exporter/files/patch-options.go
new file mode 100644
index 000000000000..0bf25b9742b8
--- /dev/null
+++ b/sysutils/prometheus-smartctl-exporter/files/patch-options.go
@@ -0,0 +1,20 @@
+--- options.go.orig 2020-11-14 15:36:34 UTC
++++ options.go
+@@ -32,7 +32,7 @@ type Options struct {
+
+ // Parse options from yaml config file
+ func loadOptions() Options {
+- configFile := flag.String("config", "/etc/smartctl_exporter.yaml", "Path to smartctl_exporter config file")
++ configFile := flag.String("config", "/usr/local/etc/prometheus-smartctl-exporter.yml", "Path to smartctl_exporter config file")
+ verbose := flag.Bool("verbose", false, "Verbose log output")
+ debug := flag.Bool("debug", false, "Debug log output")
+ version := flag.Bool("version", false, "Show application version and exit")
+@@ -56,7 +56,7 @@ func loadOptions() Options {
+ BindTo: "9633",
+ URLPath: "/metrics",
+ FakeJSON: false,
+- SMARTctlLocation: "/usr/sbin/smartctl",
++ SMARTctlLocation: "/usr/local/sbin/smartctl",
+ CollectPeriod: "60s",
+ Devices: []string{},
+ },
diff --git a/sysutils/prometheus-smartctl-exporter/files/patch-smartctl__exporter.yaml b/sysutils/prometheus-smartctl-exporter/files/patch-smartctl__exporter.yaml
new file mode 100644
index 000000000000..66682bc9fd2c
--- /dev/null
+++ b/sysutils/prometheus-smartctl-exporter/files/patch-smartctl__exporter.yaml
@@ -0,0 +1,22 @@
+--- smartctl_exporter.yaml.orig 2020-11-14 15:36:34 UTC
++++ smartctl_exporter.yaml
+@@ -2,18 +2,6 @@ smartctl_exporter:
+ bind_to: "0.0.0.0:9633"
+ url_path: "/metrics"
+ fake_json: no
+- smartctl_location: /usr/sbin/smartctl
+ collect_not_more_than_period: 20s
+ devices:
+- - /dev/sda
+- - /dev/sdb
+- - /dev/sdc
+- - /dev/sdd
+- - /dev/sde
+- - /dev/sdf
+- - /dev/sdg
+- - /dev/sdh
+- - /dev/sdi
+- - /dev/sdj
+- - /dev/sdk
+- - /dev/sdl
++ - /dev/ada0
diff --git a/sysutils/prometheus-smartctl-exporter/files/prometheus-smartctl-exporter.in b/sysutils/prometheus-smartctl-exporter/files/prometheus-smartctl-exporter.in
new file mode 100755
index 000000000000..5c1b08287051
--- /dev/null
+++ b/sysutils/prometheus-smartctl-exporter/files/prometheus-smartctl-exporter.in
@@ -0,0 +1,52 @@
+#!/bin/sh
+
+# PROVIDE: prometheus_smartctl_exporter
+# REQUIRE: LOGIN
+# KEYWORD: shutdown
+#
+# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
+# to enable this service:
+#
+# prometheus_smartctl_exporter_enable (bool): Set to NO by default.
+# Set it to YES to enable prometheus_smartctl_exporter.
+# prometheus_smartctl_exporter_user (string): Set user that prometheus_smartctl_exporter will run under
+# Default is "nobody".
+# prometheus_smartctl_exporter_group (string): Set group that prometheus_smartctl_exporter will run under
+# Default is "nobody".
+# prometheus_smartctl_exporter_args (string): Set extra arguments to pass to prometheus_smartctl_exporter
+# Default is "".
+
+. /etc/rc.subr
+
+name=prometheus_smartctl_exporter
+rcvar=prometheus_smartctl_exporter_enable
+
+load_rc_config $name
+
+: ${prometheus_smartctl_exporter_enable:="NO"}
+: ${prometheus_smartctl_exporter_user:="root"}
+: ${prometheus_smartctl_exporter_group:="operator"}
+: ${prometheus_smartctl_exporter_args:=""}
+
+
+pidfile=/var/run/prometheus-smartctl-exporter.pid
+command="/usr/sbin/daemon"
+procname="%%PREFIX%%/libexec/prometheus-smartctl-exporter"
+command_args="-f -p ${pidfile} -T ${name} \
+ /usr/bin/env ${procname} \
+ ${prometheus_smartctl_exporter_args}"
+
+start_precmd=prometheus_smartctl_exporter_startprecmd
+
+prometheus_smartctl_exporter_startprecmd()
+{
+ if [ ! -e ${pidfile} ]; then
+ install \
+ -o ${prometheus_smartctl_exporter_user} \
+ -g ${prometheus_smartctl_exporter_group} \
+ /dev/null ${pidfile};
+ fi
+}
+
+load_rc_config $name
+run_rc_command "$1"
diff --git a/sysutils/prometheus-smartctl-exporter/pkg-descr b/sysutils/prometheus-smartctl-exporter/pkg-descr
new file mode 100644
index 000000000000..640317f89226
--- /dev/null
+++ b/sysutils/prometheus-smartctl-exporter/pkg-descr
@@ -0,0 +1,4 @@
+This is a exporter for the Prometheus metrics for SMARTMONTOOLS using
+the `smartctl` command and JSON output.
+
+WWW: https://github.com/prometheus-community/smartctl_exporter
diff --git a/sysutils/prometheus-smartctl-exporter/pkg-plist b/sysutils/prometheus-smartctl-exporter/pkg-plist
new file mode 100644
index 000000000000..7f507bc6229f
--- /dev/null
+++ b/sysutils/prometheus-smartctl-exporter/pkg-plist
@@ -0,0 +1,2 @@
+libexec/prometheus-smartctl-exporter
+@sample etc/prometheus-smartctl-exporter.yml.sample