<form stylesheet="ui_simple.css,hide_timeindicator.css,table_data_bar.css,panel_decoration.css" script="autodiscover.js,table_data_bar.js" isVisible="true" version="1.1" theme="dark">
    <label>NMON Analyser LINUX</label>

    <!--
    base search for main dropdown populating
    -->

    <search id="populate">
        <query>| mcatalog values(metric_name) where `nmon_metrics_index` metric_name="os.unix.nmon.cpu.cpu_all.logical_cpus" $osfilter$ host="$host-prefilter$" by host
| `mapping_frameID`
| stats count by frameID, host | sort 0 host</query>
        <earliest>$timerange.earliest$</earliest>
        <latest>$timerange.latest$</latest>
    </search>

    <!-- Information panel -->

    <row rejects="$host$">
        <panel>
            <html>

                <div class="imgheader2">
                    <img src="../../static/app/metricator-for-nmon/icons/dark_theme/info.png" alt="Info"/>

                    <h4>Nmon Analyser interfaces have been designed for focused time ranges, very large time ranges may require time to be fully processed</h4>
                    <h4>For long time analysis, please consider using metric dedicated interfaces available from App home pages</h4>

                </div>

            </html>
        </panel>
    </row>

    <!-- Selection panel -->

    <row>
        <panel>

            <input type="time" token="timerange" searchWhenChanged="true">
                <label>Time Range:</label>
                <default>
                    <earliest>-24h</earliest>
                    <latest>now</latest>
                </default>
            </input>

            <input type="dropdown" token="osfilter" searchWhenChanged="true">
                <label>Filter OS Type:</label>
                <default>Linux</default>
                <prefix>OStype="</prefix>
                <suffix>"</suffix>
                <choice value="*">Any OS</choice>
                <choice value="Linux">Linux</choice>
            </input>

            <input id="frameID" type="dropdown" token="frameID" searchWhenChanged="true">
                <label>Frame IDs:</label>
                <search base="populate">
                    <query>stats count by frameID | dedup frameID | sort 0 frameID</query>
                </search>
                <choice value="*">Any</choice>
                <initialValue>*</initialValue>
                <fieldForLabel>frameID</fieldForLabel>
                <fieldForValue>frameID</fieldForValue>
                <prefix>frameID="</prefix>
                <suffix>"</suffix>
            </input>

            <input type="text" token="host-prefilter" searchWhenChanged="true">
                <label>Optional: Filter hosts populating</label>
                <default>*</default>
            </input>

            <input id="host" type="dropdown" token="host" searchWhenChanged="true">
                <label>Host:</label>
                <search base="populate">
                    <query>search $frameID$ | stats count by host | dedup host | sort 0 host</query>
                </search>
                <fieldForLabel>host</fieldForLabel>
                <fieldForValue>host</fieldForValue>
                <prefix>host="</prefix>
                <suffix>"</suffix>
                <!--
                Reset the form token changed
                -->
                <change>
                    <unset token="form.is_LPAR_input"></unset>
                    <unset token="form.DG_detection"></unset>
                </change>
            </input>

            <input type="dropdown" token="span" searchWhenChanged="true">
                <label>Span:</label>
                <default>`nmon_span`</default>
                <choice value="`nmon_span`">auto</choice>
                <choice value="span=1m">1 minute</choice>
                <choice value="span=2m">2 minutes</choice>
                <choice value="span=3m">3 minutes</choice>
                <choice value="span=4m">4 minutes</choice>
                <choice value="span=5m">5 minutes</choice>
                <choice value="span=10m">10 minutes</choice>
                <choice value="span=15m">15 minutes</choice>
                <choice value="span=30m">30 minutes</choice>
                <choice value="span=1h">1 hour</choice>
                <choice value="span=2h">2 hours</choice>
                <choice value="span=12h">12 hours</choice>
                <choice value="span=4h">4 hours</choice>
                <choice value="span=1d">1 day</choice>
                <choice value="span=2d">2 days</choice>
                <choice value="span=1w">7 days</choice>
                <choice value="span=1mon">1 month</choice>
            </input>

        </panel>
    </row>

    <!-- Help the user -->

    <row rejects="$host$">
        <panel>
            <html>
                <div class="red_help_user">
                    <p>- - - - - - - - - - ACTION REQUIRED: please select your server name(s) in the host selector above - - - - - - - - - -</p>
                </div>
            </html>
        </panel>
    </row>

    <!--
    Dynamic configuration
    The following searches are being used to define various tokens using event handlers
    -->

    <!-- CPU data source (CPU_ALL versus LPAR) -->

    <search>
        <query>| mcatalog values(metric_name) where `nmon_metrics_index` metric_name="os.unix.nmon.cpu.lpar.PhysicalCPU" $host$ | stats count | where count&gt;0</query>
        <earliest>$timerange.earliest$</earliest>
        <latest>$timerange.latest$</latest>
        <progress>
            <condition match="$job.resultCount$ == 0">
                <set token="is_not_LPAR">true</set>
                <unset token="is_LPAR"></unset>
                <set token="CPU_datasource">CPU_ALL usage</set>
                <set token="CPU_datasource_minilabel">CPU % usage</set>
            </condition>
            <condition>
                <set token="is_LPAR">true</set>
                <unset token="is_not_LPAR"></unset>
                <set token="CPU_datasource">LPAR usage</set>
                <set token="CPU_datasource_minilabel">partition vCPUs usage</set>
            </condition>
        </progress>
    </search>

    <!-- DG data availability -->

    <search>
        <query>| mcatalog values(metric_name) where `nmon_metrics_index` metric_name="os.unix.nmon.storage.dgxfer" $host$ | stats count | where count&gt;0</query>
        <earliest>$timerange.earliest$</earliest>
        <latest>$timerange.latest$</latest>
        <progress>
            <condition match="$job.resultCount$ == 0">
                    <set token="start_disk_stats_search">_time,*</set>
                    <unset token="start_dg_stats_search"></unset>
            </condition>
            <condition>
                    <set token="start_dg_stats_search">_time,*</set>
                    <unset token="start_disk_stats_search"></unset>
            </condition>
        </progress>
    </search>

    <!-- DF_STORAGE data availability -->

    <search>
        <query>| mcatalog values(metric_name) where `nmon_metrics_index` metric_name="os.unix.nmon.storage.df_storage.Use_pct" $host$ | stats count | where count&gt;0</query>
        <earliest>$timerange.earliest$</earliest>
        <latest>$timerange.latest$</latest>
        <progress>
            <condition match="$job.resultCount$ == 0">
                    <set token="start_jfs_storage_search">true</set>
                    <set token="storage_usage_datasource">JFSFILE</set>
                    <set token="storage_inodes_usage_datasource">JFSINODE</set>
                    <unset token="start_df_storage_search"></unset>
            </condition>
            <condition>
                    <set token="start_df_storage_search">true</set>
                    <set token="storage_usage_datasource">DF_STORAGE</set>
                    <set token="storage_inodes_usage_datasource">DF_INODES</set>
                    <unset token="start_jfs_storage_search"></unset>
            </condition>
        </progress>
    </search>

    <!-- Configuration Search uses the nmon_inventory data over the report -->

    <search ref="NMON Inventory Linux" id="configSearch">
    </search>

    <row>
        <panel>
            <title>SYSTEM SUMMARY OVERVIEW</title>

            <table rejects="$show_null_config$">
                <title></title>
                <search base="configSearch">
                    <query>rename hostname AS host | search $host$
| eval Linux_memory_GB = round((Linux_memory_MB/1024),2)
| eval Linux_swap_GB = round((Linux_swap_MB/1024),2)
| fields cpu_cores, Processor, Linux_memory_GB, Linux_swap_GB, Linux_distribution, Linux_kernelversion, nmon_version, uptime_duration, system_startup_date
| rename cpu_cores AS "Number of CPUs (logical CPUs)", Linux_memory_GB AS "Physical Memory (GB)", Linux_swap_GB AS "Swap Memory (GB)", Linux_distribution AS "Linux distribution", Linux_kernelversion AS "Kernel version", nmon_version AS "Version nmon", uptime_duration AS "Uptime duration (dd:HH:MM:SS)", system_startup_date AS "Last Known System startup date"
                    </query>
                    <!-- Progress event has access to job properties only -->
                    <progress>
                        <condition match="'job.resultCount' == 0">
                            <set token="show_null_config">True</set>
                        </condition>
                        <condition>
                            <unset token="show_null_config"/>
                        </condition>
                    </progress>
                </search>
            </table>
            <html depends="$show_null_config$">
                <p style="color:blue;margin-left:30px;font-size:14px">SYSTEM SUMMARY OVERVIEW Search returned no results, The nmon inventory data may not be available yet for this host, manually run the Nmon Inventory Generation report or wait for the auto update. (occurs every hour by default)</p>
            </html>

        </panel>
    </row>

    <row>
        <panel>

            <input type="dropdown" token="statsmode" searchWhenChanged="true">
                <label></label>
                <default>max</default>
                <choice value="max">max</choice>
                <choice value="avg">avg</choice>
            </input>

            <chart>
                <title>CPU Usage</title>
                <search>
                    <query>| mstats avg(_value) as value where `nmon_metrics_index` `def_cpu_all_os_metric_filters` $host$ by metric_name, OStype, host span=1m
| `def_all_os_cpu_load_percent`
| timechart $span$ $statsmode$(cpu_load_percent) AS cpu_load_percent</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisTitleY.text">CPU Usage</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                        search?earliest=$earliest$&latest=$latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` `def_cpu_all_os_metric_filters` $host$ by metric_name, OStype, host span=1m
| `def_all_os_cpu_load_percent`
| timechart $span$ $statsmode$(cpu_load_percent) AS cpu_load_percent
                        ]]>
                    </link>
                </drilldown>

            </chart>

        </panel>
        <panel>

            <input type="dropdown" token="statsmode" searchWhenChanged="true">
                <label></label>
                <default>max</default>
                <choice value="max">max</choice>
                <choice value="avg">avg</choice>
            </input>

            <input type="dropdown" token="dg_monitors" depends="$start_dg_stats_search$">
              <label></label>
              <choice value="disk_read_iops*,disk_write_iops*">read/write iops</choice>
              <choice value="disk_total_iops*">total_iops</choice>
              <choice value="disk_read_iops*">read_iops</choice>
              <choice value="disk_write_iops*">write_iops</choice>
              <default>disk_read_iops*,disk_write_iops*</default>
            </input>

            <chart depends="$start_dg_stats_search$">
                <title>I/O Per second</title>
                <search depends="$start_dg_stats_search$">
                    <query>| mstats sum(_value) as value where `nmon_metrics_index` (metric_name="os.unix.nmon.storage.dgxfer" OR metric_name="os.unix.nmon.storage.diskxfer") $host$ by host, metric_name span=1m
| eval dgxfer_iops=case(metric_name=="os.unix.nmon.storage.dgxfer", value), diskxfer_iops=case(metric_name=="os.unix.nmon.storage.diskxfer", value)
| stats values(dgxfer_iops) as dgxfer_iops, values(diskxfer_iops) as diskxfer_iops by _time, host
| eval iops=if(isnum('dgxfer_iops'), 'dgxfer_iops', 'diskxfer_iops')
| timechart $span$ $statsmode$(iops) as avg_iops</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                </search>
                <option name="charting.axisLabelsX.majorLabelStyle.overflowMode">ellipsisNone</option>
                <option name="charting.axisLabelsX.majorLabelStyle.rotation">0</option>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisTitleY2.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.axisY2.enabled">0</option>
                <option name="charting.axisY2.scale">inherit</option>
                <option name="charting.chart">area</option>
                <option name="charting.chart.bubbleMaximumSize">50</option>
                <option name="charting.chart.bubbleMinimumSize">10</option>
                <option name="charting.chart.bubbleSizeBy">area</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.showDataLabels">none</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.layout.splitSeries.allowIndependentYRanges">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisTitleY.text">I/O per sec</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                        search?earliest=$earliest$&latest=$latest$&q=| mstats sum(_value) as value where `nmon_metrics_index` (metric_name="os.unix.nmon.storage.dgxfer" OR metric_name="os.unix.nmon.storage.diskxfer") $host$ by host, metric_name span=1m
| eval dgxfer_iops=case(metric_name=="os.unix.nmon.storage.dgxfer", value), diskxfer_iops=case(metric_name=="os.unix.nmon.storage.diskxfer", value)
| stats values(dgxfer_iops) as dgxfer_iops, values(diskxfer_iops) as diskxfer_iops by _time, host
| eval iops=if(isnum('dgxfer_iops'), 'dgxfer_iops', 'diskxfer_iops')
| timechart $span$ $statsmode$(iops) as avg_iops
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$start_disk_stats_search$">
                <title>I/O Per second</title>
                <search depends="$start_disk_stats_search$">
                    <query>| mstats avg(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.storage.diskxfer" $host$ by host, dimension_device span=1m
| stats sum(value) AS iops by _time, host
| timechart $span$ $statsmode$(iops) as avg_iops</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisTitleY.text">I/O per sec</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                        search?earliest=$earliest$&latest=$latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.storage.diskxfer" $host$ by host, dimension_device span=1m
| stats sum(value) AS iops by _time, host
| timechart $span$ $statsmode$(iops) as avg_iops
                        ]]>
                    </link>
                </drilldown>
            </chart>

        </panel>
    </row>

    <row>
        <panel id="cpu">
            <title>CPU statistics</title>
        </panel>
    </row>

    <search id="CPU_ALL">
        <query>| mstats avg(_value) as value where `nmon_metrics_index` (metric_name=os.unix.nmon.cpu.cpu_all.Sys_PCT OR metric_name=os.unix.nmon.cpu.cpu_all.User_PCT OR metric_name=os.unix.nmon.cpu.cpu_all.Wait_PCT OR metric_name=os.unix.nmon.cpu.cpu_all.Idle_PCT) $host$ by metric_name, host span=1m
