WD NAS App Builder

All apps

Grafana 13.3.1

Dashboards and alerts for the NAS's metrics (from the Prometheus app) and other data sources

monitoring

Download

NASSizeSHA256
My Cloud PR4100211 MBDownload097025f28c2913ce…
My Cloud PR2100211 MBDownloadba59d37f0625e5a4…
My Cloud DL4100211 MBDownload45b17fae409a207c…
My Cloud DL2100211 MBDownload96af8b05667b0118…
My Cloud EX4100197 MBDownloadfe0fb547cc41e960…
My Cloud EX2100197 MBDownload6e7d9669f2768806…
My Cloud EX2 Ultra197 MBDownload8d65ce397d7d6118…
My Cloud Mirror (Gen 2)197 MBDownloadfd7bfd53c82c5163…
My Cloud (Gen 2)197 MBDownload0fa2cc092efae40a…
WD Cloud197 MBDownload9c5af2fb8904f091…

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

Grafana draws dashboards from metrics and other data, and sends alerts. With the Prometheus app (which stores the metrics of the Node Exporter app) it shows the NAS's health and activity. It runs natively on the NAS (no Docker), using about 300–400MB of memory.

  • It's at http://<nas-ip>:3000 on the local network, and also served over HTTPS by the Nginx app, if installed, at https://grafana.<its domain> (added automatically; the site can be renamed or switched off there). The management page can limit it to the Nginx app only.
  • Log in as admin, with the password the app generates on first start (shown on the management page, which can also reset it).
  • Set up by the app:
  • the Prometheus app as the default data source, and the logs app's Loki (each when installed)
  • two dashboards in a NAS folder: WD NAS (made for the app: storage health and RAID state from WD's own records, disk temperatures, a table of the disks, volume space, CPU, memory and disk throughput) and Node Exporter Full (the standard, very detailed system dashboard - by rfmoz, Apache-2.0). They're read-only (copy one in Grafana, with "Save as", to change it).
  • other apps' dashboards, in the same NAS folder: an app can ship some (dashboards/*.json in its folder - e.g. the logs app's NAS logs, and the Postgres, MariaDB and Valkey exporters'). Grafana gathers each installed app's into Nas_Prog/_grafana/app-dashboards, and notices an app being installed or removed within 30 seconds - no restart needed.
  • no telemetry, news feed, or plugins downloaded at start-up
  • It runs as its own grafana user (created by the app, ID 74), not as root.
  • Its data is kept next to the app, e.g. /mnt/HD/HD_a2/Nas_Prog/_grafana, and survives reinstalls and removal:
  • data/ - Grafana's own data: its database grafana.db (dashboards, users, data sources, alerts, settings) and installed plugins, readable only by its user
  • admin_password - the first admin password (root only)
  • grafana.ini and provisioning/ - written by the app at every start
  • settings - the management page's settings
  • backups/ - the daily backups (unless another folder is chosen)
  • grafana.log - its warnings and errors, kept under 1MB
  • It's Grafana's official static release, trimmed by static/grafana to what the NAS needs (about 650MB instead of 1.4GB): without its documentation, API browser and the web interface's debugging files, and with only the data source plugins for Prometheus, Loki (the logs app), MySQL / MariaDB and PostgreSQL (the project's database apps). Other data sources (e.g. InfluxDB, Tempo) can be installed from Grafana's plugin catalogue (Administration → Plugins).
  • Grafana doesn't update itself: updates come with new versions of the app, and the NAS shows an alert (and sends an email, if set up) 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

Grafana's page in the NAS dashboard (Apps → Grafana) shows whether it's running, its version, addresses and data source, with a link to it. It can:

  • limit access to the Nginx app (HTTPS) only, or also allow port 3000 on the local network
  • show and copy the admin password, or reset it to a new random one
  • set the backup folder and how many backups to keep, back up straight away, and list the backups
  • restart Grafana, and show its latest warnings

Only NAS admins can use the page (see Management pages).

Backups

Every day at 02:45, and on the page's Back up now, the app writes grafana-<date>-<time>.tar.gz to the backup folder, holding grafana.db (a consistent copy made with SQLite's online backup while Grafana runs, and checked). The newest backups are kept (7 by default), readable by root only.

To restore one over SSH (the app's folder may be on another volume):

sh /mnt/HD/HD_a2/Nas_Prog/grafana/graf_ctl.sh stop
cd /mnt/HD/HD_a2/Nas_Prog/_grafana
tar -xzf backups/grafana-<date>-<time>.tar.gz -C data
chown grafana:grafana data/grafana.db && chmod 600 data/grafana.db
sh /mnt/HD/HD_a2/Nas_Prog/grafana/graf_ctl.sh start