I have just moved from Core to Scale and was surprised to learn that Scale appears to be missing the detailed disk statistics that were present in Core (Detailed IOPS info, percent busy, latency, and pending I/O)
Surely there have been lots of forum discussions on this, but searching here, with Google, and with ChatGPT has not lead me to useful forum discussions or answers around this. ChatGPT gave me vague references to this being caused by the shift to Linux but no useable details or pointers to specific technical discussions.
First is this true that these stats are gone from the TrueNAS Scale UI and second, what are people generally using to monitor disk performance on Scale?
Starting at trueness dashboard go to reporting tab then netdata button for more metrics
OR
You could use docker apps.
Im over here using protainer and have a stack that has Grafana, promethea and node exporter. it also does logs
Here is my metrics stack to get you started if you want
Protainer stack
#Remeber to change passwords, usernames, email addresses and mount points to match your nas instance OR THIS STACK WILL NOT WORK
#puid and guid of 568 is truenas defoult apps ID or is for mine
#Most apps require a storage dirctory (in this case it a dataset) to store configs and othere stuff. Makes sure there is a user with read/write permisons
#that has a matching group and user id Number. for puid and guid. apps will not have access to the dataset without.
#cpuset can be used to pin an app to specific CPU cores. if desired i use this becouse my CPU has effisincy cores and i like my power bill to not cost me an arm and a leg
version: '3.7'
services:
grafana: # grabs metrics and turns them into graphs
image: grafana/grafana-enterprise:latest
entrypoint: /run.sh
container_name: grafana
depends_on:
- prometheus
user: 568:568
restart: unless-stopped
#cpuset: '1,2,3,4,5'
deploy:
resources:
limits:
memory: 4096M
environment:
- PUID=568
- PGID=568
- TZ=America/Los_Angeles #change to mach yours
- GF_SERVER_PROTOCOL=http #can be https
#email service. needed if you want email alerts
- GF_SMTP_ENABLED=true
- GF_SMTP_HOST=smtp.gmail.com:465
- GF_SMTP_USER=yourgmail@gmail.com
- GF_SMTP_PASSWORD=google device password
#email service
ports:
- 3000:3000
volumes: Change mount points to your own
- /mnt/foo/bar/grafana/grafana-plugins:/var/lib/grafana/plugins
- /tmp:/tmp
- /mnt/foo/bar/grafana/grafana-data:/var/lib/grafana
#log exporters
loki: # makes logs available for grafana
image: grafana/loki:latest
container_name: loki
depends_on:
- promtail
restart: unless-stopped
#cpuset: '16,17,18,19'
deploy:
resources:
limits:
memory: 2000M
user: 0:0
environment:
- PUID=568
- PGID=568
ports:
- 3100:3100
volumes: #Change mount points to your own
- /mnt/foo/bar/loki/loki:/etc/loki/loki-config.yml
# promtail needs a config file to be made at /mnt/foo/bar/loki/promtail
promtail: #log shipper
image: grafana/promtail:latest
container_name: promtail
depends_on:
- grafana
#cpuset: '16,17,18,19'
deploy:
resources:
limits:
memory: 2000M
user: 0:0 I hate running apps as root but cant read logs from truenas without it
restart: unless-stopped
command: -config.file=/etc/promtail/config.yml
environment:
- PUID=568
- PGID=568
ports:
- "1514:1514"
- "9080:9080"
volumes:
- /mnt/foo/bar/loki/promtail:/etc/promtail/
- /tmp/promtail:/tmp
- /var/:/var/ # were truenas scale stores logs
- /mnt/.ix-apps/docker/containers:/dockerlogs:ro #grabs logs from docker
- /mnt/foo/bar/syslog-ng/log:/syslog:ro
syslog-ng: # needs a config file to be made at /mnt/foo/bar/syslog-ng/config
image: lscr.io/linuxserver/syslog-ng:latest
container_name: syslog-ng
restart: unless-stopped
user: 0:0 # I hate running apps as root but cant read logs from truenas without it
depends_on:
- promtail
network_mode: host
environment:
- PUID=0
- PGID=0
- TZ=America/Los_Angeles
- LOG_TO_STDOUT= #optional
volumes:
- /mnt/foo/bar/syslog-ng/config:/config
- /mnt/foo/bar/syslog-ng/log:/var/log #optional
ports:
- 514:514/tcp
- 601:6601/tcp
- 6514:6514/tcp
#data exporters
#prometheus.yml is prometheus config file you will need to make one and put it in /mnt/foo/bar/prometheus/prometheus or it will not run
# instructionm for how to make config can be found here https://docs.docker.com/engine/daemon/prometheus/
prometheus:
image: prom/prometheus:latest
user: "568:568"
container_name: prometheus
restart: unless-stopped
ports:
- "9090:9090/tcp"
environment:
- PUID=568
- PGID=568
- GID=568
- UID=568
- TZ=America/Los_Angeles
volumes:
- '/mnt/foo/bar/prometheus/prometheus:/etc/prometheus'
- '/mnt/foo/bar/prometheus/promethues_data:/prometheus'
command:
- '--config.file=/etc/prometheus/prometheus.yml'
- '--storage.tsdb.path=/prometheus'
- '--web.console.libraries=/etc/prometheus/console_libraries'
- '--web.console.templates=/etc/prometheus/consoles'
- '--storage.tsdb.retention.time=365d'
- '--web.enable-lifecycle'
node-exporter: # this grabs metrics from trunas scale and makes them availible to be scraped by prometheus
image: quay.io/prometheus/node-exporter:latest
container_name: node-Exporter
depends_on:
- prometheus
restart: unless-stopped
user: root:root #cant get CPU Ram Or othere system metrics with it set to anything else. Why
#cpuset: '16,17,18,19'
network_mode: host #needed if you want metrics on your network
ports:
- "9100:9100"
environment:
- PUID=0
- PGID=0
volumes:
- /mnt:/mnt # needed if you want metrics on your datasets leave set to /mnt
#end of data exporters
1 Like
Thanks! I feel a bit silly at missing the netdata button.
Wait a minute, I just learned about this and I literally don’t have this button. I have both 24.10 and 25.04 RC installed, so I flipped back and forth between them and neither of them have a Netdata button. I read about in the documentation too, and my UI just…doesn’t have that option. I even tried truenas.local/netdata. I scoured the entire UI and came up empty handed. What’s going on here??