You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »

Queue Manager Status Dashboard

Sample Splunk Query

index="lamaxu" sourcetype="qmstatus_json"  "identifier.dataType"=QMGR_STATUS "identifier.dataSource"=TEST|rename attributes.STATUS as qmstatus|eval status = if(like(qmstatus,"RUNNING"), 0, 1)|table status | rangemap field=status low=0-0 default=severe | eval status=case(status== 0, "TEST", status== 1, "TEST")

Trellis Dashboard Query (Splunk 6.7 and above)

Using Trellis creates a dynamic view of the Queue Manager statuses. It does not require the dashboard to be edited when new channels are added.

 

index="lamaxu" sourcetype="qmstatus_json"  "identifier.dataType"=QMGR_STATUS |rename identifier.dataSource as qmgrName| rename attributes.STATUS as qmStatus|eval label="(".qmgrName.") - ".qmStatus|eval status = case(like(qmStatus,"RUNNING"), 0, like(chlstatus,"STOPPED"),1)|chart max(status) by label

Sample Dashboard

Dashboard Source

<dashboard>
  <label>Queue Manager Status</label>
  <row>
    <panel>
      <single>
        <search>
          <query>index="lamaxu" sourcetype="qmstatus_json"  "identifier.dataType"=QMGR_STATUS "identifier.dataSource"=DEMO|rename attributes.STATUS as qmstatus|eval status = if(like(qmstatus,"RUNNING"), 0, 1)|table status | rangemap field=status low=0-0 default=severe | eval status=case(status== 0, "DEMO", status== 1, "DEMO")</query>
          <earliest>rt-5m</earliest>
          <latest>rt</latest>
          <sampleRatio>1</sampleRatio>
        </search>
        <option name="colorBy">value</option>
        <option name="colorMode">block</option>
        <option name="drilldown">none</option>
        <option name="numberPrecision">0</option>
        <option name="rangeColors">["0xd93f3c","0x65a637","0xf7bc38","0xf58f39","0xd93f3c"]</option>
        <option name="rangeValues">[0,30,70,100]</option>
        <option name="refresh.display">progressbar</option>
        <option name="showSparkline">1</option>
        <option name="showTrendIndicator">1</option>
        <option name="trellis.enabled">0</option>
        <option name="trellis.scales.shared">1</option>
        <option name="trellis.size">medium</option>
        <option name="trendColorInterpretation">standard</option>
        <option name="trendDisplayMode">absolute</option>
        <option name="underLabel">QMGR Status</option>
        <option name="unitPosition">after</option>
        <option name="useColors">0</option>
        <option name="useThousandSeparators">1</option>
      </single>
    </panel>
    <panel>
      <single>
        <search>
          <query>index="lamaxu" sourcetype="qmstatus_json"  "identifier.dataType"=QMGR_STATUS "identifier.dataSource"=TEST|rename attributes.STATUS as qmstatus|eval status = if(like(qmstatus,"RUNNING"), 0, 1)|table status | rangemap field=status low=0-0 default=severe | eval status=case(status== 0, "TEST", status== 1, "TEST")</query>
          <earliest>rt-5m</earliest>
          <latest>rt</latest>
          <sampleRatio>1</sampleRatio>
        </search>
        <option name="colorBy">value</option>
        <option name="colorMode">block</option>
        <option name="drilldown">none</option>
        <option name="numberPrecision">0</option>
        <option name="rangeColors">["0xd93f3c","0x65a637","0xf7bc38","0xf58f39","0xd93f3c"]</option>
        <option name="rangeValues">[0,1,10,100]</option>
        <option name="refresh.display">progressbar</option>
        <option name="showSparkline">1</option>
        <option name="showTrendIndicator">1</option>
        <option name="trellis.enabled">0</option>
        <option name="trellis.scales.shared">1</option>
        <option name="trellis.size">medium</option>
        <option name="trendColorInterpretation">standard</option>
        <option name="trendDisplayMode">absolute</option>
        <option name="underLabel">QMGR Status</option>
        <option name="unitPosition">after</option>
        <option name="useColors">0</option>
        <option name="useThousandSeparators">1</option>
      </single>
    </panel>
    <panel>
      <single>
        <search>
          <query>index="lamaxu" sourcetype="qmstatus_json"  "identifier.dataType"=QMGR_STATUS "identifier.dataSource"=TEST1|rename attributes.STATUS as qmstatus|eval status = if(like(qmstatus,"RUNNING"), 0, 1)|table status | rangemap field=status low=0-0 default=severe | eval status=case(status== 0, "TEST1", status== 1, "TEST1")</query>
          <earliest>rt-5m</earliest>
          <latest>rt</latest>
          <sampleRatio>1</sampleRatio>
        </search>
        <option name="colorBy">value</option>
        <option name="colorMode">block</option>
        <option name="drilldown">none</option>
        <option name="numberPrecision">0</option>
        <option name="rangeColors">["0xd93f3c","0x65a637","0xf7bc38","0xf58f39","0xd93f3c"]</option>
        <option name="rangeValues">[0,1,10,100]</option>
        <option name="refresh.display">progressbar</option>
        <option name="showSparkline">1</option>
        <option name="showTrendIndicator">1</option>
        <option name="trellis.enabled">0</option>
        <option name="trellis.scales.shared">1</option>
        <option name="trellis.size">medium</option>
        <option name="trendColorInterpretation">standard</option>
        <option name="trendDisplayMode">absolute</option>
        <option name="underLabel">QMGR Status</option>
        <option name="unitPosition">after</option>
        <option name="useColors">0</option>
        <option name="useThousandSeparators">1</option>
      </single>
    </panel>
    <panel>
      <single>
        <search>
          <query>index="lamaxu" sourcetype="qmstatus_json"  "identifier.dataType"=QMGR_STATUS "identifier.dataSource"=TEST|rename attributes.STATUS as qmstatus|eval status = if(like(qmstatus,"RUNNING"), 0, 1)|table status | rangemap field=status low=0-0 default=severe | eval status=case(status== 0, "TEST2", status== 1, "TEST2")</query>
          <earliest>rt-5m</earliest>
          <latest>rt</latest>
          <sampleRatio>1</sampleRatio>
        </search>
        <option name="colorBy">value</option>
        <option name="colorMode">block</option>
        <option name="drilldown">none</option>
        <option name="numberPrecision">0</option>
        <option name="rangeColors">["0xd93f3c","0x65a637","0xf7bc38","0xf58f39","0xd93f3c"]</option>
        <option name="rangeValues">[0,1,10,100]</option>
        <option name="refresh.display">progressbar</option>
        <option name="showSparkline">1</option>
        <option name="showTrendIndicator">1</option>
        <option name="trellis.enabled">0</option>
        <option name="trellis.scales.shared">1</option>
        <option name="trellis.size">medium</option>
        <option name="trendColorInterpretation">standard</option>
        <option name="trendDisplayMode">absolute</option>
        <option name="underLabel">QMGR Status</option>
        <option name="unitPosition">after</option>
        <option name="useColors">0</option>
        <option name="useThousandSeparators">1</option>
      </single>
    </panel>
  </row>
