<form>
  <label>CloudHSM Event Dashboard</label>
  <search id="base_search">
    <query> index=main sourcetype="aws:cloudwatch:cloudhsm"  NOT UNKNOWN_OPCODE |rex "^Time:\s(?&lt;TimeStamp&gt;\d{1,2}\/\d{1,2}\/\d{1,2} \d{1,2}\:\d{1,2}\:\d{1,2}\.\d{1,6})\,\s" | rex "Sequence No\s\s\:\s(?&lt;Sequence_No&gt;\d\w(..))\s" | rex "Reboot counter\s\s\:\s(?&lt;Reboot_counter&gt;\d\w(..))\s" | rex "Command Type\(hex\)\s\:\s(?&lt;Command_Type&gt;\w{1,20})\s" | rex "Opcode\s{3}\:\s(?&lt;Op_Code&gt;\w{8,50})\s"| rex "Session Handle\s{2}\:\s(?&lt;Session_Handle&gt;\w{1,16})\s"| rex "Response\s{2}\:\s(?&lt;Response&gt;\d{1,4}\:\w{1,6}\s\w{1,50}\:\s\S{1,50})\s" | rex "Log type\s{2}\:\s(?&lt;Log_Type&gt;\w{1,24})\s"|  table TimeStamp, Log_Type, Command_Type, Op_Code,  Response, Session_Handle, Sequence_No, Reboot_counter | mvexpand TimeStamp | fillnull value="Not Defined",Log_Type, Op_Code</query>
  </search>

  <search id="base_search2">
    <query> index=main sourcetype="aws:cloudwatch:cloudhsm"
    </query>
    </search>
  <fieldset submitButton="true" autoRun="true">
    <input type="dropdown" token="Log_Type" searchWhenChanged="false">
      <label>Log Type</label>
      <choice value="*">All</choice>
      <search base="base_search">
        <query> | stats count by Log_Type </query>
      </search>
      <fieldForLabel>Log_Type</fieldForLabel>
      <fieldForValue>Log_Type</fieldForValue>
      <default>*</default>
      <initialValue>*</initialValue>
    </input>
    <input type="dropdown" token="Op_Code" searchWhenChanged="false">
      <label>HSM Commands</label>
      <choice value="*">All</choice>
      <search base="base_search">
        <query> | dedup Op_Code, Response | stats count by Op_Code </query>
      </search>
      <fieldForLabel>Op_Code</fieldForLabel>
      <fieldForValue>Op_Code</fieldForValue>
      <default>*</default>
      <initialValue>*</initialValue>
    </input>
  </fieldset>
  <row>
    <panel>
      <single>
        <title>Total Events</title>
        <search base="base_search">
          <query>| search Log_Type= $Log_Type$ Op_Code=$Op_Code$ | dedup TimeStamp | stats count</query>
        </search>
        <option name="colorMode">block</option>
        <option name="drilldown">none</option>
        <option name="rangeColors">["0x53a051","0x0877a6","0xf8be34","0xf1813f","0x006d9c"]</option>
        <option name="underLabel">Total HSM Events</option>
        <option name="useColors">1</option>
      </single>
    </panel>
    <panel>
      <single>
        <title>Failed Crypto_User Login</title>
        <search base="base_search2">
          <query> | search Opcode CN_LOGIN User Type CN_CRYPTO_USER Response RET_USER_LOGIN_FAILURE | rex "^Time:\s(?&lt;TimeStamp&gt;\d{1,2}\/\d{1,2}\/\d{1,2} \d{1,2}\:\d{1,2}\:\d{1,2}\.\d{1,6})\,\s" | rex "Sequence No\s\s\:\s(?&lt;Sequence_No&gt;\d\w(..))\s" | rex "Reboot counter\s\s\:\s(?&lt;Reboot_counter&gt;\d\w(..))\s" | rex "Command Type\(hex\)\s\:\s(?&lt;Command_Type&gt;\w{1,20})\s" | rex "Opcode\s{3}\:\s(?&lt;Op_Code&gt;\w{8,50})\s"| rex "Session Handle\s{2}\:\s(?&lt;Session_Handle&gt;\w{1,16})\s"| rex "Response\s{2}\:\s(?&lt;Response&gt;\d{1,4}\:\w{1,6}\s\w{1,50}\:\s\S{1,50})\s" | rex "Log type\s{2}\:\s(?&lt;Log_Type&gt;\w{1,24})\s"| table TimeStamp, Log_Type, Command_Type, Op_Code,  Response, Session_Handle, Sequence_No, Reboot_counter| search Log_Type= $Log_Type$ Op_Code=$Op_Code$ |stats count </query>
        </search>
        <option name="colorMode">block</option>
        <option name="drilldown">none</option>
        <option name="rangeColors">["0x53a051","0xdc4e41","0xdc4e41"]</option>
        <option name="rangeValues">[0,1]</option>
        <option name="underLabel">Failed Crypto_User Login</option>
        <option name="useColors">1</option>
      </single>
    </panel>
     <panel>
      <single>
        <title>Delete Key Events</title>
        <search base="base_search2">
          <query> | search Opcode CN_DESTROY_OBJECT | rex "^Time:\s(?&lt;TimeStamp&gt;\d{1,2}\/\d{1,2}\/\d{1,2} \d{1,2}\:\d{1,2}\:\d{1,2}\.\d{1,6})\,\s" | rex "Sequence No\s\s\:\s(?&lt;Sequence_No&gt;\d\w(..))\s" | rex "Reboot counter\s\s\:\s(?&lt;Reboot_counter&gt;\d\w(..))\s" | rex "Command Type\(hex\)\s\:\s(?&lt;Command_Type&gt;\w{1,20})\s" | rex "Opcode\s{3}\:\s(?&lt;Op_Code&gt;\w{8,50})\s"| rex "Session Handle\s{2}\:\s(?&lt;Session_Handle&gt;\w{1,16})\s"| rex "Response\s{2}\:\s(?&lt;Response&gt;\d{1,4}\:\w{1,6}\s\w{1,50}\:\s\S{1,50})\s" | rex "Log type\s{2}\:\s(?&lt;Log_Type&gt;\w{1,24})\s"| table TimeStamp, Log_Type, Command_Type, Op_Code,  Response, Session_Handle, Sequence_No, Reboot_counter| search Log_Type= $Log_Type$ Op_Code=$Op_Code$  |stats count </query>
        </search>
        <option name="colorMode">block</option>
        <option name="drilldown">none</option>
        <option name="rangeColors">["0x53a051","0xdc4e41","0xdc4e41"]</option>
        <option name="rangeValues">[0,1]</option>
        <option name="underLabel">Total Delete Key Events</option>
        <option name="useColors">1</option>
      </single>
    </panel>
  </row>
  <row>
    <panel>
      <chart>
        <title>Log Type Breakup</title>
        <search base="base_search">
          <query>| search Log_Type= $Log_Type$ Op_Code=$Op_Code$| dedup Session_Handle, Log_Type | stats count by Log_Type</query>
        </search>
        <option name="charting.chart">pie</option>
        <option name="charting.chart.sliceCollapsingThreshold">0</option>
        <option name="charting.drilldown">none</option>
      </chart>
    </panel>
    <panel>
      <chart>
        <title>HSM Command BreakDown</title>
        <search base="base_search">
          <query>| search Log_Type= $Log_Type$ Op_Code=$Op_Code$ | stats count by Op_Code</query>
        </search>
        <option name="charting.chart">pie</option>
        <option name="charting.drilldown">none</option>
      </chart>
    </panel>
  </row>
  <row>
    <panel>
      <table>
        <title>HSM Event Details</title>
        <search base="base_search">
          <query>| search Log_Type= $Log_Type$ Op_Code=$Op_Code$ </query>

        </search>
        <option name="drilldown">none</option>
      </table>
    </panel>
  </row>
</form>