| eval Sys_percent=case(metric_name=="os.unix.nmon.cpu.cpu_all.Sys_PCT", value), User_percent=case(metric_name=="os.unix.nmon.cpu.cpu_all.User_PCT", value), Wait_percent=case(metric_name=="os.unix.nmon.cpu.cpu_all.Wait_PCT", value), Idle_percent=case(metric_name=="os.unix.nmon.cpu.cpu_all.Idle_PCT", value)
| stats values(Sys_percent) as Sys_percent, values(User_percent) as User_percent, values(Wait_percent) as Wait_percent, values(Idle_percent) as Idle_percent by _time, host
| fillnull value=0 Sys_percent,User_percent,Wait_percent
| eval cpu_load_percent=(Sys_percent+User_percent+Wait_percent)
| timechart $span$
avg(Idle_percent) AS "Idle %",
avg(Sys_percent) AS "Sys %",
avg(User_percent) AS "User %",
avg(Wait_percent) AS "Wait %",
avg(cpu_load_percent) as "CPU %"</query>
        <earliest>$timerange.earliest$</earliest>
        <latest>$timerange.latest$</latest>
    </search>

    <row>
        <panel>

            <input type="link" token="cpu_all_linkinput">
                <label></label>
                <choice value="cpu_all_chart1">CPU_ALL, % by category</choice>
                <choice value="cpu_all_chart2">CPU_ALL, % global usage</choice>
                <choice value="cpu_nn_chart1">CPUnn, % global usage by processor</choice>
                <default>cpu_all_chart1</default>
                <change>
                    <condition value="cpu_all_chart1">
                        <set token="cpu_all_chart1">true</set>
                        <unset token="cpu_all_chart2"></unset>
                        <unset token="cpu_nn_chart1"></unset>
                    </condition>
                    <condition value="cpu_all_chart2">
                        <set token="cpu_all_chart2">true</set>
                        <unset token="cpu_all_chart1"></unset>
                        <unset token="cpu_nn_chart1"></unset>
                    </condition>
                    <condition value="cpu_nn_chart1">
                        <set token="cpu_nn_chart1">true</set>
                        <unset token="cpu_all_chart1"></unset>
                        <unset token="cpu_all_chart2"></unset>
                    </condition>
                </change>
            </input>

            <chart depends="$cpu_all_chart1$">
                <title></title>
                <search base="CPU_ALL">
                    <query>fields _time,"Idle %","Sys %","User %","Wait %"</query>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">area</option>
                <option name="charting.chart.nullValueMode">connect</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">stacked</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisTitleY.text">% of CPUs utilization</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <option name="charting.axisY.maximumNumber">100</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                        search?earliest=$earliest$&latest=$latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` (metric_name=os.unix.nmon.cpu.cpu_all.Sys_PCT OR metric_name=os.unix.nmon.cpu.cpu_all.User_PCT OR metric_name=os.unix.nmon.cpu.cpu_all.Wait_PCT OR metric_name=os.unix.nmon.cpu.cpu_all.Idle_PCT) $host$ by metric_name, host span=1m
| eval Sys_percent=case(metric_name=="os.unix.nmon.cpu.cpu_all.Sys_PCT", value), User_percent=case(metric_name=="os.unix.nmon.cpu.cpu_all.User_PCT", value), Wait_percent=case(metric_name=="os.unix.nmon.cpu.cpu_all.Wait_PCT", value), Idle_percent=case(metric_name=="os.unix.nmon.cpu.cpu_all.Idle_PCT", value)
| stats values(Sys_percent) as Sys_percent, values(User_percent) as User_percent, values(Wait_percent) as Wait_percent, values(Idle_percent) as Idle_percent by _time, host
| eval cpu_load_percent=(Sys_percent%2BUser_percent%2BWait_percent)
| timechart $span$ avg(Idle_percent) AS Idle_percent, avg(Sys_percent) AS Sys_percent, avg(User_percent) AS User_percent, avg(Wait_percent) AS Wait_percent, avg(cpu_load_percent) as cpu_load_percent
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$cpu_all_chart2$">
                <title></title>
                <search base="CPU_ALL">
                    <query>fields _time,"CPU %"</query>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">stacked</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisTitleY.text">% of CPUs utilization</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <option name="charting.axisY.maximumNumber">100</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                        search?earliest=$earliest$&latest=$latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` (metric_name=os.unix.nmon.cpu.cpu_all.Sys_PCT OR metric_name=os.unix.nmon.cpu.cpu_all.User_PCT OR metric_name=os.unix.nmon.cpu.cpu_all.Wait_PCT OR metric_name=os.unix.nmon.cpu.cpu_all.Idle_PCT) $host$ by metric_name, host span=1m
| eval Sys_percent=case(metric_name=="os.unix.nmon.cpu.cpu_all.Sys_PCT", value), User_percent=case(metric_name=="os.unix.nmon.cpu.cpu_all.User_PCT", value), Wait_percent=case(metric_name=="os.unix.nmon.cpu.cpu_all.Wait_PCT", value), Idle_percent=case(metric_name=="os.unix.nmon.cpu.cpu_all.Idle_PCT", value)
| stats values(Sys_percent) as Sys_percent, values(User_percent) as User_percent, values(Wait_percent) as Wait_percent, values(Idle_percent) as Idle_percent by _time, host
| eval cpu_load_percent=(Sys_percent%2BUser_percent%2BWait_percent)
| timechart $span$ avg(Idle_percent) AS Idle_percent, avg(Sys_percent) AS Sys_percent, avg(User_percent) AS User_percent, avg(Wait_percent) AS Wait_percent, avg(cpu_load_percent) as cpu_load_percent
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$cpu_nn_chart1$">
                <title></title>
                <search>
                    <query>| mstats avg(_value) as value where `nmon_metrics_index` metric_name=os.unix.nmon.cpu.cpunn.* $host$ by metric_name span=1m
| `extract_metrics_cpu_all("Sys_PCT, User_PCT, Wait_PCT")`
| stats values(Sys_PCT) as Sys_PCT, values(User_PCT) as User_PCT, values(Wait_PCT) as Wait_PCT by _time, cpu_core | fillnull value=0
| fillnull value=0 Sys_PCT,User_PCT,Wait_PCT
| eval cpu_PCT=(Sys_PCT+User_PCT+Wait_PCT)
| timechart $span$ useother=f limit=0 avg(cpu_PCT) AS cpu_PCT by cpu_core</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">stacked</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisTitleY.text">% of CPU utilization</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <option name="charting.axisY.maximumNumber">100</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                        search?earliest=$earliest$&latest=$latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` metric_name=os.unix.nmon.cpu.cpunn.* $host$ by metric_name span=1m
| `extract_metrics_cpu_all("Sys_PCT, User_PCT, Wait_PCT")`
| stats values(Sys_PCT) as Sys_PCT, values(User_PCT) as User_PCT, values(Wait_PCT) as Wait_PCT by _time, cpu_core | fillnull value=0
| eval cpu_PCT=(Sys_PCT%2BUser_PCT%2BWait_PCT)
| timechart $span$ useother=f limit=0 avg(cpu_PCT) AS cpu_PCT by cpu_core
                        ]]>
                    </link>
                </drilldown>
            </chart>

        </panel>
    </row>

    <row depends="$is_LPAR$">
        <panel>

            <input type="link" token="lpar_linkinput">
                <label></label>
                <choice value="lpar_chart1">LPAR, PowerLinux only, Partition statistics</choice>
                <choice value="lpar_chart2">LPAR, PowerLinux only, Pool statistics</choice>
                <default>lpar_chart1</default>
                <change>
                    <condition value="lpar_chart1">
                        <set token="lpar_chart1">true</set>
                        <unset token="lpar_chart2"></unset>
                    </condition>
                    <condition value="lpar_chart2">
                        <set token="lpar_chart2">true</set>
                        <unset token="lpar_chart1"></unset>
                    </condition>
                </change>
            </input>

            <chart depends="$lpar_chart1$">
                <title></title>
                <search depends="$is_LPAR$">
                    <query>| mstats avg(_value) as value where `nmon_metrics_index` (metric_name="os.unix.nmon.cpu.lpar.PhysicalCPU" OR metric_name="os.unix.nmon.cpu.lpar.partition_active_processors" OR metric_name="os.unix.nmon.cpu.lpar.partition_entitled_capacity") ($host$) by metric_name, host span=1m
| `def_lpar_load_linux_cores`
| timechart $span$ max(lpar_load_cores) AS "max cpu load cores", avg(lpar_load_cores) AS "avg cpu load cores", max(partition_active_processors) as partition_active_processors, max(partition_entitled_capacity) as partition_entitled_capacity</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">stacked</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisTitleY.text">VirtualCPUs</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                            search?earliest=$timerange.earliest$&latest=$timerange.latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` (metric_name="os.unix.nmon.cpu.lpar.PhysicalCPU" OR metric_name="os.unix.nmon.cpu.lpar.partition_active_processors" OR metric_name="os.unix.nmon.cpu.lpar.partition_entitled_capacity") ($host$) by metric_name, host span=1m
| `def_lpar_load_linux_cores`
| timechart $span$ max(lpar_load_cores) AS "max cpu load cores", avg(lpar_load_cores) AS "avg cpu load cores", max(partition_active_processors) as partition_active_processors, max(partition_entitled_capacity) as partition_entitled_capacity
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$lpar_chart2$">
                <title></title>
                <search depends="$is_LPAR$ $lpar_chart2$">
                    <query>| mstats avg(_value) as value where `nmon_metrics_index` (metric_name="os.unix.nmon.cpu.lpar.smt_mode" OR metric_name="os.unix.nmon.cpu.lpar.pool_idle_time" OR metric_name="os.unix.nmon.cpu.lpar.pool_capacity") ($host$) by metric_name, host span=1m
