diff --git a/packages/addons/service/prometheus-node-exporter/changelog.txt b/packages/addons/service/prometheus-node-exporter/changelog.txt
new file mode 100644
index 0000000000..ffbebe8438
--- /dev/null
+++ b/packages/addons/service/prometheus-node-exporter/changelog.txt
@@ -0,0 +1,2 @@
+100
+- Initial addon
diff --git a/packages/addons/service/prometheus-node-exporter/icon/icon.png b/packages/addons/service/prometheus-node-exporter/icon/icon.png
new file mode 100644
index 0000000000..f3d23b52b5
Binary files /dev/null and b/packages/addons/service/prometheus-node-exporter/icon/icon.png differ
diff --git a/packages/addons/service/prometheus-node-exporter/package.mk b/packages/addons/service/prometheus-node-exporter/package.mk
new file mode 100644
index 0000000000..850d7dc4d5
--- /dev/null
+++ b/packages/addons/service/prometheus-node-exporter/package.mk
@@ -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
+}
+
diff --git a/packages/addons/service/prometheus-node-exporter/source/bin/prometheus-node-exporter.start b/packages/addons/service/prometheus-node-exporter/source/bin/prometheus-node-exporter.start
new file mode 100644
index 0000000000..f51355a72d
--- /dev/null
+++ b/packages/addons/service/prometheus-node-exporter/source/bin/prometheus-node-exporter.start
@@ -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
diff --git a/packages/addons/service/prometheus-node-exporter/source/default.py b/packages/addons/service/prometheus-node-exporter/source/default.py
new file mode 100644
index 0000000000..ef7b848bc3
--- /dev/null
+++ b/packages/addons/service/prometheus-node-exporter/source/default.py
@@ -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()
diff --git a/packages/addons/service/prometheus-node-exporter/source/resources/language/English/strings.po b/packages/addons/service/prometheus-node-exporter/source/resources/language/English/strings.po
new file mode 100644
index 0000000000..66d231ff67
--- /dev/null
+++ b/packages/addons/service/prometheus-node-exporter/source/resources/language/English/strings.po
@@ -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 ""
diff --git a/packages/addons/service/prometheus-node-exporter/source/resources/settings.xml b/packages/addons/service/prometheus-node-exporter/source/resources/settings.xml
new file mode 100644
index 0000000000..367a25ea84
--- /dev/null
+++ b/packages/addons/service/prometheus-node-exporter/source/resources/settings.xml
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/addons/service/prometheus-node-exporter/source/settings-default.xml b/packages/addons/service/prometheus-node-exporter/source/settings-default.xml
new file mode 100644
index 0000000000..4d48bd4178
--- /dev/null
+++ b/packages/addons/service/prometheus-node-exporter/source/settings-default.xml
@@ -0,0 +1,67 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/packages/addons/service/prometheus-node-exporter/source/system.d/service.prometheus-node-exporter.service b/packages/addons/service/prometheus-node-exporter/source/system.d/service.prometheus-node-exporter.service
new file mode 100644
index 0000000000..73546606a5
--- /dev/null
+++ b/packages/addons/service/prometheus-node-exporter/source/system.d/service.prometheus-node-exporter.service
@@ -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