aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTed Hess <thess@kitschensync.net>2018-12-13 09:12:26 -0500
committerGitHub <noreply@github.com>2018-12-13 09:12:26 -0500
commit1cba36afe090e3c48be3c3bcac823d22601529a4 (patch)
tree98a6b4815cedab6e928dab322ecdf76f49027bd9
parentf5de380a6c8e4493b057ebe51923b4236db2703a (diff)
parentb57f6b1f5e924154320a1ae641f6bd699ad19a91 (diff)
Merge pull request #7635 from dhewg/pull/prometheus-statsd-exporter
prometheus-statsd-exporter: add new package
-rw-r--r--utils/prometheus-statsd-exporter/Makefile48
-rw-r--r--utils/prometheus-statsd-exporter/files/etc/config/prometheus-statsd-exporter6
-rwxr-xr-xutils/prometheus-statsd-exporter/files/etc/init.d/prometheus-statsd-exporter35
-rw-r--r--utils/prometheus-statsd-exporter/files/etc/prometheus-statsd-exporter.yml24
4 files changed, 113 insertions, 0 deletions
diff --git a/utils/prometheus-statsd-exporter/Makefile b/utils/prometheus-statsd-exporter/Makefile
new file mode 100644
index 000000000..e135da563
--- /dev/null
+++ b/utils/prometheus-statsd-exporter/Makefile
@@ -0,0 +1,48 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=prometheus-statsd-exporter
+PKG_VERSION:=0.8.1
+PKG_RELEASE:=1
+
+PKG_SOURCE:=statsd_exporter-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=https://codeload.github.com/prometheus/statsd_exporter/tar.gz/v${PKG_VERSION}?
+PKG_HASH:=d69af3ccdc393ec2d3007dd9d039d4f0f0a6dd9df55fb7cd3fd0304607324d51
+PKG_BUILD_DIR:=$(BUILD_DIR)/statsd_exporter-$(PKG_VERSION)
+
+PKG_LICENSE:=Apache-2.0
+PKG_LICENSE_FILES:=LICENSE
+
+PKG_BUILD_DEPENDS:=golang/host
+PKG_BUILD_PARALLEL:=1
+PKG_USE_MIPS16:=0
+
+GO_PKG:=github.com/prometheus/statsd_exporter
+
+include $(INCLUDE_DIR)/package.mk
+include ../../lang/golang/golang-package.mk
+
+define Package/prometheus-statsd-exporter
+ SECTION:=utils
+ CATEGORY:=Utilities
+ TITLE:=StatsD to Prometheus metrics exporter
+ URL:=http://prometheus.io
+ DEPENDS:=$(GO_ARCH_DEPENDS)
+endef
+
+define Package/prometheus-statsd-exporter/description
+statsd_exporter receives StatsD-style metrics and exports them as Prometheus
+metrics.
+endef
+
+define Package/prometheus-statsd-exporter/install
+ $(call GoPackage/Package/Install/Bin,$(1))
+
+ $(CP) ./files/* $(1)/
+endef
+
+define Package/prometheus-statsd-exporter/conffiles
+/etc/prometheus-statsd-exporter.yml
+endef
+
+$(eval $(call GoBinPackage,prometheus-statsd-exporter))
+$(eval $(call BuildPackage,prometheus-statsd-exporter))
diff --git a/utils/prometheus-statsd-exporter/files/etc/config/prometheus-statsd-exporter b/utils/prometheus-statsd-exporter/files/etc/config/prometheus-statsd-exporter
new file mode 100644
index 000000000..598a532ef
--- /dev/null
+++ b/utils/prometheus-statsd-exporter/files/etc/config/prometheus-statsd-exporter
@@ -0,0 +1,6 @@
+config prometheus-statsd-exporter 'main'
+ option web_listen_address '127.0.0.1:9102'
+ option web_telemetry_path '/metrics'
+ option statsd_listen_udp '127.0.0.1:9125'
+ option statsd_listen_tcp '127.0.0.1:9125'
+ option statsd_mapping_config '/etc/prometheus-statsd-exporter.yml'
diff --git a/utils/prometheus-statsd-exporter/files/etc/init.d/prometheus-statsd-exporter b/utils/prometheus-statsd-exporter/files/etc/init.d/prometheus-statsd-exporter
new file mode 100755
index 000000000..2fb9a8c65
--- /dev/null
+++ b/utils/prometheus-statsd-exporter/files/etc/init.d/prometheus-statsd-exporter
@@ -0,0 +1,35 @@
+#!/bin/sh /etc/rc.common
+
+START=60
+
+USE_PROCD=1
+PROG=/usr/bin/statsd_exporter
+CONFFILE=/etc/prometheus-statsd-exporter.yml
+
+start_service() {
+ local web_listen_address
+ local web_telemetry_path
+ local statsd_listen_udp
+ local statsd_listen_tcp
+ local statsd_mapping_config
+ config_load "prometheus-statsd-exporter"
+ config_get web_listen_address main web_listen_address "127.0.0.1:9102"
+ config_get web_telemetry_path main web_telemetry_path "/metrics"
+ config_get statsd_listen_udp main statsd_listen_udp "127.0.0.1:9125"
+ config_get statsd_listen_tcp main statsd_listen_tcp "127.0.0.1:9125"
+ config_get statsd_mapping_config main statsd_mapping_config "$CONFFILE"
+
+ procd_open_instance
+ procd_set_param command "$PROG"
+ procd_append_param command --web.listen-address="$web_listen_address"
+ procd_append_param command --web.telemetry-path="$web_telemetry_path"
+ procd_append_param command --statsd.listen-udp="$statsd_listen_udp"
+ procd_append_param command --statsd.listen-tcp="$statsd_listen_tcp"
+ procd_append_param command --statsd.mapping-config="$statsd_mapping_config"
+ procd_append_param command --log.level="warn"
+ procd_set_param file "$config_file"
+ procd_set_param stdout 1
+ procd_set_param stderr 1
+ procd_set_param respawn
+ procd_close_instance
+}
diff --git a/utils/prometheus-statsd-exporter/files/etc/prometheus-statsd-exporter.yml b/utils/prometheus-statsd-exporter/files/etc/prometheus-statsd-exporter.yml
new file mode 100644
index 000000000..e1bfde716
--- /dev/null
+++ b/utils/prometheus-statsd-exporter/files/etc/prometheus-statsd-exporter.yml
@@ -0,0 +1,24 @@
+mappings:
+ # asterisk mappings
+ # use "prefix = asterisk" in asterisk's statsd.conf
+ - match: asterisk.PJSIP.registrations.state.*
+ name: "asterisk_PJSIP_registrations_state"
+ labels:
+ state: "$1"
+ - match: asterisk.PJSIP.endpoints.state.*
+ name: "asterisk_PJSIP_endpoints_state"
+ labels:
+ state: "$1"
+ - match: asterisk.PJSIP.contacts.states.*
+ name: "asterisk_PJSIP_contacts_states"
+ labels:
+ state: "$1"
+ - match: asterisk.endpoints.state.*
+ name: "asterisk_endpoints_state"
+ labels:
+ state: "$1"
+ - match: asterisk.endpoints.*.*.channels
+ name: "asterisk_endpoints_channels"
+ labels:
+ tech: "$1"
+ resource: "$2"