| `def_lpar_pool_load_linux_cores`
| timechart $span$ max(lpar_pool_vp_usage) As lpar_pool_vp_usage max(pool_capacity) AS pool_capacity</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">stacked</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisTitleY.text">VirtualCPUs</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                            search?earliest=$timerange.earliest$&latest=$timerange.latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` (metric_name="os.unix.nmon.cpu.lpar.smt_mode" OR metric_name="os.unix.nmon.cpu.lpar.pool_idle_time" OR metric_name="os.unix.nmon.cpu.lpar.pool_capacity") ($host$) by metric_name, host span=1m
| `def_lpar_pool_load_linux_cores`
| timechart $span$ max(lpar_pool_vp_usage) As lpar_pool_vp_usage max(pool_capacity) AS pool_capacity
                        ]]>
                    </link>
                </drilldown>
            </chart>

        </panel>
    </row>

    <row>
        <panel id="process">
            <title>Process, Kernel, I/O Statistics</title>
        </panel>
    </row>

    <!-- TOP data availability -->

    <search>
        <query>| mcatalog values(metric_name) where `nmon_metrics_index` metric_name="os.unix.nmon.processes.top.pct_CPU" $host$ | stats count | where count&gt;0</query>
        <earliest>$timerange.earliest$</earliest>
        <latest>$timerange.latest$</latest>
        <progress>
            <condition match="$job.resultCount$ == 0">
                    <unset token="start_top_search"></unset>
                    <set token="show_null_top"></set>
            </condition>
            <condition>
                    <set token="start_top_search">true</set>
                    <unset token="show_null_top"></unset>
            </condition>
        </progress>
    </search>

    <row>
        <panel>

            <input type="link" token="top_linkinput">
                <label></label>
                <choice value="top_chart1">TOP, CPU Usage per logical core</choice>
                <choice value="top_chart2">TOP, Memory Usage per command invocation</choice>
                <choice value="top_chart3">TOP, Virtual Memory Usage per command invocation</choice>
                <choice value="top_chart4">TOP, MinorFault per Command invocation</choice>
                <choice value="top_chart5">TOP, MajorFault per Command invocation</choice>
                <choice value="top_chart6">TOP, Shared library pages per Command invocation</choice>
                <default>top_chart1</default>
                <change>
                    <condition value="top_chart1">
                        <set token="top_chart1">true</set>
                        <unset token="top_chart2"></unset>
                        <unset token="top_chart3"></unset>
                        <unset token="top_chart4"></unset>
                        <unset token="top_chart5"></unset>
                        <unset token="top_chart6"></unset>
                    </condition>
                    <condition value="top_chart2">
                        <set token="top_chart2">true</set>
                        <unset token="top_chart1"></unset>
                        <unset token="top_chart3"></unset>
                        <unset token="top_chart4"></unset>
                        <unset token="top_chart5"></unset>
                        <unset token="top_chart6"></unset>
                    </condition>
                    <condition value="top_chart3">
                        <set token="top_chart3">true</set>
                        <unset token="top_chart2"></unset>
                        <unset token="top_chart1"></unset>
                        <unset token="top_chart4"></unset>
                        <unset token="top_chart5"></unset>
                        <unset token="top_chart6"></unset>
                    </condition>
                    <condition value="top_chart4">
                        <set token="top_chart4">true</set>
                        <unset token="top_chart2"></unset>
                        <unset token="top_chart3"></unset>
                        <unset token="top_chart1"></unset>
                        <unset token="top_chart5"></unset>
                        <unset token="top_chart6"></unset>
                    </condition>
                    <condition value="top_chart5">
                        <set token="top_chart5">true</set>
                        <unset token="top_chart2"></unset>
                        <unset token="top_chart3"></unset>
                        <unset token="top_chart4"></unset>
                        <unset token="top_chart1"></unset>
                        <unset token="top_chart6"></unset>
                    </condition>
                    <condition value="top_chart6">
                        <set token="top_chart6">true</set>
                        <unset token="top_chart2"></unset>
                        <unset token="top_chart3"></unset>
                        <unset token="top_chart4"></unset>
                        <unset token="top_chart5"></unset>
                        <unset token="top_chart1"></unset>
                    </condition>
                </change>
            </input>

            <chart depends="$top_chart1$ $start_top_search$">
                <title></title>
                <search depends="$top_chart1$ $start_top_search$">
                    <query>| mstats max(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.processes.top.pct_CPU" $host$ by dimension_Command dimension_PID span=1m
| stats sum(value) as pct_CPU by _time, dimension_Command
| eval usage_per_core=(pct_CPU/100)
| timechart $span$ useother=f limit="50" max(usage_per_core) as "CPU Usage per core" by dimension_Command</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">column</option>
                <option name="charting.chart.nullValueMode">zero</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">stacked</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <option name="charting.axisTitleY.text">Logical Core</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                        search?earliest=$earliest$&latest=$latest$&q=| mstats max(_value) as pct_CPU where `nmon_metrics_index` metric_name="os.unix.nmon.processes.top.pct_CPU" dimension_Command="$click.name2$" $host$ by dimension_Command dimension_PID span=1m
| stats sum(value) as pct_CPU by _time, dimension_Command
| eval usage_per_core=(pct_CPU/100)
| timechart $span$ useother=f limit="50" max(usage_per_core) as "CPU Usage per core" by dimension_Command
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$top_chart2$ $start_top_search$">
                <title></title>
                <search depends="$top_chart2$ $start_top_search$">
                    <query>| mstats max(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.processes.top.ResSet" $host$ by dimension_Command dimension_PID span=1m
| stats sum(value) as value by _time, dimension_Command
| eval Used_Mem_MB=((value)/1024)
| timechart $span$ useother=f limit="50" avg(Used_Mem_MB) as "memory usage (MB)" by dimension_Command</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">column</option>
                <option name="charting.chart.nullValueMode">zero</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">stacked</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <option name="charting.axisTitleY.text">Megabytes (MB)</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                        search?earliest=$timerange.earliest$&latest=$timerange.latest$&q=| mstats max(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.processes.top.ResSet" dimension_Command="$click.name2$" $host$ by dimension_Command dimension_PID span=1m
| stats sum(value) as value by _time, dimension_Command
| eval Used_Mem_MB=((value)/1024)
| timechart $span$ useother=f limit="50" avg(Used_Mem_MB) as "memory usage (MB)" by dimension_Command&display.general.type=visualizations&display.page.search.tab=visualizations&display.visualizations.charting.chart=line
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$top_chart3$ $start_top_search$">
                <title></title>
                <search depends="$top_chart3$ $start_top_search$">
                    <query>| mstats max(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.processes.top.Size" $host$ by dimension_Command dimension_PID span=1m
| stats sum(value) as value by _time, dimension_Command
| eval Virtual_Mem_MB=((value)/1024)
| timechart $span$ useother=f limit="50" avg(Virtual_Mem_MB) as "Virtual_Mem usage (MB)" by dimension_Command</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">column</option>
                <option name="charting.chart.nullValueMode">zero</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">stacked</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <option name="charting.axisTitleY.text">Megabytes (MB)</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                        search?earliest=$timerange.earliest$&latest=$timerange.latest$&q=| mstats max(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.processes.top.Size" dimension_Command="$click.name2$" $host$ by dimension_Command dimension_PID span=1m
| stats sum(value) as value by _time, dimension_Command
| eval Virtual_Mem_MB=((value)/1024)
| timechart $span$ useother=f limit="50" avg(Virtual_Mem_MB) as "Virtual_Mem usage (MB)" by dimension_Command&display.general.type=visualizations&display.page.search.tab=visualizations&display.visualizations.charting.chart=line
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$top_chart4$ $start_top_search$">
                <title></title>
                <search depends="$top_chart4$ $start_top_search$">
                    <query>| mstats max(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.processes.top.MinorFault" $host$ by dimension_Command dimension_PID span=1m
| stats sum(value) as value by _time, dimension_Command
| timechart $span$ useother=f limit="50" avg(value) as MinorFault by dimension_Command</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">column</option>
                <option name="charting.chart.nullValueMode">zero</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">stacked</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <option name="charting.axisTitleY.text">Pages/sec</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                        search?earliest=$timerange.earliest$&latest=$timerange.latest$&q=| mstats max(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.processes.top.MinorFault" dimension_Command="$click.name2$" $host$ by dimension_Command dimension_PID span=1m
| stats sum(value) as value by _time, dimension_Command
| timechart $span$ useother=f limit="50" avg(value) as MinorFault by dimension_Command&display.general.type=visualizations&display.page.search.tab=visualizations&display.visualizations.charting.chart=line
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$top_chart5$ $start_top_search$">
                <title></title>
                <search depends="$top_chart5$ $start_top_search$">
                    <query>| mstats max(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.processes.top.MajorFault" $host$ by dimension_Command dimension_PID span=1m
| stats sum(value) as value by _time, dimension_Command
| timechart $span$ useother=f limit="50" avg(value) as MajorFault by dimension_Command</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">column</option>
                <option name="charting.chart.nullValueMode">zero</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">stacked</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <option name="charting.axisTitleY.text">Pages/sec</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                        search?earliest=$timerange.earliest$&latest=$timerange.latest$&q=| mstats max(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.processes.top.MinorFault" dimension_Command="$click.name2$" $host$ by dimension_Command dimension_PID span=1m
| stats sum(value) as value by _time, dimension_Command
| timechart $span$ useother=f limit="50" avg(value) as MajorFault by dimension_Command&display.general.type=visualizations&display.page.search.tab=visualizations&display.visualizations.charting.chart=line
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$top_chart6$ $start_top_search$">
                <title></title>
                <search depends="$top_chart6$ $start_top_search$">
                    <query>| mstats max(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.processes.top.ShdLib" $host$ by dimension_Command dimension_PID span=1m
| stats sum(value) as value by _time, dimension_Command
| timechart $span$ useother=f limit="50" avg(value) as ShdLib by dimension_Command</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">column</option>
                <option name="charting.chart.nullValueMode">zero</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">stacked</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <option name="charting.axisTitleY.text">Pages/sec</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                        search?earliest=$timerange.earliest$&latest=$timerange.latest$&q=| mstats max(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.processes.top.ShdLib" dimension_Command="$click.name2$" $host$ by dimension_Command dimension_PID span=1m
| stats sum(value) as value by _time, dimension_Command
| timechart $span$ useother=f limit="50" avg(value) as ShdLib by dimension_Command&display.general.type=visualizations&display.page.search.tab=visualizations&display.visualizations.charting.chart=line
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <html depends="$show_null_top$">
                <p style="color:blue;margin-left:30px;font-size:14px">Search returned no results, TOP collection (processes activity) has not been activated or no processes were captured due to lack of activity</p>
            </html>

        </panel>
    </row>

    <search id="PROC">
        <query>| mstats avg(_value) as value where `nmon_metrics_index` metric_name=os.unix.nmon.kernel.proc.* $host$ by metric_name span=1m
| `extract_metrics`
| fields _time, metric, value
| timechart $span$ limit=0 useother=f avg(value) by metric</query>
        <earliest>$timerange.earliest$</earliest>
        <latest>$timerange.latest$</latest>
    </search>

    <row>
        <panel>

            <input type="link" token="proc_linkinput">
                <label></label>
                <choice value="proc_chart1">PROC, Kernel Threads in run queue and to be paged (RunQueue, Swap-In)</choice>
                <choice value="proc_chart2">PROC, Context switches and system calls (pswitch, syscall)</choice>
                <choice value="proc_chart3">PROC, Fork and Exec system calls (fork, exec)</choice>
                <default>proc_chart1</default>
                <change>
                    <condition value="proc_chart1">
                        <set token="proc_chart1">true</set>
                        <unset token="proc_chart2"></unset>
                        <unset token="proc_chart3"></unset>
                    </condition>
                    <condition value="proc_chart2">
                        <set token="proc_chart2">true</set>
                        <unset token="proc_chart1"></unset>
                        <unset token="proc_chart3"></unset>
                    </condition>
                    <condition value="proc_chart3">
                        <set token="proc_chart3">true</set>
                        <unset token="proc_chart2"></unset>
                        <unset token="proc_chart1"></unset>
                    </condition>
                </change>
            </input>

            <chart depends="$proc_chart1$">
                <title></title>
                <search base="PROC">
                    <query>fields _time,Runnable,Swap_in</query>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">0</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <option name="charting.axisTitleY.text">Value</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                        search?earliest=$timerange.earliest$&latest=$timerange.latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` metric_name=os.unix.nmon.kernel.proc.Runnable OR metric_name=os.unix.nmon.kernel.proc.Swap_in $host$ by metric_name span=1m
| `extract_metrics`
| fields _time, metric, value
| timechart $span$ limit=0 useother=f avg(value) by metric&display.general.type=visualizations&display.page.search.tab=visualizations&display.visualizations.charting.chart=line
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$proc_chart2$">
                <title></title>
                <search base="PROC">
                    <query>fields _time,pswitch,syscall</query>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">0</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">$chart.stackingmode$</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <option name="charting.axisTitleY.text">Rates per Second</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                        search?earliest=$timerange.earliest$&latest=$timerange.latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` metric_name=os.unix.nmon.kernel.proc.pswitch OR metric_name=os.unix.nmon.kernel.proc.syscall $host$ by metric_name span=1m
| `extract_metrics`
| fields _time, metric, value
| timechart $span$ limit=0 useother=f avg(value) by metric&display.general.type=visualizations&display.page.search.tab=visualizations&display.visualizations.charting.chart=line
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$proc_chart3$">
                <title></title>
                <search base="PROC">
                    <query>fields _time,fork,exec</query>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">0</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <option name="charting.axisTitleY.text">Rates per Second</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                        search?earliest=$timerange.earliest$&latest=$timerange.latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` metric_name=os.unix.nmon.kernel.proc.fork OR metric_name=os.unix.nmon.kernel.proc.exec $host$ by metric_name span=1m
| `extract_metrics`
| fields _time, metric, value
| timechart $span$ limit=0 useother=f avg(value) by metric&display.general.type=visualizations&display.page.search.tab=visualizations&display.visualizations.charting.chart=line
                        ]]>
                    </link>
                </drilldown>
            </chart>

        </panel>
    </row>

    <search id="VM">
        <query>| mstats avg(_value) as value where `nmon_metrics_index` metric_name=os.unix.nmon.memory.vm.* $host$ by metric_name span=1m