</dashboard>

Queue Manager Status Trellis Dashboard

<dashboard>
  <label>Queue Manager Status - Trellis</label>  
   <row>
    <panel>
      <title>Queue Manager Status Trellis</title>
      <single>
        <title>Queue Manager Status Trellis</title>
        <search>
          <query>index="lamaxu" sourcetype="qmstatus_json"  "identifier.dataType"=QMGR_STATUS |rename identifier.dataSource as qmgrName| rename attributes.STATUS as qmStatus|eval label="(".qmgrName.") - ".qmStatus|eval status = case(like(qmStatus,"RUNNING"), 0, like(chlstatus,"STOPPED"),1)|chart max(status) by label</query>
          <earliest>rt-1h</earliest>
          <latest>rt</latest>
          <sampleRatio>1</sampleRatio>
        </search>
        <option name="colorBy">value</option>
        <option name="colorMode">block</option>
        <option name="drilldown">none</option>
        <option name="numberPrecision">0</option>
        <option name="rangeColors">["0x65a637","0xd93f3c"]</option>
        <option name="rangeValues">[0]</option>
        <option name="refresh.display">progressbar</option>
        <option name="showSparkline">1</option>
        <option name="showTrendIndicator">1</option>
        <option name="trellis.enabled">1</option>
        <option name="trellis.scales.shared">1</option>
        <option name="trellis.size">small</option>
        <option name="trellis.splitBy">label</option>
        <option name="trendColorInterpretation">standard</option>
        <option name="trendDisplayMode">absolute</option>
        <option name="underLabel">Qmgr Status</option>
        <option name="unitPosition">after</option>
        <option name="useColors">1</option>
        <option name="useThousandSeparators">1</option>
      </single>
    </panel>
  </row>
