Skip to content
This repository has been archived by the owner on Jun 21, 2022. It is now read-only.


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
June 21, 2022 20:09

iStat for Status Board

Note: this is not maintained and has been archived.


This is a collection of graphs from iStat Server 2's database for Panic's Status Board app for iPad.

Check out the blog post here.


  1. Chuck this file anywhere on your server accessible by Apache (and the outside world, or just in your network)
  2. Add a graph in Status Board with the URI /path/to/file/istat.php?data=xxx

Data Types:

  • cpu_day: CPU usage for the last 24 hours
  • cpu_hour: CPU usage for the last 60 minutes
  • ram_day: RAM usage for the last 24 hours
  • ram_hour: RAM usage for the last 60 minutes
  • io_day Disk I/O for the last 24 hours
  • disk_month: Disk usage for the last month
  • load_day: CPU load for the last 24 hours
  • load_hour: CPU load for the last 60 minutes
  • temp_day: Temp sensors for the last 24 hours
  • temp_hour : Temp sensors for the last 60 minutes

Also included is a graph modified to hide the X axis (timestamps). To do this, simple add &hideXAxis anywhere in your query string.

CPU Graph Usage

There's an optional parameter called $cores that you can provide to better scale the graph. By default, we assume that your machine is a dual-core machine, but you can override that using the $cores variable. Simply add to the query string like such:

&cores=4 or &cores=8

Remember, this defaults to 2, so if your machine is dual-core, don't worry about passing $cores as we assume dual-core.

Disk Usage Graph Usage

To monitor your disks, iStat for Status Board needs the UUID and name of each disk to monitor. These should be put into an array in a file called istat_disks.php and stored in the same location as the rest of this code.



$monitoredDisks = array (
	'1' => array (
		'uuid' => 'YOUR_DISK_UUID' ,
		'name' => 'Macintosh HD' ,
	) ,
	'2' => array (
		'uuid' => 'ANOTHER_DISK_UUID' ,
		'name' => 'Another Disk Tracked By iStat Server' ,
	) ,

To get the UUID of your disk, go to Disk Utility, then select the volume and then click Info. Copy the string next to Universal Unique Identifier:. Name should be the same name as the volume, but you can call it something else if you want.

Once you've made that file, disks should then be added to the query string like so

&disks=1 or &disks=1,2

Where the number(s) are the number you assigned the disks in istat_disks.php.

Disk I/O Graph Usage

Like disk usage, disk I/O requires a istat_disks.php file with some information regarding your disks. In the case of monitoring disk I/O, we need the serial number of the disk, along with a name. iStat Server can currently only monitor internal disks.

Serial numbers for disks can be found in the System Information app (née System Profiler). Open System Information then click on Serial-ATA. On the right hand-side you'll see each internal HDD/SSD. Click on each applicable disk you want to monitor and the serial number will be listed below.

Once you've got the serial number for each disk, enter the details in istat_disks.php like below:


$ioDisks = array (
	'1' => array (
		'uuid' => 'DISK_SERIAL_NUMBER' ,
		'name' => 'BRAND_NAME_OF_DISK' ,
	) ,
	'2' => array (
		'name' => 'ANOTHER_NAME_FOR_DISK' ,
	) ,

In my Mac mini Server I have two internal disks, see below for how I have my $ioDisks array configured (note that serial numbers have been obfuscated for warranty purposes):


$ioDisks = array (
	'1' => array (
		'uuid' => 'OBFUSCATED' ,
		'name' => 'OCZ Vertex SSD' ,
	) ,
	'2' => array (
		'uuid' => 'OBFUSCATED' ,
		'name' => 'Hitachi HDD' ,
	) ,

Like the disk usage graph, you should add a disks var to your query string, example below:

&disks=1 or &disks=1,2

Remember, multiple disks MUST be comma delimited with no spaces.

Temperature Sensor Graph Usage

To use the temp sensor graphs you need to provide another parameter which should have a list of sensors you'd like to get readings from the list below:

  • TC0D: CPU A Temp
  • TC0H: CPU A Heatsink
  • TC0P: CPU A Proximity
  • TA0P: Ambient Air 1
  • TA1P: Ambient Air 2
  • TM0S: Memory Slot 1
  • TMBS: Memory Slot 2
  • TM0P: Memory Slots Proximity
  • TH0P: HDD Bay
  • TH1P: HDD 2 Bay
  • TH2P: HDD 3 Bay
  • TH3P: HDD 4 Bay
  • TN0D: Northbridge Diode
  • TN0P: Northbridge Proximity
  • TI0P: Thunderbolt Proximity 1
  • TI1P: Thunderbolt Proximity 2
  • F0Ac: Fan Speed (reported as actual speed / 100)

Once you've got the sensors you'd like to read, add them to the query string like below:

&temps=TC0D or &temps=TC0D,TC0H or &temps=TC0D,TC0H,F0Ac

Multiple temps MUST be comma delimited with no spaces, otherwise they will be ignored.

Optional Temperature Scale

You can optionally specify the desired temperature scale (Celsius or Fahrenheit). If no scale is specified, the scale will default to Celsius. Simply add to the query string like below:

&temp_unit=f or &temp_unit=c


This has been tested on Mac OS X 10.8.3 with the default PHP runtime environment with iStat Server 2.12


Brings in data from iStat Server into Panic's Status Board app for iPad.






No releases published


No packages published