| `extract_metrics`
| fields _time, metric, value
| timechart $span$ limit=0 useother=f avg(value) by metric</query>
        <earliest>$timerange.earliest$</earliest>
        <latest>$timerange.latest$</latest>
    </search>

    <row>
        <panel>

            <input type="link" token="vm_linkinput">
                <label></label>
                <choice value="vm_chart1">VM, Pages dirty, under writeback or unstable</choice>
                <choice value="vm_chart2">VM, Pages allocated to page tables, mapped by files or allocated by the kernel slab allocator</choice>
                <choice value="vm_chart3">VM, Pageins and pageouts (since last boot)</choice>
                <choice value="vm_chart4">VM, swapins and swapouts (since last boot)</choice>
                <choice value="vm_chart5">VM, Page allocations per zone (since last boot)</choice>
                <choice value="vm_chart6">VM, Page frees, activations and deactivations (since last boot)</choice>
                <choice value="vm_chart7">VM, Minor and major page faults (since last boot)</choice>
                <choice value="vm_chart8">VM, Page refills (per zone, since last boot)</choice>
                <choice value="vm_chart9">VM, Page steals (per zone, since last boot)</choice>
                <choice value="vm_chart10">VM, Pages scanned by kswapd daemon (per zone, since last boot)</choice>
                <choice value="vm_chart11">VM, Pages reclaimed directly (per zone, since last boot)</choice>
                <choice value="vm_chart12">VM, Miscellaneous statistics</choice>
                <default>vm_chart1</default>
                <change>
                    <condition value="vm_chart1">
                        <set token="vm_chart1">true</set>
                        <unset token="vm_chart2"></unset>
                        <unset token="vm_chart3"></unset>
                        <unset token="vm_chart4"></unset>
                        <unset token="vm_chart5"></unset>
                        <unset token="vm_chart6"></unset>
                        <unset token="vm_chart7"></unset>
                        <unset token="vm_chart8"></unset>
                        <unset token="vm_chart9"></unset>
                        <unset token="vm_chart10"></unset>
                        <unset token="vm_chart11"></unset>
                        <unset token="vm_chart12"></unset>
                    </condition>
                    <condition value="vm_chart2">
                        <set token="vm_chart2">true</set>
                        <unset token="vm_chart1"></unset>
                        <unset token="vm_chart3"></unset>
                        <unset token="vm_chart4"></unset>
                        <unset token="vm_chart5"></unset>
                        <unset token="vm_chart6"></unset>
                        <unset token="vm_chart7"></unset>
                        <unset token="vm_chart8"></unset>
                        <unset token="vm_chart9"></unset>
                        <unset token="vm_chart10"></unset>
                        <unset token="vm_chart11"></unset>
                        <unset token="vm_chart12"></unset>
                    </condition>
                    <condition value="vm_chart3">
                        <set token="vm_chart3">true</set>
                        <unset token="vm_chart2"></unset>
                        <unset token="vm_chart1"></unset>
                        <unset token="vm_chart4"></unset>
                        <unset token="vm_chart5"></unset>
                        <unset token="vm_chart6"></unset>
                        <unset token="vm_chart7"></unset>
                        <unset token="vm_chart8"></unset>
                        <unset token="vm_chart9"></unset>
                        <unset token="vm_chart10"></unset>
                        <unset token="vm_chart11"></unset>
                        <unset token="vm_chart12"></unset>
                    </condition>
                    <condition value="vm_chart4">
                        <set token="vm_chart4">true</set>
                        <unset token="vm_chart2"></unset>
                        <unset token="vm_chart3"></unset>
                        <unset token="vm_chart1"></unset>
                        <unset token="vm_chart5"></unset>
                        <unset token="vm_chart6"></unset>
                        <unset token="vm_chart7"></unset>
                        <unset token="vm_chart8"></unset>
                        <unset token="vm_chart9"></unset>
                        <unset token="vm_chart10"></unset>
                        <unset token="vm_chart11"></unset>
                        <unset token="vm_chart12"></unset>
                    </condition>
                    <condition value="vm_chart5">
                        <set token="vm_chart5">true</set>
                        <unset token="vm_chart2"></unset>
                        <unset token="vm_chart3"></unset>
                        <unset token="vm_chart4"></unset>
                        <unset token="vm_chart1"></unset>
                        <unset token="vm_chart6"></unset>
                        <unset token="vm_chart7"></unset>
                        <unset token="vm_chart8"></unset>
                        <unset token="vm_chart9"></unset>
                        <unset token="vm_chart10"></unset>
                        <unset token="vm_chart11"></unset>
                        <unset token="vm_chart12"></unset>
                    </condition>
                    <condition value="vm_chart6">
                        <set token="vm_chart6">true</set>
                        <unset token="vm_chart2"></unset>
                        <unset token="vm_chart3"></unset>
                        <unset token="vm_chart4"></unset>
                        <unset token="vm_chart5"></unset>
                        <unset token="vm_chart1"></unset>
                        <unset token="vm_chart7"></unset>
                        <unset token="vm_chart8"></unset>
                        <unset token="vm_chart9"></unset>
                        <unset token="vm_chart10"></unset>
                        <unset token="vm_chart11"></unset>
                        <unset token="vm_chart12"></unset>
                    </condition>
                    <condition value="vm_chart7">
                        <set token="vm_chart7">true</set>
                        <unset token="vm_chart2"></unset>
                        <unset token="vm_chart3"></unset>
                        <unset token="vm_chart4"></unset>
                        <unset token="vm_chart5"></unset>
                        <unset token="vm_chart6"></unset>
                        <unset token="vm_chart1"></unset>
                        <unset token="vm_chart8"></unset>
                        <unset token="vm_chart9"></unset>
                        <unset token="vm_chart10"></unset>
                        <unset token="vm_chart11"></unset>
                        <unset token="vm_chart12"></unset>
                    </condition>
                    <condition value="vm_chart8">
                        <set token="vm_chart8">true</set>
                        <unset token="vm_chart2"></unset>
                        <unset token="vm_chart3"></unset>
                        <unset token="vm_chart4"></unset>
                        <unset token="vm_chart5"></unset>
                        <unset token="vm_chart6"></unset>
                        <unset token="vm_chart7"></unset>
                        <unset token="vm_chart1"></unset>
                        <unset token="vm_chart9"></unset>
                        <unset token="vm_chart10"></unset>
                        <unset token="vm_chart11"></unset>
                        <unset token="vm_chart12"></unset>
                    </condition>
                    <condition value="vm_chart9">
                        <set token="vm_chart9">true</set>
                        <unset token="vm_chart2"></unset>
                        <unset token="vm_chart3"></unset>
                        <unset token="vm_chart4"></unset>
                        <unset token="vm_chart5"></unset>
                        <unset token="vm_chart6"></unset>
                        <unset token="vm_chart7"></unset>
                        <unset token="vm_chart8"></unset>
                        <unset token="vm_chart1"></unset>
                        <unset token="vm_chart10"></unset>
                        <unset token="vm_chart11"></unset>
                        <unset token="vm_chart12"></unset>
                    </condition>
                    <condition value="vm_chart10">
                        <set token="vm_chart10">true</set>
                        <unset token="vm_chart2"></unset>
                        <unset token="vm_chart3"></unset>
                        <unset token="vm_chart4"></unset>
                        <unset token="vm_chart5"></unset>
                        <unset token="vm_chart6"></unset>
                        <unset token="vm_chart7"></unset>
                        <unset token="vm_chart8"></unset>
                        <unset token="vm_chart9"></unset>
                        <unset token="vm_chart1"></unset>
                        <unset token="vm_chart11"></unset>
                        <unset token="vm_chart12"></unset>
                    </condition>
                    <condition value="vm_chart11">
                        <set token="vm_chart11">true</set>
                        <unset token="vm_chart2"></unset>
                        <unset token="vm_chart3"></unset>
                        <unset token="vm_chart4"></unset>
                        <unset token="vm_chart5"></unset>
                        <unset token="vm_chart6"></unset>
                        <unset token="vm_chart7"></unset>
                        <unset token="vm_chart8"></unset>
                        <unset token="vm_chart9"></unset>
                        <unset token="vm_chart10"></unset>
                        <unset token="vm_chart1"></unset>
                        <unset token="vm_chart12"></unset>
                    </condition>
                    <condition value="vm_chart12">
                        <set token="vm_chart12">true</set>
                        <unset token="vm_chart2"></unset>
                        <unset token="vm_chart3"></unset>
                        <unset token="vm_chart4"></unset>
                        <unset token="vm_chart5"></unset>
                        <unset token="vm_chart6"></unset>
                        <unset token="vm_chart7"></unset>
                        <unset token="vm_chart8"></unset>
                        <unset token="vm_chart9"></unset>
                        <unset token="vm_chart10"></unset>
                        <unset token="vm_chart11"></unset>
                        <unset token="vm_chart1"></unset>
                    </condition>
                </change>
            </input>
            
            <chart depends="$vm_chart1$">
                <title></title>
                <search base="VM">
                    <query>fields _time,nr_dirty,nr_writeback,nr_unstable</query>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <option name="charting.axisTitleY.text">Number of Pages</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                        search?earliest=$timerange.earliest$&latest=$timerange.latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` metric_name=os.unix.nmon.memory.vm.* $host$ by metric_name span=1m
| `extract_metrics`
| fields _time, metric, value
| timechart $span$ limit=0 useother=f avg(value) by metric | fields _time,nr_dirty,nr_writeback,nr_unstable&display.general.type=visualizations&display.page.search.tab=visualizations&display.visualizations.charting.chart=line
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$vm_chart2$">
                <title></title>
                <search base="VM">
                    <query>fields _time,nr_page_table_pages,nr_mapped,nr_slab</query>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <option name="charting.axisTitleY.text">Number of Pages</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                        search?earliest=$timerange.earliest$&latest=$timerange.latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` metric_name=os.unix.nmon.memory.vm.* $host$ by metric_name span=1m
| `extract_metrics`
| fields _time, metric, value
| timechart $span$ limit=0 useother=f avg(value) by metric | fields _time,nr_page_table_pages,nr_mapped,nr_slab&display.general.type=visualizations&display.page.search.tab=visualizations&display.visualizations.charting.chart=line
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$vm_chart3$">
                <title></title>
                <search base="VM">
                    <query>fields _time,pgpgin,pgpgout</query>
                </search>      
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <option name="charting.axisTitleY.text">Number of Pages</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                        search?earliest=$timerange.earliest$&latest=$timerange.latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` metric_name=os.unix.nmon.memory.vm.* $host$ by metric_name span=1m
| `extract_metrics`
| fields _time, metric, value
| timechart $span$ limit=0 useother=f avg(value) by metric | fields _time,pgpgin,pgpgout&display.general.type=visualizations&display.page.search.tab=visualizations&display.visualizations.charting.chart=line
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$vm_chart4$">
                <title></title>
                <search base="VM">
                    <query>fields _time,pswpin,pswpout</query>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <option name="charting.axisTitleY.text">Number of Pages</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                        search?earliest=$timerange.earliest$&latest=$timerange.latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` metric_name=os.unix.nmon.memory.vm.* $host$ by metric_name span=1m
| `extract_metrics`
| fields _time, metric, value
| timechart $span$ limit=0 useother=f avg(value) by metric | fields _time,pswpin,pswpout&display.general.type=visualizations&display.page.search.tab=visualizations&display.visualizations.charting.chart=line
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$vm_chart5$">
                <title></title>
                <search base="VM">
                    <query>fields _time,pgalloc_high,pgalloc_normal,pgalloc_dma32,pgalloc_dma</query>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <option name="charting.axisTitleY.text">Number of Pages</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                        search?earliest=$timerange.earliest$&latest=$timerange.latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` metric_name=os.unix.nmon.memory.vm.* $host$ by metric_name span=1m
| `extract_metrics`
| fields _time, metric, value
| timechart $span$ limit=0 useother=f avg(value) by metric | fields _time,pgalloc_high,pgalloc_normal,pgalloc_dma32,pgalloc_dma&display.general.type=visualizations&display.page.search.tab=visualizations&display.visualizations.charting.chart=line
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$vm_chart6$">
                <title></title>
                <search base="VM">
                    <query>fields _time,pgfree,pgactivate,pgdeactivate</query>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <option name="charting.axisTitleY.text">Number of Pages</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                        search?earliest=$timerange.earliest$&latest=$timerange.latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` metric_name=os.unix.nmon.memory.vm.* $host$ by metric_name span=1m
| `extract_metrics`
| fields _time, metric, value
| timechart $span$ limit=0 useother=f avg(value) by metric | fields _time,pgfree,pgactivate,pgdeactivate&display.general.type=visualizations&display.page.search.tab=visualizations&display.visualizations.charting.chart=line
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$vm_chart7$">
                <title></title>
                <search base="VM">
                    <query>fields _time,pgfault,pgmajfault</query>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <option name="charting.axisTitleY.text">Number of Pages</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                        search?earliest=$timerange.earliest$&latest=$timerange.latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` metric_name=os.unix.nmon.memory.vm.* $host$ by metric_name span=1m
| `extract_metrics`
| fields _time, metric, value
| timechart $span$ limit=0 useother=f avg(value) by metric | fields _time,pgfault,pgmajfault&display.general.type=visualizations&display.page.search.tab=visualizations&display.visualizations.charting.chart=line
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$vm_chart8$">
                <title></title>
                <search base="VM">
                    <query>fields _time,pgrefill_high,pgrefill_normal,pgrefill_dma32,pgrefill_dma</query>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <option name="charting.axisTitleY.text">Number of Pages</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                        search?earliest=$timerange.earliest$&latest=$timerange.latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` metric_name=os.unix.nmon.memory.vm.* $host$ by metric_name span=1m
| `extract_metrics`
| fields _time, metric, value
| timechart $span$ limit=0 useother=f avg(value) by metric | fields _time,pgrefill_high,pgrefill_normal,pgrefill_dma32,pgrefill_dma&display.general.type=visualizations&display.page.search.tab=visualizations&display.visualizations.charting.chart=line
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$vm_chart9$">
                <title></title>
                <search base="VM">
                    <query>fields _time,pgsteal_high,pgsteal_normal,pgsteal_dma32,pgsteal_dma</query>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <option name="charting.axisTitleY.text">Number of Pages</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                        search?earliest=$timerange.earliest$&latest=$timerange.latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` metric_name=os.unix.nmon.memory.vm.* $host$ by metric_name span=1m
| `extract_metrics`
| fields _time, metric, value
| timechart $span$ limit=0 useother=f avg(value) by metric | fields _time,pgsteal_high,pgsteal_normal,pgsteal_dma32,pgsteal_dma&display.general.type=visualizations&display.page.search.tab=visualizations&display.visualizations.charting.chart=line
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$vm_chart10$">
                <title></title>
                <search base="VM">
                    <query>fields _time,pgscan_kswapd_high,pgscan_kswapd_normal,pgscan_kswapd_dma32,pgscan_kswapd_dma</query>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <option name="charting.axisTitleY.text">Number of Pages</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                        search?earliest=$timerange.earliest$&latest=$timerange.latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` metric_name=os.unix.nmon.memory.vm.* $host$ by metric_name span=1m
| `extract_metrics`
| fields _time, metric, value
| timechart $span$ limit=0 useother=f avg(value) by metric | fields _time,pgscan_kswapd_high,pgscan_kswapd_normal,pgscan_kswapd_dma32,pgscan_kswapd_dma&display.general.type=visualizations&display.page.search.tab=visualizations&display.visualizations.charting.chart=line
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$vm_chart11$">
                <title></title>
                <search base="VM">
                    <query>fields _time,pgscan_direct_high,pgscan_direct_normal,pgscan_direct_dma32,pgscan_direct_dma</query>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <option name="charting.axisTitleY.text">Number of Pages</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                        search?earliest=$timerange.earliest$&latest=$timerange.latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` metric_name=os.unix.nmon.memory.vm.* $host$ by metric_name span=1m
| `extract_metrics`
| fields _time, metric, value
| timechart $span$ limit=0 useother=f avg(value) by metric | fields _time,pgscan_direct_high,pgscan_direct_normal,pgscan_direct_dma32,pgscan_direct_dma&display.general.type=visualizations&display.page.search.tab=visualizations&display.visualizations.charting.chart=line
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$vm_chart12$">
                <title></title>
                <search base="VM">
                    <query>fields _time,pginodesteal,slabs_scanned,kswapd_steal,kswapd_inodesteal,pageoutrun,allocstall,pgrotated,nr_bounce</query>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <option name="charting.axisTitleY.text">Number of Pages</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                        search?earliest=$timerange.earliest$&latest=$timerange.latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` metric_name=os.unix.nmon.memory.vm.* $host$ by metric_name span=1m
| `extract_metrics`
| fields _time, metric, value
| timechart $span$ limit=0 useother=f avg(value) by metric | fields _time,pginodesteal,slabs_scanned,kswapd_steal,kswapd_inodesteal,pageoutrun,allocstall,pgrotated,nr_bounce&display.general.type=visualizations&display.page.search.tab=visualizations&display.visualizations.charting.chart=line
                        ]]>
                    </link>
                </drilldown>
            </chart>

        </panel>
    </row>

    <row>
        <panel id="memory">
            <title>MEMORY Usage Statistics</title>
        </panel>
    </row>

    <row>
        <panel>

            <input type="link" token="mem_linkinput">
                <label></label>
                <choice value="mem_chart1">MEM, Memory usage (MB) by main metrics</choice>
                <choice value="mem_chart2">MEM, Effective memory/swap used (%)</choice>
                <choice value="mem_chart3">MEM, Swap effective used/cached/free/global (MB)</choice>
                <default>mem_chart1</default>
                <change>
                    <condition value="mem_chart1">
                        <set token="mem_chart1">true</set>
                        <unset token="mem_chart2"></unset>
                        <unset token="mem_chart3"></unset>
                    </condition>
                    <condition value="mem_chart2">
                        <set token="mem_chart2">true</set>
                        <unset token="mem_chart1"></unset>
                        <unset token="mem_chart3"></unset>
                    </condition>
                    <condition value="mem_chart3">
                        <set token="mem_chart3">true</set>
                        <unset token="mem_chart2"></unset>
                        <unset token="mem_chart1"></unset>
                    </condition>
                </change>
            </input>

            <chart depends="$mem_chart1$">
                <title></title>
                <search depends="$mem_chart1$">
                    <query>| mstats avg(_value) as value where `nmon_metrics_index` `def_memory_linux_metric_filters` $host$ by OStype, host, metric_name span=1m
