What are people using to monitor disk performance on TrueNAS Scale?

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??