WD NAS App Builder

All apps

Prometheus 3.16.0-1

Collects and stores the NAS's metrics (from the Node Exporter app and others), for Grafana and alerts

monitoring

Download

NASSizeSHA256
My Cloud PR410032 MBDownload23a9492024fefc22…
My Cloud PR210032 MBDownload4366fb792b1fc0b5…
My Cloud DL410032 MBDownload3ed32e5d1c6b71ed…
My Cloud DL210032 MBDownloadd0f2a76d510e40fd…
My Cloud EX410030 MBDownloadcd151784865e71c9…
My Cloud EX210030 MBDownload27e9e77000dad3fc…
My Cloud EX2 Ultra30 MBDownloadf5eb9e59e3a077f1…
My Cloud Mirror (Gen 2)30 MBDownload2481ebfb7e580df0…
My Cloud (Gen 2)30 MBDownload26ddc2f67ffba01c…
WD Cloud30 MBDownloadf6f128a15450971a…

Easier: install it from the Store, which also updates it.

Prometheus collects metrics: every 30 seconds it fetches ("scrapes") the numbers that exporters publish - such as the Node Exporter app's, for the NAS's hardware, system and WD storage - and stores them with their history. The Grafana app draws dashboards from it, and its own rules can raise alerts.

  • It's on port 9090, reachable on the NAS itself only by default: Prometheus has no login, and Grafana reaches it there. The management page can open it to the local network.
  • Its configuration is written by the app (at every start, and by the page's Reload): it scrapes itself and the Node Exporter app, if installed - following that app's port and password, so changing them on Node Exporter's page updates Prometheus too.
  • Other apps' metrics are collected by themselves: an app can ship a scrape job (prometheus/*.yml in its folder - e.g. the Postgres, MariaDB and Valkey exporters). Prometheus copies each installed app's into apps.d/ (with the NAS's name as its instance) and reloads when such an app is installed or removed - in either order.
  • Your own scrape jobs go in scrape.d/*.yml, and alerting / recording rules in rules.d/*.yml (see scrape.d/README.txt). A file with an error doesn't stop Prometheus: it keeps its previous configuration, and the page shows that the reload failed.
  • History is kept for 30 days by default (adjustable on the page). For one NAS that's typically a few hundred MB.
  • It runs as its own prometheus user (created by the app, ID 73), not as root.
  • Its data is kept next to the app, e.g. /mnt/HD/HD_a2/Nas_Prog/_prometheus (the database in data/, its settings, your own files, and prometheus.log - warnings only, kept under 1MB), and survives reinstalls and removal.
  • Prometheus writes to its database continuously, so the NAS's disks won't sleep while it runs.
  • The official static program is used (prepared by static/prometheus, without promtool). Prometheus doesn't update itself: updates come with new versions of the app, and the NAS shows an alert when a new release is out, checked weekly.
  • For the Intel and ARM models (the ARM ones' packages are checked under emulation when they're built, but haven't yet been tried on an ARM NAS) - and it's heavy for them: workable with 1-2GB of memory (e.g. an EX4100), too much for the 512MB single-drive My Cloud.

Management page

Prometheus' page in the NAS dashboard (Apps → Prometheus) shows whether it's running, its version, address, how much it stores, whether its configuration loaded, and its targets with their state (and the error, for any that are down). It reloads the configuration, restarts Prometheus, sets how many days of history to keep and whether it's reachable from the network, and shows its latest warnings. Only NAS admins can use the page (see Management pages).