The value is just an integer, with a maximum value equivalent to around 2 gigabytes when converted to bytes. This makes it unsuitable for directly comparing available & used space, because they are in the database as bytes only.
I use custom fields to store limits for megabytes. Then, use a custom SQL volume alert but divide the value in the database by 1024, then 1024 again for megabytes.
For example, this is what I use. My custom field is called "Minimum_Free_MB", and I'm sure it can be optimised a little:
WHERE ( (Volumes.Minimum_Free_MB IS NOT NULL) AND (Nodes.Vendor = 'Windows') AND (Volumes.Caption LIKE '%:\%') AND ( (Volumes.VolumeType = 'Fixed Disk') OR (Volumes.VolumeType = 'Unknown') ) AND (NullIf(VolumeSize,-2)-NullIf(VolumeSpaceUsed,-2))/1024/1024 < Volumes.Minimum_Free_MB) AND (Volumes.VolumeSize >= 1) )
so if I use an integer or a text value the value will be in bytes?
I've never used a custom SQL alert. How do I implement that?