</dashboard>

 

 

Using Trellis creates a dynamic view of the Queue Manager statuses. It does not require the dashboard to be edited when new channels are added. 

Channel Status Dashboard

Sample Splunk Query

index="lamaxu" sourcetype="qmstatus_json"  "identifier.dataType"=CHANNEL_STATUS "identifier.dataSource"=DEMO "attributes.CHANNEL"=TEST|rename attributes.STATUS as chlstatus|eval status = case(like(chlstatus,"RUNNING"), 0,like(chlstatus,"INACTIVE"), 1, like(chlstatus,"STOPPED"), 1, like(chlstatus,"RETRY"), 2)|table status | rangemap field=status low=0-0 elevated=1-1 severe=2-2 default=severe | eval status=case(status== 0, "TEST.CHANNEL", status== 1, "TEST.CHANNEL", status== 2, "TEST.CHANNEL")

Trellis Dashboard Query (Splunk 6.7 and above)

Using Trellis creates a dynamic view of the channel statuses. It does not require the dashboard to be editted when new channels are added. 

index="lamaxu" sourcetype="qmstatus_json"  "identifier.dataType"=CHANNEL_STATUS |rename attributes.CHANNEL as chlName|rename identifier.dataSource as qmgrName| rename attributes.STATUS as chlstatus|eval label="(".qmgrName.") ".chlName." - ".chlstatus|eval status = case(like(chlstatus,"RUNNING"), 0,like(chlstatus,"INACTIVE"), 1, like(chlstatus,"STOPPED"), 1, like(chlstatus,"RETRY"), 2)|chart max(status) by label

Sample Dashboard

Dashboard Source

