<form script="modal.js" stylesheet="ui_simple.css,panel_decoration.css" isVisible="true" version="1.1" theme="dark">
    <label>UI DG, Disks extended statistics</label>
    <description>User Interface for the disks extended performance monitors</description>

    <fieldset autoRun="false" submitButton="false">

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

        <input type="dropdown" token="timefilter" searchWhenChanged="true">
            <label>Time Filtering:</label>
            <choice value="No_Filter">No Filter (24/24, 7/7)</choice>
            <choice value="Day_BusinessDays_8h-19h">Day Business (08h-19h)</choice>
            <choice value="Day_WeekEnd_8h-19h">Day WE (08h-19h)</choice>
            <choice value="Day_AllDays_8h-19h">Day Week (08h-19h)</choice>
            <choice value="Night_BusinessDays_19h-8h">Night Business (19h-08h)</choice>
            <choice value="Night_WeekEnd_19h-8h">Night WE (19h-08h)</choice>
            <choice value="Night_AllDays_19h-8h">Night All Days (19h-08h)</choice>
            <default>No_Filter</default>
        </input>

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

        <input id="frameID" type="multiselect" token="frameID" searchWhenChanged="true">
            <label>Frame IDs:</label>
            <!-- Populating Data Model Search -->
            <search base="populate">
                <query>stats count by frameID | dedup frameID | sort 0 frameID</query>
            </search>
            <valuePrefix>frameID=</valuePrefix>
            <delimiter> OR </delimiter>
            <choice value="*">Any</choice>
            <initialValue>*</initialValue>
            <fieldForLabel>frameID</fieldForLabel>
            <fieldForValue>frameID</fieldForValue>
        </input>

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

        <input id="host" type="multiselect" token="host" searchWhenChanged="true">
            <label>Hosts Selection:</label>
            <!-- Populating Data Model Search -->
            <search base="populate">
                <query>search $frameID$ host=$host-prefilter$
| stats count by host | dedup host | sort 0 host</query>
            </search>
            <valuePrefix>host="</valuePrefix>
            <valueSuffix>"</valueSuffix>
            <delimiter> OR </delimiter>
            <choice value="*">ALL Hosts</choice>
            <fieldForLabel>host</fieldForLabel>
            <fieldForValue>host</fieldForValue>
            <change>
                <condition>
                    <unset token="form.host_query_input"></unset>
                </condition>
            </change>
        </input>

        <!-- hidden form that handles the advanced definition of hosts selection -->

        <input id="host_query_input" type="dropdown" token="host_query" searchWhenChanged="true" depends="$hidden_form$">
            <label>Hosts Selection:</label>
            <search base="populate">
                <query>search $host$ $frameID$
| stats values(host) as host
| format | fields - host | rename search as host</query>
            </search>
            <selectFirstChoice>true</selectFirstChoice>
            <fieldForLabel>host</fieldForLabel>
            <fieldForValue>host</fieldForValue>
        </input>

        <input id="device" type="multiselect" token="device" searchWhenChanged="true">
            <label>Disks Selection:</label>
            <!-- Populating Data Model Search -->
            <search base="populate">
                <query>search $frameID$ $host$
