Merge pull request #5549 from Celedhrim/master

prometheus-node-exporter: initial addon
This commit is contained in:
mglae 2021-10-02 15:49:16 +02:00 committed by GitHub
commit 02c7716179
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 569 additions and 0 deletions

View File

@ -0,0 +1,2 @@
100
- Initial addon

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

View File

@ -0,0 +1,40 @@
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2021-present Team LibreELEC (https://libreelec.tv)
PKG_NAME="prometheus-node-exporter"
PKG_VERSION="1.2.2"
PKG_SHA256="3b7b710dad97d9d2b4cb8c3f166ee1c86f629cce59062b09d4fb22459163ec86"
PKG_REV="100"
PKG_LICENSE="Apache License 2.0"
PKG_SITE="https://github.com/prometheus/node_exporter"
PKG_URL="https://github.com/prometheus/node_exporter/archive/refs/tags/v${PKG_VERSION}.tar.gz"
PKG_DEPENDS_TARGET="toolchain go:host systemd"
PKG_SECTION="service"
PKG_SHORTDESC="Prometheus exporter for machine metrics."
PKG_LONGDESC="Prometheus exporter for hardware and OS metrics exposed by the kernel."
PKG_TOOLCHAIN="manual"
PKG_IS_ADDON="yes"
PKG_ADDON_NAME="Prometheus Node Exporter"
PKG_ADDON_TYPE="xbmc.service"
configure_target() {
go_configure
export LDFLAGS="-w -linkmode external -extldflags -Wl,--unresolved-symbols=ignore-in-shared-libs -extld ${CC} \
-X github.com/prometheus/common/version.Version=${PKG_VERSION} \
-X github.com/prometheus/common/version.Revision=${PKG_REV} \
-X github.com/prometheus/common/version.Branch=master \
-X github.com/prometheus/common/version.BuildUser=root@libreelec \
-X github.com/prometheus/common/version.BuildDate=$(date '+%Y%m%d-%H:%M:%S')"
}
make_target() {
${GOLANG} build -a -ldflags "${LDFLAGS}" -o bin/prometheus-node-exporter -v
}
addon() {
mkdir -p ${ADDON_BUILD}/${PKG_ADDON_ID}/bin
cp -P ${PKG_BUILD}/bin/prometheus-node-exporter ${ADDON_BUILD}/${PKG_ADDON_ID}/bin
}

View File

@ -0,0 +1,83 @@
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2021-present Team LibreELEC (https://libreelec.tv)
. /etc/profile
oe_setup_addon service.prometheus-node-exporter
DAEMON_ARGS=""
while read var opt ; do
eval [ \"\$${var}\" = "true" ] && DAEMON_ARGS="${DAEMON_ARGS} ${opt}"
done << EOF
WebDisableExporterMetrics --web.disable-exporter-metrics
CollectorArp --collector.arp
CollectorBcache --collector.bcache
CollectorBonding --collector.bonding
CollectorBtrfs --collector.btrfs
CollectorBuddyinfo --collector.buddyinfo
CollectorConntrack --collector.conntrack
CollectorCpu --collector.cpu
CollectorCpufreq --collector.cpufreq
CollectorDiskstats --collector.diskstats
CollectorDrbd --collector.drbd
CollectorEdac --collector.edac
CollectorEntropy --collector.entropy
CollectorEthtool --collector.ethtool
CollectorFibrechannel --collector.fibrechannel
CollectorFilefd --collector.filefd
CollectorFilesystem --collector.filesystem
CollectorHwmon --collector.hwmon
CollectorInfiniband --collector.infiniband
CollectorInterrupts --collector.interrupts
CollectorIpvs --collector.ipvs
CollectorKsmd --collector.ksmd
CollectorLoadavg --collector.loadavg
CollectorLogind --collector.logind
CollectorMdadm --collector.mdadm
CollectorMeminfo --collector.meminfo
CollectorMeminfoNuma --collector.meminfo_numa
CollectorMountstats --collector.mountstats
CollectorNetclass --collector.netclass
CollectorNetdev --collector.netdev
CollectorNetstat --collector.netstat
CollectorNetworkRoute --collector.network_route
CollectorNfs --collector.nfs
CollectorNfsd --collector.nfsd
CollectorNtp --collector.ntp
CollectorNvme --collector.nvme
CollectorPerf --collector.perf
CollectorPowersupplyclass --collector.powersupplyclass
CollectorPressure --collector.pressure
CollectorProcesses --collector.processes
CollectorQdisc --collector.qdisc
CollectorRapl --collector.rapl
CollectorRunit --collector.runit
CollectorSchedstat --collector.schedstat
CollectorSockstat --collector.sockstat
CollectorSoftnet --collector.softnet
CollectorStat --collector.stat
CollectorSupervisord --collector.supervisord
CollectorSystemd --collector.systemd
CollectorTapestats --collector.tapestats
CollectorTcpstat --collector.tcpstat
CollectorTextfile --collector.textfile
CollectorThermalZone --collector.thermal_zone
CollectorTime --collector.time
CollectorTimex --collector.timex
CollectorUdpQueues --collector.udp_queues
CollectorUname --collector.uname
CollectorVmstat --collector.vmstat
CollectorWifi --collector.wifi
CollectorXfs --collector.xfs
CollectorZfs --collector.zfs
CollectorZoneinfo --collector.zoneinfo
EOF
/storage/.kodi/addons/service.prometheus-node-exporter/bin/prometheus-node-exporter --collector.disable-defaults \
--web.listen-address=":$WebListenPort" \
--web.telemetry-path="$WebTelemetryPath" \
--web.max-requests=$WebMaxRequest \
$DAEMON_ARGS

View File

@ -0,0 +1,20 @@
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2021-present Team LibreELEC (https://libreelec.tv)
import subprocess
import xbmc
import xbmcaddon
class Monitor(xbmc.Monitor):
def __init__(self, *args, **kwargs):
xbmc.Monitor.__init__(self)
self.id = xbmcaddon.Addon().getAddonInfo('id')
def onSettingsChanged(self):
subprocess.call(['systemctl', 'restart', self.id])
if __name__ == "__main__":
Monitor().waitForAbort()

View File

@ -0,0 +1,274 @@
# Kodi Media Center language file
# Addon Name: node_exporter
# Addon id: service.node_exporter
# Addon Provider: Team LibreELEC
msgid ""
msgstr ""
msgctxt "#30000"
msgid "General"
msgstr ""
msgctxt "#30001"
msgid "Listen Port"
msgstr ""
msgctxt "#30002"
msgid "Metrics web path"
msgstr ""
msgctxt "#30003"
msgid "Disable exporter self metrics"
msgstr ""
msgctxt "#30004"
msgid "Max simultaneous request"
msgstr ""
msgctxt "#30100"
msgid "Collectors"
msgstr ""
msgctxt "#30101"
msgid "Arp"
msgstr ""
msgctxt "#30102"
msgid "Bcache"
msgstr ""
msgctxt "#30103"
msgid "Bonding"
msgstr ""
msgctxt "#30104"
msgid "Btrfs"
msgstr ""
msgctxt "#30105"
msgid "Buddyinfo"
msgstr ""
msgctxt "#30106"
msgid "Conntrack"
msgstr ""
msgctxt "#30107"
msgid "Cpu"
msgstr ""
msgctxt "#30108"
msgid "Cpufreq"
msgstr ""
msgctxt "#30109"
msgid "Diskstats"
msgstr ""
msgctxt "#30110"
msgid "Drbd"
msgstr ""
msgctxt "#30111"
msgid "Edac"
msgstr ""
msgctxt "#30112"
msgid "Entropy"
msgstr ""
msgctxt "#30113"
msgid "Ethtool"
msgstr ""
msgctxt "#30114"
msgid "Fibrechannel"
msgstr ""
msgctxt "#30115"
msgid "Filefd"
msgstr ""
msgctxt "#30116"
msgid "Filesystem"
msgstr ""
msgctxt "#30117"
msgid "Hwmon"
msgstr ""
msgctxt "#30118"
msgid "Infiniband"
msgstr ""
msgctxt "#30119"
msgid "Interrupts"
msgstr ""
msgctxt "#30120"
msgid "Ipvs"
msgstr ""
msgctxt "#30121"
msgid "Ksmd"
msgstr ""
msgctxt "#30122"
msgid "Loadavg"
msgstr ""
msgctxt "#30123"
msgid "Logind"
msgstr ""
msgctxt "#30124"
msgid "Mdadm"
msgstr ""
msgctxt "#30125"
msgid "Meminfo"
msgstr ""
msgctxt "#30126"
msgid "MeminfoNuma"
msgstr ""
msgctxt "#30127"
msgid "Mountstats"
msgstr ""
msgctxt "#30128"
msgid "Netclass"
msgstr ""
msgctxt "#30129"
msgid "Netdev"
msgstr ""
msgctxt "#30130"
msgid "Netstat"
msgstr ""
msgctxt "#30131"
msgid "Network Route"
msgstr ""
msgctxt "#30132"
msgid "Nfs"
msgstr ""
msgctxt "#30133"
msgid "Nfsd"
msgstr ""
msgctxt "#30134"
msgid "Ntp"
msgstr ""
msgctxt "#30135"
msgid "Nvme"
msgstr ""
msgctxt "#30136"
msgid "Perf"
msgstr ""
msgctxt "#30137"
msgid "Powersupplyclass"
msgstr ""
msgctxt "#30138"
msgid "Pressure"
msgstr ""
msgctxt "#30139"
msgid "Processes"
msgstr ""
msgctxt "#30140"
msgid "Qdisc"
msgstr ""
msgctxt "#30141"
msgid "Rapl"
msgstr ""
msgctxt "#30142"
msgid "Runit"
msgstr ""
msgctxt "#30143"
msgid "Schedstat"
msgstr ""
msgctxt "#30144"
msgid "Sockstat"
msgstr ""
msgctxt "#30145"
msgid "Softnet"
msgstr ""
msgctxt "#30146"
msgid "Stat"
msgstr ""
msgctxt "#30147"
msgid "Supervisord"
msgstr ""
msgctxt "#30148"
msgid "Systemd"
msgstr ""
msgctxt "#30149"
msgid "Tapestats"
msgstr ""
msgctxt "#30150"
msgid "Tcpstat"
msgstr ""
msgctxt "#30151"
msgid "Textfile"
msgstr ""
msgctxt "#30152"
msgid "Thermal Zone"
msgstr ""
msgctxt "#30153"
msgid "Time"
msgstr ""
msgctxt "#30154"
msgid "Timex"
msgstr ""
msgctxt "#30155"
msgid "Udp Queues"
msgstr ""
msgctxt "#30156"
msgid "Uname"
msgstr ""
msgctxt "#30157"
msgid "Vmstat"
msgstr ""
msgctxt "#30158"
msgid "Wifi"
msgstr ""
msgctxt "#30159"
msgid "Xfs"
msgstr ""
msgctxt "#30160"
msgid "Zfs"
msgstr ""
msgctxt "#30161"
msgid "Zoneinfo"
msgstr ""

View File

@ -0,0 +1,72 @@
<?xml version="1.0" encoding="UTF-8"?>
<settings>
<category label="30000">
<setting id="WebListenPort" label="30001" type="number" default="9100" />
<setting id="WebTelemetryPath" label="30002" type="text" default="/metrics" />
<setting id="WebDisableExporterMetrics" label="30003" type="bool" default="false" />
<setting id="WebMaxRequest" label="30004" type="number" default="40" />
</category>
<category label="30100">
<setting id="CollectorArp" label="30101" type="bool" default="true" />
<setting id="CollectorBcache" label="30102" type="bool" default="true" />
<setting id="CollectorBonding" label="30103" type="bool" default="true" />
<setting id="CollectorBtrfs" label="30104" type="bool" default="true" />
<setting id="CollectorBuddyinfo" label="30105" type="bool" default="false" />
<setting id="CollectorConntrack" label="30106" type="bool" default="true" />
<setting id="CollectorCpu" label="30107" type="bool" default="true" />
<setting id="CollectorCpufreq" label="30108" type="bool" default="true" />
<setting id="CollectorDiskstats" label="30109" type="bool" default="true" />
<setting id="CollectorDrbd" label="30110" type="bool" default="false" />
<setting id="CollectorEdac" label="30111" type="bool" default="true" />
<setting id="CollectorEntropy" label="30112" type="bool" default="true" />
<setting id="CollectorEthtool" label="30113" type="bool" default="false" />
<setting id="CollectorFibrechannel" label="30114" type="bool" default="true" />
<setting id="CollectorFilefd" label="30115" type="bool" default="true" />
<setting id="CollectorFilesystem" label="30116" type="bool" default="true" />
<setting id="CollectorHwmon" label="30117" type="bool" default="true" />
<setting id="CollectorInfiniband" label="30118" type="bool" default="true" />
<setting id="CollectorInterrupts" label="30119" type="bool" default="false" />
<setting id="CollectorIpvs" label="30120" type="bool" default="true" />
<setting id="CollectorKsmd" label="30121" type="bool" default="false" />
<setting id="CollectorLoadavg" label="30122" type="bool" default="true" />
<setting id="CollectorLogind" label="30123" type="bool" default="false" />
<setting id="CollectorMdadm" label="30124" type="bool" default="true" />
<setting id="CollectorMeminfo" label="30125" type="bool" default="true" />
<setting id="CollectorMeminfoNuma" label="30126" type="bool" default="false" />
<setting id="CollectorMountstats" label="30127" type="bool" default="false" />
<setting id="CollectorNetclass" label="30128" type="bool" default="true" />
<setting id="CollectorNetdev" label="30129" type="bool" default="true" />
<setting id="CollectorNetstat" label="30130" type="bool" default="true" />
<setting id="CollectorNetworkRoute" label="30131" type="bool" default="false" />
<setting id="CollectorNfs" label="30132" type="bool" default="true" />
<setting id="CollectorNfsd" label="30133" type="bool" default="true" />
<setting id="CollectorNtp" label="30134" type="bool" default="false" />
<setting id="CollectorNvme" label="30135" type="bool" default="true" />
<setting id="CollectorPerf" label="30136" type="bool" default="false" />
<setting id="CollectorPowersupplyclass" label="30137" type="bool" default="true" />
<setting id="CollectorPressure" label="30138" type="bool" default="true" />
<setting id="CollectorProcesses" label="30139" type="bool" default="false" />
<setting id="CollectorQdisc" label="30140" type="bool" default="false" />
<setting id="CollectorRapl" label="30141" type="bool" default="true" />
<setting id="CollectorRunit" label="30142" type="bool" default="false" />
<setting id="CollectorSchedstat" label="30143" type="bool" default="true" />
<setting id="CollectorSockstat" label="30144" type="bool" default="true" />
<setting id="CollectorSoftnet" label="30145" type="bool" default="true" />
<setting id="CollectorStat" label="30146" type="bool" default="true" />
<setting id="CollectorSupervisord" label="30147" type="bool" default="false" />
<setting id="CollectorSystemd" label="30148" type="bool" default="false" />
<setting id="CollectorTapestats" label="30149" type="bool" default="true" />
<setting id="CollectorTcpstat" label="30150" type="bool" default="false" />
<setting id="CollectorTextfile" label="30151" type="bool" default="true" />
<setting id="CollectorThermalZone" label="30152" type="bool" default="true" />
<setting id="CollectorTime" label="30153" type="bool" default="true" />
<setting id="CollectorTimex" label="30154" type="bool" default="true" />
<setting id="CollectorUdpQueues" label="30155" type="bool" default="true" />
<setting id="CollectorUname" label="30156" type="bool" default="true" />
<setting id="CollectorVmstat" label="30157" type="bool" default="true" />
<setting id="CollectorWifi" label="30158" type="bool" default="false" />
<setting id="CollectorXfs" label="30159" type="bool" default="true" />
<setting id="CollectorZfs" label="30160" type="bool" default="true" />
<setting id="CollectorZoneinfo" label="30161" type="bool" default="false" />
</category>
</settings>

View File

@ -0,0 +1,67 @@
<settings>
<setting id="WebListenPort" value="9100" />
<setting id="WebTelemetryPath" value="/metrics" />
<setting id="WebDisableExporterMetrics" value="false" />
<setting id="WebMaxRequest" value="40" />
<setting id="CollectorArp" value="true" />
<setting id="CollectorBcache" value="true" />
<setting id="CollectorBonding" value="true" />
<setting id="CollectorBtrfs" value="true" />
<setting id="CollectorBuddyinfo" value="false" />
<setting id="CollectorConntrack" value="true" />
<setting id="CollectorCpu" value="true" />
<setting id="CollectorCpufreq" value="true" />
<setting id="CollectorDiskstats" value="true" />
<setting id="CollectorDrbd" value="false" />
<setting id="CollectorEdac" value="true" />
<setting id="CollectorEntropy" value="true" />
<setting id="CollectorEthtool" value="false" />
<setting id="CollectorFibrechannel" value="true" />
<setting id="CollectorFilefd" value="true" />
<setting id="CollectorFilesystem" value="true" />
<setting id="CollectorHwmon" value="true" />
<setting id="CollectorInfiniband" value="true" />
<setting id="CollectorInterrupts" value="false" />
<setting id="CollectorIpvs" value="true" />
<setting id="CollectorKsmd" value="false" />
<setting id="CollectorLoadavg" value="true" />
<setting id="CollectorLogind" value="false" />
<setting id="CollectorMdadm" value="true" />
<setting id="CollectorMeminfo" value="true" />
<setting id="CollectorMeminfoNuma" value="false" />
<setting id="CollectorMountstats" value="false" />
<setting id="CollectorNetclass" value="true" />
<setting id="CollectorNetdev" value="true" />
<setting id="CollectorNetstat" value="true" />
<setting id="CollectorNetworkRoute" value="false" />
<setting id="CollectorNfs" value="true" />
<setting id="CollectorNfsd" value="true" />
<setting id="CollectorNtp" value="false" />
<setting id="CollectorNvme" value="true" />
<setting id="CollectorPerf" value="false" />
<setting id="CollectorPowersupplyclass" value="true" />
<setting id="CollectorPressure" value="true" />
<setting id="CollectorProcesses" value="false" />
<setting id="CollectorQdisc" value="false" />
<setting id="CollectorRapl" value="true" />
<setting id="CollectorRunit" value="false" />
<setting id="CollectorSchedstat" value="true" />
<setting id="CollectorSockstat" value="true" />
<setting id="CollectorSoftnet" value="true" />
<setting id="CollectorStat" value="true" />
<setting id="CollectorSupervisord" value="false" />
<setting id="CollectorSystemd" value="false" />
<setting id="CollectorTapestats" value="true" />
<setting id="CollectorTcpstat" value="false" />
<setting id="CollectorTextfile" value="true" />
<setting id="CollectorThermalZone" value="true" />
<setting id="CollectorTime" value="true" />
<setting id="CollectorTimex" value="true" />
<setting id="CollectorUdpQueues" value="true" />
<setting id="CollectorUname" value="true" />
<setting id="CollectorVmstat" value="true" />
<setting id="CollectorWifi" value="false" />
<setting id="CollectorXfs" value="true" />
<setting id="CollectorZfs" value="true" />
<setting id="CollectorZoneinfo" value="false" />
</settings>

View File

@ -0,0 +1,11 @@
[Unit]
Description=Prometheus Node Exporter service
After=network-online.target
Requires=network-online.target
[Service]
ExecStart=/storage/.kodi/addons/service.prometheus-node-exporter/bin/prometheus-node-exporter.start
Restart=always
[Install]
WantedBy=kodi.target