Additional scripts for Zabbix agent on Linux to discover and monitor several services
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

2368 lines
113 KiB

<?xml version="1.0" encoding="UTF-8"?>
<zabbix_export>
<version>5.0</version>
<date>2021-06-19T12:12:56Z</date>
<groups>
<group>
<name>Templates</name>
</group>
</groups>
<templates>
<template>
<template>Template_App_ZFS</template>
<name>Template_App_ZFS</name>
<groups>
<group>
<name>Templates</name>
</group>
</groups>
<applications>
<application>
<name>Memory</name>
</application>
<application>
<name>Storage</name>
</application>
</applications>
<items>
<item>
<name>ZFS: ARC: All</name>
<key>vfs.zfs.stats.all[arcstats]</key>
<delay>300</delay>
<history>0</history>
<trends>0</trends>
<value_type>TEXT</value_type>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
</item>
<item>
<name>ZFS: ARC: $2</name>
<type>DEPENDENT</type>
<key>vfs.zfs.stats[arcstats,compressed_size]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.compressed_size</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.stats.all[arcstats]</key>
</master_item>
</item>
<item>
<name>ZFS: ARC: compression win</name>
<type>DEPENDENT</type>
<key>vfs.zfs.stats[arcstats,compress_win]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<preprocessing>
<step>
<type>JAVASCRIPT</type>
<params>json = JSON.parse(value);
uncomp = json.uncompressed_size;
comp = json.compressed_size;
diff = uncomp - comp;
return (diff &lt; 0 ? 0 : diff);</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.stats.all[arcstats]</key>
</master_item>
</item>
<item>
<name>ZFS: ARC: $2</name>
<type>DEPENDENT</type>
<key>vfs.zfs.stats[arcstats,c_max]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.c_max</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.stats.all[arcstats]</key>
</master_item>
</item>
<item>
<name>ZFS: ARC: $2</name>
<type>DEPENDENT</type>
<key>vfs.zfs.stats[arcstats,c_min]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.c_min</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.stats.all[arcstats]</key>
</master_item>
</item>
<item>
<name>ZFS: ARC: $2</name>
<type>DEPENDENT</type>
<key>vfs.zfs.stats[arcstats,data_size]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.data_size</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.stats.all[arcstats]</key>
</master_item>
</item>
<item>
<name>ZFS: ARC: $2</name>
<type>DEPENDENT</type>
<key>vfs.zfs.stats[arcstats,demand_data_hits]</key>
<delay>0</delay>
<trends>1825d</trends>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.demand_data_hits</params>
</step>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.stats.all[arcstats]</key>
</master_item>
</item>
<item>
<name>ZFS: ARC: demand data hits %</name>
<type>CALCULATED</type>
<key>vfs.zfs.stats[arcstats,demand_data_hits_pct]</key>
<delay>300</delay>
<trends>1825d</trends>
<value_type>FLOAT</value_type>
<units>%</units>
<params>100*last(&quot;vfs.zfs.stats[arcstats,demand_data_hits]&quot;)/(last(&quot;vfs.zfs.stats[arcstats,demand_data_hits]&quot;)+last(&quot;vfs.zfs.stats[arcstats,demand_data_misses]&quot;)+count(&quot;vfs.zfs.stats[arcstats,demand_data_hits]&quot;,#1,0))</params>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
</item>
<item>
<name>ZFS: ARC: $2</name>
<type>DEPENDENT</type>
<key>vfs.zfs.stats[arcstats,demand_data_misses]</key>
<delay>0</delay>
<trends>1825d</trends>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.demand_data_misses</params>
</step>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.stats.all[arcstats]</key>
</master_item>
</item>
<item>
<name>ZFS: ARC: demand data misses %</name>
<type>CALCULATED</type>
<key>vfs.zfs.stats[arcstats,demand_data_misses_pct]</key>
<delay>300</delay>
<trends>1825d</trends>
<value_type>FLOAT</value_type>
<units>%</units>
<params>100*last(&quot;vfs.zfs.stats[arcstats,demand_data_misses]&quot;)/(last(&quot;vfs.zfs.stats[arcstats,demand_data_hits]&quot;)+last(&quot;vfs.zfs.stats[arcstats,demand_data_misses]&quot;)+count(&quot;vfs.zfs.stats[arcstats,demand_data_misses]&quot;,#1,0))</params>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<triggers>
<trigger>
<expression>{avg(1h)}&gt;(100-{$ZFS_ARC_HIT_DATA_PCT_WARN})</expression>
<name>ZFS: Low ARC data efficiency</name>
<priority>INFO</priority>
</trigger>
</triggers>
</item>
<item>
<name>ZFS: ARC: $2</name>
<type>DEPENDENT</type>
<key>vfs.zfs.stats[arcstats,demand_metadata_hits]</key>
<delay>0</delay>
<trends>1825d</trends>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.demand_metadata_hits</params>
</step>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.stats.all[arcstats]</key>
</master_item>
</item>
<item>
<name>ZFS: ARC: demand metadata hits %</name>
<type>CALCULATED</type>
<key>vfs.zfs.stats[arcstats,demand_metadata_hits_pct]</key>
<delay>300</delay>
<trends>1825d</trends>
<value_type>FLOAT</value_type>
<units>%</units>
<params>100*last(&quot;vfs.zfs.stats[arcstats,demand_metadata_hits]&quot;)/(last(&quot;vfs.zfs.stats[arcstats,demand_metadata_hits]&quot;)+last(&quot;vfs.zfs.stats[arcstats,demand_metadata_misses]&quot;)+count(&quot;vfs.zfs.stats[arcstats,demand_metadata_hits]&quot;,#1,0))</params>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
</item>
<item>
<name>ZFS: ARC: $2</name>
<type>DEPENDENT</type>
<key>vfs.zfs.stats[arcstats,demand_metadata_misses]</key>
<delay>0</delay>
<trends>1825d</trends>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.demand_metadata_misses</params>
</step>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.stats.all[arcstats]</key>
</master_item>
</item>
<item>
<name>ZFS: ARC: demand metadata misses %</name>
<type>CALCULATED</type>
<key>vfs.zfs.stats[arcstats,demand_metadata_misses_pct]</key>
<delay>300</delay>
<trends>1825d</trends>
<value_type>FLOAT</value_type>
<units>%</units>
<params>100*last(&quot;vfs.zfs.stats[arcstats,demand_metadata_misses]&quot;)/(last(&quot;vfs.zfs.stats[arcstats,demand_metadata_hits]&quot;)+last(&quot;vfs.zfs.stats[arcstats,demand_metadata_misses]&quot;)+count(&quot;vfs.zfs.stats[arcstats,demand_metadata_misses]&quot;,#1,0))</params>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<triggers>
<trigger>
<expression>{avg(900)}&gt;(100-{$ZFS_ARC_HIT_METADATA_PCT_WARN})</expression>
<name>ZFS: Low ARC metadata efficiency</name>
<priority>INFO</priority>
</trigger>
</triggers>
</item>
<item>
<name>ZFS: ARC: $2</name>
<type>DEPENDENT</type>
<key>vfs.zfs.stats[arcstats,evict_l2_cached]</key>
<delay>0</delay>
<trends>1825d</trends>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.evict_l2_cached</params>
</step>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.stats.all[arcstats]</key>
</master_item>
</item>
<item>
<name>ZFS: ARC: $2</name>
<type>DEPENDENT</type>
<key>vfs.zfs.stats[arcstats,evict_l2_eligible]</key>
<delay>0</delay>
<trends>1825d</trends>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.evict_l2_eligible</params>
</step>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.stats.all[arcstats]</key>
</master_item>
</item>
<item>
<name>ZFS: ARC: $2</name>
<type>DEPENDENT</type>
<key>vfs.zfs.stats[arcstats,evict_l2_ineligible]</key>
<delay>0</delay>
<trends>1825d</trends>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.evict_l2_ineligible</params>
</step>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.stats.all[arcstats]</key>
</master_item>
</item>
<item>
<name>ZFS: ARC: $2</name>
<type>DEPENDENT</type>
<key>vfs.zfs.stats[arcstats,hdr_size]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.hdr_size</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.stats.all[arcstats]</key>
</master_item>
</item>
<item>
<name>ZFS: ARC: $2</name>
<type>DEPENDENT</type>
<key>vfs.zfs.stats[arcstats,hits]</key>
<delay>0</delay>
<trends>1825d</trends>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.hits</params>
</step>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.stats.all[arcstats]</key>
</master_item>
</item>
<item>
<name>ZFS: ARC: hits %</name>
<type>CALCULATED</type>
<key>vfs.zfs.stats[arcstats,hits_pct]</key>
<delay>300</delay>
<trends>1825d</trends>
<value_type>FLOAT</value_type>
<units>%</units>
<params>100*last(&quot;vfs.zfs.stats[arcstats,hits]&quot;)/(last(&quot;vfs.zfs.stats[arcstats,hits]&quot;)+last(&quot;vfs.zfs.stats[arcstats,misses]&quot;)+count(&quot;vfs.zfs.stats[arcstats,hits]&quot;,#1,0))</params>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
</item>
<item>
<name>ZFS: ARC: $2</name>
<type>DEPENDENT</type>
<key>vfs.zfs.stats[arcstats,l2_cksum_bad]</key>
<delay>0</delay>
<trends>1825d</trends>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.l2_cksum_bad</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.stats.all[arcstats]</key>
</master_item>
</item>
<item>
<name>ZFS: ARC: $2</name>
<type>DEPENDENT</type>
<key>vfs.zfs.stats[arcstats,l2_hits]</key>
<delay>0</delay>
<trends>1825d</trends>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.l2_hits</params>
</step>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.stats.all[arcstats]</key>
</master_item>
</item>
<item>
<name>ZFS: ARC: l2 hits %</name>
<type>CALCULATED</type>
<key>vfs.zfs.stats[arcstats,l2_hits_pct]</key>
<delay>300</delay>
<trends>1825d</trends>
<value_type>FLOAT</value_type>
<units>%</units>
<params>100*last(&quot;vfs.zfs.stats[arcstats,l2_hits]&quot;)/(last(&quot;vfs.zfs.stats[arcstats,l2_hits]&quot;)+last(&quot;vfs.zfs.stats[arcstats,l2_misses]&quot;)+count(&quot;vfs.zfs.stats[arcstats,l2_hits]&quot;,#1,0))</params>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
</item>
<item>
<name>ZFS: ARC: $2</name>
<type>DEPENDENT</type>
<key>vfs.zfs.stats[arcstats,l2_io_error]</key>
<delay>0</delay>
<trends>1825d</trends>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.l2_io_error</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.stats.all[arcstats]</key>
</master_item>
</item>
<item>
<name>ZFS: ARC: $2</name>
<type>DEPENDENT</type>
<key>vfs.zfs.stats[arcstats,l2_misses]</key>
<delay>0</delay>
<trends>1825d</trends>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.l2_misses</params>
</step>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.stats.all[arcstats]</key>
</master_item>
</item>
<item>
<name>ZFS: ARC: l2 misses %</name>
<type>CALCULATED</type>
<key>vfs.zfs.stats[arcstats,l2_misses_pct]</key>
<delay>300</delay>
<trends>1825d</trends>
<value_type>FLOAT</value_type>
<units>%</units>
<params>100*last(&quot;vfs.zfs.stats[arcstats,l2_misses]&quot;)/(last(&quot;vfs.zfs.stats[arcstats,l2_hits]&quot;)+last(&quot;vfs.zfs.stats[arcstats,l2_misses]&quot;)+count(&quot;vfs.zfs.stats[arcstats,l2_misses]&quot;,#1,0))</params>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
</item>
<item>
<name>ZFS: ARC: $2</name>
<type>DEPENDENT</type>
<key>vfs.zfs.stats[arcstats,l2_read_bytes]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.l2_read_bytes</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.stats.all[arcstats]</key>
</master_item>
</item>
<item>
<name>ZFS: ARC: $2</name>
<type>DEPENDENT</type>
<key>vfs.zfs.stats[arcstats,l2_writes_error]</key>
<delay>0</delay>
<trends>1825d</trends>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.l2_writes_error</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.stats.all[arcstats]</key>
</master_item>
</item>
<item>
<name>ZFS: ARC: $2</name>
<type>DEPENDENT</type>
<key>vfs.zfs.stats[arcstats,l2_write_bytes]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.l2_write_bytes</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.stats.all[arcstats]</key>
</master_item>
</item>
<item>
<name>ZFS: ARC: $2</name>
<type>DEPENDENT</type>
<key>vfs.zfs.stats[arcstats,metadata_size]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.metadata_size</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.stats.all[arcstats]</key>
</master_item>
</item>
<item>
<name>ZFS: ARC: $2</name>
<type>DEPENDENT</type>
<key>vfs.zfs.stats[arcstats,mfu_ghost_hits]</key>
<delay>0</delay>
<trends>1825d</trends>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.mfu_ghost_hits</params>
</step>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.stats.all[arcstats]</key>
</master_item>
</item>
<item>
<name>ZFS: ARC: $2</name>
<type>DEPENDENT</type>
<key>vfs.zfs.stats[arcstats,mfu_ghost_size]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.mfu_ghost_size</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.stats.all[arcstats]</key>
</master_item>
</item>
<item>
<name>ZFS: ARC: $2</name>
<type>DEPENDENT</type>
<key>vfs.zfs.stats[arcstats,mfu_hits]</key>
<delay>0</delay>
<trends>1825d</trends>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.mfu_hits</params>
</step>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.stats.all[arcstats]</key>
</master_item>
</item>
<item>
<name>ZFS: ARC: $2</name>
<type>DEPENDENT</type>
<key>vfs.zfs.stats[arcstats,mfu_size]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.mfu_size</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.stats.all[arcstats]</key>
</master_item>
</item>
<item>
<name>ZFS: ARC: $2</name>
<type>DEPENDENT</type>
<key>vfs.zfs.stats[arcstats,misses]</key>
<delay>0</delay>
<trends>1825d</trends>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.misses</params>
</step>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.stats.all[arcstats]</key>
</master_item>
</item>
<item>
<name>ZFS: ARC: misses %</name>
<type>CALCULATED</type>
<key>vfs.zfs.stats[arcstats,misses_pct]</key>
<delay>300</delay>
<trends>1825d</trends>
<value_type>FLOAT</value_type>
<units>%</units>
<params>100*last(&quot;vfs.zfs.stats[arcstats,misses]&quot;)/(last(&quot;vfs.zfs.stats[arcstats,hits]&quot;)+last(&quot;vfs.zfs.stats[arcstats,misses]&quot;)+count(&quot;vfs.zfs.stats[arcstats,misses]&quot;,#1,0))</params>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<triggers>
<trigger>
<expression>{avg(1h)}&gt;(100-{$ZFS_ARC_HIT_PCT_WARN})</expression>
<name>ZFS: Low ARC global efficiency</name>
<priority>INFO</priority>
</trigger>
</triggers>
</item>
<item>
<name>ZFS: ARC: $2</name>
<type>DEPENDENT</type>
<key>vfs.zfs.stats[arcstats,mru_ghost_hits]</key>
<delay>0</delay>
<trends>1825d</trends>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.mru_ghost_hits</params>
</step>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.stats.all[arcstats]</key>
</master_item>
</item>
<item>
<name>ZFS: ARC: $2</name>
<type>DEPENDENT</type>
<key>vfs.zfs.stats[arcstats,mru_ghost_size]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.mru_ghost_size</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.stats.all[arcstats]</key>
</master_item>
</item>
<item>
<name>ZFS: ARC: $2</name>
<type>DEPENDENT</type>
<key>vfs.zfs.stats[arcstats,mru_hits]</key>
<delay>0</delay>
<trends>1825d</trends>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.mru_hits</params>
</step>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.stats.all[arcstats]</key>
</master_item>
</item>
<item>
<name>ZFS: ARC: $2</name>
<type>DEPENDENT</type>
<key>vfs.zfs.stats[arcstats,mru_size]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.mru_size</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.stats.all[arcstats]</key>
</master_item>
</item>
<item>
<name>ZFS: ARC: $2</name>
<type>DEPENDENT</type>
<key>vfs.zfs.stats[arcstats,overhead_size]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.overhead_size</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.stats.all[arcstats]</key>
</master_item>
</item>
<item>
<name>ZFS: ARC: $2</name>
<type>DEPENDENT</type>
<key>vfs.zfs.stats[arcstats,prefetch_data_hits]</key>
<delay>0</delay>
<trends>1825d</trends>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.prefetch_data_hits</params>
</step>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.stats.all[arcstats]</key>
</master_item>
</item>
<item>
<name>ZFS: ARC: $2</name>
<type>DEPENDENT</type>
<key>vfs.zfs.stats[arcstats,prefetch_data_misses]</key>
<delay>0</delay>
<trends>1825d</trends>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.prefetch_data_misses</params>
</step>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.stats.all[arcstats]</key>
</master_item>
</item>
<item>
<name>ZFS: ARC: $2</name>
<type>DEPENDENT</type>
<key>vfs.zfs.stats[arcstats,prefetch_metadata_hits]</key>
<delay>0</delay>
<trends>1825d</trends>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.prefetch_metadata_hits</params>
</step>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.stats.all[arcstats]</key>
</master_item>
</item>
<item>
<name>ZFS: ARC: $2</name>
<type>DEPENDENT</type>
<key>vfs.zfs.stats[arcstats,prefetch_metadata_misses]</key>
<delay>0</delay>
<trends>1825d</trends>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.prefetch_metadata_misses</params>
</step>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.stats.all[arcstats]</key>
</master_item>
</item>
<item>
<name>ZFS: ARC: $2</name>
<type>DEPENDENT</type>
<key>vfs.zfs.stats[arcstats,size]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.size</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.stats.all[arcstats]</key>
</master_item>
</item>
<item>
<name>ZFS: ARC: $2</name>
<type>DEPENDENT</type>
<key>vfs.zfs.stats[arcstats,uncompressed_size]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Memory</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.uncompressed_size</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.stats.all[arcstats]</key>
</master_item>
</item>
</items>
<discovery_rules>
<discovery_rule>
<name>ZFS: filesystems discovery</name>
<key>vfs.zfs.discovery[fs]</key>
<delay>3600</delay>
<lifetime>1d</lifetime>
<item_prototypes>
<item_prototype>
<name>ZFS: fs {#ZFS_FS} info</name>
<key>vfs.zfs.dataset.info[{#ZFS_FS},fs]</key>
<delay>300s</delay>
<history>0</history>
<trends>0</trends>
<value_type>TEXT</value_type>
<applications>
<application>
<name>Storage</name>
</application>
</applications>
</item_prototype>
<item_prototype>
<name>ZFS: fs {#ZFS_FS} compression win</name>
<type>DEPENDENT</type>
<key>vfs.zfs.dataset[{#ZFS_FS},fs,compression_win]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Storage</name>
</application>
</applications>
<preprocessing>
<step>
<type>JAVASCRIPT</type>
<params>json = JSON.parse(value);
logicalused = new Number(json.logicalused);
used = new Number(json.used);
return (logicalused &gt; used ? logicalused - used : 0);</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.dataset.info[{#ZFS_FS},fs]</key>
</master_item>
</item_prototype>
<item_prototype>
<name>ZFS: fs {#ZFS_FS} compression ratio</name>
<type>DEPENDENT</type>
<key>vfs.zfs.dataset[{#ZFS_FS},fs,compressratio]</key>
<delay>0</delay>
<trends>1825d</trends>
<value_type>FLOAT</value_type>
<applications>
<application>
<name>Storage</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.compressratio</params>
</step>
<step>
<type>DISCARD_UNCHANGED_HEARTBEAT</type>
<params>1800</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.dataset.info[{#ZFS_FS},fs]</key>
</master_item>
</item_prototype>
<item_prototype>
<name>ZFS: fs {#ZFS_FS} logical used space</name>
<type>DEPENDENT</type>
<key>vfs.zfs.dataset[{#ZFS_FS},fs,logicalused]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Storage</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.logicalused</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.dataset.info[{#ZFS_FS},fs]</key>
</master_item>
</item_prototype>
<item_prototype>
<name>ZFS: fs {#ZFS_FS} quota</name>
<type>DEPENDENT</type>
<key>vfs.zfs.dataset[{#ZFS_FS},fs,quota]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Storage</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.quota</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.dataset.info[{#ZFS_FS},fs]</key>
</master_item>
</item_prototype>
<item_prototype>
<name>ZFS: fs {#ZFS_FS} ref quota</name>
<type>DEPENDENT</type>
<key>vfs.zfs.dataset[{#ZFS_FS},fs,refquota]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Storage</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.refquota</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.dataset.info[{#ZFS_FS},fs]</key>
</master_item>
</item_prototype>
<item_prototype>
<name>ZFS: fs {#ZFS_FS} space used by children</name>
<type>DEPENDENT</type>
<key>vfs.zfs.dataset[{#ZFS_FS},fs,usedbychildren]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Storage</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.usedbychildren</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.dataset.info[{#ZFS_FS},fs]</key>
</master_item>
</item_prototype>
<item_prototype>
<name>ZFS: fs {#ZFS_FS} space used by dataset</name>
<type>DEPENDENT</type>
<key>vfs.zfs.dataset[{#ZFS_FS},fs,usedbydataset]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Storage</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.usedbydataset</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.dataset.info[{#ZFS_FS},fs]</key>
</master_item>
</item_prototype>
<item_prototype>
<name>ZFS: fs {#ZFS_FS} space used by snapshots</name>
<type>DEPENDENT</type>
<key>vfs.zfs.dataset[{#ZFS_FS},fs,usedbysnapshots]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Storage</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.usedbysnapshots</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.dataset.info[{#ZFS_FS},fs]</key>
</master_item>
</item_prototype>
<item_prototype>
<name>ZFS: fs {#ZFS_FS} total used space</name>
<type>DEPENDENT</type>
<key>vfs.zfs.dataset[{#ZFS_FS},fs,used]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Storage</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.used</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.dataset.info[{#ZFS_FS},fs]</key>
</master_item>
</item_prototype>
</item_prototypes>
<trigger_prototypes>
<trigger_prototype>
<expression>({Template_App_ZFS:vfs.zfs.dataset[{#ZFS_FS},fs,refquota].last()} &gt; 0 and 100*{Template_App_ZFS:vfs.zfs.dataset[{#ZFS_FS},fs,used].last()}/{Template_App_ZFS:vfs.zfs.dataset[{#ZFS_FS},fs,refquota].last()} &gt; {$ZFS_FS_QUOTA_PCT_CRITICAL})</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
<recovery_expression>({Template_App_ZFS:vfs.zfs.dataset[{#ZFS_FS},fs,refquota].last()} &gt; 0 and 100*{Template_App_ZFS:vfs.zfs.dataset[{#ZFS_FS},fs,used].last()}/{Template_App_ZFS:vfs.zfs.dataset[{#ZFS_FS},fs,refquota].last()} &lt; 0.98*{$ZFS_FS_QUOTA_PCT_CRITICAL}) or&#13;
{Template_App_ZFS:vfs.zfs.dataset[{#ZFS_FS},fs,quota].last()} = 0</recovery_expression>
<name>ZFS: filesystem {#ZFS_FS} uses {ITEM.VALUE2} (excluding children)</name>
<priority>HIGH</priority>
</trigger_prototype>
<trigger_prototype>
<expression>({Template_App_ZFS:vfs.zfs.dataset[{#ZFS_FS},fs,refquota].last()} &gt; 0 and 100*{Template_App_ZFS:vfs.zfs.dataset[{#ZFS_FS},fs,used].last()}/{Template_App_ZFS:vfs.zfs.dataset[{#ZFS_FS},fs,refquota].last()} &gt; {$ZFS_FS_QUOTA_PCT_WARN})</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
<recovery_expression>({Template_App_ZFS:vfs.zfs.dataset[{#ZFS_FS},fs,refquota].last()} &gt; 0 and 100*{Template_App_ZFS:vfs.zfs.dataset[{#ZFS_FS},fs,used].last()}/{Template_App_ZFS:vfs.zfs.dataset[{#ZFS_FS},fs,refquota].last()} &lt; 0.98*{$ZFS_FS_QUOTA_PCT_WARN}) or&#13;
{Template_App_ZFS:vfs.zfs.dataset[{#ZFS_FS},fs,quota].last()} = 0</recovery_expression>
<name>ZFS: filesystem {#ZFS_FS} uses {ITEM.VALUE2} (excluding children)</name>
<priority>WARNING</priority>
<dependencies>
<dependency>
<name>ZFS: filesystem {#ZFS_FS} uses {ITEM.VALUE2} (excluding children)</name>
<expression>({Template_App_ZFS:vfs.zfs.dataset[{#ZFS_FS},fs,refquota].last()} &gt; 0 and 100*{Template_App_ZFS:vfs.zfs.dataset[{#ZFS_FS},fs,used].last()}/{Template_App_ZFS:vfs.zfs.dataset[{#ZFS_FS},fs,refquota].last()} &gt; {$ZFS_FS_QUOTA_PCT_CRITICAL})</expression>
<recovery_expression>({Template_App_ZFS:vfs.zfs.dataset[{#ZFS_FS},fs,refquota].last()} &gt; 0 and 100*{Template_App_ZFS:vfs.zfs.dataset[{#ZFS_FS},fs,used].last()}/{Template_App_ZFS:vfs.zfs.dataset[{#ZFS_FS},fs,refquota].last()} &lt; 0.98*{$ZFS_FS_QUOTA_PCT_CRITICAL}) or&#13;
{Template_App_ZFS:vfs.zfs.dataset[{#ZFS_FS},fs,quota].last()} = 0</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
<trigger_prototype>
<expression>({Template_App_ZFS:vfs.zfs.dataset[{#ZFS_FS},fs,quota].last()} &gt; 0 and 100*{Template_App_ZFS:vfs.zfs.dataset[{#ZFS_FS},fs,used].last()}/{Template_App_ZFS:vfs.zfs.dataset[{#ZFS_FS},fs,quota].last()} &gt; {$ZFS_FS_QUOTA_PCT_CRITICAL})</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
<recovery_expression>({Template_App_ZFS:vfs.zfs.dataset[{#ZFS_FS},fs,quota].last()} &gt; 0 and 100*{Template_App_ZFS:vfs.zfs.dataset[{#ZFS_FS},fs,used].last()}/{Template_App_ZFS:vfs.zfs.dataset[{#ZFS_FS},fs,quota].last()} &lt; 0.98*{$ZFS_FS_QUOTA_PCT_CRITICAL}) or&#13;
{Template_App_ZFS:vfs.zfs.dataset[{#ZFS_FS},fs,quota].last()} = 0</recovery_expression>
<name>ZFS: filesystem {#ZFS_FS} uses {ITEM.VALUE2} (including children)</name>
<priority>HIGH</priority>
</trigger_prototype>
<trigger_prototype>
<expression>({Template_App_ZFS:vfs.zfs.dataset[{#ZFS_FS},fs,quota].last()} &gt; 0 and 100*{Template_App_ZFS:vfs.zfs.dataset[{#ZFS_FS},fs,used].last()}/{Template_App_ZFS:vfs.zfs.dataset[{#ZFS_FS},fs,quota].last()} &gt; {$ZFS_FS_QUOTA_PCT_WARN})</expression>
<recovery_mode>RECOVERY_EXPRESSION</recovery_mode>
<recovery_expression>({Template_App_ZFS:vfs.zfs.dataset[{#ZFS_FS},fs,quota].last()} &gt; 0 and 100*{Template_App_ZFS:vfs.zfs.dataset[{#ZFS_FS},fs,used].last()}/{Template_App_ZFS:vfs.zfs.dataset[{#ZFS_FS},fs,quota].last()} &lt; 0.98*{$ZFS_FS_QUOTA_PCT_WARN}) or&#13;
{Template_App_ZFS:vfs.zfs.dataset[{#ZFS_FS},fs,quota].last()} = 0</recovery_expression>
<name>ZFS: filesystem {#ZFS_FS} uses {ITEM.VALUE2} (including children)</name>
<priority>WARNING</priority>
<dependencies>
<dependency>
<name>ZFS: filesystem {#ZFS_FS} uses {ITEM.VALUE2} (including children)</name>
<expression>({Template_App_ZFS:vfs.zfs.dataset[{#ZFS_FS},fs,quota].last()} &gt; 0 and 100*{Template_App_ZFS:vfs.zfs.dataset[{#ZFS_FS},fs,used].last()}/{Template_App_ZFS:vfs.zfs.dataset[{#ZFS_FS},fs,quota].last()} &gt; {$ZFS_FS_QUOTA_PCT_CRITICAL})</expression>
<recovery_expression>({Template_App_ZFS:vfs.zfs.dataset[{#ZFS_FS},fs,quota].last()} &gt; 0 and 100*{Template_App_ZFS:vfs.zfs.dataset[{#ZFS_FS},fs,used].last()}/{Template_App_ZFS:vfs.zfs.dataset[{#ZFS_FS},fs,quota].last()} &lt; 0.98*{$ZFS_FS_QUOTA_PCT_CRITICAL}) or&#13;
{Template_App_ZFS:vfs.zfs.dataset[{#ZFS_FS},fs,quota].last()} = 0</recovery_expression>
</dependency>
</dependencies>
</trigger_prototype>
</trigger_prototypes>
<graph_prototypes>
<graph_prototype>
<name>ZFS: fs {#ZFS_FS} occupation</name>
<type>STACKED</type>
<graph_items>
<graph_item>
<color>FF0000</color>
<item>
<host>Template_App_ZFS</host>
<key>vfs.zfs.dataset[{#ZFS_FS},fs,usedbydataset]</key>
</item>
</graph_item>
<graph_item>
<sortorder>1</sortorder>
<color>FFBF00</color>
<item>
<host>Template_App_ZFS</host>
<key>vfs.zfs.dataset[{#ZFS_FS},fs,usedbysnapshots]</key>
</item>
</graph_item>
<graph_item>
<sortorder>2</sortorder>
<color>66BB6A</color>
<item>
<host>Template_App_ZFS</host>
<key>vfs.zfs.dataset[{#ZFS_FS},fs,usedbychildren]</key>
</item>
</graph_item>
<graph_item>
<sortorder>3</sortorder>
<color>B2EBF2</color>
<item>
<host>Template_App_ZFS</host>
<key>vfs.zfs.dataset[{#ZFS_FS},fs,compression_win]</key>
</item>
</graph_item>
</graph_items>
</graph_prototype>
</graph_prototypes>
</discovery_rule>
<discovery_rule>
<name>ZFS: pools discovery</name>
<key>vfs.zfs.discovery[pools]</key>
<delay>7200</delay>
<lifetime>7d</lifetime>
<item_prototypes>
<item_prototype>
<name>ZFS: Pool {#ZPOOL}: info</name>
<key>vfs.zfs.zpool.info[{#ZPOOL}]</key>
<delay>300s</delay>
<history>0</history>
<trends>0</trends>
<value_type>TEXT</value_type>
<applications>
<application>
<name>Storage</name>
</application>
</applications>
</item_prototype>
<item_prototype>
<name>ZFS: Pool {#ZPOOL}: Needed action</name>
<type>DEPENDENT</type>
<key>vfs.zfs.zpool[{#ZPOOL},action]</key>
<delay>0</delay>
<trends>0</trends>
<value_type>TEXT</value_type>
<applications>
<application>
<name>Storage</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.errors.action</params>
</step>
<step>
<type>DISCARD_UNCHANGED_HEARTBEAT</type>
<params>86400</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.zpool.info[{#ZPOOL}]</key>
</master_item>
</item_prototype>
<item_prototype>
<name>ZFS: Pool {#ZPOOL}: Allocated space</name>
<type>DEPENDENT</type>
<key>vfs.zfs.zpool[{#ZPOOL},allocated]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Storage</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.allocated</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.zpool.info[{#ZPOOL}]</key>
</master_item>
</item_prototype>
<item_prototype>
<name>ZFS: Pool {#ZPOOL}: Capacity</name>
<type>DEPENDENT</type>
<key>vfs.zfs.zpool[{#ZPOOL},capacity]</key>
<delay>0</delay>
<trends>1825d</trends>
<value_type>FLOAT</value_type>
<units>%</units>
<applications>
<application>
<name>Storage</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.capacity</params>
</step>
<step>
<type>DISCARD_UNCHANGED_HEARTBEAT</type>
<params>1800</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.zpool.info[{#ZPOOL}]</key>
</master_item>
<trigger_prototypes>
<trigger_prototype>
<expression>{last()}&gt;{$ZFS_POOL_ALLOC_CRITICAL}</expression>
<name>ZFS: pool {#ZPOOL} is more than {ITEM.VALUE1} allocated</name>
<priority>HIGH</priority>
</trigger_prototype>
<trigger_prototype>
<expression>{last()}&gt;{$ZFS_POOL_ALLOC_WARN}</expression>
<name>ZFS: pool {#ZPOOL} is more than {ITEM.VALUE1} allocated</name>
<priority>WARNING</priority>
<dependencies>
<dependency>
<name>ZFS: pool {#ZPOOL} is more than {ITEM.VALUE1} allocated</name>
<expression>{Template_App_ZFS:vfs.zfs.zpool[{#ZPOOL},capacity].last()}&gt;{$ZFS_POOL_ALLOC_CRITICAL}</expression>
</dependency>
</dependencies>
</trigger_prototype>
</trigger_prototypes>
</item_prototype>
<item_prototype>
<name>ZFS: Pool {#ZPOOL}: Checksum errors</name>
<type>DEPENDENT</type>
<key>vfs.zfs.zpool[{#ZPOOL},cksum_errors]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>error</units>
<applications>
<application>
<name>Storage</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.errors.cksum_errors</params>
</step>
<step>
<type>DISCARD_UNCHANGED_HEARTBEAT</type>
<params>3600</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.zpool.info[{#ZPOOL}]</key>
</master_item>
</item_prototype>
<item_prototype>
<name>ZFS: Pool {#ZPOOL}: Deduplication ratio</name>
<type>DEPENDENT</type>
<key>vfs.zfs.zpool[{#ZPOOL},dedupratio]</key>
<delay>0</delay>
<trends>1825d</trends>
<value_type>FLOAT</value_type>
<applications>
<application>
<name>Storage</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.dedupratio</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.zpool.info[{#ZPOOL}]</key>
</master_item>
</item_prototype>
<item_prototype>
<name>ZFS: Pool {#ZPOOL}: Errors description</name>
<type>DEPENDENT</type>
<key>vfs.zfs.zpool[{#ZPOOL},errors]</key>
<delay>0</delay>
<trends>0</trends>
<value_type>TEXT</value_type>
<applications>
<application>
<name>Storage</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.errors.errors</params>
</step>
<step>
<type>DISCARD_UNCHANGED_HEARTBEAT</type>
<params>86400</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.zpool.info[{#ZPOOL}]</key>
</master_item>
</item_prototype>
<item_prototype>
<name>ZFS: Pool {#ZPOOL}: Fragmentation (free space)</name>
<type>DEPENDENT</type>
<key>vfs.zfs.zpool[{#ZPOOL},fragmentation]</key>
<delay>0</delay>
<trends>1825d</trends>
<value_type>FLOAT</value_type>
<units>%</units>
<applications>
<application>
<name>Storage</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.fragmentation</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.zpool.info[{#ZPOOL}]</key>
</master_item>
</item_prototype>
<item_prototype>
<name>ZFS: Pool {#ZPOOL}: Free space</name>
<type>DEPENDENT</type>
<key>vfs.zfs.zpool[{#ZPOOL},free]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Storage</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.free</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.zpool.info[{#ZPOOL}]</key>
</master_item>
</item_prototype>
<item_prototype>
<name>ZFS: Pool {#ZPOOL}: Health</name>
<type>DEPENDENT</type>
<key>vfs.zfs.zpool[{#ZPOOL},health]</key>
<delay>0</delay>
<trends>0</trends>
<value_type>CHAR</value_type>
<applications>
<application>
<name>Storage</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.health</params>
</step>
<step>
<type>DISCARD_UNCHANGED_HEARTBEAT</type>
<params>86400</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.zpool.info[{#ZPOOL}]</key>
</master_item>
<trigger_prototypes>
<trigger_prototype>
<expression>{regexp(One or more devices is currently being resilvered)}=1</expression>
<name>ZFS: Pool {#ZPOOL} is resilvering</name>
<priority>WARNING</priority>
</trigger_prototype>
<trigger_prototype>
<expression>{regexp(ONLINE)}=0</expression>
<name>ZFS: pool {#ZPOOL} status is {ITEM.VALUE1}</name>
<priority>HIGH</priority>
</trigger_prototype>
</trigger_prototypes>
</item_prototype>
<item_prototype>
<name>ZFS: Pool {#ZPOOL}: Reads (bytes)</name>
<type>DEPENDENT</type>
<key>vfs.zfs.zpool[{#ZPOOL},nread]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B/s</units>
<applications>
<application>
<name>Storage</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.stats.nread</params>
</step>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.zpool.info[{#ZPOOL}]</key>
</master_item>
</item_prototype>
<item_prototype>
<name>ZFS: Pool {#ZPOOL}: Writes (bytes)</name>
<type>DEPENDENT</type>
<key>vfs.zfs.zpool[{#ZPOOL},nwritten]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B/s</units>
<applications>
<application>
<name>Storage</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.stats.nwritten</params>
</step>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.zpool.info[{#ZPOOL}]</key>
</master_item>
</item_prototype>
<item_prototype>
<name>ZFS: Pool {#ZPOOL}: Reads (iops)</name>
<type>DEPENDENT</type>
<key>vfs.zfs.zpool[{#ZPOOL},reads]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>iops</units>
<applications>
<application>
<name>Storage</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.stats.reads</params>
</step>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.zpool.info[{#ZPOOL}]</key>
</master_item>
</item_prototype>
<item_prototype>
<name>ZFS: Pool {#ZPOOL}: Read errors</name>
<type>DEPENDENT</type>
<key>vfs.zfs.zpool[{#ZPOOL},read_errors]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>error</units>
<applications>
<application>
<name>Storage</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.errors.read_errors</params>
</step>
<step>
<type>DISCARD_UNCHANGED_HEARTBEAT</type>
<params>3600</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.zpool.info[{#ZPOOL}]</key>
</master_item>
</item_prototype>
<item_prototype>
<name>ZFS: Pool {#ZPOOL}: Size</name>
<type>DEPENDENT</type>
<key>vfs.zfs.zpool[{#ZPOOL},size]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Storage</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.size</params>
</step>
<step>
<type>DISCARD_UNCHANGED_HEARTBEAT</type>
<params>86400</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.zpool.info[{#ZPOOL}]</key>
</master_item>
</item_prototype>
<item_prototype>
<name>ZFS: Pool {#ZPOOL}: Status</name>
<type>DEPENDENT</type>
<key>vfs.zfs.zpool[{#ZPOOL},status]</key>
<delay>0</delay>
<trends>0</trends>
<value_type>TEXT</value_type>
<applications>
<application>
<name>Storage</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.errors.status</params>
</step>
<step>
<type>DISCARD_UNCHANGED_HEARTBEAT</type>
<params>86400</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.zpool.info[{#ZPOOL}]</key>
</master_item>
</item_prototype>
<item_prototype>
<name>ZFS: Pool {#ZPOOL}: Writes (iops)</name>
<type>DEPENDENT</type>
<key>vfs.zfs.zpool[{#ZPOOL},writes]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>iops</units>
<applications>
<application>
<name>Storage</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.stats.writes</params>
</step>
<step>
<type>CHANGE_PER_SECOND</type>
<params/>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.zpool.info[{#ZPOOL}]</key>
</master_item>
</item_prototype>
<item_prototype>
<name>ZFS: Pool {#ZPOOL}: Write errors</name>
<type>DEPENDENT</type>
<key>vfs.zfs.zpool[{#ZPOOL},write_errors]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>error</units>
<applications>
<application>
<name>Storage</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.errors.write_errors</params>
</step>
<step>
<type>DISCARD_UNCHANGED_HEARTBEAT</type>
<params>3600</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.zpool.info[{#ZPOOL}]</key>
</master_item>
</item_prototype>
</item_prototypes>
<trigger_prototypes>
<trigger_prototype>
<expression>{Template_App_ZFS:vfs.zfs.zpool[{#ZPOOL},status].nodata(2d)}=1 or {Template_App_ZFS:vfs.zfs.zpool[{#ZPOOL},allocated].nodata(2h)}=1</expression>
<name>ZFS: pool {#ZPOOL} has a monitoring issue</name>
<priority>WARNING</priority>
</trigger_prototype>
<trigger_prototype>
<expression>{Template_App_ZFS:vfs.zfs.zpool[{#ZPOOL},write_errors].last()}&lt;&gt;0 or {Template_App_ZFS:vfs.zfs.zpool[{#ZPOOL},read_errors].last()}&lt;&gt;0 or {Template_App_ZFS:vfs.zfs.zpool[{#ZPOOL},cksum_errors].last()}&lt;&gt;0</expression>
<name>ZFS: Pool {#ZPOOL} has errors</name>
<priority>AVERAGE</priority>
</trigger_prototype>
<trigger_prototype>
<expression>{Template_App_ZFS:vfs.zfs.zpool[{#ZPOOL},status].regexp(^$)}=0 or {Template_App_ZFS:vfs.zfs.zpool[{#ZPOOL},errors].regexp(No known data errors)}=0</expression>
<name>ZFS: Pool {#ZPOOL} must be checked</name>
<priority>HIGH</priority>
<dependencies>
<dependency>
<name>ZFS: Pool {#ZPOOL} has errors</name>
<expression>{Template_App_ZFS:vfs.zfs.zpool[{#ZPOOL},write_errors].last()}&lt;&gt;0 or {Template_App_ZFS:vfs.zfs.zpool[{#ZPOOL},read_errors].last()}&lt;&gt;0 or {Template_App_ZFS:vfs.zfs.zpool[{#ZPOOL},cksum_errors].last()}&lt;&gt;0</expression>
</dependency>
<dependency>
<name>ZFS: Pool {#ZPOOL} is resilvering</name>
<expression>{Template_App_ZFS:vfs.zfs.zpool[{#ZPOOL},health].regexp(One or more devices is currently being resilvered)}=1</expression>
</dependency>
</dependencies>
</trigger_prototype>
</trigger_prototypes>
<graph_prototypes>
<graph_prototype>
<name>ZFS: Pool {#ZPOOL}: Allocation</name>
<ymin_type_1>FIXED</ymin_type_1>
<ymax_type_1>ITEM</ymax_type_1>
<ymax_item_1>
<host>Template_App_ZFS</host>
<key>vfs.zfs.zpool[{#ZPOOL},size]</key>
</ymax_item_1>
<graph_items>
<graph_item>
<drawtype>GRADIENT_LINE</drawtype>
<color>FF0000</color>
<item>
<host>Template_App_ZFS</host>
<key>vfs.zfs.zpool[{#ZPOOL},allocated]</key>
</item>
</graph_item>
</graph_items>
</graph_prototype>
<graph_prototype>
<name>ZFS: Pool {#ZPOOL}: I/O</name>
<graph_items>
<graph_item>
<color>FF0000</color>
<item>
<host>Template_App_ZFS</host>
<key>vfs.zfs.zpool[{#ZPOOL},nread]</key>
</item>
</graph_item>
<graph_item>
<sortorder>1</sortorder>
<color>4000FF</color>
<item>
<host>Template_App_ZFS</host>
<key>vfs.zfs.zpool[{#ZPOOL},nwritten]</key>
</item>
</graph_item>
<graph_item>
<sortorder>2</sortorder>
<color>80FF00</color>
<yaxisside>RIGHT</yaxisside>
<item>
<host>Template_App_ZFS</host>
<key>vfs.zfs.zpool[{#ZPOOL},reads]</key>
</item>
</graph_item>
<graph_item>
<sortorder>3</sortorder>
<color>FFBF00</color>
<yaxisside>RIGHT</yaxisside>
<item>
<host>Template_App_ZFS</host>
<key>vfs.zfs.zpool[{#ZPOOL},writes]</key>
</item>
</graph_item>
</graph_items>
</graph_prototype>
</graph_prototypes>
</discovery_rule>
<discovery_rule>
<name>ZFS: sanoid checks discovery</name>
<key>vfs.zfs.discovery[sanoid]</key>
<delay>7200</delay>
<lifetime>1h</lifetime>
<item_prototypes>
<item_prototype>
<name>ZFS: Sanoid {#ZFS_SANOID}</name>
<key>vfs.zfs.sanoid.check[{#ZFS_SANOID}]</key>
<delay>300s</delay>
<history>30d</history>
<trends>0</trends>
<value_type>CHAR</value_type>
<applications>
<application>
<name>Storage</name>
</application>
</applications>
<preprocessing>
<step>
<type>DISCARD_UNCHANGED_HEARTBEAT</type>
<params>1800</params>
</step>
<step>
<type>NOT_MATCHES_REGEX</type>
<params>^print</params>
<error_handler>DISCARD_VALUE</error_handler>
</step>
</preprocessing>
<trigger_prototypes>
<trigger_prototype>
<expression>{regexp(^OK)}&lt;&gt;1 and {regexp(^OK,#1)}&lt;&gt;1</expression>
<name>ZFS: Sanoid detected a default on {#ZFS_SANOID}</name>
<priority>INFO</priority>
</trigger_prototype>
</trigger_prototypes>
</item_prototype>
</item_prototypes>
</discovery_rule>
<discovery_rule>
<name>ZFS: zvols discovery</name>
<key>vfs.zfs.discovery[zvol]</key>
<delay>900</delay>
<lifetime>1d</lifetime>
<item_prototypes>
<item_prototype>
<name>ZFS: zvol {#ZFS_ZVOL} info</name>
<key>vfs.zfs.dataset.info[{#ZFS_ZVOL},zvol]</key>
<delay>300s</delay>
<history>0</history>
<trends>0</trends>
<value_type>TEXT</value_type>
<applications>
<application>
<name>Storage</name>
</application>
</applications>
</item_prototype>
<item_prototype>
<name>ZFS: Zvol {#ZFS_ZVOL} compression win</name>
<type>DEPENDENT</type>
<key>vfs.zfs.dataset[{#ZFS_ZVOL},zvol,compression_win]</key>
<delay>0</delay>
<value_type>FLOAT</value_type>
<units>B</units>
<applications>
<application>
<name>Storage</name>
</application>
</applications>
<preprocessing>
<step>
<type>JAVASCRIPT</type>
<params>json = JSON.parse(value);
logicalused = json.logicalused;
used = json.used;
return (logicalused &gt; used ? logicalused - used : 0);</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.dataset.info[{#ZFS_ZVOL},zvol]</key>
</master_item>
</item_prototype>
<item_prototype>
<name>ZFS: Zvol {#ZFS_ZVOL} compression ratio</name>
<type>DEPENDENT</type>
<key>vfs.zfs.dataset[{#ZFS_ZVOL},zvol,compressratio]</key>
<delay>0</delay>
<trends>1825d</trends>
<value_type>FLOAT</value_type>
<applications>
<application>
<name>Storage</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.compressratio</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.dataset.info[{#ZFS_ZVOL},zvol]</key>
</master_item>
</item_prototype>
<item_prototype>
<name>ZFS: Zvol {#ZFS_ZVOL} logical space used</name>
<type>DEPENDENT</type>
<key>vfs.zfs.dataset[{#ZFS_ZVOL},zvol,logicalused]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Storage</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.logicalused</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.dataset.info[{#ZFS_ZVOL},zvol]</key>
</master_item>
</item_prototype>
<item_prototype>
<name>ZFS: Zvol {#ZFS_ZVOL} space reservation</name>
<type>DEPENDENT</type>
<key>vfs.zfs.dataset[{#ZFS_ZVOL},zvol,reservation]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Storage</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.reservation</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.dataset.info[{#ZFS_ZVOL},zvol]</key>
</master_item>
</item_prototype>
<item_prototype>
<name>ZFS: Zvol {#ZFS_ZVOL} space used by dataset</name>
<type>DEPENDENT</type>
<key>vfs.zfs.dataset[{#ZFS_ZVOL},zvol,usedbydataset]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Storage</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.usedbydataset</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.dataset.info[{#ZFS_ZVOL},zvol]</key>
</master_item>
</item_prototype>
<item_prototype>
<name>ZFS: Zvol {#ZFS_ZVOL} space used by snapshots</name>
<type>DEPENDENT</type>
<key>vfs.zfs.dataset[{#ZFS_ZVOL},zvol,usedbysnapshots]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Storage</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.usedbysnapshots</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.dataset.info[{#ZFS_ZVOL},zvol]</key>
</master_item>
</item_prototype>
<item_prototype>
<name>ZFS: Zvol {#ZFS_ZVOL} total space used</name>
<type>DEPENDENT</type>
<key>vfs.zfs.dataset[{#ZFS_ZVOL},zvol,used]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Storage</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.used</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.dataset.info[{#ZFS_ZVOL},zvol]</key>
</master_item>
</item_prototype>
<item_prototype>
<name>ZFS: Zvol {#ZFS_ZVOL} size</name>
<type>DEPENDENT</type>
<key>vfs.zfs.dataset[{#ZFS_ZVOL},zvol,volsize]</key>
<delay>0</delay>
<trends>1825d</trends>
<units>B</units>
<applications>
<application>
<name>Storage</name>
</application>
</applications>
<preprocessing>
<step>
<type>JSONPATH</type>
<params>$.volsize</params>
</step>
</preprocessing>
<master_item>
<key>vfs.zfs.dataset.info[{#ZFS_ZVOL},zvol]</key>
</master_item>
</item_prototype>
</item_prototypes>
<graph_prototypes>
<graph_prototype>
<name>ZFS: Zvol {#ZFS_ZVOL} used disk space</name>
<type>STACKED</type>
<graph_items>
<graph_item>
<color>1A7C11</color>
<item>
<host>Template_App_ZFS</host>
<key>vfs.zfs.dataset[{#ZFS_ZVOL},zvol,usedbydataset]</key>
</item>
</graph_item>
<graph_item>
<sortorder>1</sortorder>
<color>F63100</color>
<item>
<host>Template_App_ZFS</host>
<key>vfs.zfs.dataset[{#ZFS_ZVOL},zvol,usedbysnapshots]</key>
</item>
</graph_item>
<graph_item>
<sortorder>2</sortorder>
<color>B2EBF2</color>
<item>
<host>Template_App_ZFS</host>
<key>vfs.zfs.dataset[{#ZFS_ZVOL},zvol,compression_win]</key>
</item>
</graph_item>
</graph_items>
</graph_prototype>
</graph_prototypes>
</discovery_rule>
</discovery_rules>
<macros>
<macro>
<macro>{$ZFS_ARC_HIT_DATA_PCT_WARN}</macro>
<value>50</value>
</macro>
<macro>
<macro>{$ZFS_ARC_HIT_METADATA_PCT_WARN}</macro>
<value>90</value>
</macro>
<macro>
<macro>{$ZFS_ARC_HIT_PCT_WARN}</macro>
<value>75</value>
</macro>
<macro>
<macro>{$ZFS_FS_QUOTA_PCT_CRITICAL}</macro>
<value>95</value>
</macro>
<macro>
<macro>{$ZFS_FS_QUOTA_PCT_WARN}</macro>
<value>80</value>
</macro>
<macro>
<macro>{$ZFS_POOL_ALLOC_CRITICAL}</macro>
<value>90</value>
</macro>
<macro>
<macro>{$ZFS_POOL_ALLOC_WARN}</macro>
<value>80</value>
</macro>
</macros>
</template>
</templates>
<triggers>
<trigger>
<expression>{Template_App_ZFS:vfs.zfs.stats[arcstats,l2_writes_error].last()}&gt;0 or {Template_App_ZFS:vfs.zfs.stats[arcstats,l2_io_error].last()}&gt;0 or {Template_App_ZFS:vfs.zfs.stats[arcstats,l2_cksum_bad].last()}&gt;0</expression>
<name>ZFS: l2arc errors detected</name>
<priority>AVERAGE</priority>
</trigger>
</triggers>
<graphs>
<graph>
<name>ZFS: ARC: Hits ratio</name>
<graph_items>
<graph_item>
<drawtype>BOLD_LINE</drawtype>
<color>FF0000</color>
<item>
<host>Template_App_ZFS</host>
<key>vfs.zfs.stats[arcstats,hits_pct]</key>
</item>
</graph_item>
<graph_item>
<sortorder>1</sortorder>
<drawtype>BOLD_LINE</drawtype>
<color>BF00FF</color>
<item>
<host>Template_App_ZFS</host>
<key>vfs.zfs.stats[arcstats,demand_data_hits_pct]</key>
</item>
</graph_item>
<graph_item>
<sortorder>2</sortorder>
<drawtype>BOLD_LINE</drawtype>
<color>0040FF</color>
<item>
<host>Template_App_ZFS</host>
<key>vfs.zfs.stats[arcstats,demand_metadata_hits_pct]</key>
</item>
</graph_item>
<graph_item>
<sortorder>3</sortorder>
<drawtype>BOLD_LINE</drawtype>
<color>FFBF00</color>
<item>
<host>Template_App_ZFS</host>
<key>vfs.zfs.stats[arcstats,l2_hits_pct]</key>
</item>
</graph_item>
</graph_items>
</graph>
<graph>
<name>ZFS: ARC: sizes (data / metadata)</name>
<type>STACKED</type>
<graph_items>
<graph_item>
<color>1A7C11</color>
<item>
<host>Template_App_ZFS</host>
<key>vfs.zfs.stats[arcstats,data_size]</key>
</item>
</graph_item>
<graph_item>
<sortorder>1</sortorder>
<color>F63100</color>
<item>
<host>Template_App_ZFS</host>
<key>vfs.zfs.stats[arcstats,metadata_size]</key>
</item>
</graph_item>
<graph_item>
<sortorder>2</sortorder>
<color>2774A4</color>
<item>
<host>Template_App_ZFS</host>
<key>vfs.zfs.stats[arcstats,compress_win]</key>
</item>
</graph_item>
</graph_items>
</graph>
<graph>
<name>ZFS: ARC: sizes (mfu / mru)</name>
<type>STACKED</type>
<graph_items>
<graph_item>
<color>F63100</color>
<item>
<host>Template_App_ZFS</host>
<key>vfs.zfs.stats[arcstats,mfu_size]</key>
</item>
</graph_item>
<graph_item>
<sortorder>1</sortorder>
<color>1A7C11</color>
<item>
<host>Template_App_ZFS</host>
<key>vfs.zfs.stats[arcstats,mru_size]</key>
</item>
</graph_item>
<graph_item>
<sortorder>2</sortorder>
<color>2774A4</color>
<item>
<host>Template_App_ZFS</host>
<key>vfs.zfs.stats[arcstats,compress_win]</key>
</item>
</graph_item>
</graph_items>
</graph>
</graphs>
</zabbix_export>