<dashboard>
  <label>Channel Status</label>
  <row>
    <panel>
      <single>
        <search>
          <query>index="lamaxu" sourcetype="qmstatus_json"  "identifier.dataType"=CHANNEL_STATUS "identifier.dataSource"=MQD2 "attributes.CHANNEL"=QT1.QD2|rename attributes.STATUS as chlstatus|eval status = case(like(chlstatus,"RUNNING"), 0,like(chlstatus,"INACTIVE"), 1, like(chlstatus,"STOPPED"), 1, like(chlstatus,"RETRY"), 2)|table status | rangemap field=status low=0-0 elevated=1-1 severe=2-2 default=severe | eval status=case(status== 0, "TEST1.CHANNEL", status== 1, "TEST1.CHANNEL", status== 2, "TEST1.CHANNEL")</query>
          <earliest>rt-5m</earliest>
          <latest>rt</latest>
          <sampleRatio>1</sampleRatio>
        </search>
        <option name="colorBy">value</option>
        <option name="colorMode">block</option>
        <option name="drilldown">all</option>
        <option name="numberPrecision">0</option>
        <option name="rangeColors">["0x65a637","0x6db7c6","0xf7bc38","0xf58f39","0xd93f3c"]</option>
        <option name="rangeValues">[0,30,70,100]</option>
        <option name="refresh.display">progressbar</option>
        <option name="showSparkline">1</option>
        <option name="showTrendIndicator">1</option>
        <option name="trellis.enabled">0</option>
        <option name="trellis.scales.shared">1</option>
        <option name="trellis.size">medium</option>
        <option name="trendColorInterpretation">standard</option>
        <option name="trendDisplayMode">absolute</option>
        <option name="underLabel">Channel Status</option>
        <option name="unitPosition">after</option>
        <option name="useColors">0</option>
        <option name="useThousandSeparators">1</option>
      </single>
    </panel>
    <panel>
      <single>
        <search>
          <query>index="lamaxu" sourcetype="qmstatus_json"  "identifier.dataType"=CHANNEL_STATUS "identifier.dataSource"=MQD2 "attributes.CHANNEL"=QT1.QD2|rename attributes.STATUS as chlstatus|eval status = case(like(chlstatus,"RUNNING"), 0,like(chlstatus,"INACTIVE"), 1, like(chlstatus,"STOPPED"), 1, like(chlstatus,"RETRY"), 2)|table status | rangemap field=status low=0-0 elevated=1-1 severe=2-2 default=severe | eval status=case(status== 0, "TEST1.CHANNEL", status== 1, "TEST1.CHANNEL", status== 2, "TEST1.CHANNEL")</query>
          <earliest>rt-5m</earliest>
          <latest>rt</latest>
          <sampleRatio>1</sampleRatio>
        </search>
        <option name="colorBy">value</option>
        <option name="colorMode">block</option>
        <option name="drilldown">all</option>
        <option name="numberPrecision">0</option>
        <option name="rangeColors">["0x65a637","0x6db7c6","0xf7bc38","0xf58f39","0xd93f3c"]</option>
        <option name="rangeValues">[0,30,70,100]</option>
        <option name="refresh.display">progressbar</option>
        <option name="showSparkline">1</option>
        <option name="showTrendIndicator">1</option>
        <option name="trellis.enabled">0</option>
        <option name="trellis.scales.shared">1</option>
        <option name="trellis.size">medium</option>
        <option name="trendColorInterpretation">standard</option>
        <option name="trendDisplayMode">absolute</option>
        <option name="underLabel">Channel Status</option>
        <option name="unitPosition">after</option>
        <option name="useColors">0</option>
        <option name="useThousandSeparators">1</option>
      </single>
    </panel>
    <panel>
      <single>
        <search>
          <query>index="lamaxu" sourcetype="qmstatus_json"  "identifier.dataType"=CHANNEL_STATUS "identifier.dataSource"=MQD2 "attributes.CHANNEL"=QD2.QT1|rename attributes.STATUS as chlstatus|eval status = case(like(chlstatus,"RUNNING"), 0,like(chlstatus,"INACTIVE"), 1, like(chlstatus,"STOPPED"), 1, like(chlstatus,"RETRY"), 2)|table status | rangemap field=status low=0-0 elevated=1-1 severe=2-2 default=severe | eval status=case(status== 0, "TEST2.CHANNEL", status== 1, "TEST2.CHANNEL", status== 2, "TEST2.CHANNEL")</query>
          <earliest>rt-5m</earliest>
          <latest>rt</latest>
          <sampleRatio>1</sampleRatio>
        </search>
        <option name="colorBy">value</option>
        <option name="colorMode">block</option>
        <option name="drilldown">all</option>
        <option name="numberPrecision">0</option>
        <option name="rangeColors">["0x65a637","0x6db7c6","0xf7bc38","0xf58f39","0xd93f3c"]</option>
        <option name="rangeValues">[0,30,70,100]</option>
        <option name="refresh.display">progressbar</option>
        <option name="showSparkline">1</option>
        <option name="showTrendIndicator">1</option>
        <option name="trellis.enabled">0</option>
        <option name="trellis.scales.shared">1</option>
        <option name="trellis.size">medium</option>
        <option name="trendColorInterpretation">standard</option>
        <option name="trendDisplayMode">absolute</option>
        <option name="underLabel">Channel Status</option>
        <option name="unitPosition">after</option>
        <option name="useColors">0</option>
        <option name="useThousandSeparators">1</option>
      </single>
    </panel>
    <panel>
      <single>
        <search>
          <query>index="lamaxu" sourcetype="qmstatus_json"  "identifier.dataType"=CHANNEL_STATUS "identifier.dataSource"=MQD2 "attributes.CHANNEL"=QT1.QD2|rename attributes.STATUS as chlstatus|eval status = case(like(chlstatus,"RUNNING"), 0,like(chlstatus,"INACTIVE"), 1, like(chlstatus,"STOPPED"), 1, like(chlstatus,"RETRY"), 2)|table status | rangemap field=status low=0-0 elevated=1-1 severe=2-2 default=severe | eval status=case(status== 0, "TEST3.CHANNEL", status== 1, "TEST3.CHANNEL", status== 2, "TEST3.CHANNEL")</query>
          <earliest>rt-5m</earliest>
          <latest>rt</latest>
          <sampleRatio>1</sampleRatio>
        </search>
        <option name="colorBy">value</option>
        <option name="colorMode">block</option>
        <option name="drilldown">all</option>
        <option name="numberPrecision">0</option>
        <option name="rangeColors">["0x65a637","0x6db7c6","0xf7bc38","0xf58f39","0xd93f3c"]</option>
        <option name="rangeValues">[0,30,70,100]</option>
        <option name="refresh.display">progressbar</option>
        <option name="showSparkline">1</option>
        <option name="showTrendIndicator">1</option>
        <option name="trellis.enabled">0</option>
        <option name="trellis.scales.shared">1</option>
        <option name="trellis.size">medium</option>
        <option name="trendColorInterpretation">standard</option>
        <option name="trendDisplayMode">absolute</option>
        <option name="underLabel">Channel Status</option>
        <option name="unitPosition">after</option>
        <option name="useColors">0</option>
        <option name="useThousandSeparators">1</option>
      </single>
    </panel>
  </row>
  <row>
    <panel>
      <title>Channel Status Trellis</title>
      <single>
        <title>Channel Status Trellis</title>
        <search>
          <query>index="lamaxu" sourcetype="qmstatus_json"  "identifier.dataType"=CHANNEL_STATUS |rename attributes.CHANNEL as chlName|rename identifier.dataSource as qmgrName| rename attributes.STATUS as chlstatus|eval label="(".qmgrName.") ".chlName." - ".chlstatus|eval status = case(like(chlstatus,"RUNNING"), 0,like(chlstatus,"INACTIVE"), 1, like(chlstatus,"STOPPED"), 1, like(chlstatus,"RETRY"), 2)|chart max(status) by label</query>
          <earliest>rt-1h</earliest>
          <latest>rt</latest>
          <sampleRatio>1</sampleRatio>
        </search>
        <option name="colorBy">value</option>
        <option name="colorMode">block</option>
        <option name="drilldown">none</option>
        <option name="numberPrecision">0</option>
        <option name="rangeColors">["0x65a637","0x6db7c6","0xd93f3c"]</option>
        <option name="rangeValues">[0,30]</option>
        <option name="refresh.display">progressbar</option>
        <option name="showSparkline">1</option>
        <option name="showTrendIndicator">1</option>
        <option name="trellis.enabled">1</option>
        <option name="trellis.scales.shared">1</option>
        <option name="trellis.size">medium</option>
        <option name="trellis.splitBy">label</option>
        <option name="trendColorInterpretation">standard</option>
        <option name="trendDisplayMode">absolute</option>
        <option name="unitPosition">after</option>
        <option name="useColors">1</option>
        <option name="useThousandSeparators">1</option>
      </single>
    </panel>
  </row>