| `def_memory_volume_MB`
| timechart $span$ dedup_splitvals=t avg(memtotal) AS mem_total_MB, avg(mem_used_effective) as mem_used_effective_MB, avg(buffers) as mem_buffers_MB, avg(cached) as mem_cached_MB, avg(memfree) as mem_free_MB,
avg(swapfree) as swap_free_MB, avg(swap_used_effective) as swap_used_effective_MB, avg(swapcached) as swap_cached_MB, avg(swaptotal) as swap_total_MB
| fields _time, mem_free_MB, mem_cached_MB, mem_buffers_MB, mem_used_effective_MB, mem_total_MB</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">area</option>
                <option name="charting.chart.nullValueMode">connect</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">stacked</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisTitleY.text">volume (MB)</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <option name="charting.axisLabelsX.majorLabelStyle.overflowMode">ellipsisNone</option>
                <option name="charting.axisLabelsX.majorLabelStyle.rotation">0</option>
                <option name="charting.axisTitleY2.visibility">visible</option>
                <option name="charting.axisY2.enabled">0</option>
                <option name="charting.axisY2.scale">inherit</option>
                <option name="charting.chart.bubbleMaximumSize">50</option>
                <option name="charting.chart.bubbleMinimumSize">10</option>
                <option name="charting.chart.bubbleSizeBy">area</option>
                <option name="charting.chart.overlayFields">mem_total_MB</option>
                <option name="charting.chart.showDataLabels">none</option>
                <option name="charting.layout.splitSeries.allowIndependentYRanges">0</option>
                <option name="charting.fieldColors">{"mem_total_MB": 0xe50000}</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                            search?earliest=$timerange.earliest$&latest=$timerange.latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` `def_memory_linux_metric_filters` $host$ by OStype, host, metric_name span=1m
| `def_memory_volume_MB`
| timechart $span$ dedup_splitvals=t avg(memtotal) AS mem_total_MB, avg(mem_used_effective) as mem_used_effective_MB, avg(buffers) as mem_buffers_MB, avg(cached) as mem_cached_MB, avg(memfree) as mem_free_MB,
avg(swapfree) as swap_free_MB, avg(swap_used_effective) as swap_used_effective_MB, avg(swapcached) as swap_cached_MB, avg(swaptotal) as swap_total_MB
| fields _time, mem_free_MB, mem_cached_MB, mem_buffers_MB, mem_used_effective_MB, mem_total_MB&display.general.type=visualizations&display.page.search.tab=visualizations&display.visualizations.charting.chart=line
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$mem_chart2$">
                <title></title>
                <search depends="$mem_chart2$">
                    <query>| mstats avg(_value) as value where `nmon_metrics_index` `def_memory_linux_metric_filters` $host$ by OStype, host, metric_name span=1m
| `def_memory_load_percent_linux`
| timechart $span$ dedup_splitvals=t avg(mem_used_effective_PCT) AS mem_used_PCT, avg(swap_used_effective_PCT) AS swap_used_PCT</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">connect</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisTitleY.text">percentage (%)</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <option name="charting.axisY.maximumNumber">100</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                            search?earliest=$timerange.earliest$&latest=$timerange.latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` `def_memory_linux_metric_filters` $host$ by OStype, host, metric_name span=1m
| `def_memory_load_percent_linux`
| timechart $span$ dedup_splitvals=t avg(mem_used_effective_PCT) AS mem_used_PCT, avg(swap_used_effective_PCT) AS swap_used_PCT&display.general.type=visualizations&display.page.search.tab=visualizations&display.visualizations.charting.chart=line
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$mem_chart3$">
                <title></title>
                <search depends="$mem_chart3$">
                    <query>| mstats avg(_value) as value where `nmon_metrics_index` `def_memory_linux_metric_filters` $host$ by OStype, host, metric_name span=1m
