net-mgmt/smartctl_exporter: New port.
smartctl_exporter is an exporter that exports smartctl json statistics to Prometheus.
This commit is contained in:
parent
20b874de3a
commit
0263ada87b
|
@ -373,6 +373,7 @@
|
|||
SUBDIR += sendip
|
||||
SUBDIR += sipcalc
|
||||
SUBDIR += sjitter
|
||||
SUBDIR += smartctl_exporter
|
||||
SUBDIR += smokeping
|
||||
SUBDIR += snmp4nagios
|
||||
SUBDIR += snmptt
|
||||
|
|
|
@ -0,0 +1,59 @@
|
|||
PORTNAME= smartctl_exporter
|
||||
PORTVERSION= 0.9.1
|
||||
DISTVERSIONPREFIX= v
|
||||
CATEGORIES= net-mgmt
|
||||
|
||||
MAINTAINER= delphij@FreeBSD.org
|
||||
COMMENT= Prometheus metrics exporter for smartctl
|
||||
WWW= https://github.com/prometheus-community/smartctl_exporter
|
||||
|
||||
LICENSE= LGPL3
|
||||
|
||||
USES= go:modules
|
||||
USE_GITHUB= yes
|
||||
GH_ACCOUNT= prometheus-community
|
||||
|
||||
USE_RC_SUBR= smartctl_exporter
|
||||
RUN_DEPENDS+= smartctl:sysutils/smartmontools
|
||||
GO_MODULES= github.com/prometheus-community/smartctl_exporter
|
||||
GO_TARGET= ${PORTNAME}:${PREFIX}/libexec/${PORTNAME}
|
||||
PLIST_FILES= libexec/${PORTNAME}
|
||||
|
||||
GH_TUPLE= \
|
||||
alecthomas:kingpin:v2.2.6:alecthomas_kingpin/vendor/gopkg.in/alecthomas/kingpin.v2 \
|
||||
alecthomas:template:fb15b899a751:alecthomas_template/vendor/github.com/alecthomas/template \
|
||||
alecthomas:units:b94a6e3cc137:alecthomas_units/vendor/github.com/alecthomas/units \
|
||||
beorn7:perks:v1.0.1:beorn7_perks/vendor/github.com/beorn7/perks \
|
||||
cespare:xxhash:v2.1.2:cespare_xxhash_v2/vendor/github.com/cespare/xxhash/v2 \
|
||||
coreos:go-systemd:v22.4.0:coreos_go_systemd_v22/vendor/github.com/coreos/go-systemd/v22 \
|
||||
go-kit:log:v0.2.1:go_kit_log/vendor/github.com/go-kit/log \
|
||||
go-logfmt:logfmt:v0.5.1:go_logfmt_logfmt/vendor/github.com/go-logfmt/logfmt \
|
||||
go-yaml:yaml:v2.4.0:go_yaml_yaml/vendor/gopkg.in/yaml.v2 \
|
||||
go-yaml:yaml:v3.0.1:go_yaml_yaml_1/vendor/gopkg.in/yaml.v3 \
|
||||
golang:appengine:v1.6.7:golang_appengine/vendor/google.golang.org/appengine \
|
||||
golang:crypto:v0.1.0:golang_crypto/vendor/golang.org/x/crypto \
|
||||
golang:net:v0.1.0:golang_net/vendor/golang.org/x/net \
|
||||
golang:oauth2:v0.1.0:golang_oauth2/vendor/golang.org/x/oauth2 \
|
||||
golang:protobuf:v1.5.2:golang_protobuf/vendor/github.com/golang/protobuf \
|
||||
golang:sync:v0.1.0:golang_sync/vendor/golang.org/x/sync \
|
||||
golang:sys:v0.1.0:golang_sys/vendor/golang.org/x/sys \
|
||||
golang:text:v0.4.0:golang_text/vendor/golang.org/x/text \
|
||||
jpillora:backoff:v1.0.0:jpillora_backoff/vendor/github.com/jpillora/backoff \
|
||||
matttproud:golang_protobuf_extensions:v1.0.1:matttproud_golang_protobuf_extensions/vendor/github.com/matttproud/golang_protobuf_extensions \
|
||||
mwitkow:go-conntrack:2f068394615f:mwitkow_go_conntrack/vendor/github.com/mwitkow/go-conntrack \
|
||||
prometheus:client_golang:v1.13.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.37.0:prometheus_common/vendor/github.com/prometheus/common \
|
||||
prometheus:exporter-toolkit:v0.8.1:prometheus_exporter_toolkit/vendor/github.com/prometheus/exporter-toolkit \
|
||||
prometheus:procfs:v0.8.0:prometheus_procfs/vendor/github.com/prometheus/procfs \
|
||||
protocolbuffers:protobuf-go:v1.28.1:protocolbuffers_protobuf_go/vendor/google.golang.org/protobuf \
|
||||
tidwall:gjson:v1.14.3:tidwall_gjson/vendor/github.com/tidwall/gjson \
|
||||
tidwall:match:v1.1.1:tidwall_match/vendor/github.com/tidwall/match \
|
||||
tidwall:pretty:v1.2.0:tidwall_pretty/vendor/github.com/tidwall/pretty
|
||||
|
||||
pre-patch:
|
||||
${REINPLACE_CMD} -i '' -e 's|/usr/sbin/smartctl|${LOCALBASE}/sbin/smartctl|g' \
|
||||
${WRKSRC}/README.md ${WRKSRC}/main.go \
|
||||
${WRKSRC}/gentoo/app-metrics/smartctl_exporter/files/smartctl_exporter.yaml
|
||||
|
||||
.include <bsd.port.mk>
|
|
@ -0,0 +1,63 @@
|
|||
TIMESTAMP = 1674106190
|
||||
SHA256 (prometheus-community-smartctl_exporter-v0.9.1_GH0.tar.gz) = 1a65c6f5fd17f3e905d314ac48e387888c7eb656a19a7fafae88fbcdd5cf399a
|
||||
SIZE (prometheus-community-smartctl_exporter-v0.9.1_GH0.tar.gz) = 41276
|
||||
SHA256 (alecthomas-kingpin-v2.2.6_GH0.tar.gz) = 4624eae43489de8a71ea60efaf6744c581b6bd62909f7514c484c1ea0efaba5a
|
||||
SIZE (alecthomas-kingpin-v2.2.6_GH0.tar.gz) = 44383
|
||||
SHA256 (alecthomas-template-fb15b899a751_GH0.tar.gz) = 2e2a44375eca48ce941182504b5d13aa98182b9a3f64ace33bfda52208bd0f5e
|
||||
SIZE (alecthomas-template-fb15b899a751_GH0.tar.gz) = 55339
|
||||
SHA256 (alecthomas-units-b94a6e3cc137_GH0.tar.gz) = 85363142a53436bea696d297e5b5fcda6bc6a8104b1d7ba0db88ffee455b72e2
|
||||
SIZE (alecthomas-units-b94a6e3cc137_GH0.tar.gz) = 6012
|
||||
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.2_GH0.tar.gz) = 471399cfcf0b1bd188add8d34435b91e7011cedbfe76e29687803a9d74320352
|
||||
SIZE (cespare-xxhash-v2.1.2_GH0.tar.gz) = 11244
|
||||
SHA256 (coreos-go-systemd-v22.4.0_GH0.tar.gz) = a3ca62e2344ba0f6cb0df4cb0c6ffb62c3e24f894844fe87cfacdea6460129c3
|
||||
SIZE (coreos-go-systemd-v22.4.0_GH0.tar.gz) = 73248
|
||||
SHA256 (go-kit-log-v0.2.1_GH0.tar.gz) = b37718967f9cbdb3eea4aa2fa9420b7d329b6bab7f9b85f970db197257226152
|
||||
SIZE (go-kit-log-v0.2.1_GH0.tar.gz) = 30579
|
||||
SHA256 (go-logfmt-logfmt-v0.5.1_GH0.tar.gz) = a9a93f7cbb92a53a587fda196bc040264a625e76064495e95cb3e907f9a93499
|
||||
SIZE (go-logfmt-logfmt-v0.5.1_GH0.tar.gz) = 12115
|
||||
SHA256 (go-yaml-yaml-v2.4.0_GH0.tar.gz) = d8e94679e5fff6bd1a35e10241543929a5f3da44f701755babf99b3daf0faac0
|
||||
SIZE (go-yaml-yaml-v2.4.0_GH0.tar.gz) = 73209
|
||||
SHA256 (go-yaml-yaml-v3.0.1_GH0.tar.gz) = cf05411540d3e6ef8f1fd88434b34f94cedaceb540329031d80e23b74540c4e5
|
||||
SIZE (go-yaml-yaml-v3.0.1_GH0.tar.gz) = 91173
|
||||
SHA256 (golang-appengine-v1.6.7_GH0.tar.gz) = c623d81235f7c9699e299b328191d813337dd57dcc800d7afdb5130e8c321a8f
|
||||
SIZE (golang-appengine-v1.6.7_GH0.tar.gz) = 333007
|
||||
SHA256 (golang-crypto-v0.1.0_GH0.tar.gz) = 46d11e87a4df7825186ac5e4d6ac70959411906e899bcf261b2775e52a57c5b7
|
||||
SIZE (golang-crypto-v0.1.0_GH0.tar.gz) = 1633075
|
||||
SHA256 (golang-net-v0.1.0_GH0.tar.gz) = 084d67e34b660f3ea4f156d37b8baa04a8af30cfb4358eea9b7920af2e7808b1
|
||||
SIZE (golang-net-v0.1.0_GH0.tar.gz) = 1239627
|
||||
SHA256 (golang-oauth2-v0.1.0_GH0.tar.gz) = 03ed08fa2aafb581514af40375f5c2485859735f3f18220530fa70114469ae68
|
||||
SIZE (golang-oauth2-v0.1.0_GH0.tar.gz) = 104824
|
||||
SHA256 (golang-protobuf-v1.5.2_GH0.tar.gz) = 088cc0f3ba18fb8f9d00319568ff0af5a06d8925a6e6cb983bb837b4efb703b3
|
||||
SIZE (golang-protobuf-v1.5.2_GH0.tar.gz) = 171702
|
||||
SHA256 (golang-sync-v0.1.0_GH0.tar.gz) = 81056c07b5dc1077f2d6ac0f7ce3d4ef199a3ff85c319ab03dcff22fa9ba2183
|
||||
SIZE (golang-sync-v0.1.0_GH0.tar.gz) = 19356
|
||||
SHA256 (golang-sys-v0.1.0_GH0.tar.gz) = f36f3ce1a3adf2d9acc9dfff112a98c695ab320ae696ee6ffafe1608b0caff73
|
||||
SIZE (golang-sys-v0.1.0_GH0.tar.gz) = 1409774
|
||||
SHA256 (golang-text-v0.4.0_GH0.tar.gz) = 71988b75b6da29772aa1feb65727aa7de3698d2f718f9ea073cd3613e280f5f5
|
||||
SIZE (golang-text-v0.4.0_GH0.tar.gz) = 8361656
|
||||
SHA256 (jpillora-backoff-v1.0.0_GH0.tar.gz) = 611b29ce95acfa2997e3449762a3df68fcaa773db045535f26eb5c686106351f
|
||||
SIZE (jpillora-backoff-v1.0.0_GH0.tar.gz) = 3507
|
||||
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 (mwitkow-go-conntrack-2f068394615f_GH0.tar.gz) = 5bb72eaf9a4ffd7d0353fa6944951d244df89d879ac36d4b9860fd159162dd81
|
||||
SIZE (mwitkow-go-conntrack-2f068394615f_GH0.tar.gz) = 17140
|
||||
SHA256 (prometheus-client_golang-v1.13.1_GH0.tar.gz) = 4c19032fb90f4c866f80ef72a452e6a5a7b2c8b848bb7632118bc0dc51cd0629
|
||||
SIZE (prometheus-client_golang-v1.13.1_GH0.tar.gz) = 219545
|
||||
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.37.0_GH0.tar.gz) = 0ad5a62cb421952d92c97645d2aba8987d2a0de44c9c1fff607c016dca87b768
|
||||
SIZE (prometheus-common-v0.37.0_GH0.tar.gz) = 148934
|
||||
SHA256 (prometheus-exporter-toolkit-v0.8.1_GH0.tar.gz) = 2a939c6e1b6374da21def4eb8ab04021c8d524da5683515b4afb778dd677ec97
|
||||
SIZE (prometheus-exporter-toolkit-v0.8.1_GH0.tar.gz) = 62005
|
||||
SHA256 (prometheus-procfs-v0.8.0_GH0.tar.gz) = bb99fc8ee03c40374bd2f78b7907f1353bd57bd34fd080a9664d99983f24aeed
|
||||
SIZE (prometheus-procfs-v0.8.0_GH0.tar.gz) = 194809
|
||||
SHA256 (protocolbuffers-protobuf-go-v1.28.1_GH0.tar.gz) = df0b3dceeff0e1b6d029e60f076edd0d852cb8f3c2fe4fe3fe40164f16ec9b6b
|
||||
SIZE (protocolbuffers-protobuf-go-v1.28.1_GH0.tar.gz) = 1280756
|
||||
SHA256 (tidwall-gjson-v1.14.3_GH0.tar.gz) = 652d6427185c488d3612e4c0dabb186c7b2f9014f1b58f09fd5b5205db89e818
|
||||
SIZE (tidwall-gjson-v1.14.3_GH0.tar.gz) = 58414
|
||||
SHA256 (tidwall-match-v1.1.1_GH0.tar.gz) = 1fc2ff17ecdd82c7ba739b4f373b9df731a8e42517c70285c8bbf24dd9b3f2f0
|
||||
SIZE (tidwall-match-v1.1.1_GH0.tar.gz) = 5931
|
||||
SHA256 (tidwall-pretty-v1.2.0_GH0.tar.gz) = fda514a386aff71cf7a4639a8fb8e1133bf8f583eba902b3c844a176401fad7d
|
||||
SIZE (tidwall-pretty-v1.2.0_GH0.tar.gz) = 11224
|
|
@ -0,0 +1,48 @@
|
|||
#!/bin/sh
|
||||
|
||||
# PROVIDE: smartctl_exporter
|
||||
# REQUIRE: LOGIN
|
||||
# KEYWORD: shutdown
|
||||
#
|
||||
# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
|
||||
# to enable this service:
|
||||
#
|
||||
# smartctl_exporter_enable (bool): Set to YES to enable smartctl_exporter, default is NO
|
||||
# smartctl_exporter_user (string): Set user to run as, default is root
|
||||
# smartctl_exporter_syslog (bool): Set to YES to use syslog, default is NO
|
||||
#
|
||||
# Use the following variables to override smartctl_exporter's defaults:
|
||||
#
|
||||
# smartctl_exporter_listen_address (string): Set address to listen on, default is localhost:9633
|
||||
# smartctl_exporter_devices (string): Shell glob (like /dev/ada[0-9]) for all devices
|
||||
# smartctl_exporter_log_level (string): Only log messages with the given severity or above. One of: [debug, info, warn, error]
|
||||
# smartctl_exporter_log_format (string): Output format of log messages. One of: [logfmt, json]
|
||||
|
||||
. /etc/rc.subr
|
||||
|
||||
name=smartctl_exporter
|
||||
rcvar=smartctl_exporter_enable
|
||||
|
||||
load_rc_config $name
|
||||
|
||||
: ${smartctl_exporter_enable:="NO"}
|
||||
: ${smartctl_exporter_user:="root"}
|
||||
: ${smartctl_exporter_listen_address:="localhost:9633"}
|
||||
: ${smartctl_exporter_devices:="$(geom disk status -s | cut -f1 -d\ | sed -e s,^,/dev/,g)"}
|
||||
: ${smartctl_exporter_log_level:=""}
|
||||
: ${smartctl_exporter_log_format:=""}
|
||||
|
||||
pidfile=/var/run/smartctl_exporter.pid
|
||||
command=/usr/sbin/daemon
|
||||
command_args="-c -f -P ${pidfile} \
|
||||
${smartctl_exporter_user:+-u "${smartctl_exporter_user}"} \
|
||||
${smartctl_exporter_syslog:+-S} \
|
||||
${smartctl_exporter_daemon} \
|
||||
%%PREFIX%%/libexec/smartctl_exporter \
|
||||
${smartctl_exporter_listen_address:+--web.listen-address="${smartctl_exporter_listen_address}"} \
|
||||
${smartctl_exporter_devices:+$(for diskdev in $(echo "${smartctl_exporter_devices}"); do echo --smartctl.device="${diskdev}"; done | xargs )} \
|
||||
${smartctl_exporter_log_level:+--log.level="${smartctl_exporter_log_level}"} \
|
||||
${smartctl_exporter_log_format:+--log.format="${smartctl_exporter_log_format}"} \
|
||||
${smartctl_exporter_args}"
|
||||
|
||||
run_rc_command "$1"
|
|
@ -0,0 +1 @@
|
|||
smartctl_exporter exports smartctl json metrics to Prometheus.
|
Loading…
Reference in New Issue