</dashboard>

Channel Status Dashboard Source Using Trellis

<dashboard>
  <label>Channel Status Using Trellis</label>
  <row>
    <panel>
      <title>Channel Status Trellis</title>
      <single>
        <title>Channel Status Trellis</title>
        <search>
          <query>index="lamaxu" sourcetype="qmstatus_json"  "identifier.dataType"=CHANNEL_STATUS |rename attributes.CHANNEL as chlName|rename identifier.dataSource as qmgrName| rename attributes.STATUS as chlstatus|eval label="(".qmgrName.") ".chlName." - ".chlstatus|eval status = case(like(chlstatus,"RUNNING"), 0,like(chlstatus,"INACTIVE"), 1, like(chlstatus,"STOPPED"), 1, like(chlstatus,"RETRY"), 2)|chart max(status) by label</query>
          <earliest>rt-1h</earliest>
          <latest>rt</latest>
          <sampleRatio>1</sampleRatio>
        </search>
        <option name="colorBy">value</option>
        <option name="colorMode">block</option>
        <option name="drilldown">none</option>
        <option name="numberPrecision">0</option>
        <option name="rangeColors">["0x65a637","0x6db7c6","0xd93f3c"]</option>
        <option name="rangeValues">[0,30]</option>
        <option name="refresh.display">progressbar</option>
        <option name="showSparkline">1</option>
        <option name="showTrendIndicator">1</option>
        <option name="trellis.enabled">1</option>
        <option name="trellis.scales.shared">1</option>
        <option name="trellis.size">medium</option>
        <option name="trellis.splitBy">label</option>
        <option name="trendColorInterpretation">standard</option>
        <option name="trendDisplayMode">absolute</option>
        <option name="unitPosition">after</option>
        <option name="useColors">1</option>
        <option name="useThousandSeparators">1</option>
      </single>
    </panel>
  </row>
