New port: net-mgmt/nsd_exporter:
nsd_exporter is a prometheus exporter for nsd metrics WWW: https://github.com/optix2000/nsd_exporter
This commit is contained in:
parent
48c035bae6
commit
363f5b4c3d
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=494056
7 changed files with 173 additions and 0 deletions
|
@ -204,6 +204,7 @@
|
|||
SUBDIR += nsca27
|
||||
SUBDIR += nsca27-client
|
||||
SUBDIR += nstat
|
||||
SUBDIR += nsd_exporter
|
||||
SUBDIR += nstreams
|
||||
SUBDIR += nvidia_gpu_prometheus_exporter
|
||||
SUBDIR += observium
|
||||
|
|
54
net-mgmt/nsd_exporter/Makefile
Normal file
54
net-mgmt/nsd_exporter/Makefile
Normal file
|
@ -0,0 +1,54 @@
|
|||
# Created by: Ryan Steinmetz <zi@FreeBSD.org>
|
||||
# $FreeBSD$
|
||||
|
||||
PORTNAME= nsd_exporter
|
||||
PORTVERSION= 0.1.0
|
||||
CATEGORIES= net-mgmt
|
||||
|
||||
MAINTAINER= zi@FreeBSD.org
|
||||
COMMENT= Prometheus exporter for nsd metrics
|
||||
|
||||
LICENSE= BSD3CLAUSE
|
||||
|
||||
USES= go
|
||||
USE_GITHUB= yes
|
||||
|
||||
GH_ACCOUNT= optix2000
|
||||
GH_TUPLE= prometheus:client_golang:v0.8.0:client_golang \
|
||||
prometheus:client_model:5c3871d:client_model \
|
||||
prometheus:procfs:ae68e2d:procfs \
|
||||
prometheus:common:7600349:common \
|
||||
beorn7:perks:3a771d9:perks \
|
||||
golang:protobuf:70b3af3:protobuf \
|
||||
matttproud:golang_protobuf_extensions:c12348c:golang_protobuf_extensions \
|
||||
optix2000:go-nsdctl:ce14b32:go_nsdctl \
|
||||
go-yaml:yaml:7f97868:go_yaml
|
||||
|
||||
GO_PKGNAME= github.com/${GH_ACCOUNT}/${PORTNAME}
|
||||
GO_TARGET= github.com/${GH_ACCOUNT}/${PORTNAME}
|
||||
|
||||
PLIST_FILES= bin/nsd_exporter
|
||||
|
||||
USE_RC_SUBR= nsd_exporter
|
||||
|
||||
post-patch:
|
||||
${REINPLACE_CMD} -e 's|"/etc|"${LOCALBASE}/etc|g' ${WRKSRC_go_nsdctl}/nsdctl.go
|
||||
|
||||
pre-build:
|
||||
${MKDIR} ${GO_WRKDIR_SRC}/github.com/prometheus ${GO_WRKDIR_SRC}/gopkg.in \
|
||||
${GO_WRKDIR_SRC}/github.com/beorn7 ${GO_WRKDIR_SRC}/github.com/golang \
|
||||
${GO_WRKDIR_SRC}/github.com/matttproud ${GO_WRKDIR_SRC}/github.com/optix2000
|
||||
${MV} ${WRKSRC_golang_protobuf_extensions} ${GO_WRKDIR_SRC}/github.com/matttproud/golang_protobuf_extensions
|
||||
${MV} ${WRKSRC_go_nsdctl} ${GO_WRKDIR_SRC}/github.com/optix2000/go-nsdctl
|
||||
${MV} ${WRKSRC_client_golang} ${GO_WRKDIR_SRC}/github.com/prometheus/client_golang
|
||||
${MV} ${WRKSRC_client_model} ${GO_WRKDIR_SRC}/github.com/prometheus/client_model
|
||||
${MV} ${WRKSRC_procfs} ${GO_WRKDIR_SRC}/github.com/prometheus/procfs
|
||||
${MV} ${WRKSRC_common} ${GO_WRKDIR_SRC}/github.com/prometheus/common
|
||||
${MV} ${WRKSRC_protobuf} ${GO_WRKDIR_SRC}/github.com/golang/protobuf
|
||||
${MV} ${WRKSRC_go_yaml} ${GO_WRKDIR_SRC}/gopkg.in/yaml.v2
|
||||
${MV} ${WRKSRC_perks} ${GO_WRKDIR_SRC}/github.com/beorn7/perks
|
||||
|
||||
do-install:
|
||||
${INSTALL_PROGRAM} ${WRKDIR}/bin/nsd_exporter ${STAGEDIR}${PREFIX}/bin
|
||||
|
||||
.include <bsd.port.mk>
|
21
net-mgmt/nsd_exporter/distinfo
Normal file
21
net-mgmt/nsd_exporter/distinfo
Normal file
|
@ -0,0 +1,21 @@
|
|||
TIMESTAMP = 1551277938
|
||||
SHA256 (optix2000-nsd_exporter-0.1.0_GH0.tar.gz) = 7fb9fae9f434e904e79eceaef9e5640e8be66d57384f87a9a6a85ab663dcf51c
|
||||
SIZE (optix2000-nsd_exporter-0.1.0_GH0.tar.gz) = 8144
|
||||
SHA256 (prometheus-client_golang-v0.8.0_GH0.tar.gz) = 88b0040393276116f848de5bdd636717d339667273cfc45a4edda40b5e5682bd
|
||||
SIZE (prometheus-client_golang-v0.8.0_GH0.tar.gz) = 75593
|
||||
SHA256 (prometheus-client_model-5c3871d_GH0.tar.gz) = 5decfffcc4a7cfbce4214e42aaf0e3af9acdadf5d3f3ef6733868314171fd2f0
|
||||
SIZE (prometheus-client_model-5c3871d_GH0.tar.gz) = 57126
|
||||
SHA256 (prometheus-procfs-ae68e2d_GH0.tar.gz) = d2ef0107607a9e0fcfccbe7d0a364ea04de741d464b244994fb579f2610dfb4f
|
||||
SIZE (prometheus-procfs-ae68e2d_GH0.tar.gz) = 57790
|
||||
SHA256 (prometheus-common-7600349_GH0.tar.gz) = 428d2301007b765ae36a64114b2f4806556c602dba34c011a10caaae76cbb433
|
||||
SIZE (prometheus-common-7600349_GH0.tar.gz) = 77805
|
||||
SHA256 (beorn7-perks-3a771d9_GH0.tar.gz) = b7a0faebca98ebd5e7546403b4cdea9dc77f865f0623d04efbad33e984297cc9
|
||||
SIZE (beorn7-perks-3a771d9_GH0.tar.gz) = 10800
|
||||
SHA256 (golang-protobuf-70b3af3_GH0.tar.gz) = fd81970d30eba8f3d49c5b27eb80728060f022bb391515e8d79724d5b39dc1f9
|
||||
SIZE (golang-protobuf-70b3af3_GH0.tar.gz) = 329777
|
||||
SHA256 (matttproud-golang_protobuf_extensions-c12348c_GH0.tar.gz) = da165c9275b77a0994b815bc7d761dcb2e4799a90fe49eec08d8bdff3a683f48
|
||||
SIZE (matttproud-golang_protobuf_extensions-c12348c_GH0.tar.gz) = 37200
|
||||
SHA256 (optix2000-go-nsdctl-ce14b32_GH0.tar.gz) = 4474f6e9f18d08035f36ef60dc25b97c7c5528ab99f59cf7f94854613d73b239
|
||||
SIZE (optix2000-go-nsdctl-ce14b32_GH0.tar.gz) = 4038
|
||||
SHA256 (go-yaml-yaml-7f97868_GH0.tar.gz) = b0215657c82db81fa1e10f73fb1df3db12715ec68a14ab555e7f40d1d174132d
|
||||
SIZE (go-yaml-yaml-7f97868_GH0.tar.gz) = 69163
|
63
net-mgmt/nsd_exporter/files/nsd_exporter.in
Normal file
63
net-mgmt/nsd_exporter/files/nsd_exporter.in
Normal file
|
@ -0,0 +1,63 @@
|
|||
#!/bin/sh
|
||||
|
||||
# PROVIDE: nsd_exporter
|
||||
# REQUIRE: LOGIN
|
||||
# KEYWORD: shutdown
|
||||
#
|
||||
# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
|
||||
# to enable this service:
|
||||
#
|
||||
# nsd_exporter_enable (bool): Set to NO by default.
|
||||
# Set it to YES to enable nsd_exporter.
|
||||
# nsd_exporter_user (string): Set user that nsd_exporter will run under
|
||||
# Default is "nobody".
|
||||
# nsd_exporter_group (string): Set group that nsd_exporter will run under
|
||||
# Default is "nobody".
|
||||
# nsd_exporter_args (string): Set extra arguments to pass to nsd_exporter
|
||||
# Default is "".
|
||||
# nsd_exporter_listen_address (string):Set ip:port that nsd_exporter will listen on
|
||||
# Default is ":9132".
|
||||
|
||||
. /etc/rc.subr
|
||||
|
||||
name=nsd_exporter
|
||||
rcvar=nsd_exporter_enable
|
||||
|
||||
load_rc_config $name
|
||||
|
||||
: ${nsd_exporter_enable:="NO"}
|
||||
: ${nsd_exporter_user:="nobody"}
|
||||
: ${nsd_exporter_group:="nobody"}
|
||||
: ${nsd_exporter_args:=""}
|
||||
: ${nsd_exporter_listen_address:=":9132"}
|
||||
: ${nsd_exporter_control_cert:="%%LOCALBASE%%/etc/nsd/nsd_control.pem"}
|
||||
: ${nsd_exporter_control_ca:="%%LOCALBASE%%/etc/nsd/nsd_server.pem"}
|
||||
: ${nsd_exporter_control_key:="%%LOCALBASE%%/etc/nsd/nsd_control.key"}
|
||||
: ${nsd_exporter_nsd_address:="127.0.0.1:8952"}
|
||||
: ${nsd_exporter_restart_delay:="10"}
|
||||
|
||||
|
||||
pidfile=/var/run/nsd_exporter.pid
|
||||
command="/usr/sbin/daemon"
|
||||
procname="%%PREFIX%%/bin/nsd_exporter"
|
||||
command_args="-rp ${pidfile} -S -R ${nsd_exporter_restart_delay} \
|
||||
-T ${name} ${procname} \
|
||||
-cert ${nsd_exporter_control_cert} \
|
||||
-ca ${nsd_exporter_control_ca} \
|
||||
-key ${nsd_exporter_control_key} \
|
||||
-nsd-address ${nsd_exporter_nsd_address} \
|
||||
-listen-address ${nsd_exporter_listen_address} \
|
||||
${nsd_exporter_args}"
|
||||
required_files="${nsd_exporter_control_cert} ${nsd_exporter_control_ca} ${nsd_exporter_control_key}"
|
||||
|
||||
start_precmd=nsd_exporter_startprecmd
|
||||
|
||||
nsd_exporter_startprecmd()
|
||||
{
|
||||
if [ ! -e ${pidfile} ]; then
|
||||
install -o ${nsd_exporter_user} -g ${nsd_exporter_group} /dev/null ${pidfile};
|
||||
fi
|
||||
}
|
||||
|
||||
load_rc_config $name
|
||||
run_rc_command "$1"
|
20
net-mgmt/nsd_exporter/files/patch-nsd__exporter.go
Normal file
20
net-mgmt/nsd_exporter/files/patch-nsd__exporter.go
Normal file
|
@ -0,0 +1,20 @@
|
|||
--- nsd_exporter.go.orig 2018-02-08 23:45:14 UTC
|
||||
+++ nsd_exporter.go
|
||||
@@ -19,7 +19,7 @@ import (
|
||||
var listenAddr = flag.String("listen-address", ":8080", "The address to listen on for HTTP requests.")
|
||||
var metricPath = flag.String("metric-path", "/metrics", "The path to export Prometheus metrocs to.")
|
||||
var metricConfigPath = flag.String("metric-config", "", "Mapping file for metrics. Defaults to built in file for NSD 4.1.x. This allows you to add or change any metrics that this scrapes")
|
||||
-var nsdConfig = flag.String("config-file", "/etc/nsd/nsd.conf", "Configuration file for nsd/unbound to autodetect configuration from. Defaults to /etc/nsd/nsd.conf. Mutually exclusive with -nsd-address, -cert, -key and -ca")
|
||||
+var nsdConfig = flag.String("config-file", "/usr/local/etc/nsd/nsd.conf", "Configuration file for nsd/unbound to autodetect configuration from. Defaults to /usr/local/etc/nsd/nsd.conf. Mutually exclusive with -nsd-address, -cert, -key and -ca")
|
||||
var nsdType = flag.String("type", "nsd", "What nsd-like daemon to scrape (nsd or unbound). Defaults to nsd")
|
||||
var cert = flag.String("cert", "", "Client cert file location. Mutually exclusive with -config-file.")
|
||||
var key = flag.String("key", "", "Client key file location. Mutually exclusive with -config-file.")
|
||||
@@ -58,7 +58,7 @@ func (c *NSDCollector) Collect(ch chan<-
|
||||
s := bufio.NewScanner(r)
|
||||
for s.Scan() {
|
||||
line := strings.Split(s.Text(), "=")
|
||||
- metricName := line[0]
|
||||
+ metricName := strings.TrimSpace(line[0])
|
||||
m, ok := c.metrics[metricName]
|
||||
if !ok {
|
||||
log.Println("Unknown Metric ", metricName, ". Skipping.")
|
3
net-mgmt/nsd_exporter/pkg-descr
Normal file
3
net-mgmt/nsd_exporter/pkg-descr
Normal file
|
@ -0,0 +1,3 @@
|
|||
nsd_exporter is a prometheus exporter for nsd metrics
|
||||
|
||||
WWW: https://github.com/optix2000/nsd_exporter
|
11
net-mgmt/nsd_exporter/pkg-message
Normal file
11
net-mgmt/nsd_exporter/pkg-message
Normal file
|
@ -0,0 +1,11 @@
|
|||
=========================================================================
|
||||
Don't forget to run nsd-control-setup to generate the required
|
||||
certificates and then ensure the user this process runs as can read them.
|
||||
|
||||
The default user is nobody. You can change the user (or group) by running:
|
||||
% sysrc nsd_exporter_user="user"
|
||||
% sysrc nsd_exporter_group="group"
|
||||
|
||||
Be aware that any user with access to the certificates can run all of the
|
||||
nsd-control commands.
|
||||
=========================================================================
|
Loading…
Reference in a new issue