| `def_memory_volume_MB`
| timechart $span$ dedup_splitvals=t avg(memtotal) AS mem_total_MB, avg(mem_used_effective) as mem_used_effective_MB, avg(buffers) as mem_buffers_MB, avg(cached) as mem_cached_MB, avg(memfree) as mem_free_MB,
avg(swapfree) as swap_free_MB, avg(swap_used_effective) as swap_used_effective_MB, avg(swapcached) as swap_cached_MB, avg(swaptotal) as swap_total_MB | fields _time, *swap_free_MB*, *swap_used_effective_MB*, *swap_cached_MB*, *swap_total_MB*</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">area</option>
                <option name="charting.chart.nullValueMode">connect</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">stacked</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisTitleY.text">volume (MB)</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <option name="charting.axisLabelsX.majorLabelStyle.overflowMode">ellipsisNone</option>
                <option name="charting.axisLabelsX.majorLabelStyle.rotation">0</option>
                <option name="charting.axisTitleY2.visibility">visible</option>
                <option name="charting.axisY2.enabled">0</option>
                <option name="charting.axisY2.scale">inherit</option>
                <option name="charting.chart.bubbleMaximumSize">50</option>
                <option name="charting.chart.bubbleMinimumSize">10</option>
                <option name="charting.chart.bubbleSizeBy">area</option>
                <option name="charting.chart.overlayFields">swap_total_MB</option>
                <option name="charting.chart.showDataLabels">none</option>
                <option name="charting.layout.splitSeries.allowIndependentYRanges">0</option>
                <option name="charting.fieldColors">{"swap_total_MB": 0xe50000}</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                            search?earliest=$timerange.earliest$&latest=$timerange.latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` `def_memory_linux_metric_filters` $host$ by OStype, host, metric_name span=1m
| `def_memory_volume_MB`
| timechart $span$ dedup_splitvals=t avg(memtotal) AS mem_total_MB, avg(mem_used_effective) as mem_used_effective_MB, avg(buffers) as mem_buffers_MB, avg(cached) as mem_cached_MB, avg(memfree) as mem_free_MB,
avg(swapfree) as swap_free_MB, avg(swap_used_effective) as swap_used_effective_MB, avg(swapcached) as swap_cached_MB, avg(swaptotal) as swap_total_MB | fields _time, *swap_free_MB*, *swap_used_effective_MB*, *swap_cached_MB*, *swap_total_MB*&display.general.type=visualizations&display.page.search.tab=visualizations&display.visualizations.charting.chart=line
                        ]]>
                    </link>
                </drilldown>
            </chart>

        </panel>
    </row>

    <row>
        <panel id="disk">
            <title>Disks performance statistics (active drill-down: click on one of the charts for dimension devices)</title>
        </panel>
    </row>

    <row>
        <panel>

            <input type="link" token="disk_linkinput">
                <label></label>
                <choice value="disk_chart1">DISKBSIZE, Average data transfer size</choice>
                <choice value="disk_chart2">DISKBUSY, Disk Busy Activity</choice>
                <choice value="disk_chart3">DISKREAD/WRITE, Disk Read/Write Data Rate</choice>
                <choice value="disk_chart4">DISKXFER, Disk I/O Operations per second (IOPS)</choice>
                <choice value="disk_chart5">DISKREAD/WRITE by XFER, Disk Read/Write I/O Operations per second (IOPS)</choice>
                <default>disk_chart1</default>
                <change>
                    <condition value="disk_chart1">
                        <set token="disk_chart1">true</set>
                        <unset token="disk_chart2"></unset>
                        <unset token="disk_chart3"></unset>
                        <unset token="disk_chart4"></unset>
                        <unset token="disk_chart5"></unset>
                    </condition>
                    <condition value="disk_chart2">
                        <set token="disk_chart2">true</set>
                        <unset token="disk_chart1"></unset>
                        <unset token="disk_chart3"></unset>
                        <unset token="disk_chart4"></unset>
                        <unset token="disk_chart5"></unset>
                    </condition>
                    <condition value="disk_chart3">
                        <set token="disk_chart3">true</set>
                        <unset token="disk_chart1"></unset>
                        <unset token="disk_chart2"></unset>
                        <unset token="disk_chart4"></unset>
                        <unset token="disk_chart5"></unset>
                    </condition>
                    <condition value="disk_chart4">
                        <set token="disk_chart4">true</set>
                        <unset token="disk_chart1"></unset>
                        <unset token="disk_chart2"></unset>
                        <unset token="disk_chart3"></unset>
                        <unset token="disk_chart5"></unset>
                    </condition>
                    <condition value="disk_chart5">
                        <set token="disk_chart5">true</set>
                        <unset token="disk_chart1"></unset>
                        <unset token="disk_chart2"></unset>
                        <unset token="disk_chart3"></unset>
                        <unset token="disk_chart4"></unset>
                    </condition>
                </change>
            </input>


            <chart depends="$disk_chart1$">
                <title></title>
                <search>
                    <query>| mstats avg(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.storage.diskbsize" $host$ by dimension_device span=1m
| stats sum(value) AS avg_transfer_size by _time
| timechart $span$ avg(avg_transfer_size) AS avg_transfer_size</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <option name="charting.axisTitleY.text">KBytes per Transfer</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                        search?earliest=$earliest$&latest=$latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.storage.diskbsize" $host$ by dimension_device span=1m
| timechart useother=f limit=0 $span$ avg(value) AS avg_transfer_size by dimension_device
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$disk_chart2$">
                <title></title>
                <search depends="$disk_chart2$">
                    <query>| mstats avg(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.storage.diskbusy" $host$ by dimension_device span=1m
| stats avg(value) AS value by _time
| timechart $span$ avg(value) AS avg_busy_disk</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <option name="charting.axisTitleY.text">% of Time Busy</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                        search?earliest=$earliest$&latest=$latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.storage.diskbusy" $host$ by dimension_device span=1m
| timechart $span$ useother=f limit=0 avg(value) AS avg_busy_disk by dimension_device
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$disk_chart3$">
                <title></title>
                <search depends="$disk_chart3$">
                    <query>| mstats avg(_value) as value where `nmon_metrics_index` (metric_name="os.unix.nmon.storage.diskread" OR metric_name="os.unix.nmon.storage.diskwrite") $host$ by metric_name, dimension_device span=1m
| eval disk_read=case(match(metric_name, "diskread"), value), diskwrite = case(match(metric_name, "diskwrite"), value)
| stats avg(disk_read) AS disk_read, avg(disk_write) AS disk_write by _time
| timechart $span$ avg(disk_read) AS disk_read, avg(disk_write) AS disk_write</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <option name="charting.axisTitleY.text">KBytes/Sec</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                        search?earliest=$earliest$&latest=$latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` (metric_name="os.unix.nmon.storage.diskread" OR metric_name="os.unix.nmon.storage.diskwrite") $host$ by metric_name, dimension_device span=1m
| eval disk_read=case(match(metric_name, "diskread"), value), diskwrite = case(match(metric_name, "diskwrite"), value)
| timechart $span$ useother=f limit=0 avg(disk_read) AS disk_read, avg(disk_write) AS disk_write by dimension_device
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$disk_chart4$">
                <title></title>
                <search depends="$disk_chart4$">
                    <query>| mstats avg(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.storage.diskxfer" $host$ by dimension_device span=1m
| stats sum(value) AS iops by _time
| timechart $span$ avg(iops) AS iops</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <option name="charting.axisTitleY.text">I/O per Sec</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                        search?earliest=$earliest$&latest=$latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.storage.diskxfer" $host$ by dimension_device span=1m
| timechart $span$ useother=f limit=0 avg(value) AS iops by dimension_device
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$disk_chart5$">
                <title></title>
                <search depends="$disk_chart5$">
                    <query>| mstats avg(_value) as value where `nmon_metrics_index` (metric_name="os.unix.nmon.storage.diskread" OR metric_name="os.unix.nmon.storage.diskwrite" OR metric_name="os.unix.nmon.storage.diskbsize") $host$ by metric_name, dimension_device span=1m
| eval disk_read=case(match(metric_name, "diskread"), value), disk_write=case(match(metric_name, "diskwrite"), value), disk_size=case(match(metric_name, "diskbsize"), value)
| stats values(disk_read) as disk_read values(disk_write) as disk_write values(disk_size) as disk_size by _time, dimension_device
| eval disk_read_iops=(disk_read/disk_size), disk_write_iops=(disk_write/disk_size)
| stats sum(disk_read_iops) as disk_read_iops, sum(disk_write_iops) as disk_write_iops by _time
| timechart $span$ avg(disk_read_iops) as disk_read_iops, avg(disk_write_iops) as disk_write_iops</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">stacked</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <option name="charting.axisTitleY.text">I/O per Sec</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                        search?earliest=$earliest$&latest=$latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` (metric_name="os.unix.nmon.storage.diskread" OR metric_name="os.unix.nmon.storage.diskwrite" OR metric_name="os.unix.nmon.storage.diskbsize") $host$ by metric_name, dimension_device span=1m
| eval disk_read=case(match(metric_name, "diskread"), value), disk_write=case(match(metric_name, "diskwrite"), value), disk_size=case(match(metric_name, "diskbsize"), value)
| stats values(disk_read) as disk_read values(disk_write) as disk_write values(disk_size) as disk_size by _time, dimension_device
| eval disk_read_iops=(disk_read/disk_size), disk_write_iops=(disk_write/disk_size)
| stats sum(disk_read_iops) as disk_read_iops, sum(disk_write_iops) as disk_write_iops by _time, dimension_device
| timechart $span$ useother=f limit=0 avg(disk_read_iops) as disk_read_iops, avg(disk_write_iops) as disk_write_iops by dimension_device
                        ]]>
                    </link>
                </drilldown>
            </chart>

        </panel>
    </row>

    <row depends="$start_dg_stats_search$">
        <panel>

            <input type="link" token="disk_dg_linkinput">
                <label></label>
                <choice value="disk_dg_chart1">DG, I/O Operations per second (DGXFER/DGREAD-DGWRITE by DGSIZE)</choice>
                <choice value="disk_dg_chart2">DG, % time busy (DGBUSY)</choice>
                <choice value="disk_dg_chart3">DG, read/write KB (DGREAD/DGWRITE)</choice>
                <choice value="disk_dg_chart4">DG, block size KB (DGSIZE)</choice>
                <choice value="disk_dg_chart5">DG, read/write service time ms (DGREADSERV/DGWRITESERV)</choice>
                <choice value="disk_dg_chart6">DG, read/write per sec (DGREADS/DGWRITES)</choice>
                <choice value="disk_dg_chart7">DG, merge read/write per sec (DGREADMERGE/DGWRITEMERGE)</choice>
                <choice value="disk_dg_chart8">DG, time spent (ms) for I/O (DGIOTIME)</choice>
                <choice value="disk_dg_chart9">DG, back log time (ms) (DGBACKLOG)</choice>
                <choice value="disk_dg_chart10">DG, In flight I/O (DGINFLIGHT)</choice>
                <default>disk_dg_chart1</default>
                <change>
                    <condition value="disk_dg_chart1">
                        <set token="disk_dg_chart1">true</set>
                        <unset token="disk_dg_chart2"></unset>
                        <unset token="disk_dg_chart3"></unset>
                        <unset token="disk_dg_chart4"></unset>
                        <unset token="disk_dg_chart5"></unset>
                        <unset token="disk_dg_chart6"></unset>
                        <unset token="disk_dg_chart7"></unset>
                        <unset token="disk_dg_chart8"></unset>
                        <unset token="disk_dg_chart9"></unset>
                        <unset token="disk_dg_chart10"></unset>
                    </condition>
                    <condition value="disk_dg_chart2">
                        <set token="disk_dg_chart2">true</set>
                        <unset token="disk_dg_chart1"></unset>
                        <unset token="disk_dg_chart3"></unset>
                        <unset token="disk_dg_chart4"></unset>
                        <unset token="disk_dg_chart5"></unset>
                        <unset token="disk_dg_chart6"></unset>
                        <unset token="disk_dg_chart7"></unset>
                        <unset token="disk_dg_chart8"></unset>
                        <unset token="disk_dg_chart9"></unset>
                        <unset token="disk_dg_chart10"></unset>
                    </condition>
                    <condition value="disk_dg_chart3">
                        <set token="disk_dg_chart3">true</set>
                        <unset token="disk_dg_chart1"></unset>
                        <unset token="disk_dg_chart2"></unset>
                        <unset token="disk_dg_chart4"></unset>
                        <unset token="disk_dg_chart5"></unset>
                        <unset token="disk_dg_chart6"></unset>
                        <unset token="disk_dg_chart7"></unset>
                        <unset token="disk_dg_chart8"></unset>
                        <unset token="disk_dg_chart9"></unset>
                        <unset token="disk_dg_chart10"></unset>
                    </condition>
                    <condition value="disk_dg_chart4">
                        <set token="disk_dg_chart4">true</set>
                        <unset token="disk_dg_chart1"></unset>
                        <unset token="disk_dg_chart2"></unset>
                        <unset token="disk_dg_chart3"></unset>
                        <unset token="disk_dg_chart5"></unset>
                        <unset token="disk_dg_chart6"></unset>
                        <unset token="disk_dg_chart7"></unset>
                        <unset token="disk_dg_chart8"></unset>
                        <unset token="disk_dg_chart9"></unset>
                        <unset token="disk_dg_chart10"></unset>
                    </condition>
                    <condition value="disk_dg_chart5">
                        <set token="disk_dg_chart5">true</set>
                        <unset token="disk_dg_chart1"></unset>
                        <unset token="disk_dg_chart2"></unset>
                        <unset token="disk_dg_chart3"></unset>
                        <unset token="disk_dg_chart4"></unset>
                        <unset token="disk_dg_chart6"></unset>
                        <unset token="disk_dg_chart7"></unset>
                        <unset token="disk_dg_chart8"></unset>
                        <unset token="disk_dg_chart9"></unset>
                        <unset token="disk_dg_chart10"></unset>
                    </condition>
                    <condition value="disk_dg_chart6">
                        <set token="disk_dg_chart6">true</set>
                        <unset token="disk_dg_chart1"></unset>
                        <unset token="disk_dg_chart2"></unset>
                        <unset token="disk_dg_chart3"></unset>
                        <unset token="disk_dg_chart4"></unset>
                        <unset token="disk_dg_chart5"></unset>
                        <unset token="disk_dg_chart7"></unset>
                        <unset token="disk_dg_chart8"></unset>
                        <unset token="disk_dg_chart9"></unset>
                        <unset token="disk_dg_chart10"></unset>
                    </condition>
                    <condition value="disk_dg_chart7">
                        <set token="disk_dg_chart7">true</set>
                        <unset token="disk_dg_chart1"></unset>
                        <unset token="disk_dg_chart2"></unset>
                        <unset token="disk_dg_chart3"></unset>
                        <unset token="disk_dg_chart4"></unset>
                        <unset token="disk_dg_chart5"></unset>
                        <unset token="disk_dg_chart6"></unset>
                        <unset token="disk_dg_chart8"></unset>
                        <unset token="disk_dg_chart9"></unset>
                        <unset token="disk_dg_chart10"></unset>
                    </condition>
                    <condition value="disk_dg_chart8">
                        <set token="disk_dg_chart8">true</set>
                        <unset token="disk_dg_chart1"></unset>
                        <unset token="disk_dg_chart2"></unset>
                        <unset token="disk_dg_chart3"></unset>
                        <unset token="disk_dg_chart4"></unset>
                        <unset token="disk_dg_chart5"></unset>
                        <unset token="disk_dg_chart6"></unset>
                        <unset token="disk_dg_chart7"></unset>
                        <unset token="disk_dg_chart9"></unset>
                        <unset token="disk_dg_chart10"></unset>
                    </condition>
                    <condition value="disk_dg_chart9">
                        <set token="disk_dg_chart9">true</set>
                        <unset token="disk_dg_chart1"></unset>
                        <unset token="disk_dg_chart2"></unset>
                        <unset token="disk_dg_chart3"></unset>
                        <unset token="disk_dg_chart4"></unset>
                        <unset token="disk_dg_chart5"></unset>
                        <unset token="disk_dg_chart6"></unset>
                        <unset token="disk_dg_chart7"></unset>
                        <unset token="disk_dg_chart8"></unset>
                        <unset token="disk_dg_chart10"></unset>
                    </condition>
                    <condition value="disk_dg_chart10">
                        <set token="disk_dg_chart10">true</set>
                        <unset token="disk_dg_chart1"></unset>
                        <unset token="disk_dg_chart2"></unset>
                        <unset token="disk_dg_chart3"></unset>
                        <unset token="disk_dg_chart4"></unset>
                        <unset token="disk_dg_chart5"></unset>
                        <unset token="disk_dg_chart6"></unset>
                        <unset token="disk_dg_chart7"></unset>
                        <unset token="disk_dg_chart8"></unset>
                        <unset token="disk_dg_chart9"></unset>
                    </condition>
                </change>
            </input>

            <chart depends="$disk_dg_chart1$">
                <title></title>
                <search depends="$disk_dg_chart1$ $start_dg_stats_search$">
                    <query>| mstats avg(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.storage.dg*" $host$ by metric_name, dimension_device span=1m
| `extract_metrics("dgxfer dgread dgwrite dgsize")`
| stats max(dgxfer) as disk_total_iops max(dgread) as disk_read_KB_per_sec max(dgwrite) as disk_write_KB_per_sec max(dgsize) as disk_block_size_KB by _time, dimension_device
| eval disk_read_iops=(disk_read_KB_per_sec/disk_block_size_KB), disk_write_iops=(disk_write_KB_per_sec/disk_block_size_KB)
| stats sum(disk_*) as "disk_*" by _time
| timechart $span$ avg(disk_total_iops) as disk_total_iops, avg(disk_read_iops) as disk_read_iops avg(disk_write_iops) as disk_write_iops</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisTitleY.text">Transfers/s (IOPS)</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                        search?earliest=$earliest$&latest=$latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.storage.dg*" $host$ by metric_name, dimension_device span=1m
| `extract_metrics("dgxfer dgread dgwrite dgsize")`
| stats max(dgxfer) as disk_total_iops max(dgread) as disk_read_KB_per_sec max(dgwrite) as disk_write_KB_per_sec max(dgsize) as disk_block_size_KB by _time, dimension_device
| eval disk_read_iops=(disk_read_KB_per_sec/disk_block_size_KB), disk_write_iops=(disk_write_KB_per_sec/disk_block_size_KB)
| stats sum(disk_*) as "disk_*" by _time, dimension_device
| timechart $span$ limit=0 useother=f  avg(disk_total_iops) as disk_total_iops, avg(disk_read_iops) as disk_read_iops avg(disk_write_iops) as disk_write_iops by dimension_device
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$disk_dg_chart2$">
                <title></title>
                <search depends="$disk_dg_chart2$ $start_dg_stats_search$">
                    <query>| mstats avg(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.storage.dgbusy" $host$ by host, dimension_device span=1m
| timechart $span$ avg(value) as disk_busy_time_pct</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisTitleY.text">Pct busy (%)</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                        search?earliest=$timerange.earliest$&latest=$timerange.latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.storage.dgbusy" $host$ by host, dimension_device span=1m
| timechart $span$ avg(value) as disk_busy_time_pct by dimension_device
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$disk_dg_chart3$">
                <title></title>
                <search depends="$disk_dg_chart3$ $start_dg_stats_search$">
                    <query>| mstats avg(_value) as value where `nmon_metrics_index` (metric_name="os.unix.nmon.storage.dgread" OR metric_name="os.unix.nmon.storage.dgwrite") $host$ by host, metric_name, dimension_device span=1m
| `extract_metrics("dgread dgwrite")`
| stats values(dgread) as disk_read_KB_per_sec, values(dgwrite) as disk_write_KB_per_sec by _time, host, dimension_device
| timechart $span$ avg(disk_read_KB_per_sec) as disk_read_KB_per_sec, avg(disk_write_KB_per_sec) as disk_write_KB_per_sec</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisTitleY.text">KB/s</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                            search?earliest=$timerange.earliest$&latest=$timerange.latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` (metric_name="os.unix.nmon.storage.dgread" OR metric_name="os.unix.nmon.storage.dgwrite") $host$ by host, metric_name, dimension_device span=1m
| `extract_metrics("dgread dgwrite")`
| stats values(dgread) as disk_read_KB_per_sec, values(dgwrite) as disk_write_KB_per_sec by _time, host, dimension_device
| timechart $span$ limit=0 useother=f avg(disk_read_KB_per_sec) as disk_read_KB_per_sec, avg(disk_write_KB_per_sec) as disk_write_KB_per_sec by dimension_device
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$disk_dg_chart4$">
                <title></title>
                <search depends="$disk_dg_chart4$ $start_dg_stats_search$">
                    <query>| mstats avg(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.storage.dgsize" $host$ by host, dimension_device span=1m
| timechart $span$ avg(value) as disk_block_size_KB</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisTitleY.text">Kilobytes (KB)</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                            search?earliest=$timerange.earliest$&latest=$timerange.latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.storage.dgsize" $host$ by host, dimension_device span=1m
| timechart $span$ avg(value) as disk_block_size_KB by dimension_device
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$disk_dg_chart5$">
                <title></title>
                <search depends="$disk_dg_chart5$ $start_dg_stats_search$">
                    <query>| mstats avg(_value) as value where `nmon_metrics_index` (metric_name="os.unix.nmon.storage.dgreadserv" OR metric_name="os.unix.nmon.storage.dgwriteserv") $host$ by host, metric_name, dimension_device span=1m
| `extract_metrics("dgreadserv dgwriteserv")`
| stats values(dgreadserv) as disk_read_service_time_ms, values(dgwriteserv) as disk_write_service_time_ms by _time, host, dimension_device
| timechart $span$ avg(disk_read_service_time_ms) as disk_read_service_time_ms, avg(disk_write_service_time_ms) as disk_write_service_time_ms</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisTitleY.text">Milliseconds (ms)</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                            search?earliest=$timerange.earliest$&latest=$timerange.latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` (metric_name="os.unix.nmon.storage.dgreadserv" OR metric_name="os.unix.nmon.storage.dgwriteserv") $host$ by host, metric_name, dimension_device span=1m
| `extract_metrics("dgreadserv dgwriteserv")`
| stats values(dgreadserv) as disk_read_service_time_ms, values(dgwriteserv) as disk_write_service_time_ms by _time, host, dimension_device
| timechart $span$ limit=0 useother=f avg(disk_read_service_time_ms) as disk_read_service_time_ms, avg(disk_write_service_time_ms) as disk_write_service_time_ms by dimension_device
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$disk_dg_chart6$">
                <title></title>
                <search depends="$disk_dg_chart6$ $start_dg_stats_search$">
                    <query>| mstats avg(_value) as value where `nmon_metrics_index` (metric_name="os.unix.nmon.storage.dgreads" OR metric_name="os.unix.nmon.storage.dgwrites") $host$ by host, metric_name, dimension_device span=1m
| `extract_metrics("dgreads dgwrites")`
| timechart $span$ avg(dgreads) as disk_read_sec, avg(dgwrites) as disk_write_sec</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisTitleY.text">read/write per sec</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                            search?earliest=$timerange.earliest$&latest=$timerange.latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` (metric_name="os.unix.nmon.storage.dgreads" OR metric_name="os.unix.nmon.storage.dgwrites") $host$ by host, metric_name, dimension_device span=1m
| `extract_metrics("dgreads dgwrites")`
| timechart $span$ limit=0 useother=f avg(dgreads) as disk_read_sec, avg(dgwrites) as disk_write_sec by dimension_device
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$disk_dg_chart7$">
                <title></title>
                <search depends="$disk_dg_chart7$ $start_dg_stats_search$">
                    <query>| mstats avg(_value) as value where `nmon_metrics_index` (metric_name="os.unix.nmon.storage.dgreadmerge" OR metric_name="os.unix.nmon.storage.dgwritemerge") $host$ by host, metric_name, dimension_device span=1m
| `extract_metrics("dgreadmerge dgwritemerge")`
| timechart $span$ avg(dgreadmerge) as disk_merge_read_sec, avg(dgwritemerge) as disk_merge_write_sec</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisTitleY.text">read/write per sec</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                            search?earliest=$timerange.earliest$&latest=$timerange.latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` (metric_name="os.unix.nmon.storage.dgreadmerge" OR metric_name="os.unix.nmon.storage.dgwritemerge") $host$ by host, metric_name, dimension_device span=1m
| `extract_metrics("dgreadmerge dgwritemerge")`
| timechart $span$ limit=0 useother=f avg(dgreadmerge) as disk_merge_read_sec, avg(dgwritemerge) as disk_merge_write_sec by dimension_device
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$disk_dg_chart8$">
                <title></title>
                <search depends="$disk_dg_chart8$ $start_dg_stats_search$">
                    <query>| mstats avg(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.storage.dgiotime" $host$ by host, metric_name, dimension_device span=1m
| timechart $span$ avg(value) as disk_time_spent_for_io_ms</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisTitleY.text">Milliseconds (ms)</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                            search?earliest=$timerange.earliest$&latest=$timerange.latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.storage.dgiotime" $host$ by host, metric_name, dimension_device span=1m
| timechart $span$ avg(value) as disk_time_spent_for_io_ms by dimension_device
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$disk_dg_chart9$">
                <title></title>
                <search depends="$disk_dg_chart9$ $start_dg_stats_search$">
                    <query>| mstats avg(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.storage.dgbacklog" $host$ by host, metric_name, dimension_device span=1m
| timechart $span$ avg(value) as disk_backlog_time_ms</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisTitleY.text">Milliseconds (ms)</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                            search?earliest=$timerange.earliest$&latest=$timerange.latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.storage.dgbacklog" $host$ by host, metric_name, dimension_device span=1m
| timechart $span$ avg(value) as disk_backlog_time_ms by dimension_device
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$disk_dg_chart10$">
                <title></title>
                <search depends="$disk_dg_chart10$ $start_dg_stats_search$">
                    <query>| mstats avg(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.storage.dginflight" $host$ by host, metric_name, dimension_device span=1m
| timechart $span$ avg(value) as disk_in_flight_io</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisTitleY.text">Tranfers/sec (IOPS)</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                            search?earliest=$timerange.earliest$&latest=$timerange.latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.storage.dginflight" $host$ by host, metric_name, dimension_device span=1m
| timechart $span$ avg(value) as disk_in_flight_io by dimension_device
                        ]]>
                    </link>
                </drilldown>
            </chart>

        </panel>
    </row>

    <row>
        <panel id="disk2">
            <title>File-systems utilization statistics</title>
        </panel>
    </row>

    <row>
        <panel>

            <input type="link" token="jfs_linkinput">
                <label></label>
                <choice value="jfs_chart1">Summary of file-systems utilization</choice>
                <choice value="jfs_chart2">File-systems utilization over time</choice>
                <choice value="jfs_chart3">File-systems inodes utilization over time</choice>
                <default>jfs_chart1</default>
                <change>
                    <condition value="jfs_chart1">
                        <set token="jfs_chart1">true</set>
                        <unset token="jfs_chart2"></unset>
                        <unset token="jfs_chart3"></unset>
                    </condition>
                    <condition value="jfs_chart2">
                        <set token="jfs_chart2">true</set>
                        <unset token="jfs_chart1"></unset>
                        <unset token="jfs_chart3"></unset>
                    </condition>
                    <condition value="jfs_chart3">
                        <set token="jfs_chart3">true</set>
                        <unset token="jfs_chart1"></unset>
                        <unset token="jfs_chart2"></unset>
                    </condition>
                </change>
            </input>

            <!--

            ### file systems SUMMARY ###

            file systems utilisation, either DF_STORAGE (default) or JFSFILE
            -->

            <!-- DF_STORAGE -->

            <table id="tablebar" depends="$start_df_storage_search$ $jfs_chart1$">
                <title>Data source: $storage_usage_datasource$</title>
                <search depends="$start_df_storage_search$">
                    <query>| mstats latest(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.storage.df_storage.*" $host$ by host, metric_name, dimension_mount
| eval Available=case(metric_name=="os.unix.nmon.storage.df_storage.Available", value), Use_pct=case(metric_name=="os.unix.nmon.storage.df_storage.Use_pct", value), Used=case(metric_name=="os.unix.nmon.storage.df_storage.Used", value), blocks=case(metric_name=="os.unix.nmon.storage.df_storage.blocks", value)
| stats first(Available) as Available, first(Use_pct) as Use_pct, first(Used) as Used, first(blocks) as blocks by host, dimension_mount
| rename dimension_mount as mount
| eval storage_free=blocks-Used, storage_free_percent=(100-Use_pct)
| rename Use_pct as storage_used_percent, blocks as storage, Used as storage_used, Available as storage_free
| foreach storage, storage_free, storage_used [ eval &lt;&lt;FIELD&gt;&gt; = round('&lt;&lt;FIELD&gt;&gt;'/1024/1024, 2) ]
| foreach storage*percent [ eval &lt;&lt;FIELD&gt;&gt; = round('&lt;&lt;FIELD&gt;&gt;', 2) ]
| rename storage as "storage (GB)", storage_free as "storage free (GB)", storage_used as "storage used (GB)", storage_free_percent as "storage free (%)", storage_used_percent as "storage used (%)"
| eval UsedPct=if(isnum('storage used (%)'), 'storage used (%)', 0 )
| fields mount, "storage (GB)", "storage free (GB)", "storage used (GB)", "storage free (%)", "storage used (%)", UsedPct
| appendpipe [ stats sum("storage (GB)") as "storage (GB)", sum("storage free (GB)") as "storage free (GB)", sum("storage used (GB)") as "storage used (GB)" ]
| eval "storage free (%)" = if(isnull('storage free (%)'), (('storage free (GB)'/'storage (GB)')*100), 'storage free (%)'), "storage used (%)" = if(isnull('storage used (%)'), (('storage used (GB)'/'storage (GB)')*100), 'storage used (%)'), UsedPct = if(isnull(UsedPct), 'storage used (%)', UsedPct)
| fillnull value="*** TOTAL GB / AVERAGE % ****" mount
| foreach storage*%* UsedPct [ eval &lt;&lt;FIELD&gt;&gt; = round('&lt;&lt;FIELD&gt;&gt;', 2) ]</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                    <refresh>$refresh$</refresh>
                    <refreshType>delay</refreshType>
                </search>
                <option name="wrap">true</option>
                <option name="rowNumbers">false</option>
                <option name="dataOverlayMode">none</option>
                <option name="drilldown">row</option>
                <option name="count">10</option>
                <option name="refresh.display">none</option>
            </table>

            <!-- JFSFILE -->

            <table depends="$start_jfs_storage_search$ $jfs_chart1$">
                <title>Data source: $storage_usage_datasource$</title>
                <search depends="$start_jfs_storage_search$">
                    <query>| mstats avg(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.storage.jfsfile" $host$ by host, dimension_mount span=1m
| stats max(value) AS max_value, avg(value) AS avg_value, min(value) AS min_value, latest(value) AS UsedPct by dimension_mount
| sort limit=0 dimension_mount | rename dimension_mount AS "Mount point"
| eval value=round(value,2)
| fields "Mount point",max_value, avg_value, min_value, UsedPct | eval avg_value=round(avg_value,2)
| rename max_value AS "Max value in period (%)", avg_value AS "Average value in period (%)", min_value AS "Min value in Period (%)"</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                    <refresh>$refresh$</refresh>
                    <refreshType>delay</refreshType>
                </search>
                <option name="wrap">true</option>
                <option name="rowNumbers">false</option>
                <option name="dataOverlayMode">none</option>
                <option name="drilldown">row</option>
                <option name="count">10</option>
                <option name="refresh.display">none</option>
            </table>

            <!--

            ### file systems utilisation over time ###

            file systems utilisation, either DF_STORAGE (default) or JFSFILE
            -->

            <!-- DF_STORAGE -->

            <input type="text" token="df_storage_mount" depends="$start_df_storage_search$ $jfs_chart2$">
              <label>mount</label>
              <default>*</default>
            </input>

            <input type="dropdown" token="df_storage_monitor" depends="$start_df_storage_search$ $jfs_chart2$">
                <label>Monitor:</label>
                <choice value="storage">storage (volume size)</choice>
                <choice value="storage_free">storage_free (volume free)</choice>
                <choice value="storage_used">storage_used (volume used)</choice>
                <choice value="storage_free_percent">storage_free_percent (%)</choice>
                <choice value="storage_used_percent">storage_used_percent (%)</choice>
                <default>storage_used_percent</default>
                <change>
                    <condition value="storage">
                        <unset token="form.df_storage_monitor_unit"></unset>
                        <set token="df_storage_show_unit">true</set>
                        <unset token="df_storage_monitor_max_chart"></unset>
                    </condition>
                    <condition value="storage_free">
                        <unset token="form.df_storage_monitor_unit"></unset>
                        <set token="df_storage_show_unit">true</set>
                        <unset token="df_storage_monitor_max_chart"></unset>
                    </condition>
                    <condition value="storage_used">
                        <unset token="form.df_storage_monitor_unit"></unset>
                        <set token="df_storage_show_unit">true</set>
                        <unset token="df_storage_monitor_max_chart"></unset>
                    </condition>
                    <condition value="storage_free_percent">
                        <set token="df_storage_unit">%</set>
                        <unset token="df_storage_show_unit"></unset>
                        <set token="df_storage_monitor_max_chart">101</set>
                    </condition>
                    <condition value="storage_used_percent">
                        <set token="form.df_storage_monitor_unit">pct</set>
                        <set token="df_storage_monitor_max_chart">101</set>
                        <unset token="df_storage_show_unit"></unset>
                    </condition>
                </change>
            </input>

            <input type="dropdown" token="df_storage_monitor_unit" depends="$start_df_storage_search$ $df_storage_show_unit$ $jfs_chart2$">
                <label>Unit:</label>
                <choice value="MB">MB</choice>
                <choice value="GB">GB</choice>
                <choice value="TB">TB</choice>
                <default>GB</default>
                <change>
                    <condition value="MB">
                        <set token="df_storage_unit_math">value</set>
                        <set token="df_storage_unit_legend">MB</set>
                    </condition>
                    <condition value="GB">
                        <set token="df_storage_unit_math">value/1024</set>
                        <set token="df_storage_unit_legend">GB</set>
                    </condition>
                    <condition value="TB">
                        <set token="df_storage_unit_math">value/1024/1204</set>
                        <set token="df_storage_unit_legend">TB</set>
                    </condition>
                    <condition value="pct">
                        <set token="df_storage_unit_math">value</set>
                        <set token="df_storage_unit_legend">pct</set>
                    </condition>
                </change>
            </input>

            <chart depends="$start_df_storage_search$ $jfs_chart2$">
                <title>Data source: $storage_usage_datasource$</title>
                <search depends="$start_df_storage_search$ $jfs_chart2$">
                    <query>| mstats avg(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.storage.df_storage.*" $host$ dimension_mount="$df_storage_mount$" by host, metric_name, dimension_mount span=1m
| eval Available=case(metric_name=="os.unix.nmon.storage.df_storage.Available", value), Use_pct=case(metric_name=="os.unix.nmon.storage.df_storage.Use_pct", value), Used=case(metric_name=="os.unix.nmon.storage.df_storage.Used", value), blocks=case(metric_name=="os.unix.nmon.storage.df_storage.blocks", value)
| eval storage_free=blocks-Used, storage_free_percent=(100-Use_pct)
| rename Use_pct as storage_used_percent, blocks as storage, Used as storage_used, Available as storage_free
| foreach storage, storage_free, storage_used [ eval &lt;&lt;FIELD&gt;&gt; = round('&lt;&lt;FIELD&gt;&gt;'/1024, 2) ]
| stats latest(storage*) as "storage*" by _time, dimension_mount, host
| eval value=$df_storage_monitor$
| eval value=$df_storage_unit_math$
| timechart $span$ latest(value) as $df_storage_monitor$ by dimension_mount</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                    <refresh>$refresh$</refresh>
                    <refreshType>delay</refreshType>
                </search>
                <option name="charting.axisLabelsX.majorLabelStyle.overflowMode">ellipsisNone</option>
                <option name="charting.axisLabelsX.majorLabelStyle.rotation">0</option>
                <option name="charting.axisTitleX.visibility">collapsed</option>
                <option name="charting.axisTitleY.text">$df_storage_unit_legend$</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisTitleY2.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.axisY2.enabled">0</option>
                <option name="charting.axisY2.scale">inherit</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.showDataLabels">none</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">none</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.layout.splitSeries.allowIndependentYRanges">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <option name="charting.axisY.maximumNumber">$df_storage_monitor_max_chart$</option>
            </chart>

            <!-- JFSFILE -->

            <input type="text" token="fsfilter" searchWhenChanged="true" depends="$start_jfs_storage_search$ $jfs_chart2$">
                <label>mount:</label>
                <default>*</default>
            </input>

            <chart depends="$start_jfs_storage_search$ $jfs_chart2$">
                <title>Data source: $storage_usage_datasource$</title>
                <search depends="$start_jfs_storage_search$ $jfs_chart2$">
                    <query>| mstats avg(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.storage.jfsfile" $host$ dimension_mount="$fsfilter$" by host, dimension_mount span=1m
| timechart $span$ limit=0 useother=f latest(value) As value by dimension_mount</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                    <refresh>$refresh$</refresh>
                    <refreshType>delay</refreshType>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">connect</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">$charting.legend.placement$</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisTitleY.text">% Used</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <option name="charting.axisY.maximumNumber">100</option>
                <option name="refresh.display">none</option>
            </chart>

            <!--

            ### file systems inodes utilisation over time ###

            file systems inodes utilisation, either DF_INODES (default) or JFSINODE
            -->

            <!-- DF_INODES -->

            <input type="text" token="df_storage_mount" depends="$start_df_storage_search$ $jfs_chart3$">
              <label>mount</label>
              <default>*</default>
            </input>

            <input type="dropdown" token="chart_df_inodes_monitor" depends="$start_df_storage_search$ $jfs_chart3$">
                <label>Monitor:</label>
                <choice value="storage_used_inodes">storage_used_inodes</choice>
                <choice value="storage_free_inodes_percent">storage_free_inodes_percent (%)</choice>
                <choice value="storage_used_inodes_percent">storage_used_inodes_percent (%)</choice>
                <default>storage_used_inodes_percent</default>
                <change>
                    <condition value="storage_used_inodes">
                        <set token="chart_df_inodes_unit_legend">nb inodes</set>
                    </condition>
                    <condition value="storage_free_inodes_percent">
                        <set token="chart_df_inodes_unit_legend">pct</set>
                    </condition>
                    <condition value="storage_used_inodes_percent">
                        <set token="chart_df_inodes_unit_legend">pct</set>
                    </condition>
                </change>
            </input>

            <chart depends="$start_df_storage_search$ $jfs_chart3$">
                <title>Data source: $storage_inodes_usage_datasource$</title>
                <search depends="$start_df_storage_search$ $jfs_chart3$">
                    <query>| mstats avg(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.storage.df_inodes.*" $host$ by host, metric_name, dimension_mount span=1m
| eval IUse_pct=case(metric_name=="os.unix.nmon.storage.df_inodes.IUse_pct", value), IUsed=case(metric_name=="os.unix.nmon.storage.df_inodes.IUsed", value)
| stats values(IUse_pct) as IUse_pct, values(IUsed) as IUsed by _time, dimension_mount
| eval IFree_pct=(100-IUse_pct)
| rename IUse_pct as storage_used_inodes_percent, IFree_pct as storage_free_inodes_percent, values(IUsed) as storage_used_inodes
| timechart $span$ latest($chart_df_inodes_monitor$) as $chart_df_inodes_monitor$ by dimension_mount</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                    <refresh>$refresh$</refresh>
                    <refreshType>delay</refreshType>
                </search>
                <option name="charting.axisLabelsX.majorLabelStyle.overflowMode">ellipsisNone</option>
                <option name="charting.axisLabelsX.majorLabelStyle.rotation">0</option>
                <option name="charting.axisTitleX.visibility">collapsed</option>
                <option name="charting.axisTitleY.text">$chart_df_inodes_unit_legend$</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisTitleY2.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.axisY2.enabled">0</option>
                <option name="charting.axisY2.scale">inherit</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.showDataLabels">none</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">none</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.layout.splitSeries.allowIndependentYRanges">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <option name="charting.axisY.maximumNumber">$chart_df_inodes_monitor_max_chart$</option>
            </chart>

            <!-- JFSINODE -->

            <html depends="$start_jfs_storage_search$ $jfs_chart3$">
                <p style="color:blue;margin-left:30px;font-size:14px">On Linux systems, the inodes statistics are only available within the DF_INODES external collection.</p>
            </html>

        </panel>
    </row>

    <row>
        <panel id="network">
            <title>NETWORK Usage Statistics</title>
        </panel>
    </row>

    <row>
        <panel>

            <input type="link" token="net_linkinput">
                <label></label>
                <choice value="net_chart1">NET - Inbound/Outbound traffic</choice>
                <choice value="net_chart2">NETPACKET - Inbound/Outbound packets</choice>
                <default>net_chart1</default>
                <change>
                    <condition value="net_chart1">
                        <set token="net_chart1">true</set>
                        <unset token="net_chart2"></unset>
                    </condition>
                    <condition value="net_chart2">
                        <set token="net_chart2">true</set>
                        <unset token="net_chart1"></unset>
                    </condition>
                </change>
            </input>

            <chart depends="$net_chart1$">
                <title></title>
                <search>
                    <query>| mstats avg(_value) as value where `nmon_metrics_index` metric_name=os.unix.nmon.network.net $host$ (dimension_device!="*lo*") by dimension_device span=1m
| timechart $span$ useother=f limit=0 avg(value) as value by dimension_device</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisTitleY.text">Outbound KBps / Inbound KBps</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                        search?earliest=$earliest$&latest=$latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` metric_name=os.unix.nmon.network.net $host$ (dimension_device!="*lo*") by dimension_device span=1m
| timechart $span$ useother=f limit=0 avg(value) as value by dimension_device
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$net_chart2$">
                <title></title>
                <search>
                    <query>| mstats avg(_value) as value where `nmon_metrics_index` metric_name=os.unix.nmon.network.netpacket $host$ (dimension_device!="*lo*") by dimension_device span=1m
| timechart $span$ useother=f limit=0 avg(value) as value by dimension_device</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisTitleY.text">Outbound / Inbound packets</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                            search?earliest=$timerange.earliest$&latest=$timerange.latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` metric_name=os.unix.nmon.network.netpacket $host$ (dimension_device!="*lo*") by dimension_device span=1m
| timechart $span$ useother=f limit=0 avg(value) as value by dimension_device&display.general.type=visualizations&display.page.search.tab=visualizations&display.visualizations.charting.chart=line
                        ]]>
                    </link>
                </drilldown>
            </chart>

        </panel>
    </row>

    <!--
    NFS server / client: only show the panels if we have data
    -->

    <!-- NFS v2 data availability -->

    <search>
        <query>| mcatalog values(metric_name) where `nmon_metrics_index` metric_name="os.unix.nmon.network.nfs*v2.*" $host$ | stats count | where count&gt;0</query>
        <earliest>$timerange.earliest$</earliest>
        <latest>$timerange.latest$</latest>
        <progress>
            <condition match="$job.resultCount$ == 0">
                    <unset token="start_nfsv2_searches"></unset>
            </condition>
            <condition>
                    <set token="start_nfsv2_searches">true</set>
            </condition>
        </progress>
    </search>

    <!-- NFS v3 data availability -->

    <search>
        <query>| mcatalog values(metric_name) where `nmon_metrics_index` metric_name="os.unix.nmon.network.nfs*v3.*" $host$ | stats count | where count&gt;0</query>
        <earliest>$timerange.earliest$</earliest>
        <latest>$timerange.latest$</latest>
        <progress>
            <condition match="$job.resultCount$ == 0">
                    <unset token="start_nfsv3_searches"></unset>
            </condition>
            <condition>
                    <set token="start_nfsv3_searches">true</set>
            </condition>
        </progress>
    </search>

    <!-- NFS v4 data availability -->

    <search>
        <query>| mcatalog values(metric_name) where `nmon_metrics_index` metric_name="os.unix.nmon.network.nfs*v4.*" $host$ | stats count | where count&gt;0</query>
        <earliest>$timerange.earliest$</earliest>
        <latest>$timerange.latest$</latest>
        <progress>
            <condition match="$job.resultCount$ == 0">
                    <unset token="start_nfsv4_searches"></unset>
            </condition>
            <condition>
                    <set token="start_nfsv4_searches">true</set>
            </condition>
        </progress>
    </search>

    <!-- NFS v2 -->

    <row depends="$start_nfsv2_searches$">
        <panel>

            <input type="link" token="nfsv2_linkinput">
                <label></label>
                <choice value="nfssvrv2">NFS Server v2</choice>
                <choice value="nfscliv2">NFS Client v2</choice>
                <default>nfssvrv2</default>
                <change>
                    <condition value="nfssvrv2">
                        <set token="show_nfssvrv2">true</set>
                        <unset token="show_nfscliv2"></unset>
                    </condition>
                    <condition value="nfscliv2">
                        <set token="show_nfscliv2">true</set>
                        <unset token="show_nfssvrv2"></unset>
                    </condition>
                </change>
            </input>

            <chart depends="$show_nfssvrv2$">
                <title></title>
                <search depends="$start_nfsv2_searches$ $show_nfssvrv2$">
                    <query>| mstats avg(_value) as value where `nmon_metrics_index` metric_name=os.unix.nmon.network.nfssvrv2.* $host$ by metric_name span=1m
| `extract_metrics`
| fields _time, metric, value
| timechart $span$ limit=0 useother=f avg(value) by metric</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <option name="charting.axisTitleY.text">Nbr of Operations</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                        search?earliest=$earliest$&latest=$latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` metric_name=os.unix.nmon.network.nfssvrv2.* $host$ by metric_name span=1m
| `extract_metrics`
| fields _time, metric, value
| timechart $span$ limit=0 useother=f avg(value) by metric
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$show_nfscliv2$">
                <title></title>
                <search depends="$start_nfsv2_searches$ $show_nfscliv2$">
                    <query>| mstats avg(_value) as value where `nmon_metrics_index` metric_name=os.unix.nmon.network.nfscliv2.* $host$ by metric_name span=1m
| `extract_metrics`
| fields _time, metric, value
| timechart $span$ limit=0 useother=f avg(value) by metric</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <option name="charting.axisTitleY.text">Nbr of Operations</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                        search?earliest=$earliest$&latest=$latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` metric_name=os.unix.nmon.network.nfscliv2.* $host$ by metric_name span=1m
| `extract_metrics`
| fields _time, metric, value
| timechart $span$ limit=0 useother=f avg(value) by metric
                        ]]>
                    </link>
                </drilldown>
            </chart>

        </panel>
    </row>

    <!-- NFS v3 -->

    <row depends="$start_nfsv3_searches$">
        <panel>

            <input type="link" token="nfsv3_linkinput">
                <label></label>
                <choice value="nfssvrv3">NFS Server v3</choice>
                <choice value="nfscliv3">NFS Client v3</choice>
                <default>nfssvrv3</default>
                <change>
                    <condition value="nfssvrv3">
                        <set token="show_nfssvrv3">true</set>
                        <unset token="show_nfscliv3"></unset>
                    </condition>
                    <condition value="nfscliv3">
                        <set token="show_nfscliv3">true</set>
                        <unset token="show_nfssvrv3"></unset>
                    </condition>
                </change>
            </input>

            <chart depends="$show_nfssvrv3$">
                <title></title>
                <search depends="$start_nfsv3_searches$ $show_nfssvrv3$">
                    <query>| mstats avg(_value) as value where `nmon_metrics_index` metric_name=os.unix.nmon.network.nfssvrv3.* $host$ by metric_name span=1m
| `extract_metrics`
| fields _time, metric, value
| timechart $span$ limit=0 useother=f avg(value) by metric</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <option name="charting.axisTitleY.text">Nbr of Operations</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                        search?earliest=$earliest$&latest=$latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` metric_name=os.unix.nmon.network.nfssvrv3.* $host$ by metric_name span=1m
| `extract_metrics`
| fields _time, metric, value
| timechart $span$ limit=0 useother=f avg(value) by metric
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$show_nfscliv3$">
                <title></title>
                <search depends="$start_nfsv3_searches$ $show_nfscliv3$">
                    <query>| mstats avg(_value) as value where `nmon_metrics_index` metric_name=os.unix.nmon.network.nfscliv3.* $host$ by metric_name span=1m
| `extract_metrics`
| fields _time, metric, value
| timechart $span$ limit=0 useother=f avg(value) by metric</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <option name="charting.axisTitleY.text">Nbr of Operations</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                        search?earliest=$earliest$&latest=$latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` metric_name=os.unix.nmon.network.nfscliv3.* $host$ by metric_name span=1m
| `extract_metrics`
| fields _time, metric, value
| timechart $span$ limit=0 useother=f avg(value) by metric
                        ]]>
                    </link>
                </drilldown>
            </chart>

        </panel>
    </row>

    <!-- NFS v4 -->

    <row depends="$start_nfsv4_searches$">
        <panel>

            <input type="link" token="nfsv4_linkinput">
                <label></label>
                <choice value="nfssvrv4">NFS Server v4</choice>
                <choice value="nfscliv4">NFS Client v4</choice>
                <default>nfssvrv4</default>
                <change>
                    <condition value="nfssvrv4">
                        <set token="show_nfssvrv4">true</set>
                        <unset token="show_nfscliv4"></unset>
                    </condition>
                    <condition value="nfscliv4">
                        <set token="show_nfscliv4">true</set>
                        <unset token="show_nfssvrv4"></unset>
                    </condition>
                </change>
            </input>

            <chart depends="$show_nfssvrv4$">
                <title></title>
                <search depends="$start_nfsv4_searches$ $show_nfssvrv4$">
                    <query>| mstats avg(_value) as value where `nmon_metrics_index` metric_name=os.unix.nmon.network.nfssvrv4.* $host$ by metric_name span=1m
| `extract_metrics`
| fields _time, metric, value
| timechart $span$ limit=0 useother=f avg(value) by metric</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <option name="charting.axisTitleY.text">Nbr of Operations</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                        search?earliest=$earliest$&latest=$latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` metric_name=os.unix.nmon.network.nfssvrv4.* $host$ by metric_name span=1m
| `extract_metrics`
| fields _time, metric, value
| timechart $span$ limit=0 useother=f avg(value) by metric
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$show_nfscliv4$">
                <title></title>
                <search depends="$start_nfsv4_searches$ $show_nfscliv4$">
                    <query>| mstats avg(_value) as value where `nmon_metrics_index` metric_name=os.unix.nmon.network.nfscliv4.* $host$ by metric_name span=1m
| `extract_metrics`
| fields _time, metric, value
| timechart $span$ limit=0 useother=f avg(value) by metric</query>
                    <earliest>$timerange.earliest$</earliest>
                    <latest>$timerange.latest$</latest>
                </search>
                <option name="charting.axisTitleX.visibility">visible</option>
                <option name="charting.axisTitleY.visibility">visible</option>
                <option name="charting.axisX.scale">linear</option>
                <option name="charting.axisY.scale">linear</option>
                <option name="charting.chart">line</option>
                <option name="charting.chart.nullValueMode">gaps</option>
                <option name="charting.chart.sliceCollapsingThreshold">0.01</option>
                <option name="charting.chart.stackMode">default</option>
                <option name="charting.chart.style">shiny</option>
                <option name="charting.drilldown">all</option>
                <option name="charting.layout.splitSeries">0</option>
                <option name="charting.legend.labelStyle.overflowMode">ellipsisMiddle</option>
                <option name="charting.legend.placement">bottom</option>
                <option name="height">680</option>
                <option name="charting.axisTitleX.text">Time</option>
                <option name="charting.axisY.minimumNumber">0</option>
                <option name="charting.axisTitleY.text">Nbr of Operations</option>
                <drilldown target="search">
                    <link>
                        <![CDATA[
                        search?earliest=$earliest$&latest=$latest$&q=| mstats avg(_value) as value where `nmon_metrics_index` metric_name=os.unix.nmon.network.nfscliv4.* $host$ by metric_name span=1m
| `extract_metrics`
| fields _time, metric, value
| timechart $span$ limit=0 useother=f avg(value) by metric
                        ]]>
                    </link>
                </drilldown>
            </chart>

        </panel>
    </row>

</form>