</dashboard>

ZOS Buffer Pools Dashboard

Splunk Query for ZOS Buffer Pools (Total vs Used)

index="lamaxu" sourcetype="qmstatus_json" "identifier.dataType"=PAGESET_USAGE |rename identifier.dataSource as qmgrName|rename attributes.BUFFER_POOL_ID as bufferPoolId| eval objName="(".qmgrName.") Buffer Pool ID : ".bufferPoolId|timechart span=1m max(attributes.TOTAL_PAGES) as "Total Pages" max(attributes.UNUSED_PAGES) as "Unused Pages" BY objName

Splunk Query for  ZOS Buffer Pools (Persistent vs Non-Persistent)

index="lamaxu" sourcetype="qmstatus_json" "identifier.dataType"=PAGESET_USAGE |rename identifier.dataSource as qmgrName|rename attributes.BUFFER_POOL_ID as bufferPoolId| eval objName="(".qmgrName.") Buffer Pool ID : ".bufferPoolId|timechart span=1m max(attributes.PERSIST_PAGES) as "Perisitent Pages" max(attributes.NONPERSIST_PAGES) as "Non Persistent Pages" BY objName

Sample Dashboard

Dashboard Source

<dashboard>
  <label>ZOS Buffer Pools</label>
  <row>
    <panel>
      <title>ZOS Buffer Pools (Total vs Used)</title>
      <chart>
        <title>ZOS Buffer Pools (Total vs Used)</title>
        <search>
          <query>index="lamaxu" sourcetype="qmstatus_json" "identifier.dataType"=PAGESET_USAGE |rename identifier.dataSource as qmgrName|rename attributes.BUFFER_POOL_ID as bufferPoolId| eval objName="(".qmgrName.") Buffer Pool ID : ".bufferPoolId|timechart span=1m max(attributes.TOTAL_PAGES) as "Total Pages" max(attributes.UNUSED_PAGES) as "Unused Pages" BY objName</query>
          <earliest>rt-1h</earliest>
          <latest>rt</latest>
          <sampleRatio>1</sampleRatio>
          <refresh>1m</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.visibility">collapsed</option>
        <option name="charting.axisTitleY2.visibility">collapsed</option>
        <option name="charting.axisX.abbreviation">none</option>
        <option name="charting.axisX.scale">linear</option>
        <option name="charting.axisY.abbreviation">none</option>
        <option name="charting.axisY.scale">linear</option>
        <option name="charting.axisY2.abbreviation">none</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">connect</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.mode">standard</option>
        <option name="charting.legend.placement">none</option>
        <option name="charting.lineWidth">2</option>
        <option name="refresh.display">progressbar</option>
        <option name="trellis.enabled">1</option>
        <option name="trellis.scales.shared">0</option>
        <option name="trellis.size">medium</option>
      </chart>
    </panel>
  </row>
  <row>
    <panel>
      <title>ZOS Buffer Pools (Persistent vs Non-Persistent)</title>
      <chart>
        <title>ZOS Buffer Pools (Persistent vs Non-Persistent)</title>
        <search>
          <query>index="lamaxu" sourcetype="qmstatus_json" "identifier.dataType"=PAGESET_USAGE |rename identifier.dataSource as qmgrName|rename attributes.BUFFER_POOL_ID as bufferPoolId| eval objName="(".qmgrName.") Buffer Pool ID : ".bufferPoolId|timechart span=1m max(attributes.PERSIST_PAGES) as "Perisitent Pages" max(attributes.NONPERSIST_PAGES) as "Non Persistent Pages" BY objName</query>
          <earliest>rt-1h</earliest>
          <latest>rt</latest>
          <sampleRatio>1</sampleRatio>
          <refresh>1m</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.visibility">collapsed</option>
        <option name="charting.axisTitleY2.visibility">collapsed</option>
        <option name="charting.axisX.abbreviation">none</option>
        <option name="charting.axisX.scale">linear</option>
        <option name="charting.axisY.abbreviation">none</option>
        <option name="charting.axisY.scale">linear</option>
        <option name="charting.axisY2.abbreviation">none</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">connect</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.mode">standard</option>
        <option name="charting.legend.placement">none</option>
        <option name="charting.lineWidth">2</option>
        <option name="refresh.display">progressbar</option>
        <option name="trellis.enabled">1</option>
        <option name="trellis.scales.shared">0</option>
        <option name="trellis.size">medium</option>
      </chart>
    </panel>
  </row>