| stats count by dimension_device | dedup dimension_device | sort 0 dimension_device</query>
            </search>
            <valuePrefix>dimension_device="</valuePrefix>
            <valueSuffix>"</valueSuffix>
            <delimiter> OR </delimiter>
            <initialValue>*</initialValue>
            <choice value="*">ALL Devices</choice>
            <fieldForLabel>dimension_device</fieldForLabel>
            <fieldForValue>dimension_device</fieldForValue>
        </input>

        <input type="dropdown" token="statsmode" searchWhenChanged="true">
            <label>Stats mode:</label>
            <default>avg</default>
            <choice value="max">Max</choice>
            <choice value="avg">Avg</choice>
            <choice value="min">Min</choice>
            <choice value="median">Median</choice>
            <choice value="mode">Mode</choice>
            <choice value="range">Range</choice>
        </input>

        <input type="dropdown" token="refresh" searchWhenChanged="true">
            <label>Auto-refresh:</label>
            <fieldForLabel>label</fieldForLabel>
            <fieldForValue>value</fieldForValue>
            <selectFirstChoice>true</selectFirstChoice>
            <search>
                <query>| `def_auto_refresh`</query>
                <earliest>$timerange.earliest$</earliest>
                <latest>$timerange.latest$</latest>
            </search>
        </input>

    </fieldset>

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

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

    <!-- Help the user -->

    <row depends="$host$" rejects="$device$">
        <panel>
            <html>
                <div class="red_help_user">
                    <p> - - - - - - - - - - ACTION REQUIRED: please select associated devices to be analysed in the device selector above - - - - - - - - - -</p>
                </div>
            </html>
        </panel>
    </row>

    <row>
        <panel>
            <html>

                <div class="imgheader custom-modal">
                    <img src="../../static/app/metricator-for-nmon/icons/dark_theme/info.png" alt="Info"/>
                    <h4>
                        <a data-modal-name="Help_modal">Help, information and related links for disks statistics</a>
                    </h4>
                </div>

                <!-- Modal -->
                <div class="modal custom-modal-60 fade" id="Help_modal" tabindex="-1" role="dialog" aria-labelledby="Help_modal_Label">
                    <div class="modal-dialog" role="document">
                        <div class="modal-content">
                            <div class="modal-header">
                                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                                    <span aria-hidden="true"/>
                                </button>
                                <div style="text-align: left;">
                                    <h4 class="modal-title" id="Help_modal_Label">Integrated Navigation:</h4>
                                </div>
                            </div>
                            <div class="modal-body">

                                <div style="text-align: center;">
                                    <img src="../../static/app/metricator-for-nmon/icons/dark_theme/drive.png" alt="drive"/>
                                    <h1>Disks extended statistics (os.unix.nmon.storage.dg*)</h1>
                                </div>

                                <div style="text-align: left;">

                                    <h1>Metrics:</h1>

                                    <div class="list">
                                        <lu>
                                            <li><b>disk_backlog_time_ms:</b> Disk Group Backlog time (ms) - DGBACKLOG </li>
                                            <li><b>disk_busy_time_pct:</b> Disk Group Busy (% of time) - DGBUSY </li>
                                            <li><b>disk_block_size_KB:</b> Disk Group Block Size KB - DGSIZE</li>
                                            <li><b>disk_in_flight_io:</b> Disk Group in flight IO (I/O per sec) - DGINFLIGHT</li>
                                        </lu>
                                    </div>

                                    <div class="list">
                                        <lu>

                                            <li><b>disk_read_KB_per_sec:</b> Disk Group Read KB/s - DGREAD </li>
                                            <li><b>disk_read_sec:</b> Disk Group read/s - DGREADS </li>
                                            <li><b>disk_read_service_time_ms:</b> Disk Group read service time (SUM ms) - DGREADSERV </li>
                                            <li><b>disk_read_iops:</b> Disk Group Read Transfers/s (DGREAD divided by DGSIZE) </li>
                                        </lu>
                                    </div>

                                    <div class="list">
                                        <lu>

                                            <li><b>disk_write_KB_per_sec:</b> Disk Group Write KB/s - DGWRITE </li>
                                            <li><b>disk_write_service_time_ms:</b> Disk Group write service time (SUM ms) - DGWRITESERV </li>
                                            <li><b>disk_write_iops:</b> Disk Group Write Transfers/s (DGWRITE divided by DGSIZE) </li>
                                            <li><b>disk_write_sec:</b> Disk Group write/s - DGWRITES</li>
                                        </lu>
                                    </div>

                                    <div class="list">
                                        <lu>
                                            <li><b>disk_merge_write_sec:</b> Disk Group merged write/s - DGWRITEMERGE </li>
                                            <li><b>disk_merge_read_sec:</b> Disk Group merged read/s - DGREADMERGE</li>
                                            <li><b>disk_total_iops:</b> Disk Group Transfers/s - DGXFER </li>
                                            <li><b>disk_time_spent_for_io_ms:</b> Disk Group time spent for IO (ms) - DGIOTIME </li>
                                        </lu>
                                    </div>

                                </div>

                                <div style="text-align:left;">
                                    <h1>Help:</h1>From the Nmon FAQ: <a target="_blank" href="http://nmon.sourceforge.net/pmwiki.php?n=Site.NmonFAQ" >http://nmon.sourceforge.net/pmwiki.php?n=Site.NmonFAQ</a>

                                </div>

                                <br />

                                <div class="list">
                                    <lu>
                                        <li><b>DGBUSY</b> highlights which disks are slowing you down</li>
                                        <li><b>DGREAD</b> and <b>DGWRITE</b> highlights how much data you are shifting</li>
                                    </lu>
                                </div>

                                <div class="list">
                                    <lu>
                                        <li><b>DGXFER</b> highlight is you are approaching the Disk seek limits and adapter operation limits</li>
                                        <li><b>DGSIZE</b> highlights if your application is doing silly small boxes</li>
                                    </lu>
                                </div>

                                <div style="text-align:left;">
                                    <h1>Related links:</h1>
                                </div>

                                <div style="text-align: center;" class="cat_title">

                                    <a target="_blank" href="search?q=%7C%20mcatalog%20values(metric_name)%20as%20metrics%20values(dimension_device)%20as%20dimension_device%20where%20%60nmon_metrics_index%60%20metric_name%3Dos.unix.nmon.storage.dg*%20host%3D*" class="tryitbtnxl">mcatalog »
                                    </a>

                                    <a target="_blank" href="search?q=%7C%20mstats%20avg(_value)%20as%20value%20where%20%60nmon_metrics_index%60%20metric_name%3Dos.unix.nmon.storage.dg*%20host%3D*%20by%20metric_name%2C%20host%20dimension_device%20span%3D1m" class="tryitbtnxl">mstats raw query»
                                    </a>

                                    <a target="_blank" href="search?q=%7C%20mstats%20avg(_value)%20as%20value%20where%20%60nmon_metrics_index%60%20metric_name%3Dos.unix.nmon.storage.dg*%20host%3D*%20dimension_device%3D*%20by%20host%2C%20metric_name%2C%20dimension_device%20span%3D1m%0A%7C%20%60extract_metrics(&quot;dgbacklog%20dgbusy%20dginflight%20dgiotime%20dgread%20dgreadmerge%20dgreads%20dgreadserv%20dgsize%20dgwrite%20dgwritemerge%20dgwrites%20dgwriteserv%20dgxfer&quot;)%60%0A%7C%20stats%20values(dg*)%20as%20&quot;dg*&quot;%20by%20_time%2C%20host%2C%20dimension_device%0A%7C%20eval%20dgxfer_read%3D(dgread%2Fdgsize)%2C%20dgxfer_write%3D(dgwrite%2Fdgsize)%0A%7C%20stats%20avg(dg*)%20as%20&quot;dg*&quot;%20by%20_time%2C%20host%2C%20dimension_device%0A%7C%20foreach%20dg*%20%5B%20eval%20&lt;&lt;FIELD&gt;&gt;%20%3D%20round(%27&lt;&lt;FIELD&gt;&gt;%27%2C%202)%20%5D" class="tryitbtnxl">mstats pre-built query »
                                    </a>

                                    <a target="_blank" href="Howto_DISK_DG_spl" class="tryitbtnxl">HOWTO »
                                    </a>

                                </div>

                                <div style="text-align:left;">
                                    <h1>Related metrics:</h1>
                                </div>

                                <div style="text-align: center;" class="cat_title">

                                    <a target="_blank" href="search?q=%7C%20mstats%20avg(_value)%20as%20value%20where%20%60nmon_metrics_index%60%20metric_name%3Dos.unix.nmon.storage.disk*%20host%3D*%20by%20metric_name%2C%20host%20span%3D1m" class="tryitbtnxl">os.unix.nmon.storage.disk* »
                                    </a>

                                </div>

                            </div>

                            <div class="modal-footer">
                                <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
                            </div>

                        </div>
                    </div>
                </div>

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

    <!-- Base Searches for PostProcessing -->

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

    <row>
        <panel>
            <title>Statistics:</title>
            <table>
                <search id="tablestats">
                    <query>| mstats avg(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.storage.dg*" host=$host-prefilter$ $host_query$ $device$ by host, metric_name, dimension_device span=1m
| `$timefilter$`
| `extract_metrics("dgbacklog dgbusy dginflight dgiotime dgread dgreadmerge dgreads dgreadserv dgsize dgwrite dgwritemerge dgwrites dgwriteserv dgxfer")`
| stats values(dg*) as "dg*" by _time, host, dimension_device
| eval dgxfer_read=(dgread/dgsize), dgxfer_write=(dgwrite/dgsize)
| stats $statsmode$(dg*) as "dg*" by host, dimension_device
| foreach dg* [ 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">cell</option>
                <option name="count">10</option>
                <option name="refresh.display">none</option>
                <option name="percentagesRow">false</option>
                <format type="color" field="dgbacklog">
                    <colorPalette type="minMidMax" maxColor="#31A35F" minColor="#353535"></colorPalette>
                    <scale type="minMidMax"></scale>
                </format>
                <format type="color" field="dgbusy">
                    <colorPalette type="minMidMax" maxColor="#31A35F" minColor="#353535"></colorPalette>
                    <scale type="minMidMax"></scale>
                </format>
                <format type="color" field="dginflight">
                    <colorPalette type="minMidMax" maxColor="#31A35F" minColor="#353535"></colorPalette>
                    <scale type="minMidMax"></scale>
                </format>
                <format type="color" field="dgiotime">
                    <colorPalette type="minMidMax" maxColor="#31A35F" minColor="#353535"></colorPalette>
                    <scale type="minMidMax"></scale>
                </format>
                <format type="color" field="dgread">
                    <colorPalette type="minMidMax" maxColor="#31A35F" minColor="#353535"></colorPalette>
                    <scale type="minMidMax"></scale>
                </format>
                <format type="color" field="dgreadmerge">
                    <colorPalette type="minMidMax" maxColor="#31A35F" minColor="#353535"></colorPalette>
                    <scale type="minMidMax"></scale>
                </format>
                <format type="color" field="dgreads">
                    <colorPalette type="minMidMax" maxColor="#31A35F" minColor="#353535"></colorPalette>
                    <scale type="minMidMax"></scale>
                </format>
                <format type="color" field="dgreadserv">
                    <colorPalette type="minMidMax" maxColor="#31A35F" minColor="#353535"></colorPalette>
                    <scale type="minMidMax"></scale>
                </format>
                <format type="color" field="dgsize">
                    <colorPalette type="minMidMax" maxColor="#31A35F" minColor="#353535"></colorPalette>
                    <scale type="minMidMax"></scale>
                </format>
                <format type="color" field="dgwrite">
                    <colorPalette type="minMidMax" maxColor="#31A35F" minColor="#353535"></colorPalette>
                    <scale type="minMidMax"></scale>
                </format>
                <format type="color" field="dgwritemerge">
                    <colorPalette type="minMidMax" maxColor="#31A35F" minColor="#353535"></colorPalette>
                    <scale type="minMidMax"></scale>
                </format>
                <format type="color" field="dgwrites">
                    <colorPalette type="minMidMax" maxColor="#31A35F" minColor="#353535"></colorPalette>
                    <scale type="minMidMax"></scale>
                </format>
                <format type="color" field="dgwriteserv">
                    <colorPalette type="minMidMax" maxColor="#31A35F" minColor="#353535"></colorPalette>
                    <scale type="minMidMax"></scale>
                </format>
                <format type="color" field="dgxfer">
                    <colorPalette type="minMidMax" maxColor="#31A35F" minColor="#353535"></colorPalette>
                    <scale type="minMidMax"></scale>
                </format>
                <format type="color" field="dgxfer_read">
                    <colorPalette type="minMidMax" maxColor="#31A35F" minColor="#353535"></colorPalette>
                    <scale type="minMidMax"></scale>
                </format>
                <format type="color" field="dgxfer_write">
                    <colorPalette type="minMidMax" maxColor="#31A35F" minColor="#353535"></colorPalette>
                    <scale type="minMidMax"></scale>
                </format>
            </table>
        </panel>
    </row>

    <row>
        <panel id="settings">
            <title>Charting parameters</title>
            <input type="dropdown" token="chart" searchWhenChanged="true">
                <label>Select a type of chart:</label>
                <default>line</default>
                <choice value="area">Area</choice>
                <choice value="line">Line</choice>
                <choice value="column">Column</choice>
                <choice value="bar">Bar</choice>
            </input>
            <input type="dropdown" token="charting.chart.nullValueMode" searchWhenChanged="true">
                <label>Missing Data:</label>
                <default>gaps</default>
                <choice value="gaps">Gaps</choice>
                <choice value="connect">Connect</choice>
                <choice value="zero">Zero</choice>
            </input>
            <input type="dropdown" token="chart.stackingmode" searchWhenChanged="true">
                <label>Select a stacking mode:</label>
                <default>unstacked</default>
                <choice value="stacked">stacked (lines excluded)</choice>
                <choice value="stacked100">100% stacked (lines excluded)</choice>
                <choice value="unstacked">unstacked</choice>
            </input>
            <input type="dropdown" token="charting.legend.placement" searchWhenChanged="true">
                <label>Legend placement:</label>
                <default>bottom</default>
                <choice value="bottom">Bottom</choice>
                <choice value="top">Top</choice>
                <choice value="left">left</choice>
                <choice value="right">right</choice>
                <choice value="none">none</choice>
            </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>

    <row>
        <panel>
            <title>Over time charting:</title>

            <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$">
                    <query>| mstats avg(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.storage.dg*" host=$host-prefilter$ $host_query$ $device$ by host, metric_name, dimension_device span=1m
| `$timefilter$`
| `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, host, 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, host
| timechart $span$ $statsmode$(disk_total_iops) as disk_total_iops, $statsmode$(disk_read_iops) as disk_read_iops $statsmode$(disk_write_iops) as disk_write_iops by host</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">$chart$</option>
                <option name="charting.chart.nullValueMode">$charting.chart.nullValueMode$</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">$charting.legend.placement$</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=$host-prefilter$ $host_query$ $device$ by host, metric_name, dimension_device span=1m
| `$timefilter$`
| `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, host, 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, host
| timechart $span$ $statsmode$(disk_total_iops) as disk_total_iops, $statsmode$(disk_read_iops) as disk_read_iops $statsmode$(disk_write_iops) as disk_write_iops by host
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$disk_dg_chart2$">
                <title></title>
                <search depends="$disk_dg_chart2$">
                    <query>| mstats avg(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.storage.dgbusy" host=$host-prefilter$ $host_query$ $device$ by host, dimension_device span=1m
| `$timefilter$`
| timechart $span$ $statsmode$(value) as disk_busy_time_pct by host</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">$chart$</option>
                <option name="charting.chart.nullValueMode">$charting.chart.nullValueMode$</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">$charting.legend.placement$</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=$host-prefilter$ $host_query$ $device$ by host, dimension_device span=1m
| `$timefilter$`
| timechart $span$ $statsmode$(value) as disk_busy_time_pct by host
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$disk_dg_chart3$">
                <title></title>
                <search depends="$disk_dg_chart3$">
                    <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=$host-prefilter$ $host_query$ $device$ by host, metric_name, dimension_device span=1m
| `$timefilter$`
| `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$ $statsmode$(disk_read_KB_per_sec) as disk_read_KB_per_sec, $statsmode$(disk_write_KB_per_sec) as disk_write_KB_per_sec by host</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">$chart$</option>
                <option name="charting.chart.nullValueMode">$charting.chart.nullValueMode$</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">$charting.legend.placement$</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=$host-prefilter$ $host_query$ $device$ by host, metric_name, dimension_device span=1m
| `$timefilter$`
| `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$ $statsmode$(disk_read_KB_per_sec) as disk_read_KB_per_sec, $statsmode$(disk_write_KB_per_sec) as disk_write_KB_per_sec by host
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$disk_dg_chart4$">
                <title></title>
                <search depends="$disk_dg_chart4$">
                    <query>| mstats avg(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.storage.dgsize" host=$host-prefilter$ $host_query$ $device$ by host, dimension_device span=1m
| `$timefilter$`
| timechart $span$ $statsmode$(value) as disk_block_size_KB by host</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">$chart$</option>
                <option name="charting.chart.nullValueMode">$charting.chart.nullValueMode$</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">$charting.legend.placement$</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=$host-prefilter$ $host_query$ $device$ by host, dimension_device span=1m
| `$timefilter$`
| timechart $span$ $statsmode$(value) as disk_block_size_KB by host
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$disk_dg_chart5$">
                <title></title>
                <search depends="$disk_dg_chart5$">
                    <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=$host-prefilter$ $host_query$ $device$ by host, metric_name, dimension_device span=1m
| `$timefilter$`
| `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$ $statsmode$(disk_read_service_time_ms) as disk_read_service_time_ms, $statsmode$(disk_write_service_time_ms) as disk_write_service_time_ms by host</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">$chart$</option>
                <option name="charting.chart.nullValueMode">$charting.chart.nullValueMode$</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">$charting.legend.placement$</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=$host-prefilter$ $host_query$ $device$ by host, metric_name, dimension_device span=1m
| `$timefilter$`
| `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$ $statsmode$(disk_read_service_time_ms) as disk_read_service_time_ms, $statsmode$(disk_write_service_time_ms) as disk_write_service_time_ms by host
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$disk_dg_chart6$">
                <title></title>
                <search depends="$disk_dg_chart6$">
                    <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=$host-prefilter$ $host_query$ $device$ by host, metric_name, dimension_device span=1m
| `$timefilter$`
| `extract_metrics("dgreads dgwrites")`
| timechart $span$ $statsmode$(dgreads) as disk_read_sec, $statsmode$(dgwrites) as disk_write_sec by host</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">$chart$</option>
                <option name="charting.chart.nullValueMode">$charting.chart.nullValueMode$</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">$charting.legend.placement$</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=$host-prefilter$ $host_query$ $device$ by host, metric_name, dimension_device span=1m
| `$timefilter$`
| `extract_metrics("dgreads dgwrites")`
| timechart $span$ $statsmode$(dgreads) as disk_read_sec, $statsmode$(dgwrites) as disk_write_sec by host
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$disk_dg_chart7$">
                <title></title>
                <search depends="$disk_dg_chart7$">
                    <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=$host-prefilter$ $host_query$ $device$ by host, metric_name, dimension_device span=1m
| `$timefilter$`
| `extract_metrics("dgreadmerge dgwritemerge")`
| timechart $span$ $statsmode$(dgreadmerge) as disk_merge_read_sec, $statsmode$(dgwritemerge) as disk_merge_write_sec by host</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">$chart$</option>
                <option name="charting.chart.nullValueMode">$charting.chart.nullValueMode$</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">$charting.legend.placement$</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=$host-prefilter$ $host_query$ $device$ by host, metric_name, dimension_device span=1m
| `$timefilter$`
| `extract_metrics("dgreadmerge dgwritemerge")`
| timechart $span$ $statsmode$(dgreadmerge) as disk_merge_read_sec, $statsmode$(dgwritemerge) as disk_merge_write_sec by host
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$disk_dg_chart8$">
                <title></title>
                <search depends="$disk_dg_chart8$">
                    <query>| mstats avg(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.storage.dgiotime" host=$host-prefilter$ $host_query$ $device$ by host, metric_name, dimension_device span=1m
| `$timefilter$`
| timechart $span$ $statsmode$(value) as disk_time_spent_for_io_ms by host</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">$chart$</option>
                <option name="charting.chart.nullValueMode">$charting.chart.nullValueMode$</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">$charting.legend.placement$</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=$host-prefilter$ $host_query$ $device$ by host, metric_name, dimension_device span=1m
| `$timefilter$`
| timechart $span$ $statsmode$(value) as disk_time_spent_for_io_ms by host
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$disk_dg_chart9$">
                <title></title>
                <search depends="$disk_dg_chart9$">
                    <query>| mstats avg(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.storage.dgbacklog" host=$host-prefilter$ $host_query$ $device$ by host, metric_name, dimension_device span=1m
| `$timefilter$`
| timechart $span$ $statsmode$(value) as disk_backlog_time_ms by host</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">$chart$</option>
                <option name="charting.chart.nullValueMode">$charting.chart.nullValueMode$</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">$charting.legend.placement$</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=$host-prefilter$ $host_query$ $device$ by host, metric_name, dimension_device span=1m
| `$timefilter$`
| timechart $span$ $statsmode$(value) as disk_backlog_time_ms by host
                        ]]>
                    </link>
                </drilldown>
            </chart>

            <chart depends="$disk_dg_chart10$">
                <title></title>
                <search depends="$disk_dg_chart10$">
                    <query>| mstats avg(_value) as value where `nmon_metrics_index` metric_name="os.unix.nmon.storage.dginflight" host=$host-prefilter$ $host_query$ $device$ by host, metric_name, dimension_device span=1m
| `$timefilter$`
| timechart $span$ $statsmode$(value) as disk_in_flight_io by host</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">$chart$</option>
                <option name="charting.chart.nullValueMode">$charting.chart.nullValueMode$</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">$charting.legend.placement$</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=$host-prefilter$ $host_query$ $device$ by host, metric_name, dimension_device span=1m
| `$timefilter$`
| timechart $span$ $statsmode$(value) as disk_in_flight_io by host
                        ]]>
                    </link>
                </drilldown>
            </chart>

        </panel>
    </row>

</form>