</dashboard>

Queue Oldest Message Age Dashboard

Sample Splunk Query

index="lamaxu" sourcetype="qmstatus_json" "identifier.dataType"=QUEUE_STATUS  attributes.MSGAGE!=-1 attributes.MSGAGE > 20|rename identifier.dataSource as qmgrName|rename attributes.QUEUE as queueName|rename attributes.MSGAGE as MsgAge| eval objName=qmgrName.":".queueName|timechart span=1m max(MsgAge) BY objName

Sample Dashboard

Sample Dashboard Source

<dashboard>
  <label>Queue Oldest Message Age</label>
  <row>
    <panel>
      <title>Oldest Message Age in Seconds</title>
      <chart>
        <search>
          <query>index="lamaxu" sourcetype="qmstatus_json" "identifier.dataType"=QUEUE_STATUS  attributes.MSGAGE!=-1 attributes.MSGAGE &gt; 20|rename identifier.dataSource as qmgrName|rename attributes.QUEUE as queueName|rename attributes.MSGAGE as MsgAge| eval objName=qmgrName.":".queueName|timechart span=1m max(MsgAge) BY objName</query>
          <earliest>rt-1h</earliest>
          <latest>rt</latest>
          <sampleRatio>1</sampleRatio>
        </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.visibility">collapsed</option>
        <option name="charting.axisTitleY2.visibility">collapsed</option>
        <option name="charting.axisX.abbreviation">none</option>
        <option name="charting.axisX.scale">linear</option>
        <option name="charting.axisY.abbreviation">none</option>
        <option name="charting.axisY.scale">linear</option>
        <option name="charting.axisY2.abbreviation">none</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">connect</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.mode">standard</option>
        <option name="charting.legend.placement">none</option>
        <option name="charting.lineWidth">2</option>
        <option name="trellis.enabled">1</option>
        <option name="trellis.scales.shared">0</option>
        <option name="trellis.size">small</option>
      </chart>
    </panel>
  </row>
</dashboard>

Queue Consumer / Producer Dashboard

Sample Splunk Queries

index="lamaxu" sourcetype="qmstatus_json" "identifier.dataType"=QUEUE_STATUS attributes.IPPROCS!=-1 |rename identifier.dataSource as qmgrName|rename attributes.QUEUE as queueName|rename attributes.IPPROCS as Consumers| eval objName="(".qmgrName.") ".queueName|chart max(Consumers) as Consumers BY objName

index="lamaxu" sourcetype="qmstatus_json" "identifier.dataType"=QUEUE_STATUS attributes.OPPROCS!=-1 |rename identifier.dataSource as qmgrName|rename attributes.QUEUE as queueName|rename attributes.OPPROCS as Producers| eval objName="(".qmgrName.") ".queueName|chart max(Producers) as Producers BY objName

Sample Dashboard

Sample Dashboard Source

<dashboard>
  <label>Queue Consumer Counts</label>
  <row>
    <panel>
      <title>Queue Consumer Counts</title>
      <single>
        <title>Queue Consumer Counts (IPPROCS)</title>
        <search>
          <query>index="lamaxu" sourcetype="qmstatus_json" "identifier.dataType"=QUEUE_STATUS attributes.IPPROCS!=-1 |rename identifier.dataSource as qmgrName|rename attributes.QUEUE as queueName|rename attributes.IPPROCS as Consumers| eval objName="(".qmgrName.") ".queueName|chart max(Consumers) as Consumers BY objName</query>
          <earliest>rt-5m</earliest>
          <latest>rt</latest>
          <sampleRatio>1</sampleRatio>
          <refresh>2m</refresh>
          <refreshType>delay</refreshType>
        </search>
        <option name="colorBy">value</option>
        <option name="colorMode">block</option>
        <option name="drilldown">all</option>
        <option name="height">310</option>
        <option name="rangeColors">["0xd93f3c","0x65a637"]</option>
        <option name="rangeValues">[0]</option>
        <option name="refresh.display">progressbar</option>
        <option name="showSparkline">0</option>
        <option name="showTrendIndicator">0</option>
        <option name="trellis.enabled">1</option>
        <option name="trellis.scales.shared">0</option>
        <option name="trellis.size">small</option>
        <option name="trendColorInterpretation">standard</option>
        <option name="trendInterval">-1m</option>
        <option name="underLabel">Consumers</option>
        <option name="unitPosition">after</option>
        <option name="useColors">1</option>
      </single>
    </panel>
  </row>
  <row>
    <panel>
      <title>Queue Producer Counts</title>
      <single>
        <title>Queue Producer Counts (OPPROCS)</title>
        <search>
          <query>index="lamaxu" sourcetype="qmstatus_json" "identifier.dataType"=QUEUE_STATUS attributes.OPPROCS!=-1 |rename identifier.dataSource as qmgrName|rename attributes.QUEUE as queueName|rename attributes.OPPROCS as Producers| eval objName="(".qmgrName.") ".queueName|chart max(Producers) as Producers BY objName</query>
          <earliest>rt-5m</earliest>
          <latest>rt</latest>
          <sampleRatio>1</sampleRatio>
          <refresh>2m</refresh>
          <refreshType>delay</refreshType>
        </search>
        <option name="colorBy">value</option>
        <option name="colorMode">block</option>
        <option name="drilldown">all</option>
        <option name="height">334</option>
        <option name="rangeColors">["0xd93f3c","0x65a637"]</option>
        <option name="rangeValues">[0]</option>
        <option name="refresh.display">progressbar</option>
        <option name="showSparkline">0</option>
        <option name="showTrendIndicator">0</option>
        <option name="trellis.enabled">1</option>
        <option name="trellis.scales.shared">0</option>
        <option name="trellis.size">small</option>
        <option name="trendColorInterpretation">standard</option>
        <option name="trendInterval">-1m</option>
        <option name="underLabel">Consumers</option>
        <option name="unitPosition">after</option>
        <option name="useColors">1</option>
      </single>
    </panel>
  </row>
</dashboard>

  • No labels