zabbix_export:
  version: '8.0'
  template_groups:
    - uuid: a571c0d144b14fd4a87a9d9b2aa9fcd6
      name: Templates/Applications
    - uuid: 748ad4d098d447d492bb935c907f652f
      name: Templates/Databases
    - uuid: 36bff6c29af64692839d077febfc7079
      name: 'Templates/Network devices'
    - uuid: 7c2cb727f85b492d88cd56e17127c64d
      name: Templates/SAN
    - uuid: e960332b3f6c46a1956486d4f3f99fce
      name: 'Templates/Server hardware'
  templates:
    - uuid: 26674f62500e4e79b9f470bbf962130d
      template: 'Arista by SNMP'
      name: 'Arista by SNMP'
      description: |
        Template Net Arista
        
        MIBs used:
        ENTITY-SENSORS-MIB
        ENTITY-STATE-MIB
        IF-MIB
        EtherLike-MIB
        HOST-RESOURCES-MIB
        SNMPv2-MIB
        ENTITY-MIB
        
        Generated by official Zabbix template tool "Templator"
      wizard_ready: 'YES'
      vendor:
        name: Zabbix
        version: 8.0-2
      groups:
        - name: 'Templates/Network devices'
      items:
        - uuid: ace97814969841e9a3e2d8ac6b83aae7
          name: 'ICMP ping'
          type: SIMPLE
          key: icmpping
          description: |
            The host accessibility by ICMP ping.
            
            0 - ICMP ping fails;
            1 - ICMP ping successful.
          valuemap:
            name: 'Service state'
          tags:
            - tag: component
              value: health
            - tag: component
              value: network
          triggers:
            - uuid: 736dc5694fc741e6bcb96e2ba27a0898
              expression: 'max(/Arista by SNMP/icmpping,#3)=0'
              name: 'Arista: Unavailable by ICMP ping'
              priority: HIGH
              description: 'Last three attempts returned timeout. Please check device connectivity.'
              tags:
                - tag: scope
                  value: availability
        - uuid: 643a2c6f8d724bd392dd97bada7d24c2
          name: 'ICMP loss'
          type: SIMPLE
          key: icmppingloss
          value_type: FLOAT
          units: '%'
          description: 'The percentage of lost packets.'
          tags:
            - tag: component
              value: health
            - tag: component
              value: network
          triggers:
            - uuid: dfa6f280b6304bfdb0063be94f7a4c5e
              expression: 'min(/Arista by SNMP/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/Arista by SNMP/icmppingloss,5m)<100'
              name: 'Arista: High ICMP ping loss'
              opdata: 'Loss: {ITEM.LASTVALUE1}'
              priority: WARNING
              description: 'ICMP packets loss detected.'
              dependencies:
                - name: 'Arista: Unavailable by ICMP ping'
                  expression: 'max(/Arista by SNMP/icmpping,#3)=0'
              tags:
                - tag: scope
                  value: availability
                - tag: scope
                  value: performance
        - uuid: e731e59672be40fa8ae7aced60ed3efc
          name: 'ICMP response time'
          type: SIMPLE
          key: icmppingsec
          value_type: FLOAT
          units: s
          description: 'The ICMP ping response time (in seconds).'
          tags:
            - tag: component
              value: health
            - tag: component
              value: network
          triggers:
            - uuid: 18aeec70f72d43ceb4994501fb36d434
              expression: 'avg(/Arista by SNMP/icmppingsec,5m)>{$ICMP_RESPONSE_TIME_WARN}'
              name: 'Arista: High ICMP ping response time'
              opdata: 'Value: {ITEM.LASTVALUE1}'
              priority: WARNING
              description: 'Average ICMP response time is too high.'
              dependencies:
                - name: 'Arista: High ICMP ping loss'
                  expression: 'min(/Arista by SNMP/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/Arista by SNMP/icmppingloss,5m)<100'
                - name: 'Arista: Unavailable by ICMP ping'
                  expression: 'max(/Arista by SNMP/icmpping,#3)=0'
              tags:
                - tag: scope
                  value: availability
                - tag: scope
                  value: performance
        - uuid: 8954dfa9dc4445ad987f764e35c7db6e
          name: 'Get sensors'
          type: SNMP_AGENT
          snmp_oid: 'discovery[{#SENSOR_TYPE},1.3.6.1.2.1.99.1.1.1.1,{#SENSOR_INFO},1.3.6.1.2.1.47.1.1.1.1.2,{#SENSOR_PRECISION},1.3.6.1.2.1.99.1.1.1.3,{#THRESHOLD_LO_WARN},1.3.6.1.4.1.30065.3.12.1.1.1.1,{#THRESHOLD_LO_CRIT},1.3.6.1.4.1.30065.3.12.1.1.1.2,{#THRESHOLD_HI_WARN},1.3.6.1.4.1.30065.3.12.1.1.1.3,{#THRESHOLD_HI_CRIT},1.3.6.1.4.1.30065.3.12.1.1.1.4]'
          key: sensors.get
          delay: 1h
          history: '0'
          value_type: TEXT
          description: 'Gets sensors with type, description, and thresholds.'
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  try {
                  	var data = JSON.parse(value);
                  }
                  catch (error) {
                  	throw 'Failed to parse JSON of Arista sensor discovery.';
                  }
                  var fields = ['{#SNMPINDEX}','{#SENSOR_TYPE}','{#SENSOR_INFO}','{#SENSOR_PRECISION}','{#THRESHOLD_LO_WARN}','{#THRESHOLD_LO_CRIT}','{#THRESHOLD_HI_WARN}','{#THRESHOLD_HI_CRIT}'];
                  data.forEach(function (element) {
                  	fields.forEach(function (field) {
                  		element[field] = element[field] || '';
                  	});
                  });
                  return JSON.stringify(data);
          tags:
            - tag: component
              value: raw
        - uuid: e2d2516fb77f4e4faf13a69705d6af77
          name: 'SNMP traps (fallback)'
          type: SNMP_TRAP
          key: snmptrap.fallback
          value_type: LOG
          description: 'The item is used to collect all SNMP traps unmatched by other snmptrap items'
          logtimefmt: 'hh:mm:sszyyyy/MM/dd'
          tags:
            - tag: component
              value: network
        - uuid: 48446cefda57477eb19dfc6db23a5ee1
          name: 'System contact details'
          type: SNMP_AGENT
          snmp_oid: 'get[1.3.6.1.2.1.1.4.0]'
          key: 'system.contact[sysContact.0]'
          delay: 15m
          value_type: CHAR
          description: |
            MIB: SNMPv2-MIB
            The textual identification of the contact person for this managed node, together with information on how to contact this person. If no contact information is known, the value is the zero-length string.
          inventory_link: CONTACT
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 12h
          tags:
            - tag: component
              value: system
        - uuid: fde390cc8671441194fb274209a8c190
          name: 'CPU utilization'
          type: SNMP_AGENT
          snmp_oid: 'discovery[{#CPU.UTIL},1.3.6.1.2.1.25.3.3.1.2]'
          key: system.cpu.util
          value_type: FLOAT
          units: '%'
          description: |
            MIB: HOST-RESOURCES-MIB
            The average, over the last minute, of the percentage of time that processors was not idle.
            Implementations may approximate this one minute smoothing period if necessary.
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$..[''{#CPU.UTIL}''].avg()'
          tags:
            - tag: component
              value: cpu
          triggers:
            - uuid: 6737f0672c244e048509358d220874a6
              expression: 'min(/Arista by SNMP/system.cpu.util,5m)>{$CPU.UTIL.CRIT}'
              name: 'Arista: High CPU utilization'
              event_name: 'Arista: High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)'
              opdata: 'Current utilization: {ITEM.LASTVALUE1}'
              priority: WARNING
              description: 'CPU utilization is too high. The system might be slow to respond.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 861f3aef96e64cf0a68e0fc81693f118
          name: 'System description'
          type: SNMP_AGENT
          snmp_oid: 'get[1.3.6.1.2.1.1.1.0]'
          key: 'system.descr[sysDescr.0]'
          delay: 15m
          value_type: CHAR
          description: |
            MIB: SNMPv2-MIB
            A textual description of the entity. This value should
            include the full name and version identification of the system's hardware type, software operating-system, and
            networking software.
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 12h
          tags:
            - tag: component
              value: system
        - uuid: 5bf4c90019ae41688336f83bcbb481bb
          name: 'Uptime (hardware)'
          type: SNMP_AGENT
          snmp_oid: 'get[1.3.6.1.2.1.25.1.1.0]'
          key: 'system.hw.uptime[hrSystemUptime.0]'
          delay: 30s
          trends: '0'
          units: uptime
          description: |
            MIB: HOST-RESOURCES-MIB
            The amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.
          preprocessing:
            - type: CHECK_NOT_SUPPORTED
              parameters:
                - '-1'
              error_handler: CUSTOM_VALUE
              error_handler_params: '0'
            - type: MULTIPLIER
              parameters:
                - '0.01'
          tags:
            - tag: component
              value: system
        - uuid: 55418095abea4f109476530af23e2829
          name: 'System location'
          type: SNMP_AGENT
          snmp_oid: 'get[1.3.6.1.2.1.1.6.0]'
          key: 'system.location[sysLocation.0]'
          delay: 15m
          value_type: CHAR
          description: |
            MIB: SNMPv2-MIB
            Physical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.
          inventory_link: LOCATION
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 12h
          tags:
            - tag: component
              value: system
        - uuid: d4538fc49f554fb6a1514cd9487a7291
          name: 'System name'
          type: SNMP_AGENT
          snmp_oid: 'get[1.3.6.1.2.1.1.5.0]'
          key: system.name
          delay: 15m
          value_type: CHAR
          description: |
            MIB: SNMPv2-MIB
            An administratively-assigned name for this managed node.By convention, this is the node's fully-qualified domain name. If the name is unknown, the value is the zero-length string.
          inventory_link: NAME
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 12h
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: 362d455c9d9944cea7c37d58bcabc0a0
              expression: 'last(/Arista by SNMP/system.name,#1)<>last(/Arista by SNMP/system.name,#2) and length(last(/Arista by SNMP/system.name))>0'
              name: 'Arista: System name has changed'
              event_name: 'Arista: System name has changed (new name: {ITEM.VALUE})'
              priority: INFO
              description: 'The name of the system has changed. Acknowledge to close the problem manually.'
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: notice
                - tag: scope
                  value: security
        - uuid: ed9ad1ae7fba4073bb80307dbd6849cd
          name: 'Uptime (network)'
          type: SNMP_AGENT
          snmp_oid: 'get[1.3.6.1.2.1.1.3.0]'
          key: 'system.net.uptime[sysUpTime.0]'
          delay: 30s
          trends: '0'
          units: uptime
          description: |
            MIB: SNMPv2-MIB
            Time (in hundredths of a second) since the network management portion of the system was last re-initialized.
          preprocessing:
            - type: MULTIPLIER
              parameters:
                - '0.01'
          tags:
            - tag: component
              value: system
        - uuid: 8f2e8b5fa0464e4d964253f361d1e033
          name: 'System object ID'
          type: SNMP_AGENT
          snmp_oid: 'get[1.3.6.1.2.1.1.2.0]'
          key: 'system.objectid[sysObjectID.0]'
          delay: 15m
          value_type: CHAR
          description: |
            MIB: SNMPv2-MIB
            The vendor's authoritative identification of the network management subsystem contained in the entity. This value is allocated within the SMI enterprises subtree (1.3.6.1.4.1) and provides an easy and unambiguous means for determining`what kind of box' is being managed.  For example, if vendor`Flintstones, Inc.' was assigned the subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router'.
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 12h
          tags:
            - tag: component
              value: system
        - uuid: f57ed8cec3144effa6ffb2a4f604ab0b
          name: 'SNMP agent availability'
          type: INTERNAL
          key: 'zabbix[host,snmp,available]'
          description: |
            Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.
            Possible values:
            0 - not available
            1 - available
            2 - unknown
          valuemap:
            name: zabbix.host.available
          tags:
            - tag: component
              value: health
            - tag: component
              value: network
          triggers:
            - uuid: 53501c72392a4bbc8fa0f5ed086d2591
              expression: 'max(/Arista by SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0'
              name: 'Arista: No SNMP data collection'
              opdata: 'Current state: {ITEM.LASTVALUE1}'
              priority: WARNING
              description: 'SNMP is not available for polling. Please check device connectivity and SNMP settings.'
              dependencies:
                - name: 'Arista: Unavailable by ICMP ping'
                  expression: 'max(/Arista by SNMP/icmpping,#3)=0'
              tags:
                - tag: scope
                  value: availability
      discovery_rules:
        - uuid: 54b839c0606741bfad5c84497cf1d295
          name: 'Entity discovery'
          type: SNMP_AGENT
          snmp_oid: 'discovery[{#ENT_CLASS},1.3.6.1.2.1.47.1.1.1.1.5,{#ENT_NAME},1.3.6.1.2.1.47.1.1.1.1.7]'
          key: entity.discovery
          delay: 1h
          filter:
            conditions:
              - macro: '{#ENT_CLASS}'
                value: '3'
          item_prototypes:
            - uuid: 161777c6b77c4c91a11e90dda46d4ec5
              name: '{#ENT_NAME}: Hardware model name'
              type: SNMP_AGENT
              snmp_oid: 'get[1.3.6.1.2.1.47.1.1.1.1.13.{#SNMPINDEX}]'
              key: 'system.hw.model[entPhysicalModelName.{#SNMPINDEX}]'
              delay: 1h
              value_type: CHAR
              description: 'MIB: ENTITY-MIB'
              preprocessing:
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              tags:
                - tag: component
                  value: system
            - uuid: 2f25bd11644d4bd3917d6c6693e74c99
              name: '{#ENT_NAME}: Hardware serial number'
              type: SNMP_AGENT
              snmp_oid: 'get[1.3.6.1.2.1.47.1.1.1.1.11.{#SNMPINDEX}]'
              key: 'system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}]'
              delay: 1h
              value_type: CHAR
              description: 'MIB: ENTITY-MIB'
              preprocessing:
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              tags:
                - tag: component
                  value: system
              trigger_prototypes:
                - uuid: 218209a40ec54a489738345c4485be83
                  expression: 'last(/Arista by SNMP/system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}],#1)<>last(/Arista by SNMP/system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}],#2) and length(last(/Arista by SNMP/system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}]))>0'
                  name: 'Arista: {#ENT_NAME}: Device has been replaced'
                  event_name: 'Arista: {#ENT_NAME}: Device has been replaced (new serial number received)'
                  priority: INFO
                  description: 'Device serial number has changed. Acknowledge to close the problem manually.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: notice
        - uuid: c78a9f82601847338d687ed01577e958
          name: 'Fan discovery'
          type: DEPENDENT
          key: fan.discovery
          filter:
            evaltype: OR
            conditions:
              - macro: '{#SENSOR_TYPE}'
                value: '10'
          description: 'ENTITY-SENSORS-MIB::EntitySensorDataType discovery with rpm filter'
          item_prototypes:
            - uuid: 7d86974a2de14ce3a254172b6bf0761f
              name: '{#SENSOR_INFO}: Fan speed'
              type: SNMP_AGENT
              snmp_oid: 'get[1.3.6.1.2.1.99.1.1.1.4.{#SNMPINDEX}]'
              key: 'sensor.fan.speed[entPhySensorValue.{#SNMPINDEX}]'
              units: rpm
              description: |
                MIB: ENTITY-SENSORS-MIB
                The most recent measurement obtained by the agent for this sensor.
                To correctly interpret the value of this object, the associated entPhySensorType,
                entPhySensorScale, and entPhySensorPrecision objects must also be examined.
              tags:
                - tag: component
                  value: fan
              trigger_prototypes:
                - uuid: 660fd32236464fd69409099c67478ff5
                  expression: 'min(/Arista by SNMP/sensor.fan.speed[entPhySensorValue.{#SNMPINDEX}],5m) > {#THRESHOLD_HI_CRIT}'
                  name: 'Arista: {#SENSOR_INFO}: Fan speed is above the critical threshold'
                  event_name: 'Arista: {#SENSOR_INFO}: Fan speed is above the critical threshold of {#THRESHOLD_HI_CRIT}rpm for 5m'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: HIGH
                  description: 'This trigger uses fan sensor values defined in the device.'
                  dependencies:
                    - name: 'Arista: {#SENSOR_INFO}: Fan is in critical state'
                      expression: 'count(/Arista by SNMP/sensor.fan.status[entPhySensorOperStatus.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS}")=1'
                  tags:
                    - tag: scope
                      value: notice
                - uuid: b1131f42627047ca9629693b91d9185e
                  expression: 'min(/Arista by SNMP/sensor.fan.speed[entPhySensorValue.{#SNMPINDEX}],5m) > {#THRESHOLD_HI_WARN}'
                  name: 'Arista: {#SENSOR_INFO}: Fan speed is above the warning threshold'
                  event_name: 'Arista: {#SENSOR_INFO}: Fan speed is above the warning threshold of {#THRESHOLD_HI_WARN}rpm for 5m'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'This trigger uses fan sensor values defined in the device.'
                  dependencies:
                    - name: 'Arista: {#SENSOR_INFO}: Fan is in critical state'
                      expression: 'count(/Arista by SNMP/sensor.fan.status[entPhySensorOperStatus.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS}")=1'
                    - name: 'Arista: {#SENSOR_INFO}: Fan speed is above the critical threshold'
                      expression: 'min(/Arista by SNMP/sensor.fan.speed[entPhySensorValue.{#SNMPINDEX}],5m) > {#THRESHOLD_HI_CRIT}'
                  tags:
                    - tag: scope
                      value: notice
                - uuid: 0cd8e252a77b4c90a155e57aab963e5e
                  expression: 'max(/Arista by SNMP/sensor.fan.speed[entPhySensorValue.{#SNMPINDEX}],5m) < {#THRESHOLD_LO_CRIT}'
                  name: 'Arista: {#SENSOR_INFO}: Fan speed is below the critical threshold'
                  event_name: 'Arista: {#SENSOR_INFO}: Fan speed is below the critical threshold of {#THRESHOLD_LO_CRIT}rpm for 5m'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: HIGH
                  description: 'This trigger uses fan sensor values defined in the device.'
                  dependencies:
                    - name: 'Arista: {#SENSOR_INFO}: Fan is in critical state'
                      expression: 'count(/Arista by SNMP/sensor.fan.status[entPhySensorOperStatus.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS}")=1'
                  tags:
                    - tag: scope
                      value: notice
                - uuid: d37c360fea9143bab6ff07699ed4acb1
                  expression: 'max(/Arista by SNMP/sensor.fan.speed[entPhySensorValue.{#SNMPINDEX}],5m) < {#THRESHOLD_LO_WARN}'
                  name: 'Arista: {#SENSOR_INFO}: Fan speed is below the warning threshold'
                  event_name: 'Arista: {#SENSOR_INFO}: Fan speed is below the warning threshold of {#THRESHOLD_LO_WARN}rpm for 5m'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'This trigger uses fan sensor values defined in the device.'
                  dependencies:
                    - name: 'Arista: {#SENSOR_INFO}: Fan is in critical state'
                      expression: 'count(/Arista by SNMP/sensor.fan.status[entPhySensorOperStatus.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS}")=1'
                    - name: 'Arista: {#SENSOR_INFO}: Fan speed is below the critical threshold'
                      expression: 'max(/Arista by SNMP/sensor.fan.speed[entPhySensorValue.{#SNMPINDEX}],5m) < {#THRESHOLD_LO_CRIT}'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: c5e6aaebbf9d467488fdfa1127a31fd7
              name: '{#SENSOR_INFO}: Fan status'
              type: SNMP_AGENT
              snmp_oid: 'get[1.3.6.1.2.1.99.1.1.1.5.{#SNMPINDEX}]'
              key: 'sensor.fan.status[entPhySensorOperStatus.{#SNMPINDEX}]'
              delay: 3m
              trends: '0'
              description: |
                MIB: ENTITY-SENSORS-MIB
                The operational status of the sensor {#SENSOR_INFO}
              valuemap:
                name: 'ENTITY-SENSORS-MIB::EntitySensorStatus'
              tags:
                - tag: component
                  value: fan
              trigger_prototypes:
                - uuid: 11dddf9f12a0423bb886808759cd429d
                  expression: 'count(/Arista by SNMP/sensor.fan.status[entPhySensorOperStatus.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS}")=1'
                  name: 'Arista: {#SENSOR_INFO}: Fan is in critical state'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'Please check the fan unit'
                  tags:
                    - tag: scope
                      value: availability
                    - tag: scope
                      value: performance
          master_item:
            key: sensors.get
          overrides:
            - name: 'trigger THRESHOLD_LO_WARN'
              step: '1'
              filter:
                conditions:
                  - macro: '{#THRESHOLD_LO_WARN}'
                    value: ^$
              operations:
                - operationobject: TRIGGER_PROTOTYPE
                  operator: REGEXP
                  value: 'Fan speed is below the warning threshold'
                  discover: NO_DISCOVER
            - name: 'trigger THRESHOLD_LO_CRIT'
              step: '2'
              filter:
                conditions:
                  - macro: '{#THRESHOLD_LO_CRIT}'
                    value: ^$
              operations:
                - operationobject: TRIGGER_PROTOTYPE
                  operator: REGEXP
                  value: 'Fan speed is below the critical threshold'
                  discover: NO_DISCOVER
            - name: 'trigger THRESHOLD_HI_WARN'
              step: '3'
              filter:
                conditions:
                  - macro: '{#THRESHOLD_HI_WARN}'
                    value: ^$
              operations:
                - operationobject: TRIGGER_PROTOTYPE
                  operator: REGEXP
                  value: 'Fan speed is above the warning threshold'
                  discover: NO_DISCOVER
            - name: 'trigger THRESHOLD_HI_CRIT'
              step: '4'
              filter:
                conditions:
                  - macro: '{#THRESHOLD_HI_CRIT}'
                    value: ^$
              operations:
                - operationobject: TRIGGER_PROTOTYPE
                  operator: REGEXP
                  value: 'Fan speed is above the critical threshold'
                  discover: NO_DISCOVER
        - uuid: 9b75135925654cedbd5a270b67e68d51
          name: 'Network interfaces discovery'
          type: SNMP_AGENT
          snmp_oid: 'discovery[{#IFOPERSTATUS},1.3.6.1.2.1.2.2.1.8,{#IFADMINSTATUS},1.3.6.1.2.1.2.2.1.7,{#IFALIAS},1.3.6.1.2.1.31.1.1.1.18,{#IFNAME},1.3.6.1.2.1.31.1.1.1.1,{#IFDESCR},1.3.6.1.2.1.2.2.1.2,{#IFTYPE},1.3.6.1.2.1.2.2.1.3]'
          key: net.if.discovery
          delay: 1h
          filter:
            evaltype: AND
            conditions:
              - macro: '{#IFADMINSTATUS}'
                value: '{$NET.IF.IFADMINSTATUS.MATCHES}'
              - macro: '{#IFADMINSTATUS}'
                value: '{$NET.IF.IFADMINSTATUS.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#IFALIAS}'
                value: '{$NET.IF.IFALIAS.MATCHES}'
              - macro: '{#IFALIAS}'
                value: '{$NET.IF.IFALIAS.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#IFDESCR}'
                value: '{$NET.IF.IFDESCR.MATCHES}'
              - macro: '{#IFDESCR}'
                value: '{$NET.IF.IFDESCR.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#IFNAME}'
                value: '{$NET.IF.IFNAME.MATCHES}'
              - macro: '{#IFNAME}'
                value: '{$NET.IF.IFNAME.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#IFOPERSTATUS}'
                value: '{$NET.IF.IFOPERSTATUS.MATCHES}'
              - macro: '{#IFOPERSTATUS}'
                value: '{$NET.IF.IFOPERSTATUS.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#IFTYPE}'
                value: '{$NET.IF.IFTYPE.MATCHES}'
              - macro: '{#IFTYPE}'
                value: '{$NET.IF.IFTYPE.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
          description: 'Discovering interfaces from IF-MIB.'
          item_prototypes:
            - uuid: 5be3410cbb6e4c439198aa8f532c7d4f
              name: 'Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded'
              type: SNMP_AGENT
              snmp_oid: 'get[1.3.6.1.2.1.2.2.1.13.{#SNMPINDEX}]'
              key: 'net.if.in.discards[ifInDiscards.{#SNMPINDEX}]'
              delay: 3m
              description: |
                MIB: IF-MIB
                The number of inbound packets which were chosen to be discarded
                even though no errors had been detected to prevent their being deliverable to a higher-layer protocol.
                One possible reason for discarding such a packet could be to free up buffer space.
                Discontinuities in the value of this counter can occur at re-initialization of the management system,
                and at other times as indicated by the value of ifCounterDiscontinuityTime.
              preprocessing:
                - type: CHANGE_PER_SECOND
              tags:
                - tag: component
                  value: network
                - tag: description
                  value: '{#IFALIAS}'
                - tag: interface
                  value: '{#IFNAME}'
            - uuid: 32217efa18d74fef8d467eb1ffdffe77
              name: 'Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors'
              type: SNMP_AGENT
              snmp_oid: 'get[1.3.6.1.2.1.2.2.1.14.{#SNMPINDEX}]'
              key: 'net.if.in.errors[ifInErrors.{#SNMPINDEX}]'
              delay: 3m
              description: |
                MIB: IF-MIB
                For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol.  For character-oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.
              preprocessing:
                - type: CHANGE_PER_SECOND
              tags:
                - tag: component
                  value: network
                - tag: description
                  value: '{#IFALIAS}'
                - tag: interface
                  value: '{#IFNAME}'
            - uuid: bb496495e10d4ba9b4e111df5f4c212c
              name: 'Interface {#IFNAME}({#IFALIAS}): Bits received'
              type: SNMP_AGENT
              snmp_oid: 'get[1.3.6.1.2.1.31.1.1.1.6.{#SNMPINDEX}]'
              key: 'net.if.in[ifHCInOctets.{#SNMPINDEX}]'
              delay: 3m
              units: bps
              description: |
                MIB: IF-MIB
                The total number of octets received on the interface, including framing characters. This object is a 64-bit version of ifInOctets. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.
              preprocessing:
                - type: CHANGE_PER_SECOND
                - type: MULTIPLIER
                  parameters:
                    - '8'
              tags:
                - tag: component
                  value: network
                - tag: description
                  value: '{#IFALIAS}'
                - tag: interface
                  value: '{#IFNAME}'
            - uuid: 84763d17b876499d9a7a67f93b21a2a7
              name: 'Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded'
              type: SNMP_AGENT
              snmp_oid: 'get[1.3.6.1.2.1.2.2.1.19.{#SNMPINDEX}]'
              key: 'net.if.out.discards[ifOutDiscards.{#SNMPINDEX}]'
              delay: 3m
              description: |
                MIB: IF-MIB
                The number of outbound packets which were chosen to be discarded
                even though no errors had been detected to prevent their being deliverable to a higher-layer protocol.
                One possible reason for discarding such a packet could be to free up buffer space.
                Discontinuities in the value of this counter can occur at re-initialization of the management system,
                and at other times as indicated by the value of ifCounterDiscontinuityTime.
              preprocessing:
                - type: CHANGE_PER_SECOND
              tags:
                - tag: component
                  value: network
                - tag: description
                  value: '{#IFALIAS}'
                - tag: interface
                  value: '{#IFNAME}'
            - uuid: 825e8d8d1528498ba11caa0152daa3f9
              name: 'Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors'
              type: SNMP_AGENT
              snmp_oid: 'get[1.3.6.1.2.1.2.2.1.20.{#SNMPINDEX}]'
              key: 'net.if.out.errors[ifOutErrors.{#SNMPINDEX}]'
              delay: 3m
              description: |
                MIB: IF-MIB
                For packet-oriented interfaces, the number of outbound packets that contained errors preventing them from being deliverable to a higher-layer protocol.  For character-oriented or fixed-length interfaces, the number of outbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.
              preprocessing:
                - type: CHANGE_PER_SECOND
              tags:
                - tag: component
                  value: network
                - tag: description
                  value: '{#IFALIAS}'
                - tag: interface
                  value: '{#IFNAME}'
            - uuid: 9f54178529434f248bbba6eed46df8ac
              name: 'Interface {#IFNAME}({#IFALIAS}): Bits sent'
              type: SNMP_AGENT
              snmp_oid: 'get[1.3.6.1.2.1.31.1.1.1.10.{#SNMPINDEX}]'
              key: 'net.if.out[ifHCOutOctets.{#SNMPINDEX}]'
              delay: 3m
              units: bps
              description: |
                MIB: IF-MIB
                The total number of octets transmitted out of the interface, including framing characters. This object is a 64-bit version of ifOutOctets.Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.
              preprocessing:
                - type: CHANGE_PER_SECOND
                - type: MULTIPLIER
                  parameters:
                    - '8'
              tags:
                - tag: component
                  value: network
                - tag: description
                  value: '{#IFALIAS}'
                - tag: interface
                  value: '{#IFNAME}'
            - uuid: 77a0e72b17bf4f04a813b224fba88156
              name: 'Interface {#IFNAME}({#IFALIAS}): Speed'
              type: SNMP_AGENT
              snmp_oid: 'get[1.3.6.1.2.1.31.1.1.1.15.{#SNMPINDEX}]'
              key: 'net.if.speed[ifHighSpeed.{#SNMPINDEX}]'
              delay: 5m
              trends: '0'
              units: bps
              description: |
                MIB: IF-MIB
                An estimate of the interface's current bandwidth in units of 1,000,000 bits per second. If this object reports a value of `n' then the speed of the interface is somewhere in the range of `n-500,000' to`n+499,999'.  For interfaces which do not vary in bandwidth or for those where no accurate estimation can be made, this object should contain the nominal bandwidth. For a sub-layer which has no concept of bandwidth, this object should be zero.
              preprocessing:
                - type: MULTIPLIER
                  parameters:
                    - '1000000'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              tags:
                - tag: component
                  value: network
                - tag: description
                  value: '{#IFALIAS}'
                - tag: interface
                  value: '{#IFNAME}'
            - uuid: 57006254d61a411296021ee32924cce7
              name: 'Interface {#IFNAME}({#IFALIAS}): Operational status'
              type: SNMP_AGENT
              snmp_oid: 'get[1.3.6.1.2.1.2.2.1.8.{#SNMPINDEX}]'
              key: 'net.if.status[ifOperStatus.{#SNMPINDEX}]'
              trends: '0'
              description: |
                MIB: IF-MIB
                The current operational state of the interface.
                - The testing(3) state indicates that no operational packet scan be passed
                - If ifAdminStatus is down(2) then ifOperStatus should be down(2)
                - If ifAdminStatus is changed to up(1) then ifOperStatus should change to up(1) if the interface is ready to transmit and receive network traffic
                - It should change todormant(5) if the interface is waiting for external actions (such as a serial line waiting for an incoming connection)
                - It should remain in the down(2) state if and only if there is a fault that prevents it from going to the up(1) state
                - It should remain in the notPresent(6) state if the interface has missing(typically, hardware) components.
              valuemap:
                name: 'IF-MIB::ifOperStatus'
              tags:
                - tag: component
                  value: network
                - tag: description
                  value: '{#IFALIAS}'
                - tag: interface
                  value: '{#IFNAME}'
              trigger_prototypes:
                - uuid: 11c5b8073b3540e4b0698a8db9e3c33e
                  expression: '{$IFCONTROL:"{#IFNAME}"}=1 and last(/Arista by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Arista by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Arista by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))'
                  recovery_mode: RECOVERY_EXPRESSION
                  recovery_expression: 'last(/Arista by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0'
                  name: 'Arista: Interface {#IFNAME}({#IFALIAS}): Link down'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: |
                    This trigger expression works as follows:
                    1. It can be triggered if the operations status is down.
                    2. `{$IFCONTROL:"{#IFNAME}"}=1` - a user can redefine the context macro to "0", marking this interface as not important. No new trigger will be fired if this interface is down.
                    3. `{TEMPLATE_NAME:METRIC.diff()}=1` - the trigger fires only if the operational status was up to (1) sometime before (so, does not fire for "eternal off" interfaces.)
                    
                    WARNING: if closed manually - it will not fire again on the next poll, because of .diff.
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: availability
            - uuid: 9ccd7ecb83bf4ff387b8541d807e6a69
              name: 'Interface {#IFNAME}({#IFALIAS}): Interface type'
              type: SNMP_AGENT
              snmp_oid: 'get[1.3.6.1.2.1.2.2.1.3.{#SNMPINDEX}]'
              key: 'net.if.type[ifType.{#SNMPINDEX}]'
              delay: 1h
              trends: '0'
              description: |
                MIB: IF-MIB
                The type of interface.
                Additional values for ifType are assigned by the Internet Assigned Numbers Authority (IANA),
                through updating the syntax of the IANAifType textual convention.
              valuemap:
                name: 'IF-MIB::ifType'
              preprocessing:
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              tags:
                - tag: component
                  value: network
                - tag: description
                  value: '{#IFALIAS}'
                - tag: interface
                  value: '{#IFNAME}'
          trigger_prototypes:
            - uuid: 9715da7cb2404bf2a3cb3e80d4bb3bde
              expression: |
                change(/Arista by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])<0 and last(/Arista by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0
                and (
                last(/Arista by SNMP/net.if.type[ifType.{#SNMPINDEX}])=6 or
                last(/Arista by SNMP/net.if.type[ifType.{#SNMPINDEX}])=7 or
                last(/Arista by SNMP/net.if.type[ifType.{#SNMPINDEX}])=11 or
                last(/Arista by SNMP/net.if.type[ifType.{#SNMPINDEX}])=62 or
                last(/Arista by SNMP/net.if.type[ifType.{#SNMPINDEX}])=69 or
                last(/Arista by SNMP/net.if.type[ifType.{#SNMPINDEX}])=117
                )
                and
                (last(/Arista by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2)
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: |
                (change(/Arista by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 and last(/Arista by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}],#2)>0) or
                (last(/Arista by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2)
              name: 'Arista: Interface {#IFNAME}({#IFALIAS}): Ethernet has changed to lower speed than it was before'
              opdata: 'Current reported speed: {ITEM.LASTVALUE1}'
              priority: INFO
              description: 'This Ethernet connection has transitioned down from its known maximum speed. This might be a sign of autonegotiation issues. Acknowledge to close the problem manually.'
              manual_close: 'YES'
              dependencies:
                - name: 'Arista: Interface {#IFNAME}({#IFALIAS}): Link down'
                  expression: '{$IFCONTROL:"{#IFNAME}"}=1 and last(/Arista by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Arista by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Arista by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))'
                  recovery_expression: 'last(/Arista by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0'
              tags:
                - tag: scope
                  value: performance
            - uuid: 32c978fecfcb42738cd179c19bcd2360
              expression: |
                (avg(/Arista by SNMP/net.if.in[ifHCInOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Arista by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) or
                avg(/Arista by SNMP/net.if.out[ifHCOutOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Arista by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])) and
                last(/Arista by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: |
                avg(/Arista by SNMP/net.if.in[ifHCInOctets.{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Arista by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) and
                avg(/Arista by SNMP/net.if.out[ifHCOutOctets.{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Arista by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])
              name: 'Arista: Interface {#IFNAME}({#IFALIAS}): High bandwidth usage'
              event_name: 'Arista: Interface {#IFNAME}({#IFALIAS}): High bandwidth usage (>{$IF.UTIL.MAX:"{#IFNAME}"}%)'
              opdata: 'In: {ITEM.LASTVALUE1}, out: {ITEM.LASTVALUE3}, speed: {ITEM.LASTVALUE2}'
              priority: WARNING
              description: 'The utilization of the network interface is close to its estimated maximum bandwidth.'
              manual_close: 'YES'
              dependencies:
                - name: 'Arista: Interface {#IFNAME}({#IFALIAS}): Link down'
                  expression: '{$IFCONTROL:"{#IFNAME}"}=1 and last(/Arista by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Arista by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Arista by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))'
                  recovery_expression: 'last(/Arista by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0'
              tags:
                - tag: scope
                  value: performance
            - uuid: 47d5a599bc574ccea4baeebc3aad34f5
              expression: |
                min(/Arista by SNMP/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"}
                or min(/Arista by SNMP/net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"}
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: |
                max(/Arista by SNMP/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8
                and max(/Arista by SNMP/net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8
              name: 'Arista: Interface {#IFNAME}({#IFALIAS}): High error rate'
              event_name: 'Arista: Interface {#IFNAME}({#IFALIAS}): High error rate (>{$IF.ERRORS.WARN:"{#IFNAME}"} for 5m)'
              opdata: 'errors in: {ITEM.LASTVALUE1}, errors out: {ITEM.LASTVALUE2}'
              priority: WARNING
              description: 'It recovers when it is below 80% of the `{$IF.ERRORS.WARN:"{#IFNAME}"}` threshold.'
              manual_close: 'YES'
              dependencies:
                - name: 'Arista: Interface {#IFNAME}({#IFALIAS}): Link down'
                  expression: '{$IFCONTROL:"{#IFNAME}"}=1 and last(/Arista by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Arista by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Arista by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))'
                  recovery_expression: 'last(/Arista by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0'
              tags:
                - tag: scope
                  value: availability
                - tag: scope
                  value: performance
          graph_prototypes:
            - uuid: ecce7b4f1bf844239328705e46958c85
              name: 'Interface {#IFNAME}({#IFALIAS}): Network traffic'
              graph_items:
                - drawtype: GRADIENT_LINE
                  color: 199C0D
                  item:
                    host: 'Arista by SNMP'
                    key: 'net.if.in[ifHCInOctets.{#SNMPINDEX}]'
                - sortorder: '1'
                  drawtype: BOLD_LINE
                  color: F63100
                  item:
                    host: 'Arista by SNMP'
                    key: 'net.if.out[ifHCOutOctets.{#SNMPINDEX}]'
                - sortorder: '2'
                  color: 00611C
                  yaxisside: RIGHT
                  item:
                    host: 'Arista by SNMP'
                    key: 'net.if.out.errors[ifOutErrors.{#SNMPINDEX}]'
                - sortorder: '3'
                  color: F7941D
                  yaxisside: RIGHT
                  item:
                    host: 'Arista by SNMP'
                    key: 'net.if.in.errors[ifInErrors.{#SNMPINDEX}]'
                - sortorder: '4'
                  color: FC6EA3
                  yaxisside: RIGHT
                  item:
                    host: 'Arista by SNMP'
                    key: 'net.if.out.discards[ifOutDiscards.{#SNMPINDEX}]'
                - sortorder: '5'
                  color: 6C59DC
                  yaxisside: RIGHT
                  item:
                    host: 'Arista by SNMP'
                    key: 'net.if.in.discards[ifInDiscards.{#SNMPINDEX}]'
        - uuid: 4906974da5ab45cd9f7996d6d295165a
          name: 'EtherLike-MIB Discovery'
          type: SNMP_AGENT
          snmp_oid: 'discovery[{#SNMPVALUE},1.3.6.1.2.1.10.7.2.1.19,{#IFOPERSTATUS},1.3.6.1.2.1.2.2.1.8,{#IFALIAS},1.3.6.1.2.1.31.1.1.1.18,{#IFNAME},1.3.6.1.2.1.31.1.1.1.1,{#IFDESCR},1.3.6.1.2.1.2.2.1.2]'
          key: net.if.duplex.discovery
          delay: 1h
          filter:
            evaltype: AND
            conditions:
              - macro: '{#IFOPERSTATUS}'
                value: '1'
              - macro: '{#SNMPVALUE}'
                value: (2|3)
          description: 'Discovering interfaces from IF-MIB and EtherLike-MIB. Interfaces with up(1) Operational Status are discovered.'
          item_prototypes:
            - uuid: 065e407dcf1248d2827d0b199b271921
              name: 'Interface {#IFNAME}({#IFALIAS}): Duplex status'
              type: SNMP_AGENT
              snmp_oid: 'get[1.3.6.1.2.1.10.7.2.1.19.{#SNMPINDEX}]'
              key: 'net.if.duplex[dot3StatsDuplexStatus.{#SNMPINDEX}]'
              description: |
                MIB: EtherLike-MIB
                The current mode of operation of the MAC
                entity.  'unknown' indicates that the current
                duplex mode could not be determined.
                
                Management control of the duplex mode is
                accomplished through the MAU MIB.  When
                an interface does not support autonegotiation,
                or when autonegotiation is not enabled, the
                duplex mode is controlled using
                ifMauDefaultType.  When autonegotiation is
                supported and enabled, duplex mode is controlled
                using ifMauAutoNegAdvertisedBits.  In either
                case, the currently operating duplex mode is
                reflected both in this object and in ifMauType.
                
                Note that this object provides redundant
                information with ifMauType.  Normally, redundant
                objects are discouraged.  However, in this
                instance, it allows a management application to
                determine the duplex status of an interface
                without having to know every possible value of
                ifMauType.  This was felt to be sufficiently
                valuable to justify the redundancy.
                Reference: [IEEE 802.3 Std.], 30.3.1.1.32,aDuplexStatus.
              valuemap:
                name: 'EtherLike-MIB::dot3StatsDuplexStatus'
              tags:
                - tag: component
                  value: network
                - tag: description
                  value: '{#IFALIAS}'
                - tag: interface
                  value: '{#IFNAME}'
              trigger_prototypes:
                - uuid: c1bddd15c68243aeb69dc47f57eb6631
                  expression: 'last(/Arista by SNMP/net.if.duplex[dot3StatsDuplexStatus.{#SNMPINDEX}])=2'
                  name: 'Arista: Interface {#IFNAME}({#IFALIAS}): In half-duplex mode'
                  priority: WARNING
                  description: 'Please check autonegotiation settings and cabling.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: performance
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  try {
                  	var data = JSON.parse(value);
                  }
                  catch (error) {
                  	throw 'Failed to parse JSON of EtherLike-MIB discovery.';
                  }
                  var fields = ['{#SNMPVALUE}','{#IFOPERSTATUS}','{#IFALIAS}','{#IFNAME}','{#IFDESCR}'];
                  data.forEach(function (element) {
                  	fields.forEach(function (field) {
                  		element[field] = element[field] || '';
                  	});
                  });
                  return JSON.stringify(data);
        - uuid: 01b83e46160a437da4345824f472cc3b
          name: 'PSU discovery'
          type: SNMP_AGENT
          snmp_oid: 'discovery[{#ENT_CLASS},1.3.6.1.2.1.47.1.1.1.1.5,{#ENT_NAME},1.3.6.1.2.1.47.1.1.1.1.7]'
          key: psu.discovery
          delay: 1h
          filter:
            conditions:
              - macro: '{#ENT_CLASS}'
                value: '6'
          item_prototypes:
            - uuid: 3ec518948c0d4472b55adc761ef7855d
              name: '{#ENT_NAME}: Power supply status'
              type: SNMP_AGENT
              snmp_oid: 'get[1.3.6.1.2.1.131.1.1.1.3.{#SNMPINDEX}]'
              key: 'sensor.psu.status[entStateOper.{#SNMPINDEX}]'
              delay: 3m
              trends: '0'
              description: 'MIB: ENTITY-STATE-MIB'
              valuemap:
                name: 'ENTITY-STATE-MIB::EntityOperState'
              tags:
                - tag: component
                  value: power
              trigger_prototypes:
                - uuid: 4faa99278cd94abaace8b09529a6efaa
                  expression: 'count(/Arista by SNMP/sensor.psu.status[entStateOper.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS}")=1'
                  name: 'Arista: {#ENT_NAME}: Power supply is in critical state'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'Please check the power supply unit for errors'
                  tags:
                    - tag: scope
                      value: availability
                    - tag: scope
                      value: performance
        - uuid: 50d834b15d7f4755b1ff89ddba90fa4d
          name: 'Temperature discovery'
          type: DEPENDENT
          key: temp.discovery
          filter:
            evaltype: AND
            conditions:
              - macro: '{#SENSOR_PRECISION}'
                value: '1'
              - macro: '{#SENSOR_TYPE}'
                value: '8'
          description: 'ENTITY-SENSORS-MIB::EntitySensorDataType discovery with temperature filter'
          item_prototypes:
            - uuid: 2851148fc01c4ba5afb5ab6a3deba5ff
              name: '{#SENSOR_INFO}: Temperature status'
              type: SNMP_AGENT
              snmp_oid: 'get[1.3.6.1.2.1.99.1.1.1.5.{#SNMPINDEX}]'
              key: 'sensor.temp.status[entPhySensorOperStatus.{#SNMPINDEX}]'
              delay: 3m
              trends: '0'
              description: |
                MIB: ENTITY-SENSORS-MIB
                The operational status of the sensor {#SENSOR_INFO}
              valuemap:
                name: 'ENTITY-SENSORS-MIB::EntitySensorStatus'
              tags:
                - tag: component
                  value: temperature
            - uuid: 0f769e8ce0b647989085460beb9a2155
              name: '{#SENSOR_INFO}: Temperature'
              type: SNMP_AGENT
              snmp_oid: 'get[1.3.6.1.2.1.99.1.1.1.4.{#SNMPINDEX}]'
              key: 'sensor.temp.value[entPhySensorValue.{#SNMPINDEX}]'
              delay: 3m
              value_type: FLOAT
              units: °C
              description: |
                MIB: ENTITY-SENSORS-MIB
                The most recent measurement obtained by the agent for this sensor.
                To correctly interpret the value of this object, the associated entPhySensorType,
                entPhySensorScale, and entPhySensorPrecision objects must also be examined.
              preprocessing:
                - type: MULTIPLIER
                  parameters:
                    - '0.1'
              tags:
                - tag: component
                  value: temperature
              trigger_prototypes:
                - uuid: 791d55e21828472e93c97d8fa4f96d26
                  expression: 'min(/Arista by SNMP/sensor.temp.value[entPhySensorValue.{#SNMPINDEX}],5m) > {#THRESHOLD_HI_CRIT}'
                  name: 'Arista: {#SENSOR_INFO}: Temperature is above the critical threshold'
                  event_name: 'Arista: {#SENSOR_INFO}: Temperature is above the critical threshold of {#THRESHOLD_HI_CRIT}°C for 5m'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: HIGH
                  description: 'This trigger uses temperature sensor values defined in the device.'
                  tags:
                    - tag: scope
                      value: notice
                - uuid: c65457a8a6d4427995626ff9ff12e339
                  expression: 'min(/Arista by SNMP/sensor.temp.value[entPhySensorValue.{#SNMPINDEX}],5m) > {#THRESHOLD_HI_WARN}'
                  name: 'Arista: {#SENSOR_INFO}: Temperature is above the warning threshold'
                  event_name: 'Arista: {#SENSOR_INFO}: Temperature is above the warning threshold of {#THRESHOLD_HI_WARN}°C for 5m'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'This trigger uses temperature sensor values defined in the device.'
                  dependencies:
                    - name: 'Arista: {#SENSOR_INFO}: Temperature is above the critical threshold'
                      expression: 'min(/Arista by SNMP/sensor.temp.value[entPhySensorValue.{#SNMPINDEX}],5m) > {#THRESHOLD_HI_CRIT}'
                  tags:
                    - tag: scope
                      value: notice
                - uuid: b521cd99d9fb4f6f9d1241ac33c01a86
                  expression: 'max(/Arista by SNMP/sensor.temp.value[entPhySensorValue.{#SNMPINDEX}],5m) < {#THRESHOLD_LO_CRIT}'
                  name: 'Arista: {#SENSOR_INFO}: Temperature is below the critical threshold'
                  event_name: 'Arista: {#SENSOR_INFO}: Temperature is below the critical threshold of {#THRESHOLD_LO_CRIT}°C for 5m'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: HIGH
                  description: 'This trigger uses temperature sensor values defined in the device.'
                  tags:
                    - tag: scope
                      value: notice
                - uuid: 750888bd98fa475dba03591945416b89
                  expression: 'max(/Arista by SNMP/sensor.temp.value[entPhySensorValue.{#SNMPINDEX}],5m) < {#THRESHOLD_LO_WARN}'
                  name: 'Arista: {#SENSOR_INFO}: Temperature is below the warning threshold'
                  event_name: 'Arista: {#SENSOR_INFO}: Temperature is below the warning threshold of {#THRESHOLD_LO_WARN}°C for 5m'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'This trigger uses temperature sensor values defined in the device.'
                  dependencies:
                    - name: 'Arista: {#SENSOR_INFO}: Temperature is below the critical threshold'
                      expression: 'max(/Arista by SNMP/sensor.temp.value[entPhySensorValue.{#SNMPINDEX}],5m) < {#THRESHOLD_LO_CRIT}'
                  tags:
                    - tag: scope
                      value: notice
          master_item:
            key: sensors.get
          overrides:
            - name: 'trigger THRESHOLD_LO_WARN'
              step: '1'
              filter:
                conditions:
                  - macro: '{#THRESHOLD_LO_WARN}'
                    value: ^$
              operations:
                - operationobject: TRIGGER_PROTOTYPE
                  operator: REGEXP
                  value: 'Temperature is below the warning threshold'
                  discover: NO_DISCOVER
            - name: 'trigger THRESHOLD_LO_CRIT'
              step: '2'
              filter:
                conditions:
                  - macro: '{#THRESHOLD_LO_CRIT}'
                    value: ^$
              operations:
                - operationobject: TRIGGER_PROTOTYPE
                  operator: REGEXP
                  value: 'Temperature is below the critical threshold'
                  discover: NO_DISCOVER
            - name: 'trigger THRESHOLD_HI_WARN'
              step: '3'
              filter:
                conditions:
                  - macro: '{#THRESHOLD_HI_WARN}'
                    value: ^$
              operations:
                - operationobject: TRIGGER_PROTOTYPE
                  operator: REGEXP
                  value: 'Temperature is above the warning threshold'
                  discover: NO_DISCOVER
            - name: 'trigger THRESHOLD_HI_CRIT'
              step: '4'
              filter:
                conditions:
                  - macro: '{#THRESHOLD_HI_CRIT}'
                    value: ^$
              operations:
                - operationobject: TRIGGER_PROTOTYPE
                  operator: REGEXP
                  value: 'Temperature is above the critical threshold'
                  discover: NO_DISCOVER
        - uuid: 77e7bb250b714e8ea3fff7ec1f3ac2c3
          name: 'Storage discovery'
          type: SNMP_AGENT
          snmp_oid: 'discovery[{#FSNAME},1.3.6.1.2.1.25.2.3.1.3,{#FSTYPE},1.3.6.1.2.1.25.2.3.1.2,{#ALLOC_UNITS},1.3.6.1.2.1.25.2.3.1.4]'
          key: 'vfs.fs.discovery[snmp]'
          delay: 1h
          filter:
            evaltype: AND
            conditions:
              - macro: '{#FSNAME}'
                value: '{$VFS.FS.FSNAME.MATCHES}'
              - macro: '{#FSNAME}'
                value: '{$VFS.FS.FSNAME.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#FSTYPE}'
                value: '{$VFS.FS.FSTYPE.MATCHES}'
              - macro: '{#FSTYPE}'
                value: '{$VFS.FS.FSTYPE.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
          description: 'HOST-RESOURCES-MIB::hrStorage discovery with storage filter.'
          item_prototypes:
            - uuid: 676989796c6847ecb76732acce13126a
              name: '{#FSNAME}: Space utilization'
              type: CALCULATED
              key: 'vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}]'
              value_type: FLOAT
              units: '%'
              params: '(last(//vfs.fs.used[hrStorageUsed.{#SNMPINDEX}])/last(//vfs.fs.total[hrStorageSize.{#SNMPINDEX}]))*100'
              description: 'The space utilization expressed in % for {#FSNAME}.'
              tags:
                - tag: component
                  value: storage
                - tag: filesystem
                  value: '{#FSNAME}'
            - uuid: 22bf8f2fc376489a9b3f65414fb10f47
              name: '{#FSNAME}: Total space'
              type: SNMP_AGENT
              snmp_oid: 'get[1.3.6.1.2.1.25.2.3.1.5.{#SNMPINDEX}]'
              key: 'vfs.fs.total[hrStorageSize.{#SNMPINDEX}]'
              units: B
              description: |
                MIB: HOST-RESOURCES-MIB
                The size of the storage represented by this entry, in units of hrStorageAllocationUnits.
                This object is writable to allow remote configuration of the size of the storage area in those cases where such an operation makes sense and is possible on the underlying system.
                For example, the amount of main storage allocated to a buffer pool might be modified or the amount of disk space allocated to virtual storage might be modified.
              preprocessing:
                - type: MULTIPLIER
                  parameters:
                    - '{#ALLOC_UNITS}'
              tags:
                - tag: component
                  value: storage
                - tag: filesystem
                  value: '{#FSNAME}'
            - uuid: 967fce12f9b34723a5984d2f4c2a74f3
              name: '{#FSNAME}: Used space'
              type: SNMP_AGENT
              snmp_oid: 'get[1.3.6.1.2.1.25.2.3.1.6.{#SNMPINDEX}]'
              key: 'vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]'
              units: B
              description: |
                MIB: HOST-RESOURCES-MIB
                The amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.
              preprocessing:
                - type: MULTIPLIER
                  parameters:
                    - '{#ALLOC_UNITS}'
              tags:
                - tag: component
                  value: storage
                - tag: filesystem
                  value: '{#FSNAME}'
          trigger_prototypes:
            - uuid: f4bfac8d247144b3bebac7245248553e
              expression: |
                last(/Arista by SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and
                ((last(/Arista by SNMP/vfs.fs.total[hrStorageSize.{#SNMPINDEX}])-last(/Arista by SNMP/vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]))<{$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"} or timeleft(/Arista by SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}],1h,100)<1d)
              name: 'Arista: {#FSNAME}: Disk space is critically low'
              event_name: 'Arista: {#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%)'
              opdata: 'Space used: {ITEM.LASTVALUE3} of {ITEM.LASTVALUE2} ({ITEM.LASTVALUE1})'
              priority: AVERAGE
              description: |
                Two conditions should match:
                1. The first condition - utilization of the space should be above `{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}`.
                2. The second condition should be one of the following:
                - the disk free space is less than `{$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"}`;
                - the disk will be full in less than 24 hours.
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: availability
                - tag: scope
                  value: capacity
            - uuid: 9912ab9619ce46b88afe358ab50a2c4f
              expression: |
                last(/Arista by SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}])>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and
                ((last(/Arista by SNMP/vfs.fs.total[hrStorageSize.{#SNMPINDEX}])-last(/Arista by SNMP/vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]))<{$VFS.FS.FREE.MIN.WARN:"{#FSNAME}"} or timeleft(/Arista by SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}],1h,100)<1d)
              name: 'Arista: {#FSNAME}: Disk space is low'
              event_name: 'Arista: {#FSNAME}: Disk space is low (used > {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%)'
              opdata: 'Space used: {ITEM.LASTVALUE3} of {ITEM.LASTVALUE2} ({ITEM.LASTVALUE1})'
              priority: WARNING
              description: |
                Two conditions should match:
                1. The first condition - utilization of the space should be above `{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}`.
                2. The second condition should be one of the following:
                - the disk free space is less than `{$VFS.FS.FREE.MIN.WARN:"{#FSNAME}"}`;
                - the disk will be full in less than 24 hours.
              manual_close: 'YES'
              dependencies:
                - name: 'Arista: {#FSNAME}: Disk space is critically low'
                  expression: |
                    last(/Arista by SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and
                    ((last(/Arista by SNMP/vfs.fs.total[hrStorageSize.{#SNMPINDEX}])-last(/Arista by SNMP/vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]))<{$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"} or timeleft(/Arista by SNMP/vfs.fs.pused[storageUsedPercentage.{#SNMPINDEX}],1h,100)<1d)
              tags:
                - tag: scope
                  value: availability
                - tag: scope
                  value: capacity
          graph_prototypes:
            - uuid: 9d5287bdf6cb4bbb9cada4c24b9ecd17
              name: '{#FSNAME}: Disk space usage'
              width: '600'
              height: '340'
              type: PIE
              show_3d: 'YES'
              graph_items:
                - color: '969696'
                  calc_fnc: LAST
                  type: GRAPH_SUM
                  item:
                    host: 'Arista by SNMP'
                    key: 'vfs.fs.total[hrStorageSize.{#SNMPINDEX}]'
                - sortorder: '1'
                  color: C80000
                  calc_fnc: LAST
                  item:
                    host: 'Arista by SNMP'
                    key: 'vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]'
        - uuid: 58bc77f12c17410bbba1cefb5e5fac3d
          name: 'Memory discovery'
          type: SNMP_AGENT
          snmp_oid: 'discovery[{#MEMNAME},1.3.6.1.2.1.25.2.3.1.3,{#MEMTYPE},1.3.6.1.2.1.25.2.3.1.2,{#ALLOC_UNITS},1.3.6.1.2.1.25.2.3.1.4]'
          key: vm.memory.discovery
          delay: 1h
          filter:
            evaltype: AND
            conditions:
              - macro: '{#MEMNAME}'
                value: '{$MEMORY.NAME.MATCHES}'
              - macro: '{#MEMNAME}'
                value: '{$MEMORY.NAME.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#MEMTYPE}'
                value: '{$MEMORY.TYPE.MATCHES}'
              - macro: '{#MEMTYPE}'
                value: '{$MEMORY.TYPE.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
          description: 'HOST-RESOURCES-MIB::hrStorage discovery with memory filter'
          item_prototypes:
            - uuid: 321107495a2d4f4cb2b9aea7bd62a238
              name: '{#MEMNAME}: Total memory'
              type: SNMP_AGENT
              snmp_oid: 'get[1.3.6.1.2.1.25.2.3.1.5.{#SNMPINDEX}]'
              key: 'vm.memory.total[hrStorageSize.{#SNMPINDEX}]'
              units: B
              description: |
                MIB: HOST-RESOURCES-MIB
                The size of the storage represented by this entry, in units of hrStorageAllocationUnits.
                This object is writable to allow remote configuration of the size of the storage area in those cases where such an operation makes sense and is possible on the underlying system.
                For example, the amount of main memory allocated to a buffer pool might be modified or the amount of disk space allocated to virtual memory might be modified.
              preprocessing:
                - type: MULTIPLIER
                  parameters:
                    - '{#ALLOC_UNITS}'
              tags:
                - tag: component
                  value: memory
            - uuid: 520fa8a8954e4992ba18d6d2c1f18259
              name: '{#MEMNAME}: Used memory'
              type: SNMP_AGENT
              snmp_oid: 'get[1.3.6.1.2.1.25.2.3.1.6.{#SNMPINDEX}]'
              key: 'vm.memory.used[hrStorageUsed.{#SNMPINDEX}]'
              units: B
              description: |
                MIB: HOST-RESOURCES-MIB
                The amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.
              preprocessing:
                - type: MULTIPLIER
                  parameters:
                    - '{#ALLOC_UNITS}'
              tags:
                - tag: component
                  value: memory
            - uuid: d85df76fd2b7409c84f77459bf037f0e
              name: '{#MEMNAME}: Memory utilization'
              type: CALCULATED
              key: 'vm.memory.util[memoryUsedPercentage.{#SNMPINDEX}]'
              value_type: FLOAT
              units: '%'
              params: 'last(//vm.memory.used[hrStorageUsed.{#SNMPINDEX}])/last(//vm.memory.total[hrStorageSize.{#SNMPINDEX}])*100'
              description: 'Memory utilization in %.'
              tags:
                - tag: component
                  value: memory
              trigger_prototypes:
                - uuid: 6b9010e0ad4e4549ac91a91d4bb3983a
                  expression: 'min(/Arista by SNMP/vm.memory.util[memoryUsedPercentage.{#SNMPINDEX}],5m)>{$MEMORY.UTIL.MAX}'
                  name: 'Arista: {#MEMNAME}: High memory utilization'
                  event_name: 'Arista: {#MEMNAME}: High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m)'
                  priority: AVERAGE
                  description: 'The system is running out of free memory.'
                  tags:
                    - tag: scope
                      value: capacity
                    - tag: scope
                      value: performance
          graph_prototypes:
            - uuid: 1094490b59674fb58ca36cf6543b3bdb
              name: '{#MEMNAME}: Memory utilization'
              ymin_type_1: FIXED
              ymax_type_1: FIXED
              graph_items:
                - drawtype: GRADIENT_LINE
                  color: 199C0D
                  item:
                    host: 'Arista by SNMP'
                    key: 'vm.memory.util[memoryUsedPercentage.{#SNMPINDEX}]'
        - uuid: 3002dbe2caa042dcb2beb058b25500f8
          name: 'Voltage discovery'
          type: DEPENDENT
          key: voltage.discovery
          filter:
            evaltype: OR
            conditions:
              - macro: '{#SENSOR_TYPE}'
                value: 3|4
          description: 'ENTITY-SENSORS-MIB::EntitySensorDataType discovery with volts filter'
          item_prototypes:
            - uuid: 7f66af7d12864f2cbaa8a106979ec427
              name: '{#SENSOR_INFO}: Voltage'
              type: SNMP_AGENT
              snmp_oid: 'get[1.3.6.1.2.1.99.1.1.1.4.{#SNMPINDEX}]'
              key: 'sensor.voltage.value[entPhySensorValue.{#SNMPINDEX}]'
              value_type: FLOAT
              units: V
              description: |
                MIB: ENTITY-SENSORS-MIB
                The most recent measurement obtained by the agent for this sensor.
                To correctly interpret the value of this object, the associated entPhySensorType,
                entPhySensorScale, and entPhySensorPrecision objects must also be examined.
              tags:
                - tag: component
                  value: voltage
              trigger_prototypes:
                - uuid: 1c78dea0380a4bf68b05c1323a208c3a
                  expression: 'min(/Arista by SNMP/sensor.voltage.value[entPhySensorValue.{#SNMPINDEX}],5m) > {#THRESHOLD_HI_CRIT}'
                  name: 'Arista: {#SENSOR_INFO}: Voltage is above the critical threshold'
                  event_name: 'Arista: {#SENSOR_INFO}: Voltage is above the critical threshold of {#THRESHOLD_HI_CRIT}V for 5m'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: HIGH
                  description: 'This trigger uses voltage sensor values defined in the device.'
                  tags:
                    - tag: scope
                      value: notice
                - uuid: 08b4f59d66ea45eaa95426a27586c4bd
                  expression: 'min(/Arista by SNMP/sensor.voltage.value[entPhySensorValue.{#SNMPINDEX}],5m) > {#THRESHOLD_HI_WARN}'
                  name: 'Arista: {#SENSOR_INFO}: Voltage is above the warning threshold'
                  event_name: 'Arista: {#SENSOR_INFO}: Voltage is above the warning threshold of {#THRESHOLD_HI_WARN}V for 5m'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'This trigger uses voltage sensor values defined in the device.'
                  dependencies:
                    - name: 'Arista: {#SENSOR_INFO}: Voltage is above the critical threshold'
                      expression: 'min(/Arista by SNMP/sensor.voltage.value[entPhySensorValue.{#SNMPINDEX}],5m) > {#THRESHOLD_HI_CRIT}'
                  tags:
                    - tag: scope
                      value: notice
                - uuid: d2df35a764234716a286a8019e6c9411
                  expression: 'max(/Arista by SNMP/sensor.voltage.value[entPhySensorValue.{#SNMPINDEX}],5m) < {#THRESHOLD_LO_CRIT}'
                  name: 'Arista: {#SENSOR_INFO}: Voltage is below the critical threshold'
                  event_name: 'Arista: {#SENSOR_INFO}: Voltage is below the critical threshold of {#THRESHOLD_LO_CRIT}V for 5m'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: HIGH
                  description: 'This trigger uses voltage sensor values defined in the device.'
                  tags:
                    - tag: scope
                      value: notice
                - uuid: 481908babd3f44b3a73f3e0a628fe6d4
                  expression: 'max(/Arista by SNMP/sensor.voltage.value[entPhySensorValue.{#SNMPINDEX}],5m) < {#THRESHOLD_LO_WARN}'
                  name: 'Arista: {#SENSOR_INFO}: Voltage is below the warning threshold'
                  event_name: 'Arista: {#SENSOR_INFO}: Voltage is below the warning threshold of {#THRESHOLD_LO_WARN}V for 5m'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'This trigger uses voltage sensor values defined in the device.'
                  dependencies:
                    - name: 'Arista: {#SENSOR_INFO}: Voltage is below the critical threshold'
                      expression: 'max(/Arista by SNMP/sensor.voltage.value[entPhySensorValue.{#SNMPINDEX}],5m) < {#THRESHOLD_LO_CRIT}'
                  tags:
                    - tag: scope
                      value: notice
          master_item:
            key: sensors.get
          overrides:
            - name: 'trigger THRESHOLD_LO_WARN'
              step: '1'
              filter:
                conditions:
                  - macro: '{#THRESHOLD_LO_WARN}'
                    value: ^$
              operations:
                - operationobject: TRIGGER_PROTOTYPE
                  operator: REGEXP
                  value: 'Voltage is below the warning threshold'
                  discover: NO_DISCOVER
            - name: 'trigger THRESHOLD_LO_CRIT'
              step: '2'
              filter:
                conditions:
                  - macro: '{#THRESHOLD_LO_CRIT}'
                    value: ^$
              operations:
                - operationobject: TRIGGER_PROTOTYPE
                  operator: REGEXP
                  value: 'Voltage is below the critical threshold'
                  discover: NO_DISCOVER
            - name: 'trigger THRESHOLD_HI_WARN'
              step: '3'
              filter:
                conditions:
                  - macro: '{#THRESHOLD_HI_WARN}'
                    value: ^$
              operations:
                - operationobject: TRIGGER_PROTOTYPE
                  operator: REGEXP
                  value: 'Voltage is above the warning threshold'
                  discover: NO_DISCOVER
            - name: 'trigger THRESHOLD_HI_CRIT'
              step: '4'
              filter:
                conditions:
                  - macro: '{#THRESHOLD_HI_CRIT}'
                    value: ^$
              operations:
                - operationobject: TRIGGER_PROTOTYPE
                  operator: REGEXP
                  value: 'Voltage is above the critical threshold'
                  discover: NO_DISCOVER
      tags:
        - tag: class
          value: network
        - tag: target
          value: arista
      macros:
        - macro: '{$CPU.UTIL.CRIT}'
          value: '90'
          config:
            type: TEXT
            priority: '11'
            section_name: Thresholds
            label: 'Threshold for CPU utilization (critical)'
            description: 'In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$FAN_CRIT_STATUS}'
          value: '3'
          config:
            type: TEXT
            priority: '2'
            section_name: Other
            label: 'Fan critical status'
        - macro: '{$ICMP_LOSS_WARN}'
          value: '20'
          description: 'Warning threshold of ICMP packet loss in %.'
          config:
            type: TEXT
            priority: '18'
            section_name: Thresholds
            label: 'Threshold of ICMP packet loss'
            description: 'Warning threshold of ICMP packet loss in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$ICMP_RESPONSE_TIME_WARN}'
          value: '0.15'
          description: 'Warning threshold of the average ICMP response time in seconds.'
          config:
            type: TEXT
            priority: '19'
            section_name: Thresholds
            label: 'Threshold of the average ICMP response'
            description: 'Warning threshold of the average ICMP response time in seconds. No less than 0.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$IF.ERRORS.WARN}'
          value: '2'
          description: 'Warning threshold of error packet rate. Can be used with interface name as context.'
          config:
            type: TEXT
            priority: '20'
            section_name: Thresholds
            label: 'Threshold of error packet rate'
            description: 'Warning threshold of error packet rate. Can be used with interface name as context.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$IF.UTIL.MAX}'
          value: '90'
          config:
            type: TEXT
            priority: '21'
            section_name: Thresholds
            label: 'The threshold in the interface utilization'
            description: 'In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$IFCONTROL}'
          value: '1'
          config:
            type: TEXT
            priority: '22'
            section_name: Thresholds
            label: 'Interfaces control'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$MEMORY.NAME.MATCHES}'
          value: '.*'
          description: 'This macro is used in memory discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '15'
            section_name: Filters
            label: 'Memory name filter (include)'
            description: 'This macro is used in memory discovery. Can be overridden on the host or linked template level.'
        - macro: '{$MEMORY.NAME.NOT_MATCHES}'
          value: (Buffer|Cache)
          description: 'Filter is overridden to ignore RAM(Cache) and RAM(Buffers) memory objects.'
          config:
            type: TEXT
            priority: '16'
            section_name: Filters
            label: 'Memory name filter (exclude)'
            description: 'Filter is overridden to ignore RAM(Cache) and RAM(Buffers) memory objects.'
        - macro: '{$MEMORY.TYPE.MATCHES}'
          value: '.*(\.2|hrStorageRam)$'
          description: 'This macro is used in memory discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '14'
            section_name: Filters
            label: 'Memory type filter (include)'
            description: 'This macro is used in memory discovery. Can be overridden on the host or linked template level.'
        - macro: '{$MEMORY.TYPE.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          description: 'This macro is used in memory discovery. Can be overridden on the host or linked template level if you need to filter out results.'
          config:
            type: TEXT
            priority: '13'
            section_name: Filters
            label: 'Memory type filter (exclude)'
            description: 'This macro is used in memory discovery. Can be overridden on the host or linked template level if you need to filter out results.'
        - macro: '{$MEMORY.UTIL.MAX}'
          value: '90'
          description: 'The warning threshold of the "Physical memory: Memory utilization" item.'
          config:
            type: TEXT
            priority: '12'
            section_name: Thresholds
            label: 'Threshold for memory utilization'
            description: 'The warning threshold of the "Physical memory: Memory utilization" item. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$NET.IF.IFADMINSTATUS.MATCHES}'
          value: '^.*'
          config:
            type: TEXT
            priority: '27'
            section_name: Filters
            label: 'Filter for network interface by adminstatus'
        - macro: '{$NET.IF.IFADMINSTATUS.NOT_MATCHES}'
          value: ^2$
          description: 'Ignore down(2) administrative status'
          config:
            type: TEXT
            priority: '28'
            section_name: Filters
            label: 'Filter for network interface by adminstatus (exclude)'
        - macro: '{$NET.IF.IFALIAS.MATCHES}'
          value: '.*'
          config:
            type: TEXT
            priority: '31'
            section_name: Filters
            label: 'Filter for network interfaces by alias'
        - macro: '{$NET.IF.IFALIAS.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          config:
            type: TEXT
            priority: '32'
            section_name: Filters
            label: 'Filter for network interfaces by alias (exclude)'
        - macro: '{$NET.IF.IFDESCR.MATCHES}'
          value: '.*'
          config:
            type: TEXT
            priority: '29'
            section_name: Filters
            label: 'Filter for network interfaces by description'
        - macro: '{$NET.IF.IFDESCR.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          config:
            type: TEXT
            priority: '30'
            section_name: Filters
            label: 'Filter for network interfaces by description (exclude)'
        - macro: '{$NET.IF.IFNAME.MATCHES}'
          value: '^.*$'
          config:
            type: TEXT
            priority: '23'
            section_name: Filters
            label: 'Filter for network interface by name'
        - macro: '{$NET.IF.IFNAME.NOT_MATCHES}'
          value: '(^Software Loopback Interface|^NULL[0-9.]*$|^[Ll]o[0-9.]*$|^[Ss]ystem$|^Nu[0-9.]*$|^veth[0-9a-z]+$|docker[0-9]+|br-[a-z0-9]{12})'
          description: 'Filter out loopbacks, nulls, docker veth links and docker0 bridge by default'
          config:
            type: TEXT
            priority: '24'
            section_name: Filters
            label: 'Filter for network interface by name (exclude)'
            description: 'Filter out loopbacks, nulls, docker veth links and docker0 bridge by default'
        - macro: '{$NET.IF.IFOPERSTATUS.MATCHES}'
          value: '^.*$'
          config:
            type: TEXT
            priority: '25'
            section_name: Filters
            label: 'Filter for network interface by status'
        - macro: '{$NET.IF.IFOPERSTATUS.NOT_MATCHES}'
          value: ^6$
          description: 'Ignore notPresent(6)'
          config:
            type: TEXT
            priority: '26'
            section_name: Filters
            label: 'Filter for network interface by status (exclude)'
        - macro: '{$NET.IF.IFTYPE.MATCHES}'
          value: '.*'
          config:
            type: TEXT
            priority: '33'
            section_name: Filters
            label: 'Filter for network interfaces by type'
        - macro: '{$NET.IF.IFTYPE.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          config:
            type: TEXT
            priority: '34'
            section_name: Filters
            label: 'Filter for network interfaces by type (exclude)'
        - macro: '{$PSU_CRIT_STATUS}'
          value: '2'
          config:
            type: TEXT
            priority: '1'
            section_name: Other
            label: 'Power supply critical status'
        - macro: '{$SNMP.TIMEOUT}'
          value: 5m
          description: 'Time interval for the SNMP availability trigger.'
          config:
            type: TEXT
            priority: '17'
            section_name: Other
            label: 'Time interval'
            description: 'Time interval for the SNMP availability trigger.'
        - macro: '{$VFS.FS.FREE.MIN.CRIT}'
          value: 5G
          description: 'The critical threshold of the filesystem utilization.'
          config:
            type: TEXT
            priority: '7'
            section_name: Thresholds
            label: 'Filesystem free space minimum (critical)'
            description: 'The critical threshold of the filesystem utilization.'
        - macro: '{$VFS.FS.FREE.MIN.WARN}'
          value: 10G
          description: 'The warning threshold of the filesystem utilization.'
          config:
            type: TEXT
            priority: '8'
            section_name: Thresholds
            label: 'Filesystem free space minimum (warning)'
            description: 'The warning threshold of the filesystem utilization.'
        - macro: '{$VFS.FS.FSNAME.MATCHES}'
          value: .+
          description: 'Used in filesystem discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '4'
            section_name: Filters
            label: 'Filter for filesystems by name'
            description: 'Used in filesystem discovery. Can be overridden on the host or linked template level.'
        - macro: '{$VFS.FS.FSNAME.NOT_MATCHES}'
          value: ^(/dev|/sys|/run|/proc|.+/shm$)
          description: 'Used in filesystem discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '3'
            section_name: Filters
            label: 'Filter for filesystems by name (exclude)'
            description: 'Used in filesystem discovery. Can be overridden on the host or linked template level.'
        - macro: '{$VFS.FS.FSTYPE.MATCHES}'
          value: '.*(\.4|\.9|hrStorageFixedDisk|hrStorageFlashMemory)$'
          description: 'Used in filesystem discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '6'
            section_name: Filters
            label: 'Filter for filesystems by type'
            description: 'Used in filesystem discovery. Can be overridden on the host or linked template level.'
        - macro: '{$VFS.FS.FSTYPE.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          description: 'Used in filesystem discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '5'
            section_name: Filters
            label: 'Filter for filesystems by type (exclude)'
            description: 'Used in filesystem discovery. Can be overridden on the host or linked template level.'
        - macro: '{$VFS.FS.PUSED.MAX.CRIT}'
          value: '90'
          config:
            type: TEXT
            priority: '9'
            section_name: Other
            label: 'Filesystem percent used maximum (critical)'
        - macro: '{$VFS.FS.PUSED.MAX.WARN}'
          value: '80'
          config:
            type: TEXT
            priority: '10'
            section_name: Other
            label: 'Filesystem percent used maximum (warning)'
      dashboards:
        - uuid: 9bde3ce1f1d1405387969ab19b8620af
          name: 'Arista: General'
          pages:
            - name: 'Arista: General'
              widgets:
                - type: graph
                  name: 'cpu utilization'
                  width: '36'
                  height: '5'
                  fields:
                    - type: GRAPH
                      name: graphid.0
                      value:
                        host: 'Arista by SNMP'
                        name: 'Arista: CPU utilization'
                    - type: STRING
                      name: reference
                      value: AAAAA
                - type: graphprototype
                  name: 'disk space usage'
                  'y': '5'
                  width: '36'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'Arista by SNMP'
                        name: '{#FSNAME}: Disk space usage'
                    - type: STRING
                      name: reference
                      value: AAAAC
                - type: graphprototype
                  name: 'memory utilization'
                  x: '36'
                  width: '36'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'Arista by SNMP'
                        name: '{#MEMNAME}: Memory utilization'
                    - type: STRING
                      name: reference
                      value: AAAAB
                - type: graphprototype
                  name: 'network traffic'
                  x: '36'
                  'y': '5'
                  width: '36'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'Arista by SNMP'
                        name: 'Interface {#IFNAME}({#IFALIAS}): Network traffic'
                    - type: STRING
                      name: reference
                      value: AAAAD
      valuemaps:
        - uuid: 318f3041aea04848a223de86e589c232
          name: 'ENTITY-SENSORS-MIB::EntitySensorStatus'
          mappings:
            - value: '1'
              newvalue: ok
            - value: '2'
              newvalue: unavailable
            - value: '3'
              newvalue: nonoperational
        - uuid: 15ba17df88eb435d9d48145fba8d9029
          name: 'ENTITY-STATE-MIB::EntityOperState'
          mappings:
            - value: '1'
              newvalue: unknown
            - value: '2'
              newvalue: disabled
            - value: '3'
              newvalue: enabled
            - value: '4'
              newvalue: testing
        - uuid: 322511c8bbf34b8da79b98e47067db64
          name: 'EtherLike-MIB::dot3StatsDuplexStatus'
          mappings:
            - value: '1'
              newvalue: unknown
            - value: '2'
              newvalue: halfDuplex
            - value: '3'
              newvalue: fullDuplex
        - uuid: 97fa6952fa0a4a2a965ba1e88eebe706
          name: 'IF-MIB::ifOperStatus'
          mappings:
            - value: '1'
              newvalue: up
            - value: '2'
              newvalue: down
            - value: '4'
              newvalue: unknown
            - value: '5'
              newvalue: dormant
            - value: '6'
              newvalue: notPresent
            - value: '7'
              newvalue: lowerLayerDown
        - uuid: 629b7642da57472ea36074d43e45ce8e
          name: 'IF-MIB::ifType'
          mappings:
            - value: '1'
              newvalue: other
            - value: '2'
              newvalue: regular1822
            - value: '3'
              newvalue: hdh1822
            - value: '4'
              newvalue: ddnX25
            - value: '5'
              newvalue: rfc877x25
            - value: '6'
              newvalue: ethernetCsmacd
            - value: '7'
              newvalue: iso88023Csmacd
            - value: '8'
              newvalue: iso88024TokenBus
            - value: '9'
              newvalue: iso88025TokenRing
            - value: '10'
              newvalue: iso88026Man
            - value: '11'
              newvalue: starLan
            - value: '12'
              newvalue: proteon10Mbit
            - value: '13'
              newvalue: proteon80Mbit
            - value: '14'
              newvalue: hyperchannel
            - value: '15'
              newvalue: fddi
            - value: '16'
              newvalue: lapb
            - value: '17'
              newvalue: sdlc
            - value: '18'
              newvalue: ds1
            - value: '19'
              newvalue: e1
            - value: '20'
              newvalue: basicISDN
            - value: '21'
              newvalue: primaryISDN
            - value: '22'
              newvalue: propPointToPointSerial
            - value: '23'
              newvalue: ppp
            - value: '24'
              newvalue: softwareLoopback
            - value: '25'
              newvalue: eon
            - value: '26'
              newvalue: ethernet3Mbit
            - value: '27'
              newvalue: nsip
            - value: '28'
              newvalue: slip
            - value: '29'
              newvalue: ultra
            - value: '30'
              newvalue: ds3
            - value: '31'
              newvalue: sip
            - value: '32'
              newvalue: frameRelay
            - value: '33'
              newvalue: rs232
            - value: '34'
              newvalue: para
            - value: '35'
              newvalue: arcnet
            - value: '36'
              newvalue: arcnetPlus
            - value: '37'
              newvalue: atm
            - value: '38'
              newvalue: miox25
            - value: '39'
              newvalue: sonet
            - value: '40'
              newvalue: x25ple
            - value: '41'
              newvalue: iso88022llc
            - value: '42'
              newvalue: localTalk
            - value: '43'
              newvalue: smdsDxi
            - value: '44'
              newvalue: frameRelayService
            - value: '45'
              newvalue: v35
            - value: '46'
              newvalue: hssi
            - value: '47'
              newvalue: hippi
            - value: '48'
              newvalue: modem
            - value: '49'
              newvalue: aal5
            - value: '50'
              newvalue: sonetPath
            - value: '51'
              newvalue: sonetVT
            - value: '52'
              newvalue: smdsIcip
            - value: '53'
              newvalue: propVirtual
            - value: '54'
              newvalue: propMultiplexor
            - value: '55'
              newvalue: ieee80212
            - value: '56'
              newvalue: fibreChannel
            - value: '57'
              newvalue: hippiInterface
            - value: '58'
              newvalue: frameRelayInterconnect
            - value: '59'
              newvalue: aflane8023
            - value: '60'
              newvalue: aflane8025
            - value: '61'
              newvalue: cctEmul
            - value: '62'
              newvalue: fastEther
            - value: '63'
              newvalue: isdn
            - value: '64'
              newvalue: v11
            - value: '65'
              newvalue: v36
            - value: '66'
              newvalue: g703at64k
            - value: '67'
              newvalue: g703at2mb
            - value: '68'
              newvalue: qllc
            - value: '69'
              newvalue: fastEtherFX
            - value: '70'
              newvalue: channel
            - value: '71'
              newvalue: ieee80211
            - value: '72'
              newvalue: ibm370parChan
            - value: '73'
              newvalue: escon
            - value: '74'
              newvalue: dlsw
            - value: '75'
              newvalue: isdns
            - value: '76'
              newvalue: isdnu
            - value: '77'
              newvalue: lapd
            - value: '78'
              newvalue: ipSwitch
            - value: '79'
              newvalue: rsrb
            - value: '80'
              newvalue: atmLogical
            - value: '81'
              newvalue: ds0
            - value: '82'
              newvalue: ds0Bundle
            - value: '83'
              newvalue: bsc
            - value: '84'
              newvalue: async
            - value: '85'
              newvalue: cnr
            - value: '86'
              newvalue: iso88025Dtr
            - value: '87'
              newvalue: eplrs
            - value: '88'
              newvalue: arap
            - value: '89'
              newvalue: propCnls
            - value: '90'
              newvalue: hostPad
            - value: '91'
              newvalue: termPad
            - value: '92'
              newvalue: frameRelayMPI
            - value: '93'
              newvalue: x213
            - value: '94'
              newvalue: adsl
            - value: '95'
              newvalue: radsl
            - value: '96'
              newvalue: sdsl
            - value: '97'
              newvalue: vdsl
            - value: '98'
              newvalue: iso88025CRFPInt
            - value: '99'
              newvalue: myrinet
            - value: '100'
              newvalue: voiceEM
            - value: '101'
              newvalue: voiceFXO
            - value: '102'
              newvalue: voiceFXS
            - value: '103'
              newvalue: voiceEncap
            - value: '104'
              newvalue: voiceOverIp
            - value: '105'
              newvalue: atmDxi
            - value: '106'
              newvalue: atmFuni
            - value: '107'
              newvalue: atmIma
            - value: '108'
              newvalue: pppMultilinkBundle
            - value: '109'
              newvalue: ipOverCdlc
            - value: '110'
              newvalue: ipOverClaw
            - value: '111'
              newvalue: stackToStack
            - value: '112'
              newvalue: virtualIpAddress
            - value: '113'
              newvalue: mpc
            - value: '114'
              newvalue: ipOverAtm
            - value: '115'
              newvalue: iso88025Fiber
            - value: '116'
              newvalue: tdlc
            - value: '117'
              newvalue: gigabitEthernet
            - value: '118'
              newvalue: hdlc
            - value: '119'
              newvalue: lapf
            - value: '120'
              newvalue: v37
            - value: '121'
              newvalue: x25mlp
            - value: '122'
              newvalue: x25huntGroup
            - value: '123'
              newvalue: trasnpHdlc
            - value: '124'
              newvalue: interleave
            - value: '125'
              newvalue: fast
            - value: '126'
              newvalue: ip
            - value: '127'
              newvalue: docsCableMaclayer
            - value: '128'
              newvalue: docsCableDownstream
            - value: '129'
              newvalue: docsCableUpstream
            - value: '130'
              newvalue: a12MppSwitch
            - value: '131'
              newvalue: tunnel
            - value: '132'
              newvalue: coffee
            - value: '133'
              newvalue: ces
            - value: '134'
              newvalue: atmSubInterface
            - value: '135'
              newvalue: l2vlan
            - value: '136'
              newvalue: l3ipvlan
            - value: '137'
              newvalue: l3ipxvlan
            - value: '138'
              newvalue: digitalPowerline
            - value: '139'
              newvalue: mediaMailOverIp
            - value: '140'
              newvalue: dtm
            - value: '141'
              newvalue: dcn
            - value: '142'
              newvalue: ipForward
            - value: '143'
              newvalue: msdsl
            - value: '144'
              newvalue: ieee1394
            - value: '145'
              newvalue: if-gsn
            - value: '146'
              newvalue: dvbRccMacLayer
            - value: '147'
              newvalue: dvbRccDownstream
            - value: '148'
              newvalue: dvbRccUpstream
            - value: '149'
              newvalue: atmVirtual
            - value: '150'
              newvalue: mplsTunnel
            - value: '151'
              newvalue: srp
            - value: '152'
              newvalue: voiceOverAtm
            - value: '153'
              newvalue: voiceOverFrameRelay
            - value: '154'
              newvalue: idsl
            - value: '155'
              newvalue: compositeLink
            - value: '156'
              newvalue: ss7SigLink
            - value: '157'
              newvalue: propWirelessP2P
            - value: '158'
              newvalue: frForward
            - value: '159'
              newvalue: rfc1483
            - value: '160'
              newvalue: usb
            - value: '161'
              newvalue: ieee8023adLag
            - value: '162'
              newvalue: bgppolicyaccounting
            - value: '163'
              newvalue: frf16MfrBundle
            - value: '164'
              newvalue: h323Gatekeeper
            - value: '165'
              newvalue: h323Proxy
            - value: '166'
              newvalue: mpls
            - value: '167'
              newvalue: mfSigLink
            - value: '168'
              newvalue: hdsl2
            - value: '169'
              newvalue: shdsl
            - value: '170'
              newvalue: ds1FDL
            - value: '171'
              newvalue: pos
            - value: '172'
              newvalue: dvbAsiIn
            - value: '173'
              newvalue: dvbAsiOut
            - value: '174'
              newvalue: plc
            - value: '175'
              newvalue: nfas
            - value: '176'
              newvalue: tr008
            - value: '177'
              newvalue: gr303RDT
            - value: '178'
              newvalue: gr303IDT
            - value: '179'
              newvalue: isup
            - value: '180'
              newvalue: propDocsWirelessMaclayer
            - value: '181'
              newvalue: propDocsWirelessDownstream
            - value: '182'
              newvalue: propDocsWirelessUpstream
            - value: '183'
              newvalue: hiperlan2
            - value: '184'
              newvalue: propBWAp2Mp
            - value: '185'
              newvalue: sonetOverheadChannel
            - value: '186'
              newvalue: digitalWrapperOverheadChannel
            - value: '187'
              newvalue: aal2
            - value: '188'
              newvalue: radioMAC
            - value: '189'
              newvalue: atmRadio
            - value: '190'
              newvalue: imt
            - value: '191'
              newvalue: mvl
            - value: '192'
              newvalue: reachDSL
            - value: '193'
              newvalue: frDlciEndPt
            - value: '194'
              newvalue: atmVciEndPt
            - value: '195'
              newvalue: opticalChannel
            - value: '196'
              newvalue: opticalTransport
            - value: '197'
              newvalue: propAtm
            - value: '198'
              newvalue: voiceOverCable
            - value: '199'
              newvalue: infiniband
            - value: '200'
              newvalue: teLink
            - value: '201'
              newvalue: q2931
            - value: '202'
              newvalue: virtualTg
            - value: '203'
              newvalue: sipTg
            - value: '204'
              newvalue: sipSig
            - value: '205'
              newvalue: docsCableUpstreamChannel
            - value: '206'
              newvalue: econet
            - value: '207'
              newvalue: pon155
            - value: '208'
              newvalue: pon622
            - value: '209'
              newvalue: bridge
            - value: '210'
              newvalue: linegroup
            - value: '211'
              newvalue: voiceEMFGD
            - value: '212'
              newvalue: voiceFGDEANA
            - value: '213'
              newvalue: voiceDID
            - value: '214'
              newvalue: mpegTransport
            - value: '215'
              newvalue: sixToFour
            - value: '216'
              newvalue: gtp
            - value: '217'
              newvalue: pdnEtherLoop1
            - value: '218'
              newvalue: pdnEtherLoop2
            - value: '219'
              newvalue: opticalChannelGroup
            - value: '220'
              newvalue: homepna
            - value: '221'
              newvalue: gfp
            - value: '222'
              newvalue: ciscoISLvlan
            - value: '223'
              newvalue: actelisMetaLOOP
            - value: '224'
              newvalue: fcipLink
            - value: '225'
              newvalue: rpr
            - value: '226'
              newvalue: qam
            - value: '227'
              newvalue: lmp
            - value: '228'
              newvalue: cblVectaStar
            - value: '229'
              newvalue: docsCableMCmtsDownstream
            - value: '230'
              newvalue: adsl2
            - value: '231'
              newvalue: macSecControlledIF
            - value: '232'
              newvalue: macSecUncontrolledIF
            - value: '233'
              newvalue: aviciOpticalEther
            - value: '234'
              newvalue: atmbond
            - value: '235'
              newvalue: voiceFGDOS
            - value: '236'
              newvalue: mocaVersion1
            - value: '237'
              newvalue: ieee80216WMAN
            - value: '238'
              newvalue: adsl2plus
            - value: '239'
              newvalue: dvbRcsMacLayer
            - value: '240'
              newvalue: dvbTdm
            - value: '241'
              newvalue: dvbRcsTdma
            - value: '242'
              newvalue: x86Laps
            - value: '243'
              newvalue: wwanPP
            - value: '244'
              newvalue: wwanPP2
            - value: '245'
              newvalue: voiceEBS
            - value: '246'
              newvalue: ifPwType
            - value: '247'
              newvalue: ilan
            - value: '248'
              newvalue: pip
            - value: '249'
              newvalue: aluELP
            - value: '250'
              newvalue: gpon
            - value: '251'
              newvalue: vdsl2
            - value: '252'
              newvalue: capwapDot11Profile
            - value: '253'
              newvalue: capwapDot11Bss
            - value: '254'
              newvalue: capwapWtpVirtualRadio
            - value: '255'
              newvalue: bits
            - value: '256'
              newvalue: docsCableUpstreamRfPort
            - value: '257'
              newvalue: cableDownstreamRfPort
            - value: '258'
              newvalue: vmwareVirtualNic
            - value: '259'
              newvalue: ieee802154
            - value: '260'
              newvalue: otnOdu
            - value: '261'
              newvalue: otnOtu
            - value: '262'
              newvalue: ifVfiType
            - value: '263'
              newvalue: g9981
            - value: '264'
              newvalue: g9982
            - value: '265'
              newvalue: g9983
            - value: '266'
              newvalue: aluEpon
            - value: '267'
              newvalue: aluEponOnu
            - value: '268'
              newvalue: aluEponPhysicalUni
            - value: '269'
              newvalue: aluEponLogicalLink
            - value: '270'
              newvalue: aluGponOnu
            - value: '271'
              newvalue: aluGponPhysicalUni
            - value: '272'
              newvalue: vmwareNicTeam
            - value: '277'
              newvalue: docsOfdmDownstream
            - value: '278'
              newvalue: docsOfdmaUpstream
            - value: '279'
              newvalue: gfast
            - value: '280'
              newvalue: sdci
            - value: '281'
              newvalue: xboxWireless
            - value: '282'
              newvalue: fastdsl
            - value: '283'
              newvalue: docsCableScte55d1FwdOob
            - value: '284'
              newvalue: docsCableScte55d1RetOob
            - value: '285'
              newvalue: docsCableScte55d2DsOob
            - value: '286'
              newvalue: docsCableScte55d2UsOob
            - value: '287'
              newvalue: docsCableNdf
            - value: '288'
              newvalue: docsCableNdr
            - value: '289'
              newvalue: ptm
            - value: '290'
              newvalue: ghn
        - uuid: ab33ce8c3fff400eb49d274d76143a37
          name: 'Service state'
          mappings:
            - value: '0'
              newvalue: Down
            - value: '1'
              newvalue: Up
        - uuid: 564ef39203334aff99b78aa8fb3fd2da
          name: zabbix.host.available
          mappings:
            - value: '0'
              newvalue: 'not available'
            - value: '1'
              newvalue: available
            - value: '2'
              newvalue: unknown
    - uuid: 5265860748e14dea8ed58b35fd9fe3d1
      template: 'Aruba CX 8300s by SNMP'
      name: 'Aruba CX 8300s by SNMP'
      description: |
        Aruba CX8300s by SNMP
        
        MIBs used:
        ARUBAWIRED-FAN-MIB
        ARUBAWIRED-POWERSUPPLY-MIB
        ARUBAWIRED-SYSTEMINFO-MIB
        ARUBAWIRED-TEMPSENSOR-MIB
        OSPF-MIB
        
        Generated by official Zabbix template tool "Templator"
      wizard_ready: 'YES'
      readme: |
        ## Overview
        
        The Aruba CX 8300 series is designed for core and aggregation in enterprise campus networks as well as top-of-rack/data center environments. These are high-performance fixed switches offering port speeds from 1 GbE up to 100 GbE, with maximum switching capacity up to 6.4 Tbps.
      vendor:
        name: Zabbix
        version: 8.0-1
      groups:
        - name: 'Templates/Network devices'
      items:
        - uuid: 6b7cf5c2b6a244cfa6a01d8585611ad7
          name: 'SNMP walk OSPF area'
          type: SNMP_AGENT
          snmp_oid: 'walk[1.3.6.1.2.1.14.2]'
          key: aruba.ospf.area.walk
          history: '0'
          value_type: TEXT
          description: |
            MIB: OSPF-MIB
            Used for discovering OSPF areas.
          preprocessing:
            - type: CHECK_NOT_SUPPORTED
              parameters:
                - '0'
                - 'No Such Object available on this agent at this OID'
          tags:
            - tag: component
              value: raw
        - uuid: 2f5f922cafab488db3fd467efffcb6ad
          name: 'SNMP walk OSPF interface'
          type: SNMP_AGENT
          snmp_oid: 'walk[1.3.6.1.2.1.14.7]'
          key: aruba.ospf.interface.walk
          history: '0'
          value_type: TEXT
          description: |
            MIB: OSPF-MIB
            Used for discovering OSPF interfaces.
          preprocessing:
            - type: CHECK_NOT_SUPPORTED
              parameters:
                - '0'
                - 'No Such Object available on this agent at this OID'
          tags:
            - tag: component
              value: raw
        - uuid: f4c3dcd0c3784198b84b67d083082d72
          name: 'SNMP walk OSPF neighbor'
          type: SNMP_AGENT
          snmp_oid: 'walk[1.3.6.1.2.1.14.10]'
          key: aruba.ospf.neighbor.walk
          history: '0'
          value_type: TEXT
          description: |
            MIB: OSPF-MIB
            Used for discovering OSPF neighbors.
          preprocessing:
            - type: CHECK_NOT_SUPPORTED
              parameters:
                - '0'
                - 'No Such Object available on this agent at this OID'
          tags:
            - tag: component
              value: raw
        - uuid: 8e1a8ba4ebf548df9be813330391521e
          name: 'SNMP walk system FAN'
          type: SNMP_AGENT
          snmp_oid: 'walk[1.3.6.1.4.1.47196.4.1.1.3.11.5.1]'
          key: aruba.system.fan.walk
          history: '0'
          value_type: TEXT
          description: |
            MIB: ARUBAWIRED-FAN-MIB
            Used for discovering system fans.
          tags:
            - tag: component
              value: raw
        - uuid: 25500be700d94f86afe100a6d9307b1b
          name: 'SNMP walk system PSU'
          type: SNMP_AGENT
          snmp_oid: 'walk[1.3.6.1.4.1.47196.4.1.1.3.11.2.1]'
          key: aruba.system.psu.walk
          history: '0'
          value_type: TEXT
          description: |
            MIB: ARUBAWIRED-POWERSUPPLY-MIB
            Used for discovering the system power supply.
          tags:
            - tag: component
              value: raw
        - uuid: 8cf7561f82e945b2aa1a2186860de5fe
          name: 'SNMP walk system resource'
          type: SNMP_AGENT
          snmp_oid: 'walk[1.3.6.1.4.1.47196.4.1.1.3.22.1.0.1]'
          key: aruba.system.resource.walk
          history: '0'
          value_type: TEXT
          description: |
            MIB: ARUBAWIRED-SYSTEMINFO-MIB
            Used for discovering system resources.
          tags:
            - tag: component
              value: raw
        - uuid: cf87723cdd604bd5a4fa6877e40f4c8b
          name: 'SNMP walk system temperature sensor'
          type: SNMP_AGENT
          snmp_oid: 'walk[1.3.6.1.4.1.47196.4.1.1.3.11.3.1]'
          key: aruba.system.sensor.walk
          history: '0'
          value_type: TEXT
          description: |
            MIB: ARUBAWIRED-TEMPSENSOR-MIB
            Used for discovering system temperature sensors.
          tags:
            - tag: component
              value: raw
        - uuid: a057be0738754d97ab70d107b090026a
          name: 'ICMP ping'
          type: SIMPLE
          key: icmpping
          description: |
            The host accessibility by ICMP ping.
            
            0 - ICMP ping fails;
            1 - ICMP ping successful.
          valuemap:
            name: 'Service state'
          tags:
            - tag: component
              value: health
            - tag: component
              value: network
          triggers:
            - uuid: 96ced8bb055e498da2df9f24d8391fe4
              expression: 'max(/Aruba CX 8300s by SNMP/icmpping,#3)=0'
              name: 'Aruba: Unavailable by ICMP ping'
              priority: HIGH
              description: 'Last three attempts returned timeout. Please check device connectivity.'
              tags:
                - tag: scope
                  value: availability
        - uuid: 8f135c5e470b48848324c30b8b87c6ef
          name: 'ICMP loss'
          type: SIMPLE
          key: icmppingloss
          value_type: FLOAT
          units: '%'
          description: 'The percentage of lost packets.'
          tags:
            - tag: component
              value: health
            - tag: component
              value: network
          triggers:
            - uuid: 0fa5c9c675e042dc9245b51417d37cf7
              expression: 'min(/Aruba CX 8300s by SNMP/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/Aruba CX 8300s by SNMP/icmppingloss,5m)<100'
              name: 'Aruba: High ICMP ping loss'
              opdata: 'Loss: {ITEM.LASTVALUE1}'
              priority: WARNING
              description: 'ICMP packet loss detected.'
              dependencies:
                - name: 'Aruba: Unavailable by ICMP ping'
                  expression: 'max(/Aruba CX 8300s by SNMP/icmpping,#3)=0'
              tags:
                - tag: scope
                  value: availability
                - tag: scope
                  value: performance
        - uuid: 3f7f876cf30e4023bf5d34c2521f457b
          name: 'ICMP response time'
          type: SIMPLE
          key: icmppingsec
          value_type: FLOAT
          units: s
          description: 'ICMP ping response time (in seconds).'
          tags:
            - tag: component
              value: health
            - tag: component
              value: network
          triggers:
            - uuid: ebb0b6ec52054fb0b2d67552afe3b699
              expression: 'avg(/Aruba CX 8300s by SNMP/icmppingsec,5m)>{$ICMP_RESPONSE_TIME_WARN}'
              name: 'Aruba: High ICMP ping response time'
              event_name: 'Aruba: High ICMP ping response time (>{$ICMP_RESPONSE_TIME_WARN}s for 5m)'
              opdata: 'Value: {ITEM.LASTVALUE1}'
              priority: WARNING
              description: 'Average ICMP response time is too high.'
              dependencies:
                - name: 'Aruba: High ICMP ping loss'
                  expression: 'min(/Aruba CX 8300s by SNMP/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/Aruba CX 8300s by SNMP/icmppingloss,5m)<100'
                - name: 'Aruba: Unavailable by ICMP ping'
                  expression: 'max(/Aruba CX 8300s by SNMP/icmpping,#3)=0'
              tags:
                - tag: scope
                  value: availability
                - tag: scope
                  value: performance
        - uuid: 09347a20e46544c3a0b9cd448fc408fe
          name: 'SNMP walk network interfaces'
          type: SNMP_AGENT
          snmp_oid: 'walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.2.2.1.10,1.3.6.1.2.1.2.2.1.16,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.2.2.1.5]'
          key: net.if.walk
          history: '0'
          value_type: TEXT
          description: 'Used for discovering interfaces from IF-MIB.'
          tags:
            - tag: component
              value: raw
        - uuid: 14c8d0d25dab4465843c627b1272f827
          name: 'SNMP traps (fallback)'
          type: SNMP_TRAP
          key: snmptrap.fallback
          value_type: LOG
          description: 'The item is used to collect all SNMP traps unmatched by other snmptrap items'
          logtimefmt: 'hh:mm:sszyyyy/MM/dd'
          tags:
            - tag: component
              value: network
        - uuid: 5a43110974e649bdaa3c9e9401cdb118
          name: 'System contact details'
          type: SNMP_AGENT
          snmp_oid: 'get[1.3.6.1.2.1.1.4.0]'
          key: 'system.contact[sysContact.0]'
          delay: 15m
          value_type: CHAR
          description: |
            MIB: SNMPv2-MIB
            The textual identification of the contact person for this managed node, together with information on how to contact this person. If no contact information is known, the value is the zero-length string.
          inventory_link: CONTACT
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 12h
          tags:
            - tag: component
              value: system
        - uuid: 5f4d750bd8f54eeda5c7a36b54ef6c89
          name: 'System description'
          type: SNMP_AGENT
          snmp_oid: 'get[1.3.6.1.2.1.1.1.0]'
          key: 'system.descr[sysDescr.0]'
          delay: 15m
          value_type: CHAR
          description: |
            MIB: SNMPv2-MIB
            A textual description of the entity. This value should
            include the full name and version identification of the system's hardware type, software operating-system, and
            networking software.
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 12h
          tags:
            - tag: component
              value: system
        - uuid: d9f75b965fac43998839f385a95e08cd
          name: 'Uptime (hardware)'
          type: SNMP_AGENT
          snmp_oid: 'get[1.3.6.1.2.1.25.1.1.0]'
          key: 'system.hw.uptime[hrSystemUptime.0]'
          delay: 30s
          trends: '0'
          units: uptime
          description: |
            MIB: HOST-RESOURCES-MIB
            The amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.
          preprocessing:
            - type: CHECK_NOT_SUPPORTED
              parameters:
                - '-1'
              error_handler: CUSTOM_VALUE
              error_handler_params: '0'
            - type: MULTIPLIER
              parameters:
                - '0.01'
          tags:
            - tag: component
              value: system
        - uuid: 3fb049944092439babf4b85b7ef51e9d
          name: 'System location'
          type: SNMP_AGENT
          snmp_oid: 'get[1.3.6.1.2.1.1.6.0]'
          key: 'system.location[sysLocation.0]'
          delay: 15m
          value_type: CHAR
          description: |
            MIB: SNMPv2-MIB
            Physical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.
          inventory_link: LOCATION
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 12h
          tags:
            - tag: component
              value: system
        - uuid: 9f9dd3970d0d490891fce31da2fd2ab9
          name: 'System name'
          type: SNMP_AGENT
          snmp_oid: 'get[1.3.6.1.2.1.1.5.0]'
          key: system.name
          delay: 15m
          value_type: CHAR
          description: |
            MIB: SNMPv2-MIB
            An administratively-assigned name for this managed node.By convention, this is the node's fully-qualified domain name. If the name is unknown, the value is the zero-length string.
          inventory_link: NAME
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 12h
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: c441da1d3aa3434c9bfa461d2a8aeb3f
              expression: 'last(/Aruba CX 8300s by SNMP/system.name,#1)<>last(/Aruba CX 8300s by SNMP/system.name,#2) and length(last(/Aruba CX 8300s by SNMP/system.name))>0'
              name: 'Aruba: System name has changed'
              event_name: 'Aruba: System name has changed (new name: {ITEM.VALUE})'
              priority: INFO
              description: 'The name of the system has changed. Acknowledge to close the problem manually.'
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: notice
                - tag: scope
                  value: security
        - uuid: 771ba8701cc84be69d82aa8ff55f4474
          name: 'Uptime (network)'
          type: SNMP_AGENT
          snmp_oid: 'get[1.3.6.1.2.1.1.3.0]'
          key: 'system.net.uptime[sysUpTime.0]'
          delay: 30s
          trends: '0'
          units: uptime
          description: |
            MIB: SNMPv2-MIB
            Time (in hundredths of a second) since the network management portion of the system was last re-initialized.
          preprocessing:
            - type: MULTIPLIER
              parameters:
                - '0.01'
          tags:
            - tag: component
              value: system
        - uuid: cfedf58e272d484da917d32a10696600
          name: 'System object ID'
          type: SNMP_AGENT
          snmp_oid: 'get[1.3.6.1.2.1.1.2.0]'
          key: 'system.objectid[sysObjectID.0]'
          delay: 15m
          value_type: CHAR
          description: |
            MIB: SNMPv2-MIB
            The vendor's authoritative identification of the network management subsystem contained in the entity. This value is allocated within the SMI enterprises subtree (1.3.6.1.4.1) and provides an easy and unambiguous means for determining`what kind of box' is being managed.  For example, if vendor`Flintstones, Inc.' was assigned the subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router'.
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 12h
          tags:
            - tag: component
              value: system
        - uuid: c2b65af0f2184d699389688a3bd624c6
          name: 'SNMP agent availability'
          type: INTERNAL
          key: 'zabbix[host,snmp,available]'
          description: |
            Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.
            Possible values:
            0 - not available
            1 - available
            2 - unknown
          valuemap:
            name: zabbix.host.available
          tags:
            - tag: component
              value: health
            - tag: component
              value: network
          triggers:
            - uuid: b6f001323c8e4fd1bb1cf84dd8990a56
              expression: 'max(/Aruba CX 8300s by SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0'
              name: 'Aruba: No SNMP data collection'
              opdata: 'Current state: {ITEM.LASTVALUE1}'
              priority: WARNING
              description: 'SNMP is not available for polling. Please check device connectivity and SNMP settings.'
              dependencies:
                - name: 'Aruba: Unavailable by ICMP ping'
                  expression: 'max(/Aruba CX 8300s by SNMP/icmpping,#3)=0'
              tags:
                - tag: scope
                  value: availability
      discovery_rules:
        - uuid: 8b55d9f865a44b07899ee773989ee976
          name: 'Fan discovery'
          type: DEPENDENT
          key: aruba.fan.discovery
          description: 'Used for discovering fans from ARUBAWIRED-FAN-MIB.'
          item_prototypes:
            - uuid: 8f7bde9ff72146ceb23394c7f4955fdc
              name: 'Fan [{#SNMPVALUE}]: Speed'
              type: DEPENDENT
              key: 'aruba.fan.speed[arubaWiredFanRPM.{#SNMPINDEX}]'
              value_type: FLOAT
              units: '!RPM'
              description: |
                MIB: ARUBAWIRED-FAN-MIB
                Current RPM read for the fan. RPM of -1 indicates the fan does not have RPM readback capability.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.47196.4.1.1.3.11.5.1.1.8.{#SNMPINDEX}'
                    - '0'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: aruba.system.fan.walk
              tags:
                - tag: component
                  value: fan
                - tag: fan
                  value: '{#SNMPVALUE}'
            - uuid: 420adcb6a1544a59a7a8c6dfe32f2414
              name: 'Fan [{#SNMPVALUE}]: Status'
              type: DEPENDENT
              key: 'aruba.fan.status[arubaWiredFanStateEnum.{#SNMPINDEX}]'
              description: |
                MIB: ARUBAWIRED-FAN-MIB
                Current status of the fan.
                Possible values:
                1 - Unknown;
                2 - Empty;
                3 - Uninitialized;
                4 - Ok;
                5 - Fault.
              valuemap:
                name: 'Fan status'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.47196.4.1.1.3.11.5.1.1.10.{#SNMPINDEX}'
                    - '0'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: aruba.system.fan.walk
              tags:
                - tag: component
                  value: fan
                - tag: fan
                  value: '{#SNMPVALUE}'
              trigger_prototypes:
                - uuid: 90a16a650b1e4f62b6f55c9e6181d754
                  expression: 'last(/Aruba CX 8300s by SNMP/aruba.fan.status[arubaWiredFanStateEnum.{#SNMPINDEX}])<>4'
                  name: 'Aruba: Fan [{#SNMPVALUE}]: Status is not "Ok"'
                  opdata: 'Current status: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'The fan status is not "Ok".'
                  tags:
                    - tag: scope
                      value: availability
                    - tag: scope
                      value: performance
          master_item:
            key: aruba.system.fan.walk
          preprocessing:
            - type: SNMP_WALK_TO_JSON
              parameters:
                - '{#SNMPVALUE}'
                - 1.3.6.1.4.1.47196.4.1.1.3.11.5.1.1.4
                - '0'
              error_handler: DISCARD_VALUE
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
        - uuid: 28d8f26183e842d89664160b43e643e4
          name: 'OSPF Area discovery'
          type: DEPENDENT
          key: aruba.ospf.area.discovery
          description: 'Used for discovering PSU from OSPF-MIB.'
          item_prototypes:
            - uuid: 1900e153eed041e5a113a0bbe5e15d7e
              name: 'OSPF area [{#SNMPVALUE}]: LSA checksum'
              type: DEPENDENT
              key: 'aruba.ospf.area.lsa.cksumsum[ospfAreaLsaCksumSum.{#SNMPINDEX}]'
              description: |
                MIB: OSPF-MIB
                The 32-bit sum of the checksums of the LSAs contained in this area's link state database.
                This sum excludes external (LS type-5) link state advertisements. The sum can be used to determine if there has
                been a change in a router's link state database, and to compare the link state database of two routers.
                The value should be treated as unsigned when comparing two sums of checksums.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.14.2.1.8.{#SNMPINDEX}'
                    - '0'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: aruba.ospf.area.walk
              tags:
                - tag: area
                  value: '{#SNMPVALUE}'
                - tag: component
                  value: network
            - uuid: 8ed73a4e57a041afbd98420beec665f8
              name: 'OSPF area [{#SNMPVALUE}]: Translator role'
              type: DEPENDENT
              key: 'aruba.ospf.area.lsa.translator.role[ospfAreaNssaTranslatorRole.{#SNMPINDEX}]'
              description: |
                MIB: OSPF-MIB
                Indicates an NSSA border router's ability to perform NSSA translation of type-7 LSAs into type-5 LSAs.
                Possible values:
                1 - Always;
                2 - Candidate.
              valuemap:
                name: 'OSPF translator role'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.14.2.1.11.{#SNMPINDEX}'
                    - '0'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: aruba.ospf.area.walk
              tags:
                - tag: area
                  value: '{#SNMPVALUE}'
                - tag: component
                  value: network
            - uuid: 943511c194ac4e94b2ecb8035310f88c
              name: 'OSPF area [{#SNMPVALUE}]: Translator state'
              type: DEPENDENT
              key: 'aruba.ospf.area.lsa.translator.state[ospfAreaNssaTranslatorState.{#SNMPINDEX}]'
              description: |
                MIB: OSPF-MIB
                Indicates NSSA border router translation state of type-7 LSAs into type-5 LSAs.
                Possible values:
                1 - Enabled;
                2 - Elected;
                3 - Disabled.
                When `Enabled`, the NSSA Border router's `OspfAreaNssaExtTranslatorRole` is `Always`.
                When `Elected`, a candidate NSSA border router is translating type-7 LSAs into type-5.
                When `Disabled`, a candidate NSSA border router is not translating type-7 LSAs into type-5.
              valuemap:
                name: 'OSPF translator state'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.14.2.1.12.{#SNMPINDEX}'
                    - '0'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: aruba.ospf.area.walk
              tags:
                - tag: area
                  value: '{#SNMPVALUE}'
                - tag: component
                  value: network
            - uuid: a1a4bc6d7bf04706aadf41875c7c609a
              name: 'OSPF area [{#SNMPVALUE}]: LSA count'
              type: DEPENDENT
              key: 'aruba.ospf.area.lsa[ospfAreaLsaCount.{#SNMPINDEX}]'
              description: |
                MIB: OSPF-MIB
                The total number of link state advertisements in this area's link state database, excluding
                AS-external LSAs.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.14.2.1.7.{#SNMPINDEX}'
                    - '0'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: aruba.ospf.area.walk
              tags:
                - tag: area
                  value: '{#SNMPVALUE}'
                - tag: component
                  value: network
            - uuid: 47ca8b4fa5d64d69b41ed7122e93beaf
              name: 'OSPF area [{#SNMPVALUE}]: Runs'
              type: DEPENDENT
              key: 'aruba.ospf.area.runs[ospfSpfRuns.{#SNMPINDEX}]'
              description: |
                MIB: OSPF-MIB
                The number of times that the intra-area route table has been calculated using this area's link state database.
                This is typically done using Dijkstra's algorithm.
                Discontinuities in the value of this counter may occur at re-initialization of the management system, and at other
                times as indicated by the value of ospfDiscontinuityTime.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.14.2.1.4.{#SNMPINDEX}'
                    - '0'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: aruba.ospf.area.walk
              tags:
                - tag: area
                  value: '{#SNMPVALUE}'
                - tag: component
                  value: network
            - uuid: a511989aac154b019214f21308b42b8b
              name: 'OSPF area [{#SNMPVALUE}]: Status'
              type: DEPENDENT
              key: 'aruba.ospf.area.status[ospfAreaStatus.{#SNMPINDEX}]'
              description: |
                MIB: OSPF-MIB
                This object permits management of the table by facilitating actions such as row creation, construction,
                and destruction. The value of this object has no effect on whether other objects in this conceptual row can be
                modified.
                Possible values:
                1 - Active;
                2 - Not in service;
                3 - Not ready;
                4 - Create and go;
                5 - Create and wait;
                6 - Destroy.
              valuemap:
                name: 'OSPF area status'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.14.2.1.10.{#SNMPINDEX}'
                    - '0'
              master_item:
                key: aruba.ospf.area.walk
              tags:
                - tag: area
                  value: '{#SNMPVALUE}'
                - tag: component
                  value: network
              trigger_prototypes:
                - uuid: c3f79a1dfc9d4a0b8df21c847dddf0c7
                  expression: 'count(/Aruba CX 8300s by SNMP/aruba.ospf.area.status[ospfAreaStatus.{#SNMPINDEX}],#2,"eq",1)=0'
                  name: 'Aruba: OSPF area [{#SNMPVALUE}]: Status is not "Active"'
                  event_name: 'Aruba: OSPF area [{#SNMPVALUE}]: Status is not "Active": {ITEM.LASTVALUE}'
                  priority: AVERAGE
                  description: 'The status of OSPF area is not "Active".'
                  tags:
                    - tag: scope
                      value: availability
                    - tag: scope
                      value: performance
            - uuid: f94438a6299340c883e8adf14ce81bcd
              name: 'OSPF area [{#SNMPVALUE}]: Auth type'
              type: DEPENDENT
              key: 'aruba.ospf.area.type[ospfAuthType.{#SNMPINDEX}]'
              description: |
                MIB: OSPF-MIB
                The authentication type specified for an area.
                Possible values:
                0 - None;
                1 - Simple password;
                2 - md5.
              valuemap:
                name: 'OSPF area auth type'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.14.2.1.2.{#SNMPINDEX}'
                    - '0'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: aruba.ospf.area.walk
              tags:
                - tag: area
                  value: '{#SNMPVALUE}'
                - tag: component
                  value: network
          master_item:
            key: aruba.ospf.area.walk
          preprocessing:
            - type: SNMP_WALK_TO_JSON
              parameters:
                - '{#SNMPVALUE}'
                - 1.3.6.1.2.1.14.2.1.1
                - '0'
              error_handler: DISCARD_VALUE
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
        - uuid: 05f9a4b0ea544ff490f240f5629ba73f
          name: 'OSPF interface discovery'
          type: DEPENDENT
          key: aruba.ospf.interface.discovery
          description: 'Used for discovering PSU from OSPF-MIB.'
          item_prototypes:
            - uuid: 61e943f269fb4c569094675950513044
              name: 'OSPF interface [{#SNMPVALUE}]: Admin status'
              type: DEPENDENT
              key: 'aruba.ospf.interface.admin.stat[ospfIfAdminStat.{#SNMPINDEX}]'
              description: |
                MIB: OSPF-MIB
                The OSPF interface's administrative status. If enabled, the interface is advertised as an internal route to an area.
                The value 'disabled' denotes that the interface is external to OSPF.
                Possible values:
                1 - Enabled;
                2 - Disabled.
              valuemap:
                name: 'OSPF interface admin status'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.14.7.1.5.{#SNMPINDEX}'
                    - '0'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: aruba.ospf.interface.walk
              tags:
                - tag: component
                  value: network
                - tag: ospf-interface
                  value: '{#SNMPVALUE}'
            - uuid: eb18b543d548404db1d277e3244497b3
              name: 'OSPF interface [{#SNMPVALUE}]: Area ID'
              type: DEPENDENT
              key: 'aruba.ospf.interface.area.id[ospfIfAreaId.{#SNMPINDEX}]'
              value_type: CHAR
              description: |
                MIB: OSPF-MIB
                A 32-bit integer uniquely identifying the area to which the interface connects. Area ID 0.0.0.0 is used for the OSPF backbone.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.14.7.1.3.{#SNMPINDEX}'
                    - '0'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: aruba.ospf.interface.walk
              tags:
                - tag: component
                  value: network
                - tag: ospf-interface
                  value: '{#SNMPVALUE}'
            - uuid: 6261c6bfbe424f409d04e7ab14e24a19
              name: 'OSPF interface [{#SNMPVALUE}]: Events'
              type: DEPENDENT
              key: 'aruba.ospf.interface.events[ospfIfEvents.{#SNMPINDEX}]'
              description: |
                MIB: OSPF-MIB
                The number of times this OSPF interface has changed its state or an error has occurred.
                Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other
                times as indicated by the value of ospfDiscontinuityTime.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.14.7.1.15.{#SNMPINDEX}'
                    - '0'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: aruba.ospf.interface.walk
              tags:
                - tag: component
                  value: network
                - tag: ospf-interface
                  value: '{#SNMPVALUE}'
            - uuid: a080180520104bbcaacd8e3f2a5212eb
              name: 'OSPF interface [{#SNMPVALUE}]: Priority'
              type: DEPENDENT
              key: 'aruba.ospf.interface.rtr.priority[ospfIfRtrPriority.{#SNMPINDEX}]'
              description: |
                MIB: OSPF-MIB
                The priority of this interface. Used in multi-access networks, this field is used in
                the designated router election algorithm. The value 0 signifies that the router is not eligible
                to become the designated router on this particular network. In the event of a tie in this value,
                routers will use their Router ID as a tie breaker.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.14.7.1.6.{#SNMPINDEX}'
                    - '0'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: aruba.ospf.interface.walk
              tags:
                - tag: component
                  value: network
                - tag: ospf-interface
                  value: '{#SNMPVALUE}'
            - uuid: ae11a76ed45b4d4691efa9c4a2d70ea8
              name: 'OSPF interface [{#SNMPVALUE}]: State'
              type: DEPENDENT
              key: 'aruba.ospf.interface.state[ospfIfState.{#SNMPINDEX}]'
              description: |
                MIB: OSPF-MIB
                The OSPF Interface State.
                Possible values:
                1 - Down;
                2 - Loopback;
                3 - Waiting;
                4 - Point to point;
                5 - Designated router;
                6 - Backup designated router;
                7 - Other designated router.
              valuemap:
                name: 'OSPF interface state'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.14.7.1.12.{#SNMPINDEX}'
                    - '0'
              master_item:
                key: aruba.ospf.interface.walk
              tags:
                - tag: component
                  value: network
                - tag: ospf-interface
                  value: '{#SNMPVALUE}'
            - uuid: c92e0874e4c143959632259aac95efbb
              name: 'OSPF interface [{#SNMPVALUE}]: Status'
              type: DEPENDENT
              key: 'aruba.ospf.interface.status[ospfIfStatus.{#SNMPINDEX}]'
              description: |
                MIB: OSPF-MIB
                This object permits management of the table by facilitating actions such as row creation, construction, and destruction.
                The value of this object has no effect on whether other objects in this conceptual row can be modified.
                Possible values:
                1 - Active;
                2 - Not in service;
                3 - Not ready;
                4 - Create and go;
                5 - Create and wait;
                6 - Destroy.
              valuemap:
                name: 'OSPF interface status'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.14.7.1.17.{#SNMPINDEX}'
                    - '0'
              master_item:
                key: aruba.ospf.interface.walk
              tags:
                - tag: component
                  value: network
                - tag: ospf-interface
                  value: '{#SNMPVALUE}'
            - uuid: e8491018f7b146c589ac817203e564b4
              name: 'OSPF interface [{#SNMPVALUE}]: Type'
              type: DEPENDENT
              key: 'aruba.ospf.interface.type[ospfIfType.{#SNMPINDEX}]'
              description: |
                MIB: OSPF-MIB
                The OSPF interface type. By way of a default, this field may be intuited from the corresponding value of ifType.
                Broadcast LANs, such as Ethernet and IEEE 802.5, take the value 'broadcast', X.25 and similar
                technologies take the value 'nbma', and links that are definitively point-to-point take the value 'pointToPoint'.
                Possible values:
                1 - Broadcast;
                2 - NBMA;
                3 - Point to point;
                4 - Virtual link;
                5 - Point to multipoint.
              valuemap:
                name: 'OSPF interface type'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.14.7.1.4.{#SNMPINDEX}'
                    - '0'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: aruba.ospf.interface.walk
              tags:
                - tag: component
                  value: network
                - tag: ospf-interface
                  value: '{#SNMPVALUE}'
          trigger_prototypes:
            - uuid: df52e7ccbf4c460cb02aac16bfd4565b
              expression: '(count(/Aruba CX 8300s by SNMP/aruba.ospf.interface.state[ospfIfState.{#SNMPINDEX}],#2,"eq",3)=2 or count(/Aruba CX 8300s by SNMP/aruba.ospf.interface.state[ospfIfState.{#SNMPINDEX}],#2,"eq",1)=2) and last(/Aruba CX 8300s by SNMP/aruba.ospf.interface.admin.stat[ospfIfAdminStat.{#SNMPINDEX}])=1'
              name: 'Aruba: OSPF Interface [{#SNMPVALUE}]: State is "Down" or "Waiting"'
              opdata: 'Current state: {ITEM.LASTVALUE1}'
              priority: AVERAGE
              description: 'The OSPF Interface state is "Down" or "Waiting".'
              tags:
                - tag: scope
                  value: availability
                - tag: scope
                  value: performance
            - uuid: fe1350146a71445ea8a7765a2ce8f26e
              expression: 'count(/Aruba CX 8300s by SNMP/aruba.ospf.interface.status[ospfIfStatus.{#SNMPINDEX}],#2,"ne",1)=2 and last(/Aruba CX 8300s by SNMP/aruba.ospf.interface.admin.stat[ospfIfAdminStat.{#SNMPINDEX}])=1'
              name: 'Aruba: OSPF interface [{#SNMPVALUE}]: Status is not "Active"'
              opdata: 'Current status: {ITEM.LASTVALUE1}'
              priority: AVERAGE
              description: 'The OSPF interface status is not "Active".'
              tags:
                - tag: scope
                  value: availability
                - tag: scope
                  value: performance
          master_item:
            key: aruba.ospf.interface.walk
          preprocessing:
            - type: SNMP_WALK_TO_JSON
              parameters:
                - '{#SNMPVALUE}'
                - 1.3.6.1.2.1.14.7.1.1
                - '0'
              error_handler: DISCARD_VALUE
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
        - uuid: 2221a4910f56484fa1e4c0388e69c072
          name: 'OSPF Neighbor discovery'
          type: DEPENDENT
          key: aruba.ospf.neighbor.discovery
          description: 'Used for discovering PSU from OSPF-MIB.'
          item_prototypes:
            - uuid: 3bfda8b21b0443408121c91f19545a6c
              name: 'OSPF neighbor [{#SNMPVALUE}]: Events'
              type: DEPENDENT
              key: 'aruba.ospf.neighbor.events[ospfNbrEvents.{#SNMPINDEX}]'
              description: |
                MIB: OSPF-MIB
                The number of times this neighbor relationship has changed state or an error has occurred.
                
                Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other
                times as indicated by the value of ospfDiscontinuityTime.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.14.10.1.7.{#SNMPINDEX}'
                    - '0'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: aruba.ospf.neighbor.walk
              tags:
                - tag: component
                  value: network
                - tag: neighbor
                  value: '{#SNMPVALUE}'
            - uuid: 5c67c1f185c14e94b60f50f3667a53c4
              name: 'OSPF neighbor [{#SNMPVALUE}]: Options'
              type: DEPENDENT
              key: 'aruba.ospf.neighbor.options[ospfNbrOptions.{#SNMPINDEX}]'
              description: |
                MIB: OSPF-MIB
                A bit mask corresponding to the neighbor's options field.
                
                Bit 0, if set, indicates that the system will operate on Type of Service metrics other than TOS 0.
                If zero, the neighbor will ignore all metrics except the TOS 0 metric.
                
                Bit 1, if set, indicates that the associated area accepts and operates on external
                information; if zero, it is a stub area.
                
                Bit 2, if set, indicates that the system is capable of routing IP multicast datagrams – it implements the multicast extensions to OSPF.
                
                Bit 3, if set, indicates that the associated area is an NSSA. These areas are capable of carrying type-7 external advertisements,
                which are translated into type-5 external advertisements at NSSA borders.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.14.10.1.4.{#SNMPINDEX}'
                    - '0'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: aruba.ospf.neighbor.walk
              tags:
                - tag: component
                  value: network
                - tag: neighbor
                  value: '{#SNMPVALUE}'
            - uuid: 994d35d28ff043619a5917df64b2f24e
              name: 'OSPF neighbor [{#SNMPVALUE}]: Priority'
              type: DEPENDENT
              key: 'aruba.ospf.neighbor.priority[ospfNbrPriority.{#SNMPINDEX}]'
              description: |
                MIB: OSPF-MIB
                The priority of this neighbor in the designated router election algorithm. The value 0 signifies
                that the neighbor is not eligible to become the designated router on this particular network.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.14.10.1.5.{#SNMPINDEX}'
                    - '0'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: aruba.ospf.neighbor.walk
              tags:
                - tag: component
                  value: network
                - tag: neighbor
                  value: '{#SNMPVALUE}'
            - uuid: c7f9a4e76bd044799948846eb8f0a783
              name: 'OSPF neighbor [{#SNMPVALUE}]: Retrans queue length'
              type: DEPENDENT
              key: 'aruba.ospf.neighbor.retrans.q.len[ospfNbrLsRetransQLen.{#SNMPINDEX}]'
              description: |
                MIB: OSPF-MIB
                The current length of the retransmission queue.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.14.10.1.8.{#SNMPINDEX}'
                    - '0'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: aruba.ospf.neighbor.walk
              tags:
                - tag: component
                  value: network
                - tag: neighbor
                  value: '{#SNMPVALUE}'
            - uuid: 7de8cd0ab2c44bd0aa099e3b952161d8
              name: 'OSPF neighbor [{#SNMPVALUE}]: Neighbor router ID'
              type: DEPENDENT
              key: 'aruba.ospf.neighbor.rtr.id[ospfNbrRtrId.{#SNMPINDEX}]'
              value_type: CHAR
              description: |
                MIB: OSPF-MIB
                A 32-bit integer (represented as a type IpAddress) uniquely identifying the neighboring router in the Autonomous System.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.14.10.1.3.{#SNMPINDEX}'
                    - '0'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: aruba.ospf.neighbor.walk
              tags:
                - tag: component
                  value: network
                - tag: neighbor
                  value: '{#SNMPVALUE}'
            - uuid: 79d04cecb34e4fb3ac6b12cc645c4f3d
              name: 'OSPF neighbor [{#SNMPVALUE}]: State'
              type: DEPENDENT
              key: 'aruba.ospf.neighbor.state[ospfNbrState.{#SNMPINDEX}]'
              description: |
                MIB: OSPF-MIB
                The state of the relationship with this neighbor.
                Possible values:
                1 - Down;
                2 - Attempt;
                3 - Init;
                4 - Two way;
                5 - Exchange start;
                6 - Exchange;
                7 - Loading;
                8 - Full.
              valuemap:
                name: 'OSPF neighbor state'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.14.10.1.6.{#SNMPINDEX}'
                    - '0'
              master_item:
                key: aruba.ospf.neighbor.walk
              tags:
                - tag: component
                  value: network
                - tag: neighbor
                  value: '{#SNMPVALUE}'
              trigger_prototypes:
                - uuid: 42118a5de26d4e64a116366ce4422513
                  expression: 'count(/Aruba CX 8300s by SNMP/aruba.ospf.neighbor.state[ospfNbrState.{#SNMPINDEX}],#2,"eq",8)=0 and count(/Aruba CX 8300s by SNMP/aruba.ospf.neighbor.state[ospfNbrState.{#SNMPINDEX}],#2,"eq",4)=0'
                  name: 'Aruba: OSPF neighbor [{#SNMPVALUE}]: State is not "Full" or "Two way"'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'The neighbor state is not "Full" or "Two way".'
                  tags:
                    - tag: scope
                      value: availability
                    - tag: scope
                      value: performance
            - uuid: b0141725f0564dee97dee2280d950184
              name: 'OSPF neighbor [{#SNMPVALUE}]: Status'
              type: DEPENDENT
              key: 'aruba.ospf.neighbor.status[ospfNbmaNbrStatus.{#SNMPINDEX}]'
              description: |
                MIB: OSPF-MIB
                This object permits management of the table by facilitating actions such as row creation,
                construction, and destruction.
                
                The value of this object has no effect on whether other objects in this conceptual row can be
                modified.
                Possible values:
                1 - Active;
                2 - Not in service;
                3 - Not ready;
                4 - Create and go;
                5 - Create and wait;
                6 - Destroy.
              valuemap:
                name: 'OSPF neighbor status'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.14.10.1.9.{#SNMPINDEX}'
                    - '0'
              master_item:
                key: aruba.ospf.neighbor.walk
              tags:
                - tag: component
                  value: network
                - tag: neighbor
                  value: '{#SNMPVALUE}'
              trigger_prototypes:
                - uuid: afc09cf846ea499c9edcc86ad69155b5
                  expression: 'count(/Aruba CX 8300s by SNMP/aruba.ospf.neighbor.status[ospfNbmaNbrStatus.{#SNMPINDEX}],#2,"eq",1)=0'
                  name: 'Aruba: OSPF neighbor [{#SNMPVALUE}]: Status is not "Active"'
                  opdata: 'Current status: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'The neighbor status is not "Active".'
                  tags:
                    - tag: scope
                      value: availability
                    - tag: scope
                      value: performance
          master_item:
            key: aruba.ospf.neighbor.walk
          preprocessing:
            - type: SNMP_WALK_TO_JSON
              parameters:
                - '{#SNMPVALUE}'
                - 1.3.6.1.2.1.14.10.1.1
                - '0'
              error_handler: DISCARD_VALUE
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
        - uuid: eb9c0879dff343d488f12e3860649edf
          name: 'PSU discovery'
          type: DEPENDENT
          key: aruba.psu.discovery
          description: 'Used for discovering PSU from ARUBAWIRED-POWERSUPPLY-MIB.'
          item_prototypes:
            - uuid: 97a068f9b8dd4aae855098677816bdc2
              name: 'PSU [{#SNMPVALUE}]: Instantaneous power'
              type: DEPENDENT
              key: 'aruba.psu.power[arubaWiredPSUInstantaneousPower.{#SNMPINDEX}]'
              units: W
              description: |
                MIB: ARUBAWIRED-POWERSUPPLY-MIB
                Total instantaneous power supplied by the power supply in watts.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.47196.4.1.1.3.11.2.1.1.7.{#SNMPINDEX}'
                    - '0'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: aruba.system.psu.walk
              tags:
                - tag: component
                  value: psu
                - tag: psu
                  value: '{#SNMPVALUE}'
              trigger_prototypes:
                - uuid: a3b4d18fb60144658f704b92a2eb2390
                  expression: '(last(/Aruba CX 8300s by SNMP/aruba.psu.power[arubaWiredPSUInstantaneousPower.{#SNMPINDEX}])*100/{#ARUBA.POWER.SUPPLY.MAX.POWER}) > {$ARUBA.POWER.SUPPLY.THR.MAX}'
                  name: 'Aruba: PSU [{#SNMPVALUE}]: High power utilization'
                  event_name: 'Aruba: PSU [{#SNMPVALUE}]: High power utilization: {ITEM.LASTVALUE} (>{$ARUBA.POWER.SUPPLY.THR.MAX} of maximum)'
                  opdata: 'Current utilization: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'Instantaneous power supplied more than {$ARUBA.POWER.SUPPLY.THR.MAX} of maximum.'
                  tags:
                    - tag: scope
                      value: capacity
                    - tag: scope
                      value: performance
            - uuid: b5789b1ae32646509c248fea06169b65
              name: 'PSU [{#SNMPVALUE}]: State'
              type: DEPENDENT
              key: 'aruba.psu.state[arubaWiredPSUStateEnum.{#SNMPINDEX}]'
              description: |
                MIB: ARUBAWIRED-POWERSUPPLY-MIB
                Current status for the power supply.
                Possible values:
                1 - Ok;
                2 - Fault Absent;
                3 - Fault Input;
                4 - Fault Output;
                5 - Fault POE;
                6 - Fault No Recov;
                7 - Alert;
                8 - Unknown;
                9 - Unsupported;
                10 - Warning;
                11 - Init;
                12 - Empty;
                13 - Fault Airflow;
                14 - Fault Redundancy.
              valuemap:
                name: 'Power supply state'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.47196.4.1.1.3.11.2.1.1.11.{#SNMPINDEX}'
                    - '0'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: aruba.system.psu.walk
              tags:
                - tag: component
                  value: psu
                - tag: psu
                  value: '{#SNMPVALUE}'
              trigger_prototypes:
                - uuid: 9b93888c69624f9c908a7601c04e20f9
                  expression: 'last(/Aruba CX 8300s by SNMP/aruba.psu.state[arubaWiredPSUStateEnum.{#SNMPINDEX}])<>1'
                  name: 'Aruba: PSU [{#SNMPVALUE}]: State is not "Ok"'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'The PSU status is not "Ok".'
                  tags:
                    - tag: scope
                      value: availability
                    - tag: scope
                      value: performance
          master_item:
            key: aruba.system.psu.walk
          preprocessing:
            - type: SNMP_WALK_TO_JSON
              parameters:
                - '{#SNMPVALUE}'
                - 1.3.6.1.4.1.47196.4.1.1.3.11.2.1.1.3
                - '0'
                - '{#ARUBA.POWER.SUPPLY.MAX.POWER}'
                - 1.3.6.1.4.1.47196.4.1.1.3.11.2.1.1.8
                - '0'
              error_handler: DISCARD_VALUE
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
        - uuid: fe04a84c30e4476fb9f1d3543f4ca031
          name: 'Resource discovery'
          type: DEPENDENT
          key: aruba.resource.discovery
          description: 'Used for discovering system resources from ARUBAWIRED-SYSTEMINFO-MIB.'
          item_prototypes:
            - uuid: c4011281ee2f4d38883ebfcff48325b6
              name: 'Module [{#SNMPVALUE}]: CPU load average 1 min'
              type: DEPENDENT
              key: 'aruba.system.cpu.la1[arubaWiredSystemInfoCpuAvgOneMin.{#SNMPINDEX}]'
              units: '%'
              description: |
                MIB: ARUBAWIRED-SYSTEMINFO-MIB
                The percentage of CPU utilization of the subsystem averaged across all the CPUs of the system over a one-minute period.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.47196.4.1.1.3.22.1.0.1.1.10.{#SNMPINDEX}'
                    - '0'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: aruba.system.resource.walk
              tags:
                - tag: component
                  value: cpu
            - uuid: f140efa0c906458d968b20773c5397ca
              name: 'Module [{#SNMPVALUE}]: CPU load average 5 min'
              type: DEPENDENT
              key: 'aruba.system.cpu.la5[arubaWiredSystemInfoCpuAvgFiveMin.{#SNMPINDEX}]'
              units: '%'
              description: |
                MIB: ARUBAWIRED-SYSTEMINFO-MIB
                The percentage of CPU utilization of the subsystem averaged across all the CPUs of the system period of five minutes.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.47196.4.1.1.3.22.1.0.1.1.11.{#SNMPINDEX}'
                    - '0'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: aruba.system.resource.walk
              tags:
                - tag: component
                  value: cpu
            - uuid: b4c26787aa4a4c1a83e9f8cd7afec78f
              name: 'Module [{#SNMPVALUE}]: CPU utilization'
              type: DEPENDENT
              key: 'aruba.system.cpu.utilization[arubaWiredSystemInfoCpu.{#SNMPINDEX}]'
              units: '%'
              description: |
                MIB: ARUBAWIRED-SYSTEMINFO-MIB
                The percentage of CPU utilization of the subsystem averaged across all the CPUs of the system.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.47196.4.1.1.3.22.1.0.1.1.3.{#SNMPINDEX}'
                    - '0'
              master_item:
                key: aruba.system.resource.walk
              tags:
                - tag: component
                  value: cpu
              trigger_prototypes:
                - uuid: 6e8a39fda423439883bc90a587371360
                  expression: 'min(/Aruba CX 8300s by SNMP/aruba.system.cpu.utilization[arubaWiredSystemInfoCpu.{#SNMPINDEX}],5m)>{$ARUBA.CPU.UTIL.MAX}'
                  name: 'Aruba: Generic SNMP: Module [{#SNMPVALUE}]: High CPU utilization'
                  event_name: 'Aruba: Generic SNMP: Module [{#SNMPVALUE}]: High CPU utilization (>{$ARUBA.CPU.UTIL.MAX}% for 5m)'
                  opdata: 'Current utilization: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'The system is running out of free memory.'
                  tags:
                    - tag: scope
                      value: capacity
                    - tag: scope
                      value: performance
            - uuid: d7d19a92c1b046c285ee91e7c9524663
              name: 'Module [{#SNMPVALUE}]: Memory usage'
              type: DEPENDENT
              key: 'aruba.system.memory.usage[arubaWiredSystemInfoMemory.{#SNMPINDEX}]'
              units: '%'
              description: |
                MIB: ARUBAWIRED-SYSTEMINFO-MIB
                Subsystem memory usage in percent.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.47196.4.1.1.3.22.1.0.1.1.4.{#SNMPINDEX}'
                    - '0'
              master_item:
                key: aruba.system.resource.walk
              tags:
                - tag: component
                  value: memory
              trigger_prototypes:
                - uuid: 8d630ee773474d8a8020c9888ce86a07
                  expression: 'min(/Aruba CX 8300s by SNMP/aruba.system.memory.usage[arubaWiredSystemInfoMemory.{#SNMPINDEX}],5m)>{$ARUBA.MEMORY.UTIL.MAX}'
                  name: 'Aruba: Generic SNMP: Module [{#SNMPVALUE}]: High memory utilization'
                  event_name: 'Aruba: Generic SNMP: Module [{#SNMPVALUE}]: High memory utilization (>{$ARUBA.MEMORY.UTIL.MAX}% for 5m)'
                  opdata: 'Current utilization: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'The system is running out of free memory.'
                  tags:
                    - tag: scope
                      value: capacity
                    - tag: scope
                      value: performance
            - uuid: 7146cf97b48f49e3a97215537f8690c0
              name: 'Module [{#SNMPVALUE}]: Storage core dump utilization'
              type: DEPENDENT
              key: 'aruba.system.storage.coredump.utilization[arubaWiredSystemInfoStorageCoredump.{#SNMPINDEX}]'
              units: '%'
              description: |
                MIB: ARUBAWIRED-SYSTEMINFO-MIB
                Utilization of core dump storage partition in percent.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.47196.4.1.1.3.22.1.0.1.1.7.{#SNMPINDEX}'
                    - '0'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: aruba.system.resource.walk
              tags:
                - tag: component
                  value: memory
            - uuid: 660a53c1bdb244ccbbbb5b1ab58efef5
              name: 'Module [{#SNMPVALUE}]: Storage log utilization'
              type: DEPENDENT
              key: 'aruba.system.storage.log.utilization[arubaWiredSystemInfoStorageLog.{#SNMPINDEX}]'
              units: '%'
              description: |
                MIB: ARUBAWIRED-SYSTEMINFO-MIB
                Utilization of log storage partition in percent.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.47196.4.1.1.3.22.1.0.1.1.6.{#SNMPINDEX}'
                    - '0'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: aruba.system.resource.walk
              tags:
                - tag: component
                  value: memory
            - uuid: 7d87e1e4bbfb4549a916a43a83739342
              name: 'Module [{#SNMPVALUE}]: Storage NOS utilization'
              type: DEPENDENT
              key: 'aruba.system.storage.nos.utilization[arubaWiredSystemInfoStorageNos.{#SNMPINDEX}]'
              units: '%'
              description: |
                MIB: ARUBAWIRED-SYSTEMINFO-MIB
                Utilization of network operating system storage partition in percent.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.47196.4.1.1.3.22.1.0.1.1.5.{#SNMPINDEX}'
                    - '0'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: aruba.system.resource.walk
              tags:
                - tag: component
                  value: memory
            - uuid: 0431b41aa56c4e9bb47fcd56943339d3
              name: 'Module [{#SNMPVALUE}]: Storage security utilization'
              type: DEPENDENT
              key: 'aruba.system.storage.security.utilization[arubaWiredSystemInfoStorageSecurity.{#SNMPINDEX}]'
              units: '%'
              description: |
                MIB: ARUBAWIRED-SYSTEMINFO-MIB
                Utilization of security storage partition in percent.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.47196.4.1.1.3.22.1.0.1.1.8.{#SNMPINDEX}'
                    - '0'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: aruba.system.resource.walk
              tags:
                - tag: component
                  value: memory
            - uuid: 65ac4ca5676b45d3804121c102644290
              name: 'Module [{#SNMPVALUE}]: Storage self test utilization'
              type: DEPENDENT
              key: 'aruba.system.storage.selftest.utilization[arubaWiredSystemInfoStorageSelftest.{#SNMPINDEX}]'
              units: '%'
              description: |
                MIB: ARUBAWIRED-SYSTEMINFO-MIB
                Utilization of self test storage partition in percent.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.47196.4.1.1.3.22.1.0.1.1.9.{#SNMPINDEX}'
                    - '0'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: aruba.system.resource.walk
              tags:
                - tag: component
                  value: memory
          graph_prototypes:
            - uuid: 9e0c9d09d27d4d02a296abf3ccd55910
              name: 'Generic SNMP: Module [{#SNMPVALUE}]: CPU utilization'
              ymin_type_1: FIXED
              ymax_type_1: FIXED
              graph_items:
                - drawtype: GRADIENT_LINE
                  color: 199C0D
                  item:
                    host: 'Aruba CX 8300s by SNMP'
                    key: 'aruba.system.cpu.utilization[arubaWiredSystemInfoCpu.{#SNMPINDEX}]'
            - uuid: ef659d7d40ba4d77aedbaf57e6a2c04f
              name: 'Generic SNMP: Module [{#SNMPVALUE}]: Memory utilization'
              ymin_type_1: FIXED
              ymax_type_1: FIXED
              graph_items:
                - drawtype: GRADIENT_LINE
                  color: 199C0D
                  item:
                    host: 'Aruba CX 8300s by SNMP'
                    key: 'aruba.system.memory.usage[arubaWiredSystemInfoMemory.{#SNMPINDEX}]'
          master_item:
            key: aruba.system.resource.walk
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  const data = value.split("\n");
                  
                  var base_oid = ".1.3.6.1.4.1.47196.4.1.1.3.22.1.0.1.1.3",
                  	lld_json = [];
                  
                  for (var line in data) {
                  	var index = data[line].indexOf(base_oid);
                  
                  	if (index !== -1) {
                  		var result = [],
                  			oid = data[line].split(' ')[0],
                  			tail = oid.substring(index + base_oid.length + 1),
                  			parts = tail.split('.');
                  
                  		var i = 0;
                  		while (i < parts.length) {
                  			var len = parseInt(parts[i]);
                  			if (isNaN(len) || len < 1 || i + len >= parts.length) {
                  				i++;
                  				continue;
                  			}
                  
                  			var isAscii = true;
                  			for (var j = 0; j < len; j++) {
                  				var val = parseInt(parts[i + 1 + j]);
                  				if (val < 32 || val > 126) {
                  					isAscii = false;
                  					break;
                  				}
                  			}
                  
                  			if (isAscii) {
                  				var str = '';
                  				for (var j = 0; j < len; j++) {
                  					str += String.fromCharCode(parseInt(parts[i + 1 + j]));
                  				}
                  				result.push(str);
                  				i = i + 1 + len;
                  			}
                  			else {
                  				i++;
                  			}
                  		}
                  
                  		lld_json.push({'{#SNMPVALUE}': result.join(" "), '{#SNMPINDEX}': tail});
                  	}
                  }
                  
                  return JSON.stringify(lld_json);
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
        - uuid: 24498833e71d4106ac6c590ee08a3dc3
          name: 'Sensor discovery'
          type: DEPENDENT
          key: aruba.sensor.discovery
          description: 'Used for discovering temperature sensors from ARUBAWIRED-TEMPSENSOR-MIB.'
          item_prototypes:
            - uuid: 4a9d404cb8cb43679095f89b0d2f3bae
              name: 'Sensor [{#SNMPVALUE}]: State'
              type: DEPENDENT
              key: 'aruba.system.sensors[arubaWiredTempSensorState.{#SNMPINDEX}]'
              value_type: CHAR
              description: |
                MIB: ARUBAWIRED-TEMPSENSOR-MIB
                Current status for the temperature sensor.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.47196.4.1.1.3.11.3.1.1.6.{#SNMPINDEX}'
                    - '0'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: aruba.system.sensor.walk
              tags:
                - tag: component
                  value: sensor
                - tag: sensor
                  value: '{#SNMPVALUE}'
              trigger_prototypes:
                - uuid: e3bdb244253344428a6571b2a76fd994
                  expression: 'last(/Aruba CX 8300s by SNMP/aruba.system.sensors[arubaWiredTempSensorState.{#SNMPINDEX}])<>"normal"'
                  name: 'Aruba: Sensor [{#SNMPVALUE}]: State is not "normal"'
                  event_name: 'Aruba: Sensor [{#SNMPVALUE}]: State is not "normal": {ITEM.LASTVALUE}'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'The current temperature sensor state is not "normal".'
                  tags:
                    - tag: scope
                      value: availability
                    - tag: scope
                      value: performance
            - uuid: 824cca3e4dbd484cb955e69f40fcf341
              name: 'Sensor [{#SNMPVALUE}]: Temperature'
              type: DEPENDENT
              key: 'aruba.system.sensors[arubaWiredTempSensorTemperature.{#SNMPINDEX}]'
              value_type: FLOAT
              units: °C
              description: |
                MIB: ARUBAWIRED-TEMPSENSOR-MIB
                Current temperature value read from the temperature sensor.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.47196.4.1.1.3.11.3.1.1.7.{#SNMPINDEX}'
                    - '0'
                - type: MULTIPLIER
                  parameters:
                    - '0.001'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: aruba.system.sensor.walk
              tags:
                - tag: component
                  value: sensor
                - tag: sensor
                  value: '{#SNMPVALUE}'
              trigger_prototypes:
                - uuid: c6dd45c473b045c891a4436a2550c977
                  expression: 'min(/Aruba CX 8300s by SNMP/aruba.system.sensors[arubaWiredTempSensorTemperature.{#SNMPINDEX}],5m)>{#ARUBA.TEMPERATURE.MAX}'
                  name: 'Aruba: Sensor [{#SNMPVALUE}]: High temperature'
                  event_name: 'Aruba: Sensor [{#SNMPVALUE}]: High temperature (>{#ARUBA.TEMPERATURE.MAX} °C)'
                  opdata: 'Current temperature: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'The current temperature is greater than the threshold state.'
                  tags:
                    - tag: scope
                      value: availability
                    - tag: scope
                      value: performance
                - uuid: 47ff244e82e448508b2223c0f955513c
                  expression: 'max(/Aruba CX 8300s by SNMP/aruba.system.sensors[arubaWiredTempSensorTemperature.{#SNMPINDEX}],5m)<{#ARUBA.TEMPERATURE.MIN}'
                  name: 'Aruba: Sensor [{#SNMPVALUE}]: Low temperature'
                  event_name: 'Aruba: Sensor [{#SNMPVALUE}]: Low temperature (<{#ARUBA.TEMPERATURE.MIN} °C)'
                  priority: AVERAGE
                  description: 'The current temperature is less than the threshold state.'
                  tags:
                    - tag: scope
                      value: availability
                    - tag: scope
                      value: performance
          graph_prototypes:
            - uuid: f3a97e48f8e448d084035248a5c5c1cf
              name: 'Sensor [{#SNMPVALUE}]: Temperature'
              graph_items:
                - drawtype: GRADIENT_LINE
                  color: 199C0D
                  item:
                    host: 'Aruba CX 8300s by SNMP'
                    key: 'aruba.system.sensors[arubaWiredTempSensorTemperature.{#SNMPINDEX}]'
          master_item:
            key: aruba.system.sensor.walk
          preprocessing:
            - type: SNMP_WALK_TO_JSON
              parameters:
                - '{#SNMPVALUE}'
                - 1.3.6.1.4.1.47196.4.1.1.3.11.3.1.1.5
                - '0'
                - '{#ARUBA.TEMPERATURE.MAX}'
                - 1.3.6.1.4.1.47196.4.1.1.3.11.3.1.1.9
                - '0'
                - '{#ARUBA.TEMPERATURE.MIN}'
                - 1.3.6.1.4.1.47196.4.1.1.3.11.3.1.1.8
                - '0'
              error_handler: DISCARD_VALUE
            - type: JAVASCRIPT
              parameters:
                - |
                  const json_data = JSON.parse(value);
                  
                  for (var entity in json_data) {
                  	json_data[entity]["{#ARUBA.TEMPERATURE.MIN}"] = json_data[entity]["{#ARUBA.TEMPERATURE.MIN}"]/1000;
                  	json_data[entity]["{#ARUBA.TEMPERATURE.MAX}"] = json_data[entity]["{#ARUBA.TEMPERATURE.MAX}"]/1000;
                  }
                  
                  return JSON.stringify(json_data);
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
        - uuid: 393e6f00ffda4c2b82ed70985f69f65f
          name: 'Network interfaces discovery'
          type: DEPENDENT
          key: net.if.discovery
          filter:
            evaltype: AND
            conditions:
              - macro: '{#IFADMINSTATUS}'
                value: '{$NET.IF.IFADMINSTATUS.MATCHES}'
              - macro: '{#IFADMINSTATUS}'
                value: '{$NET.IF.IFADMINSTATUS.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#IFALIAS}'
                value: '{$NET.IF.IFALIAS.MATCHES}'
              - macro: '{#IFALIAS}'
                value: '{$NET.IF.IFALIAS.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#IFDESCR}'
                value: '{$NET.IF.IFDESCR.MATCHES}'
              - macro: '{#IFDESCR}'
                value: '{$NET.IF.IFDESCR.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#IFNAME}'
                value: '{$NET.IF.IFNAME.MATCHES}'
              - macro: '{#IFNAME}'
                value: '{$NET.IF.IFNAME.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#IFOPERSTATUS}'
                value: '{$NET.IF.IFOPERSTATUS.MATCHES}'
              - macro: '{#IFOPERSTATUS}'
                value: '{$NET.IF.IFOPERSTATUS.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#IFTYPE}'
                value: '{$NET.IF.IFTYPE.MATCHES}'
              - macro: '{#IFTYPE}'
                value: '{$NET.IF.IFTYPE.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
          description: 'Discovering interfaces from IF-MIB.'
          item_prototypes:
            - uuid: 340c2fdef787474e83be63997b625831
              name: 'Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded'
              type: DEPENDENT
              key: 'net.if.in.discards[ifInDiscards.{#SNMPINDEX}]'
              description: |
                MIB: IF-MIB
                The number of inbound packets which were chosen to be discarded
                even though no errors had been detected to prevent their being deliverable to a higher-layer protocol.
                One possible reason for discarding such a packet could be to free up buffer space.
                Discontinuities in the value of this counter can occur at re-initialization of the management system,
                and at other times as indicated by the value of ifCounterDiscontinuityTime.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.2.2.1.13.{#SNMPINDEX}'
                    - '0'
                - type: CHANGE_PER_SECOND
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3m
              master_item:
                key: net.if.walk
              tags:
                - tag: component
                  value: network
                - tag: description
                  value: '{#IFALIAS}'
                - tag: interface
                  value: '{#IFNAME}'
            - uuid: 8076d892bc48457c8dd3ea798217aae1
              name: 'Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors'
              type: DEPENDENT
              key: 'net.if.in.errors[ifInErrors.{#SNMPINDEX}]'
              description: |
                MIB: IF-MIB
                For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol.  For character-oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.2.2.1.14.{#SNMPINDEX}'
                    - '0'
                - type: CHANGE_PER_SECOND
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3m
              master_item:
                key: net.if.walk
              tags:
                - tag: component
                  value: network
                - tag: description
                  value: '{#IFALIAS}'
                - tag: interface
                  value: '{#IFNAME}'
            - uuid: 8920149ac322418d9b57c70acec389bd
              name: 'Interface {#IFNAME}({#IFALIAS}): Bits received'
              type: DEPENDENT
              key: 'net.if.in[ifInOctets.{#SNMPINDEX}]'
              units: bps
              description: |
                MIB: IF-MIB
                The total number of octets received on the interface,including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and another times as indicated by the value of ifCounterDiscontinuityTime.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.2.2.1.10.{#SNMPINDEX}'
                    - '0'
                - type: CHANGE_PER_SECOND
                - type: MULTIPLIER
                  parameters:
                    - '8'
              master_item:
                key: net.if.walk
              tags:
                - tag: component
                  value: network
                - tag: description
                  value: '{#IFALIAS}'
                - tag: interface
                  value: '{#IFNAME}'
            - uuid: e622c6c312a24ca9af2c8182287f44c5
              name: 'Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded'
              type: DEPENDENT
              key: 'net.if.out.discards[ifOutDiscards.{#SNMPINDEX}]'
              description: |
                MIB: IF-MIB
                The number of outbound packets which were chosen to be discarded
                even though no errors had been detected to prevent their being deliverable to a higher-layer protocol.
                One possible reason for discarding such a packet could be to free up buffer space.
                Discontinuities in the value of this counter can occur at re-initialization of the management system,
                and at other times as indicated by the value of ifCounterDiscontinuityTime.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.2.2.1.19.{#SNMPINDEX}'
                    - '0'
                - type: CHANGE_PER_SECOND
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3m
              master_item:
                key: net.if.walk
              tags:
                - tag: component
                  value: network
                - tag: description
                  value: '{#IFALIAS}'
                - tag: interface
                  value: '{#IFNAME}'
            - uuid: 5f2bca97b53448ca8023c3879ceb8ee6
              name: 'Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors'
              type: DEPENDENT
              key: 'net.if.out.errors[ifOutErrors.{#SNMPINDEX}]'
              description: |
                MIB: IF-MIB
                For packet-oriented interfaces, the number of outbound packets that contained errors preventing them from being deliverable to a higher-layer protocol.  For character-oriented or fixed-length interfaces, the number of outbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.2.2.1.20.{#SNMPINDEX}'
                    - '0'
                - type: CHANGE_PER_SECOND
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3m
              master_item:
                key: net.if.walk
              tags:
                - tag: component
                  value: network
                - tag: description
                  value: '{#IFALIAS}'
                - tag: interface
                  value: '{#IFNAME}'
            - uuid: 5e887d867a83457089d5e35fa7569e04
              name: 'Interface {#IFNAME}({#IFALIAS}): Bits sent'
              type: DEPENDENT
              key: 'net.if.out[ifOutOctets.{#SNMPINDEX}]'
              units: bps
              description: |
                MIB: IF-MIB
                The total number of octets transmitted out of the interface, including framing characters. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.2.2.1.16.{#SNMPINDEX}'
                    - '0'
                - type: CHANGE_PER_SECOND
                - type: MULTIPLIER
                  parameters:
                    - '8'
              master_item:
                key: net.if.walk
              tags:
                - tag: component
                  value: network
                - tag: description
                  value: '{#IFALIAS}'
                - tag: interface
                  value: '{#IFNAME}'
            - uuid: da03adb8168d477db8f0551c3f26c466
              name: 'Interface {#IFNAME}({#IFALIAS}): Speed'
              type: DEPENDENT
              key: 'net.if.speed[ifSpeed.{#SNMPINDEX}]'
              trends: '0'
              units: bps
              description: |
                MIB: IF-MIB
                An estimate of the interface's current bandwidth in bits per second.
                For interfaces which do not vary in bandwidth or for those where no accurate estimation can be made,
                this object should contain the nominal bandwidth.
                If the bandwidth of the interface is greater than the maximum value reportable by this object then
                this object should report its maximum value (4,294,967,295) and ifHighSpeed must be used to report the interface's speed.
                For a sub-layer which has no concept of bandwidth, this object should be zero.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.2.2.1.5.{#SNMPINDEX}'
                    - '0'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 5m
              master_item:
                key: net.if.walk
              tags:
                - tag: component
                  value: network
                - tag: description
                  value: '{#IFALIAS}'
                - tag: interface
                  value: '{#IFNAME}'
            - uuid: e1b6b46280cc4b7f8432ff5c2ba2a65e
              name: 'Interface {#IFNAME}({#IFALIAS}): Operational status'
              type: DEPENDENT
              key: 'net.if.status[ifOperStatus.{#SNMPINDEX}]'
              trends: '0'
              description: |
                MIB: IF-MIB
                The current operational state of the interface.
                - The testing(3) state indicates that no operational packet scan be passed
                - If ifAdminStatus is down(2) then ifOperStatus should be down(2)
                - If ifAdminStatus is changed to up(1) then ifOperStatus should change to up(1) if the interface is ready to transmit and receive network traffic
                - It should change todormant(5) if the interface is waiting for external actions (such as a serial line waiting for an incoming connection)
                - It should remain in the down(2) state if and only if there is a fault that prevents it from going to the up(1) state
                - It should remain in the notPresent(6) state if the interface has missing(typically, hardware) components.
              valuemap:
                name: 'IF-MIB::ifOperStatus'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.2.2.1.8.{#SNMPINDEX}'
                    - '0'
              master_item:
                key: net.if.walk
              tags:
                - tag: component
                  value: network
                - tag: description
                  value: '{#IFALIAS}'
                - tag: interface
                  value: '{#IFNAME}'
              trigger_prototypes:
                - uuid: 8d869d65193742558bd6eebb4c729498
                  expression: '{$IFCONTROL:"{#IFNAME}"}=1 and last(/Aruba CX 8300s by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Aruba CX 8300s by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Aruba CX 8300s by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))'
                  recovery_mode: RECOVERY_EXPRESSION
                  recovery_expression: 'last(/Aruba CX 8300s by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0'
                  name: 'Aruba: Interface {#IFNAME}({#IFALIAS}): Link down'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: |
                    This trigger expression works as follows:
                    1. It can be triggered if the operations status is down.
                    2. `{$IFCONTROL:"{#IFNAME}"}=1` - a user can redefine the context macro to "0", marking this interface as not important. No new trigger will be fired if this interface is down.
                    3. `last(/TEMPLATE_NAME/METRIC,#1)<>last(/TEMPLATE_NAME/METRIC,#2)` - the trigger fires only if the operational status was up to (1) sometime before (so, does not fire for "eternal off" interfaces.)
                    
                    WARNING: if closed manually - it will not fire again on the next poll, because of .diff.
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: availability
            - uuid: 186cc3fcf4c4466a8f63c0dd037a71c0
              name: 'Interface {#IFNAME}({#IFALIAS}): Interface type'
              type: DEPENDENT
              key: 'net.if.type[ifType.{#SNMPINDEX}]'
              trends: '0'
              description: |
                MIB: IF-MIB
                The type of interface.
                Additional values for ifType are assigned by the Internet Assigned Numbers Authority (IANA),
                through updating the syntax of the IANAifType textual convention.
              valuemap:
                name: 'IF-MIB::ifType'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.2.2.1.3.{#SNMPINDEX}'
                    - '0'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: net.if.walk
              tags:
                - tag: component
                  value: network
                - tag: description
                  value: '{#IFALIAS}'
                - tag: interface
                  value: '{#IFNAME}'
          trigger_prototypes:
            - uuid: e2beaf89f19d4ed29ce1db0731034a04
              expression: |
                change(/Aruba CX 8300s by SNMP/net.if.speed[ifSpeed.{#SNMPINDEX}])<0 and last(/Aruba CX 8300s by SNMP/net.if.speed[ifSpeed.{#SNMPINDEX}])>0
                and (
                last(/Aruba CX 8300s by SNMP/net.if.type[ifType.{#SNMPINDEX}])=6 or
                last(/Aruba CX 8300s by SNMP/net.if.type[ifType.{#SNMPINDEX}])=7 or
                last(/Aruba CX 8300s by SNMP/net.if.type[ifType.{#SNMPINDEX}])=11 or
                last(/Aruba CX 8300s by SNMP/net.if.type[ifType.{#SNMPINDEX}])=62 or
                last(/Aruba CX 8300s by SNMP/net.if.type[ifType.{#SNMPINDEX}])=69 or
                last(/Aruba CX 8300s by SNMP/net.if.type[ifType.{#SNMPINDEX}])=117
                )
                and
                (last(/Aruba CX 8300s by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2)
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: |
                (change(/Aruba CX 8300s by SNMP/net.if.speed[ifSpeed.{#SNMPINDEX}])>0 and last(/Aruba CX 8300s by SNMP/net.if.speed[ifSpeed.{#SNMPINDEX}],#2)>0) or
                (last(/Aruba CX 8300s by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2)
              name: 'Aruba: Interface {#IFNAME}({#IFALIAS}): Ethernet has changed to lower speed than it was before'
              opdata: 'Current reported speed: {ITEM.LASTVALUE1}'
              priority: INFO
              description: 'This Ethernet connection has transitioned down from its known maximum speed. This might be a sign of autonegotiation issues. Acknowledge to close the problem manually.'
              manual_close: 'YES'
              dependencies:
                - name: 'Aruba: Interface {#IFNAME}({#IFALIAS}): Link down'
                  expression: '{$IFCONTROL:"{#IFNAME}"}=1 and last(/Aruba CX 8300s by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Aruba CX 8300s by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Aruba CX 8300s by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))'
                  recovery_expression: 'last(/Aruba CX 8300s by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0'
              tags:
                - tag: scope
                  value: performance
            - uuid: 2d02987f53f543c7858f82e70a7c791a
              expression: |
                (avg(/Aruba CX 8300s by SNMP/net.if.in[ifInOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Aruba CX 8300s by SNMP/net.if.speed[ifSpeed.{#SNMPINDEX}]) or
                avg(/Aruba CX 8300s by SNMP/net.if.out[ifOutOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Aruba CX 8300s by SNMP/net.if.speed[ifSpeed.{#SNMPINDEX}])) and
                last(/Aruba CX 8300s by SNMP/net.if.speed[ifSpeed.{#SNMPINDEX}])>0
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: |
                avg(/Aruba CX 8300s by SNMP/net.if.in[ifInOctets.{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Aruba CX 8300s by SNMP/net.if.speed[ifSpeed.{#SNMPINDEX}]) and
                avg(/Aruba CX 8300s by SNMP/net.if.out[ifOutOctets.{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Aruba CX 8300s by SNMP/net.if.speed[ifSpeed.{#SNMPINDEX}])
              name: 'Aruba: Interface {#IFNAME}({#IFALIAS}): High bandwidth usage'
              event_name: 'Aruba: Interface {#IFNAME}({#IFALIAS}): High bandwidth usage (>{$IF.UTIL.MAX:"{#IFNAME}"}%)'
              opdata: 'In: {ITEM.LASTVALUE1}, out: {ITEM.LASTVALUE3}, speed: {ITEM.LASTVALUE2}'
              priority: WARNING
              description: 'The utilization of the network interface is close to its estimated maximum bandwidth.'
              manual_close: 'YES'
              dependencies:
                - name: 'Aruba: Interface {#IFNAME}({#IFALIAS}): Link down'
                  expression: '{$IFCONTROL:"{#IFNAME}"}=1 and last(/Aruba CX 8300s by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Aruba CX 8300s by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Aruba CX 8300s by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))'
                  recovery_expression: 'last(/Aruba CX 8300s by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0'
              tags:
                - tag: scope
                  value: performance
            - uuid: 205f155f4cc145218d006bdebfefb7a1
              expression: |
                min(/Aruba CX 8300s by SNMP/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"}
                or min(/Aruba CX 8300s by SNMP/net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"}
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: |
                max(/Aruba CX 8300s by SNMP/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8
                and max(/Aruba CX 8300s by SNMP/net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8
              name: 'Aruba: Interface {#IFNAME}({#IFALIAS}): High error rate'
              event_name: 'Aruba: Interface {#IFNAME}({#IFALIAS}): High error rate (>{$IF.ERRORS.WARN:"{#IFNAME}"} for 5m)'
              opdata: 'errors in: {ITEM.LASTVALUE1}, errors out: {ITEM.LASTVALUE2}'
              priority: WARNING
              description: 'It recovers when it is below 80% of the `{$IF.ERRORS.WARN:"{#IFNAME}"}` threshold.'
              manual_close: 'YES'
              dependencies:
                - name: 'Aruba: Interface {#IFNAME}({#IFALIAS}): Link down'
                  expression: '{$IFCONTROL:"{#IFNAME}"}=1 and last(/Aruba CX 8300s by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Aruba CX 8300s by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Aruba CX 8300s by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))'
                  recovery_expression: 'last(/Aruba CX 8300s by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0'
              tags:
                - tag: scope
                  value: performance
          graph_prototypes:
            - uuid: f2626428025f4c4c88f4f2e32d7d6892
              name: 'Interface {#IFNAME}({#IFALIAS}): Network traffic'
              graph_items:
                - drawtype: GRADIENT_LINE
                  color: 199C0D
                  item:
                    host: 'Aruba CX 8300s by SNMP'
                    key: 'net.if.in[ifInOctets.{#SNMPINDEX}]'
                - sortorder: '1'
                  drawtype: BOLD_LINE
                  color: F63100
                  item:
                    host: 'Aruba CX 8300s by SNMP'
                    key: 'net.if.out[ifOutOctets.{#SNMPINDEX}]'
                - sortorder: '2'
                  color: 00611C
                  yaxisside: RIGHT
                  item:
                    host: 'Aruba CX 8300s by SNMP'
                    key: 'net.if.out.errors[ifOutErrors.{#SNMPINDEX}]'
                - sortorder: '3'
                  color: F7941D
                  yaxisside: RIGHT
                  item:
                    host: 'Aruba CX 8300s by SNMP'
                    key: 'net.if.in.errors[ifInErrors.{#SNMPINDEX}]'
                - sortorder: '4'
                  color: FC6EA3
                  yaxisside: RIGHT
                  item:
                    host: 'Aruba CX 8300s by SNMP'
                    key: 'net.if.out.discards[ifOutDiscards.{#SNMPINDEX}]'
                - sortorder: '5'
                  color: 6C59DC
                  yaxisside: RIGHT
                  item:
                    host: 'Aruba CX 8300s by SNMP'
                    key: 'net.if.in.discards[ifInDiscards.{#SNMPINDEX}]'
          master_item:
            key: net.if.walk
          preprocessing:
            - type: SNMP_WALK_TO_JSON
              parameters:
                - '{#IFOPERSTATUS}'
                - 1.3.6.1.2.1.2.2.1.8
                - '0'
                - '{#IFADMINSTATUS}'
                - 1.3.6.1.2.1.2.2.1.7
                - '0'
                - '{#IFALIAS}'
                - 1.3.6.1.2.1.31.1.1.1.18
                - '0'
                - '{#IFNAME}'
                - 1.3.6.1.2.1.31.1.1.1.1
                - '0'
                - '{#IFDESCR}'
                - 1.3.6.1.2.1.2.2.1.2
                - '0'
                - '{#IFTYPE}'
                - 1.3.6.1.2.1.2.2.1.3
                - '0'
              error_handler: DISCARD_VALUE
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
      tags:
        - tag: class
          value: network
        - tag: target
          value: aruba
        - tag: target
          value: cx8300s
      macros:
        - macro: '{$ARUBA.CPU.UTIL.MAX}'
          value: '90'
          description: 'Threshold of CPU utilization expressed in %.'
          config:
            type: TEXT
            priority: '3'
            section_name: Thresholds
            label: 'Threshold for CPU utilization'
            description: 'In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$ARUBA.MEMORY.UTIL.MAX}'
          value: '90'
          description: 'Threshold of memory utilization expressed in %.'
          config:
            type: TEXT
            priority: '2'
            section_name: Thresholds
            label: 'Threshold for memory utilization'
            description: 'In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$ARUBA.POWER.SUPPLY.THR.MAX}'
          value: '90'
          description: 'Threshold of power utilization expressed in %.'
          config:
            type: TEXT
            priority: '1'
            section_name: Thresholds
            label: 'Threshold for power utilization'
            description: 'In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$ICMP_LOSS_WARN}'
          value: '20'
          description: 'Warning threshold of ICMP packet loss in %.'
          config:
            type: TEXT
            priority: '4'
            section_name: Thresholds
            label: 'Threshold of ICMP packet loss'
            description: 'Warning threshold of ICMP packet loss in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$ICMP_RESPONSE_TIME_WARN}'
          value: '0.15'
          description: 'Warning threshold of average ICMP response time in seconds.'
          config:
            type: TEXT
            priority: '5'
            section_name: Thresholds
            label: 'Threshold of the average ICMP response'
            description: 'Warning threshold of the average ICMP response time in seconds. No less than 0.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$IF.ERRORS.WARN}'
          value: '2'
          description: 'Warning threshold of error packet rate. Can be used with interface name as context.'
          config:
            type: TEXT
            priority: '21'
            section_name: Thresholds
            label: 'Threshold of error packet rate'
            description: 'Warning threshold of error packet rate. Can be used with interface name as context.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$IF.UTIL.MAX}'
          value: '95'
          config:
            type: TEXT
            priority: '8'
            section_name: Thresholds
            label: 'The threshold in the interface utilization'
            description: 'In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$IFCONTROL}'
          value: '1'
          config:
            type: TEXT
            priority: '7'
            section_name: Other
            label: 'Interfaces control'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$NET.IF.IFADMINSTATUS.MATCHES}'
          value: '^.*'
          config:
            type: TEXT
            priority: '13'
            section_name: Filters
            label: 'Filter for network interface by adminstatus'
        - macro: '{$NET.IF.IFADMINSTATUS.NOT_MATCHES}'
          value: ^2$
          description: 'Ignore down(2) administrative status'
          config:
            type: TEXT
            priority: '14'
            section_name: Filters
            label: 'Filter for network interface by adminstatus (exclude)'
        - macro: '{$NET.IF.IFALIAS.MATCHES}'
          value: '.*'
          config:
            type: TEXT
            priority: '19'
            section_name: Filters
            label: 'Filter for network interfaces by alias'
        - macro: '{$NET.IF.IFALIAS.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          config:
            type: TEXT
            priority: '20'
            section_name: Filters
            label: 'Filter for network interfaces by alias (exclude)'
        - macro: '{$NET.IF.IFDESCR.MATCHES}'
          value: '.*'
          config:
            type: TEXT
            priority: '15'
            section_name: Filters
            label: 'Filter for network interfaces by description'
        - macro: '{$NET.IF.IFDESCR.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          config:
            type: TEXT
            priority: '16'
            section_name: Filters
            label: 'Filter for network interfaces by description (exclude)'
        - macro: '{$NET.IF.IFNAME.MATCHES}'
          value: '^.*$'
          config:
            type: TEXT
            priority: '9'
            section_name: Filters
            label: 'Filter for network interface by name'
        - macro: '{$NET.IF.IFNAME.NOT_MATCHES}'
          value: '(^Software Loopback Interface|^NULL[0-9.]*$|^[Ll]o[0-9.]*$|^[Ss]ystem$|^Nu[0-9.]*$|^veth[0-9a-z]+$|docker[0-9]+|br-[a-z0-9]{12})'
          description: 'Filter out loopbacks, nulls, docker veth links and docker0 bridge by default'
          config:
            type: TEXT
            priority: '10'
            section_name: Filters
            label: 'Filter for network interface by name (exclude)'
            description: 'Filter out loopbacks, nulls, docker veth links and docker0 bridge by default'
        - macro: '{$NET.IF.IFOPERSTATUS.MATCHES}'
          value: '^.*$'
          config:
            type: TEXT
            priority: '11'
            section_name: Filters
            label: 'Filter for network interface by status'
        - macro: '{$NET.IF.IFOPERSTATUS.NOT_MATCHES}'
          value: ^6$
          description: 'Ignore notPresent(6)'
          config:
            type: TEXT
            priority: '12'
            section_name: Filters
            label: 'Filter for network interface by status (exclude)'
        - macro: '{$NET.IF.IFTYPE.MATCHES}'
          value: '.*'
          config:
            type: TEXT
            priority: '17'
            section_name: Filters
            label: 'Filter for network interfaces by type'
        - macro: '{$NET.IF.IFTYPE.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          config:
            type: TEXT
            priority: '18'
            section_name: Filters
            label: 'Filter for network interfaces by type (exclude)'
        - macro: '{$SNMP.TIMEOUT}'
          value: 5m
          description: 'Time interval for the SNMP availability trigger.'
          config:
            type: TEXT
            priority: '6'
            section_name: Other
            label: 'Time interval'
            description: 'Time interval for the SNMP availability trigger.'
      dashboards:
        - uuid: c9c7c666c80e4e01bf67a0d597ca53ab
          name: 'Aruba: Overview'
          pages:
            - name: 'Aruba: Overview'
              widgets:
                - type: item
                  name: 'Uptime (network)'
                  width: '18'
                  hide_header: 'YES'
                  fields:
                    - type: INTEGER
                      name: desc_v_pos
                      value: '0'
                    - type: ITEM
                      name: itemid.0
                      value:
                        host: 'Aruba CX 8300s by SNMP'
                        key: 'system.net.uptime[sysUpTime.0]'
                    - type: INTEGER
                      name: show.0
                      value: '1'
                    - type: INTEGER
                      name: show.1
                      value: '2'
                    - type: INTEGER
                      name: value_bold
                      value: '0'
                    - type: INTEGER
                      name: value_size
                      value: '30'
                - type: svggraph
                  name: 'ICMP response time'
                  'y': '2'
                  width: '36'
                  height: '5'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: FF465C
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: INTEGER
                      name: ds.0.fill
                      value: '5'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Aruba CX 8300s by SNMP'
                        key: icmppingsec
                    - type: INTEGER
                      name: ds.0.width
                      value: '3'
                    - type: INTEGER
                      name: legend_columns
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAAAA
                - type: honeycomb
                  name: 'Sensor temperature'
                  'y': '7'
                  width: '24'
                  height: '5'
                  fields:
                    - type: STRING
                      name: items.0
                      value: 'Sensor*Temperature'
                    - type: STRING
                      name: primary_label
                      value: '{{ITEM.NAME}.regsub("Sensor\s\[(.*)\]","\1")}'
                    - type: STRING
                      name: reference
                      value: AAAAD
                    - type: INTEGER
                      name: secondary_label_decimal_places
                      value: '0'
                    - type: INTEGER
                      name: secondary_label_units_show
                      value: '0'
                - type: item
                  name: 'System name'
                  x: '18'
                  width: '18'
                  hide_header: 'YES'
                  fields:
                    - type: INTEGER
                      name: desc_v_pos
                      value: '0'
                    - type: ITEM
                      name: itemid.0
                      value:
                        host: 'Aruba CX 8300s by SNMP'
                        key: system.name
                    - type: INTEGER
                      name: show.0
                      value: '1'
                    - type: INTEGER
                      name: show.1
                      value: '2'
                    - type: INTEGER
                      name: value_bold
                      value: '0'
                    - type: INTEGER
                      name: value_size
                      value: '30'
                - type: svggraph
                  name: 'CPU utilization'
                  x: '24'
                  'y': '7'
                  width: '24'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: ds.0.fill
                      value: '5'
                    - type: STRING
                      name: ds.0.items.0
                      value: '*CPU utilization'
                    - type: INTEGER
                      name: ds.0.width
                      value: '3'
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: STRING
                      name: lefty_static_units
                      value: '%'
                    - type: INTEGER
                      name: lefty_units
                      value: '1'
                    - type: INTEGER
                      name: legend_columns
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAAAE
                - type: item
                  name: 'System location'
                  x: '36'
                  width: '18'
                  hide_header: 'YES'
                  fields:
                    - type: INTEGER
                      name: desc_v_pos
                      value: '0'
                    - type: ITEM
                      name: itemid.0
                      value:
                        host: 'Aruba CX 8300s by SNMP'
                        key: 'system.location[sysLocation.0]'
                    - type: INTEGER
                      name: show.0
                      value: '1'
                    - type: INTEGER
                      name: show.1
                      value: '2'
                    - type: INTEGER
                      name: value_bold
                      value: '0'
                    - type: INTEGER
                      name: value_size
                      value: '30'
                - type: honeycomb
                  name: 'Fan status'
                  x: '36'
                  'y': '2'
                  width: '24'
                  height: '5'
                  fields:
                    - type: STRING
                      name: items.0
                      value: 'Fan*status'
                    - type: STRING
                      name: primary_label
                      value: '{{ITEM.NAME}.regsub("Fan\s\[(.*)\]","\1")}'
                    - type: STRING
                      name: reference
                      value: AAAAB
                    - type: INTEGER
                      name: secondary_label_decimal_places
                      value: '0'
                    - type: INTEGER
                      name: secondary_label_units_show
                      value: '0'
                    - type: STRING
                      name: thresholds.0.color
                      value: B0BEC5
                    - type: STRING
                      name: thresholds.0.threshold
                      value: '1'
                    - type: STRING
                      name: thresholds.1.color
                      value: B0BEC5
                    - type: STRING
                      name: thresholds.1.threshold
                      value: '2'
                    - type: STRING
                      name: thresholds.2.color
                      value: FF8000
                    - type: STRING
                      name: thresholds.2.threshold
                      value: '3'
                    - type: STRING
                      name: thresholds.3.color
                      value: AED581
                    - type: STRING
                      name: thresholds.3.threshold
                      value: '4'
                    - type: STRING
                      name: thresholds.4.color
                      value: FF0000
                    - type: STRING
                      name: thresholds.4.threshold
                      value: '5'
                - type: svggraph
                  name: 'Memory usage'
                  x: '48'
                  'y': '7'
                  width: '24'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: ds.0.fill
                      value: '5'
                    - type: STRING
                      name: ds.0.items.0
                      value: '*Memory usage'
                    - type: INTEGER
                      name: ds.0.width
                      value: '3'
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: STRING
                      name: lefty_static_units
                      value: '%'
                    - type: INTEGER
                      name: lefty_units
                      value: '1'
                    - type: INTEGER
                      name: legend_columns
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAAAF
                - type: item
                  name: 'System description'
                  x: '54'
                  width: '18'
                  hide_header: 'YES'
                  fields:
                    - type: INTEGER
                      name: desc_v_pos
                      value: '0'
                    - type: ITEM
                      name: itemid.0
                      value:
                        host: 'Aruba CX 8300s by SNMP'
                        key: 'system.descr[sysDescr.0]'
                    - type: INTEGER
                      name: show.0
                      value: '1'
                    - type: INTEGER
                      name: show.1
                      value: '2'
                    - type: INTEGER
                      name: value_bold
                      value: '0'
                    - type: INTEGER
                      name: value_size
                      value: '30'
                - type: honeycomb
                  name: 'PSU state'
                  x: '60'
                  'y': '2'
                  width: '12'
                  height: '5'
                  fields:
                    - type: STRING
                      name: items.0
                      value: 'PSU*State'
                    - type: STRING
                      name: primary_label
                      value: '{{ITEM.NAME}.regsub("PSU\s\[(.*)\]","\1")}'
                    - type: STRING
                      name: reference
                      value: AAAAC
                    - type: INTEGER
                      name: secondary_label_decimal_places
                      value: '0'
                    - type: INTEGER
                      name: secondary_label_units_show
                      value: '0'
                    - type: STRING
                      name: thresholds.0.color
                      value: AED581
                    - type: STRING
                      name: thresholds.0.threshold
                      value: '1'
                    - type: STRING
                      name: thresholds.1.color
                      value: FF0000
                    - type: STRING
                      name: thresholds.1.threshold
                      value: '2'
                    - type: STRING
                      name: thresholds.2.color
                      value: FF0000
                    - type: STRING
                      name: thresholds.2.threshold
                      value: '3'
                    - type: STRING
                      name: thresholds.3.color
                      value: FF0000
                    - type: STRING
                      name: thresholds.3.threshold
                      value: '4'
                    - type: STRING
                      name: thresholds.4.color
                      value: FF0000
                    - type: STRING
                      name: thresholds.4.threshold
                      value: '5'
                    - type: STRING
                      name: thresholds.5.color
                      value: FF0000
                    - type: STRING
                      name: thresholds.5.threshold
                      value: '6'
                    - type: STRING
                      name: thresholds.6.color
                      value: FF0000
                    - type: STRING
                      name: thresholds.6.threshold
                      value: '7'
                    - type: STRING
                      name: thresholds.7.color
                      value: FF0000
                    - type: STRING
                      name: thresholds.7.threshold
                      value: '8'
                    - type: STRING
                      name: thresholds.8.color
                      value: FF0000
                    - type: STRING
                      name: thresholds.8.threshold
                      value: '9'
                    - type: STRING
                      name: thresholds.9.color
                      value: FF0000
                    - type: STRING
                      name: thresholds.9.threshold
                      value: '10'
                    - type: STRING
                      name: thresholds.10.color
                      value: FF0000
                    - type: STRING
                      name: thresholds.10.threshold
                      value: '11'
                    - type: STRING
                      name: thresholds.11.color
                      value: FF0000
                    - type: STRING
                      name: thresholds.11.threshold
                      value: '12'
                    - type: STRING
                      name: thresholds.12.color
                      value: FF0000
                    - type: STRING
                      name: thresholds.12.threshold
                      value: '13'
                    - type: STRING
                      name: thresholds.13.color
                      value: FF0000
                    - type: STRING
                      name: thresholds.13.threshold
                      value: '14'
            - name: 'Aruba: OSPF'
              widgets:
                - type: honeycomb
                  name: 'OSPF Area status'
                  width: '24'
                  height: '6'
                  fields:
                    - type: STRING
                      name: items.0
                      value: 'OSPF area*Status'
                    - type: STRING
                      name: primary_label
                      value: '{{ITEM.NAME}.regsub("area\s\[(.*)\]","Area: \1")}'
                    - type: STRING
                      name: reference
                      value: AAAAG
                    - type: INTEGER
                      name: secondary_label_decimal_places
                      value: '0'
                    - type: INTEGER
                      name: secondary_label_units_show
                      value: '0'
                    - type: STRING
                      name: thresholds.0.color
                      value: AED581
                    - type: STRING
                      name: thresholds.0.threshold
                      value: '1'
                    - type: STRING
                      name: thresholds.1.color
                      value: FFB74D
                    - type: STRING
                      name: thresholds.1.threshold
                      value: '2'
                    - type: STRING
                      name: thresholds.2.color
                      value: FFB74D
                    - type: STRING
                      name: thresholds.2.threshold
                      value: '3'
                    - type: STRING
                      name: thresholds.3.color
                      value: FFB74D
                    - type: STRING
                      name: thresholds.3.threshold
                      value: '4'
                    - type: STRING
                      name: thresholds.4.color
                      value: FFB74D
                    - type: STRING
                      name: thresholds.4.threshold
                      value: '5'
                    - type: STRING
                      name: thresholds.5.color
                      value: FF0000
                    - type: STRING
                      name: thresholds.5.threshold
                      value: '6'
                - type: honeycomb
                  name: 'OSPF Interface state'
                  'y': '6'
                  width: '36'
                  height: '6'
                  fields:
                    - type: STRING
                      name: items.0
                      value: 'OSPF interface*State'
                    - type: STRING
                      name: primary_label
                      value: '{{ITEM.NAME}.regsub("interface\s\[(.*)\]","\1")}'
                    - type: STRING
                      name: reference
                      value: AAAAL
                    - type: INTEGER
                      name: secondary_label_decimal_places
                      value: '0'
                    - type: INTEGER
                      name: secondary_label_units_show
                      value: '0'
                    - type: STRING
                      name: thresholds.0.color
                      value: FF0000
                    - type: STRING
                      name: thresholds.0.threshold
                      value: '1'
                    - type: STRING
                      name: thresholds.1.color
                      value: AED581
                    - type: STRING
                      name: thresholds.1.threshold
                      value: '2'
                    - type: STRING
                      name: thresholds.2.color
                      value: FFB74D
                    - type: STRING
                      name: thresholds.2.threshold
                      value: '3'
                    - type: STRING
                      name: thresholds.3.color
                      value: AED581
                    - type: STRING
                      name: thresholds.3.threshold
                      value: '4'
                    - type: STRING
                      name: thresholds.4.color
                      value: AED581
                    - type: STRING
                      name: thresholds.4.threshold
                      value: '5'
                    - type: STRING
                      name: thresholds.5.color
                      value: AED581
                    - type: STRING
                      name: thresholds.5.threshold
                      value: '6'
                    - type: STRING
                      name: thresholds.6.color
                      value: AED581
                    - type: STRING
                      name: thresholds.6.threshold
                      value: '7'
                    - type: STRING
                      name: thresholds.7.color
                      value: AED581
                    - type: STRING
                      name: thresholds.7.threshold
                      value: '8'
                - type: honeycomb
                  name: 'OSPF Neighbor state'
                  x: '24'
                  width: '24'
                  height: '6'
                  fields:
                    - type: STRING
                      name: items.0
                      value: 'OSPF neighbor*State'
                    - type: STRING
                      name: primary_label
                      value: '{{ITEM.NAME}.regsub("neighbor\s\[(.*)\]","\1")}'
                    - type: STRING
                      name: reference
                      value: AAAAH
                    - type: INTEGER
                      name: secondary_label_decimal_places
                      value: '0'
                    - type: INTEGER
                      name: secondary_label_units_show
                      value: '0'
                    - type: STRING
                      name: thresholds.0.color
                      value: FF0000
                    - type: STRING
                      name: thresholds.0.threshold
                      value: '1'
                    - type: STRING
                      name: thresholds.1.color
                      value: FFB74D
                    - type: STRING
                      name: thresholds.1.threshold
                      value: '2'
                    - type: STRING
                      name: thresholds.2.color
                      value: FFB74D
                    - type: STRING
                      name: thresholds.2.threshold
                      value: '3'
                    - type: STRING
                      name: thresholds.3.color
                      value: AED581
                    - type: STRING
                      name: thresholds.3.threshold
                      value: '4'
                    - type: STRING
                      name: thresholds.4.color
                      value: FFB74D
                    - type: STRING
                      name: thresholds.4.threshold
                      value: '5'
                    - type: STRING
                      name: thresholds.5.color
                      value: FFB74D
                    - type: STRING
                      name: thresholds.5.threshold
                      value: '6'
                    - type: STRING
                      name: thresholds.6.color
                      value: FFB74D
                    - type: STRING
                      name: thresholds.6.threshold
                      value: '7'
                    - type: STRING
                      name: thresholds.7.color
                      value: AED581
                    - type: STRING
                      name: thresholds.7.threshold
                      value: '8'
                - type: honeycomb
                  name: 'OSPF Interface status'
                  x: '36'
                  'y': '6'
                  width: '36'
                  height: '6'
                  fields:
                    - type: STRING
                      name: items.0
                      value: 'OSPF interface*: Status'
                    - type: STRING
                      name: primary_label
                      value: '{{ITEM.NAME}.regsub("interface\s\[(.*)\]","\1")}'
                    - type: STRING
                      name: reference
                      value: AAAAM
                    - type: INTEGER
                      name: secondary_label_decimal_places
                      value: '0'
                    - type: INTEGER
                      name: secondary_label_units_show
                      value: '0'
                    - type: STRING
                      name: thresholds.0.color
                      value: AED581
                    - type: STRING
                      name: thresholds.0.threshold
                      value: '1'
                    - type: STRING
                      name: thresholds.1.color
                      value: FFB74D
                    - type: STRING
                      name: thresholds.1.threshold
                      value: '2'
                    - type: STRING
                      name: thresholds.2.color
                      value: FFB74D
                    - type: STRING
                      name: thresholds.2.threshold
                      value: '3'
                    - type: STRING
                      name: thresholds.3.color
                      value: FFB74D
                    - type: STRING
                      name: thresholds.3.threshold
                      value: '4'
                    - type: STRING
                      name: thresholds.4.color
                      value: FFB74D
                    - type: STRING
                      name: thresholds.4.threshold
                      value: '5'
                    - type: STRING
                      name: thresholds.5.color
                      value: FF0000
                    - type: STRING
                      name: thresholds.5.threshold
                      value: '6'
                - type: honeycomb
                  name: 'OSPF Neighbor status'
                  x: '48'
                  width: '24'
                  height: '6'
                  fields:
                    - type: STRING
                      name: items.0
                      value: 'OSPF neighbor*Status'
                    - type: STRING
                      name: primary_label
                      value: '{{ITEM.NAME}.regsub("neighbor\s\[(.*)\]","\1")}'
                    - type: STRING
                      name: reference
                      value: AAAAK
                    - type: INTEGER
                      name: secondary_label_decimal_places
                      value: '0'
                    - type: INTEGER
                      name: secondary_label_units_show
                      value: '0'
                    - type: STRING
                      name: thresholds.0.color
                      value: AED581
                    - type: STRING
                      name: thresholds.0.threshold
                      value: '1'
                    - type: STRING
                      name: thresholds.1.color
                      value: FFB74D
                    - type: STRING
                      name: thresholds.1.threshold
                      value: '2'
                    - type: STRING
                      name: thresholds.2.color
                      value: FFB74D
                    - type: STRING
                      name: thresholds.2.threshold
                      value: '3'
                    - type: STRING
                      name: thresholds.3.color
                      value: FFB74D
                    - type: STRING
                      name: thresholds.3.threshold
                      value: '4'
                    - type: STRING
                      name: thresholds.4.color
                      value: FFB74D
                    - type: STRING
                      name: thresholds.4.threshold
                      value: '5'
                    - type: STRING
                      name: thresholds.5.color
                      value: FF0000
                    - type: STRING
                      name: thresholds.5.threshold
                      value: '6'
      valuemaps:
        - uuid: 0d0532eebc294155a25733c1b7fe7ba1
          name: 'Fan status'
          mappings:
            - value: '1'
              newvalue: Unknown
            - value: '2'
              newvalue: Empty
            - value: '3'
              newvalue: Uninitialized
            - value: '4'
              newvalue: Ok
            - value: '5'
              newvalue: Fault
        - uuid: 42f606a7537849878b1090e7085add48
          name: 'IF-MIB::ifOperStatus'
          mappings:
            - value: '1'
              newvalue: up
            - value: '2'
              newvalue: down
            - value: '4'
              newvalue: unknown
            - value: '5'
              newvalue: dormant
            - value: '6'
              newvalue: notPresent
            - value: '7'
              newvalue: lowerLayerDown
        - uuid: 0c9ae7b0f91c40afbb1fc35a3e33052a
          name: 'IF-MIB::ifType'
          mappings:
            - value: '1'
              newvalue: other
            - value: '2'
              newvalue: regular1822
            - value: '3'
              newvalue: hdh1822
            - value: '4'
              newvalue: ddnX25
            - value: '5'
              newvalue: rfc877x25
            - value: '6'
              newvalue: ethernetCsmacd
            - value: '7'
              newvalue: iso88023Csmacd
            - value: '8'
              newvalue: iso88024TokenBus
            - value: '9'
              newvalue: iso88025TokenRing
            - value: '10'
              newvalue: iso88026Man
            - value: '11'
              newvalue: starLan
            - value: '12'
              newvalue: proteon10Mbit
            - value: '13'
              newvalue: proteon80Mbit
            - value: '14'
              newvalue: hyperchannel
            - value: '15'
              newvalue: fddi
            - value: '16'
              newvalue: lapb
            - value: '17'
              newvalue: sdlc
            - value: '18'
              newvalue: ds1
            - value: '19'
              newvalue: e1
            - value: '20'
              newvalue: basicISDN
            - value: '21'
              newvalue: primaryISDN
            - value: '22'
              newvalue: propPointToPointSerial
            - value: '23'
              newvalue: ppp
            - value: '24'
              newvalue: softwareLoopback
            - value: '25'
              newvalue: eon
            - value: '26'
              newvalue: ethernet3Mbit
            - value: '27'
              newvalue: nsip
            - value: '28'
              newvalue: slip
            - value: '29'
              newvalue: ultra
            - value: '30'
              newvalue: ds3
            - value: '31'
              newvalue: sip
            - value: '32'
              newvalue: frameRelay
            - value: '33'
              newvalue: rs232
            - value: '34'
              newvalue: para
            - value: '35'
              newvalue: arcnet
            - value: '36'
              newvalue: arcnetPlus
            - value: '37'
              newvalue: atm
            - value: '38'
              newvalue: miox25
            - value: '39'
              newvalue: sonet
            - value: '40'
              newvalue: x25ple
            - value: '41'
              newvalue: iso88022llc
            - value: '42'
              newvalue: localTalk
            - value: '43'
              newvalue: smdsDxi
            - value: '44'
              newvalue: frameRelayService
            - value: '45'
              newvalue: v35
            - value: '46'
              newvalue: hssi
            - value: '47'
              newvalue: hippi
            - value: '48'
              newvalue: modem
            - value: '49'
              newvalue: aal5
            - value: '50'
              newvalue: sonetPath
            - value: '51'
              newvalue: sonetVT
            - value: '52'
              newvalue: smdsIcip
            - value: '53'
              newvalue: propVirtual
            - value: '54'
              newvalue: propMultiplexor
            - value: '55'
              newvalue: ieee80212
            - value: '56'
              newvalue: fibreChannel
            - value: '57'
              newvalue: hippiInterface
            - value: '58'
              newvalue: frameRelayInterconnect
            - value: '59'
              newvalue: aflane8023
            - value: '60'
              newvalue: aflane8025
            - value: '61'
              newvalue: cctEmul
            - value: '62'
              newvalue: fastEther
            - value: '63'
              newvalue: isdn
            - value: '64'
              newvalue: v11
            - value: '65'
              newvalue: v36
            - value: '66'
              newvalue: g703at64k
            - value: '67'
              newvalue: g703at2mb
            - value: '68'
              newvalue: qllc
            - value: '69'
              newvalue: fastEtherFX
            - value: '70'
              newvalue: channel
            - value: '71'
              newvalue: ieee80211
            - value: '72'
              newvalue: ibm370parChan
            - value: '73'
              newvalue: escon
            - value: '74'
              newvalue: dlsw
            - value: '75'
              newvalue: isdns
            - value: '76'
              newvalue: isdnu
            - value: '77'
              newvalue: lapd
            - value: '78'
              newvalue: ipSwitch
            - value: '79'
              newvalue: rsrb
            - value: '80'
              newvalue: atmLogical
            - value: '81'
              newvalue: ds0
            - value: '82'
              newvalue: ds0Bundle
            - value: '83'
              newvalue: bsc
            - value: '84'
              newvalue: async
            - value: '85'
              newvalue: cnr
            - value: '86'
              newvalue: iso88025Dtr
            - value: '87'
              newvalue: eplrs
            - value: '88'
              newvalue: arap
            - value: '89'
              newvalue: propCnls
            - value: '90'
              newvalue: hostPad
            - value: '91'
              newvalue: termPad
            - value: '92'
              newvalue: frameRelayMPI
            - value: '93'
              newvalue: x213
            - value: '94'
              newvalue: adsl
            - value: '95'
              newvalue: radsl
            - value: '96'
              newvalue: sdsl
            - value: '97'
              newvalue: vdsl
            - value: '98'
              newvalue: iso88025CRFPInt
            - value: '99'
              newvalue: myrinet
            - value: '100'
              newvalue: voiceEM
            - value: '101'
              newvalue: voiceFXO
            - value: '102'
              newvalue: voiceFXS
            - value: '103'
              newvalue: voiceEncap
            - value: '104'
              newvalue: voiceOverIp
            - value: '105'
              newvalue: atmDxi
            - value: '106'
              newvalue: atmFuni
            - value: '107'
              newvalue: atmIma
            - value: '108'
              newvalue: pppMultilinkBundle
            - value: '109'
              newvalue: ipOverCdlc
            - value: '110'
              newvalue: ipOverClaw
            - value: '111'
              newvalue: stackToStack
            - value: '112'
              newvalue: virtualIpAddress
            - value: '113'
              newvalue: mpc
            - value: '114'
              newvalue: ipOverAtm
            - value: '115'
              newvalue: iso88025Fiber
            - value: '116'
              newvalue: tdlc
            - value: '117'
              newvalue: gigabitEthernet
            - value: '118'
              newvalue: hdlc
            - value: '119'
              newvalue: lapf
            - value: '120'
              newvalue: v37
            - value: '121'
              newvalue: x25mlp
            - value: '122'
              newvalue: x25huntGroup
            - value: '123'
              newvalue: trasnpHdlc
            - value: '124'
              newvalue: interleave
            - value: '125'
              newvalue: fast
            - value: '126'
              newvalue: ip
            - value: '127'
              newvalue: docsCableMaclayer
            - value: '128'
              newvalue: docsCableDownstream
            - value: '129'
              newvalue: docsCableUpstream
            - value: '130'
              newvalue: a12MppSwitch
            - value: '131'
              newvalue: tunnel
            - value: '132'
              newvalue: coffee
            - value: '133'
              newvalue: ces
            - value: '134'
              newvalue: atmSubInterface
            - value: '135'
              newvalue: l2vlan
            - value: '136'
              newvalue: l3ipvlan
            - value: '137'
              newvalue: l3ipxvlan
            - value: '138'
              newvalue: digitalPowerline
            - value: '139'
              newvalue: mediaMailOverIp
            - value: '140'
              newvalue: dtm
            - value: '141'
              newvalue: dcn
            - value: '142'
              newvalue: ipForward
            - value: '143'
              newvalue: msdsl
            - value: '144'
              newvalue: ieee1394
            - value: '145'
              newvalue: if-gsn
            - value: '146'
              newvalue: dvbRccMacLayer
            - value: '147'
              newvalue: dvbRccDownstream
            - value: '148'
              newvalue: dvbRccUpstream
            - value: '149'
              newvalue: atmVirtual
            - value: '150'
              newvalue: mplsTunnel
            - value: '151'
              newvalue: srp
            - value: '152'
              newvalue: voiceOverAtm
            - value: '153'
              newvalue: voiceOverFrameRelay
            - value: '154'
              newvalue: idsl
            - value: '155'
              newvalue: compositeLink
            - value: '156'
              newvalue: ss7SigLink
            - value: '157'
              newvalue: propWirelessP2P
            - value: '158'
              newvalue: frForward
            - value: '159'
              newvalue: rfc1483
            - value: '160'
              newvalue: usb
            - value: '161'
              newvalue: ieee8023adLag
            - value: '162'
              newvalue: bgppolicyaccounting
            - value: '163'
              newvalue: frf16MfrBundle
            - value: '164'
              newvalue: h323Gatekeeper
            - value: '165'
              newvalue: h323Proxy
            - value: '166'
              newvalue: mpls
            - value: '167'
              newvalue: mfSigLink
            - value: '168'
              newvalue: hdsl2
            - value: '169'
              newvalue: shdsl
            - value: '170'
              newvalue: ds1FDL
            - value: '171'
              newvalue: pos
            - value: '172'
              newvalue: dvbAsiIn
            - value: '173'
              newvalue: dvbAsiOut
            - value: '174'
              newvalue: plc
            - value: '175'
              newvalue: nfas
            - value: '176'
              newvalue: tr008
            - value: '177'
              newvalue: gr303RDT
            - value: '178'
              newvalue: gr303IDT
            - value: '179'
              newvalue: isup
            - value: '180'
              newvalue: propDocsWirelessMaclayer
            - value: '181'
              newvalue: propDocsWirelessDownstream
            - value: '182'
              newvalue: propDocsWirelessUpstream
            - value: '183'
              newvalue: hiperlan2
            - value: '184'
              newvalue: propBWAp2Mp
            - value: '185'
              newvalue: sonetOverheadChannel
            - value: '186'
              newvalue: digitalWrapperOverheadChannel
            - value: '187'
              newvalue: aal2
            - value: '188'
              newvalue: radioMAC
            - value: '189'
              newvalue: atmRadio
            - value: '190'
              newvalue: imt
            - value: '191'
              newvalue: mvl
            - value: '192'
              newvalue: reachDSL
            - value: '193'
              newvalue: frDlciEndPt
            - value: '194'
              newvalue: atmVciEndPt
            - value: '195'
              newvalue: opticalChannel
            - value: '196'
              newvalue: opticalTransport
            - value: '197'
              newvalue: propAtm
            - value: '198'
              newvalue: voiceOverCable
            - value: '199'
              newvalue: infiniband
            - value: '200'
              newvalue: teLink
            - value: '201'
              newvalue: q2931
            - value: '202'
              newvalue: virtualTg
            - value: '203'
              newvalue: sipTg
            - value: '204'
              newvalue: sipSig
            - value: '205'
              newvalue: docsCableUpstreamChannel
            - value: '206'
              newvalue: econet
            - value: '207'
              newvalue: pon155
            - value: '208'
              newvalue: pon622
            - value: '209'
              newvalue: bridge
            - value: '210'
              newvalue: linegroup
            - value: '211'
              newvalue: voiceEMFGD
            - value: '212'
              newvalue: voiceFGDEANA
            - value: '213'
              newvalue: voiceDID
            - value: '214'
              newvalue: mpegTransport
            - value: '215'
              newvalue: sixToFour
            - value: '216'
              newvalue: gtp
            - value: '217'
              newvalue: pdnEtherLoop1
            - value: '218'
              newvalue: pdnEtherLoop2
            - value: '219'
              newvalue: opticalChannelGroup
            - value: '220'
              newvalue: homepna
            - value: '221'
              newvalue: gfp
            - value: '222'
              newvalue: ciscoISLvlan
            - value: '223'
              newvalue: actelisMetaLOOP
            - value: '224'
              newvalue: fcipLink
            - value: '225'
              newvalue: rpr
            - value: '226'
              newvalue: qam
            - value: '227'
              newvalue: lmp
            - value: '228'
              newvalue: cblVectaStar
            - value: '229'
              newvalue: docsCableMCmtsDownstream
            - value: '230'
              newvalue: adsl2
            - value: '231'
              newvalue: macSecControlledIF
            - value: '232'
              newvalue: macSecUncontrolledIF
            - value: '233'
              newvalue: aviciOpticalEther
            - value: '234'
              newvalue: atmbond
            - value: '235'
              newvalue: voiceFGDOS
            - value: '236'
              newvalue: mocaVersion1
            - value: '237'
              newvalue: ieee80216WMAN
            - value: '238'
              newvalue: adsl2plus
            - value: '239'
              newvalue: dvbRcsMacLayer
            - value: '240'
              newvalue: dvbTdm
            - value: '241'
              newvalue: dvbRcsTdma
            - value: '242'
              newvalue: x86Laps
            - value: '243'
              newvalue: wwanPP
            - value: '244'
              newvalue: wwanPP2
            - value: '245'
              newvalue: voiceEBS
            - value: '246'
              newvalue: ifPwType
            - value: '247'
              newvalue: ilan
            - value: '248'
              newvalue: pip
            - value: '249'
              newvalue: aluELP
            - value: '250'
              newvalue: gpon
            - value: '251'
              newvalue: vdsl2
            - value: '252'
              newvalue: capwapDot11Profile
            - value: '253'
              newvalue: capwapDot11Bss
            - value: '254'
              newvalue: capwapWtpVirtualRadio
            - value: '255'
              newvalue: bits
            - value: '256'
              newvalue: docsCableUpstreamRfPort
            - value: '257'
              newvalue: cableDownstreamRfPort
            - value: '258'
              newvalue: vmwareVirtualNic
            - value: '259'
              newvalue: ieee802154
            - value: '260'
              newvalue: otnOdu
            - value: '261'
              newvalue: otnOtu
            - value: '262'
              newvalue: ifVfiType
            - value: '263'
              newvalue: g9981
            - value: '264'
              newvalue: g9982
            - value: '265'
              newvalue: g9983
            - value: '266'
              newvalue: aluEpon
            - value: '267'
              newvalue: aluEponOnu
            - value: '268'
              newvalue: aluEponPhysicalUni
            - value: '269'
              newvalue: aluEponLogicalLink
            - value: '270'
              newvalue: aluGponOnu
            - value: '271'
              newvalue: aluGponPhysicalUni
            - value: '272'
              newvalue: vmwareNicTeam
            - value: '277'
              newvalue: docsOfdmDownstream
            - value: '278'
              newvalue: docsOfdmaUpstream
            - value: '279'
              newvalue: gfast
            - value: '280'
              newvalue: sdci
            - value: '281'
              newvalue: xboxWireless
            - value: '282'
              newvalue: fastdsl
            - value: '283'
              newvalue: docsCableScte55d1FwdOob
            - value: '284'
              newvalue: docsCableScte55d1RetOob
            - value: '285'
              newvalue: docsCableScte55d2DsOob
            - value: '286'
              newvalue: docsCableScte55d2UsOob
            - value: '287'
              newvalue: docsCableNdf
            - value: '288'
              newvalue: docsCableNdr
            - value: '289'
              newvalue: ptm
            - value: '290'
              newvalue: ghn
        - uuid: 53bf2bc50e8049049d79fd3e23fa0755
          name: 'OSPF area auth type'
          mappings:
            - value: '0'
              newvalue: None
            - value: '1'
              newvalue: 'Simple password'
            - value: '2'
              newvalue: md5
        - uuid: 4f6d5cf1f7ac44509c44cfdd3e21b5e8
          name: 'OSPF area status'
          mappings:
            - value: '1'
              newvalue: Active
            - value: '2'
              newvalue: 'Not in service'
            - value: '3'
              newvalue: 'Not ready'
            - value: '4'
              newvalue: 'Create and go'
            - value: '5'
              newvalue: 'Create and wait'
            - value: '6'
              newvalue: Destroy
        - uuid: ff8918aafeb7439db7197845b4628a19
          name: 'OSPF interface admin status'
          mappings:
            - value: '1'
              newvalue: Enabled
            - value: '2'
              newvalue: Disabled
        - uuid: a2002d515c744e278844803dd3d543e8
          name: 'OSPF interface state'
          mappings:
            - value: '1'
              newvalue: Down
            - value: '2'
              newvalue: Loopback
            - value: '3'
              newvalue: Waiting
            - value: '4'
              newvalue: 'Point to point'
            - value: '5'
              newvalue: 'Designated router'
            - value: '6'
              newvalue: 'Backup designated router'
            - value: '7'
              newvalue: 'Other designated router'
        - uuid: 7cb675b0d69441c9950dcb375ec458a2
          name: 'OSPF interface status'
          mappings:
            - value: '1'
              newvalue: Active
            - value: '2'
              newvalue: 'Not in service'
            - value: '3'
              newvalue: 'Not ready'
            - value: '4'
              newvalue: 'Create and go'
            - value: '5'
              newvalue: 'Create and wait'
            - value: '6'
              newvalue: Destroy
        - uuid: d69261a6f83c4d31a454b01f101a7c2b
          name: 'OSPF interface type'
          mappings:
            - value: '1'
              newvalue: Broadcast
            - value: '2'
              newvalue: NBMA
            - value: '3'
              newvalue: 'Point to point'
            - value: '4'
              newvalue: 'Virtual link'
            - value: '5'
              newvalue: 'Point to multipoint'
        - uuid: dc9b1a5f62c147849ff0eea9da891b71
          name: 'OSPF neighbor state'
          mappings:
            - value: '1'
              newvalue: Down
            - value: '2'
              newvalue: Attempt
            - value: '3'
              newvalue: Init
            - value: '4'
              newvalue: 'Two way'
            - value: '5'
              newvalue: 'Exchange start'
            - value: '6'
              newvalue: Exchange
            - value: '7'
              newvalue: Loading
            - value: '8'
              newvalue: Full
        - uuid: 80a6f0a98231480bb649d030f37bf91e
          name: 'OSPF neighbor status'
          mappings:
            - value: '1'
              newvalue: Active
            - value: '2'
              newvalue: 'Not in service'
            - value: '3'
              newvalue: 'Not ready'
            - value: '4'
              newvalue: 'Create and go'
            - value: '5'
              newvalue: 'Create and wait'
            - value: '6'
              newvalue: Destroy
        - uuid: 977d715501e74110ad6d5ab308f8dfe7
          name: 'OSPF translator role'
          mappings:
            - value: '1'
              newvalue: Always
            - value: '2'
              newvalue: Candidate
        - uuid: 71336b06c8814c5087ebbc891995eb38
          name: 'OSPF translator state'
          mappings:
            - value: '1'
              newvalue: Enabled
            - value: '2'
              newvalue: Elected
            - value: '3'
              newvalue: Disabled
        - uuid: 8fddba3562234525bec7b05dccbea5db
          name: 'Power supply state'
          mappings:
            - value: '1'
              newvalue: Ok
            - value: '2'
              newvalue: 'Fault Absent'
            - value: '3'
              newvalue: 'Fault Input'
            - value: '4'
              newvalue: 'Fault Output'
            - value: '5'
              newvalue: 'Fault POE'
            - value: '6'
              newvalue: 'Fault No Recov'
            - value: '7'
              newvalue: Alert
            - value: '8'
              newvalue: Unknown
            - value: '9'
              newvalue: Unsupported
            - value: '10'
              newvalue: Warning
            - value: '11'
              newvalue: Init
            - value: '12'
              newvalue: Empty
            - value: '13'
              newvalue: 'Fault Airflow'
            - value: '14'
              newvalue: 'Fault Redundancy'
        - uuid: 797ba226aeaa4bdb96bfe404f3e980d1
          name: 'Service state'
          mappings:
            - value: '0'
              newvalue: Down
            - value: '1'
              newvalue: Up
        - uuid: b7a8836abbc84e42b2c562ccf4d562e7
          name: zabbix.host.available
          mappings:
            - value: '0'
              newvalue: 'not available'
            - value: '1'
              newvalue: available
            - value: '2'
              newvalue: unknown
    - uuid: 9643f22821104f809e2486be83e1816e
      template: 'DELL PowerEdge R720 by HTTP'
      name: 'DELL PowerEdge R720 by HTTP'
      description: |
        Template for DELL PowerEdge R720 servers with iDRAC 8/9 firmware 4.32 and later and Redfish API enabled.
        
        You can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/426752-discussion-thread-for-official-zabbix-dell-templates
        
        Generated by official Zabbix template tool "Templator"
      wizard_ready: 'YES'
      readme: |
        ## Overview
        
        This is a template for monitoring DELL PowerEdge R720 servers with iDRAC 8/9 firmware 4.32 (and later) with Redfish API enabled via Zabbix script items. This template works without any external scripts.
        
        ## Setup
        
        1\. Enable Redfish API in the Dell iDRAC interface of your server.
        
        2\. Create a user for monitoring with read-only permissions in the Dell iDRAC interface.
        
        3\. Create a host for Dell server with iDRAC IP as the Zabbix agent interface.
        
        4\. Link the template to the host.
        
        5\. Customize the values of the `{$DELL.HTTP.API.URL}`, `{$DELL.HTTP.API.USER}`, and `{$DELL.HTTP.API.PASSWORD}` macros.
        
        > NOTE! If you are experiencing timeouts on some of the items that are executing requests, adjust the `{$DELL.HTTP.REQUEST.TIMEOUT}` macro accordingly.
      vendor:
        name: Zabbix
        version: 8.0-2
      groups:
        - name: 'Templates/Server hardware'
      items:
        - uuid: f422ccc6fd194d59b49632f0a876bdbf
          name: 'Get array controller resources'
          type: SCRIPT
          key: dell.server.array.resources.get
          history: '0'
          value_type: TEXT
          params: |
            function validateZabbixParams(requiredParams, allParams) {
            	requiredParams.forEach(function (field) {
            		if (typeof allParams !== 'object' || typeof allParams[field] === 'undefined' || allParams[field] === '') {
            			throw 'Required param is not set: ' + field + '.';
            		}
            	});
            }
            
            function Dell(service, action, params) {
            	this.zabbixLogPrefix = '[ DELL ] [ ' + service + ' ] [ ' + action + ' ]';
            	this.request = new HttpRequest();
            
            	this.executeRequest = function (apiPath) {
            		this.request.addHeader('Authorization: Basic ' + btoa(params['user'] + ':' + params['password']));
            
            		if (params['http_proxy']) {
            			this.request.setProxy(params['http_proxy']);
            			Zabbix.log(4, this.zabbixLogPrefix + ' Using http proxy: ' + params['http_proxy']);
            		}
            
            		const response = this.request.get(params['url'] + apiPath);
            
            		this.request.clearHeader();
            
            		if (this.request.getStatus() === parseInt(params['http_status_code'])) {
            			return response;
            		} else {
            			Zabbix.log(3, this.zabbixLogPrefix + ' Unexpected HTTP response code: ' + this.request.getStatus());
            			throw 'Unexpected HTTP response code: ' + this.request.getStatus();
            		}
            	};
            
            	this.extractData = function (data, keys, skipParse) {
            		if (!skipParse) {
            			try {
            				data = JSON.parse(data);
            			} catch (error) {
            				Zabbix.log(3, this.zabbixLogPrefix + ' Could not parse the received JSON object: ' + data);
            				throw 'Could not parse received JSON object. See logs for more information.';
            			}	
            		}
            
            		if (Array.isArray(keys)) {
            			var returnBuffer = {};
            
            			for (keyIdx = 0, keysLength = keys.length; keyIdx < keysLength; keyIdx++) {
            				if (keys[keyIdx]['path'] === '@odata.id') {
            					returnBuffer[keys[keyIdx]['name']] = data[keys[keyIdx]['path']];
            				} else {
            					returnBuffer[keys[keyIdx]['name']] = this.parseJSON(data, keys[keyIdx]['path'].split('.'));
            				}
            			}
            
            			return returnBuffer;
            		} else if (typeof keys === 'object') {
            			return { [keys['name']]: this.parseJSON(data, keys['path'].split('.')) };
            		} else if (typeof keys === 'string') {
            			return this.parseJSON(data, keys.split('.'));
            		} else {
            			throw 'Unexpected key type';
            		}
            	};
            
            	this.parseJSON = function (data, jsonPath) {
            		for (var i = 0, args = jsonPath.length; i < args; i++) {
            			data = data[jsonPath[i]];
            		}
            
            		return data;
            	}
            }
            
            
            const params = JSON.parse(value);
            
            validateZabbixParams(['url', 'user', 'password', 'http_status_code'], params);
            var dell = new Dell('Controller', 'Discovery', params);
            
            const controllers = dell.extractData(dell.executeRequest('/redfish/v1/Systems/System.Embedded.1/Storage?$expand=.($levels=1)'), 'Members');
            
            var arrControllerKeys = [
            	{
            		'name': 'id',
            		'path': 'Id'
            	},
            	{
            		'name': 'name',
            		'path': 'Name'
            	},
            	{
            		'name': 'health',
            		'path': 'Status.Health'
            	},
            	{
            		'name': 'slot',
            		'path': 'Oem.Dell.DellController.PCISlot'
            	}
            ];
            
            var battControllerKeys = [
            	{
            		'name': 'id',
            		'path': 'Oem.Dell.DellControllerBattery.Id'
            	},
            	{
            		'name': 'name',
            		'path': 'Oem.Dell.DellControllerBattery.Name'
            	},
            	{
            		'name': 'status',
            		'path': 'Oem.Dell.DellControllerBattery.PrimaryStatus'
            	}
            ];
            
            if (!Array.isArray(controllers)) {
            	throw 'Unexpected type for controllers.';
            }
            
            var buffer = { 'arrayControllers': [], 'batteryControllers': [] };
            
            controllers.forEach(function (controller) {
            	if (controller['Id'].search('RAID') > -1) {
            		buffer['arrayControllers'].push(dell.extractData(controller, arrControllerKeys, true));
            		buffer['batteryControllers'].push(dell.extractData(controller, battControllerKeys, true));
            	}
            });
            
            return JSON.stringify(buffer);
          description: 'Returns array controller resources.'
          timeout: '{$DELL.HTTP.REQUEST.TIMEOUT}'
          parameters:
            - name: http_proxy
              value: '{$DELL.HTTP.PROXY}'
            - name: http_status_code
              value: '{$DELL.HTTP.RETURN.CODE.OK}'
            - name: password
              value: '{$DELL.HTTP.API.PASSWORD}'
            - name: url
              value: '{$DELL.HTTP.API.URL}'
            - name: user
              value: '{$DELL.HTTP.API.USER}'
          tags:
            - tag: component
              value: raw
        - uuid: 3cdb6b1e166247ddbc08a1bfbacb3197
          name: 'Get disks'
          type: SCRIPT
          key: dell.server.disks.get
          delay: 1h
          history: '0'
          value_type: TEXT
          params: |
            function validateZabbixParams(requiredParams, allParams) {
            	requiredParams.forEach(function (field) {
            		if (typeof allParams !== 'object' || typeof allParams[field] === 'undefined' || allParams[field] === '') {
            			throw 'Required param is not set: ' + field + '.';
            		}
            	});
            }
            
            function Dell(service, action, params) {
            	this.zabbixLogPrefix = '[ DELL ] [ ' + service + ' ] [ ' + action + ' ]';
            	this.request = new HttpRequest();
            
            	this.executeRequest = function (apiPath) {
            		this.request.addHeader('Authorization: Basic ' + btoa(params['user'] + ':' + params['password']));
            
            		if (params['http_proxy']) {
            			this.request.setProxy(params['http_proxy']);
            			Zabbix.log(4, this.zabbixLogPrefix + ' Using http proxy: ' + params['http_proxy']);
            		}
            
            		const response = this.request.get(params['url'] + apiPath);
            
            		this.request.clearHeader();
            
            		if (this.request.getStatus() === parseInt(params['http_status_code'])) {
            			return response;
            		} else {
            			Zabbix.log(3, this.zabbixLogPrefix + ' Unexpected HTTP response code: ' + this.request.getStatus());
            			throw 'Unexpected HTTP response code: ' + this.request.getStatus();
            		}
            	};
            
            	this.extractData = function (data, keys, skipParse) {
            		if (!skipParse) {
            			try {
            				data = JSON.parse(data);
            			} catch (error) {
            				Zabbix.log(3, this.zabbixLogPrefix + ' Could not parse the received JSON object: ' + data);
            				throw 'Could not parse received JSON object. See logs for more information.';
            			}	
            		}
            
            		if (Array.isArray(keys)) {
            			var returnBuffer = {};
            
            			for (keyIdx = 0, keysLength = keys.length; keyIdx < keysLength; keyIdx++) {
            				if (keys[keyIdx]['path'] === '@odata.id') {
            					returnBuffer[keys[keyIdx]['name']] = data[keys[keyIdx]['path']];
            				} else {
            					returnBuffer[keys[keyIdx]['name']] = this.parseJSON(data, keys[keyIdx]['path'].split('.'));
            				}
            			}
            
            			return returnBuffer;
            		} else if (typeof keys === 'object') {
            			return { [keys['name']]: this.parseJSON(data, keys['path'].split('.')) };
            		} else if (typeof keys === 'string') {
            			return this.parseJSON(data, keys.split('.'));
            		} else {
            			throw 'Unexpected key type';
            		}
            	};
            
            	this.parseJSON = function (data, jsonPath) {
            		for (var i = 0, args = jsonPath.length; i < args; i++) {
            			data = data[jsonPath[i]];
            		}
            
            		return data;
            	}
            }
            
            
            const params = JSON.parse(value);
            
            validateZabbixParams(['url', 'user', 'password', 'http_status_code'], params);
            var dell = new Dell('Disk', 'Discovery', params);
            
            const disks = dell.extractData(dell.executeRequest('/redfish/v1/Systems/System.Embedded.1/Storage'), 'Members');
            
            var keys = [
            	{
            		'name': 'path',
            		'path': '@odata.id'
            	},
            	{
            		'name': 'name',
            		'path': 'Name'
            	}
            ];
            
            if (!Array.isArray(disks)) {
            	throw 'Unexpected type for disks.';
            }
            
            var buffer = { 'physicalDisks': [], 'virtualDisks': [] };
            
            disks.forEach(function (disk) {
            	var requests = [{ 'usage': 'physicalDisks', 'path': '', 'target': 'Drives' }, { 'usage': 'virtualDisks', 'path': '/Volumes', 'target': 'Members' }];
            
            	requests.forEach(function (request) {
            		const disks = dell.extractData(dell.executeRequest(disk['@odata.id'] + request['path']), request['target']);
            
            		if (!Array.isArray(disks) || disks.length <= 0) {
            			return;
            		}
            
            		disks.forEach(function (drive) {
            			buffer[request['usage']].push(dell.extractData(dell.executeRequest(drive['@odata.id']), keys));
            		});
            	});
            });
            
            return JSON.stringify(buffer);
          description: 'Returns storage resources.'
          timeout: '{$DELL.HTTP.REQUEST.TIMEOUT}'
          parameters:
            - name: http_proxy
              value: '{$DELL.HTTP.PROXY}'
            - name: http_status_code
              value: '{$DELL.HTTP.RETURN.CODE.OK}'
            - name: password
              value: '{$DELL.HTTP.API.PASSWORD}'
            - name: url
              value: '{$DELL.HTTP.API.URL}'
            - name: user
              value: '{$DELL.HTTP.API.USER}'
          tags:
            - tag: component
              value: raw
        - uuid: 926ce571ca7e4021bbcb0864c2dd00ae
          name: 'Firmware version'
          type: DEPENDENT
          key: dell.server.hw.firmware
          value_type: CHAR
          description: 'This attribute defines the firmware version of a remote access card.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.firmware
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 6h
          master_item:
            key: dell.server.system.get
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: 769dd4e6283f4e1e8a4c9271006f7123
              expression: 'last(/DELL PowerEdge R720 by HTTP/dell.server.hw.firmware,#1)<>last(/DELL PowerEdge R720 by HTTP/dell.server.hw.firmware,#2) and length(last(/DELL PowerEdge R720 by HTTP/dell.server.hw.firmware))>0'
              name: 'Dell R720: Firmware has changed'
              opdata: 'Current value: {ITEM.LASTVALUE1}'
              priority: INFO
              description: 'The firmware version has changed. Acknowledge to close the problem manually.'
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: notice
        - uuid: 6e469760ab3c43e5a94613e798e227d1
          name: 'Hardware model name'
          type: DEPENDENT
          key: dell.server.hw.model
          value_type: CHAR
          description: 'This attribute defines the model name of the system.'
          inventory_link: MODEL
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.model
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 6h
          master_item:
            key: dell.server.system.get
          tags:
            - tag: component
              value: system
        - uuid: 24a9370f57cc494ab2bd63c503df88bc
          name: 'Hardware serial number'
          type: DEPENDENT
          key: dell.server.hw.serialnumber
          value_type: CHAR
          description: 'This attribute defines the service tag of the system.'
          inventory_link: SERIALNO_A
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.serialnumber
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 6h
          master_item:
            key: dell.server.system.get
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: 32a56bf761a24da5966512e13741824c
              expression: 'last(/DELL PowerEdge R720 by HTTP/dell.server.hw.serialnumber,#1)<>last(/DELL PowerEdge R720 by HTTP/dell.server.hw.serialnumber,#2) and length(last(/DELL PowerEdge R720 by HTTP/dell.server.hw.serialnumber))>0'
              name: 'Dell R720: Device has been replaced'
              event_name: 'Dell R720: Device has been replaced (new serial number received)'
              priority: INFO
              description: 'The device serial number has changed. Acknowledge to close the problem manually.'
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: notice
        - uuid: c5520628f22f4a9ebd1e158b6a89b1a5
          name: 'Get network interfaces'
          type: SCRIPT
          key: dell.server.net.iface.get
          delay: 1h
          history: '0'
          value_type: TEXT
          params: |
            function validateZabbixParams(requiredParams, allParams) {
            	requiredParams.forEach(function (field) {
            		if (typeof allParams !== 'object' || typeof allParams[field] === 'undefined' || allParams[field] === '') {
            			throw 'Required param is not set: ' + field + '.';
            		}
            	});
            }
            
            function Dell(service, action, params) {
            	this.zabbixLogPrefix = '[ DELL ] [ ' + service + ' ] [ ' + action + ' ]';
            	this.request = new HttpRequest();
            
            	this.executeRequest = function (apiPath) {
            		this.request.addHeader('Authorization: Basic ' + btoa(params['user'] + ':' + params['password']));
            
            		if (params['http_proxy']) {
            			this.request.setProxy(params['http_proxy']);
            			Zabbix.log(4, this.zabbixLogPrefix + ' Using http proxy: ' + params['http_proxy']);
            		}
            
            		const response = this.request.get(params['url'] + apiPath);
            
            		this.request.clearHeader();
            
            		if (this.request.getStatus() === parseInt(params['http_status_code'])) {
            			return response;
            		} else {
            			Zabbix.log(3, this.zabbixLogPrefix + ' Unexpected HTTP response code: ' + this.request.getStatus());
            			throw 'Unexpected HTTP response code: ' + this.request.getStatus();
            		}
            	};
            
            	this.extractData = function (data, keys, skipParse) {
            		if (!skipParse) {
            			try {
            				data = JSON.parse(data);
            			} catch (error) {
            				Zabbix.log(3, this.zabbixLogPrefix + ' Could not parse the received JSON object: ' + data);
            				throw 'Could not parse received JSON object. See logs for more information.';
            			}	
            		}
            
            		if (Array.isArray(keys)) {
            			var returnBuffer = {};
            
            			for (keyIdx = 0, keysLength = keys.length; keyIdx < keysLength; keyIdx++) {
            				if (keys[keyIdx]['path'] === '@odata.id') {
            					returnBuffer[keys[keyIdx]['name']] = data[keys[keyIdx]['path']];
            				} else {
            					returnBuffer[keys[keyIdx]['name']] = this.parseJSON(data, keys[keyIdx]['path'].split('.'));
            				}
            			}
            
            			return returnBuffer;
            		} else if (typeof keys === 'object') {
            			return { [keys['name']]: this.parseJSON(data, keys['path'].split('.')) };
            		} else if (typeof keys === 'string') {
            			return this.parseJSON(data, keys.split('.'));
            		} else {
            			throw 'Unexpected key type';
            		}
            	};
            
            	this.parseJSON = function (data, jsonPath) {
            		for (var i = 0, args = jsonPath.length; i < args; i++) {
            			data = data[jsonPath[i]];
            		}
            
            		return data;
            	}
            }
            
            
            const params = JSON.parse(value);
            
            validateZabbixParams(['url', 'user', 'password', 'http_status_code'], params);
            var dell = new Dell('Network Interface', 'Discovery', params);
            
            const netAdapters = dell.extractData(dell.executeRequest('/redfish/v1/Chassis/System.Embedded.1/NetworkAdapters'), 'Members');
            
            var keys = [
            	{
            		'name': 'path',
            		'path': '@odata.id'
            	},
            	{
            		'name': 'id',
            		'path': 'Id'
            	}
            ];
            
            if (!Array.isArray(netAdapters)) {
            	throw 'Unexpected type for network adapters.';
            }
            
            var buffer = [];
            
            netAdapters.forEach(function (netAdapter) {
            	const netPorts = dell.extractData(dell.executeRequest(netAdapter["@odata.id"] + '/NetworkPorts'), 'Members');
            
            	if (!Array.isArray(netPorts)) {
            		return;
            	}
            
            	netPorts.forEach(function (netPort) {
            		buffer.push(dell.extractData(dell.executeRequest(netPort["@odata.id"]), keys));
            	})
            });
            
            return JSON.stringify(buffer);
          description: 'Returns network interfaces.'
          timeout: '{$DELL.HTTP.REQUEST.TIMEOUT}'
          parameters:
            - name: http_proxy
              value: '{$DELL.HTTP.PROXY}'
            - name: http_status_code
              value: '{$DELL.HTTP.RETURN.CODE.OK}'
            - name: password
              value: '{$DELL.HTTP.API.PASSWORD}'
            - name: url
              value: '{$DELL.HTTP.API.URL}'
            - name: user
              value: '{$DELL.HTTP.API.USER}'
          tags:
            - tag: component
              value: raw
        - uuid: ab6d8e8ed72f4b64b30a3f1d11a0d4d6
          name: 'Get sensors'
          type: SCRIPT
          key: dell.server.sensors.get
          history: '0'
          value_type: TEXT
          params: |
            function validateZabbixParams(requiredParams, allParams) {
            	requiredParams.forEach(function (field) {
            		if (typeof allParams !== 'object' || typeof allParams[field] === 'undefined' || allParams[field] === '') {
            			throw 'Required param is not set: ' + field + '.';
            		}
            	});
            }
            
            function Dell(service, action, params) {
            	this.zabbixLogPrefix = '[ DELL ] [ ' + service + ' ] [ ' + action + ' ]';
            	this.request = new HttpRequest();
            
            	this.executeRequest = function (apiPath) {
            		this.request.addHeader('Authorization: Basic ' + btoa(params['user'] + ':' + params['password']));
            
            		if (params['http_proxy']) {
            			this.request.setProxy(params['http_proxy']);
            			Zabbix.log(4, this.zabbixLogPrefix + ' Using http proxy: ' + params['http_proxy']);
            		}
            
            		const response = this.request.get(params['url'] + apiPath);
            
            		this.request.clearHeader();
            
            		if (this.request.getStatus() === parseInt(params['http_status_code'])) {
            			return response;
            		} else {
            			Zabbix.log(3, this.zabbixLogPrefix + ' Unexpected HTTP response code: ' + this.request.getStatus());
            			throw 'Unexpected HTTP response code: ' + this.request.getStatus();
            		}
            	};
            
            	this.extractData = function (data, keys, skipParse) {
            		if (!skipParse) {
            			try {
            				data = JSON.parse(data);
            			} catch (error) {
            				Zabbix.log(3, this.zabbixLogPrefix + ' Could not parse the received JSON object: ' + data);
            				throw 'Could not parse received JSON object. See logs for more information.';
            			}	
            		}
            
            		if (Array.isArray(keys)) {
            			var returnBuffer = {};
            
            			for (keyIdx = 0, keysLength = keys.length; keyIdx < keysLength; keyIdx++) {
            				if (keys[keyIdx]['path'] === '@odata.id') {
            					returnBuffer[keys[keyIdx]['name']] = data[keys[keyIdx]['path']];
            				} else {
            					returnBuffer[keys[keyIdx]['name']] = this.parseJSON(data, keys[keyIdx]['path'].split('.'));
            				}
            			}
            
            			return returnBuffer;
            		} else if (typeof keys === 'object') {
            			return { [keys['name']]: this.parseJSON(data, keys['path'].split('.')) };
            		} else if (typeof keys === 'string') {
            			return this.parseJSON(data, keys.split('.'));
            		} else {
            			throw 'Unexpected key type';
            		}
            	};
            
            	this.parseJSON = function (data, jsonPath) {
            		for (var i = 0, args = jsonPath.length; i < args; i++) {
            			data = data[jsonPath[i]];
            		}
            
            		return data;
            	}
            }
            
            function formatPSU(psuObj) {
            	var foundPowerSupplies = [],
            		buffer = [];
            
            	psuObj.forEach(function (obj) {
            		const psuName = obj['name'].split(' ')[0];
            
            		if (foundPowerSupplies.indexOf(psuName) === -1) {
            			foundPowerSupplies.push(psuName);
            			buffer.push({
            				'name': psuName,
            				[obj['type'].toLowerCase()]: {'reading': obj['reading'], 'health': obj['health']}
            			});
            		} else {
            			buffer.forEach(function (bufferObj) {
            
            				if (bufferObj['name'] === psuName) {
            					bufferObj[obj['type'].toLowerCase()] = {'reading': obj['reading'], 'health': obj['health']};
            
            					return;
            				}
            			});
            		}
            	})
            	return buffer;
            };
            
            function formatTemp(tempObj) {
            	tempObj.forEach(function (obj) {
            		obj.name = obj.name.split(' ').slice(0, -1).join(' ');
            	});
            
            	return tempObj;
            }
            
            function formatSysBoard(sysObj) {
            	const remove = ['System', 'Board', 'Usage'];
            
            	sysObj.forEach(function (obj) {
            		var buffer = [];
            
            		obj['name'].split(' ').forEach(function (word) {
            			var match = false;
            
            			remove.forEach(function (removeWord) {
            				if (removeWord === word) {
            					match = true;
            				}
            			});
            
            			if (!match) {
            				buffer.push(word);
            			}
            		});
            
            		if (buffer.length > 0) {
            			obj['name'] = buffer.join(' ');
            		}
            	});
            
            	return sysObj;
            }
            
            
            const params = JSON.parse(value);
            
            validateZabbixParams(['url', 'user', 'password', 'http_status_code'], params);
            var dell = new Dell('Sensor', 'Discovery', params);
            
            const sensors = dell.extractData(dell.executeRequest('/redfish/v1/Chassis/System.Embedded.1/Sensors?$expand=.($levels=1)'), 'Members');
            
            if (!Array.isArray(sensors)) {
            	throw 'Unexpected type for sensors.';
            }
            
            const keys = [
            	{
            		'name': 'id',
            		'path': 'Id'
            	},
            	{
            		'name': 'name',
            		'path': 'Name'
            	},
            	{
            		'name': 'context',
            		'path': 'PhysicalContext'
            	},
            	{
            		'name': 'reading',
            		'path': 'Reading'
            	},
            	{
            		'name': 'type',
            		'path': 'ReadingType'
            	},
            	{
            		'name': 'health',
            		'path': 'Status.Health'
            	}
            ];
            
            var buffer = { 'fan': [], 'psu': [], 'temperature': [], 'sysBoard': [] };
            
            sensors.forEach(function (sensor) {
            	if (sensor['Name'].substring(0, 2) === 'PS' && sensor['PhysicalContext'] === 'PowerSupply') {
            		buffer['psu'].push(dell.extractData(sensor, keys, true));
            	} else if (sensor['ReadingType'] === 'Temperature') {
            		buffer['temperature'].push(dell.extractData(sensor, keys, true));
            	} else if (sensor['Name'].includes('Fan') && sensor['ReadingType'] === 'Rotational') {
            		buffer['fan'].push(dell.extractData(sensor, keys, true));
            	} else if (sensor['Name'].includes('System Board') && sensor['ReadingType'] === 'Percent') {
            		buffer['sysBoard'].push(dell.extractData(sensor, keys, true));
            	}
            });
            
            buffer['psu'] = formatPSU(buffer['psu']);
            buffer['temperature'] = formatTemp(buffer['temperature']);
            buffer['sysBoard'] = formatSysBoard(buffer['sysBoard']);
            
            return JSON.stringify(buffer);
          description: 'Returns sensors.'
          timeout: '{$DELL.HTTP.REQUEST.TIMEOUT}'
          parameters:
            - name: http_proxy
              value: '{$DELL.HTTP.PROXY}'
            - name: http_status_code
              value: '{$DELL.HTTP.RETURN.CODE.OK}'
            - name: password
              value: '{$DELL.HTTP.API.PASSWORD}'
            - name: url
              value: '{$DELL.HTTP.API.URL}'
            - name: user
              value: '{$DELL.HTTP.API.USER}'
          tags:
            - tag: component
              value: raw
        - uuid: 836ad85fee674a1ca7c6d147d0e5c0c7
          name: 'Overall system health status'
          type: DEPENDENT
          key: dell.server.status
          trends: '0'
          description: 'This attribute defines the overall rollup status of all the components in the system monitored by the remote access card. Includes system, storage, IO devices, iDRAC, CPU, memory, etc.'
          valuemap:
            name: 'Redfish status health'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.status
            - type: JAVASCRIPT
              parameters:
                - |
                  const idx = {
                  	'OK': 1,
                  	'Warning': 2,
                  	'Critical': 3,
                  };
                  
                  return typeof idx[value] === 'undefined' ? 0 : idx[value];
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 6h
          master_item:
            key: dell.server.system.get
          tags:
            - tag: component
              value: health
            - tag: component
              value: system
          triggers:
            - uuid: 231b61c2570141f1bae1a3ccd9083de5
              expression: 'last(/DELL PowerEdge R720 by HTTP/dell.server.status,)=3'
              name: 'Dell R720: Server is in a critical state'
              opdata: 'Current state: {ITEM.LASTVALUE1}'
              priority: AVERAGE
              description: 'Please check the device for faults.'
              tags:
                - tag: scope
                  value: availability
            - uuid: cac71a4bfffa4d87a15280fcbec67672
              expression: 'last(/DELL PowerEdge R720 by HTTP/dell.server.status,)=2'
              name: 'Dell R720: Server is in a warning state'
              opdata: 'Current state: {ITEM.LASTVALUE1}'
              priority: WARNING
              description: 'Please check the device for warnings.'
              dependencies:
                - name: 'Dell R720: Server is in a critical state'
                  expression: 'last(/DELL PowerEdge R720 by HTTP/dell.server.status,)=3'
              tags:
                - tag: scope
                  value: availability
        - uuid: c400cdf744be43859f36ac249cef03d2
          name: 'Get system'
          type: SCRIPT
          key: dell.server.system.get
          history: '0'
          value_type: TEXT
          params: |
            function validateZabbixParams(requiredParams, allParams) {
            	requiredParams.forEach(function (field) {
            		if (typeof allParams !== 'object' || typeof allParams[field] === 'undefined' || allParams[field] === '') {
            			throw 'Required param is not set: ' + field + '.';
            		}
            	});
            }
            
            function Dell(service, action, params) {
            	this.zabbixLogPrefix = '[ DELL ] [ ' + service + ' ] [ ' + action + ' ]';
            	this.request = new HttpRequest();
            
            	this.executeRequest = function (apiPath) {
            		this.request.addHeader('Authorization: Basic ' + btoa(params['user'] + ':' + params['password']));
            
            		if (params['http_proxy']) {
            			this.request.setProxy(params['http_proxy']);
            			Zabbix.log(4, this.zabbixLogPrefix + ' Using http proxy: ' + params['http_proxy']);
            		}
            
            		const response = this.request.get(params['url'] + apiPath);
            
            		this.request.clearHeader();
            
            		if (this.request.getStatus() === parseInt(params['http_status_code'])) {
            			return response;
            		} else {
            			Zabbix.log(3, this.zabbixLogPrefix + ' Unexpected HTTP response code: ' + this.request.getStatus());
            			throw 'Unexpected HTTP response code: ' + this.request.getStatus();
            		}
            	};
            
            	this.extractData = function (data, keys, skipParse) {
            		if (!skipParse) {
            			try {
            				data = JSON.parse(data);
            			} catch (error) {
            				Zabbix.log(3, this.zabbixLogPrefix + ' Could not parse the received JSON object: ' + data);
            				throw 'Could not parse received JSON object. See logs for more information.';
            			}	
            		}
            
            		if (Array.isArray(keys)) {
            			var returnBuffer = {};
            
            			for (keyIdx = 0, keysLength = keys.length; keyIdx < keysLength; keyIdx++) {
            				if (keys[keyIdx]['path'] === '@odata.id') {
            					returnBuffer[keys[keyIdx]['name']] = data[keys[keyIdx]['path']];
            				} else {
            					returnBuffer[keys[keyIdx]['name']] = this.parseJSON(data, keys[keyIdx]['path'].split('.'));
            				}
            			}
            
            			return returnBuffer;
            		} else if (typeof keys === 'object') {
            			return { [keys['name']]: this.parseJSON(data, keys['path'].split('.')) };
            		} else if (typeof keys === 'string') {
            			return this.parseJSON(data, keys.split('.'));
            		} else {
            			throw 'Unexpected key type';
            		}
            	};
            
            	this.parseJSON = function (data, jsonPath) {
            		for (var i = 0, args = jsonPath.length; i < args; i++) {
            			data = data[jsonPath[i]];
            		}
            
            		return data;
            	}
            }
            
            
            const params = JSON.parse(value);
            
            validateZabbixParams(['url', 'user', 'password', 'http_status_code'], params);
            var dell = new Dell('System', 'Get system metrics', params);
            
            const requests = [
            	{
            		'path': '/redfish/v1/Systems/System.Embedded.1',
            		'keys': [
            			{
            				'name': 'model',
            				'path': 'Model'
            			},
            			{
            				'name': 'serialnumber',
            				'path': 'Oem.Dell.DellSystem.ChassisServiceTag'
            			},
            			{
            				'name': 'status',
            				'path': 'Status.Health'
            			}
            		]
            	},
            	{
            		'path': '/redfish/v1/Managers/iDRAC.Embedded.1',
            		'keys': {
            			'name': 'firmware',
            			'path': 'FirmwareVersion'
            		}
            	}
            ];
            
            var buffer = {};
            
            for (var i = 0, requestsCount = requests.length; i < requestsCount; i++) {
            	Object.assign(buffer, dell.extractData(dell.executeRequest(requests[i].path), requests[i].keys));
            }
            
            return JSON.stringify(buffer);
          description: 'Returns system metrics.'
          timeout: '{$DELL.HTTP.REQUEST.TIMEOUT}'
          parameters:
            - name: http_proxy
              value: '{$DELL.HTTP.PROXY}'
            - name: http_status_code
              value: '{$DELL.HTTP.RETURN.CODE.OK}'
            - name: password
              value: '{$DELL.HTTP.API.PASSWORD}'
            - name: url
              value: '{$DELL.HTTP.API.URL}'
            - name: user
              value: '{$DELL.HTTP.API.USER}'
          tags:
            - tag: component
              value: raw
        - uuid: b50ae9a0b50347c3b660a4fb49fc5c65
          name: 'CPU utilization, in %'
          type: DEPENDENT
          key: dell.server.util.cpu
          value_type: FLOAT
          units: '%'
          description: 'CPU utilization.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.sysBoard[?(@.id == "SystemBoardCPUUsage")].reading.first()'
          master_item:
            key: dell.server.sensors.get
          tags:
            - tag: component
              value: cpu
          triggers:
            - uuid: 4ae5ed40c7ac4a4990f10afb0c578301
              expression: 'min(/DELL PowerEdge R720 by HTTP/dell.server.util.cpu,5m)>={$DELL.HTTP.CPU.UTIL.WARN}'
              name: 'Dell R720: CPU utilization is high'
              event_name: 'Dell R720: Current CPU utilization is high (util >= {$DELL.HTTP.CPU.UTIL.WARN}%)'
              opdata: 'Current utilization: {ITEM.LASTVALUE1}'
              priority: WARNING
              description: 'Current CPU utilization has exceeded `{$DELL.HTTP.CPU.UTIL.WARN}`%.'
              dependencies:
                - name: 'Dell R720: CPU utilization is too high'
                  expression: 'min(/DELL PowerEdge R720 by HTTP/dell.server.util.cpu,5m)>={$DELL.HTTP.CPU.UTIL.HIGH}'
              tags:
                - tag: scope
                  value: capacity
            - uuid: 5d20edd65b914aadb3354b13d52f417f
              expression: 'min(/DELL PowerEdge R720 by HTTP/dell.server.util.cpu,5m)>={$DELL.HTTP.CPU.UTIL.HIGH}'
              name: 'Dell R720: CPU utilization is too high'
              event_name: 'Dell R720: Current CPU utilization is too high (util >= {$DELL.HTTP.CPU.UTIL.HIGH}%)'
              opdata: 'Current utilization: {ITEM.LASTVALUE1}'
              priority: HIGH
              description: 'Current CPU utilization has exceeded `{$DELL.HTTP.CPU.UTIL.HIGH}`%.'
              tags:
                - tag: scope
                  value: capacity
        - uuid: a8ede4b667794c6099f9b4905d295599
          name: 'IO utilization, in %'
          type: DEPENDENT
          key: dell.server.util.io
          value_type: FLOAT
          units: '%'
          description: 'IO utilization.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.sysBoard[?(@.id == "SystemBoardIOUsage")].reading.first()'
          master_item:
            key: dell.server.sensors.get
          tags:
            - tag: component
              value: io
          triggers:
            - uuid: 6a345bd704aa4b719399125716967468
              expression: 'min(/DELL PowerEdge R720 by HTTP/dell.server.util.io,5m)>={$DELL.HTTP.IO.UTIL.WARN}'
              name: 'Dell R720: IO utilization is high'
              event_name: 'Dell R720: Current IO utilization is high (util >= {$DELL.HTTP.IO.UTIL.WARN}%)'
              opdata: 'Current utilization: {ITEM.LASTVALUE1}'
              priority: WARNING
              description: 'Current IO utilization has exceeded `{$DELL.HTTP.IO.UTIL.WARN}`%.'
              dependencies:
                - name: 'Dell R720: IO utilization is too high'
                  expression: 'min(/DELL PowerEdge R720 by HTTP/dell.server.util.io,5m)>={$DELL.HTTP.IO.UTIL.HIGH}'
              tags:
                - tag: scope
                  value: capacity
            - uuid: 6d2c8ef6746d42299ffc53e0f837e095
              expression: 'min(/DELL PowerEdge R720 by HTTP/dell.server.util.io,5m)>={$DELL.HTTP.IO.UTIL.HIGH}'
              name: 'Dell R720: IO utilization is too high'
              event_name: 'Dell R720: Current IO utilization is too high (util >= {$DELL.HTTP.IO.UTIL.HIGH}%)'
              opdata: 'Current utilization: {ITEM.LASTVALUE1}'
              priority: HIGH
              description: 'Current IO utilization has exceeded `{$DELL.HTTP.IO.UTIL.HIGH}`%.'
              tags:
                - tag: scope
                  value: capacity
        - uuid: f2ce80918d154056aea196f4f25fe1fe
          name: 'Memory utilization, in %'
          type: DEPENDENT
          key: dell.server.util.mem
          value_type: FLOAT
          units: '%'
          description: 'Memory utilization.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.sysBoard[?(@.id == "SystemBoardMEMUsage")].reading.first()'
          master_item:
            key: dell.server.sensors.get
          tags:
            - tag: component
              value: memory
          triggers:
            - uuid: 8640e51d349b427a9d57923236c4036f
              expression: 'min(/DELL PowerEdge R720 by HTTP/dell.server.util.mem,5m)>={$DELL.HTTP.MEM.UTIL.WARN}'
              name: 'Dell R720: Memory utilization is high'
              event_name: 'Dell R720: Current memory utilization is high (util >= {$DELL.HTTP.MEM.UTIL.WARN}%)'
              opdata: 'Current utilization: {ITEM.LASTVALUE1}'
              priority: WARNING
              description: 'Current memory utilization has exceeded `{$DELL.HTTP.MEM.UTIL.WARN}`%.'
              dependencies:
                - name: 'Dell R720: Memory utilization is too high'
                  expression: 'min(/DELL PowerEdge R720 by HTTP/dell.server.util.mem,5m)>={$DELL.HTTP.MEM.UTIL.HIGH}'
              tags:
                - tag: scope
                  value: capacity
            - uuid: f91f48c6bfc5482c8813c5830807640e
              expression: 'min(/DELL PowerEdge R720 by HTTP/dell.server.util.mem,5m)>={$DELL.HTTP.MEM.UTIL.HIGH}'
              name: 'Dell R720: Memory utilization is too high'
              event_name: 'Dell R720: Current memory utilization is too high (util >= {$DELL.HTTP.MEM.UTIL.HIGH}%)'
              opdata: 'Current utilization: {ITEM.LASTVALUE1}'
              priority: HIGH
              description: 'Current memory utilization has exceeded `{$DELL.HTTP.MEM.UTIL.HIGH}`%.'
              tags:
                - tag: scope
                  value: capacity
        - uuid: fe3587269b0b49d39926cd4985eb49ae
          name: 'SYS utilization, in %'
          type: DEPENDENT
          key: dell.server.util.sys
          value_type: FLOAT
          units: '%'
          description: 'SYS utilization.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.sysBoard[?(@.id == "SystemBoardSYSUsage")].reading.first()'
          master_item:
            key: dell.server.sensors.get
          tags:
            - tag: component
              value: sys
          triggers:
            - uuid: da48f40dafd44f788bfd9c87896273d9
              expression: 'min(/DELL PowerEdge R720 by HTTP/dell.server.util.sys,5m)>={$DELL.HTTP.SYS.UTIL.WARN}'
              name: 'Dell R720: SYS utilization is high'
              event_name: 'Dell R720: Current SYS utilization is high (util >= {$DELL.HTTP.SYS.UTIL.WARN}%)'
              opdata: 'Current utilization: {ITEM.LASTVALUE1}'
              priority: WARNING
              description: 'Current SYS utilization has exceeded `{$DELL.HTTP.SYS.UTIL.WARN}`%.'
              dependencies:
                - name: 'Dell R720: IO utilization is too high'
                  expression: 'min(/DELL PowerEdge R720 by HTTP/dell.server.util.io,5m)>={$DELL.HTTP.IO.UTIL.HIGH}'
              tags:
                - tag: scope
                  value: capacity
            - uuid: 94d3375fe9af4d57b9542cd877546b02
              expression: 'min(/DELL PowerEdge R720 by HTTP/dell.server.util.sys,5m)>={$DELL.HTTP.SYS.UTIL.HIGH}'
              name: 'Dell R720: SYS utilization is too high'
              event_name: 'Dell R720: Current SYS utilization is too high (util >= {$DELL.HTTP.SYS.UTIL.HIGH}%)'
              opdata: 'Current utilization: {ITEM.LASTVALUE1}'
              priority: HIGH
              description: 'Current SYS utilization has exceeded `{$DELL.HTTP.SYS.UTIL.HIGH}`%.'
              tags:
                - tag: scope
                  value: capacity
        - uuid: da21527c1a004c67a5e2cd6770aa8637
          name: 'Redfish API status'
          type: SIMPLE
          key: 'net.tcp.service[https]'
          description: |
            Availability of Redfish API on the server.
            Possible values:
              0 - Unavailable
              1 - Available
          valuemap:
            name: 'Redfish API availability'
          tags:
            - tag: component
              value: health
            - tag: component
              value: system
          triggers:
            - uuid: 1a85b9c93c644fd98183df4fbda3a01f
              expression: 'last(/DELL PowerEdge R720 by HTTP/net.tcp.service[https])=0'
              name: 'Dell R720: Redfish API service is unavailable'
              priority: HIGH
              description: 'The service is unavailable or does not accept TCP connections.'
              tags:
                - tag: scope
                  value: availability
      discovery_rules:
        - uuid: 0ce3faf4178c4e509b3f7cd808aae910
          name: 'Array controller discovery'
          type: DEPENDENT
          key: dell.server.array.discovery
          description: 'Discovery of disk array controllers.'
          item_prototypes:
            - uuid: 7fa996a7ded34068aaa478071dd511d5
              name: 'Controller [{#CNTLR_NAME}]: Status'
              type: DEPENDENT
              key: 'dell.server.array.status[{#ID}]'
              description: 'The status of the job. Possible values: OK, Warning, Critical.'
              valuemap:
                name: 'Redfish status health'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.arrayControllers[?(@.id == "{#ID}")].health.first()'
                - type: JAVASCRIPT
                  parameters:
                    - |
                      const idx = {
                      	'OK': 1,
                      	'Warning': 2,
                      	'Critical': 3,
                      };
                      
                      return typeof idx[value] === 'undefined' ? 0 : idx[value];
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: dell.server.array.resources.get
              tags:
                - tag: component
                  value: diskarray
                - tag: component
                  value: storage
              trigger_prototypes:
                - uuid: 0191687242b244d9a65b8f8befa7866a
                  expression: 'last(/DELL PowerEdge R720 by HTTP/dell.server.array.status[{#ID}],)=3'
                  name: 'Dell R720: Controller [{#CNTLR_NAME}]: Critical state'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'Please check the device for faults.'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: fabb113a6da84fc88cc908c5dcd831fe
                  expression: 'last(/DELL PowerEdge R720 by HTTP/dell.server.array.status[{#ID}],)=2'
                  name: 'Dell R720: Controller [{#CNTLR_NAME}]: Warning state'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'Please check the device for warnings.'
                  dependencies:
                    - name: 'Dell R720: Controller [{#CNTLR_NAME}]: Critical state'
                      expression: 'last(/DELL PowerEdge R720 by HTTP/dell.server.array.status[{#ID}],)=3'
                  tags:
                    - tag: scope
                      value: availability
          master_item:
            key: dell.server.array.resources.get
          lld_macro_paths:
            - lld_macro: '{#CNTLR_NAME}'
              path: $.name
            - lld_macro: '{#ID}'
              path: $.id
            - lld_macro: '{#SLOT}'
              path: $.slot
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.arrayControllers
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 6h
        - uuid: 0c275c4a75b24d12ad246517b4fb118a
          name: 'Battery discovery'
          type: DEPENDENT
          key: dell.server.controller.battery.discovery
          description: 'Discovery of battery controllers.'
          item_prototypes:
            - uuid: 43e3ca9cc4634445a828e5c32ef01224
              name: 'Battery [{#BATTERY_NAME}]: Status'
              type: DEPENDENT
              key: 'dell.server.controller.battery.status[{#ID}]'
              description: 'The status of the job. Possible values: OK, Warning, Critical.'
              valuemap:
                name: 'Redfish status health'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.batteryControllers[?(@.id == "{#ID}")].status.first()'
                - type: JAVASCRIPT
                  parameters:
                    - |
                      const idx = {
                      	'OK': 1,
                      	'Warning': 2,
                      	'Critical': 3,
                      };
                      
                      return typeof idx[value] === 'undefined' ? 0 : idx[value];
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: dell.server.array.resources.get
              tags:
                - tag: component
                  value: battery
                - tag: component
                  value: diskarray
              trigger_prototypes:
                - uuid: d9cd2484dd874e0982eec6eb916abcad
                  expression: 'last(/DELL PowerEdge R720 by HTTP/dell.server.controller.battery.status[{#ID}],)=3'
                  name: 'Dell R720: Battery [{#BATTERY_NAME}]: Critical state'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'Please check the device for faults.'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: 59275951823f4a6f9064ff635141a652
                  expression: 'last(/DELL PowerEdge R720 by HTTP/dell.server.controller.battery.status[{#ID}],)=2'
                  name: 'Dell R720: Battery [{#BATTERY_NAME}]: Warning state'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'Please check the device for warnings.'
                  dependencies:
                    - name: 'Dell R720: Battery [{#BATTERY_NAME}]: Critical state'
                      expression: 'last(/DELL PowerEdge R720 by HTTP/dell.server.controller.battery.status[{#ID}],)=3'
                  tags:
                    - tag: scope
                      value: availability
          master_item:
            key: dell.server.array.resources.get
          lld_macro_paths:
            - lld_macro: '{#BATTERY_NAME}'
              path: $.name
            - lld_macro: '{#ID}'
              path: $.id
            - lld_macro: '{#ODATA}'
              path: $.path
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.batteryControllers
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 6h
        - uuid: e25bb9d517ff49ff8451702b194612cc
          name: 'FAN discovery'
          type: DEPENDENT
          key: dell.server.fan.discovery
          description: 'Discovery of FAN sensors.'
          item_prototypes:
            - uuid: f71ec03e1a2d429d9bf57cb84a80d857
              name: 'Fan [{#SENSOR_NAME}]: Get sensor'
              type: DEPENDENT
              key: 'dell.server.sensor.fan.get[{#SENSOR_NAME}]'
              history: '0'
              value_type: TEXT
              description: 'Returns the metrics of a sensor.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.fan.[?(@.id == ''{#ID}'')].first()'
              master_item:
                key: dell.server.sensors.get
              tags:
                - tag: component
                  value: fan
                - tag: component
                  value: raw
            - uuid: 8050ebe6a9524177ae9b9edfb8a16344
              name: 'Fan [{#SENSOR_NAME}]: Speed'
              type: DEPENDENT
              key: 'dell.server.sensor.fan.speed[{#SENSOR_NAME}]'
              units: '!rpm'
              description: 'Sensor value.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.reading
              master_item:
                key: 'dell.server.sensor.fan.get[{#SENSOR_NAME}]'
              tags:
                - tag: component
                  value: fan
            - uuid: c2b308a258334ae2b7fc2843cb9507e4
              name: 'Fan [{#SENSOR_NAME}]: Status'
              type: DEPENDENT
              key: 'dell.server.sensor.fan.status[{#SENSOR_NAME}]'
              trends: '0'
              description: 'The status of the job. Possible values: OK, Warning, Critical.'
              valuemap:
                name: 'Redfish status health'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.health
                - type: JAVASCRIPT
                  parameters:
                    - |
                      const idx = {
                      	'OK': 1,
                      	'Warning': 2,
                      	'Critical': 3,
                      };
                      
                      return typeof idx[value] === 'undefined' ? 0 : idx[value];
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: 'dell.server.sensor.fan.get[{#SENSOR_NAME}]'
              tags:
                - tag: component
                  value: fan
              trigger_prototypes:
                - uuid: 1891291345094afba1011dae19127f56
                  expression: 'last(/DELL PowerEdge R720 by HTTP/dell.server.sensor.fan.status[{#SENSOR_NAME}],)=3'
                  name: 'Dell R720: Fan [{#SENSOR_NAME}]: Critical state'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'Please check the device for faults.'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: 0a1e65618388460f826d2da039f51221
                  expression: 'last(/DELL PowerEdge R720 by HTTP/dell.server.sensor.fan.status[{#SENSOR_NAME}],)=2'
                  name: 'Dell R720: Fan [{#SENSOR_NAME}]: Warning state'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'Please check the device for warnings.'
                  dependencies:
                    - name: 'Dell R720: Fan [{#SENSOR_NAME}]: Critical state'
                      expression: 'last(/DELL PowerEdge R720 by HTTP/dell.server.sensor.fan.status[{#SENSOR_NAME}],)=3'
                  tags:
                    - tag: scope
                      value: availability
          graph_prototypes:
            - uuid: 397182a555474330931e10f0248e9513
              name: 'Dell R720: Fan [{#SENSOR_NAME}]: Speed'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'DELL PowerEdge R720 by HTTP'
                    key: 'dell.server.sensor.fan.speed[{#SENSOR_NAME}]'
          master_item:
            key: dell.server.sensors.get
          lld_macro_paths:
            - lld_macro: '{#ID}'
              path: $.id
            - lld_macro: '{#SENSOR_NAME}'
              path: $.name
            - lld_macro: '{#TYPE}'
              path: $.type
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.fan
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 6h
        - uuid: 99bee5141a23472095010aea70b945aa
          name: 'Network interface discovery'
          type: DEPENDENT
          key: dell.server.net.if.discovery
          description: 'Discovery of network interfaces.'
          item_prototypes:
            - uuid: 83f2022ae915408e8b8e6318e6f7b57b
              name: 'Interface [{#IFNAME}]: Get interface'
              type: SCRIPT
              key: 'dell.server.net.if.get[{#IFNAME}]'
              history: '0'
              value_type: TEXT
              params: |
                function validateZabbixParams(requiredParams, allParams) {
                	requiredParams.forEach(function (field) {
                		if (typeof allParams !== 'object' || typeof allParams[field] === 'undefined' || allParams[field] === '') {
                			throw 'Required param is not set: ' + field + '.';
                		}
                	});
                }
                
                function Dell(service, action, params) {
                	this.zabbixLogPrefix = '[ DELL ] [ ' + service + ' ] [ ' + action + ' ]';
                	this.request = new HttpRequest();
                
                	this.executeRequest = function (apiPath) {
                		this.request.addHeader('Authorization: Basic ' + btoa(params['user'] + ':' + params['password']));
                
                		if (params['http_proxy']) {
                			this.request.setProxy(params['http_proxy']);
                			Zabbix.log(4, this.zabbixLogPrefix + ' Using http proxy: ' + params['http_proxy']);
                		}
                
                		const response = this.request.get(params['url'] + apiPath);
                
                		this.request.clearHeader();
                
                		if (this.request.getStatus() === parseInt(params['http_status_code'])) {
                			return response;
                		} else {
                			Zabbix.log(3, this.zabbixLogPrefix + ' Unexpected HTTP response code: ' + this.request.getStatus());
                			throw 'Unexpected HTTP response code: ' + this.request.getStatus();
                		}
                	};
                
                	this.extractData = function (data, keys, skipParse) {
                		if (!skipParse) {
                			try {
                				data = JSON.parse(data);
                			} catch (error) {
                				Zabbix.log(3, this.zabbixLogPrefix + ' Could not parse the received JSON object: ' + data);
                				throw 'Could not parse received JSON object. See logs for more information.';
                			}	
                		}
                
                		if (Array.isArray(keys)) {
                			var returnBuffer = {};
                
                			for (keyIdx = 0, keysLength = keys.length; keyIdx < keysLength; keyIdx++) {
                				if (keys[keyIdx]['path'] === '@odata.id') {
                					returnBuffer[keys[keyIdx]['name']] = data[keys[keyIdx]['path']];
                				} else {
                					returnBuffer[keys[keyIdx]['name']] = this.parseJSON(data, keys[keyIdx]['path'].split('.'));
                				}
                			}
                
                			return returnBuffer;
                		} else if (typeof keys === 'object') {
                			return { [keys['name']]: this.parseJSON(data, keys['path'].split('.')) };
                		} else if (typeof keys === 'string') {
                			return this.parseJSON(data, keys.split('.'));
                		} else {
                			throw 'Unexpected key type';
                		}
                	};
                
                	this.parseJSON = function (data, jsonPath) {
                		for (var i = 0, args = jsonPath.length; i < args; i++) {
                			data = data[jsonPath[i]];
                		}
                
                		return data;
                	}
                }
                
                
                const params = JSON.parse(value);
                
                validateZabbixParams(['url', 'path', 'user', 'password', 'http_status_code'], params);
                var dell = new Dell('Network Interface', 'Get metrics', params);
                
                const keys = [
                	{
                		'name': 'linkStatus',
                		'path': 'LinkStatus'
                	},
                	{
                		'name': 'health',
                		'path': 'Status.Health'
                	},
                	{
                		'name': 'state',
                		'path': 'Status.State'
                	},
                	{
                		'name': 'linkSpeed',
                		'path': 'CurrentLinkSpeedMbps'
                	}
                ];
                
                return JSON.stringify(dell.extractData(dell.executeRequest(params.path), keys));
              description: 'Returns the metrics of a network interface.'
              timeout: '{$DELL.HTTP.REQUEST.TIMEOUT}'
              parameters:
                - name: http_proxy
                  value: '{$DELL.HTTP.PROXY}'
                - name: http_status_code
                  value: '{$DELL.HTTP.RETURN.CODE.OK}'
                - name: password
                  value: '{$DELL.HTTP.API.PASSWORD}'
                - name: path
                  value: '{#ODATA}'
                - name: url
                  value: '{$DELL.HTTP.API.URL}'
                - name: user
                  value: '{$DELL.HTTP.API.USER}'
              tags:
                - tag: component
                  value: network
                - tag: component
                  value: raw
            - uuid: 66a7049fe2ae49beb7a04b2d4686f59a
              name: 'Interface [{#IFNAME}]: Status'
              type: DEPENDENT
              key: 'dell.server.net.if.health[{#IFNAME}]'
              description: 'The status of the job. Possible values: OK, Warning, Critical.'
              valuemap:
                name: 'Redfish status health'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.health
                - type: JAVASCRIPT
                  parameters:
                    - |
                      const idx = {
                      	'OK': 1,
                      	'Warning': 2,
                      	'Critical': 3,
                      };
                      
                      return typeof idx[value] === 'undefined' ? 0 : idx[value];
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: 'dell.server.net.if.get[{#IFNAME}]'
              tags:
                - tag: component
                  value: network
              trigger_prototypes:
                - uuid: 387d93fe58134f3c9b7729580cfe5f50
                  expression: 'last(/DELL PowerEdge R720 by HTTP/dell.server.net.if.health[{#IFNAME}],)=3'
                  name: 'Dell R720: Interface [{#IFNAME}]: Critical state'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'Please check the device for faults.'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: 61517c7e0c7c4dff9965aa55dcd3763e
                  expression: 'last(/DELL PowerEdge R720 by HTTP/dell.server.net.if.health[{#IFNAME}],)=2'
                  name: 'Dell R720: Interface [{#IFNAME}]: Warning state'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'Please check the device for warnings.'
                  dependencies:
                    - name: 'Dell R720: Interface [{#IFNAME}]: Critical state'
                      expression: 'last(/DELL PowerEdge R720 by HTTP/dell.server.net.if.health[{#IFNAME}],)=3'
                  tags:
                    - tag: scope
                      value: availability
            - uuid: 1855ac9b35bc4746a688a48dce7a7eb7
              name: 'Interface [{#IFNAME}]: Speed'
              type: DEPENDENT
              key: 'dell.server.net.if.speed[{#IFNAME}]'
              units: bps
              description: 'The network port current link speed.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.linkSpeed
                - type: MULTIPLIER
                  parameters:
                    - '1000000'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: 'dell.server.net.if.get[{#IFNAME}]'
              tags:
                - tag: component
                  value: network
            - uuid: 925b558af3c64f3b99b4174d30a715b6
              name: 'Interface [{#IFNAME}]: State'
              type: DEPENDENT
              key: 'dell.server.net.if.state[{#IFNAME}]'
              description: 'The known state of the Resource, for example, Enabled. Possible values: Enabled, Disabled, StandbyOffline, StandbySpare, InTest, Starting, Absent, UnavailableOffline, Deferring, Quiesced, Updating, Qualified.'
              valuemap:
                name: 'Redfish status state'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.state
                - type: JAVASCRIPT
                  parameters:
                    - |
                      const idx = {
                      	'Enabled': 1,
                      	'Disabled': 2,
                      	'Absent': 3,
                      	'Deferring': 4,
                      	'InTest': 5,
                      	'Quiesced': 6,
                      	'StandbyOffline': 7,
                      	'StandbySpare': 8,
                      	'Starting': 9,
                      	'UnavailableOffline': 10,
                      	'Updating': 11
                      };
                      
                      return typeof idx[value] === 'undefined' ? 0 : idx[value];
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: 'dell.server.net.if.get[{#IFNAME}]'
              tags:
                - tag: component
                  value: network
            - uuid: 697029ebd06f41e8a8e3cd5add4b5d9a
              name: 'Interface [{#IFNAME}]: Link status'
              type: DEPENDENT
              key: 'dell.server.net.if.status[{#IFNAME}]'
              description: 'The status of the link between this port and its link partner. Possible values: Down, Up, null.'
              valuemap:
                name: 'Network interface status'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.linkStatus
                - type: JAVASCRIPT
                  parameters:
                    - |
                      const idx = {
                      	'null': 1,
                      	'Down': 2,
                      	'Up': 3,
                      };
                      
                      return typeof idx[value] === 'undefined' ? 0 : idx[value];
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: 'dell.server.net.if.get[{#IFNAME}]'
              tags:
                - tag: component
                  value: network
              trigger_prototypes:
                - uuid: 6412618ea54a4bcaa7c781982b71547d
                  expression: '{$DELL.HTTP.IFCONTROL:"{#IFNAME}"}=1 and (last(/DELL PowerEdge R720 by HTTP/dell.server.net.if.status[{#IFNAME}],)=2 and last(/DELL PowerEdge R720 by HTTP/dell.server.net.if.status[{#IFNAME}],#1)<>last(/DELL PowerEdge R720 by HTTP/dell.server.net.if.status[{#IFNAME}],#2))'
                  recovery_mode: RECOVERY_EXPRESSION
                  recovery_expression: 'last(/DELL PowerEdge R720 by HTTP/dell.server.net.if.status[{#IFNAME}],)=1 or {$DELL.HTTP.IFCONTROL:"{#IFNAME}"}=0'
                  name: 'Dell R720: Interface [{#IFNAME}]: Link down'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: |
                    This trigger expression works as follows:
                    1. It can be triggered if the operations status is Down (2).
                    2. `{$DELL.HTTP.IFCONTROL:"{#IFNAME}"}=1` - a user can redefine the context macro to "0", marking this interface as not important. No new trigger will be fired if this interface is Down (2).
                    3. `{TEMPLATE_NAME:METRIC.diff()}=1` - the trigger fires only if the operational status was up to (1) sometime before (so, does not fire for the "eternal off" interfaces.)
                    
                    WARNING: if closed manually - it will not fire again on the next poll because of `.diff`.
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: f70149eb9e82492a93e49ee8f8cdd569
                  expression: '{$DELL.HTTP.IFCONTROL:"{#IFNAME}"}=1 and (last(/DELL PowerEdge R720 by HTTP/dell.server.net.if.status[{#IFNAME}],)<2 and last(/DELL PowerEdge R720 by HTTP/dell.server.net.if.status[{#IFNAME}],#1)<>last(/DELL PowerEdge R720 by HTTP/dell.server.net.if.status[{#IFNAME}],#2))'
                  recovery_mode: RECOVERY_EXPRESSION
                  recovery_expression: 'last(/DELL PowerEdge R720 by HTTP/dell.server.net.if.status[{#IFNAME}],)>=2 or {$DELL.HTTP.IFCONTROL:"{#IFNAME}"}=0'
                  name: 'Dell R720: Interface [{#IFNAME}]: Link status issue'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: |
                    This trigger expression works as follows:
                    1. It can be triggered if the operations status is Null (1) or Unknown (0).
                    2. `{$DELL.HTTP.IFCONTROL:"{#IFNAME}"}=1` - a user can redefine the context macro to "0", marking this interface as not important. No new trigger will be fired if this interface is Null (1) or Unknown (0).
                    3. `{TEMPLATE_NAME:METRIC.diff()}=1` - the trigger fires only if the operational status was up to (1) sometime before (so, does not fire for the "eternal off" interfaces.)
                    
                    WARNING: if closed manually - it will not fire again on the next poll because of `.diff`.
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: availability
          graph_prototypes:
            - uuid: 2d3252a28935443a933639129990e047
              name: 'Dell R720: Interface [{#IFNAME}]: Speed'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'DELL PowerEdge R720 by HTTP'
                    key: 'dell.server.net.if.speed[{#IFNAME}]'
          master_item:
            key: dell.server.net.iface.get
          lld_macro_paths:
            - lld_macro: '{#IFNAME}'
              path: $.id
            - lld_macro: '{#ODATA}'
              path: $.path
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 6h
        - uuid: 065f3e55bf9d4f219b9fbfde0f5b452f
          name: 'Physical disk discovery'
          type: DEPENDENT
          key: dell.server.physicaldisk.discovery
          description: 'Discovery of physical disks.'
          item_prototypes:
            - uuid: 8e8a8788befb4d779e2a99165b05d529
              name: 'Physical disk [{#DISK_NAME}]: Get disk'
              type: SCRIPT
              key: 'dell.server.hw.physicaldisk.get[{#DISK_NAME}]'
              history: '0'
              value_type: TEXT
              params: |
                function validateZabbixParams(requiredParams, allParams) {
                	requiredParams.forEach(function (field) {
                		if (typeof allParams !== 'object' || typeof allParams[field] === 'undefined' || allParams[field] === '') {
                			throw 'Required param is not set: ' + field + '.';
                		}
                	});
                }
                
                function Dell(service, action, params) {
                	this.zabbixLogPrefix = '[ DELL ] [ ' + service + ' ] [ ' + action + ' ]';
                	this.request = new HttpRequest();
                
                	this.executeRequest = function (apiPath) {
                		this.request.addHeader('Authorization: Basic ' + btoa(params['user'] + ':' + params['password']));
                
                		if (params['http_proxy']) {
                			this.request.setProxy(params['http_proxy']);
                			Zabbix.log(4, this.zabbixLogPrefix + ' Using http proxy: ' + params['http_proxy']);
                		}
                
                		const response = this.request.get(params['url'] + apiPath);
                
                		this.request.clearHeader();
                
                		if (this.request.getStatus() === parseInt(params['http_status_code'])) {
                			return response;
                		} else {
                			Zabbix.log(3, this.zabbixLogPrefix + ' Unexpected HTTP response code: ' + this.request.getStatus());
                			throw 'Unexpected HTTP response code: ' + this.request.getStatus();
                		}
                	};
                
                	this.extractData = function (data, keys, skipParse) {
                		if (!skipParse) {
                			try {
                				data = JSON.parse(data);
                			} catch (error) {
                				Zabbix.log(3, this.zabbixLogPrefix + ' Could not parse the received JSON object: ' + data);
                				throw 'Could not parse received JSON object. See logs for more information.';
                			}	
                		}
                
                		if (Array.isArray(keys)) {
                			var returnBuffer = {};
                
                			for (keyIdx = 0, keysLength = keys.length; keyIdx < keysLength; keyIdx++) {
                				if (keys[keyIdx]['path'] === '@odata.id') {
                					returnBuffer[keys[keyIdx]['name']] = data[keys[keyIdx]['path']];
                				} else {
                					returnBuffer[keys[keyIdx]['name']] = this.parseJSON(data, keys[keyIdx]['path'].split('.'));
                				}
                			}
                
                			return returnBuffer;
                		} else if (typeof keys === 'object') {
                			return { [keys['name']]: this.parseJSON(data, keys['path'].split('.')) };
                		} else if (typeof keys === 'string') {
                			return this.parseJSON(data, keys.split('.'));
                		} else {
                			throw 'Unexpected key type';
                		}
                	};
                
                	this.parseJSON = function (data, jsonPath) {
                		for (var i = 0, args = jsonPath.length; i < args; i++) {
                			data = data[jsonPath[i]];
                		}
                
                		return data;
                	}
                }
                
                
                const params = JSON.parse(value);
                
                validateZabbixParams(['url', 'path', 'user', 'password', 'http_status_code'], params);
                var dell = new Dell('Disk', 'Get physical disk metrics', params);
                
                const keys = [
                	{
                		'name': 'health',
                		'path': 'Status.Health'
                	},
                	{
                		'name': 'sn',
                		'path': 'SerialNumber'
                	},
                	{
                		'name': 'model',
                		'path': 'Model'
                	},
                	{
                		'name': 'mediaType',
                		'path': 'MediaType'
                	},
                	{
                		'name': 'capacity',
                		'path': 'CapacityBytes'
                	}
                ];
                
                return JSON.stringify(dell.extractData(dell.executeRequest(params.path), keys));
              description: 'Returns the metrics of a physical disk.'
              timeout: '{$DELL.HTTP.REQUEST.TIMEOUT}'
              parameters:
                - name: http_proxy
                  value: '{$DELL.HTTP.PROXY}'
                - name: http_status_code
                  value: '{$DELL.HTTP.RETURN.CODE.OK}'
                - name: password
                  value: '{$DELL.HTTP.API.PASSWORD}'
                - name: path
                  value: '{#ODATA}'
                - name: url
                  value: '{$DELL.HTTP.API.URL}'
                - name: user
                  value: '{$DELL.HTTP.API.USER}'
              tags:
                - tag: component
                  value: physicaldisk
                - tag: component
                  value: raw
                - tag: component
                  value: storage
            - uuid: e35609ff46764638835c7e93e30dfd0b
              name: 'Physical disk [{#DISK_NAME}]: Media type'
              type: DEPENDENT
              key: 'dell.server.hw.physicaldisk.media_type[{#DISK_NAME}]'
              value_type: CHAR
              description: 'The type of media contained in this drive. Possible values: HDD, SSD, SMR, null.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.mediaType
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: 'dell.server.hw.physicaldisk.get[{#DISK_NAME}]'
              tags:
                - tag: component
                  value: physicaldisk
                - tag: component
                  value: storage
            - uuid: 4c7186fd2f954d9a877e2d0b6c1e64dc
              name: 'Physical disk [{#DISK_NAME}]: Model name'
              type: DEPENDENT
              key: 'dell.server.hw.physicaldisk.model[{#DISK_NAME}]'
              value_type: CHAR
              description: 'The model number of the drive.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.model
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: 'dell.server.hw.physicaldisk.get[{#DISK_NAME}]'
              tags:
                - tag: component
                  value: physicaldisk
                - tag: component
                  value: storage
            - uuid: 2b7546e11f0a48a6b2ac9be0ca6aa298
              name: 'Physical disk [{#DISK_NAME}]: Serial number'
              type: DEPENDENT
              key: 'dell.server.hw.physicaldisk.serialnumber[{#DISK_NAME}]'
              value_type: CHAR
              description: 'The serial number of this drive.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.sn
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: 'dell.server.hw.physicaldisk.get[{#DISK_NAME}]'
              tags:
                - tag: component
                  value: physicaldisk
                - tag: component
                  value: storage
              trigger_prototypes:
                - uuid: 8a2bdb0e21ae423cbbe771dec636f0e9
                  expression: 'last(/DELL PowerEdge R720 by HTTP/dell.server.hw.physicaldisk.serialnumber[{#DISK_NAME}],#1)<>last(/DELL PowerEdge R720 by HTTP/dell.server.hw.physicaldisk.serialnumber[{#DISK_NAME}],#2) and length(last(/DELL PowerEdge R720 by HTTP/dell.server.hw.physicaldisk.serialnumber[{#DISK_NAME}]))>0'
                  name: 'Dell R720: Physical disk [{#DISK_NAME}] has been replaced'
                  event_name: 'Dell R720: [{#DISK_NAME}] has been replaced (new serial number received)'
                  priority: INFO
                  description: '[{#DISK_NAME}] serial number has changed. Acknowledge to close the problem manually.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: ed0e86b646bc461bba5e47aa4e5fe56a
              name: 'Physical disk [{#DISK_NAME}]: Size'
              type: DEPENDENT
              key: 'dell.server.hw.physicaldisk.size[{#DISK_NAME}]'
              trends: '0'
              units: B
              description: 'The size, in bytes, of this drive.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.capacity
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: 'dell.server.hw.physicaldisk.get[{#DISK_NAME}]'
              tags:
                - tag: component
                  value: physicaldisk
                - tag: component
                  value: storage
            - uuid: a24d4f7282be47a8a0beca205638bac8
              name: 'Physical disk [{#DISK_NAME}]: Status'
              type: DEPENDENT
              key: 'dell.server.hw.physicaldisk.status[{#DISK_NAME}]'
              trends: '0'
              description: 'The status of the job. Possible values: OK, Warning, Critical.'
              valuemap:
                name: 'Redfish status health'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.health
                - type: JAVASCRIPT
                  parameters:
                    - |
                      const idx = {
                      	'OK': 1,
                      	'Warning': 2,
                      	'Critical': 3,
                      };
                      
                      return typeof idx[value] === 'undefined' ? 0 : idx[value];
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: 'dell.server.hw.physicaldisk.get[{#DISK_NAME}]'
              tags:
                - tag: component
                  value: physicaldisk
                - tag: component
                  value: storage
              trigger_prototypes:
                - uuid: 6388b5ad43cf459e9c7a39ea2f942237
                  expression: 'last(/DELL PowerEdge R720 by HTTP/dell.server.hw.physicaldisk.status[{#DISK_NAME}],)=3'
                  name: 'Dell R720: Physical disk [{#DISK_NAME}]: Critical state'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'Please check the device for faults.'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: 22533b6c80924f89a73f7ac538e9cad4
                  expression: 'last(/DELL PowerEdge R720 by HTTP/dell.server.hw.physicaldisk.status[{#DISK_NAME}],)=2'
                  name: 'Dell R720: Physical disk [{#DISK_NAME}]: Warning state'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'Please check the device for warnings.'
                  dependencies:
                    - name: 'Dell R720: Physical disk [{#DISK_NAME}]: Critical state'
                      expression: 'last(/DELL PowerEdge R720 by HTTP/dell.server.hw.physicaldisk.status[{#DISK_NAME}],)=3'
                  tags:
                    - tag: scope
                      value: availability
          graph_prototypes:
            - uuid: 873074e10cb64926b18e44ea530c3985
              name: 'Dell R720: Physical disk [{#DISK_NAME}]: Size'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'DELL PowerEdge R720 by HTTP'
                    key: 'dell.server.hw.physicaldisk.size[{#DISK_NAME}]'
          master_item:
            key: dell.server.disks.get
          lld_macro_paths:
            - lld_macro: '{#DISK_NAME}'
              path: $.name
            - lld_macro: '{#ODATA}'
              path: $.path
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.physicalDisks
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 6h
        - uuid: 8a78b1d5be7b492f878f0e6d56a32cc0
          name: 'PSU discovery'
          type: DEPENDENT
          key: dell.server.psu.discovery
          description: 'Discovery of PSU sensors.'
          item_prototypes:
            - uuid: d73218b82be7405d8087759ac84015ca
              name: 'Power supply [{#SENSOR_NAME}]: Current sensor status'
              type: DEPENDENT
              key: 'dell.server.sensor.psu.current.status[{#SENSOR_NAME}]'
              trends: '0'
              description: 'The status of the job. Possible values: OK, Warning, Critical.'
              valuemap:
                name: 'Redfish status health'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.current.health
                - type: JAVASCRIPT
                  parameters:
                    - |
                      const idx = {
                      	'OK': 1,
                      	'Warning': 2,
                      	'Critical': 3,
                      };
                      
                      return typeof idx[value] === 'undefined' ? 0 : idx[value];
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: 'dell.server.sensor.psu.get[{#SENSOR_NAME}]'
              tags:
                - tag: component
                  value: psu
              trigger_prototypes:
                - uuid: 99518a99a4134a87bde45f3826b1e6de
                  expression: 'last(/DELL PowerEdge R720 by HTTP/dell.server.sensor.psu.current.status[{#SENSOR_NAME}],)=3'
                  name: 'Dell R720: Power supply [{#SENSOR_NAME}]: Current sensor: Critical state'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'Please check the device for faults.'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: fe67ff02dcbc416db42a750bce15f99c
                  expression: 'last(/DELL PowerEdge R720 by HTTP/dell.server.sensor.psu.current.status[{#SENSOR_NAME}],)=2'
                  name: 'Dell R720: Power supply [{#SENSOR_NAME}]: Current sensor: Warning state'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'Please check the device for warnings.'
                  dependencies:
                    - name: 'Dell R720: Power supply [{#SENSOR_NAME}]: Current sensor: Critical state'
                      expression: 'last(/DELL PowerEdge R720 by HTTP/dell.server.sensor.psu.current.status[{#SENSOR_NAME}],)=3'
                  tags:
                    - tag: scope
                      value: availability
            - uuid: fb0b401437334d25a0bdb8022d91bf7b
              name: 'Power supply [{#SENSOR_NAME}]: Current'
              type: DEPENDENT
              key: 'dell.server.sensor.psu.current[{#SENSOR_NAME}]'
              value_type: FLOAT
              units: A
              description: 'Sensor value.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.current.reading
              master_item:
                key: 'dell.server.sensor.psu.get[{#SENSOR_NAME}]'
              tags:
                - tag: component
                  value: current
                - tag: component
                  value: psu
            - uuid: 6d77620e9fd444598f8a0dce9ccf0b1d
              name: 'Power supply [{#SENSOR_NAME}]: Get sensor'
              type: DEPENDENT
              key: 'dell.server.sensor.psu.get[{#SENSOR_NAME}]'
              history: '0'
              value_type: TEXT
              description: 'Returns the metrics of a sensor.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.psu.[?(@.name == ''{#SENSOR_NAME}'')].first()'
              master_item:
                key: dell.server.sensors.get
              tags:
                - tag: component
                  value: psu
                - tag: component
                  value: raw
            - uuid: 1336f4fda6a34fc990ad21519fdcce6e
              name: 'Power supply [{#SENSOR_NAME}]: Voltage sensor status'
              type: DEPENDENT
              key: 'dell.server.sensor.psu.voltage.status[{#SENSOR_NAME}]'
              trends: '0'
              description: 'The status of the job. Possible values: OK, Warning, Critical.'
              valuemap:
                name: 'Redfish status health'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.voltage.health
                - type: JAVASCRIPT
                  parameters:
                    - |
                      const idx = {
                      	'OK': 1,
                      	'Warning': 2,
                      	'Critical': 3,
                      };
                      
                      return typeof idx[value] === 'undefined' ? 0 : idx[value];
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: 'dell.server.sensor.psu.get[{#SENSOR_NAME}]'
              tags:
                - tag: component
                  value: psu
              trigger_prototypes:
                - uuid: 78d20bb4cecf46ffbcf22fe41bc7a746
                  expression: 'last(/DELL PowerEdge R720 by HTTP/dell.server.sensor.psu.voltage.status[{#SENSOR_NAME}],)=3'
                  name: 'Dell R720: Power supply [{#SENSOR_NAME}]: Voltage sensor: Critical state'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'Please check the device for faults.'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: 24c181c37a414fa8be6bdf56f741507f
                  expression: 'last(/DELL PowerEdge R720 by HTTP/dell.server.sensor.psu.voltage.status[{#SENSOR_NAME}],)=2'
                  name: 'Dell R720: Power supply [{#SENSOR_NAME}]: Voltage sensor: Warning state'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'Please check the device for warnings.'
                  dependencies:
                    - name: 'Dell R720: Power supply [{#SENSOR_NAME}]: Voltage sensor: Critical state'
                      expression: 'last(/DELL PowerEdge R720 by HTTP/dell.server.sensor.psu.voltage.status[{#SENSOR_NAME}],)=3'
                  tags:
                    - tag: scope
                      value: availability
            - uuid: 174081b089e6460f9c18046d331a947b
              name: 'Power supply [{#SENSOR_NAME}]: Voltage'
              type: DEPENDENT
              key: 'dell.server.sensor.psu.voltage[{#SENSOR_NAME}]'
              value_type: FLOAT
              units: V
              description: 'Sensor value.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.voltage.reading
              master_item:
                key: 'dell.server.sensor.psu.get[{#SENSOR_NAME}]'
              tags:
                - tag: component
                  value: psu
                - tag: component
                  value: voltage
          graph_prototypes:
            - uuid: 5dffa4cc9acb43da8fce1ccbac9a3c5a
              name: 'Dell R720: Power supply [{#SENSOR_NAME}]: Current'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'DELL PowerEdge R720 by HTTP'
                    key: 'dell.server.sensor.psu.current[{#SENSOR_NAME}]'
            - uuid: 26df3cf020a64d1082ed36aba8797c58
              name: 'Dell R720: Power supply [{#SENSOR_NAME}]: Voltage'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'DELL PowerEdge R720 by HTTP'
                    key: 'dell.server.sensor.psu.voltage[{#SENSOR_NAME}]'
          master_item:
            key: dell.server.sensors.get
          lld_macro_paths:
            - lld_macro: '{#SENSOR_NAME}'
              path: $.name
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.psu
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 6h
        - uuid: 003aa4858047410c8b99065f610ee0a5
          name: 'Temperature discovery'
          type: DEPENDENT
          key: dell.server.temp.discovery
          description: 'Discovery of temperature sensors.'
          item_prototypes:
            - uuid: f0fa12d1ef054b9a90edd3f4e9be6971
              name: 'Probe [{#SENSOR_NAME}]: Get sensor'
              type: DEPENDENT
              key: 'dell.server.sensor.temp.get[{#SENSOR_NAME}]'
              history: '0'
              value_type: TEXT
              description: 'Returns the metrics of a sensor.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.temperature.[?(@.id == ''{#ID}'')].first()'
              master_item:
                key: dell.server.sensors.get
              tags:
                - tag: component
                  value: raw
                - tag: component
                  value: temperature
            - uuid: 314cca1840c94c3daae8eb854656d47b
              name: 'Probe [{#SENSOR_NAME}]: Status'
              type: DEPENDENT
              key: 'dell.server.sensor.temp.status[{#SENSOR_NAME}]'
              trends: '0'
              description: 'The status of the job. Possible values: OK, Warning, Critical.'
              valuemap:
                name: 'Redfish status health'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.health
                - type: JAVASCRIPT
                  parameters:
                    - |
                      const idx = {
                      	'OK': 1,
                      	'Warning': 2,
                      	'Critical': 3,
                      };
                      
                      return typeof idx[value] === 'undefined' ? 0 : idx[value];
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: 'dell.server.sensor.temp.get[{#SENSOR_NAME}]'
              tags:
                - tag: component
                  value: temperature
              trigger_prototypes:
                - uuid: c5d0cc64c15d46c3bf3fcf1432b30901
                  expression: 'last(/DELL PowerEdge R720 by HTTP/dell.server.sensor.temp.status[{#SENSOR_NAME}],)=3'
                  name: 'Dell R720: Probe [{#SENSOR_NAME}]: Critical state'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'Please check the device for faults.'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: 0caf6c91495048d094018bbaa4dacfbf
                  expression: 'last(/DELL PowerEdge R720 by HTTP/dell.server.sensor.temp.status[{#SENSOR_NAME}],)=2'
                  name: 'Dell R720: Probe [{#SENSOR_NAME}]: Warning state'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'Please check the device for warnings.'
                  dependencies:
                    - name: 'Dell R720: Probe [{#SENSOR_NAME}]: Critical state'
                      expression: 'last(/DELL PowerEdge R720 by HTTP/dell.server.sensor.temp.status[{#SENSOR_NAME}],)=3'
                  tags:
                    - tag: scope
                      value: availability
            - uuid: d6b02e86da6841dfb5059f954f1bf801
              name: 'Probe [{#SENSOR_NAME}]: Value'
              type: DEPENDENT
              key: 'dell.server.sensor.temp.value[{#SENSOR_NAME}]'
              value_type: FLOAT
              units: °C
              description: 'Sensor value.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.reading
              master_item:
                key: 'dell.server.sensor.temp.get[{#SENSOR_NAME}]'
              tags:
                - tag: component
                  value: temperature
          graph_prototypes:
            - uuid: 2a9b93d23f7e439bb74b0f0368b641be
              name: 'Dell R720: Probe [{#SENSOR_NAME}]: Value'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'DELL PowerEdge R720 by HTTP'
                    key: 'dell.server.sensor.temp.value[{#SENSOR_NAME}]'
          master_item:
            key: dell.server.sensors.get
          lld_macro_paths:
            - lld_macro: '{#ID}'
              path: $.id
            - lld_macro: '{#SENSOR_NAME}'
              path: $.name
            - lld_macro: '{#TYPE}'
              path: $.type
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.temperature
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 6h
        - uuid: 248c3e103a0c4e5fb6640a69d8f5237d
          name: 'Virtual disk discovery'
          type: DEPENDENT
          key: dell.server.virtualdisk.discovery
          description: 'Discovery of virtual disks.'
          item_prototypes:
            - uuid: 2d40df5f9ef14013a45f48bad2d5e133
              name: 'Virtual disk [{#DISK_NAME}]: Get disk'
              type: SCRIPT
              key: 'dell.server.hw.virtualdisk.get[{#DISK_NAME}]'
              history: '0'
              value_type: TEXT
              params: |
                function validateZabbixParams(requiredParams, allParams) {
                	requiredParams.forEach(function (field) {
                		if (typeof allParams !== 'object' || typeof allParams[field] === 'undefined' || allParams[field] === '') {
                			throw 'Required param is not set: ' + field + '.';
                		}
                	});
                }
                
                function Dell(service, action, params) {
                	this.zabbixLogPrefix = '[ DELL ] [ ' + service + ' ] [ ' + action + ' ]';
                	this.request = new HttpRequest();
                
                	this.executeRequest = function (apiPath) {
                		this.request.addHeader('Authorization: Basic ' + btoa(params['user'] + ':' + params['password']));
                
                		if (params['http_proxy']) {
                			this.request.setProxy(params['http_proxy']);
                			Zabbix.log(4, this.zabbixLogPrefix + ' Using http proxy: ' + params['http_proxy']);
                		}
                
                		const response = this.request.get(params['url'] + apiPath);
                
                		this.request.clearHeader();
                
                		if (this.request.getStatus() === parseInt(params['http_status_code'])) {
                			return response;
                		} else {
                			Zabbix.log(3, this.zabbixLogPrefix + ' Unexpected HTTP response code: ' + this.request.getStatus());
                			throw 'Unexpected HTTP response code: ' + this.request.getStatus();
                		}
                	};
                
                	this.extractData = function (data, keys, skipParse) {
                		if (!skipParse) {
                			try {
                				data = JSON.parse(data);
                			} catch (error) {
                				Zabbix.log(3, this.zabbixLogPrefix + ' Could not parse the received JSON object: ' + data);
                				throw 'Could not parse received JSON object. See logs for more information.';
                			}	
                		}
                
                		if (Array.isArray(keys)) {
                			var returnBuffer = {};
                
                			for (keyIdx = 0, keysLength = keys.length; keyIdx < keysLength; keyIdx++) {
                				if (keys[keyIdx]['path'] === '@odata.id') {
                					returnBuffer[keys[keyIdx]['name']] = data[keys[keyIdx]['path']];
                				} else {
                					returnBuffer[keys[keyIdx]['name']] = this.parseJSON(data, keys[keyIdx]['path'].split('.'));
                				}
                			}
                
                			return returnBuffer;
                		} else if (typeof keys === 'object') {
                			return { [keys['name']]: this.parseJSON(data, keys['path'].split('.')) };
                		} else if (typeof keys === 'string') {
                			return this.parseJSON(data, keys.split('.'));
                		} else {
                			throw 'Unexpected key type';
                		}
                	};
                
                	this.parseJSON = function (data, jsonPath) {
                		for (var i = 0, args = jsonPath.length; i < args; i++) {
                			data = data[jsonPath[i]];
                		}
                
                		return data;
                	}
                }
                
                
                const params = JSON.parse(value);
                
                validateZabbixParams(['url', 'path', 'user', 'password', 'http_status_code'], params);
                var dell = new Dell('Disk', 'Get virtual disk metrics', params);
                
                const keys = [
                	{
                		'name': 'health',
                		'path': 'Status.Health'
                	},
                	{
                		'name': 'capacity',
                		'path': 'CapacityBytes'
                	},
                	{
                		'name': 'status',
                		'path': 'Status.State'
                	},
                	{
                		'name': 'raidStatus',
                		'path': 'Oem.Dell.DellVirtualDisk.RaidStatus'
                	},
                	{
                		'name': 'readCachePolicy',
                		'path': 'Oem.Dell.DellVirtualDisk.ReadCachePolicy'
                	},
                	{
                		'name': 'writeCachePolicy',
                		'path': 'Oem.Dell.DellVirtualDisk.WriteCachePolicy'
                	}
                ];
                
                return JSON.stringify(dell.extractData(dell.executeRequest(params.path), keys));
              description: 'Returns the metrics of a virtual disk.'
              timeout: '{$DELL.HTTP.REQUEST.TIMEOUT}'
              parameters:
                - name: http_proxy
                  value: '{$DELL.HTTP.PROXY}'
                - name: http_status_code
                  value: '{$DELL.HTTP.RETURN.CODE.OK}'
                - name: password
                  value: '{$DELL.HTTP.API.PASSWORD}'
                - name: path
                  value: '{#ODATA}'
                - name: url
                  value: '{$DELL.HTTP.API.URL}'
                - name: user
                  value: '{$DELL.HTTP.API.USER}'
              tags:
                - tag: component
                  value: raw
                - tag: component
                  value: virtualdisk
            - uuid: c4901f765c8d4f6aafb64ec37cbfef89
              name: 'Virtual disk [{#DISK_NAME}]: RAID status'
              type: DEPENDENT
              key: 'dell.server.hw.virtualdisk.raid_status[{#DISK_NAME}]'
              description: 'This property represents the RAID specific status. Possible values: Blocked, Degraded, Failed, Foreign, Offline, Online, Ready, Unknown, null.'
              valuemap:
                name: 'Virtual disk RAID status'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.raidStatus
                - type: JAVASCRIPT
                  parameters:
                    - |
                      const idx = {
                      	'Blocked': 1,
                      	'Degraded': 2,
                      	'Failed': 3,
                      	'Foreign': 4,
                      	'Offline': 5,
                      	'Unknown': 6,
                      	'null': 7,
                      	'Ready': 8,
                      	'Online': 9,
                      };
                      
                      return typeof idx[value] === 'undefined' ? 0 : idx[value];
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: 'dell.server.hw.virtualdisk.get[{#DISK_NAME}]'
              tags:
                - tag: component
                  value: storage
                - tag: component
                  value: virtualdisk
              trigger_prototypes:
                - uuid: 3f3e013e2e814e748cd7c6233090b787
                  expression: 'last(/DELL PowerEdge R720 by HTTP/dell.server.hw.virtualdisk.raid_status[{#DISK_NAME}],)<8'
                  name: 'Dell R720: Virtual disk [{#DISK_NAME}]: RAID status not OK'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'Please check the disk for faults.'
                  tags:
                    - tag: scope
                      value: availability
            - uuid: efa75959d6674a8db743b14982609f3d
              name: 'Virtual disk [{#DISK_NAME}]: Read policy'
              type: DEPENDENT
              key: 'dell.server.hw.virtualdisk.read_policy[{#DISK_NAME}]'
              description: 'Indicates the read cache policy setting for the Volume. Possible values: ReadAhead, NoReadAhead, AdaptiveReadAhead.'
              valuemap:
                name: 'Virtual disk read policy'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.readCachePolicy
                - type: JAVASCRIPT
                  parameters:
                    - |
                      const idx = {
                      	'NoReadAhead': 1,
                      	'ReadAhead': 2,
                      	'AdaptiveReadAhead': 3,
                      };
                      
                      return typeof idx[value] === 'undefined' ? 0 : idx[value];
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: 'dell.server.hw.virtualdisk.get[{#DISK_NAME}]'
              tags:
                - tag: component
                  value: storage
                - tag: component
                  value: virtualdisk
            - uuid: 2321eaf7f4ac4066a6928e0884daaee0
              name: 'Virtual disk [{#DISK_NAME}]: Size'
              type: DEPENDENT
              key: 'dell.server.hw.virtualdisk.size[{#DISK_NAME}]'
              trends: '0'
              units: B
              description: 'The size in bytes of this Volume.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.capacity
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: 'dell.server.hw.virtualdisk.get[{#DISK_NAME}]'
              tags:
                - tag: component
                  value: storage
                - tag: component
                  value: virtualdisk
            - uuid: 39c4d9ba46564546b4a2ceb27bd7b771
              name: 'Virtual disk [{#DISK_NAME}]: Current state'
              type: DEPENDENT
              key: 'dell.server.hw.virtualdisk.state[{#DISK_NAME}]'
              description: 'The known state of the Resource, for example, Enabled. Possible values: Enabled, Disabled, StandbyOffline, StandbySpare, InTest, Starting, Absent, UnavailableOffline, Deferring, Quiesced, Updating, Qualified.'
              valuemap:
                name: 'Redfish status state'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.status
                - type: JAVASCRIPT
                  parameters:
                    - |
                      const idx = {
                      	'Enabled': 1,
                      	'Disabled': 2,
                      	'Absent': 3,
                      	'Deferring': 4,
                      	'InTest': 5,
                      	'Quiesced': 6,
                      	'StandbyOffline': 7,
                      	'StandbySpare': 8,
                      	'Starting': 9,
                      	'UnavailableOffline': 10,
                      	'Updating': 11
                      };
                      
                      return typeof idx[value] === 'undefined' ? 0 : idx[value];
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: 'dell.server.hw.virtualdisk.get[{#DISK_NAME}]'
              tags:
                - tag: component
                  value: storage
                - tag: component
                  value: virtualdisk
            - uuid: da546c12247f4d9aa87b49cbaeaab55b
              name: 'Virtual disk [{#DISK_NAME}]: Status'
              type: DEPENDENT
              key: 'dell.server.hw.virtualdisk.status[{#DISK_NAME}]'
              description: 'The status of the job. Possible values: OK, Warning, Critical.'
              valuemap:
                name: 'Redfish status health'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.health
                - type: JAVASCRIPT
                  parameters:
                    - |
                      const idx = {
                      	'OK': 1,
                      	'Warning': 2,
                      	'Critical': 3,
                      };
                      
                      return typeof idx[value] === 'undefined' ? 0 : idx[value];
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: 'dell.server.hw.virtualdisk.get[{#DISK_NAME}]'
              tags:
                - tag: component
                  value: storage
                - tag: component
                  value: virtualdisk
              trigger_prototypes:
                - uuid: 24f8c74df63d4a728cd2379b79ef204d
                  expression: 'last(/DELL PowerEdge R720 by HTTP/dell.server.hw.virtualdisk.status[{#DISK_NAME}],)=3'
                  name: 'Dell R720: Virtual disk [{#DISK_NAME}]: Critical state'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'Please check the device for faults.'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: ddde2d6ca20d4981a766719530e28911
                  expression: 'last(/DELL PowerEdge R720 by HTTP/dell.server.hw.virtualdisk.status[{#DISK_NAME}],)=2'
                  name: 'Dell R720: Virtual disk [{#DISK_NAME}]: Warning state'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'Please check the device for warnings.'
                  dependencies:
                    - name: 'Dell R720: Virtual disk [{#DISK_NAME}]: Critical state'
                      expression: 'last(/DELL PowerEdge R720 by HTTP/dell.server.hw.virtualdisk.status[{#DISK_NAME}],)=3'
                  tags:
                    - tag: scope
                      value: availability
            - uuid: c5f0f311bcb4497da5e909ad8efa0819
              name: 'Virtual disk [{#DISK_NAME}]: Write policy'
              type: DEPENDENT
              key: 'dell.server.hw.virtualdisk.write_policy[{#DISK_NAME}]'
              description: 'Indicates the write cache policy setting for the Volume. Possible values: WriteThrough, WriteBack, ProtectedWriteBack, UnprotectedWriteBack.'
              valuemap:
                name: 'Virtual disk write policy'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.writeCachePolicy
                - type: JAVASCRIPT
                  parameters:
                    - |
                      const idx = {
                      	'WriteThrough': 1,
                      	'WriteBack': 2,
                      	'ProtectedWriteBack': 3,
                      	'UnprotectedWriteBack': 4,
                      };
                      
                      return typeof idx[value] === 'undefined' ? 0 : idx[value];
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: 'dell.server.hw.virtualdisk.get[{#DISK_NAME}]'
              tags:
                - tag: component
                  value: storage
                - tag: component
                  value: virtualdisk
          graph_prototypes:
            - uuid: 99b58f87335341169cf01075c3e33d30
              name: 'Dell R720: Virtual disk [{#DISK_NAME}]: Size'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'DELL PowerEdge R720 by HTTP'
                    key: 'dell.server.hw.virtualdisk.size[{#DISK_NAME}]'
          master_item:
            key: dell.server.disks.get
          lld_macro_paths:
            - lld_macro: '{#DISK_NAME}'
              path: $.name
            - lld_macro: '{#ODATA}'
              path: $.path
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.virtualDisks
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 6h
      tags:
        - tag: class
          value: hardware
        - tag: subclass
          value: server
        - tag: target
          value: dell
        - tag: target
          value: dellpoweredge
      macros:
        - macro: '{$DELL.HTTP.API.PASSWORD}'
          type: SECRET_TEXT
          description: 'The Dell iDRAC user password.'
          config:
            type: TEXT
            priority: '3'
            label: 'iDRAC password'
            description: 'The Dell iDRAC user password.'
            required: 'YES'
        - macro: '{$DELL.HTTP.API.URL}'
          description: 'The Dell iDRAC Redfish API URL in the format `<scheme>://<host>:<port>`.'
          config:
            type: TEXT
            priority: '1'
            label: 'iDRAC API URL'
            description: 'The Dell iDRAC Redfish API URL in the format `<scheme>://<host>:<port>`.'
            required: 'YES'
        - macro: '{$DELL.HTTP.API.USER}'
          description: 'The Dell iDRAC username.'
          config:
            type: TEXT
            priority: '2'
            label: 'iDRAC username'
            description: 'The Dell iDRAC username.'
            required: 'YES'
        - macro: '{$DELL.HTTP.CPU.UTIL.HIGH}'
          value: '90'
          description: 'Sets the percentage threshold for creating a "high" severity event about CPU utilization.'
          config:
            type: TEXT
            priority: '8'
            section_name: Thresholds
            label: 'CPU usage high (%)'
            description: 'Sets the percentage threshold for creating a "high" severity event about CPU utilization. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$DELL.HTTP.CPU.UTIL.WARN}'
          value: '75'
          description: 'Sets the percentage threshold for creating a "warning" severity event about CPU utilization.'
          config:
            type: TEXT
            priority: '9'
            section_name: Thresholds
            label: 'CPU usage warning (%)'
            description: 'Sets the percentage threshold for creating a "warning" severity event about CPU utilization. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$DELL.HTTP.IFCONTROL}'
          value: '1'
          description: 'Link status trigger will be fired only for interfaces that have the context macro equal to "1".'
          config:
            type: TEXT
            priority: '7'
            section_name: Other
            label: 'Link status trigger enabled'
            description: 'Link status trigger will be fired only for interfaces that have the context macro equal to "1".'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$DELL.HTTP.IO.UTIL.HIGH}'
          value: '90'
          description: 'Sets the percentage threshold for creating a "high" severity event about IO utilization.'
          config:
            type: TEXT
            priority: '12'
            section_name: Thresholds
            label: 'IO usage high (%)'
            description: 'Sets the percentage threshold for creating a "high" severity event about IO utilization. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$DELL.HTTP.IO.UTIL.WARN}'
          value: '75'
          description: 'Sets the percentage threshold for creating a "warning" severity event about IO utilization.'
          config:
            type: TEXT
            priority: '13'
            section_name: Thresholds
            label: 'IO usage warning (%)'
            description: 'Sets the percentage threshold for creating a "warning" severity event about IO utilization. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$DELL.HTTP.MEM.UTIL.HIGH}'
          value: '90'
          description: 'Sets the percentage threshold for creating a "high" severity event about memory utilization.'
          config:
            type: TEXT
            priority: '10'
            section_name: Thresholds
            label: 'Memory usage high (%)'
            description: 'Sets the percentage threshold for creating a "high" severity event about memory utilization. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$DELL.HTTP.MEM.UTIL.WARN}'
          value: '75'
          description: 'Sets the percentage threshold for creating a "warning" severity event about memory utilization.'
          config:
            type: TEXT
            priority: '11'
            section_name: Thresholds
            label: 'Memory usage warning (%)'
            description: 'Sets the percentage threshold for creating a "warning" severity event about memory utilization. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$DELL.HTTP.PROXY}'
          description: 'Set an HTTP proxy for Redfish API requests if needed.'
          config:
            type: TEXT
            priority: '4'
            section_name: Other
            label: 'HTTP proxy'
            description: 'Set an HTTP proxy for Redfish API requests if needed.'
        - macro: '{$DELL.HTTP.REQUEST.TIMEOUT}'
          value: 10s
          description: 'Set the timeout for HTTP requests.'
          config:
            type: TEXT
            priority: '6'
            section_name: Other
            label: 'HTTP timeout'
            description: 'Set the timeout for HTTP requests.'
        - macro: '{$DELL.HTTP.RETURN.CODE.OK}'
          value: '200'
          description: 'Set the HTTP return code that represents an OK response from the API. The default is "200", but can vary, for example, if a proxy is used.'
          config:
            type: TEXT
            priority: '5'
            section_name: Other
            label: 'HTTP OK code'
            description: 'Set the HTTP return code that represents an OK response from the API. The default is "200", but can vary, for example, if a proxy is used.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$DELL.HTTP.SYS.UTIL.HIGH}'
          value: '90'
          description: 'Sets the percentage threshold for creating a "high" severity event about SYS utilization.'
          config:
            type: TEXT
            priority: '14'
            section_name: Thresholds
            label: 'SYS usage high (%)'
            description: 'Sets the percentage threshold for creating a "high" severity event about SYS utilization. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$DELL.HTTP.SYS.UTIL.WARN}'
          value: '75'
          description: 'Sets the percentage threshold for creating a "warning" severity event about SYS utilization.'
          config:
            type: TEXT
            priority: '15'
            section_name: Thresholds
            label: 'SYS usage warning (%)'
            description: 'Sets the percentage threshold for creating a "warning" severity event about SYS utilization. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
      dashboards:
        - uuid: e7a4f6ea5da2419f9e43bd379996de59
          name: Overview
          pages:
            - name: Overview
              display_period: '30'
              widgets:
                - type: gauge
                  name: 'CPU utilization'
                  width: '18'
                  height: '3'
                  hide_header: 'YES'
                  fields:
                    - type: STRING
                      name: bg_color
                      value: 6C00D9
                    - type: STRING
                      name: description
                      value: CPU
                    - type: STRING
                      name: desc_color
                      value: FFFFFF
                    - type: INTEGER
                      name: desc_v_pos
                      value: '0'
                    - type: STRING
                      name: empty_color
                      value: 5000A1
                    - type: ITEM
                      name: itemid.0
                      value:
                        host: 'DELL PowerEdge R720 by HTTP'
                        key: dell.server.util.cpu
                    - type: INTEGER
                      name: rf_rate
                      value: '30'
                    - type: INTEGER
                      name: show.0
                      value: '2'
                    - type: INTEGER
                      name: show.1
                      value: '1'
                    - type: INTEGER
                      name: show.2
                      value: '5'
                    - type: STRING
                      name: units
                      value: '%'
                    - type: INTEGER
                      name: units_bold
                      value: '1'
                    - type: STRING
                      name: units_color
                      value: FFFFFF
                    - type: STRING
                      name: value_arc_color
                      value: FFFFFF
                    - type: INTEGER
                      name: value_arc_size
                      value: '35'
                    - type: INTEGER
                      name: value_bold
                      value: '1'
                    - type: STRING
                      name: value_color
                      value: FFFFFF
                - type: gauge
                  name: 'Memory utilization'
                  'y': '3'
                  width: '18'
                  height: '3'
                  hide_header: 'YES'
                  fields:
                    - type: STRING
                      name: bg_color
                      value: 6C00D9
                    - type: STRING
                      name: description
                      value: MEM
                    - type: STRING
                      name: desc_color
                      value: FFFFFF
                    - type: INTEGER
                      name: desc_v_pos
                      value: '0'
                    - type: STRING
                      name: empty_color
                      value: 5000A1
                    - type: ITEM
                      name: itemid.0
                      value:
                        host: 'DELL PowerEdge R720 by HTTP'
                        key: dell.server.util.mem
                    - type: INTEGER
                      name: rf_rate
                      value: '30'
                    - type: INTEGER
                      name: show.0
                      value: '2'
                    - type: INTEGER
                      name: show.1
                      value: '1'
                    - type: INTEGER
                      name: show.2
                      value: '5'
                    - type: STRING
                      name: units
                      value: '%'
                    - type: INTEGER
                      name: units_bold
                      value: '1'
                    - type: STRING
                      name: units_color
                      value: FFFFFF
                    - type: STRING
                      name: value_arc_color
                      value: FFFFFF
                    - type: INTEGER
                      name: value_arc_size
                      value: '35'
                    - type: INTEGER
                      name: value_bold
                      value: '1'
                    - type: STRING
                      name: value_color
                      value: FFFFFF
                - type: gauge
                  name: 'I/O utilization'
                  'y': '6'
                  width: '18'
                  height: '3'
                  hide_header: 'YES'
                  fields:
                    - type: STRING
                      name: bg_color
                      value: 6C00D9
                    - type: STRING
                      name: description
                      value: I/O
                    - type: STRING
                      name: desc_color
                      value: FFFFFF
                    - type: INTEGER
                      name: desc_v_pos
                      value: '0'
                    - type: STRING
                      name: empty_color
                      value: 5000A1
                    - type: ITEM
                      name: itemid.0
                      value:
                        host: 'DELL PowerEdge R720 by HTTP'
                        key: dell.server.util.io
                    - type: INTEGER
                      name: rf_rate
                      value: '30'
                    - type: INTEGER
                      name: show.0
                      value: '2'
                    - type: INTEGER
                      name: show.1
                      value: '1'
                    - type: INTEGER
                      name: show.2
                      value: '5'
                    - type: STRING
                      name: units
                      value: '%'
                    - type: INTEGER
                      name: units_bold
                      value: '1'
                    - type: STRING
                      name: units_color
                      value: FFFFFF
                    - type: STRING
                      name: value_arc_color
                      value: FFFFFF
                    - type: INTEGER
                      name: value_arc_size
                      value: '35'
                    - type: INTEGER
                      name: value_bold
                      value: '1'
                    - type: STRING
                      name: value_color
                      value: FFFFFF
                - type: gauge
                  name: 'SYS utilization'
                  'y': '9'
                  width: '18'
                  height: '3'
                  hide_header: 'YES'
                  fields:
                    - type: STRING
                      name: bg_color
                      value: 6C00D9
                    - type: STRING
                      name: description
                      value: SYS
                    - type: STRING
                      name: desc_color
                      value: FFFFFF
                    - type: INTEGER
                      name: desc_v_pos
                      value: '0'
                    - type: STRING
                      name: empty_color
                      value: 5000A1
                    - type: ITEM
                      name: itemid.0
                      value:
                        host: 'DELL PowerEdge R720 by HTTP'
                        key: dell.server.util.sys
                    - type: INTEGER
                      name: rf_rate
                      value: '30'
                    - type: INTEGER
                      name: show.0
                      value: '2'
                    - type: INTEGER
                      name: show.1
                      value: '1'
                    - type: INTEGER
                      name: show.2
                      value: '5'
                    - type: STRING
                      name: units
                      value: '%'
                    - type: INTEGER
                      name: units_bold
                      value: '1'
                    - type: STRING
                      name: units_color
                      value: FFFFFF
                    - type: STRING
                      name: value_arc_color
                      value: FFFFFF
                    - type: INTEGER
                      name: value_arc_size
                      value: '35'
                    - type: INTEGER
                      name: value_bold
                      value: '1'
                    - type: STRING
                      name: value_color
                      value: FFFFFF
                - type: item
                  name: 'Redfish API'
                  x: '18'
                  width: '27'
                  height: '3'
                  hide_header: 'YES'
                  fields:
                    - type: STRING
                      name: bg_color
                      value: 2196F3
                    - type: STRING
                      name: description
                      value: 'Redfish API'
                    - type: STRING
                      name: desc_color
                      value: FFFFFF
                    - type: INTEGER
                      name: desc_v_pos
                      value: '0'
                    - type: ITEM
                      name: itemid.0
                      value:
                        host: 'DELL PowerEdge R720 by HTTP'
                        key: 'net.tcp.service[https]'
                    - type: INTEGER
                      name: show.0
                      value: '2'
                    - type: INTEGER
                      name: show.1
                      value: '1'
                    - type: STRING
                      name: value_color
                      value: FFFFFF
                    - type: INTEGER
                      name: value_size
                      value: '35'
                - type: item
                  name: 'HW model'
                  x: '18'
                  'y': '3'
                  width: '54'
                  height: '3'
                  hide_header: 'YES'
                  fields:
                    - type: STRING
                      name: bg_color
                      value: 2196F3
                    - type: STRING
                      name: description
                      value: 'HW model'
                    - type: STRING
                      name: desc_color
                      value: FFFFFF
                    - type: INTEGER
                      name: desc_v_pos
                      value: '0'
                    - type: ITEM
                      name: itemid.0
                      value:
                        host: 'DELL PowerEdge R720 by HTTP'
                        key: dell.server.hw.model
                    - type: INTEGER
                      name: show.0
                      value: '2'
                    - type: INTEGER
                      name: show.1
                      value: '1'
                    - type: STRING
                      name: value_color
                      value: FFFFFF
                    - type: INTEGER
                      name: value_size
                      value: '35'
                - type: item
                  name: 'Serial number'
                  x: '18'
                  'y': '6'
                  width: '54'
                  height: '3'
                  hide_header: 'YES'
                  fields:
                    - type: STRING
                      name: bg_color
                      value: 2196F3
                    - type: STRING
                      name: description
                      value: 'Serial number'
                    - type: STRING
                      name: desc_color
                      value: FFFFFF
                    - type: INTEGER
                      name: desc_v_pos
                      value: '0'
                    - type: ITEM
                      name: itemid.0
                      value:
                        host: 'DELL PowerEdge R720 by HTTP'
                        key: dell.server.hw.serialnumber
                    - type: INTEGER
                      name: show.0
                      value: '2'
                    - type: INTEGER
                      name: show.1
                      value: '1'
                    - type: STRING
                      name: value_color
                      value: FFFFFF
                    - type: INTEGER
                      name: value_size
                      value: '35'
                - type: item
                  name: Firmware
                  x: '18'
                  'y': '9'
                  width: '54'
                  height: '3'
                  hide_header: 'YES'
                  fields:
                    - type: STRING
                      name: bg_color
                      value: 2196F3
                    - type: STRING
                      name: description
                      value: Firmware
                    - type: STRING
                      name: desc_color
                      value: FFFFFF
                    - type: INTEGER
                      name: desc_v_pos
                      value: '0'
                    - type: ITEM
                      name: itemid.0
                      value:
                        host: 'DELL PowerEdge R720 by HTTP'
                        key: dell.server.hw.firmware
                    - type: INTEGER
                      name: show.0
                      value: '2'
                    - type: INTEGER
                      name: show.1
                      value: '1'
                    - type: STRING
                      name: value_color
                      value: FFFFFF
                    - type: INTEGER
                      name: value_size
                      value: '35'
                - type: item
                  name: 'System health'
                  x: '45'
                  width: '27'
                  height: '3'
                  hide_header: 'YES'
                  fields:
                    - type: STRING
                      name: bg_color
                      value: 2196F3
                    - type: STRING
                      name: description
                      value: 'System Health'
                    - type: STRING
                      name: desc_color
                      value: FFFFFF
                    - type: INTEGER
                      name: desc_v_pos
                      value: '0'
                    - type: ITEM
                      name: itemid.0
                      value:
                        host: 'DELL PowerEdge R720 by HTTP'
                        key: dell.server.status
                    - type: INTEGER
                      name: show.0
                      value: '2'
                    - type: INTEGER
                      name: show.1
                      value: '1'
                    - type: STRING
                      name: value_color
                      value: FFFFFF
                    - type: INTEGER
                      name: value_size
                      value: '35'
            - name: Discoveries
              display_period: '30'
              widgets:
                - type: honeycomb
                  name: 'Interface link'
                  width: '36'
                  height: '4'
                  fields:
                    - type: STRING
                      name: items.0
                      value: 'Interface*Link status'
                    - type: STRING
                      name: primary_label
                      value: '{{ITEM.NAME}.regsub("\[(.*?)\]", "\1")}'
                    - type: INTEGER
                      name: primary_label_size_type
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAAAA
                    - type: STRING
                      name: thresholds.0.color
                      value: D3212C
                    - type: STRING
                      name: thresholds.0.threshold
                      value: '2'
                    - type: STRING
                      name: thresholds.1.color
                      value: 069C56
                    - type: STRING
                      name: thresholds.1.threshold
                      value: '3'
                - type: honeycomb
                  name: 'Temperature sensors'
                  'y': '4'
                  width: '72'
                  height: '4'
                  fields:
                    - type: STRING
                      name: items.0
                      value: 'Probe*Value'
                    - type: STRING
                      name: primary_label
                      value: '{{ITEM.NAME}.regsub("\[(.*?)\]", "\1")}'
                    - type: INTEGER
                      name: primary_label_size_type
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAAAB
                    - type: INTEGER
                      name: secondary_label_decimal_places
                      value: '0'
                - type: honeycomb
                  name: 'Physical disks'
                  'y': '8'
                  width: '36'
                  height: '4'
                  fields:
                    - type: STRING
                      name: items.0
                      value: 'Physical disk*Status'
                    - type: STRING
                      name: primary_label
                      value: '{{ITEM.NAME}.regsub("\[(.*?)\]", "\1")}'
                    - type: INTEGER
                      name: primary_label_size_type
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAAAC
                    - type: STRING
                      name: thresholds.0.color
                      value: 069C56
                    - type: STRING
                      name: thresholds.0.threshold
                      value: '1'
                    - type: STRING
                      name: thresholds.1.color
                      value: FF681E
                    - type: STRING
                      name: thresholds.1.threshold
                      value: '2'
                    - type: STRING
                      name: thresholds.2.color
                      value: D3212C
                    - type: STRING
                      name: thresholds.2.threshold
                      value: '3'
                - type: honeycomb
                  name: 'Power supplies'
                  'y': '12'
                  width: '36'
                  height: '4'
                  fields:
                    - type: STRING
                      name: items.0
                      value: 'Power supply*Voltage'
                    - type: STRING
                      name: items.1
                      value: 'Power supply*Current'
                    - type: STRING
                      name: primary_label
                      value: '{{ITEM.NAME}.regsub("\[(.*?)\]", "\1")}'
                    - type: INTEGER
                      name: primary_label_size_type
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAAAE
                - type: honeycomb
                  name: 'Interface speed'
                  x: '36'
                  width: '36'
                  height: '4'
                  fields:
                    - type: STRING
                      name: items.0
                      value: 'Interface*Speed'
                    - type: STRING
                      name: primary_label
                      value: '{{ITEM.NAME}.regsub("\[(.*?)\]", "\1")}'
                    - type: INTEGER
                      name: primary_label_size_type
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAABA
                    - type: INTEGER
                      name: secondary_label_decimal_places
                      value: '0'
                    - type: STRING
                      name: thresholds.0.color
                      value: D3212C
                    - type: STRING
                      name: thresholds.0.threshold
                      value: '0'
                    - type: STRING
                      name: thresholds.1.color
                      value: FF681E
                    - type: STRING
                      name: thresholds.1.threshold
                      value: '10000000'
                    - type: STRING
                      name: thresholds.2.color
                      value: FF980E
                    - type: STRING
                      name: thresholds.2.threshold
                      value: '100000000'
                    - type: STRING
                      name: thresholds.3.color
                      value: 069C56
                    - type: STRING
                      name: thresholds.3.threshold
                      value: '1000000000'
                    - type: STRING
                      name: thresholds.4.color
                      value: 2196F3
                    - type: STRING
                      name: thresholds.4.threshold
                      value: '10000000000'
                    - type: STRING
                      name: thresholds.5.color
                      value: 6C00D9
                    - type: STRING
                      name: thresholds.5.threshold
                      value: '25000000000'
                    - type: STRING
                      name: thresholds.6.color
                      value: D900A6
                    - type: STRING
                      name: thresholds.6.threshold
                      value: '40000000000'
                - type: honeycomb
                  name: 'Virtual disks'
                  x: '36'
                  'y': '8'
                  width: '36'
                  height: '4'
                  fields:
                    - type: STRING
                      name: items.0
                      value: 'Virtual disk*: Status'
                    - type: STRING
                      name: primary_label
                      value: '{{ITEM.NAME}.regsub("\[(.*?)\]", "\1")}'
                    - type: INTEGER
                      name: primary_label_size_type
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAAAD
                    - type: STRING
                      name: thresholds.0.color
                      value: 069C56
                    - type: STRING
                      name: thresholds.0.threshold
                      value: '1'
                    - type: STRING
                      name: thresholds.1.color
                      value: FF681E
                    - type: STRING
                      name: thresholds.1.threshold
                      value: '2'
                    - type: STRING
                      name: thresholds.2.color
                      value: D3212C
                    - type: STRING
                      name: thresholds.2.threshold
                      value: '3'
                - type: honeycomb
                  name: Fans
                  x: '36'
                  'y': '12'
                  width: '36'
                  height: '4'
                  fields:
                    - type: STRING
                      name: items.0
                      value: 'Probe*Status'
                    - type: STRING
                      name: primary_label
                      value: '{{ITEM.NAME}.regsub("\[(.*?)\]", "\1")}'
                    - type: INTEGER
                      name: primary_label_size_type
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAAAF
                    - type: STRING
                      name: thresholds.0.color
                      value: 069C56
                    - type: STRING
                      name: thresholds.0.threshold
                      value: '1'
                    - type: STRING
                      name: thresholds.1.color
                      value: FF681E
                    - type: STRING
                      name: thresholds.1.threshold
                      value: '2'
                    - type: STRING
                      name: thresholds.2.color
                      value: D3212C
                    - type: STRING
                      name: thresholds.2.threshold
                      value: '3'
      valuemaps:
        - uuid: 623bbf13357f4b22a4030c813437db18
          name: 'Network interface status'
          mappings:
            - value: '0'
              newvalue: Unknown
            - value: '1'
              newvalue: 'Null'
            - value: '2'
              newvalue: Down
            - value: '3'
              newvalue: Up
        - uuid: 8be2ad02ae4c4836bc21816e89a906ac
          name: 'Redfish API availability'
          mappings:
            - value: '0'
              newvalue: Unavailable
            - value: '1'
              newvalue: Available
        - uuid: 32fa026175444306b08fe3cf6618a98a
          name: 'Redfish status health'
          mappings:
            - value: '0'
              newvalue: Unknown
            - value: '1'
              newvalue: OK
            - value: '2'
              newvalue: Warning
            - value: '3'
              newvalue: Critical
        - uuid: b30ec1c62a124a48ac129e6065d3180d
          name: 'Redfish status state'
          mappings:
            - value: '0'
              newvalue: Unknown
            - value: '1'
              newvalue: Enabled
            - value: '2'
              newvalue: Disabled
            - value: '3'
              newvalue: Absent
            - value: '4'
              newvalue: Deferring
            - value: '5'
              newvalue: InTest
            - value: '6'
              newvalue: Quiesced
            - value: '7'
              newvalue: StandbyOffline
            - value: '8'
              newvalue: StandbySpare
            - value: '9'
              newvalue: Starting
            - value: '10'
              newvalue: UnavailableOffline
            - value: '11'
              newvalue: Updating
        - uuid: a63d06ed53ac4f3fb07a7e584301f34a
          name: 'Virtual disk RAID status'
          mappings:
            - value: '0'
              newvalue: unknown
            - value: '1'
              newvalue: Blocked
            - value: '2'
              newvalue: Degraded
            - value: '3'
              newvalue: Failed
            - value: '4'
              newvalue: Foreign
            - value: '5'
              newvalue: Offline
            - value: '6'
              newvalue: Unknown
            - value: '7'
              newvalue: 'Null'
            - value: '8'
              newvalue: Ready
            - value: '9'
              newvalue: Online
        - uuid: 3e1d1bf56dd841c7bdc9679ff8e24748
          name: 'Virtual disk read policy'
          mappings:
            - value: '0'
              newvalue: Unknown
            - value: '1'
              newvalue: NoReadAhead
            - value: '2'
              newvalue: ReadAhead
            - value: '3'
              newvalue: AdaptiveReadAhead
        - uuid: c11a3e902ef248a5a1a77af824b43252
          name: 'Virtual disk write policy'
          mappings:
            - value: '0'
              newvalue: Unknown
            - value: '1'
              newvalue: WriteThrough
            - value: '2'
              newvalue: WriteBack
            - value: '3'
              newvalue: ProtectedWriteBack
            - value: '4'
              newvalue: UnprotectedWriteBack
    - uuid: 1e9fe6b88c7542638c0f5d94484858b2
      template: 'DELL PowerEdge R820 by HTTP'
      name: 'DELL PowerEdge R820 by HTTP'
      description: |
        Template for DELL PowerEdge R820 servers with iDRAC 8/9 firmware 4.32 and later and Redfish API enabled.
        
        You can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/426752-discussion-thread-for-official-zabbix-dell-templates
        
        Generated by official Zabbix template tool "Templator"
      wizard_ready: 'YES'
      readme: |
        ## Overview
        
        This is a template for monitoring DELL PowerEdge R820 servers with iDRAC 8/9 firmware 4.32 (and later) with Redfish API enabled via Zabbix script items. This template works without any external scripts.
        
        ## Setup
        
        1\. Enable Redfish API in the Dell iDRAC interface of your server.
        
        2\. Create a user for monitoring with read-only permissions in the Dell iDRAC interface.
        
        3\. Create a host for Dell server with iDRAC IP as the Zabbix agent interface.
        
        4\. Link the template to the host.
        
        5\. Customize the values of the `{$DELL.HTTP.API.URL}`, `{$DELL.HTTP.API.USER}`, and `{$DELL.HTTP.API.PASSWORD}` macros.
        
        > NOTE! If you are experiencing timeouts on some of the items that are executing requests, adjust the `{$DELL.HTTP.REQUEST.TIMEOUT}` macro accordingly.
      vendor:
        name: Zabbix
        version: 8.0-2
      groups:
        - name: 'Templates/Server hardware'
      items:
        - uuid: 68a232da5e184d23ac524ee2d424fef7
          name: 'Get array controller resources'
          type: SCRIPT
          key: dell.server.array.resources.get
          history: '0'
          value_type: TEXT
          params: |
            function validateZabbixParams(requiredParams, allParams) {
            	requiredParams.forEach(function (field) {
            		if (typeof allParams !== 'object' || typeof allParams[field] === 'undefined' || allParams[field] === '') {
            			throw 'Required param is not set: ' + field + '.';
            		}
            	});
            }
            
            function Dell(service, action, params) {
            	this.zabbixLogPrefix = '[ DELL ] [ ' + service + ' ] [ ' + action + ' ]';
            	this.request = new HttpRequest();
            
            	this.executeRequest = function (apiPath) {
            		this.request.addHeader('Authorization: Basic ' + btoa(params['user'] + ':' + params['password']));
            
            		if (params['http_proxy']) {
            			this.request.setProxy(params['http_proxy']);
            			Zabbix.log(4, this.zabbixLogPrefix + ' Using http proxy: ' + params['http_proxy']);
            		}
            
            		const response = this.request.get(params['url'] + apiPath);
            
            		this.request.clearHeader();
            
            		if (this.request.getStatus() === parseInt(params['http_status_code'])) {
            			return response;
            		} else {
            			Zabbix.log(3, this.zabbixLogPrefix + ' Unexpected HTTP response code: ' + this.request.getStatus());
            			throw 'Unexpected HTTP response code: ' + this.request.getStatus();
            		}
            	};
            
            	this.extractData = function (data, keys, skipParse) {
            		if (!skipParse) {
            			try {
            				data = JSON.parse(data);
            			} catch (error) {
            				Zabbix.log(3, this.zabbixLogPrefix + ' Could not parse the received JSON object: ' + data);
            				throw 'Could not parse received JSON object. See logs for more information.';
            			}	
            		}
            
            		if (Array.isArray(keys)) {
            			var returnBuffer = {};
            
            			for (keyIdx = 0, keysLength = keys.length; keyIdx < keysLength; keyIdx++) {
            				if (keys[keyIdx]['path'] === '@odata.id') {
            					returnBuffer[keys[keyIdx]['name']] = data[keys[keyIdx]['path']];
            				} else {
            					returnBuffer[keys[keyIdx]['name']] = this.parseJSON(data, keys[keyIdx]['path'].split('.'));
            				}
            			}
            
            			return returnBuffer;
            		} else if (typeof keys === 'object') {
            			return { [keys['name']]: this.parseJSON(data, keys['path'].split('.')) };
            		} else if (typeof keys === 'string') {
            			return this.parseJSON(data, keys.split('.'));
            		} else {
            			throw 'Unexpected key type';
            		}
            	};
            
            	this.parseJSON = function (data, jsonPath) {
            		for (var i = 0, args = jsonPath.length; i < args; i++) {
            			data = data[jsonPath[i]];
            		}
            
            		return data;
            	}
            }
            
            
            const params = JSON.parse(value);
            
            validateZabbixParams(['url', 'user', 'password', 'http_status_code'], params);
            var dell = new Dell('Controller', 'Discovery', params);
            
            const controllers = dell.extractData(dell.executeRequest('/redfish/v1/Systems/System.Embedded.1/Storage?$expand=.($levels=1)'), 'Members');
            
            var arrControllerKeys = [
            	{
            		'name': 'id',
            		'path': 'Id'
            	},
            	{
            		'name': 'name',
            		'path': 'Name'
            	},
            	{
            		'name': 'health',
            		'path': 'Status.Health'
            	},
            	{
            		'name': 'slot',
            		'path': 'Oem.Dell.DellController.PCISlot'
            	}
            ];
            
            var battControllerKeys = [
            	{
            		'name': 'id',
            		'path': 'Oem.Dell.DellControllerBattery.Id'
            	},
            	{
            		'name': 'name',
            		'path': 'Oem.Dell.DellControllerBattery.Name'
            	},
            	{
            		'name': 'status',
            		'path': 'Oem.Dell.DellControllerBattery.PrimaryStatus'
            	}
            ];
            
            if (!Array.isArray(controllers)) {
            	throw 'Unexpected type for controllers.';
            }
            
            var buffer = { 'arrayControllers': [], 'batteryControllers': [] };
            
            controllers.forEach(function (controller) {
            	if (controller['Id'].search('RAID') > -1) {
            		buffer['arrayControllers'].push(dell.extractData(controller, arrControllerKeys, true));
            		buffer['batteryControllers'].push(dell.extractData(controller, battControllerKeys, true));
            	}
            });
            
            return JSON.stringify(buffer);
          description: 'Returns array controller resources.'
          timeout: '{$DELL.HTTP.REQUEST.TIMEOUT}'
          parameters:
            - name: http_proxy
              value: '{$DELL.HTTP.PROXY}'
            - name: http_status_code
              value: '{$DELL.HTTP.RETURN.CODE.OK}'
            - name: password
              value: '{$DELL.HTTP.API.PASSWORD}'
            - name: url
              value: '{$DELL.HTTP.API.URL}'
            - name: user
              value: '{$DELL.HTTP.API.USER}'
          tags:
            - tag: component
              value: raw
        - uuid: 029cf7dfa7734c4a86292d2b3b3b907b
          name: 'Get disks'
          type: SCRIPT
          key: dell.server.disks.get
          delay: 1h
          history: '0'
          value_type: TEXT
          params: |
            function validateZabbixParams(requiredParams, allParams) {
            	requiredParams.forEach(function (field) {
            		if (typeof allParams !== 'object' || typeof allParams[field] === 'undefined' || allParams[field] === '') {
            			throw 'Required param is not set: ' + field + '.';
            		}
            	});
            }
            
            function Dell(service, action, params) {
            	this.zabbixLogPrefix = '[ DELL ] [ ' + service + ' ] [ ' + action + ' ]';
            	this.request = new HttpRequest();
            
            	this.executeRequest = function (apiPath) {
            		this.request.addHeader('Authorization: Basic ' + btoa(params['user'] + ':' + params['password']));
            
            		if (params['http_proxy']) {
            			this.request.setProxy(params['http_proxy']);
            			Zabbix.log(4, this.zabbixLogPrefix + ' Using http proxy: ' + params['http_proxy']);
            		}
            
            		const response = this.request.get(params['url'] + apiPath);
            
            		this.request.clearHeader();
            
            		if (this.request.getStatus() === parseInt(params['http_status_code'])) {
            			return response;
            		} else {
            			Zabbix.log(3, this.zabbixLogPrefix + ' Unexpected HTTP response code: ' + this.request.getStatus());
            			throw 'Unexpected HTTP response code: ' + this.request.getStatus();
            		}
            	};
            
            	this.extractData = function (data, keys, skipParse) {
            		if (!skipParse) {
            			try {
            				data = JSON.parse(data);
            			} catch (error) {
            				Zabbix.log(3, this.zabbixLogPrefix + ' Could not parse the received JSON object: ' + data);
            				throw 'Could not parse received JSON object. See logs for more information.';
            			}	
            		}
            
            		if (Array.isArray(keys)) {
            			var returnBuffer = {};
            
            			for (keyIdx = 0, keysLength = keys.length; keyIdx < keysLength; keyIdx++) {
            				if (keys[keyIdx]['path'] === '@odata.id') {
            					returnBuffer[keys[keyIdx]['name']] = data[keys[keyIdx]['path']];
            				} else {
            					returnBuffer[keys[keyIdx]['name']] = this.parseJSON(data, keys[keyIdx]['path'].split('.'));
            				}
            			}
            
            			return returnBuffer;
            		} else if (typeof keys === 'object') {
            			return { [keys['name']]: this.parseJSON(data, keys['path'].split('.')) };
            		} else if (typeof keys === 'string') {
            			return this.parseJSON(data, keys.split('.'));
            		} else {
            			throw 'Unexpected key type';
            		}
            	};
            
            	this.parseJSON = function (data, jsonPath) {
            		for (var i = 0, args = jsonPath.length; i < args; i++) {
            			data = data[jsonPath[i]];
            		}
            
            		return data;
            	}
            }
            
            
            const params = JSON.parse(value);
            
            validateZabbixParams(['url', 'user', 'password', 'http_status_code'], params);
            var dell = new Dell('Disk', 'Discovery', params);
            
            const disks = dell.extractData(dell.executeRequest('/redfish/v1/Systems/System.Embedded.1/Storage'), 'Members');
            
            var keys = [
            	{
            		'name': 'path',
            		'path': '@odata.id'
            	},
            	{
            		'name': 'name',
            		'path': 'Name'
            	}
            ];
            
            if (!Array.isArray(disks)) {
            	throw 'Unexpected type for disks.';
            }
            
            var buffer = { 'physicalDisks': [], 'virtualDisks': [] };
            
            disks.forEach(function (disk) {
            	var requests = [{ 'usage': 'physicalDisks', 'path': '', 'target': 'Drives' }, { 'usage': 'virtualDisks', 'path': '/Volumes', 'target': 'Members' }];
            
            	requests.forEach(function (request) {
            		const disks = dell.extractData(dell.executeRequest(disk['@odata.id'] + request['path']), request['target']);
            
            		if (!Array.isArray(disks) || disks.length <= 0) {
            			return;
            		}
            
            		disks.forEach(function (drive) {
            			buffer[request['usage']].push(dell.extractData(dell.executeRequest(drive['@odata.id']), keys));
            		});
            	});
            });
            
            return JSON.stringify(buffer);
          description: 'Returns storage resources.'
          timeout: '{$DELL.HTTP.REQUEST.TIMEOUT}'
          parameters:
            - name: http_proxy
              value: '{$DELL.HTTP.PROXY}'
            - name: http_status_code
              value: '{$DELL.HTTP.RETURN.CODE.OK}'
            - name: password
              value: '{$DELL.HTTP.API.PASSWORD}'
            - name: url
              value: '{$DELL.HTTP.API.URL}'
            - name: user
              value: '{$DELL.HTTP.API.USER}'
          tags:
            - tag: component
              value: raw
        - uuid: f6ecf0d86c9f4464a83f1b6dd5a8e070
          name: 'Firmware version'
          type: DEPENDENT
          key: dell.server.hw.firmware
          value_type: CHAR
          description: 'This attribute defines the firmware version of a remote access card.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.firmware
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 6h
          master_item:
            key: dell.server.system.get
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: 16d23330f3274801b7ad216aae251587
              expression: 'last(/DELL PowerEdge R820 by HTTP/dell.server.hw.firmware,#1)<>last(/DELL PowerEdge R820 by HTTP/dell.server.hw.firmware,#2) and length(last(/DELL PowerEdge R820 by HTTP/dell.server.hw.firmware))>0'
              name: 'Dell R820: Firmware has changed'
              opdata: 'Current value: {ITEM.LASTVALUE1}'
              priority: INFO
              description: 'The firmware version has changed. Acknowledge to close the problem manually.'
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: notice
        - uuid: 9d5f0c838c7540ce815d21cd227894b1
          name: 'Hardware model name'
          type: DEPENDENT
          key: dell.server.hw.model
          value_type: CHAR
          description: 'This attribute defines the model name of the system.'
          inventory_link: MODEL
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.model
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 6h
          master_item:
            key: dell.server.system.get
          tags:
            - tag: component
              value: system
        - uuid: 6e7cbcd6ae3e40b39784142f3a10ede8
          name: 'Hardware serial number'
          type: DEPENDENT
          key: dell.server.hw.serialnumber
          value_type: CHAR
          description: 'This attribute defines the service tag of the system.'
          inventory_link: SERIALNO_A
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.serialnumber
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 6h
          master_item:
            key: dell.server.system.get
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: 0ace6d0242b647519ddc539e990e2b75
              expression: 'last(/DELL PowerEdge R820 by HTTP/dell.server.hw.serialnumber,#1)<>last(/DELL PowerEdge R820 by HTTP/dell.server.hw.serialnumber,#2) and length(last(/DELL PowerEdge R820 by HTTP/dell.server.hw.serialnumber))>0'
              name: 'Dell R820: Device has been replaced'
              event_name: 'Dell R820: Device has been replaced (new serial number received)'
              priority: INFO
              description: 'The device serial number has changed. Acknowledge to close the problem manually.'
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: notice
        - uuid: 2bade51081c74bfdbb282713a50dbf68
          name: 'Get network interfaces'
          type: SCRIPT
          key: dell.server.net.iface.get
          delay: 1h
          history: '0'
          value_type: TEXT
          params: |
            function validateZabbixParams(requiredParams, allParams) {
            	requiredParams.forEach(function (field) {
            		if (typeof allParams !== 'object' || typeof allParams[field] === 'undefined' || allParams[field] === '') {
            			throw 'Required param is not set: ' + field + '.';
            		}
            	});
            }
            
            function Dell(service, action, params) {
            	this.zabbixLogPrefix = '[ DELL ] [ ' + service + ' ] [ ' + action + ' ]';
            	this.request = new HttpRequest();
            
            	this.executeRequest = function (apiPath) {
            		this.request.addHeader('Authorization: Basic ' + btoa(params['user'] + ':' + params['password']));
            
            		if (params['http_proxy']) {
            			this.request.setProxy(params['http_proxy']);
            			Zabbix.log(4, this.zabbixLogPrefix + ' Using http proxy: ' + params['http_proxy']);
            		}
            
            		const response = this.request.get(params['url'] + apiPath);
            
            		this.request.clearHeader();
            
            		if (this.request.getStatus() === parseInt(params['http_status_code'])) {
            			return response;
            		} else {
            			Zabbix.log(3, this.zabbixLogPrefix + ' Unexpected HTTP response code: ' + this.request.getStatus());
            			throw 'Unexpected HTTP response code: ' + this.request.getStatus();
            		}
            	};
            
            	this.extractData = function (data, keys, skipParse) {
            		if (!skipParse) {
            			try {
            				data = JSON.parse(data);
            			} catch (error) {
            				Zabbix.log(3, this.zabbixLogPrefix + ' Could not parse the received JSON object: ' + data);
            				throw 'Could not parse received JSON object. See logs for more information.';
            			}	
            		}
            
            		if (Array.isArray(keys)) {
            			var returnBuffer = {};
            
            			for (keyIdx = 0, keysLength = keys.length; keyIdx < keysLength; keyIdx++) {
            				if (keys[keyIdx]['path'] === '@odata.id') {
            					returnBuffer[keys[keyIdx]['name']] = data[keys[keyIdx]['path']];
            				} else {
            					returnBuffer[keys[keyIdx]['name']] = this.parseJSON(data, keys[keyIdx]['path'].split('.'));
            				}
            			}
            
            			return returnBuffer;
            		} else if (typeof keys === 'object') {
            			return { [keys['name']]: this.parseJSON(data, keys['path'].split('.')) };
            		} else if (typeof keys === 'string') {
            			return this.parseJSON(data, keys.split('.'));
            		} else {
            			throw 'Unexpected key type';
            		}
            	};
            
            	this.parseJSON = function (data, jsonPath) {
            		for (var i = 0, args = jsonPath.length; i < args; i++) {
            			data = data[jsonPath[i]];
            		}
            
            		return data;
            	}
            }
            
            
            const params = JSON.parse(value);
            
            validateZabbixParams(['url', 'user', 'password', 'http_status_code'], params);
            var dell = new Dell('Network Interface', 'Discovery', params);
            
            const netAdapters = dell.extractData(dell.executeRequest('/redfish/v1/Chassis/System.Embedded.1/NetworkAdapters'), 'Members');
            
            var keys = [
            	{
            		'name': 'path',
            		'path': '@odata.id'
            	},
            	{
            		'name': 'id',
            		'path': 'Id'
            	}
            ];
            
            if (!Array.isArray(netAdapters)) {
            	throw 'Unexpected type for network adapters.';
            }
            
            var buffer = [];
            
            netAdapters.forEach(function (netAdapter) {
            	const netPorts = dell.extractData(dell.executeRequest(netAdapter["@odata.id"] + '/NetworkPorts'), 'Members');
            
            	if (!Array.isArray(netPorts)) {
            		return;
            	}
            
            	netPorts.forEach(function (netPort) {
            		buffer.push(dell.extractData(dell.executeRequest(netPort["@odata.id"]), keys));
            	})
            });
            
            return JSON.stringify(buffer);
          description: 'Returns network interfaces.'
          timeout: '{$DELL.HTTP.REQUEST.TIMEOUT}'
          parameters:
            - name: http_proxy
              value: '{$DELL.HTTP.PROXY}'
            - name: http_status_code
              value: '{$DELL.HTTP.RETURN.CODE.OK}'
            - name: password
              value: '{$DELL.HTTP.API.PASSWORD}'
            - name: url
              value: '{$DELL.HTTP.API.URL}'
            - name: user
              value: '{$DELL.HTTP.API.USER}'
          tags:
            - tag: component
              value: raw
        - uuid: f455a0b7c198414db84fb679fba47330
          name: 'Get sensors'
          type: SCRIPT
          key: dell.server.sensors.get
          history: '0'
          value_type: TEXT
          params: |
            function validateZabbixParams(requiredParams, allParams) {
            	requiredParams.forEach(function (field) {
            		if (typeof allParams !== 'object' || typeof allParams[field] === 'undefined' || allParams[field] === '') {
            			throw 'Required param is not set: ' + field + '.';
            		}
            	});
            }
            
            function Dell(service, action, params) {
            	this.zabbixLogPrefix = '[ DELL ] [ ' + service + ' ] [ ' + action + ' ]';
            	this.request = new HttpRequest();
            
            	this.executeRequest = function (apiPath) {
            		this.request.addHeader('Authorization: Basic ' + btoa(params['user'] + ':' + params['password']));
            
            		if (params['http_proxy']) {
            			this.request.setProxy(params['http_proxy']);
            			Zabbix.log(4, this.zabbixLogPrefix + ' Using http proxy: ' + params['http_proxy']);
            		}
            
            		const response = this.request.get(params['url'] + apiPath);
            
            		this.request.clearHeader();
            
            		if (this.request.getStatus() === parseInt(params['http_status_code'])) {
            			return response;
            		} else {
            			Zabbix.log(3, this.zabbixLogPrefix + ' Unexpected HTTP response code: ' + this.request.getStatus());
            			throw 'Unexpected HTTP response code: ' + this.request.getStatus();
            		}
            	};
            
            	this.extractData = function (data, keys, skipParse) {
            		if (!skipParse) {
            			try {
            				data = JSON.parse(data);
            			} catch (error) {
            				Zabbix.log(3, this.zabbixLogPrefix + ' Could not parse the received JSON object: ' + data);
            				throw 'Could not parse received JSON object. See logs for more information.';
            			}	
            		}
            
            		if (Array.isArray(keys)) {
            			var returnBuffer = {};
            
            			for (keyIdx = 0, keysLength = keys.length; keyIdx < keysLength; keyIdx++) {
            				if (keys[keyIdx]['path'] === '@odata.id') {
            					returnBuffer[keys[keyIdx]['name']] = data[keys[keyIdx]['path']];
            				} else {
            					returnBuffer[keys[keyIdx]['name']] = this.parseJSON(data, keys[keyIdx]['path'].split('.'));
            				}
            			}
            
            			return returnBuffer;
            		} else if (typeof keys === 'object') {
            			return { [keys['name']]: this.parseJSON(data, keys['path'].split('.')) };
            		} else if (typeof keys === 'string') {
            			return this.parseJSON(data, keys.split('.'));
            		} else {
            			throw 'Unexpected key type';
            		}
            	};
            
            	this.parseJSON = function (data, jsonPath) {
            		for (var i = 0, args = jsonPath.length; i < args; i++) {
            			data = data[jsonPath[i]];
            		}
            
            		return data;
            	}
            }
            
            function formatPSU(psuObj) {
            	var foundPowerSupplies = [],
            		buffer = [];
            
            	psuObj.forEach(function (obj) {
            		const psuName = obj['name'].split(' ')[0];
            
            		if (foundPowerSupplies.indexOf(psuName) === -1) {
            			foundPowerSupplies.push(psuName);
            			buffer.push({
            				'name': psuName,
            				[obj['type'].toLowerCase()]: {'reading': obj['reading'], 'health': obj['health']}
            			});
            		} else {
            			buffer.forEach(function (bufferObj) {
            
            				if (bufferObj['name'] === psuName) {
            					bufferObj[obj['type'].toLowerCase()] = {'reading': obj['reading'], 'health': obj['health']};
            
            					return;
            				}
            			});
            		}
            	})
            	return buffer;
            };
            
            function formatTemp(tempObj) {
            	tempObj.forEach(function (obj) {
            		obj.name = obj.name.split(' ').slice(0, -1).join(' ');
            	});
            
            	return tempObj;
            }
            
            function formatSysBoard(sysObj) {
            	const remove = ['System', 'Board', 'Usage'];
            
            	sysObj.forEach(function (obj) {
            		var buffer = [];
            
            		obj['name'].split(' ').forEach(function (word) {
            			var match = false;
            
            			remove.forEach(function (removeWord) {
            				if (removeWord === word) {
            					match = true;
            				}
            			});
            
            			if (!match) {
            				buffer.push(word);
            			}
            		});
            
            		if (buffer.length > 0) {
            			obj['name'] = buffer.join(' ');
            		}
            	});
            
            	return sysObj;
            }
            
            
            const params = JSON.parse(value);
            
            validateZabbixParams(['url', 'user', 'password', 'http_status_code'], params);
            var dell = new Dell('Sensor', 'Discovery', params);
            
            const sensors = dell.extractData(dell.executeRequest('/redfish/v1/Chassis/System.Embedded.1/Sensors?$expand=.($levels=1)'), 'Members');
            
            if (!Array.isArray(sensors)) {
            	throw 'Unexpected type for sensors.';
            }
            
            const keys = [
            	{
            		'name': 'id',
            		'path': 'Id'
            	},
            	{
            		'name': 'name',
            		'path': 'Name'
            	},
            	{
            		'name': 'context',
            		'path': 'PhysicalContext'
            	},
            	{
            		'name': 'reading',
            		'path': 'Reading'
            	},
            	{
            		'name': 'type',
            		'path': 'ReadingType'
            	},
            	{
            		'name': 'health',
            		'path': 'Status.Health'
            	}
            ];
            
            var buffer = { 'fan': [], 'psu': [], 'temperature': [], 'sysBoard': [] };
            
            sensors.forEach(function (sensor) {
            	if (sensor['Name'].substring(0, 2) === 'PS' && sensor['PhysicalContext'] === 'PowerSupply') {
            		buffer['psu'].push(dell.extractData(sensor, keys, true));
            	} else if (sensor['ReadingType'] === 'Temperature') {
            		buffer['temperature'].push(dell.extractData(sensor, keys, true));
            	} else if (sensor['Name'].includes('Fan') && sensor['ReadingType'] === 'Rotational') {
            		buffer['fan'].push(dell.extractData(sensor, keys, true));
            	} else if (sensor['Name'].includes('System Board') && sensor['ReadingType'] === 'Percent') {
            		buffer['sysBoard'].push(dell.extractData(sensor, keys, true));
            	}
            });
            
            buffer['psu'] = formatPSU(buffer['psu']);
            buffer['temperature'] = formatTemp(buffer['temperature']);
            buffer['sysBoard'] = formatSysBoard(buffer['sysBoard']);
            
            return JSON.stringify(buffer);
          description: 'Returns sensors.'
          timeout: '{$DELL.HTTP.REQUEST.TIMEOUT}'
          parameters:
            - name: http_proxy
              value: '{$DELL.HTTP.PROXY}'
            - name: http_status_code
              value: '{$DELL.HTTP.RETURN.CODE.OK}'
            - name: password
              value: '{$DELL.HTTP.API.PASSWORD}'
            - name: url
              value: '{$DELL.HTTP.API.URL}'
            - name: user
              value: '{$DELL.HTTP.API.USER}'
          tags:
            - tag: component
              value: raw
        - uuid: e1dd57a6fb9f4b47aa715d68aaac7e63
          name: 'Overall system health status'
          type: DEPENDENT
          key: dell.server.status
          trends: '0'
          description: 'This attribute defines the overall rollup status of all the components in the system monitored by the remote access card. Includes system, storage, IO devices, iDRAC, CPU, memory, etc.'
          valuemap:
            name: 'Redfish status health'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.status
            - type: JAVASCRIPT
              parameters:
                - |
                  const idx = {
                  	'OK': 1,
                  	'Warning': 2,
                  	'Critical': 3,
                  };
                  
                  return typeof idx[value] === 'undefined' ? 0 : idx[value];
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 6h
          master_item:
            key: dell.server.system.get
          tags:
            - tag: component
              value: health
            - tag: component
              value: system
          triggers:
            - uuid: df55250997fd474e8323ccf7438354f8
              expression: 'last(/DELL PowerEdge R820 by HTTP/dell.server.status,)=3'
              name: 'Dell R820: Server is in a critical state'
              opdata: 'Current state: {ITEM.LASTVALUE1}'
              priority: AVERAGE
              description: 'Please check the device for faults.'
              tags:
                - tag: scope
                  value: availability
            - uuid: f805d7fdab4842018b68acf3608fbfc4
              expression: 'last(/DELL PowerEdge R820 by HTTP/dell.server.status,)=2'
              name: 'Dell R820: Server is in a warning state'
              opdata: 'Current state: {ITEM.LASTVALUE1}'
              priority: WARNING
              description: 'Please check the device for warnings.'
              dependencies:
                - name: 'Dell R820: Server is in a critical state'
                  expression: 'last(/DELL PowerEdge R820 by HTTP/dell.server.status,)=3'
              tags:
                - tag: scope
                  value: availability
        - uuid: c25e7040694f4a839b4e32524698c8da
          name: 'Get system'
          type: SCRIPT
          key: dell.server.system.get
          history: '0'
          value_type: TEXT
          params: |
            function validateZabbixParams(requiredParams, allParams) {
            	requiredParams.forEach(function (field) {
            		if (typeof allParams !== 'object' || typeof allParams[field] === 'undefined' || allParams[field] === '') {
            			throw 'Required param is not set: ' + field + '.';
            		}
            	});
            }
            
            function Dell(service, action, params) {
            	this.zabbixLogPrefix = '[ DELL ] [ ' + service + ' ] [ ' + action + ' ]';
            	this.request = new HttpRequest();
            
            	this.executeRequest = function (apiPath) {
            		this.request.addHeader('Authorization: Basic ' + btoa(params['user'] + ':' + params['password']));
            
            		if (params['http_proxy']) {
            			this.request.setProxy(params['http_proxy']);
            			Zabbix.log(4, this.zabbixLogPrefix + ' Using http proxy: ' + params['http_proxy']);
            		}
            
            		const response = this.request.get(params['url'] + apiPath);
            
            		this.request.clearHeader();
            
            		if (this.request.getStatus() === parseInt(params['http_status_code'])) {
            			return response;
            		} else {
            			Zabbix.log(3, this.zabbixLogPrefix + ' Unexpected HTTP response code: ' + this.request.getStatus());
            			throw 'Unexpected HTTP response code: ' + this.request.getStatus();
            		}
            	};
            
            	this.extractData = function (data, keys, skipParse) {
            		if (!skipParse) {
            			try {
            				data = JSON.parse(data);
            			} catch (error) {
            				Zabbix.log(3, this.zabbixLogPrefix + ' Could not parse the received JSON object: ' + data);
            				throw 'Could not parse received JSON object. See logs for more information.';
            			}	
            		}
            
            		if (Array.isArray(keys)) {
            			var returnBuffer = {};
            
            			for (keyIdx = 0, keysLength = keys.length; keyIdx < keysLength; keyIdx++) {
            				if (keys[keyIdx]['path'] === '@odata.id') {
            					returnBuffer[keys[keyIdx]['name']] = data[keys[keyIdx]['path']];
            				} else {
            					returnBuffer[keys[keyIdx]['name']] = this.parseJSON(data, keys[keyIdx]['path'].split('.'));
            				}
            			}
            
            			return returnBuffer;
            		} else if (typeof keys === 'object') {
            			return { [keys['name']]: this.parseJSON(data, keys['path'].split('.')) };
            		} else if (typeof keys === 'string') {
            			return this.parseJSON(data, keys.split('.'));
            		} else {
            			throw 'Unexpected key type';
            		}
            	};
            
            	this.parseJSON = function (data, jsonPath) {
            		for (var i = 0, args = jsonPath.length; i < args; i++) {
            			data = data[jsonPath[i]];
            		}
            
            		return data;
            	}
            }
            
            
            const params = JSON.parse(value);
            
            validateZabbixParams(['url', 'user', 'password', 'http_status_code'], params);
            var dell = new Dell('System', 'Get system metrics', params);
            
            const requests = [
            	{
            		'path': '/redfish/v1/Systems/System.Embedded.1',
            		'keys': [
            			{
            				'name': 'model',
            				'path': 'Model'
            			},
            			{
            				'name': 'serialnumber',
            				'path': 'Oem.Dell.DellSystem.ChassisServiceTag'
            			},
            			{
            				'name': 'status',
            				'path': 'Status.Health'
            			}
            		]
            	},
            	{
            		'path': '/redfish/v1/Managers/iDRAC.Embedded.1',
            		'keys': {
            			'name': 'firmware',
            			'path': 'FirmwareVersion'
            		}
            	}
            ];
            
            var buffer = {};
            
            for (var i = 0, requestsCount = requests.length; i < requestsCount; i++) {
            	Object.assign(buffer, dell.extractData(dell.executeRequest(requests[i].path), requests[i].keys));
            }
            
            return JSON.stringify(buffer);
          description: 'Returns system metrics.'
          timeout: '{$DELL.HTTP.REQUEST.TIMEOUT}'
          parameters:
            - name: http_proxy
              value: '{$DELL.HTTP.PROXY}'
            - name: http_status_code
              value: '{$DELL.HTTP.RETURN.CODE.OK}'
            - name: password
              value: '{$DELL.HTTP.API.PASSWORD}'
            - name: url
              value: '{$DELL.HTTP.API.URL}'
            - name: user
              value: '{$DELL.HTTP.API.USER}'
          tags:
            - tag: component
              value: raw
        - uuid: 6a34296167c4452c8ba7e37798ffd66a
          name: 'CPU utilization, in %'
          type: DEPENDENT
          key: dell.server.util.cpu
          value_type: FLOAT
          units: '%'
          description: 'CPU utilization.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.sysBoard[?(@.id == "SystemBoardCPUUsage")].reading.first()'
          master_item:
            key: dell.server.sensors.get
          tags:
            - tag: component
              value: cpu
          triggers:
            - uuid: 1feff28d5dd74c52a3978645f7cecd62
              expression: 'min(/DELL PowerEdge R820 by HTTP/dell.server.util.cpu,5m)>={$DELL.HTTP.CPU.UTIL.WARN}'
              name: 'Dell R820: CPU utilization is high'
              event_name: 'Dell R820: Current CPU utilization is high (util >= {$DELL.HTTP.CPU.UTIL.WARN}%)'
              opdata: 'Current utilization: {ITEM.LASTVALUE1}'
              priority: WARNING
              description: 'Current CPU utilization has exceeded `{$DELL.HTTP.CPU.UTIL.WARN}`%.'
              dependencies:
                - name: 'Dell R820: CPU utilization is too high'
                  expression: 'min(/DELL PowerEdge R820 by HTTP/dell.server.util.cpu,5m)>={$DELL.HTTP.CPU.UTIL.HIGH}'
              tags:
                - tag: scope
                  value: capacity
            - uuid: 069d0f8e16a1494d99bd45b96040ef12
              expression: 'min(/DELL PowerEdge R820 by HTTP/dell.server.util.cpu,5m)>={$DELL.HTTP.CPU.UTIL.HIGH}'
              name: 'Dell R820: CPU utilization is too high'
              event_name: 'Dell R820: Current CPU utilization is too high (util >= {$DELL.HTTP.CPU.UTIL.HIGH}%)'
              opdata: 'Current utilization: {ITEM.LASTVALUE1}'
              priority: HIGH
              description: 'Current CPU utilization has exceeded `{$DELL.HTTP.CPU.UTIL.HIGH}`%.'
              tags:
                - tag: scope
                  value: capacity
        - uuid: 401471d2ffa140b09c66c7e1b0ae8be0
          name: 'IO utilization, in %'
          type: DEPENDENT
          key: dell.server.util.io
          value_type: FLOAT
          units: '%'
          description: 'IO utilization.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.sysBoard[?(@.id == "SystemBoardIOUsage")].reading.first()'
          master_item:
            key: dell.server.sensors.get
          tags:
            - tag: component
              value: io
          triggers:
            - uuid: 0646200e61a7469c95471af24ddba10c
              expression: 'min(/DELL PowerEdge R820 by HTTP/dell.server.util.io,5m)>={$DELL.HTTP.IO.UTIL.WARN}'
              name: 'Dell R820: IO utilization is high'
              event_name: 'Dell R820: Current IO utilization is high (util >= {$DELL.HTTP.IO.UTIL.WARN}%)'
              opdata: 'Current utilization: {ITEM.LASTVALUE1}'
              priority: WARNING
              description: 'Current IO utilization has exceeded `{$DELL.HTTP.IO.UTIL.WARN}`%.'
              dependencies:
                - name: 'Dell R820: IO utilization is too high'
                  expression: 'min(/DELL PowerEdge R820 by HTTP/dell.server.util.io,5m)>={$DELL.HTTP.IO.UTIL.HIGH}'
              tags:
                - tag: scope
                  value: capacity
            - uuid: f99ead65893143c39f0ebe9c1038524d
              expression: 'min(/DELL PowerEdge R820 by HTTP/dell.server.util.io,5m)>={$DELL.HTTP.IO.UTIL.HIGH}'
              name: 'Dell R820: IO utilization is too high'
              event_name: 'Dell R820: Current IO utilization is too high (util >= {$DELL.HTTP.IO.UTIL.HIGH}%)'
              opdata: 'Current utilization: {ITEM.LASTVALUE1}'
              priority: HIGH
              description: 'Current IO utilization has exceeded `{$DELL.HTTP.IO.UTIL.HIGH}`%.'
              tags:
                - tag: scope
                  value: capacity
        - uuid: f09f4be3c7f24504b1593eed456056c0
          name: 'Memory utilization, in %'
          type: DEPENDENT
          key: dell.server.util.mem
          value_type: FLOAT
          units: '%'
          description: 'Memory utilization.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.sysBoard[?(@.id == "SystemBoardMEMUsage")].reading.first()'
          master_item:
            key: dell.server.sensors.get
          tags:
            - tag: component
              value: memory
          triggers:
            - uuid: cd8f662e308f4c0ea7382962a0889812
              expression: 'min(/DELL PowerEdge R820 by HTTP/dell.server.util.mem,5m)>={$DELL.HTTP.MEM.UTIL.WARN}'
              name: 'Dell R820: Memory utilization is high'
              event_name: 'Dell R820: Current memory utilization is high (util >= {$DELL.HTTP.MEM.UTIL.WARN}%)'
              opdata: 'Current utilization: {ITEM.LASTVALUE1}'
              priority: WARNING
              description: 'Current memory utilization has exceeded `{$DELL.HTTP.MEM.UTIL.WARN}`%.'
              dependencies:
                - name: 'Dell R820: Memory utilization is too high'
                  expression: 'min(/DELL PowerEdge R820 by HTTP/dell.server.util.mem,5m)>={$DELL.HTTP.MEM.UTIL.HIGH}'
              tags:
                - tag: scope
                  value: capacity
            - uuid: 606b2c5625d844bb8a5641e351ab30fc
              expression: 'min(/DELL PowerEdge R820 by HTTP/dell.server.util.mem,5m)>={$DELL.HTTP.MEM.UTIL.HIGH}'
              name: 'Dell R820: Memory utilization is too high'
              event_name: 'Dell R820: Current memory utilization is too high (util >= {$DELL.HTTP.MEM.UTIL.HIGH}%)'
              opdata: 'Current utilization: {ITEM.LASTVALUE1}'
              priority: HIGH
              description: 'Current memory utilization has exceeded `{$DELL.HTTP.MEM.UTIL.HIGH}`%.'
              tags:
                - tag: scope
                  value: capacity
        - uuid: 611a0be2fb08420ebadeadebe81ebc12
          name: 'SYS utilization, in %'
          type: DEPENDENT
          key: dell.server.util.sys
          value_type: FLOAT
          units: '%'
          description: 'SYS utilization.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.sysBoard[?(@.id == "SystemBoardSYSUsage")].reading.first()'
          master_item:
            key: dell.server.sensors.get
          tags:
            - tag: component
              value: sys
          triggers:
            - uuid: 71a95d655db24c13b7ed1e89adf7cb43
              expression: 'min(/DELL PowerEdge R820 by HTTP/dell.server.util.sys,5m)>={$DELL.HTTP.SYS.UTIL.WARN}'
              name: 'Dell R820: SYS utilization is high'
              event_name: 'Dell R820: Current SYS utilization is high (util >= {$DELL.HTTP.SYS.UTIL.WARN}%)'
              opdata: 'Current utilization: {ITEM.LASTVALUE1}'
              priority: WARNING
              description: 'Current SYS utilization has exceeded `{$DELL.HTTP.SYS.UTIL.WARN}`%.'
              dependencies:
                - name: 'Dell R820: IO utilization is too high'
                  expression: 'min(/DELL PowerEdge R820 by HTTP/dell.server.util.io,5m)>={$DELL.HTTP.IO.UTIL.HIGH}'
              tags:
                - tag: scope
                  value: capacity
            - uuid: c3bfbc51feb54025a32d0a7e43cf9a7c
              expression: 'min(/DELL PowerEdge R820 by HTTP/dell.server.util.sys,5m)>={$DELL.HTTP.SYS.UTIL.HIGH}'
              name: 'Dell R820: SYS utilization is too high'
              event_name: 'Dell R820: Current SYS utilization is too high (util >= {$DELL.HTTP.SYS.UTIL.HIGH}%)'
              opdata: 'Current utilization: {ITEM.LASTVALUE1}'
              priority: HIGH
              description: 'Current SYS utilization has exceeded `{$DELL.HTTP.SYS.UTIL.HIGH}`%.'
              tags:
                - tag: scope
                  value: capacity
        - uuid: 881a8358b3a049cb9516ec8f2ee20b69
          name: 'Redfish API status'
          type: SIMPLE
          key: 'net.tcp.service[https]'
          description: |
            Availability of Redfish API on the server.
            Possible values:
              0 - Unavailable
              1 - Available
          valuemap:
            name: 'Redfish API availability'
          tags:
            - tag: component
              value: health
            - tag: component
              value: system
          triggers:
            - uuid: f60ee17e012e4db39d3b2a008cf86653
              expression: 'last(/DELL PowerEdge R820 by HTTP/net.tcp.service[https])=0'
              name: 'Dell R820: Redfish API service is unavailable'
              priority: HIGH
              description: 'The service is unavailable or does not accept TCP connections.'
              tags:
                - tag: scope
                  value: availability
      discovery_rules:
        - uuid: 380d000cd61742a0a95b2fdec94a39ee
          name: 'Array controller discovery'
          type: DEPENDENT
          key: dell.server.array.discovery
          description: 'Discovery of disk array controllers.'
          item_prototypes:
            - uuid: fbc7a12767e54476b5eb16ac5986d5ba
              name: 'Controller [{#CNTLR_NAME}]: Status'
              type: DEPENDENT
              key: 'dell.server.array.status[{#ID}]'
              description: 'The status of the job. Possible values: OK, Warning, Critical.'
              valuemap:
                name: 'Redfish status health'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.arrayControllers[?(@.id == "{#ID}")].health.first()'
                - type: JAVASCRIPT
                  parameters:
                    - |
                      const idx = {
                      	'OK': 1,
                      	'Warning': 2,
                      	'Critical': 3,
                      };
                      
                      return typeof idx[value] === 'undefined' ? 0 : idx[value];
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: dell.server.array.resources.get
              tags:
                - tag: component
                  value: diskarray
                - tag: component
                  value: storage
              trigger_prototypes:
                - uuid: c3af9f97c0434999a9bd3fa94c4d3d2f
                  expression: 'last(/DELL PowerEdge R820 by HTTP/dell.server.array.status[{#ID}],)=3'
                  name: 'Dell R820: Controller [{#CNTLR_NAME}]: Critical state'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'Please check the device for faults.'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: d94ba5b002f54ff0ad1e0e148f83991b
                  expression: 'last(/DELL PowerEdge R820 by HTTP/dell.server.array.status[{#ID}],)=2'
                  name: 'Dell R820: Controller [{#CNTLR_NAME}]: Warning state'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'Please check the device for warnings.'
                  dependencies:
                    - name: 'Dell R820: Controller [{#CNTLR_NAME}]: Critical state'
                      expression: 'last(/DELL PowerEdge R820 by HTTP/dell.server.array.status[{#ID}],)=3'
                  tags:
                    - tag: scope
                      value: availability
          master_item:
            key: dell.server.array.resources.get
          lld_macro_paths:
            - lld_macro: '{#CNTLR_NAME}'
              path: $.name
            - lld_macro: '{#ID}'
              path: $.id
            - lld_macro: '{#SLOT}'
              path: $.slot
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.arrayControllers
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 6h
        - uuid: 71f10dadaef9462caf395fd383b18406
          name: 'Battery discovery'
          type: DEPENDENT
          key: dell.server.controller.battery.discovery
          description: 'Discovery of battery controllers.'
          item_prototypes:
            - uuid: c7a05323c5164204a981f52401e0d11a
              name: 'Battery [{#BATTERY_NAME}]: Status'
              type: DEPENDENT
              key: 'dell.server.controller.battery.status[{#ID}]'
              description: 'The status of the job. Possible values: OK, Warning, Critical.'
              valuemap:
                name: 'Redfish status health'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.batteryControllers[?(@.id == "{#ID}")].status.first()'
                - type: JAVASCRIPT
                  parameters:
                    - |
                      const idx = {
                      	'OK': 1,
                      	'Warning': 2,
                      	'Critical': 3,
                      };
                      
                      return typeof idx[value] === 'undefined' ? 0 : idx[value];
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: dell.server.array.resources.get
              tags:
                - tag: component
                  value: battery
                - tag: component
                  value: diskarray
              trigger_prototypes:
                - uuid: d46b6bd00f5748a48c707d3982047b88
                  expression: 'last(/DELL PowerEdge R820 by HTTP/dell.server.controller.battery.status[{#ID}],)=3'
                  name: 'Dell R820: Battery [{#BATTERY_NAME}]: Critical state'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'Please check the device for faults.'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: 0a59fa4da096415db825894138df0025
                  expression: 'last(/DELL PowerEdge R820 by HTTP/dell.server.controller.battery.status[{#ID}],)=2'
                  name: 'Dell R820: Battery [{#BATTERY_NAME}]: Warning state'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'Please check the device for warnings.'
                  dependencies:
                    - name: 'Dell R820: Battery [{#BATTERY_NAME}]: Critical state'
                      expression: 'last(/DELL PowerEdge R820 by HTTP/dell.server.controller.battery.status[{#ID}],)=3'
                  tags:
                    - tag: scope
                      value: availability
          master_item:
            key: dell.server.array.resources.get
          lld_macro_paths:
            - lld_macro: '{#BATTERY_NAME}'
              path: $.name
            - lld_macro: '{#ID}'
              path: $.id
            - lld_macro: '{#ODATA}'
              path: $.path
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.batteryControllers
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 6h
        - uuid: 2d92d68ee5664fe7b49cd54cba30a83a
          name: 'FAN discovery'
          type: DEPENDENT
          key: dell.server.fan.discovery
          description: 'Discovery of FAN sensors.'
          item_prototypes:
            - uuid: 9f91ed79a8874401acbada3acfd093fc
              name: 'Fan [{#SENSOR_NAME}]: Get sensor'
              type: DEPENDENT
              key: 'dell.server.sensor.fan.get[{#SENSOR_NAME}]'
              history: '0'
              value_type: TEXT
              description: 'Returns the metrics of a sensor.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.fan.[?(@.id == ''{#ID}'')].first()'
              master_item:
                key: dell.server.sensors.get
              tags:
                - tag: component
                  value: fan
                - tag: component
                  value: raw
            - uuid: 3c51a997d60c4a019baa7a38ea84cd78
              name: 'Fan [{#SENSOR_NAME}]: Speed'
              type: DEPENDENT
              key: 'dell.server.sensor.fan.speed[{#SENSOR_NAME}]'
              units: '!rpm'
              description: 'Sensor value.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.reading
              master_item:
                key: 'dell.server.sensor.fan.get[{#SENSOR_NAME}]'
              tags:
                - tag: component
                  value: fan
            - uuid: 66b4d1db39264237ba7c1c87a9b2a28f
              name: 'Fan [{#SENSOR_NAME}]: Status'
              type: DEPENDENT
              key: 'dell.server.sensor.fan.status[{#SENSOR_NAME}]'
              trends: '0'
              description: 'The status of the job. Possible values: OK, Warning, Critical.'
              valuemap:
                name: 'Redfish status health'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.health
                - type: JAVASCRIPT
                  parameters:
                    - |
                      const idx = {
                      	'OK': 1,
                      	'Warning': 2,
                      	'Critical': 3,
                      };
                      
                      return typeof idx[value] === 'undefined' ? 0 : idx[value];
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: 'dell.server.sensor.fan.get[{#SENSOR_NAME}]'
              tags:
                - tag: component
                  value: fan
              trigger_prototypes:
                - uuid: 84c7300a4b7b46f2996e053ee52694cd
                  expression: 'last(/DELL PowerEdge R820 by HTTP/dell.server.sensor.fan.status[{#SENSOR_NAME}],)=3'
                  name: 'Dell R820: Fan [{#SENSOR_NAME}]: Critical state'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'Please check the device for faults.'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: 1ee66cb1005b433d89e4c0154d7f0d57
                  expression: 'last(/DELL PowerEdge R820 by HTTP/dell.server.sensor.fan.status[{#SENSOR_NAME}],)=2'
                  name: 'Dell R820: Fan [{#SENSOR_NAME}]: Warning state'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'Please check the device for warnings.'
                  dependencies:
                    - name: 'Dell R820: Fan [{#SENSOR_NAME}]: Critical state'
                      expression: 'last(/DELL PowerEdge R820 by HTTP/dell.server.sensor.fan.status[{#SENSOR_NAME}],)=3'
                  tags:
                    - tag: scope
                      value: availability
          graph_prototypes:
            - uuid: 17eb03f7bdb746abb5f395ea4383d669
              name: 'Dell R820: Fan [{#SENSOR_NAME}]: Speed'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'DELL PowerEdge R820 by HTTP'
                    key: 'dell.server.sensor.fan.speed[{#SENSOR_NAME}]'
          master_item:
            key: dell.server.sensors.get
          lld_macro_paths:
            - lld_macro: '{#ID}'
              path: $.id
            - lld_macro: '{#SENSOR_NAME}'
              path: $.name
            - lld_macro: '{#TYPE}'
              path: $.type
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.fan
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 6h
        - uuid: 8075955b6a8c4843b038c6a91f792ca5
          name: 'Network interface discovery'
          type: DEPENDENT
          key: dell.server.net.if.discovery
          description: 'Discovery of network interfaces.'
          item_prototypes:
            - uuid: 8c317b576a2246ea9b0f25ca81bdb06b
              name: 'Interface [{#IFNAME}]: Get interface'
              type: SCRIPT
              key: 'dell.server.net.if.get[{#IFNAME}]'
              history: '0'
              value_type: TEXT
              params: |
                function validateZabbixParams(requiredParams, allParams) {
                	requiredParams.forEach(function (field) {
                		if (typeof allParams !== 'object' || typeof allParams[field] === 'undefined' || allParams[field] === '') {
                			throw 'Required param is not set: ' + field + '.';
                		}
                	});
                }
                
                function Dell(service, action, params) {
                	this.zabbixLogPrefix = '[ DELL ] [ ' + service + ' ] [ ' + action + ' ]';
                	this.request = new HttpRequest();
                
                	this.executeRequest = function (apiPath) {
                		this.request.addHeader('Authorization: Basic ' + btoa(params['user'] + ':' + params['password']));
                
                		if (params['http_proxy']) {
                			this.request.setProxy(params['http_proxy']);
                			Zabbix.log(4, this.zabbixLogPrefix + ' Using http proxy: ' + params['http_proxy']);
                		}
                
                		const response = this.request.get(params['url'] + apiPath);
                
                		this.request.clearHeader();
                
                		if (this.request.getStatus() === parseInt(params['http_status_code'])) {
                			return response;
                		} else {
                			Zabbix.log(3, this.zabbixLogPrefix + ' Unexpected HTTP response code: ' + this.request.getStatus());
                			throw 'Unexpected HTTP response code: ' + this.request.getStatus();
                		}
                	};
                
                	this.extractData = function (data, keys, skipParse) {
                		if (!skipParse) {
                			try {
                				data = JSON.parse(data);
                			} catch (error) {
                				Zabbix.log(3, this.zabbixLogPrefix + ' Could not parse the received JSON object: ' + data);
                				throw 'Could not parse received JSON object. See logs for more information.';
                			}	
                		}
                
                		if (Array.isArray(keys)) {
                			var returnBuffer = {};
                
                			for (keyIdx = 0, keysLength = keys.length; keyIdx < keysLength; keyIdx++) {
                				if (keys[keyIdx]['path'] === '@odata.id') {
                					returnBuffer[keys[keyIdx]['name']] = data[keys[keyIdx]['path']];
                				} else {
                					returnBuffer[keys[keyIdx]['name']] = this.parseJSON(data, keys[keyIdx]['path'].split('.'));
                				}
                			}
                
                			return returnBuffer;
                		} else if (typeof keys === 'object') {
                			return { [keys['name']]: this.parseJSON(data, keys['path'].split('.')) };
                		} else if (typeof keys === 'string') {
                			return this.parseJSON(data, keys.split('.'));
                		} else {
                			throw 'Unexpected key type';
                		}
                	};
                
                	this.parseJSON = function (data, jsonPath) {
                		for (var i = 0, args = jsonPath.length; i < args; i++) {
                			data = data[jsonPath[i]];
                		}
                
                		return data;
                	}
                }
                
                
                const params = JSON.parse(value);
                
                validateZabbixParams(['url', 'path', 'user', 'password', 'http_status_code'], params);
                var dell = new Dell('Network Interface', 'Get metrics', params);
                
                const keys = [
                	{
                		'name': 'linkStatus',
                		'path': 'LinkStatus'
                	},
                	{
                		'name': 'health',
                		'path': 'Status.Health'
                	},
                	{
                		'name': 'state',
                		'path': 'Status.State'
                	},
                	{
                		'name': 'linkSpeed',
                		'path': 'CurrentLinkSpeedMbps'
                	}
                ];
                
                return JSON.stringify(dell.extractData(dell.executeRequest(params.path), keys));
              description: 'Returns the metrics of a network interface.'
              timeout: '{$DELL.HTTP.REQUEST.TIMEOUT}'
              parameters:
                - name: http_proxy
                  value: '{$DELL.HTTP.PROXY}'
                - name: http_status_code
                  value: '{$DELL.HTTP.RETURN.CODE.OK}'
                - name: password
                  value: '{$DELL.HTTP.API.PASSWORD}'
                - name: path
                  value: '{#ODATA}'
                - name: url
                  value: '{$DELL.HTTP.API.URL}'
                - name: user
                  value: '{$DELL.HTTP.API.USER}'
              tags:
                - tag: component
                  value: network
                - tag: component
                  value: raw
            - uuid: 7ca5dc897e314299bf61bf73c961ca3a
              name: 'Interface [{#IFNAME}]: Status'
              type: DEPENDENT
              key: 'dell.server.net.if.health[{#IFNAME}]'
              description: 'The status of the job. Possible values: OK, Warning, Critical.'
              valuemap:
                name: 'Redfish status health'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.health
                - type: JAVASCRIPT
                  parameters:
                    - |
                      const idx = {
                      	'OK': 1,
                      	'Warning': 2,
                      	'Critical': 3,
                      };
                      
                      return typeof idx[value] === 'undefined' ? 0 : idx[value];
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: 'dell.server.net.if.get[{#IFNAME}]'
              tags:
                - tag: component
                  value: network
              trigger_prototypes:
                - uuid: 8a86d396b76f46bc808d83448dd02cdb
                  expression: 'last(/DELL PowerEdge R820 by HTTP/dell.server.net.if.health[{#IFNAME}],)=3'
                  name: 'Dell R820: Interface [{#IFNAME}]: Critical state'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'Please check the device for faults.'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: 2f68a365826948779303dccd91bf253a
                  expression: 'last(/DELL PowerEdge R820 by HTTP/dell.server.net.if.health[{#IFNAME}],)=2'
                  name: 'Dell R820: Interface [{#IFNAME}]: Warning state'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'Please check the device for warnings.'
                  dependencies:
                    - name: 'Dell R820: Interface [{#IFNAME}]: Critical state'
                      expression: 'last(/DELL PowerEdge R820 by HTTP/dell.server.net.if.health[{#IFNAME}],)=3'
                  tags:
                    - tag: scope
                      value: availability
            - uuid: 606f493ca932439098ae259d3104548a
              name: 'Interface [{#IFNAME}]: Speed'
              type: DEPENDENT
              key: 'dell.server.net.if.speed[{#IFNAME}]'
              units: bps
              description: 'The network port current link speed.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.linkSpeed
                - type: MULTIPLIER
                  parameters:
                    - '1000000'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: 'dell.server.net.if.get[{#IFNAME}]'
              tags:
                - tag: component
                  value: network
            - uuid: 288409760c3d4c72bf6219bb05f2fc56
              name: 'Interface [{#IFNAME}]: State'
              type: DEPENDENT
              key: 'dell.server.net.if.state[{#IFNAME}]'
              description: 'The known state of the Resource, for example, Enabled. Possible values: Enabled, Disabled, StandbyOffline, StandbySpare, InTest, Starting, Absent, UnavailableOffline, Deferring, Quiesced, Updating, Qualified.'
              valuemap:
                name: 'Redfish status state'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.state
                - type: JAVASCRIPT
                  parameters:
                    - |
                      const idx = {
                      	'Enabled': 1,
                      	'Disabled': 2,
                      	'Absent': 3,
                      	'Deferring': 4,
                      	'InTest': 5,
                      	'Quiesced': 6,
                      	'StandbyOffline': 7,
                      	'StandbySpare': 8,
                      	'Starting': 9,
                      	'UnavailableOffline': 10,
                      	'Updating': 11
                      };
                      
                      return typeof idx[value] === 'undefined' ? 0 : idx[value];
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: 'dell.server.net.if.get[{#IFNAME}]'
              tags:
                - tag: component
                  value: network
            - uuid: dabbf5d3e77b48e08653bc626905479a
              name: 'Interface [{#IFNAME}]: Link status'
              type: DEPENDENT
              key: 'dell.server.net.if.status[{#IFNAME}]'
              description: 'The status of the link between this port and its link partner. Possible values: Down, Up, null.'
              valuemap:
                name: 'Network interface status'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.linkStatus
                - type: JAVASCRIPT
                  parameters:
                    - |
                      const idx = {
                      	'null': 1,
                      	'Down': 2,
                      	'Up': 3,
                      };
                      
                      return typeof idx[value] === 'undefined' ? 0 : idx[value];
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: 'dell.server.net.if.get[{#IFNAME}]'
              tags:
                - tag: component
                  value: network
              trigger_prototypes:
                - uuid: 29836643e02f466298f610b4a4a6596c
                  expression: '{$DELL.HTTP.IFCONTROL:"{#IFNAME}"}=1 and (last(/DELL PowerEdge R820 by HTTP/dell.server.net.if.status[{#IFNAME}],)=2 and last(/DELL PowerEdge R820 by HTTP/dell.server.net.if.status[{#IFNAME}],#1)<>last(/DELL PowerEdge R820 by HTTP/dell.server.net.if.status[{#IFNAME}],#2))'
                  recovery_mode: RECOVERY_EXPRESSION
                  recovery_expression: 'last(/DELL PowerEdge R820 by HTTP/dell.server.net.if.status[{#IFNAME}],)=1 or {$DELL.HTTP.IFCONTROL:"{#IFNAME}"}=0'
                  name: 'Dell R820: Interface [{#IFNAME}]: Link down'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: |
                    This trigger expression works as follows:
                    1. It can be triggered if the operations status is Down (2).
                    2. `{$DELL.HTTP.IFCONTROL:"{#IFNAME}"}=1` - a user can redefine the context macro to "0", marking this interface as not important. No new trigger will be fired if this interface is Down (2).
                    3. `{TEMPLATE_NAME:METRIC.diff()}=1` - the trigger fires only if the operational status was up to (1) sometime before (so, does not fire for the "eternal off" interfaces.)
                    
                    WARNING: if closed manually - it will not fire again on the next poll because of `.diff`.
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: ab33e9a5cd6448eca97119bc6bf1e361
                  expression: '{$DELL.HTTP.IFCONTROL:"{#IFNAME}"}=1 and (last(/DELL PowerEdge R820 by HTTP/dell.server.net.if.status[{#IFNAME}],)<2 and last(/DELL PowerEdge R820 by HTTP/dell.server.net.if.status[{#IFNAME}],#1)<>last(/DELL PowerEdge R820 by HTTP/dell.server.net.if.status[{#IFNAME}],#2))'
                  recovery_mode: RECOVERY_EXPRESSION
                  recovery_expression: 'last(/DELL PowerEdge R820 by HTTP/dell.server.net.if.status[{#IFNAME}],)>=2 or {$DELL.HTTP.IFCONTROL:"{#IFNAME}"}=0'
                  name: 'Dell R820: Interface [{#IFNAME}]: Link status issue'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: |
                    This trigger expression works as follows:
                    1. It can be triggered if the operations status is Null (1) or Unknown (0).
                    2. `{$DELL.HTTP.IFCONTROL:"{#IFNAME}"}=1` - a user can redefine the context macro to "0", marking this interface as not important. No new trigger will be fired if this interface is Null (1) or Unknown (0).
                    3. `{TEMPLATE_NAME:METRIC.diff()}=1` - the trigger fires only if the operational status was up to (1) sometime before (so, does not fire for the "eternal off" interfaces.)
                    
                    WARNING: if closed manually - it will not fire again on the next poll because of `.diff`.
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: availability
          graph_prototypes:
            - uuid: 04c75b6bfaf14608a0845c313829f08f
              name: 'Dell R820: Interface [{#IFNAME}]: Speed'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'DELL PowerEdge R820 by HTTP'
                    key: 'dell.server.net.if.speed[{#IFNAME}]'
          master_item:
            key: dell.server.net.iface.get
          lld_macro_paths:
            - lld_macro: '{#IFNAME}'
              path: $.id
            - lld_macro: '{#ODATA}'
              path: $.path
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 6h
        - uuid: bace8989f0cb4c78ae29e97b3924252f
          name: 'Physical disk discovery'
          type: DEPENDENT
          key: dell.server.physicaldisk.discovery
          description: 'Discovery of physical disks.'
          item_prototypes:
            - uuid: 670b05a9f8e847ea9830d34361c3f0e2
              name: 'Physical disk [{#DISK_NAME}]: Get disk'
              type: SCRIPT
              key: 'dell.server.hw.physicaldisk.get[{#DISK_NAME}]'
              history: '0'
              value_type: TEXT
              params: |
                function validateZabbixParams(requiredParams, allParams) {
                	requiredParams.forEach(function (field) {
                		if (typeof allParams !== 'object' || typeof allParams[field] === 'undefined' || allParams[field] === '') {
                			throw 'Required param is not set: ' + field + '.';
                		}
                	});
                }
                
                function Dell(service, action, params) {
                	this.zabbixLogPrefix = '[ DELL ] [ ' + service + ' ] [ ' + action + ' ]';
                	this.request = new HttpRequest();
                
                	this.executeRequest = function (apiPath) {
                		this.request.addHeader('Authorization: Basic ' + btoa(params['user'] + ':' + params['password']));
                
                		if (params['http_proxy']) {
                			this.request.setProxy(params['http_proxy']);
                			Zabbix.log(4, this.zabbixLogPrefix + ' Using http proxy: ' + params['http_proxy']);
                		}
                
                		const response = this.request.get(params['url'] + apiPath);
                
                		this.request.clearHeader();
                
                		if (this.request.getStatus() === parseInt(params['http_status_code'])) {
                			return response;
                		} else {
                			Zabbix.log(3, this.zabbixLogPrefix + ' Unexpected HTTP response code: ' + this.request.getStatus());
                			throw 'Unexpected HTTP response code: ' + this.request.getStatus();
                		}
                	};
                
                	this.extractData = function (data, keys, skipParse) {
                		if (!skipParse) {
                			try {
                				data = JSON.parse(data);
                			} catch (error) {
                				Zabbix.log(3, this.zabbixLogPrefix + ' Could not parse the received JSON object: ' + data);
                				throw 'Could not parse received JSON object. See logs for more information.';
                			}	
                		}
                
                		if (Array.isArray(keys)) {
                			var returnBuffer = {};
                
                			for (keyIdx = 0, keysLength = keys.length; keyIdx < keysLength; keyIdx++) {
                				if (keys[keyIdx]['path'] === '@odata.id') {
                					returnBuffer[keys[keyIdx]['name']] = data[keys[keyIdx]['path']];
                				} else {
                					returnBuffer[keys[keyIdx]['name']] = this.parseJSON(data, keys[keyIdx]['path'].split('.'));
                				}
                			}
                
                			return returnBuffer;
                		} else if (typeof keys === 'object') {
                			return { [keys['name']]: this.parseJSON(data, keys['path'].split('.')) };
                		} else if (typeof keys === 'string') {
                			return this.parseJSON(data, keys.split('.'));
                		} else {
                			throw 'Unexpected key type';
                		}
                	};
                
                	this.parseJSON = function (data, jsonPath) {
                		for (var i = 0, args = jsonPath.length; i < args; i++) {
                			data = data[jsonPath[i]];
                		}
                
                		return data;
                	}
                }
                
                
                const params = JSON.parse(value);
                
                validateZabbixParams(['url', 'path', 'user', 'password', 'http_status_code'], params);
                var dell = new Dell('Disk', 'Get physical disk metrics', params);
                
                const keys = [
                	{
                		'name': 'health',
                		'path': 'Status.Health'
                	},
                	{
                		'name': 'sn',
                		'path': 'SerialNumber'
                	},
                	{
                		'name': 'model',
                		'path': 'Model'
                	},
                	{
                		'name': 'mediaType',
                		'path': 'MediaType'
                	},
                	{
                		'name': 'capacity',
                		'path': 'CapacityBytes'
                	}
                ];
                
                return JSON.stringify(dell.extractData(dell.executeRequest(params.path), keys));
              description: 'Returns the metrics of a physical disk.'
              timeout: '{$DELL.HTTP.REQUEST.TIMEOUT}'
              parameters:
                - name: http_proxy
                  value: '{$DELL.HTTP.PROXY}'
                - name: http_status_code
                  value: '{$DELL.HTTP.RETURN.CODE.OK}'
                - name: password
                  value: '{$DELL.HTTP.API.PASSWORD}'
                - name: path
                  value: '{#ODATA}'
                - name: url
                  value: '{$DELL.HTTP.API.URL}'
                - name: user
                  value: '{$DELL.HTTP.API.USER}'
              tags:
                - tag: component
                  value: physicaldisk
                - tag: component
                  value: raw
                - tag: component
                  value: storage
            - uuid: b28af532e0ae45f3ad0686d19883de17
              name: 'Physical disk [{#DISK_NAME}]: Media type'
              type: DEPENDENT
              key: 'dell.server.hw.physicaldisk.media_type[{#DISK_NAME}]'
              value_type: CHAR
              description: 'The type of media contained in this drive. Possible values: HDD, SSD, SMR, null.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.mediaType
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: 'dell.server.hw.physicaldisk.get[{#DISK_NAME}]'
              tags:
                - tag: component
                  value: physicaldisk
                - tag: component
                  value: storage
            - uuid: da824a525cbe42f99349edaf58152683
              name: 'Physical disk [{#DISK_NAME}]: Model name'
              type: DEPENDENT
              key: 'dell.server.hw.physicaldisk.model[{#DISK_NAME}]'
              value_type: CHAR
              description: 'The model number of the drive.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.model
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: 'dell.server.hw.physicaldisk.get[{#DISK_NAME}]'
              tags:
                - tag: component
                  value: physicaldisk
                - tag: component
                  value: storage
            - uuid: 88216fac6b85454ea9090de8b422387b
              name: 'Physical disk [{#DISK_NAME}]: Serial number'
              type: DEPENDENT
              key: 'dell.server.hw.physicaldisk.serialnumber[{#DISK_NAME}]'
              value_type: CHAR
              description: 'The serial number of this drive.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.sn
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: 'dell.server.hw.physicaldisk.get[{#DISK_NAME}]'
              tags:
                - tag: component
                  value: physicaldisk
                - tag: component
                  value: storage
              trigger_prototypes:
                - uuid: abc54d3b7d044d7cb58ae291723f7a50
                  expression: 'last(/DELL PowerEdge R820 by HTTP/dell.server.hw.physicaldisk.serialnumber[{#DISK_NAME}],#1)<>last(/DELL PowerEdge R820 by HTTP/dell.server.hw.physicaldisk.serialnumber[{#DISK_NAME}],#2) and length(last(/DELL PowerEdge R820 by HTTP/dell.server.hw.physicaldisk.serialnumber[{#DISK_NAME}]))>0'
                  name: 'Dell R820: Physical disk [{#DISK_NAME}] has been replaced'
                  event_name: 'Dell R820: [{#DISK_NAME}] has been replaced (new serial number received)'
                  priority: INFO
                  description: '[{#DISK_NAME}] serial number has changed. Acknowledge to close the problem manually.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: bec5cacf8b964b7bb4f2c1761c1d1fbb
              name: 'Physical disk [{#DISK_NAME}]: Size'
              type: DEPENDENT
              key: 'dell.server.hw.physicaldisk.size[{#DISK_NAME}]'
              trends: '0'
              units: B
              description: 'The size, in bytes, of this drive.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.capacity
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: 'dell.server.hw.physicaldisk.get[{#DISK_NAME}]'
              tags:
                - tag: component
                  value: physicaldisk
                - tag: component
                  value: storage
            - uuid: 7fe8e6eccc4f4e76bded3c5f698164f3
              name: 'Physical disk [{#DISK_NAME}]: Status'
              type: DEPENDENT
              key: 'dell.server.hw.physicaldisk.status[{#DISK_NAME}]'
              trends: '0'
              description: 'The status of the job. Possible values: OK, Warning, Critical.'
              valuemap:
                name: 'Redfish status health'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.health
                - type: JAVASCRIPT
                  parameters:
                    - |
                      const idx = {
                      	'OK': 1,
                      	'Warning': 2,
                      	'Critical': 3,
                      };
                      
                      return typeof idx[value] === 'undefined' ? 0 : idx[value];
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: 'dell.server.hw.physicaldisk.get[{#DISK_NAME}]'
              tags:
                - tag: component
                  value: physicaldisk
                - tag: component
                  value: storage
              trigger_prototypes:
                - uuid: 4fe34ae6c61a4b18b86a60d6ed309b40
                  expression: 'last(/DELL PowerEdge R820 by HTTP/dell.server.hw.physicaldisk.status[{#DISK_NAME}],)=3'
                  name: 'Dell R820: Physical disk [{#DISK_NAME}]: Critical state'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'Please check the device for faults.'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: fc7eea49256c4b748a22c36c66b00026
                  expression: 'last(/DELL PowerEdge R820 by HTTP/dell.server.hw.physicaldisk.status[{#DISK_NAME}],)=2'
                  name: 'Dell R820: Physical disk [{#DISK_NAME}]: Warning state'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'Please check the device for warnings.'
                  dependencies:
                    - name: 'Dell R820: Physical disk [{#DISK_NAME}]: Critical state'
                      expression: 'last(/DELL PowerEdge R820 by HTTP/dell.server.hw.physicaldisk.status[{#DISK_NAME}],)=3'
                  tags:
                    - tag: scope
                      value: availability
          graph_prototypes:
            - uuid: 7f948b79dcd84f9798a77c9643cf87c9
              name: 'Dell R820: Physical disk [{#DISK_NAME}]: Size'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'DELL PowerEdge R820 by HTTP'
                    key: 'dell.server.hw.physicaldisk.size[{#DISK_NAME}]'
          master_item:
            key: dell.server.disks.get
          lld_macro_paths:
            - lld_macro: '{#DISK_NAME}'
              path: $.name
            - lld_macro: '{#ODATA}'
              path: $.path
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.physicalDisks
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 6h
        - uuid: 491a0445cf254e94a875546569dc99c8
          name: 'PSU discovery'
          type: DEPENDENT
          key: dell.server.psu.discovery
          description: 'Discovery of PSU sensors.'
          item_prototypes:
            - uuid: a8a9fca249894612a8b07d8ed0129ab0
              name: 'Power supply [{#SENSOR_NAME}]: Current sensor status'
              type: DEPENDENT
              key: 'dell.server.sensor.psu.current.status[{#SENSOR_NAME}]'
              trends: '0'
              description: 'The status of the job. Possible values: OK, Warning, Critical.'
              valuemap:
                name: 'Redfish status health'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.current.health
                - type: JAVASCRIPT
                  parameters:
                    - |
                      const idx = {
                      	'OK': 1,
                      	'Warning': 2,
                      	'Critical': 3,
                      };
                      
                      return typeof idx[value] === 'undefined' ? 0 : idx[value];
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: 'dell.server.sensor.psu.get[{#SENSOR_NAME}]'
              tags:
                - tag: component
                  value: psu
              trigger_prototypes:
                - uuid: 4f0515fb0dfd46c7b3685a7b3ecbb81d
                  expression: 'last(/DELL PowerEdge R820 by HTTP/dell.server.sensor.psu.current.status[{#SENSOR_NAME}],)=3'
                  name: 'Dell R820: Power supply [{#SENSOR_NAME}]: Current sensor: Critical state'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'Please check the device for faults.'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: f6fa16c7a2c7455b9acde6539ffec62c
                  expression: 'last(/DELL PowerEdge R820 by HTTP/dell.server.sensor.psu.current.status[{#SENSOR_NAME}],)=2'
                  name: 'Dell R820: Power supply [{#SENSOR_NAME}]: Current sensor: Warning state'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'Please check the device for warnings.'
                  dependencies:
                    - name: 'Dell R820: Power supply [{#SENSOR_NAME}]: Current sensor: Critical state'
                      expression: 'last(/DELL PowerEdge R820 by HTTP/dell.server.sensor.psu.current.status[{#SENSOR_NAME}],)=3'
                  tags:
                    - tag: scope
                      value: availability
            - uuid: e3ac9503e64b4c149e1bec0a69101102
              name: 'Power supply [{#SENSOR_NAME}]: Current'
              type: DEPENDENT
              key: 'dell.server.sensor.psu.current[{#SENSOR_NAME}]'
              value_type: FLOAT
              units: A
              description: 'Sensor value.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.current.reading
              master_item:
                key: 'dell.server.sensor.psu.get[{#SENSOR_NAME}]'
              tags:
                - tag: component
                  value: current
                - tag: component
                  value: psu
            - uuid: 2e57438cee814c6dba1fe244e85b50af
              name: 'Power supply [{#SENSOR_NAME}]: Get sensor'
              type: DEPENDENT
              key: 'dell.server.sensor.psu.get[{#SENSOR_NAME}]'
              history: '0'
              value_type: TEXT
              description: 'Returns the metrics of a sensor.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.psu.[?(@.name == ''{#SENSOR_NAME}'')].first()'
              master_item:
                key: dell.server.sensors.get
              tags:
                - tag: component
                  value: psu
                - tag: component
                  value: raw
            - uuid: c733c7f6f35e40618037aa50ba98f294
              name: 'Power supply [{#SENSOR_NAME}]: Voltage sensor status'
              type: DEPENDENT
              key: 'dell.server.sensor.psu.voltage.status[{#SENSOR_NAME}]'
              trends: '0'
              description: 'The status of the job. Possible values: OK, Warning, Critical.'
              valuemap:
                name: 'Redfish status health'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.voltage.health
                - type: JAVASCRIPT
                  parameters:
                    - |
                      const idx = {
                      	'OK': 1,
                      	'Warning': 2,
                      	'Critical': 3,
                      };
                      
                      return typeof idx[value] === 'undefined' ? 0 : idx[value];
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: 'dell.server.sensor.psu.get[{#SENSOR_NAME}]'
              tags:
                - tag: component
                  value: psu
              trigger_prototypes:
                - uuid: 1602fd8e39654e5fb06cdf958a47cc7c
                  expression: 'last(/DELL PowerEdge R820 by HTTP/dell.server.sensor.psu.voltage.status[{#SENSOR_NAME}],)=3'
                  name: 'Dell R820: Power supply [{#SENSOR_NAME}]: Voltage sensor: Critical state'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'Please check the device for faults.'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: d7a5a00dc1794dcfbd4dba41cc0ab9e2
                  expression: 'last(/DELL PowerEdge R820 by HTTP/dell.server.sensor.psu.voltage.status[{#SENSOR_NAME}],)=2'
                  name: 'Dell R820: Power supply [{#SENSOR_NAME}]: Voltage sensor: Warning state'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'Please check the device for warnings.'
                  dependencies:
                    - name: 'Dell R820: Power supply [{#SENSOR_NAME}]: Voltage sensor: Critical state'
                      expression: 'last(/DELL PowerEdge R820 by HTTP/dell.server.sensor.psu.voltage.status[{#SENSOR_NAME}],)=3'
                  tags:
                    - tag: scope
                      value: availability
            - uuid: beebdfb94e564585a2a031828bc0ad28
              name: 'Power supply [{#SENSOR_NAME}]: Voltage'
              type: DEPENDENT
              key: 'dell.server.sensor.psu.voltage[{#SENSOR_NAME}]'
              value_type: FLOAT
              units: V
              description: 'Sensor value.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.voltage.reading
              master_item:
                key: 'dell.server.sensor.psu.get[{#SENSOR_NAME}]'
              tags:
                - tag: component
                  value: psu
                - tag: component
                  value: voltage
          graph_prototypes:
            - uuid: 79887275746b4d7686e7204e0be5f4e2
              name: 'Dell R820: Power supply [{#SENSOR_NAME}]: Current'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'DELL PowerEdge R820 by HTTP'
                    key: 'dell.server.sensor.psu.current[{#SENSOR_NAME}]'
            - uuid: 0687e35b0de04d9d87ade4b4c9e05ff6
              name: 'Dell R820: Power supply [{#SENSOR_NAME}]: Voltage'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'DELL PowerEdge R820 by HTTP'
                    key: 'dell.server.sensor.psu.voltage[{#SENSOR_NAME}]'
          master_item:
            key: dell.server.sensors.get
          lld_macro_paths:
            - lld_macro: '{#SENSOR_NAME}'
              path: $.name
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.psu
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 6h
        - uuid: 12273df317b64c15b62f5e1fe8a11c13
          name: 'Temperature discovery'
          type: DEPENDENT
          key: dell.server.temp.discovery
          description: 'Discovery of temperature sensors.'
          item_prototypes:
            - uuid: c011ede250b34a08ba7b8be1e5116592
              name: 'Probe [{#SENSOR_NAME}]: Get sensor'
              type: DEPENDENT
              key: 'dell.server.sensor.temp.get[{#SENSOR_NAME}]'
              history: '0'
              value_type: TEXT
              description: 'Returns the metrics of a sensor.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.temperature.[?(@.id == ''{#ID}'')].first()'
              master_item:
                key: dell.server.sensors.get
              tags:
                - tag: component
                  value: raw
                - tag: component
                  value: temperature
            - uuid: 2addb92ba4494c5e9372d13123de9b90
              name: 'Probe [{#SENSOR_NAME}]: Status'
              type: DEPENDENT
              key: 'dell.server.sensor.temp.status[{#SENSOR_NAME}]'
              trends: '0'
              description: 'The status of the job. Possible values: OK, Warning, Critical.'
              valuemap:
                name: 'Redfish status health'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.health
                - type: JAVASCRIPT
                  parameters:
                    - |
                      const idx = {
                      	'OK': 1,
                      	'Warning': 2,
                      	'Critical': 3,
                      };
                      
                      return typeof idx[value] === 'undefined' ? 0 : idx[value];
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: 'dell.server.sensor.temp.get[{#SENSOR_NAME}]'
              tags:
                - tag: component
                  value: temperature
              trigger_prototypes:
                - uuid: e7cb237f1bdd48dfb1d4dad059a192ab
                  expression: 'last(/DELL PowerEdge R820 by HTTP/dell.server.sensor.temp.status[{#SENSOR_NAME}],)=3'
                  name: 'Dell R820: Probe [{#SENSOR_NAME}]: Critical state'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'Please check the device for faults.'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: 8edc7d146dd3428ea41de5f4c6de3299
                  expression: 'last(/DELL PowerEdge R820 by HTTP/dell.server.sensor.temp.status[{#SENSOR_NAME}],)=2'
                  name: 'Dell R820: Probe [{#SENSOR_NAME}]: Warning state'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'Please check the device for warnings.'
                  dependencies:
                    - name: 'Dell R820: Probe [{#SENSOR_NAME}]: Critical state'
                      expression: 'last(/DELL PowerEdge R820 by HTTP/dell.server.sensor.temp.status[{#SENSOR_NAME}],)=3'
                  tags:
                    - tag: scope
                      value: availability
            - uuid: efc408f9598044aa88c70a98b5cc4462
              name: 'Probe [{#SENSOR_NAME}]: Value'
              type: DEPENDENT
              key: 'dell.server.sensor.temp.value[{#SENSOR_NAME}]'
              value_type: FLOAT
              units: °C
              description: 'Sensor value.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.reading
              master_item:
                key: 'dell.server.sensor.temp.get[{#SENSOR_NAME}]'
              tags:
                - tag: component
                  value: temperature
          graph_prototypes:
            - uuid: 1575af71deae4faaacf2927b8a06df80
              name: 'Dell R820: Probe [{#SENSOR_NAME}]: Value'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'DELL PowerEdge R820 by HTTP'
                    key: 'dell.server.sensor.temp.value[{#SENSOR_NAME}]'
          master_item:
            key: dell.server.sensors.get
          lld_macro_paths:
            - lld_macro: '{#ID}'
              path: $.id
            - lld_macro: '{#SENSOR_NAME}'
              path: $.name
            - lld_macro: '{#TYPE}'
              path: $.type
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.temperature
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 6h
        - uuid: bbc9622129f24600838a85f965bac854
          name: 'Virtual disk discovery'
          type: DEPENDENT
          key: dell.server.virtualdisk.discovery
          description: 'Discovery of virtual disks.'
          item_prototypes:
            - uuid: 7e81a110ef36478b86cec8ff56700755
              name: 'Virtual disk [{#DISK_NAME}]: Get disk'
              type: SCRIPT
              key: 'dell.server.hw.virtualdisk.get[{#DISK_NAME}]'
              history: '0'
              value_type: TEXT
              params: |
                function validateZabbixParams(requiredParams, allParams) {
                	requiredParams.forEach(function (field) {
                		if (typeof allParams !== 'object' || typeof allParams[field] === 'undefined' || allParams[field] === '') {
                			throw 'Required param is not set: ' + field + '.';
                		}
                	});
                }
                
                function Dell(service, action, params) {
                	this.zabbixLogPrefix = '[ DELL ] [ ' + service + ' ] [ ' + action + ' ]';
                	this.request = new HttpRequest();
                
                	this.executeRequest = function (apiPath) {
                		this.request.addHeader('Authorization: Basic ' + btoa(params['user'] + ':' + params['password']));
                
                		if (params['http_proxy']) {
                			this.request.setProxy(params['http_proxy']);
                			Zabbix.log(4, this.zabbixLogPrefix + ' Using http proxy: ' + params['http_proxy']);
                		}
                
                		const response = this.request.get(params['url'] + apiPath);
                
                		this.request.clearHeader();
                
                		if (this.request.getStatus() === parseInt(params['http_status_code'])) {
                			return response;
                		} else {
                			Zabbix.log(3, this.zabbixLogPrefix + ' Unexpected HTTP response code: ' + this.request.getStatus());
                			throw 'Unexpected HTTP response code: ' + this.request.getStatus();
                		}
                	};
                
                	this.extractData = function (data, keys, skipParse) {
                		if (!skipParse) {
                			try {
                				data = JSON.parse(data);
                			} catch (error) {
                				Zabbix.log(3, this.zabbixLogPrefix + ' Could not parse the received JSON object: ' + data);
                				throw 'Could not parse received JSON object. See logs for more information.';
                			}	
                		}
                
                		if (Array.isArray(keys)) {
                			var returnBuffer = {};
                
                			for (keyIdx = 0, keysLength = keys.length; keyIdx < keysLength; keyIdx++) {
                				if (keys[keyIdx]['path'] === '@odata.id') {
                					returnBuffer[keys[keyIdx]['name']] = data[keys[keyIdx]['path']];
                				} else {
                					returnBuffer[keys[keyIdx]['name']] = this.parseJSON(data, keys[keyIdx]['path'].split('.'));
                				}
                			}
                
                			return returnBuffer;
                		} else if (typeof keys === 'object') {
                			return { [keys['name']]: this.parseJSON(data, keys['path'].split('.')) };
                		} else if (typeof keys === 'string') {
                			return this.parseJSON(data, keys.split('.'));
                		} else {
                			throw 'Unexpected key type';
                		}
                	};
                
                	this.parseJSON = function (data, jsonPath) {
                		for (var i = 0, args = jsonPath.length; i < args; i++) {
                			data = data[jsonPath[i]];
                		}
                
                		return data;
                	}
                }
                
                
                const params = JSON.parse(value);
                
                validateZabbixParams(['url', 'path', 'user', 'password', 'http_status_code'], params);
                var dell = new Dell('Disk', 'Get virtual disk metrics', params);
                
                const keys = [
                	{
                		'name': 'health',
                		'path': 'Status.Health'
                	},
                	{
                		'name': 'capacity',
                		'path': 'CapacityBytes'
                	},
                	{
                		'name': 'status',
                		'path': 'Status.State'
                	},
                	{
                		'name': 'raidStatus',
                		'path': 'Oem.Dell.DellVirtualDisk.RaidStatus'
                	},
                	{
                		'name': 'readCachePolicy',
                		'path': 'Oem.Dell.DellVirtualDisk.ReadCachePolicy'
                	},
                	{
                		'name': 'writeCachePolicy',
                		'path': 'Oem.Dell.DellVirtualDisk.WriteCachePolicy'
                	}
                ];
                
                return JSON.stringify(dell.extractData(dell.executeRequest(params.path), keys));
              description: 'Returns the metrics of a virtual disk.'
              timeout: '{$DELL.HTTP.REQUEST.TIMEOUT}'
              parameters:
                - name: http_proxy
                  value: '{$DELL.HTTP.PROXY}'
                - name: http_status_code
                  value: '{$DELL.HTTP.RETURN.CODE.OK}'
                - name: password
                  value: '{$DELL.HTTP.API.PASSWORD}'
                - name: path
                  value: '{#ODATA}'
                - name: url
                  value: '{$DELL.HTTP.API.URL}'
                - name: user
                  value: '{$DELL.HTTP.API.USER}'
              tags:
                - tag: component
                  value: raw
                - tag: component
                  value: virtualdisk
            - uuid: 390e9960559a4b9eb6460e6af7940e7b
              name: 'Virtual disk [{#DISK_NAME}]: RAID status'
              type: DEPENDENT
              key: 'dell.server.hw.virtualdisk.raid_status[{#DISK_NAME}]'
              description: 'This property represents the RAID specific status. Possible values: Blocked, Degraded, Failed, Foreign, Offline, Online, Ready, Unknown, null.'
              valuemap:
                name: 'Virtual disk RAID status'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.raidStatus
                - type: JAVASCRIPT
                  parameters:
                    - |
                      const idx = {
                      	'Blocked': 1,
                      	'Degraded': 2,
                      	'Failed': 3,
                      	'Foreign': 4,
                      	'Offline': 5,
                      	'Unknown': 6,
                      	'null': 7,
                      	'Ready': 8,
                      	'Online': 9,
                      };
                      
                      return typeof idx[value] === 'undefined' ? 0 : idx[value];
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: 'dell.server.hw.virtualdisk.get[{#DISK_NAME}]'
              tags:
                - tag: component
                  value: storage
                - tag: component
                  value: virtualdisk
              trigger_prototypes:
                - uuid: 0fb5bb942b2c499ca4a7a14a2f81866f
                  expression: 'last(/DELL PowerEdge R820 by HTTP/dell.server.hw.virtualdisk.raid_status[{#DISK_NAME}],)<8'
                  name: 'Dell R820: Virtual disk [{#DISK_NAME}]: RAID status not OK'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'Please check the disk for faults.'
                  tags:
                    - tag: scope
                      value: availability
            - uuid: a7cfd4be1b294e79b483735b8352d949
              name: 'Virtual disk [{#DISK_NAME}]: Read policy'
              type: DEPENDENT
              key: 'dell.server.hw.virtualdisk.read_policy[{#DISK_NAME}]'
              description: 'Indicates the read cache policy setting for the Volume. Possible values: ReadAhead, NoReadAhead, AdaptiveReadAhead.'
              valuemap:
                name: 'Virtual disk read policy'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.readCachePolicy
                - type: JAVASCRIPT
                  parameters:
                    - |
                      const idx = {
                      	'NoReadAhead': 1,
                      	'ReadAhead': 2,
                      	'AdaptiveReadAhead': 3,
                      };
                      
                      return typeof idx[value] === 'undefined' ? 0 : idx[value];
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: 'dell.server.hw.virtualdisk.get[{#DISK_NAME}]'
              tags:
                - tag: component
                  value: storage
                - tag: component
                  value: virtualdisk
            - uuid: c02af80164794e95816817510097619d
              name: 'Virtual disk [{#DISK_NAME}]: Size'
              type: DEPENDENT
              key: 'dell.server.hw.virtualdisk.size[{#DISK_NAME}]'
              trends: '0'
              units: B
              description: 'The size in bytes of this Volume.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.capacity
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: 'dell.server.hw.virtualdisk.get[{#DISK_NAME}]'
              tags:
                - tag: component
                  value: storage
                - tag: component
                  value: virtualdisk
            - uuid: ea61949505a7409a8f4efff97ae67b57
              name: 'Virtual disk [{#DISK_NAME}]: Current state'
              type: DEPENDENT
              key: 'dell.server.hw.virtualdisk.state[{#DISK_NAME}]'
              description: 'The known state of the Resource, for example, Enabled. Possible values: Enabled, Disabled, StandbyOffline, StandbySpare, InTest, Starting, Absent, UnavailableOffline, Deferring, Quiesced, Updating, Qualified.'
              valuemap:
                name: 'Redfish status state'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.status
                - type: JAVASCRIPT
                  parameters:
                    - |
                      const idx = {
                      	'Enabled': 1,
                      	'Disabled': 2,
                      	'Absent': 3,
                      	'Deferring': 4,
                      	'InTest': 5,
                      	'Quiesced': 6,
                      	'StandbyOffline': 7,
                      	'StandbySpare': 8,
                      	'Starting': 9,
                      	'UnavailableOffline': 10,
                      	'Updating': 11
                      };
                      
                      return typeof idx[value] === 'undefined' ? 0 : idx[value];
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: 'dell.server.hw.virtualdisk.get[{#DISK_NAME}]'
              tags:
                - tag: component
                  value: storage
                - tag: component
                  value: virtualdisk
            - uuid: 747677c63d7e4cfca3420a14c862d9b1
              name: 'Virtual disk [{#DISK_NAME}]: Status'
              type: DEPENDENT
              key: 'dell.server.hw.virtualdisk.status[{#DISK_NAME}]'
              description: 'The status of the job. Possible values: OK, Warning, Critical.'
              valuemap:
                name: 'Redfish status health'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.health
                - type: JAVASCRIPT
                  parameters:
                    - |
                      const idx = {
                      	'OK': 1,
                      	'Warning': 2,
                      	'Critical': 3,
                      };
                      
                      return typeof idx[value] === 'undefined' ? 0 : idx[value];
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: 'dell.server.hw.virtualdisk.get[{#DISK_NAME}]'
              tags:
                - tag: component
                  value: storage
                - tag: component
                  value: virtualdisk
              trigger_prototypes:
                - uuid: f81719285f6f41a19603b1f29439a701
                  expression: 'last(/DELL PowerEdge R820 by HTTP/dell.server.hw.virtualdisk.status[{#DISK_NAME}],)=3'
                  name: 'Dell R820: Virtual disk [{#DISK_NAME}]: Critical state'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'Please check the device for faults.'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: fb620d2cfe0045ee83c57f9699bf25f3
                  expression: 'last(/DELL PowerEdge R820 by HTTP/dell.server.hw.virtualdisk.status[{#DISK_NAME}],)=2'
                  name: 'Dell R820: Virtual disk [{#DISK_NAME}]: Warning state'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'Please check the device for warnings.'
                  dependencies:
                    - name: 'Dell R820: Virtual disk [{#DISK_NAME}]: Critical state'
                      expression: 'last(/DELL PowerEdge R820 by HTTP/dell.server.hw.virtualdisk.status[{#DISK_NAME}],)=3'
                  tags:
                    - tag: scope
                      value: availability
            - uuid: d5e5cf0f065f4f5ba5f0edbf3e222417
              name: 'Virtual disk [{#DISK_NAME}]: Write policy'
              type: DEPENDENT
              key: 'dell.server.hw.virtualdisk.write_policy[{#DISK_NAME}]'
              description: 'Indicates the write cache policy setting for the Volume. Possible values: WriteThrough, WriteBack, ProtectedWriteBack, UnprotectedWriteBack.'
              valuemap:
                name: 'Virtual disk write policy'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.writeCachePolicy
                - type: JAVASCRIPT
                  parameters:
                    - |
                      const idx = {
                      	'WriteThrough': 1,
                      	'WriteBack': 2,
                      	'ProtectedWriteBack': 3,
                      	'UnprotectedWriteBack': 4,
                      };
                      
                      return typeof idx[value] === 'undefined' ? 0 : idx[value];
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: 'dell.server.hw.virtualdisk.get[{#DISK_NAME}]'
              tags:
                - tag: component
                  value: storage
                - tag: component
                  value: virtualdisk
          graph_prototypes:
            - uuid: 759e99496b4644ce9606d4c9cc5f7b16
              name: 'Dell R820: Virtual disk [{#DISK_NAME}]: Size'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'DELL PowerEdge R820 by HTTP'
                    key: 'dell.server.hw.virtualdisk.size[{#DISK_NAME}]'
          master_item:
            key: dell.server.disks.get
          lld_macro_paths:
            - lld_macro: '{#DISK_NAME}'
              path: $.name
            - lld_macro: '{#ODATA}'
              path: $.path
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.virtualDisks
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 6h
      tags:
        - tag: class
          value: hardware
        - tag: subclass
          value: server
        - tag: target
          value: dell
        - tag: target
          value: dellpoweredge
      macros:
        - macro: '{$DELL.HTTP.API.PASSWORD}'
          type: SECRET_TEXT
          description: 'The Dell iDRAC user password.'
          config:
            type: TEXT
            priority: '3'
            label: 'iDRAC password'
            description: 'The Dell iDRAC user password.'
            required: 'YES'
        - macro: '{$DELL.HTTP.API.URL}'
          description: 'The Dell iDRAC Redfish API URL in the format `<scheme>://<host>:<port>`.'
          config:
            type: TEXT
            priority: '1'
            label: 'iDRAC API URL'
            description: 'The Dell iDRAC Redfish API URL in the format `<scheme>://<host>:<port>`.'
            required: 'YES'
        - macro: '{$DELL.HTTP.API.USER}'
          description: 'The Dell iDRAC username.'
          config:
            type: TEXT
            priority: '2'
            label: 'iDRAC username'
            description: 'The Dell iDRAC username.'
            required: 'YES'
        - macro: '{$DELL.HTTP.CPU.UTIL.HIGH}'
          value: '90'
          description: 'Sets the percentage threshold for creating a "high" severity event about CPU utilization.'
          config:
            type: TEXT
            priority: '8'
            section_name: Thresholds
            label: 'CPU usage high (%)'
            description: 'Sets the percentage threshold for creating a "high" severity event about CPU utilization. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$DELL.HTTP.CPU.UTIL.WARN}'
          value: '75'
          description: 'Sets the percentage threshold for creating a "warning" severity event about CPU utilization.'
          config:
            type: TEXT
            priority: '9'
            section_name: Thresholds
            label: 'CPU usage warning (%)'
            description: 'Sets the percentage threshold for creating a "warning" severity event about CPU utilization. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$DELL.HTTP.IFCONTROL}'
          value: '1'
          description: 'Link status trigger will be fired only for interfaces that have the context macro equal to "1".'
          config:
            type: TEXT
            priority: '7'
            section_name: Other
            label: 'Link status trigger enabled'
            description: 'Link status trigger will be fired only for interfaces that have the context macro equal to "1".'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$DELL.HTTP.IO.UTIL.HIGH}'
          value: '90'
          description: 'Sets the percentage threshold for creating a "high" severity event about IO utilization.'
          config:
            type: TEXT
            priority: '12'
            section_name: Thresholds
            label: 'IO usage high (%)'
            description: 'Sets the percentage threshold for creating a "high" severity event about IO utilization. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$DELL.HTTP.IO.UTIL.WARN}'
          value: '75'
          description: 'Sets the percentage threshold for creating a "warning" severity event about IO utilization.'
          config:
            type: TEXT
            priority: '13'
            section_name: Thresholds
            label: 'IO usage warning (%)'
            description: 'Sets the percentage threshold for creating a "warning" severity event about IO utilization. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$DELL.HTTP.MEM.UTIL.HIGH}'
          value: '90'
          description: 'Sets the percentage threshold for creating a "high" severity event about memory utilization.'
          config:
            type: TEXT
            priority: '10'
            section_name: Thresholds
            label: 'Memory usage high (%)'
            description: 'Sets the percentage threshold for creating a "high" severity event about memory utilization. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$DELL.HTTP.MEM.UTIL.WARN}'
          value: '75'
          description: 'Sets the percentage threshold for creating a "warning" severity event about memory utilization.'
          config:
            type: TEXT
            priority: '11'
            section_name: Thresholds
            label: 'Memory usage warning (%)'
            description: 'Sets the percentage threshold for creating a "warning" severity event about memory utilization. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$DELL.HTTP.PROXY}'
          description: 'Set an HTTP proxy for Redfish API requests if needed.'
          config:
            type: TEXT
            priority: '4'
            section_name: Other
            label: 'HTTP proxy'
            description: 'Set an HTTP proxy for Redfish API requests if needed.'
        - macro: '{$DELL.HTTP.REQUEST.TIMEOUT}'
          value: 10s
          description: 'Set the timeout for HTTP requests.'
          config:
            type: TEXT
            priority: '6'
            section_name: Other
            label: 'HTTP timeout'
            description: 'Set the timeout for HTTP requests.'
        - macro: '{$DELL.HTTP.RETURN.CODE.OK}'
          value: '200'
          description: 'Set the HTTP return code that represents an OK response from the API. The default is "200", but can vary, for example, if a proxy is used.'
          config:
            type: TEXT
            priority: '5'
            section_name: Other
            label: 'HTTP OK code'
            description: 'Set the HTTP return code that represents an OK response from the API. The default is "200", but can vary, for example, if a proxy is used.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$DELL.HTTP.SYS.UTIL.HIGH}'
          value: '90'
          description: 'Sets the percentage threshold for creating a "high" severity event about SYS utilization.'
          config:
            type: TEXT
            priority: '14'
            section_name: Thresholds
            label: 'SYS usage high (%)'
            description: 'Sets the percentage threshold for creating a "high" severity event about SYS utilization. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$DELL.HTTP.SYS.UTIL.WARN}'
          value: '75'
          description: 'Sets the percentage threshold for creating a "warning" severity event about SYS utilization.'
          config:
            type: TEXT
            priority: '15'
            section_name: Thresholds
            label: 'SYS usage warning (%)'
            description: 'Sets the percentage threshold for creating a "warning" severity event about SYS utilization. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
      dashboards:
        - uuid: a257ca606b194b4d848997f36e39a320
          name: Overview
          pages:
            - name: Overview
              display_period: '30'
              widgets:
                - type: gauge
                  name: 'CPU utilization'
                  width: '18'
                  height: '3'
                  hide_header: 'YES'
                  fields:
                    - type: STRING
                      name: bg_color
                      value: 6C00D9
                    - type: STRING
                      name: description
                      value: CPU
                    - type: STRING
                      name: desc_color
                      value: FFFFFF
                    - type: INTEGER
                      name: desc_v_pos
                      value: '0'
                    - type: STRING
                      name: empty_color
                      value: 5000A1
                    - type: ITEM
                      name: itemid.0
                      value:
                        host: 'DELL PowerEdge R820 by HTTP'
                        key: dell.server.util.cpu
                    - type: INTEGER
                      name: rf_rate
                      value: '30'
                    - type: INTEGER
                      name: show.0
                      value: '2'
                    - type: INTEGER
                      name: show.1
                      value: '1'
                    - type: INTEGER
                      name: show.2
                      value: '5'
                    - type: STRING
                      name: units
                      value: '%'
                    - type: INTEGER
                      name: units_bold
                      value: '1'
                    - type: STRING
                      name: units_color
                      value: FFFFFF
                    - type: STRING
                      name: value_arc_color
                      value: FFFFFF
                    - type: INTEGER
                      name: value_arc_size
                      value: '35'
                    - type: INTEGER
                      name: value_bold
                      value: '1'
                    - type: STRING
                      name: value_color
                      value: FFFFFF
                - type: gauge
                  name: 'Memory utilization'
                  'y': '3'
                  width: '18'
                  height: '3'
                  hide_header: 'YES'
                  fields:
                    - type: STRING
                      name: bg_color
                      value: 6C00D9
                    - type: STRING
                      name: description
                      value: MEM
                    - type: STRING
                      name: desc_color
                      value: FFFFFF
                    - type: INTEGER
                      name: desc_v_pos
                      value: '0'
                    - type: STRING
                      name: empty_color
                      value: 5000A1
                    - type: ITEM
                      name: itemid.0
                      value:
                        host: 'DELL PowerEdge R820 by HTTP'
                        key: dell.server.util.mem
                    - type: INTEGER
                      name: rf_rate
                      value: '30'
                    - type: INTEGER
                      name: show.0
                      value: '2'
                    - type: INTEGER
                      name: show.1
                      value: '1'
                    - type: INTEGER
                      name: show.2
                      value: '5'
                    - type: STRING
                      name: units
                      value: '%'
                    - type: INTEGER
                      name: units_bold
                      value: '1'
                    - type: STRING
                      name: units_color
                      value: FFFFFF
                    - type: STRING
                      name: value_arc_color
                      value: FFFFFF
                    - type: INTEGER
                      name: value_arc_size
                      value: '35'
                    - type: INTEGER
                      name: value_bold
                      value: '1'
                    - type: STRING
                      name: value_color
                      value: FFFFFF
                - type: gauge
                  name: 'I/O utilization'
                  'y': '6'
                  width: '18'
                  height: '3'
                  hide_header: 'YES'
                  fields:
                    - type: STRING
                      name: bg_color
                      value: 6C00D9
                    - type: STRING
                      name: description
                      value: I/O
                    - type: STRING
                      name: desc_color
                      value: FFFFFF
                    - type: INTEGER
                      name: desc_v_pos
                      value: '0'
                    - type: STRING
                      name: empty_color
                      value: 5000A1
                    - type: ITEM
                      name: itemid.0
                      value:
                        host: 'DELL PowerEdge R820 by HTTP'
                        key: dell.server.util.io
                    - type: INTEGER
                      name: rf_rate
                      value: '30'
                    - type: INTEGER
                      name: show.0
                      value: '2'
                    - type: INTEGER
                      name: show.1
                      value: '1'
                    - type: INTEGER
                      name: show.2
                      value: '5'
                    - type: STRING
                      name: units
                      value: '%'
                    - type: INTEGER
                      name: units_bold
                      value: '1'
                    - type: STRING
                      name: units_color
                      value: FFFFFF
                    - type: STRING
                      name: value_arc_color
                      value: FFFFFF
                    - type: INTEGER
                      name: value_arc_size
                      value: '35'
                    - type: INTEGER
                      name: value_bold
                      value: '1'
                    - type: STRING
                      name: value_color
                      value: FFFFFF
                - type: gauge
                  name: 'SYS utilization'
                  'y': '9'
                  width: '18'
                  height: '3'
                  hide_header: 'YES'
                  fields:
                    - type: STRING
                      name: bg_color
                      value: 6C00D9
                    - type: STRING
                      name: description
                      value: SYS
                    - type: STRING
                      name: desc_color
                      value: FFFFFF
                    - type: INTEGER
                      name: desc_v_pos
                      value: '0'
                    - type: STRING
                      name: empty_color
                      value: 5000A1
                    - type: ITEM
                      name: itemid.0
                      value:
                        host: 'DELL PowerEdge R820 by HTTP'
                        key: dell.server.util.sys
                    - type: INTEGER
                      name: rf_rate
                      value: '30'
                    - type: INTEGER
                      name: show.0
                      value: '2'
                    - type: INTEGER
                      name: show.1
                      value: '1'
                    - type: INTEGER
                      name: show.2
                      value: '5'
                    - type: STRING
                      name: units
                      value: '%'
                    - type: INTEGER
                      name: units_bold
                      value: '1'
                    - type: STRING
                      name: units_color
                      value: FFFFFF
                    - type: STRING
                      name: value_arc_color
                      value: FFFFFF
                    - type: INTEGER
                      name: value_arc_size
                      value: '35'
                    - type: INTEGER
                      name: value_bold
                      value: '1'
                    - type: STRING
                      name: value_color
                      value: FFFFFF
                - type: item
                  name: 'Redfish API'
                  x: '18'
                  width: '27'
                  height: '3'
                  hide_header: 'YES'
                  fields:
                    - type: STRING
                      name: bg_color
                      value: 2196F3
                    - type: STRING
                      name: description
                      value: 'Redfish API'
                    - type: STRING
                      name: desc_color
                      value: FFFFFF
                    - type: INTEGER
                      name: desc_v_pos
                      value: '0'
                    - type: ITEM
                      name: itemid.0
                      value:
                        host: 'DELL PowerEdge R820 by HTTP'
                        key: 'net.tcp.service[https]'
                    - type: INTEGER
                      name: show.0
                      value: '2'
                    - type: INTEGER
                      name: show.1
                      value: '1'
                    - type: STRING
                      name: value_color
                      value: FFFFFF
                    - type: INTEGER
                      name: value_size
                      value: '35'
                - type: item
                  name: 'HW model'
                  x: '18'
                  'y': '3'
                  width: '54'
                  height: '3'
                  hide_header: 'YES'
                  fields:
                    - type: STRING
                      name: bg_color
                      value: 2196F3
                    - type: STRING
                      name: description
                      value: 'HW model'
                    - type: STRING
                      name: desc_color
                      value: FFFFFF
                    - type: INTEGER
                      name: desc_v_pos
                      value: '0'
                    - type: ITEM
                      name: itemid.0
                      value:
                        host: 'DELL PowerEdge R820 by HTTP'
                        key: dell.server.hw.model
                    - type: INTEGER
                      name: show.0
                      value: '2'
                    - type: INTEGER
                      name: show.1
                      value: '1'
                    - type: STRING
                      name: value_color
                      value: FFFFFF
                    - type: INTEGER
                      name: value_size
                      value: '35'
                - type: item
                  name: 'Serial number'
                  x: '18'
                  'y': '6'
                  width: '54'
                  height: '3'
                  hide_header: 'YES'
                  fields:
                    - type: STRING
                      name: bg_color
                      value: 2196F3
                    - type: STRING
                      name: description
                      value: 'Serial number'
                    - type: STRING
                      name: desc_color
                      value: FFFFFF
                    - type: INTEGER
                      name: desc_v_pos
                      value: '0'
                    - type: ITEM
                      name: itemid.0
                      value:
                        host: 'DELL PowerEdge R820 by HTTP'
                        key: dell.server.hw.serialnumber
                    - type: INTEGER
                      name: show.0
                      value: '2'
                    - type: INTEGER
                      name: show.1
                      value: '1'
                    - type: STRING
                      name: value_color
                      value: FFFFFF
                    - type: INTEGER
                      name: value_size
                      value: '35'
                - type: item
                  name: Firmware
                  x: '18'
                  'y': '9'
                  width: '54'
                  height: '3'
                  hide_header: 'YES'
                  fields:
                    - type: STRING
                      name: bg_color
                      value: 2196F3
                    - type: STRING
                      name: description
                      value: Firmware
                    - type: STRING
                      name: desc_color
                      value: FFFFFF
                    - type: INTEGER
                      name: desc_v_pos
                      value: '0'
                    - type: ITEM
                      name: itemid.0
                      value:
                        host: 'DELL PowerEdge R820 by HTTP'
                        key: dell.server.hw.firmware
                    - type: INTEGER
                      name: show.0
                      value: '2'
                    - type: INTEGER
                      name: show.1
                      value: '1'
                    - type: STRING
                      name: value_color
                      value: FFFFFF
                    - type: INTEGER
                      name: value_size
                      value: '35'
                - type: item
                  name: 'System health'
                  x: '45'
                  width: '27'
                  height: '3'
                  hide_header: 'YES'
                  fields:
                    - type: STRING
                      name: bg_color
                      value: 2196F3
                    - type: STRING
                      name: description
                      value: 'System Health'
                    - type: STRING
                      name: desc_color
                      value: FFFFFF
                    - type: INTEGER
                      name: desc_v_pos
                      value: '0'
                    - type: ITEM
                      name: itemid.0
                      value:
                        host: 'DELL PowerEdge R820 by HTTP'
                        key: dell.server.status
                    - type: INTEGER
                      name: show.0
                      value: '2'
                    - type: INTEGER
                      name: show.1
                      value: '1'
                    - type: STRING
                      name: value_color
                      value: FFFFFF
                    - type: INTEGER
                      name: value_size
                      value: '35'
            - name: Discoveries
              display_period: '30'
              widgets:
                - type: honeycomb
                  name: 'Interface link'
                  width: '36'
                  height: '4'
                  fields:
                    - type: STRING
                      name: items.0
                      value: 'Interface*Link status'
                    - type: STRING
                      name: primary_label
                      value: '{{ITEM.NAME}.regsub("\[(.*?)\]", "\1")}'
                    - type: INTEGER
                      name: primary_label_size_type
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAAAA
                    - type: STRING
                      name: thresholds.0.color
                      value: D3212C
                    - type: STRING
                      name: thresholds.0.threshold
                      value: '2'
                    - type: STRING
                      name: thresholds.1.color
                      value: 069C56
                    - type: STRING
                      name: thresholds.1.threshold
                      value: '3'
                - type: honeycomb
                  name: 'Temperature sensors'
                  'y': '4'
                  width: '72'
                  height: '4'
                  fields:
                    - type: STRING
                      name: items.0
                      value: 'Probe*Value'
                    - type: STRING
                      name: primary_label
                      value: '{{ITEM.NAME}.regsub("\[(.*?)\]", "\1")}'
                    - type: INTEGER
                      name: primary_label_size_type
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAAAB
                    - type: INTEGER
                      name: secondary_label_decimal_places
                      value: '0'
                - type: honeycomb
                  name: 'Physical disks'
                  'y': '8'
                  width: '36'
                  height: '4'
                  fields:
                    - type: STRING
                      name: items.0
                      value: 'Physical disk*Status'
                    - type: STRING
                      name: primary_label
                      value: '{{ITEM.NAME}.regsub("\[(.*?)\]", "\1")}'
                    - type: INTEGER
                      name: primary_label_size_type
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAAAC
                    - type: STRING
                      name: thresholds.0.color
                      value: 069C56
                    - type: STRING
                      name: thresholds.0.threshold
                      value: '1'
                    - type: STRING
                      name: thresholds.1.color
                      value: FF681E
                    - type: STRING
                      name: thresholds.1.threshold
                      value: '2'
                    - type: STRING
                      name: thresholds.2.color
                      value: D3212C
                    - type: STRING
                      name: thresholds.2.threshold
                      value: '3'
                - type: honeycomb
                  name: 'Power supplies'
                  'y': '12'
                  width: '36'
                  height: '4'
                  fields:
                    - type: STRING
                      name: items.0
                      value: 'Power supply*Voltage'
                    - type: STRING
                      name: items.1
                      value: 'Power supply*Current'
                    - type: STRING
                      name: primary_label
                      value: '{{ITEM.NAME}.regsub("\[(.*?)\]", "\1")}'
                    - type: INTEGER
                      name: primary_label_size_type
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAAAE
                - type: honeycomb
                  name: 'Interface speed'
                  x: '36'
                  width: '36'
                  height: '4'
                  fields:
                    - type: STRING
                      name: items.0
                      value: 'Interface*Speed'
                    - type: STRING
                      name: primary_label
                      value: '{{ITEM.NAME}.regsub("\[(.*?)\]", "\1")}'
                    - type: INTEGER
                      name: primary_label_size_type
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAABA
                    - type: INTEGER
                      name: secondary_label_decimal_places
                      value: '0'
                    - type: STRING
                      name: thresholds.0.color
                      value: D3212C
                    - type: STRING
                      name: thresholds.0.threshold
                      value: '0'
                    - type: STRING
                      name: thresholds.1.color
                      value: FF681E
                    - type: STRING
                      name: thresholds.1.threshold
                      value: '10000000'
                    - type: STRING
                      name: thresholds.2.color
                      value: FF980E
                    - type: STRING
                      name: thresholds.2.threshold
                      value: '100000000'
                    - type: STRING
                      name: thresholds.3.color
                      value: 069C56
                    - type: STRING
                      name: thresholds.3.threshold
                      value: '1000000000'
                    - type: STRING
                      name: thresholds.4.color
                      value: 2196F3
                    - type: STRING
                      name: thresholds.4.threshold
                      value: '10000000000'
                    - type: STRING
                      name: thresholds.5.color
                      value: 6C00D9
                    - type: STRING
                      name: thresholds.5.threshold
                      value: '25000000000'
                    - type: STRING
                      name: thresholds.6.color
                      value: D900A6
                    - type: STRING
                      name: thresholds.6.threshold
                      value: '40000000000'
                - type: honeycomb
                  name: 'Virtual disks'
                  x: '36'
                  'y': '8'
                  width: '36'
                  height: '4'
                  fields:
                    - type: STRING
                      name: items.0
                      value: 'Virtual disk*: Status'
                    - type: STRING
                      name: primary_label
                      value: '{{ITEM.NAME}.regsub("\[(.*?)\]", "\1")}'
                    - type: INTEGER
                      name: primary_label_size_type
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAAAD
                    - type: STRING
                      name: thresholds.0.color
                      value: 069C56
                    - type: STRING
                      name: thresholds.0.threshold
                      value: '1'
                    - type: STRING
                      name: thresholds.1.color
                      value: FF681E
                    - type: STRING
                      name: thresholds.1.threshold
                      value: '2'
                    - type: STRING
                      name: thresholds.2.color
                      value: D3212C
                    - type: STRING
                      name: thresholds.2.threshold
                      value: '3'
                - type: honeycomb
                  name: Fans
                  x: '36'
                  'y': '12'
                  width: '36'
                  height: '4'
                  fields:
                    - type: STRING
                      name: items.0
                      value: 'Probe*Status'
                    - type: STRING
                      name: primary_label
                      value: '{{ITEM.NAME}.regsub("\[(.*?)\]", "\1")}'
                    - type: INTEGER
                      name: primary_label_size_type
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAAAF
                    - type: STRING
                      name: thresholds.0.color
                      value: 069C56
                    - type: STRING
                      name: thresholds.0.threshold
                      value: '1'
                    - type: STRING
                      name: thresholds.1.color
                      value: FF681E
                    - type: STRING
                      name: thresholds.1.threshold
                      value: '2'
                    - type: STRING
                      name: thresholds.2.color
                      value: D3212C
                    - type: STRING
                      name: thresholds.2.threshold
                      value: '3'
      valuemaps:
        - uuid: a9fd1db9128d4efca329941ff4f4d41b
          name: 'Network interface status'
          mappings:
            - value: '0'
              newvalue: Unknown
            - value: '1'
              newvalue: 'Null'
            - value: '2'
              newvalue: Down
            - value: '3'
              newvalue: Up
        - uuid: 45c31886b41f4592bb87ffe940ce9fd8
          name: 'Redfish API availability'
          mappings:
            - value: '0'
              newvalue: Unavailable
            - value: '1'
              newvalue: Available
        - uuid: e8d3f0814cad4a2bba79231c1c8c0230
          name: 'Redfish status health'
          mappings:
            - value: '0'
              newvalue: Unknown
            - value: '1'
              newvalue: OK
            - value: '2'
              newvalue: Warning
            - value: '3'
              newvalue: Critical
        - uuid: d18e6f1b160f4ee3851b21cff3309d40
          name: 'Redfish status state'
          mappings:
            - value: '0'
              newvalue: Unknown
            - value: '1'
              newvalue: Enabled
            - value: '2'
              newvalue: Disabled
            - value: '3'
              newvalue: Absent
            - value: '4'
              newvalue: Deferring
            - value: '5'
              newvalue: InTest
            - value: '6'
              newvalue: Quiesced
            - value: '7'
              newvalue: StandbyOffline
            - value: '8'
              newvalue: StandbySpare
            - value: '9'
              newvalue: Starting
            - value: '10'
              newvalue: UnavailableOffline
            - value: '11'
              newvalue: Updating
        - uuid: 82e0dc0cd4714fb1b3894adff630b0d8
          name: 'Virtual disk RAID status'
          mappings:
            - value: '0'
              newvalue: unknown
            - value: '1'
              newvalue: Blocked
            - value: '2'
              newvalue: Degraded
            - value: '3'
              newvalue: Failed
            - value: '4'
              newvalue: Foreign
            - value: '5'
              newvalue: Offline
            - value: '6'
              newvalue: Unknown
            - value: '7'
              newvalue: 'Null'
            - value: '8'
              newvalue: Ready
            - value: '9'
              newvalue: Online
        - uuid: 3c9e776333294c79a975b715fab7a35d
          name: 'Virtual disk read policy'
          mappings:
            - value: '0'
              newvalue: Unknown
            - value: '1'
              newvalue: NoReadAhead
            - value: '2'
              newvalue: ReadAhead
            - value: '3'
              newvalue: AdaptiveReadAhead
        - uuid: 916622b4d50b4304b95888c9fc49149e
          name: 'Virtual disk write policy'
          mappings:
            - value: '0'
              newvalue: Unknown
            - value: '1'
              newvalue: WriteThrough
            - value: '2'
              newvalue: WriteBack
            - value: '3'
              newvalue: ProtectedWriteBack
            - value: '4'
              newvalue: UnprotectedWriteBack
    - uuid: b8750c02b5624c6889979b129735bd56
      template: 'HPE Primera by HTTP'
      name: 'HPE Primera by HTTP'
      description: |
        The template to monitor HPE Primera by HTTP.
        It works without any external scripts and uses the script item.
        
        Setup:
          1. Create a user on the storage with a browse role and enable it for all domains, for example "zabbix".
          2. The WSAPI server does not start automatically.
             - Log in to the CLI as Super, Service, or any role granted the wsapi_set right.
             - Start the WSAPI server by command: `startwsapi`.
             - To check WSAPI state use command: `showwsapi`.
          3. Link template to the host.
          4. Set the hostname or IP address of the host in the {$HPE.PRIMERA.API.HOST} macro and configure the username and password in the {$HPE.PRIMERA.API.USERNAME} and {$HPE.PRIMERA.API.PASSWORD} macros.
          5. Change the {$HPE.PRIMERA.API.SCHEME} and {$HPE.PRIMERA.API.PORT} macros if needed.
        
        You can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/
        
        Generated by official Zabbix template tool "Templator"
      wizard_ready: 'YES'
      readme: |
        ## Overview
        
        The template to monitor HPE Primera by HTTP.
        It works without any external scripts and uses the script item.
        
        ## Setup
        
        1. Create a user on the storage with a browse role and enable it for all domains, for example "zabbix".
        2. The WSAPI server does not start automatically.
           Log in to the CLI as Super, Service, or any role granted the wsapi_set right.
           Start the WSAPI server by command: `startwsapi`.
           To check WSAPI state use command: `showwsapi`.
        3. Link template to the host.
        3. Set the hostname or IP address of the host in the `Address` and configure the username and password in the `Username` and `Password` host wizard configuration fields.
        4. Change the `Scheme` and `Port` if needed.
      vendor:
        name: Zabbix
        version: 8.0-1
      groups:
        - name: Templates/SAN
      items:
        - uuid: d5b8a74991d34652973a78d58203d5fd
          name: 'Disks total'
          type: DEPENDENT
          key: hpe.primera.disks.total
          description: 'Number of physical disks.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.total
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
          master_item:
            key: hpe.primera.get.disks
          tags:
            - tag: component
              value: disk
            - tag: component
              value: storage
        - uuid: 89aa29280dc349a2acaae520849857e0
          name: 'Get CPGs data'
          type: DEPENDENT
          key: hpe.primera.get.cpgs
          history: '0'
          value_type: TEXT
          description: 'Common provisioning groups data.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.cpgs
              error_handler: DISCARD_VALUE
          master_item:
            key: hpe.primera.get.data
          tags:
            - tag: component
              value: raw
        - uuid: 530e20083da8423e9d30c8342f1b7da3
          name: 'Get data'
          type: SCRIPT
          key: hpe.primera.get.data
          history: '0'
          value_type: TEXT
          params: |
            var Primera = {
            	params: {},
            	session_key: null,
            
            	setParams: function (params) {
            		['username', 'password', 'base_url'].forEach(function (field) {
            			if (typeof params !== 'object' || typeof params[field] === 'undefined' || params[field] === '') {
            				throw 'Required param is not set: ' + field + '.';
            			}
            		});
            
            		Primera.params = params;
            		if (typeof Primera.params.base_url === 'string' && !Primera.params.base_url.endsWith('/')) {
            			Primera.params.base_url += '/';
            		}
            	},
            
            	login: function () {
            		if (Primera.session_key !== null) {
            			return;
            		}
            
            		var response, request = new HttpRequest();
            		request.addHeader('Content-Type: application/json');
            
            		response = request.post(Primera.params.base_url + 'api/v1/credentials', JSON.stringify({
            			'user': Primera.params.username,
            			'password': Primera.params.password
            		}));
            
            		if (request.getStatus() < 200 || request.getStatus() >= 300) {
            			throw 'Auth request failed with status code ' + request.getStatus() + ': ' + response;
            		}
            
            		if (response !== null) {
            			try {
            				auth_data = JSON.parse(response);
            			}
            			catch (error) {
            				throw 'Failed to parse auth response received from device API.';
            			}
            		}
            		else {
            			throw 'No data received by auth request.'
            		}
            
            		if ('key' in auth_data) {
            			Primera.session_key = auth_data['key'];
            		} else {
            			throw 'Auth response does not contain session key.'
            		}
            	},
            
            	logout: function () {
            		if (Primera.session_key !== null) {
            			(new HttpRequest()).delete(Primera.params.base_url + 'api/v1/credentials/' + Primera.session_key);
            		}
            	},
            
            	requestData: function (method) {
            		if (Primera.session_key === null) {
            			return;
            		}
            
            		request = new HttpRequest();
            		request.addHeader('X-HP3PAR-WSAPI-SessionKey: ' + Primera.session_key);
            
            		raw_data = request.get(Primera.params.base_url + 'api/v1/' + method);
            
            		if (request.getStatus() < 200 || request.getStatus() >= 300) {
            			throw 'Request failed with status code ' + request.getStatus() + ': ' + response;
            		}
            
            		if (raw_data !== null) {
            			try {
            				return JSON.parse(raw_data);
            			}
            			catch (error) {
            				throw 'Failed to parse response received from device API.';
            			}
            		}
            		else {
            			throw 'No data received by ' + method + ' request.';
            		}
            	}
            };
            
            var methods = ['disks', 'cpgs', 'hosts', 'ports', 'system', 'tasks', 'volumes'],
            	data = {};
            
            data['errors'] = {};
            
            try {
            	Primera.setParams(JSON.parse(value));
            
            	try {
            		Primera.login();
            	}
            	catch (error) {
            		data.errors.auth = error.toString();
            	}
            
            	if (!('auth' in data.errors)) {
            		for (var i in methods) {
            			try {
            				if (methods[i] === 'tasks') {
            					var result = [],
            						tmp_tasks = {};
            
            					tasks = Primera.requestData(methods[i]);
            
            					tasks.members.forEach(function (task) {
            						tmp_tasks[task.name] = task;
            					});
            
            					for (var task in tmp_tasks) {
            						result.push(tmp_tasks[task]);
            					}
            
            					data[methods[i]] = result;
            				}
            				else {
            					data[methods[i]] = Primera.requestData(methods[i]);
            				}
            			}
            			catch (error) {
            				data.errors[methods[i]] = error.toString();
            			}
            		}
            	}
            }
            catch (error) {
            	data.errors.params = error.toString();
            }
            
            try {
            	Primera.logout();
            }
            catch (error) {
            }
            
            if (Object.keys(data.errors).length !== 0) {
            	errors = 'Failed to receive data:';
            	for (var error in data.errors) {
            		errors += '\n' + error + ' : ' + data.errors[error];
            	}
            	data.errors = errors;
            }
            else {
            	data.errors = '';
            }
            
            return JSON.stringify(data);
          description: 'The JSON with result of WSAPI requests.'
          timeout: '{$HPE.PRIMERA.DATA.TIMEOUT}'
          parameters:
            - name: base_url
              value: '{$HPE.PRIMERA.API.SCHEME}://{$HPE.PRIMERA.API.HOST}:{$HPE.PRIMERA.API.PORT}'
            - name: password
              value: '{$HPE.PRIMERA.API.PASSWORD}'
            - name: username
              value: '{$HPE.PRIMERA.API.USERNAME}'
          tags:
            - tag: component
              value: raw
        - uuid: 3940a3313b354d64924fc93be9b9db04
          name: 'Get disks data'
          type: DEPENDENT
          key: hpe.primera.get.disks
          history: '0'
          value_type: TEXT
          description: 'Disks data.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.disks
              error_handler: DISCARD_VALUE
          master_item:
            key: hpe.primera.get.data
          tags:
            - tag: component
              value: raw
        - uuid: 484a6b9568234bbca9b4bcae2833bbf1
          name: 'Get errors'
          type: DEPENDENT
          key: hpe.primera.get.errors
          value_type: TEXT
          description: 'A list of errors from WSAPI requests.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.errors
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
          master_item:
            key: hpe.primera.get.data
          tags:
            - tag: component
              value: raw
          triggers:
            - uuid: 570d440e7ec9445585003208eca06e63
              expression: 'length(last(/HPE Primera by HTTP/hpe.primera.get.errors))>0'
              name: 'HPE Primera: There are errors in requests to WSAPI'
              opdata: '{ITEM.LASTVALUE1}'
              priority: AVERAGE
              description: 'Zabbix has received errors in requests to WSAPI.'
              dependencies:
                - name: 'HPE Primera: Service is unavailable'
                  expression: 'max(/HPE Primera by HTTP/net.tcp.service["{$HPE.PRIMERA.API.SCHEME}","{$HPE.PRIMERA.API.HOST}","{$HPE.PRIMERA.API.PORT}"],5m)=0'
              tags:
                - tag: scope
                  value: availability
        - uuid: c027fd5d976d42bd90126edb46ddfe88
          name: 'Get hosts data'
          type: DEPENDENT
          key: hpe.primera.get.hosts
          history: '0'
          value_type: TEXT
          description: 'Hosts data.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.hosts
              error_handler: DISCARD_VALUE
          master_item:
            key: hpe.primera.get.data
          tags:
            - tag: component
              value: raw
        - uuid: 1569a51d018345b390d3e2b3c368ba85
          name: 'Get ports data'
          type: DEPENDENT
          key: hpe.primera.get.ports
          history: '0'
          value_type: TEXT
          description: 'Ports data.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.ports
              error_handler: DISCARD_VALUE
          master_item:
            key: hpe.primera.get.data
          tags:
            - tag: component
              value: raw
        - uuid: 6baed792c06444f598aec830f90f2f4c
          name: 'Get system data'
          type: DEPENDENT
          key: hpe.primera.get.system
          history: '0'
          value_type: TEXT
          description: 'System data.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.system
              error_handler: DISCARD_VALUE
          master_item:
            key: hpe.primera.get.data
          tags:
            - tag: component
              value: raw
        - uuid: 9d5697db544f4f3993e6df499ad51b49
          name: 'Get tasks data'
          type: DEPENDENT
          key: hpe.primera.get.tasks
          history: '0'
          value_type: TEXT
          description: 'Tasks data.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.tasks
              error_handler: DISCARD_VALUE
          master_item:
            key: hpe.primera.get.data
          tags:
            - tag: component
              value: raw
        - uuid: 7faad091257b44f1a7ecf2c9156c83ca
          name: 'Get volumes data'
          type: DEPENDENT
          key: hpe.primera.get.volumes
          history: '0'
          value_type: TEXT
          description: 'Volumes data.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.volumes
              error_handler: DISCARD_VALUE
          master_item:
            key: hpe.primera.get.data
          tags:
            - tag: component
              value: raw
        - uuid: efc450d0682c4c5d93df41d05c10eceb
          name: 'Capacity allocated'
          type: DEPENDENT
          key: hpe.primera.system.capacity.allocated
          units: B
          description: 'Allocated capacity in the system.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.allocatedCapacityMiB
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
            - type: MULTIPLIER
              parameters:
                - '1048576'
          master_item:
            key: hpe.primera.get.system
          tags:
            - tag: component
              value: storage
            - tag: component
              value: system
        - uuid: e3842eec2e45443681670d3c1d194900
          name: 'Capacity failed'
          type: DEPENDENT
          key: hpe.primera.system.capacity.failed
          units: B
          description: 'Failed capacity in the system.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.failedCapacityMiB
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
            - type: MULTIPLIER
              parameters:
                - '1048576'
          master_item:
            key: hpe.primera.get.system
          tags:
            - tag: component
              value: storage
            - tag: component
              value: system
        - uuid: d23e888299d344238468481689f55e2d
          name: 'Capacity free'
          type: DEPENDENT
          key: hpe.primera.system.capacity.free
          units: B
          description: 'Free capacity in the system.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.freeCapacityMiB
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 10m
            - type: MULTIPLIER
              parameters:
                - '1048576'
          master_item:
            key: hpe.primera.get.system
          tags:
            - tag: component
              value: storage
            - tag: component
              value: system
        - uuid: 1e6fc0d68d18474e84b4fe2e4d3374d1
          name: 'Capacity total'
          type: DEPENDENT
          key: hpe.primera.system.capacity.total
          units: B
          description: 'Total capacity in the system.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.totalCapacityMiB
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
            - type: MULTIPLIER
              parameters:
                - '1048576'
          master_item:
            key: hpe.primera.get.system
          tags:
            - tag: component
              value: storage
            - tag: component
              value: system
        - uuid: 65bcf3fb456a45358795d2f9d8249e16
          name: 'Chunklet size'
          type: DEPENDENT
          key: hpe.primera.system.chunklet.size
          units: B
          description: 'Chunklet size.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.chunkletSizeMiB
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
            - type: MULTIPLIER
              parameters:
                - '1048576'
          master_item:
            key: hpe.primera.get.system
          tags:
            - tag: component
              value: storage
            - tag: component
              value: system
        - uuid: dd6fd61256cc4eeeb94f50d0c86fc51f
          name: 'System contact'
          type: DEPENDENT
          key: hpe.primera.system.contact
          value_type: CHAR
          description: 'Contact of the system.'
          inventory_link: CONTACT
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.contact
              error_handler: DISCARD_VALUE
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          master_item:
            key: hpe.primera.get.system
          tags:
            - tag: component
              value: system
        - uuid: dd61f3a680284893801c96bdbd445645
          name: 'System location'
          type: DEPENDENT
          key: hpe.primera.system.location
          value_type: CHAR
          description: 'Location of the system.'
          inventory_link: LOCATION
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.location
              error_handler: DISCARD_VALUE
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          master_item:
            key: hpe.primera.get.system
          tags:
            - tag: component
              value: system
        - uuid: 5f28ec66be1f43208139476af3653997
          name: Model
          type: DEPENDENT
          key: hpe.primera.system.model
          value_type: CHAR
          description: 'System model.'
          inventory_link: MODEL
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.model
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          master_item:
            key: hpe.primera.get.system
          tags:
            - tag: component
              value: system
        - uuid: 45281453bf204365a8a8ac2ba7255e54
          name: 'System name'
          type: DEPENDENT
          key: hpe.primera.system.name
          value_type: CHAR
          description: 'System name.'
          inventory_link: NAME
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.name
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 6h
          master_item:
            key: hpe.primera.get.system
          tags:
            - tag: component
              value: system
        - uuid: acf6d37022884dc99a3b55c95f6b19c8
          name: 'Nodes online'
          type: DEPENDENT
          key: hpe.primera.system.nodes.online
          description: 'Number of online nodes in the system.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.onlineNodes.length()
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
          master_item:
            key: hpe.primera.get.system
          tags:
            - tag: component
              value: system
        - uuid: 65b22e04d7334aaf970a8961a46c22c9
          name: 'Nodes total'
          type: DEPENDENT
          key: hpe.primera.system.nodes.total
          description: 'Total number of nodes in the system.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.totalNodes
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
          master_item:
            key: hpe.primera.get.system
          tags:
            - tag: component
              value: system
        - uuid: d194672ea7f64dd58296d7fb2537f35b
          name: 'Serial number'
          type: DEPENDENT
          key: hpe.primera.system.serial_number
          value_type: CHAR
          description: 'System serial number.'
          inventory_link: SERIALNO_A
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.serialNumber
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          master_item:
            key: hpe.primera.get.system
          tags:
            - tag: component
              value: system
        - uuid: e0f0ff7657784c8eab1a71a68ceefc19
          name: 'Software version number'
          type: DEPENDENT
          key: hpe.primera.system.sw_version
          value_type: CHAR
          description: 'Storage system software version number.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.systemVersion
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          master_item:
            key: hpe.primera.get.system
          tags:
            - tag: component
              value: system
        - uuid: a0b4fdee38a64c5f82fd051ea74a7b2d
          name: 'Service ping'
          type: SIMPLE
          key: 'net.tcp.service["{$HPE.PRIMERA.API.SCHEME}","{$HPE.PRIMERA.API.HOST}","{$HPE.PRIMERA.API.PORT}"]'
          description: 'Checks if the service is running and accepting TCP connections.'
          valuemap:
            name: 'Service state'
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 10m
          tags:
            - tag: component
              value: health
            - tag: component
              value: network
          triggers:
            - uuid: 8e7aa46322c643878e509461dbb9169d
              expression: 'max(/HPE Primera by HTTP/net.tcp.service["{$HPE.PRIMERA.API.SCHEME}","{$HPE.PRIMERA.API.HOST}","{$HPE.PRIMERA.API.PORT}"],5m)=0'
              name: 'HPE Primera: Service is unavailable'
              priority: HIGH
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: availability
      discovery_rules:
        - uuid: b9132b095eb349c99e868ea40364596d
          name: 'Common provisioning groups discovery'
          type: DEPENDENT
          key: hpe.primera.cpg.discovery
          filter:
            evaltype: AND
            conditions:
              - macro: '{#NAME}'
                value: '{$HPE.PRIMERA.CPG.NAME.MATCHES}'
              - macro: '{#NAME}'
                value: '{$HPE.PRIMERA.CPG.NAME.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
          description: 'List of CPGs resources.'
          item_prototypes:
            - uuid: 6d070a747a01498b94c56da721a63192
              name: 'CPG [{#NAME}]: Number of FPVVs'
              type: DEPENDENT
              key: 'hpe.primera.cpg.fpvv["{#ID}",count]'
              description: 'Number of FPVVs (Fully Provisioned Virtual Volumes) allocated in the CPG.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.numFPVVs
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: 'hpe.primera.cpg["{#ID}",data]'
              tags:
                - tag: component
                  value: cpg
                - tag: component
                  value: storage
                - tag: cpg
                  value: '{#NAME}'
            - uuid: a7fccd5afcf5469ca11a9436240eab5c
              name: 'CPG [{#NAME}]: Raw space: Free'
              type: DEPENDENT
              key: 'hpe.primera.cpg.space.raw["{#ID}",free]'
              units: B
              description: 'Raw free space.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.rawFreeSpaceMiB
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 10m
                - type: MULTIPLIER
                  parameters:
                    - '1048576'
              master_item:
                key: 'hpe.primera.cpg["{#ID}",data]'
              tags:
                - tag: component
                  value: cpg
                - tag: component
                  value: storage
                - tag: cpg
                  value: '{#NAME}'
            - uuid: 8f26a54327f54e968f422081e6045217
              name: 'CPG [{#NAME}]: Raw space: Shared'
              type: DEPENDENT
              key: 'hpe.primera.cpg.space.raw["{#ID}",shared]'
              units: B
              description: 'Raw shared space.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.rawSharedSpaceMiB
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
                - type: MULTIPLIER
                  parameters:
                    - '1048576'
              master_item:
                key: 'hpe.primera.cpg["{#ID}",data]'
              tags:
                - tag: component
                  value: cpg
                - tag: cpg
                  value: '{#NAME}'
            - uuid: e3ac07e2707a44fd8c166f4618fd79a1
              name: 'CPG [{#NAME}]: Raw space: Total'
              type: DEPENDENT
              key: 'hpe.primera.cpg.space.raw["{#ID}",total]'
              units: B
              description: 'Raw total space.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.rawTotalSpaceMiB
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
                - type: MULTIPLIER
                  parameters:
                    - '1048576'
              master_item:
                key: 'hpe.primera.cpg["{#ID}",data]'
              tags:
                - tag: component
                  value: cpg
                - tag: component
                  value: storage
                - tag: cpg
                  value: '{#NAME}'
            - uuid: 6dfd722ad85b481a9c2b04a4a5eb91fe
              name: 'CPG [{#NAME}]: Logical disk space: Snapshot administration: Total (raw)'
              type: DEPENDENT
              key: 'hpe.primera.cpg.space.sa["{#ID}",raw_total]'
              units: B
              description: 'Total physical (raw) logical disk space in snapshot administration.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.SAUsage.rawTotalMiB
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
                - type: MULTIPLIER
                  parameters:
                    - '1048576'
              master_item:
                key: 'hpe.primera.cpg["{#ID}",data]'
              tags:
                - tag: component
                  value: cpg
                - tag: component
                  value: storage
                - tag: cpg
                  value: '{#NAME}'
            - uuid: 8b2dc75fdcfa48908ece97768641f055
              name: 'CPG [{#NAME}]: Logical disk space: Snapshot administration: Used (raw)'
              type: DEPENDENT
              key: 'hpe.primera.cpg.space.sa["{#ID}",raw_used]'
              units: B
              description: 'Amount of physical (raw) logical disk used in snapshot administration.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.SAUsage.rawUsedMiB
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 10m
                - type: MULTIPLIER
                  parameters:
                    - '1048576'
              master_item:
                key: 'hpe.primera.cpg["{#ID}",data]'
              tags:
                - tag: component
                  value: cpg
                - tag: component
                  value: storage
                - tag: cpg
                  value: '{#NAME}'
            - uuid: d55f0eab811641fdbb9a8bc8c54815ee
              name: 'CPG [{#NAME}]: Logical disk space: Snapshot administration: Total'
              type: DEPENDENT
              key: 'hpe.primera.cpg.space.sa["{#ID}",total]'
              units: B
              description: 'Total logical disk space in snapshot administration.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.SAUsage.totalMiB
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
                - type: MULTIPLIER
                  parameters:
                    - '1048576'
              master_item:
                key: 'hpe.primera.cpg["{#ID}",data]'
              tags:
                - tag: component
                  value: cpg
                - tag: component
                  value: storage
                - tag: cpg
                  value: '{#NAME}'
            - uuid: cf467bc7d9ac45259f284eeab6ae7f6a
              name: 'CPG [{#NAME}]: Logical disk space: Snapshot administration: Used'
              type: DEPENDENT
              key: 'hpe.primera.cpg.space.sa["{#ID}",used]'
              units: B
              description: 'Amount of logical disk used in snapshot administration.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.SAUsage.usedMiB
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 10m
                - type: MULTIPLIER
                  parameters:
                    - '1048576'
              master_item:
                key: 'hpe.primera.cpg["{#ID}",data]'
              tags:
                - tag: component
                  value: cpg
                - tag: component
                  value: storage
                - tag: cpg
                  value: '{#NAME}'
            - uuid: 61dd9aa18c714863b606d18b2fff6c57
              name: 'CPG [{#NAME}]: Logical disk space: Snapshot data: Total (raw)'
              type: DEPENDENT
              key: 'hpe.primera.cpg.space.sd["{#ID}",raw_total]'
              units: B
              description: 'Total physical (raw) logical disk space in snapshot data space.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.SDUsage.rawTotalMiB
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
                - type: MULTIPLIER
                  parameters:
                    - '1048576'
              master_item:
                key: 'hpe.primera.cpg["{#ID}",data]'
              tags:
                - tag: component
                  value: cpg
                - tag: component
                  value: storage
                - tag: cpg
                  value: '{#NAME}'
            - uuid: f95ee3c4c0c64d46a47dd68b346f2fa5
              name: 'CPG [{#NAME}]: Logical disk space: Snapshot data: Used (raw)'
              type: DEPENDENT
              key: 'hpe.primera.cpg.space.sd["{#ID}",raw_used]'
              units: B
              description: 'Amount of physical (raw) logical disk used in snapshot data space.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.SDUsage.rawUsedMiB
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 10m
                - type: MULTIPLIER
                  parameters:
                    - '1048576'
              master_item:
                key: 'hpe.primera.cpg["{#ID}",data]'
              tags:
                - tag: component
                  value: cpg
                - tag: component
                  value: storage
                - tag: cpg
                  value: '{#NAME}'
            - uuid: 797f3335d8704d4bb8b53e34b3e6589e
              name: 'CPG [{#NAME}]: Logical disk space: Snapshot data: Total'
              type: DEPENDENT
              key: 'hpe.primera.cpg.space.sd["{#ID}",total]'
              units: B
              description: 'Total logical disk space in snapshot data space.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.SDUsage.totalMiB
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
                - type: MULTIPLIER
                  parameters:
                    - '1048576'
              master_item:
                key: 'hpe.primera.cpg["{#ID}",data]'
              tags:
                - tag: component
                  value: cpg
                - tag: component
                  value: storage
                - tag: cpg
                  value: '{#NAME}'
            - uuid: 51e40f6a1eb249d58bd79948d403d4f7
              name: 'CPG [{#NAME}]: Logical disk space: Snapshot data: Used'
              type: DEPENDENT
              key: 'hpe.primera.cpg.space.sd["{#ID}",used]'
              units: B
              description: 'Amount of logical disk used in snapshot data space.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.SDUsage.usedMiB
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 10m
                - type: MULTIPLIER
                  parameters:
                    - '1048576'
              master_item:
                key: 'hpe.primera.cpg["{#ID}",data]'
              tags:
                - tag: component
                  value: cpg
                - tag: component
                  value: storage
                - tag: cpg
                  value: '{#NAME}'
            - uuid: b7a8880bdafe4f0da4dd8cee6d4fdfa4
              name: 'CPG [{#NAME}]: Logical disk space: User space: Total (raw)'
              type: DEPENDENT
              key: 'hpe.primera.cpg.space.usr["{#ID}",raw_total]'
              units: B
              description: 'Total physical (raw) logical disk space in user data space.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.UsrUsage.rawTotalMiB
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
                - type: MULTIPLIER
                  parameters:
                    - '1048576'
              master_item:
                key: 'hpe.primera.cpg["{#ID}",data]'
              tags:
                - tag: component
                  value: cpg
                - tag: component
                  value: storage
                - tag: cpg
                  value: '{#NAME}'
            - uuid: 1feabd57f12a48b98dab098435179725
              name: 'CPG [{#NAME}]: Logical disk space: User space: Used (raw)'
              type: DEPENDENT
              key: 'hpe.primera.cpg.space.usr["{#ID}",raw_used]'
              units: B
              description: 'Amount of physical (raw) logical disk used in user data space.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.UsrUsage.rawUsedMiB
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 10m
                - type: MULTIPLIER
                  parameters:
                    - '1048576'
              master_item:
                key: 'hpe.primera.cpg["{#ID}",data]'
              tags:
                - tag: component
                  value: cpg
                - tag: component
                  value: storage
                - tag: cpg
                  value: '{#NAME}'
            - uuid: 6f85014bc639420aa409d97d42cb75b2
              name: 'CPG [{#NAME}]: Logical disk space: User space: Total'
              type: DEPENDENT
              key: 'hpe.primera.cpg.space.usr["{#ID}",total]'
              units: B
              description: 'Total logical disk space in user data space.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.UsrUsage.totalMiB
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
                - type: MULTIPLIER
                  parameters:
                    - '1048576'
              master_item:
                key: 'hpe.primera.cpg["{#ID}",data]'
              tags:
                - tag: component
                  value: cpg
                - tag: component
                  value: storage
                - tag: cpg
                  value: '{#NAME}'
            - uuid: c21f77a45ab443099bf957fbb39478f3
              name: 'CPG [{#NAME}]: Logical disk space: User space: Used'
              type: DEPENDENT
              key: 'hpe.primera.cpg.space.usr["{#ID}",used]'
              units: B
              description: 'Amount of logical disk used in user data space.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.UsrUsage.usedMiB
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 10m
                - type: MULTIPLIER
                  parameters:
                    - '1048576'
              master_item:
                key: 'hpe.primera.cpg["{#ID}",data]'
              tags:
                - tag: component
                  value: cpg
                - tag: component
                  value: storage
                - tag: cpg
                  value: '{#NAME}'
            - uuid: a6cd977f27a8463cb385715327e34955
              name: 'CPG [{#NAME}]: CPG space: Free'
              type: DEPENDENT
              key: 'hpe.primera.cpg.space["{#ID}",free]'
              units: B
              description: 'Free CPG space.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.freeSpaceMiB
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 10m
                - type: MULTIPLIER
                  parameters:
                    - '1048576'
              master_item:
                key: 'hpe.primera.cpg["{#ID}",data]'
              tags:
                - tag: component
                  value: cpg
                - tag: component
                  value: storage
                - tag: cpg
                  value: '{#NAME}'
            - uuid: 17cf1cddafd444f8a5616a472c1a019b
              name: 'CPG [{#NAME}]: CPG space: Shared'
              type: DEPENDENT
              key: 'hpe.primera.cpg.space["{#ID}",shared]'
              units: B
              description: 'Shared CPG space.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.sharedSpaceMiB
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
                - type: MULTIPLIER
                  parameters:
                    - '1048576'
              master_item:
                key: 'hpe.primera.cpg["{#ID}",data]'
              tags:
                - tag: component
                  value: cpg
                - tag: component
                  value: storage
                - tag: cpg
                  value: '{#NAME}'
            - uuid: 3950d779a0394615b8ec311525ed4168
              name: 'CPG [{#NAME}]: CPG space: Total'
              type: DEPENDENT
              key: 'hpe.primera.cpg.space["{#ID}",total]'
              units: B
              description: 'Total CPG space.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.totalSpaceMiB
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
                - type: MULTIPLIER
                  parameters:
                    - '1048576'
              master_item:
                key: 'hpe.primera.cpg["{#ID}",data]'
              tags:
                - tag: component
                  value: cpg
                - tag: component
                  value: storage
                - tag: cpg
                  value: '{#NAME}'
            - uuid: a7e2188d600a4715a58deba46f3b46ac
              name: 'CPG [{#NAME}]: Degraded state'
              type: DEPENDENT
              key: 'hpe.primera.cpg.state["{#ID}",degraded]'
              value_type: CHAR
              description: |
                Detailed state of the CPG:
                
                LDS_NOT_STARTED (1) - LDs not started.
                NOT_STARTED (2) - VV not started.
                NEEDS_CHECK (3) - check for consistency.
                NEEDS_MAINT_CHECK (4) - maintenance check is required.
                INTERNAL_CONSISTENCY_ERROR (5) - internal consistency error.
                SNAPDATA_INVALID (6) - invalid snapshot data.
                PRESERVED (7) - unavailable LD sets due to missing chunklets. Preserved remaining VV data.
                STALE (8) - parts of the VV contain old data because of a copy-on-write operation.
                COPY_FAILED (9) - a promote or copy operation to this volume failed.
                DEGRADED_AVAIL (10) - degraded due to availability.
                DEGRADED_PERF (11) - degraded due to performance.
                PROMOTING (12) - volume is the current target of a promote operation.
                COPY_TARGET (13) - volume is the current target of a physical copy operation.
                RESYNC_TARGET (14) - volume is the current target of a resynchronized copy operation.
                TUNING (15) - volume tuning is in progress.
                CLOSING (16) - volume is closing.
                REMOVING (17) - removing the volume.
                REMOVING_RETRY (18) - retrying a volume removal operation.
                CREATING (19) - creating a volume.
                COPY_SOURCE (20) - copy source.
                IMPORTING (21) - importing a volume.
                CONVERTING (22) - converting a volume.
                INVALID (23) - invalid.
                EXCLUSIVE (24) - local storage system has exclusive access to the volume.
                CONSISTENT (25) - volume is being imported consistently along with other volumes in the VV set.
                STANDBY (26) - volume in standby mode.
                SD_META_INCONSISTENT (27) - SD Meta Inconsistent.
                SD_NEEDS_FIX (28) - SD needs fix.
                SD_META_FIXING (29) - SD meta fix.
                UNKNOWN (999) - unknown state.
                NOT_SUPPORTED_BY_WSAPI (1000) - state not supported by WSAPI.
              valuemap:
                name: 'Volume detailed state enum'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.degradedStates
              master_item:
                key: 'hpe.primera.cpg["{#ID}",data]'
              tags:
                - tag: component
                  value: cpg
                - tag: component
                  value: storage
                - tag: cpg
                  value: '{#NAME}'
            - uuid: 837b48053400487885bf051a78f2200a
              name: 'CPG [{#NAME}]: Failed state'
              type: DEPENDENT
              key: 'hpe.primera.cpg.state["{#ID}",failed]'
              value_type: CHAR
              description: |
                Detailed state of the CPG:
                
                LDS_NOT_STARTED (1) - LDs not started.
                NOT_STARTED (2) - VV not started.
                NEEDS_CHECK (3) - check for consistency.
                NEEDS_MAINT_CHECK (4) - maintenance check is required.
                INTERNAL_CONSISTENCY_ERROR (5) - internal consistency error.
                SNAPDATA_INVALID (6) - invalid snapshot data.
                PRESERVED (7) - unavailable LD sets due to missing chunklets. Preserved remaining VV data.
                STALE (8) - parts of the VV contain old data because of a copy-on-write operation.
                COPY_FAILED (9) - a promote or copy operation to this volume failed.
                DEGRADED_AVAIL (10) - degraded due to availability.
                DEGRADED_PERF (11) - degraded due to performance.
                PROMOTING (12) - volume is the current target of a promote operation.
                COPY_TARGET (13) - volume is the current target of a physical copy operation.
                RESYNC_TARGET (14) - volume is the current target of a resynchronized copy operation.
                TUNING (15) - volume tuning is in progress.
                CLOSING (16) - volume is closing.
                REMOVING (17) - removing the volume.
                REMOVING_RETRY (18) - retrying a volume removal operation.
                CREATING (19) - creating a volume.
                COPY_SOURCE (20) - copy source.
                IMPORTING (21) - importing a volume.
                CONVERTING (22) - converting a volume.
                INVALID (23) - invalid.
                EXCLUSIVE (24) - local storage system has exclusive access to the volume.
                CONSISTENT (25) - volume is being imported consistently along with other volumes in the VV set.
                STANDBY (26) - volume in standby mode.
                SD_META_INCONSISTENT (27) - SD Meta Inconsistent.
                SD_NEEDS_FIX (28) - SD needs fix.
                SD_META_FIXING (29) - SD meta fix.
                UNKNOWN (999) - unknown state.
                NOT_SUPPORTED_BY_WSAPI (1000) - state not supported by WSAPI.
              valuemap:
                name: 'Volume detailed state enum'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.failedStates
                - type: JAVASCRIPT
                  parameters:
                    - 'return JSON.stringify(JSON.parse(value));'
              master_item:
                key: 'hpe.primera.cpg["{#ID}",data]'
              tags:
                - tag: component
                  value: cpg
                - tag: component
                  value: storage
                - tag: cpg
                  value: '{#NAME}'
            - uuid: 3fe9b7c875c248e3b09c98162e30ebf8
              name: 'CPG [{#NAME}]: State'
              type: DEPENDENT
              key: 'hpe.primera.cpg.state["{#ID}"]'
              description: |
                Overall state of the CPG:
                
                NORMAL (1) - normal operation;
                DEGRADED (2) - degraded state;
                FAILED (3) - abnormal operation;
                UNKNOWN (99) - unknown state.
              valuemap:
                name: 'State enum'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.state
              master_item:
                key: 'hpe.primera.cpg["{#ID}",data]'
              tags:
                - tag: component
                  value: cpg
                - tag: component
                  value: storage
                - tag: cpg
                  value: '{#NAME}'
              trigger_prototypes:
                - uuid: 32a29b7a4bf340ef8ab07a8db3bef309
                  expression: 'last(/HPE Primera by HTTP/hpe.primera.cpg.state["{#ID}"])=2'
                  name: 'HPE Primera: CPG [{#NAME}]: Degraded'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'CPG [{#NAME}] is in degraded state.'
                  tags:
                    - tag: scope
                      value: availability
                    - tag: scope
                      value: capacity
                - uuid: 85c26e64c8074e8b9ab52f20394afeee
                  expression: 'last(/HPE Primera by HTTP/hpe.primera.cpg.state["{#ID}"])=3'
                  name: 'HPE Primera: CPG [{#NAME}]: Failed'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: HIGH
                  description: 'CPG [{#NAME}] is in failed state.'
                  tags:
                    - tag: scope
                      value: availability
                    - tag: scope
                      value: capacity
            - uuid: 18544a7742af4678bd8c37ad84a8d137
              name: 'CPG [{#NAME}]: Number of TDVVs'
              type: DEPENDENT
              key: 'hpe.primera.cpg.tdvv["{#ID}",count]'
              description: 'Number of TDVVs (Thinly Deduplicated Virtual Volume) created in the CPG.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.numTDVVs
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: 'hpe.primera.cpg["{#ID}",data]'
              tags:
                - tag: component
                  value: cpg
                - tag: component
                  value: storage
                - tag: cpg
                  value: '{#NAME}'
            - uuid: f93dc70fa63a47da9253a447a67df685
              name: 'CPG [{#NAME}]: Number of TPVVs'
              type: DEPENDENT
              key: 'hpe.primera.cpg.tpvv["{#ID}",count]'
              description: 'Number of TPVVs (Thinly Provisioned Virtual Volumes) allocated in the CPG.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.numTPVVs
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: 'hpe.primera.cpg["{#ID}",data]'
              tags:
                - tag: component
                  value: cpg
                - tag: component
                  value: storage
                - tag: cpg
                  value: '{#NAME}'
            - uuid: 54afd11ca82b4f94861cc145ca681291
              name: 'CPG [{#NAME}]: Get CPG data'
              type: DEPENDENT
              key: 'hpe.primera.cpg["{#ID}",data]'
              history: '0'
              value_type: TEXT
              description: 'CPG {#NAME} data'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.members[?(@.id == "{#ID}")].first()'
              master_item:
                key: hpe.primera.get.cpgs
              tags:
                - tag: component
                  value: cpg
                - tag: component
                  value: raw
                - tag: cpg
                  value: '{#NAME}'
          graph_prototypes:
            - uuid: c5d1e864f752465eae8822c06d635aeb
              name: 'CPG [{#NAME}]: CPG space'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'HPE Primera by HTTP'
                    key: 'hpe.primera.cpg.space["{#ID}",free]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'HPE Primera by HTTP'
                    key: 'hpe.primera.cpg.space["{#ID}",shared]'
                - sortorder: '2'
                  color: 00611C
                  item:
                    host: 'HPE Primera by HTTP'
                    key: 'hpe.primera.cpg.space["{#ID}",total]'
            - uuid: 1ef5d5b0090c4f168da6f842972af688
              name: 'CPG [{#NAME}]: Number of virtual volumes'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'HPE Primera by HTTP'
                    key: 'hpe.primera.cpg.fpvv["{#ID}",count]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'HPE Primera by HTTP'
                    key: 'hpe.primera.cpg.tpvv["{#ID}",count]'
                - sortorder: '2'
                  color: 00611C
                  item:
                    host: 'HPE Primera by HTTP'
                    key: 'hpe.primera.cpg.tdvv["{#ID}",count]'
            - uuid: 4c15694d488f42d6bc5b9caf4fe9e049
              name: 'CPG [{#NAME}]: Raw space'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'HPE Primera by HTTP'
                    key: 'hpe.primera.cpg.space.raw["{#ID}",free]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'HPE Primera by HTTP'
                    key: 'hpe.primera.cpg.space.raw["{#ID}",shared]'
                - sortorder: '2'
                  color: 00611C
                  item:
                    host: 'HPE Primera by HTTP'
                    key: 'hpe.primera.cpg.space.raw["{#ID}",total]'
            - uuid: 0ffb02e0b9144e0583489ca1d1c8d2dd
              name: 'CPG [{#NAME}]: Snapshot administration space'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'HPE Primera by HTTP'
                    key: 'hpe.primera.cpg.space.sa["{#ID}",total]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'HPE Primera by HTTP'
                    key: 'hpe.primera.cpg.space.sa["{#ID}",used]'
                - sortorder: '2'
                  color: 00611C
                  item:
                    host: 'HPE Primera by HTTP'
                    key: 'hpe.primera.cpg.space.sa["{#ID}",raw_total]'
                - sortorder: '3'
                  color: F7941D
                  item:
                    host: 'HPE Primera by HTTP'
                    key: 'hpe.primera.cpg.space.sa["{#ID}",raw_used]'
            - uuid: d64484828dda48cbbf7dc0f8a9c2f34d
              name: 'CPG [{#NAME}]: Snapshot data space'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'HPE Primera by HTTP'
                    key: 'hpe.primera.cpg.space.sd["{#ID}",total]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'HPE Primera by HTTP'
                    key: 'hpe.primera.cpg.space.sd["{#ID}",used]'
                - sortorder: '2'
                  color: 00611C
                  item:
                    host: 'HPE Primera by HTTP'
                    key: 'hpe.primera.cpg.space.sd["{#ID}",raw_total]'
                - sortorder: '3'
                  color: F7941D
                  item:
                    host: 'HPE Primera by HTTP'
                    key: 'hpe.primera.cpg.space.sd["{#ID}",raw_used]'
            - uuid: dd590898a3644130b897f57e8837cb3a
              name: 'CPG [{#NAME}]: User data space'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'HPE Primera by HTTP'
                    key: 'hpe.primera.cpg.space.usr["{#ID}",total]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'HPE Primera by HTTP'
                    key: 'hpe.primera.cpg.space.usr["{#ID}",used]'
                - sortorder: '2'
                  color: 00611C
                  item:
                    host: 'HPE Primera by HTTP'
                    key: 'hpe.primera.cpg.space.usr["{#ID}",raw_total]'
                - sortorder: '3'
                  color: F7941D
                  item:
                    host: 'HPE Primera by HTTP'
                    key: 'hpe.primera.cpg.space.usr["{#ID}",raw_used]'
          master_item:
            key: hpe.primera.get.cpgs
          lld_macro_paths:
            - lld_macro: '{#ID}'
              path: $.id
            - lld_macro: '{#NAME}'
              path: $.name
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.members
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 6h
        - uuid: a83ed573e6ab40e8b7306178ddd2658b
          name: 'Disks discovery'
          type: DEPENDENT
          key: hpe.primera.disks.discovery
          description: 'List of physical disk resources.'
          item_prototypes:
            - uuid: 811d27264b5e41e3a9e9f397888cda47
              name: 'Disk [{#POSITION}]: Get disk data'
              type: DEPENDENT
              key: 'hpe.primera.disk["{#ID}",data]'
              history: '0'
              value_type: TEXT
              description: 'Disk [{#POSITION}] data'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.members[?(@.id == "{#ID}")].first()'
              master_item:
                key: hpe.primera.get.disks
              tags:
                - tag: component
                  value: disk
                - tag: component
                  value: raw
                - tag: disk
                  value: '{#POSITION}'
            - uuid: 40e074af5d7f44bb8691290971fc7c5c
              name: 'Disk [{#POSITION}]: Free size'
              type: DEPENDENT
              key: 'hpe.primera.disk["{#ID}",free_size]'
              units: B
              description: 'Physical disk free size.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.freeSizeMiB
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 10m
                - type: MULTIPLIER
                  parameters:
                    - '1048576'
              master_item:
                key: 'hpe.primera.disk["{#ID}",data]'
              tags:
                - tag: component
                  value: disk
                - tag: component
                  value: storage
                - tag: disk
                  value: '{#POSITION}'
            - uuid: 9bb7a86118614d339b4dee3238b261ff
              name: 'Disk [{#POSITION}]: Firmware version'
              type: DEPENDENT
              key: 'hpe.primera.disk["{#ID}",fw_version]'
              value_type: CHAR
              description: 'Physical disk firmware version.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.fwVersion
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: 'hpe.primera.disk["{#ID}",data]'
              tags:
                - tag: component
                  value: disk
                - tag: component
                  value: storage
                - tag: disk
                  value: '{#POSITION}'
            - uuid: 288f7eef0a7c43afa7a3623471c92097
              name: 'Disk [{#POSITION}]: Path A0 degraded'
              type: DEPENDENT
              key: 'hpe.primera.disk["{#ID}",loop_a0_degraded]'
              description: 'Indicates if this is a degraded path for the disk.'
              valuemap:
                name: Boolean
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.loopA0.degraded
                  error_handler: DISCARD_VALUE
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 10m
                - type: BOOL_TO_DECIMAL
              master_item:
                key: 'hpe.primera.disk["{#ID}",data]'
              tags:
                - tag: component
                  value: disk
                - tag: component
                  value: storage
                - tag: disk
                  value: '{#POSITION}'
              trigger_prototypes:
                - uuid: f1672a33f9404216a1ffdbe3fcefd0bf
                  expression: 'last(/HPE Primera by HTTP/hpe.primera.disk["{#ID}",loop_a0_degraded])=1'
                  name: 'HPE Primera: Disk [{#POSITION}]: Path A0 degraded'
                  priority: AVERAGE
                  description: 'Disk [{#POSITION}] path A0 in degraded state.'
                  tags:
                    - tag: scope
                      value: availability
            - uuid: 1e89322b49fb46bdacd22a562995f2fc
              name: 'Disk [{#POSITION}]: Path A1 degraded'
              type: DEPENDENT
              key: 'hpe.primera.disk["{#ID}",loop_a1_degraded]'
              description: 'Indicates if this is a degraded path for the disk.'
              valuemap:
                name: Boolean
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.loopA1.degraded
                  error_handler: DISCARD_VALUE
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 10m
                - type: BOOL_TO_DECIMAL
              master_item:
                key: 'hpe.primera.disk["{#ID}",data]'
              tags:
                - tag: component
                  value: disk
                - tag: component
                  value: storage
                - tag: disk
                  value: '{#POSITION}'
              trigger_prototypes:
                - uuid: a28b1b4cdc5d4cb4afd9b7dd5e5f4f46
                  expression: 'last(/HPE Primera by HTTP/hpe.primera.disk["{#ID}",loop_a1_degraded])=1'
                  name: 'HPE Primera: Disk [{#POSITION}]: Path A1 degraded'
                  priority: AVERAGE
                  description: 'Disk [{#POSITION}] path A1 in degraded state.'
                  tags:
                    - tag: scope
                      value: availability
            - uuid: 2b56e5a6ffbd4e6189fff707d508f955
              name: 'Disk [{#POSITION}]: Path B0 degraded'
              type: DEPENDENT
              key: 'hpe.primera.disk["{#ID}",loop_b0_degraded]'
              description: 'Indicates if this is a degraded path for the disk.'
              valuemap:
                name: Boolean
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.loopB0.degraded
                  error_handler: DISCARD_VALUE
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 10m
                - type: BOOL_TO_DECIMAL
              master_item:
                key: 'hpe.primera.disk["{#ID}",data]'
              tags:
                - tag: component
                  value: disk
                - tag: component
                  value: storage
                - tag: disk
                  value: '{#POSITION}'
              trigger_prototypes:
                - uuid: 0ff32326e7784111842198ac6457c5cc
                  expression: 'last(/HPE Primera by HTTP/hpe.primera.disk["{#ID}",loop_b0_degraded])=1'
                  name: 'HPE Primera: Disk [{#POSITION}]: Path B0 degraded'
                  priority: AVERAGE
                  description: 'Disk [{#POSITION}] path B0 in degraded state.'
                  tags:
                    - tag: scope
                      value: availability
            - uuid: cfb88804564d4e0c914760daec53276f
              name: 'Disk [{#POSITION}]: Path B1 degraded'
              type: DEPENDENT
              key: 'hpe.primera.disk["{#ID}",loop_b1_degraded]'
              description: 'Indicates if this is a degraded path for the disk.'
              valuemap:
                name: Boolean
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.loopB1.degraded
                  error_handler: DISCARD_VALUE
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 10m
                - type: BOOL_TO_DECIMAL
              master_item:
                key: 'hpe.primera.disk["{#ID}",data]'
              tags:
                - tag: component
                  value: disk
                - tag: component
                  value: storage
                - tag: disk
                  value: '{#POSITION}'
              trigger_prototypes:
                - uuid: d55532408f3c40408dbd05671c66b5f3
                  expression: 'last(/HPE Primera by HTTP/hpe.primera.disk["{#ID}",loop_b1_degraded])=1'
                  name: 'HPE Primera: Disk [{#POSITION}]: Path B1 degraded'
                  priority: AVERAGE
                  description: 'Disk [{#POSITION}] path B1 in degraded state.'
                  tags:
                    - tag: scope
                      value: availability
            - uuid: 1387d1129e4a418e91fb0e99179116f5
              name: 'Disk [{#POSITION}]: Manufacturer'
              type: DEPENDENT
              key: 'hpe.primera.disk["{#ID}",manufacturer]'
              value_type: CHAR
              description: 'Physical disk manufacturer.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.manufacturer
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: 'hpe.primera.disk["{#ID}",data]'
              tags:
                - tag: component
                  value: disk
                - tag: component
                  value: storage
                - tag: disk
                  value: '{#POSITION}'
            - uuid: 1892d6230e244e1089a5eca8654ba2fa
              name: 'Disk [{#POSITION}]: Model'
              type: DEPENDENT
              key: 'hpe.primera.disk["{#ID}",model]'
              value_type: CHAR
              description: 'Manufacturer''s device ID for disk.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.model
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: 'hpe.primera.disk["{#ID}",data]'
              tags:
                - tag: component
                  value: disk
                - tag: component
                  value: storage
                - tag: disk
                  value: '{#POSITION}'
            - uuid: 495ceedbdf1644fdb56cf56123c1ec01
              name: 'Disk [{#POSITION}]: RPM'
              type: DEPENDENT
              key: 'hpe.primera.disk["{#ID}",rpm]'
              units: '!rpm'
              description: 'RPM of the physical disk.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.RPM
                  error_handler: DISCARD_VALUE
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: 'hpe.primera.disk["{#ID}",data]'
              tags:
                - tag: component
                  value: disk
                - tag: component
                  value: storage
                - tag: disk
                  value: '{#POSITION}'
            - uuid: 07fa233e273d4d6e9813705d0afc82f5
              name: 'Disk [{#POSITION}]: Serial number'
              type: DEPENDENT
              key: 'hpe.primera.disk["{#ID}",serial_number]'
              value_type: CHAR
              description: 'Disk drive serial number.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.serialNumber
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: 'hpe.primera.disk["{#ID}",data]'
              tags:
                - tag: component
                  value: disk
                - tag: component
                  value: storage
                - tag: disk
                  value: '{#POSITION}'
            - uuid: acb23a0dc2674f57bada95dd12972662
              name: 'Disk [{#POSITION}]: State'
              type: DEPENDENT
              key: 'hpe.primera.disk["{#ID}",state]'
              description: |
                State of the physical disk:
                
                Normal (1) - physical disk is in Normal state;
                Degraded (2) - physical disk is not operating normally;
                New (3) - physical disk is new, needs to be admitted;
                Failed (4) - physical disk has failed;
                Unknown (99) - physical disk state is unknown.
              valuemap:
                name: 'diskState enum'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.state
                  error_handler: CUSTOM_VALUE
                  error_handler_params: '99'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: 'hpe.primera.disk["{#ID}",data]'
              tags:
                - tag: component
                  value: disk
                - tag: component
                  value: storage
                - tag: disk
                  value: '{#POSITION}'
              trigger_prototypes:
                - uuid: d8991103e26b4ffea5fb64dc3519eb63
                  expression: 'last(/HPE Primera by HTTP/hpe.primera.disk["{#ID}",state])=2'
                  name: 'HPE Primera: Disk [{#POSITION}]: Degraded'
                  priority: AVERAGE
                  description: 'Disk [{#POSITION}] in degraded state.'
                  tags:
                    - tag: scope
                      value: availability
                    - tag: scope
                      value: capacity
                - uuid: bc8c8281c3ac4742ba8f570a56753dd3
                  expression: 'last(/HPE Primera by HTTP/hpe.primera.disk["{#ID}",state])=3'
                  name: 'HPE Primera: Disk [{#POSITION}]: Failed'
                  priority: HIGH
                  description: 'Disk [{#POSITION}] in failed state.'
                  tags:
                    - tag: scope
                      value: availability
                    - tag: scope
                      value: capacity
                - uuid: d4bda084df0b4a489fac08d1acae4e17
                  expression: 'last(/HPE Primera by HTTP/hpe.primera.disk["{#ID}",state])=99'
                  name: 'HPE Primera: Disk [{#POSITION}]: Unknown issue'
                  priority: INFO
                  description: 'Disk [{#POSITION}] in unknown state.'
                  tags:
                    - tag: scope
                      value: availability
                    - tag: scope
                      value: capacity
            - uuid: 83395e3165c949e8997e93bfce0ac1d0
              name: 'Disk [{#POSITION}]: Total size'
              type: DEPENDENT
              key: 'hpe.primera.disk["{#ID}",total_size]'
              units: B
              description: 'Physical disk total size.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.totalSizeMiB
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
                - type: MULTIPLIER
                  parameters:
                    - '1048576'
              master_item:
                key: 'hpe.primera.disk["{#ID}",data]'
              tags:
                - tag: component
                  value: disk
                - tag: component
                  value: storage
                - tag: disk
                  value: '{#POSITION}'
          master_item:
            key: hpe.primera.get.disks
          lld_macro_paths:
            - lld_macro: '{#ID}'
              path: $.id
            - lld_macro: '{#POSITION}'
              path: $.position
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.members
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 6h
        - uuid: 77ae172949044c148ac8f56f05d3af33
          name: 'Hosts discovery'
          type: DEPENDENT
          key: hpe.primera.hosts.discovery
          filter:
            evaltype: AND
            conditions:
              - macro: '{#NAME}'
                operator: EXISTS
          description: 'List of host properties.'
          item_prototypes:
            - uuid: 142a03a36dbf477ebbcb99994efe4246
              name: 'Host [{#NAME}]: Comment'
              type: DEPENDENT
              key: 'hpe.primera.host["{#ID}",comment]'
              value_type: CHAR
              description: 'Additional information for the host.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.descriptors.comment
                  error_handler: DISCARD_VALUE
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: 'hpe.primera.host["{#ID}",data]'
              tags:
                - tag: component
                  value: host
                - tag: host
                  value: '{#NAME}'
            - uuid: 44a06761b5174c67ace5487b7ec9f0e5
              name: 'Host [{#NAME}]: Contact'
              type: DEPENDENT
              key: 'hpe.primera.host["{#ID}",contact]'
              value_type: CHAR
              description: 'The host''s owner and contact.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.descriptors.contact
                  error_handler: DISCARD_VALUE
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: 'hpe.primera.host["{#ID}",data]'
              tags:
                - tag: component
                  value: host
                - tag: host
                  value: '{#NAME}'
            - uuid: dfa476d826d34f6bb0f2015b06b6c272
              name: 'Host [{#NAME}]: Get host data'
              type: DEPENDENT
              key: 'hpe.primera.host["{#ID}",data]'
              history: '0'
              value_type: TEXT
              description: 'Host [{#NAME}] data'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.members[?(@.id == "{#ID}")].first()'
              master_item:
                key: hpe.primera.get.hosts
              tags:
                - tag: component
                  value: host
                - tag: component
                  value: raw
                - tag: host
                  value: '{#NAME}'
            - uuid: b3bd017e96d843248bbb9cb2240e861b
              name: 'Host [{#NAME}]: IP address'
              type: DEPENDENT
              key: 'hpe.primera.host["{#ID}",ipaddress]'
              value_type: CHAR
              description: 'The host''s IP address.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.descriptors.IPAddr
                  error_handler: DISCARD_VALUE
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: 'hpe.primera.host["{#ID}",data]'
              tags:
                - tag: component
                  value: host
                - tag: host
                  value: '{#NAME}'
            - uuid: 367466a0f7084e579f3c11d820dc7f04
              name: 'Host [{#NAME}]: Location'
              type: DEPENDENT
              key: 'hpe.primera.host["{#ID}",location]'
              value_type: CHAR
              description: 'The host''s location.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.descriptors.location
                  error_handler: DISCARD_VALUE
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: 'hpe.primera.host["{#ID}",data]'
              tags:
                - tag: component
                  value: host
                - tag: host
                  value: '{#NAME}'
            - uuid: 997e52f8f50e47738a1aefbcedaa5a82
              name: 'Host [{#NAME}]: Model'
              type: DEPENDENT
              key: 'hpe.primera.host["{#ID}",model]'
              value_type: CHAR
              description: 'The host''s model.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.descriptors.model
                  error_handler: DISCARD_VALUE
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: 'hpe.primera.host["{#ID}",data]'
              tags:
                - tag: component
                  value: host
                - tag: host
                  value: '{#NAME}'
            - uuid: 4db5068c8aea4940adb5f8863d50ef47
              name: 'Host [{#NAME}]: OS'
              type: DEPENDENT
              key: 'hpe.primera.host["{#ID}",os]'
              value_type: CHAR
              description: 'The operating system running on the host.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.descriptors.os
                  error_handler: DISCARD_VALUE
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: 'hpe.primera.host["{#ID}",data]'
              tags:
                - tag: component
                  value: host
                - tag: host
                  value: '{#NAME}'
          master_item:
            key: hpe.primera.get.hosts
          lld_macro_paths:
            - lld_macro: '{#ID}'
              path: $.id
            - lld_macro: '{#NAME}'
              path: $.name
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.members
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 6h
        - uuid: 3c9222777f2649749df76cbf61601557
          name: 'Ports discovery'
          type: DEPENDENT
          key: hpe.primera.ports.discovery
          filter:
            evaltype: AND
            conditions:
              - macro: '{#TYPE}'
                value: '3'
                operator: NOT_MATCHES_REGEX
          description: 'List of ports.'
          item_prototypes:
            - uuid: 3b3d82c9c161429294a69774ec0daf5d
              name: 'Port [{#NODE}:{#SLOT}:{#CARD.PORT}]: Get port data'
              type: DEPENDENT
              key: 'hpe.primera.port["{#NODE}:{#SLOT}:{#CARD.PORT}",data]'
              history: '0'
              value_type: TEXT
              description: 'Port [{#NODE}:{#SLOT}:{#CARD.PORT}] data'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.members[?(@.portPos.node == "{#NODE}" && @.portPos.slot == "{#SLOT}" && @.portPos.cardPort == "{#CARD.PORT}")].first()'
              master_item:
                key: hpe.primera.get.ports
              tags:
                - tag: component
                  value: port
                - tag: component
                  value: raw
                - tag: port
                  value: '{#NODE}:{#SLOT}:{#CARD.PORT}'
            - uuid: 9241e0b26de74ea49f28e1c09e15a2cd
              name: 'Port [{#NODE}:{#SLOT}:{#CARD.PORT}]: Failover state'
              type: DEPENDENT
              key: 'hpe.primera.port["{#NODE}:{#SLOT}:{#CARD.PORT}",failover_state]'
              description: |
                The state of the failover operation, shown for the two ports indicated in the N:S:P and Partner columns. The value can be one of the following:
                
                none (1) - no failover in operation;
                failover_pending (2) - in the process of failing over to partner;
                failed_over (3) - failed over to partner;
                active (4) - the partner port is failed over to this port;
                active_down (5) - the partner port is failed over to this port, but this port is down;
                active_failed (6) - the partner port is failed over to this port, but this port is down;
                failback_pending (7) - in the process of failing back from partner.
              valuemap:
                name: 'portFailOverState enum'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.failoverState
                  error_handler: DISCARD_VALUE
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: 'hpe.primera.port["{#NODE}:{#SLOT}:{#CARD.PORT}",data]'
              tags:
                - tag: component
                  value: port
                - tag: port
                  value: '{#NODE}:{#SLOT}:{#CARD.PORT}'
              trigger_prototypes:
                - uuid: 65f3f3b098984842b5246bfb5842bc78
                  expression: 'last(/HPE Primera by HTTP/hpe.primera.port["{#NODE}:{#SLOT}:{#CARD.PORT}",failover_state])<>1 and last(/HPE Primera by HTTP/hpe.primera.port["{#NODE}:{#SLOT}:{#CARD.PORT}",failover_state])<>4'
                  name: 'HPE Primera: Port [{#NODE}:{#SLOT}:{#CARD.PORT}]: Failover state is {ITEM.VALUE1}'
                  priority: AVERAGE
                  description: 'Port [{#NODE}:{#SLOT}:{#CARD.PORT}] has failover error.'
                  tags:
                    - tag: scope
                      value: availability
                    - tag: scope
                      value: capacity
            - uuid: 8abba6d6f6e749b0be277056421a1958
              name: 'Port [{#NODE}:{#SLOT}:{#CARD.PORT}]: Hardware type'
              type: DEPENDENT
              key: 'hpe.primera.port["{#NODE}:{#SLOT}:{#CARD.PORT}",hw_type]'
              description: |
                Hardware type:
                
                FC (1) - Fibre channel HBA;
                ETH (2) - Ethernet NIC;
                iSCSI (3) - iSCSI HBA;
                CNA (4) - Converged network adapter;
                SAS (5) - SAS HBA;
                COMBO (6) - Combo card;
                NVME (7) - NVMe drive;
                UNKNOWN (99) - unknown hardware type.
              valuemap:
                name: 'hardwareType enum'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.hardwareType
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: 'hpe.primera.port["{#NODE}:{#SLOT}:{#CARD.PORT}",data]'
              tags:
                - tag: component
                  value: port
                - tag: port
                  value: '{#NODE}:{#SLOT}:{#CARD.PORT}'
            - uuid: 55119ce474024203ac039f4aa797dd4c
              name: 'Port [{#NODE}:{#SLOT}:{#CARD.PORT}]: Link state'
              type: DEPENDENT
              key: 'hpe.primera.port["{#NODE}:{#SLOT}:{#CARD.PORT}",link_state]'
              description: |
                Port link state:
                
                CONFIG_WAIT (1) - configuration wait;
                ALPA_WAIT (2) - ALPA wait;
                LOGIN_WAIT (3) - login wait;
                READY (4) - link is ready;
                LOSS_SYNC (5) - link is loss sync;
                ERROR_STATE (6) - in error state;
                XXX (7) - xxx;
                NONPARTICIPATE (8) - link did not participate;
                COREDUMP (9) - taking coredump;
                OFFLINE (10) - link is offline;
                FWDEAD (11) - firmware is dead;
                IDLE_FOR_RESET (12) - link is idle for reset;
                DHCP_IN_PROGRESS (13) - DHCP is in progress;
                PENDING_RESET (14) - link reset is pending;
                NEW (15) - link in new. This value is applicable for only virtual ports;
                DISABLED (16) - link in disabled. This value is applicable for only virtual ports;
                DOWN (17) - link in down. This value is applicable for only virtual ports;
                FAILED (18) - link in failed. This value is applicable for only virtual ports;
                PURGING (19) - link in purging. This value is applicable for only virtual ports.
              valuemap:
                name: 'portLinkState enum'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.linkState
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: 'hpe.primera.port["{#NODE}:{#SLOT}:{#CARD.PORT}",data]'
              tags:
                - tag: component
                  value: port
                - tag: port
                  value: '{#NODE}:{#SLOT}:{#CARD.PORT}'
              trigger_prototypes:
                - uuid: c7ee19ea175d4c63a9ae67e0ab59253b
                  expression: 'last(/HPE Primera by HTTP/hpe.primera.port["{#NODE}:{#SLOT}:{#CARD.PORT}",link_state])<>4 and last(/HPE Primera by HTTP/hpe.primera.port["{#NODE}:{#SLOT}:{#CARD.PORT}",link_state])<>1 and last(/HPE Primera by HTTP/hpe.primera.port["{#NODE}:{#SLOT}:{#CARD.PORT}",link_state])<>3 and last(/HPE Primera by HTTP/hpe.primera.port["{#NODE}:{#SLOT}:{#CARD.PORT}",link_state])<>13 and last(/HPE Primera by HTTP/hpe.primera.port["{#NODE}:{#SLOT}:{#CARD.PORT}",link_state])<>15 and last(/HPE Primera by HTTP/hpe.primera.port["{#NODE}:{#SLOT}:{#CARD.PORT}",link_state])<>16'
                  name: 'HPE Primera: Port [{#NODE}:{#SLOT}:{#CARD.PORT}]: Link state is {ITEM.VALUE1}'
                  priority: HIGH
                  description: 'Port [{#NODE}:{#SLOT}:{#CARD.PORT}] not in ready state.'
                  tags:
                    - tag: scope
                      value: availability
                    - tag: scope
                      value: capacity
                - uuid: f0c8851f843e41dcb6820c943efcbe2f
                  expression: 'last(/HPE Primera by HTTP/hpe.primera.port["{#NODE}:{#SLOT}:{#CARD.PORT}",link_state])=1 or last(/HPE Primera by HTTP/hpe.primera.port["{#NODE}:{#SLOT}:{#CARD.PORT}",link_state])=3 or last(/HPE Primera by HTTP/hpe.primera.port["{#NODE}:{#SLOT}:{#CARD.PORT}",link_state])=13 or last(/HPE Primera by HTTP/hpe.primera.port["{#NODE}:{#SLOT}:{#CARD.PORT}",link_state])=15 or last(/HPE Primera by HTTP/hpe.primera.port["{#NODE}:{#SLOT}:{#CARD.PORT}",link_state])=16'
                  name: 'HPE Primera: Port [{#NODE}:{#SLOT}:{#CARD.PORT}]: Link state is {ITEM.VALUE1}'
                  priority: AVERAGE
                  description: 'Port [{#NODE}:{#SLOT}:{#CARD.PORT}] not in ready state.'
                  tags:
                    - tag: scope
                      value: availability
                    - tag: scope
                      value: capacity
            - uuid: c049e53b25bb4cb58cabbff1d91b3e88
              name: 'Port [{#NODE}:{#SLOT}:{#CARD.PORT}]: Type'
              type: DEPENDENT
              key: 'hpe.primera.port["{#NODE}:{#SLOT}:{#CARD.PORT}",type]'
              description: |
                Port connection type:
                
                HOST (1) - FC port connected to hosts or fabric;
                DISK (2) - FC port connected to disks;
                FREE (3) - port is not connected to hosts or disks;
                IPORT (4) - port is in iport mode;
                RCFC (5) - FC port used for remote copy;
                PEER (6) - FC port used for data migration;
                RCIP (7) - IP (Ethernet) port used for remote copy;
                ISCSI (8) - iSCSI (Ethernet) port connected to hosts;
                CNA (9) - CNA port, which can be FCoE or iSCSI;
                FS (10) - Ethernet File Persona ports.
              valuemap:
                name: 'portConnType enum'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.type
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: 'hpe.primera.port["{#NODE}:{#SLOT}:{#CARD.PORT}",data]'
              tags:
                - tag: component
                  value: port
                - tag: port
                  value: '{#NODE}:{#SLOT}:{#CARD.PORT}'
          master_item:
            key: hpe.primera.get.ports
          lld_macro_paths:
            - lld_macro: '{#CARD.PORT}'
              path: $.portPos.cardPort
            - lld_macro: '{#NODE}'
              path: $.portPos.node
            - lld_macro: '{#SLOT}'
              path: $.portPos.slot
            - lld_macro: '{#TYPE}'
              path: $.type
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.members
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 6h
        - uuid: b47a6afafca6486ea4ffb12dd3322bab
          name: 'Tasks discovery'
          type: DEPENDENT
          key: hpe.primera.tasks.discovery
          filter:
            evaltype: AND
            conditions:
              - macro: '{#NAME}'
                value: '{$HPE.PRIMERA.LLD.FILTER.TASK.NAME.MATCHES}'
              - macro: '{#NAME}'
                value: '{$HPE.PRIMERA.LLD.FILTER.TASK.NAME.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#TYPE}'
                value: '{$HPE.PRIMERA.LLD.FILTER.TASK.TYPE.MATCHES}'
              - macro: '{#TYPE}'
                value: '{$HPE.PRIMERA.LLD.FILTER.TASK.TYPE.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
          lifetime: 1d
          description: 'List of tasks started within last 24 hours.'
          item_prototypes:
            - uuid: 8c64d0364b0f40c8a73f51fe74962934
              name: 'Task [{#NAME}]: Get task data'
              type: DEPENDENT
              key: 'hpe.primera.task["{#ID}",data]'
              history: '0'
              value_type: TEXT
              description: 'Task [{#NAME}] data'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[?(@.id == "{#ID}")].first()'
              master_item:
                key: hpe.primera.get.tasks
              tags:
                - tag: component
                  value: raw
                - tag: component
                  value: task
                - tag: task
                  value: '{#NAME}'
            - uuid: cbcdf169dcf646cb959206bbb6cf3642
              name: 'Task [{#NAME}]: Finish time'
              type: DEPENDENT
              key: 'hpe.primera.task["{#ID}",finish_time]'
              units: unixtime
              description: 'Task finish time.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.finishTime
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
                - type: NOT_MATCHES_REGEX
                  parameters:
                    - ^-$
                  error_handler: DISCARD_VALUE
                - type: JAVASCRIPT
                  parameters:
                    - |
                      raw_date = value.split(' ');
                      
                      return Date.parse(raw_date[0] + 'T' + raw_date[1] + raw_date[2] + ':00')/1000;
              master_item:
                key: 'hpe.primera.task["{#ID}",data]'
              tags:
                - tag: component
                  value: task
                - tag: task
                  value: '{#NAME}'
            - uuid: 66140b134d954319a96eb17750da6b7c
              name: 'Task [{#NAME}]: Start time'
              type: DEPENDENT
              key: 'hpe.primera.task["{#ID}",start_time]'
              units: unixtime
              description: 'Task start time.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.startTime
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
                - type: JAVASCRIPT
                  parameters:
                    - |
                      raw_date = value.split(' ');
                      
                      return Date.parse(raw_date[0] + 'T' + raw_date[1] + raw_date[2] + ':00')/1000;
              master_item:
                key: 'hpe.primera.task["{#ID}",data]'
              tags:
                - tag: component
                  value: task
                - tag: task
                  value: '{#NAME}'
            - uuid: e01b3c84a6594e419c358c7ea297159b
              name: 'Task [{#NAME}]: Status'
              type: DEPENDENT
              key: 'hpe.primera.task["{#ID}",status]'
              description: |
                Task status:
                
                DONE (1) - task is finished;
                ACTIVE (2) - task is in progress;
                CANCELLED (3) - task is canceled;
                FAILED (4) - task failed.
              valuemap:
                name: 'taskStatus enum'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.status
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 10m
              master_item:
                key: 'hpe.primera.task["{#ID}",data]'
              tags:
                - tag: component
                  value: task
                - tag: task
                  value: '{#NAME}'
              trigger_prototypes:
                - uuid: 63340c376d86492198e00d7ae10f063c
                  expression: 'last(/HPE Primera by HTTP/hpe.primera.task["{#ID}",status])=3'
                  name: 'HPE Primera: Task [{#NAME}]: Cancelled'
                  priority: INFO
                  description: 'Task [{#NAME}] is cancelled.'
                  tags:
                    - tag: scope
                      value: notice
                - uuid: af326c0f259144d28ebeb60e19bae903
                  expression: 'last(/HPE Primera by HTTP/hpe.primera.task["{#ID}",status])=4'
                  name: 'HPE Primera: Task [{#NAME}]: Failed'
                  priority: AVERAGE
                  description: 'Task [{#NAME}] is failed.'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: a67262cd7be642b9b56194d8bbb7e928
              name: 'Task [{#NAME}]: Type'
              type: DEPENDENT
              key: 'hpe.primera.task["{#ID}",type]'
              description: |
                Task type:
                
                VV_COPY (1) - track the physical copy operations;
                PHYS_COPY_RESYNC (2) - track physical copy resynchronization operations;
                MOVE_REGIONS (3) - track region move operations;
                PROMOTE_SV (4) - track virtual-copy promotions;
                REMOTE_COPY_SYNC (5) - track remote copy group synchronizations;
                REMOTE_COPY_REVERSE (6) - track the reversal of a remote copy group;
                REMOTE_COPY_FAILOVER (7) - track the change-over of a secondary volume group to a primaryvolume group;REMOTE_COPY_RECOVER (8) - track synchronization start after a failover operation from originalsecondary cluster to original primary cluster;
                REMOTE_COPY_RESTORE (9) - tracks the restoration process for groups that have already been recovered;
                COMPACT_CPG (10) - track space consolidation in CPGs;
                COMPACT_IDS (11) - track space consolidation in logical disks;
                SNAPSHOT_ACCOUNTING (12) - track progress of snapshot space usage accounting;
                CHECK_VV (13) - track the progress of the check-volume operation;
                SCHEDULED_TASK (14) - track tasks that have been executed by the system scheduler;
                SYSTEM_TASK (15) - track tasks that are periodically run by the storage system;
                BACKGROUND_TASK (16) - track commands started using the starttask command;
                IMPORT_VV (17) - track tasks that migrate data to the local storage system;
                ONLINE_COPY (18) - track physical copy of the volume while online (createvvcopy-online command);
                CONVERT_VV (19) - track tasks that convert a volume from an FPVV to a TPVV, and the reverse;
                BACKGROUND_COMMAND (20) - track background command tasks;
                CLX_SYNC (21) - track CLX synchronization tasks;
                CLX_RECOVERY (22) - track CLX recovery tasks;
                TUNE_SD (23) - tune copy space;
                TUNE_VV (24) - tune virtual volume;
                TUNE_VV_ROLLBACK (25) - tune virtual volume rollback;
                TUNE_VV_RESTART (26) - tune virtual volume restart;
                SYSTEM_TUNING (27) - system tuning;
                NODE_RESCUE (28) - node rescue;
                REPAIR_SYNC (29) - remote copy repair sync;
                REMOTE_COPY_SWOVER (30) - remote copy switchover;
                DEFRAGMENTATION (31) - defragmentation;
                ENCRYPTION_CHANGE (32) - encryption change;
                REMOTE_COPY_FAILSAFE (33) - remote copy failsafe;
                TUNE_TPVV (34) - tune thin virtual volume;
                REMOTE_COPY_CHG_MODE (35) - remote copy change mode;
                ONLINE_PROMOTE (37) - online promote snap;
                RELOCATE_PD (38) - relocate PD;
                PERIODIC_CSS (39) - remote copy periodic CSS;
                TUNEVV_LARGE (40) - tune large virtual volume;
                SD_META_FIXER (41) - compression SD meta fixer;
                DEDUP_DRYRUN (42) - preview dedup ratio;
                COMPR_DRYRUN (43) - compression estimation;
                DEDUP_COMPR_DRYRUN (44) - compression and dedup estimation;
                UNKNOWN (99) - unknown task type.
              valuemap:
                name: 'taskType enum'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.type
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: 'hpe.primera.task["{#ID}",data]'
              tags:
                - tag: component
                  value: task
                - tag: task
                  value: '{#NAME}'
          master_item:
            key: hpe.primera.get.tasks
          lld_macro_paths:
            - lld_macro: '{#ID}'
              path: $.id
            - lld_macro: '{#NAME}'
              path: $.name
            - lld_macro: '{#TYPE}'
              path: $.type
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 6h
        - uuid: eb73fcc415c54ac18840d2655f048f6c
          name: 'Volumes discovery'
          type: DEPENDENT
          key: hpe.primera.volumes.discovery
          filter:
            evaltype: AND
            conditions:
              - macro: '{#NAME}'
                value: '{$HPE.PRIMERA.VOLUME.NAME.MATCHES}'
              - macro: '{#NAME}'
                value: '{$HPE.PRIMERA.VOLUME.NAME.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
          description: 'List of storage volume resources.'
          item_prototypes:
            - uuid: 40db4c8f6d85414e843c97770225f93d
              name: 'Volume [{#NAME}]: Compaction ratio'
              type: DEPENDENT
              key: 'hpe.primera.volume.capacity.efficiency["{#ID}",compaction]'
              value_type: FLOAT
              description: 'The compaction ratio indicates the overall amount of storage space saved with thin technology.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.capacityEfficiency.compaction
                  error_handler: DISCARD_VALUE
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: 'hpe.primera.volume["{#ID}",data]'
              tags:
                - tag: component
                  value: storage
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#NAME}'
            - uuid: ab2a583c4b4049a6ac8b7bbc02bda8f5
              name: 'Volume [{#NAME}]: Storage space saved using compression'
              type: DEPENDENT
              key: 'hpe.primera.volume.capacity.efficiency["{#ID}",compression]'
              value_type: FLOAT
              description: 'Indicates the amount of storage space saved using compression.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.capacityEfficiency.compression
                  error_handler: DISCARD_VALUE
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: 'hpe.primera.volume["{#ID}",data]'
              tags:
                - tag: component
                  value: storage
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#NAME}'
            - uuid: 1c4d78b2dcd64efbbf710ef602a94573
              name: 'Volume [{#NAME}]: Storage space saved using deduplication'
              type: DEPENDENT
              key: 'hpe.primera.volume.capacity.efficiency["{#ID}",deduplication]'
              value_type: FLOAT
              description: 'Indicates the amount of storage space saved using deduplication.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.capacityEfficiency.deduplication
                  error_handler: DISCARD_VALUE
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: 'hpe.primera.volume["{#ID}",data]'
              tags:
                - tag: component
                  value: storage
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#NAME}'
            - uuid: 3b88e49e88484fe4a77e2a96f6d48322
              name: 'Volume [{#NAME}]: Overprovisioning ratio'
              type: DEPENDENT
              key: 'hpe.primera.volume.capacity.efficiency["{#ID}",overprovisioning]'
              value_type: FLOAT
              description: 'Overprovisioning capacity efficiency ratio.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.capacityEfficiency.overProvisioning
                  error_handler: DISCARD_VALUE
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: 'hpe.primera.volume["{#ID}",data]'
              tags:
                - tag: component
                  value: storage
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#NAME}'
            - uuid: f584938e60f94c46b4ed28cc614c797d
              name: 'Volume [{#NAME}]: Storage space saved using deduplication and compression'
              type: DEPENDENT
              key: 'hpe.primera.volume.capacity.efficiency["{#ID}",reduction]'
              value_type: FLOAT
              description: 'Indicates the amount of storage space saved using deduplication and compression together.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.capacityEfficiency.dataReduction
                  error_handler: DISCARD_VALUE
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: 'hpe.primera.volume["{#ID}",data]'
              tags:
                - tag: component
                  value: storage
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#NAME}'
            - uuid: bb78eda6a941407581f78cf29ef2b647
              name: 'Volume [{#NAME}]: Administrative space: Free'
              type: DEPENDENT
              key: 'hpe.primera.volume.space.admin["{#ID}",free]'
              units: B
              description: 'Free administrative space.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.adminSpace.freeMiB
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 10m
                - type: MULTIPLIER
                  parameters:
                    - '1048576'
              master_item:
                key: 'hpe.primera.volume["{#ID}",data]'
              tags:
                - tag: component
                  value: storage
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#NAME}'
            - uuid: e4f9f8f5c1cd494896eba973b072fc57
              name: 'Volume [{#NAME}]: Administrative space: Raw reserved'
              type: DEPENDENT
              key: 'hpe.primera.volume.space.admin["{#ID}",raw_reserved]'
              units: B
              description: 'Raw reserved administrative space.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.adminSpace.rawReservedMiB
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
                - type: MULTIPLIER
                  parameters:
                    - '1048576'
              master_item:
                key: 'hpe.primera.volume["{#ID}",data]'
              tags:
                - tag: component
                  value: storage
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#NAME}'
            - uuid: e5a93a042a3b41bab4cf59dc71ec66bf
              name: 'Volume [{#NAME}]: Administrative space: Reserved'
              type: DEPENDENT
              key: 'hpe.primera.volume.space.admin["{#ID}",reserved]'
              units: B
              description: 'Reserved administrative space.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.adminSpace.reservedMiB
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
                - type: MULTIPLIER
                  parameters:
                    - '1048576'
              master_item:
                key: 'hpe.primera.volume["{#ID}",data]'
              tags:
                - tag: component
                  value: storage
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#NAME}'
            - uuid: 67e182afc0124cf5913b0499317a7966
              name: 'Volume [{#NAME}]: Administrative space: Used'
              type: DEPENDENT
              key: 'hpe.primera.volume.space.admin["{#ID}",used]'
              units: B
              description: 'Used administrative space.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.adminSpace.usedMiB
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 10m
                - type: MULTIPLIER
                  parameters:
                    - '1048576'
              master_item:
                key: 'hpe.primera.volume["{#ID}",data]'
              tags:
                - tag: component
                  value: storage
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#NAME}'
            - uuid: 5d4659c72ed3492da143ad9c37e71360
              name: 'Volume [{#NAME}]: Snapshot space: Free'
              type: DEPENDENT
              key: 'hpe.primera.volume.space.snapshot["{#ID}",free]'
              units: B
              description: 'Free snapshot space.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.snapshotSpace.freeMiB
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 10m
                - type: MULTIPLIER
                  parameters:
                    - '1048576'
              master_item:
                key: 'hpe.primera.volume["{#ID}",data]'
              tags:
                - tag: component
                  value: storage
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#NAME}'
            - uuid: a2c22eed1c004bcc9292b945b5038858
              name: 'Volume [{#NAME}]: Snapshot space: Raw reserved'
              type: DEPENDENT
              key: 'hpe.primera.volume.space.snapshot["{#ID}",raw_reserved]'
              units: B
              description: 'Raw reserved snapshot space.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.snapshotSpace.rawReservedMiB
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
                - type: MULTIPLIER
                  parameters:
                    - '1048576'
              master_item:
                key: 'hpe.primera.volume["{#ID}",data]'
              tags:
                - tag: component
                  value: storage
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#NAME}'
            - uuid: a37265c4598f4179bdcfd816769a1d9b
              name: 'Volume [{#NAME}]: Snapshot space: Reserved'
              type: DEPENDENT
              key: 'hpe.primera.volume.space.snapshot["{#ID}",reserved]'
              units: B
              description: 'Reserved snapshot space.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.snapshotSpace.reservedMiB
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
                - type: MULTIPLIER
                  parameters:
                    - '1048576'
              master_item:
                key: 'hpe.primera.volume["{#ID}",data]'
              tags:
                - tag: component
                  value: storage
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#NAME}'
            - uuid: a278f5ec08c747b085ec53a36357539c
              name: 'Volume [{#NAME}]: Snapshot space: Used'
              type: DEPENDENT
              key: 'hpe.primera.volume.space.snapshot["{#ID}",used]'
              units: B
              description: 'Used snapshot space.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.snapshotSpace.usedMiB
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 10m
                - type: MULTIPLIER
                  parameters:
                    - '1048576'
              master_item:
                key: 'hpe.primera.volume["{#ID}",data]'
              tags:
                - tag: component
                  value: storage
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#NAME}'
            - uuid: 64825e4092c6450a8ea7fb7bce2d85ce
              name: 'Volume [{#NAME}]: Total reserved space'
              type: DEPENDENT
              key: 'hpe.primera.volume.space.total["{#ID}",reserved]'
              units: B
              description: 'Total reserved space.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.totalReservedMiB
                  error_handler: DISCARD_VALUE
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
                - type: MULTIPLIER
                  parameters:
                    - '1048576'
              master_item:
                key: 'hpe.primera.volume["{#ID}",data]'
              tags:
                - tag: component
                  value: storage
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#NAME}'
            - uuid: af15ec5befd146afbfb2b9cc017d03be
              name: 'Volume [{#NAME}]: Total space'
              type: DEPENDENT
              key: 'hpe.primera.volume.space.total["{#ID}",size]'
              units: B
              description: 'Virtual size of volume.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.sizeMiB
                  error_handler: DISCARD_VALUE
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
                - type: MULTIPLIER
                  parameters:
                    - '1048576'
              master_item:
                key: 'hpe.primera.volume["{#ID}",data]'
              tags:
                - tag: component
                  value: storage
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#NAME}'
            - uuid: 6000ab524b394e65afe111b65f7b6fd8
              name: 'Volume [{#NAME}]: Total used space'
              type: DEPENDENT
              key: 'hpe.primera.volume.space.total["{#ID}",used]'
              units: B
              description: 'Total used space. Sum of used user space and used snapshot space.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.totalUsedMiB
                  error_handler: DISCARD_VALUE
                - type: MULTIPLIER
                  parameters:
                    - '1048576'
              master_item:
                key: 'hpe.primera.volume["{#ID}",data]'
              tags:
                - tag: component
                  value: storage
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#NAME}'
            - uuid: 43c278563b174005ac5302ee48e0cd30
              name: 'Volume [{#NAME}]: User space: Free'
              type: DEPENDENT
              key: 'hpe.primera.volume.space.user["{#ID}",free]'
              units: B
              description: 'Free user space.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.userSpace.freeMiB
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 10m
                - type: MULTIPLIER
                  parameters:
                    - '1048576'
              master_item:
                key: 'hpe.primera.volume["{#ID}",data]'
              tags:
                - tag: component
                  value: storage
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#NAME}'
            - uuid: 97aaefe8dffd4d2eb83f908ac8ad775b
              name: 'Volume [{#NAME}]: User space: Raw reserved'
              type: DEPENDENT
              key: 'hpe.primera.volume.space.user["{#ID}",raw_reserved]'
              units: B
              description: 'Raw reserved user space.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.userSpace.rawReservedMiB
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
                - type: MULTIPLIER
                  parameters:
                    - '1048576'
              master_item:
                key: 'hpe.primera.volume["{#ID}",data]'
              tags:
                - tag: component
                  value: storage
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#NAME}'
            - uuid: 135ad5457781492db1cec36787151a71
              name: 'Volume [{#NAME}]: User space: Reserved'
              type: DEPENDENT
              key: 'hpe.primera.volume.space.user["{#ID}",reserved]'
              units: B
              description: 'Reserved user space.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.userSpace.reservedMiB
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
                - type: MULTIPLIER
                  parameters:
                    - '1048576'
              master_item:
                key: 'hpe.primera.volume["{#ID}",data]'
              tags:
                - tag: component
                  value: storage
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#NAME}'
            - uuid: 3adf03216c4f442693fccbb991c0de3d
              name: 'Volume [{#NAME}]: User space: Used'
              type: DEPENDENT
              key: 'hpe.primera.volume.space.user["{#ID}",used]'
              units: B
              description: 'Used user space.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.userSpace.usedMiB
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 10m
                - type: MULTIPLIER
                  parameters:
                    - '1048576'
              master_item:
                key: 'hpe.primera.volume["{#ID}",data]'
              tags:
                - tag: component
                  value: storage
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#NAME}'
            - uuid: beb17415bd07492d83944da714c492e7
              name: 'Volume [{#NAME}]: Compression state'
              type: DEPENDENT
              key: 'hpe.primera.volume.state["{#ID}",compression]'
              description: |
                Volume compression state:
                
                YES (1) - compression is enabled on the volume;
                NO (2) - compression is disabled on the volume;
                OFF (3) - compression is turned off;
                NA (4) - compression is not available on the volume.
              valuemap:
                name: 'Volume compressionState enum'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.compressionState
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: 'hpe.primera.volume["{#ID}",data]'
              tags:
                - tag: component
                  value: storage
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#NAME}'
            - uuid: 3962d07122a0460fa36c1b151a87717b
              name: 'Volume [{#NAME}]: Deduplication state'
              type: DEPENDENT
              key: 'hpe.primera.volume.state["{#ID}",deduplication]'
              description: |
                Volume deduplication state:
                
                YES (1) - enables deduplication on the volume;
                NO (2) - disables deduplication on the volume;
                NA (3) - deduplication is not available;
                OFF (4) - deduplication is turned off.
              valuemap:
                name: 'Volume deduplicationState enum'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.deduplicationState
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: 'hpe.primera.volume["{#ID}",data]'
              tags:
                - tag: component
                  value: storage
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#NAME}'
            - uuid: 83222faf4e3e414789e028e0b17350c6
              name: 'Volume [{#NAME}]: Degraded state'
              type: DEPENDENT
              key: 'hpe.primera.volume.state["{#ID}",degraded]'
              value_type: CHAR
              description: |
                Volume detailed state:
                
                LDS_NOT_STARTED (1) - LDs not started.
                NOT_STARTED (2) - VV not started.
                NEEDS_CHECK (3) - check for consistency.
                NEEDS_MAINT_CHECK (4) - maintenance check is required.
                INTERNAL_CONSISTENCY_ERROR (5) - internal consistency error.
                SNAPDATA_INVALID (6) - invalid snapshot data.
                PRESERVED (7) - unavailable LD sets due to missing chunklets. Preserved remaining VV data.
                STALE (8) - parts of the VV contain old data because of a copy-on-write operation.
                COPY_FAILED (9) - a promote or copy operation to this volume failed.
                DEGRADED_AVAIL (10) - degraded due to availability.
                DEGRADED_PERF (11) - degraded due to performance.
                PROMOTING (12) - volume is the current target of a promote operation.
                COPY_TARGET (13) - volume is the current target of a physical copy operation.
                RESYNC_TARGET (14) - volume is the current target of a resynchronized copy operation.
                TUNING (15) - volume tuning is in progress.
                CLOSING (16) - volume is closing.
                REMOVING (17) - removing the volume.
                REMOVING_RETRY (18) - retrying a volume removal operation.
                CREATING (19) - creating a volume.
                COPY_SOURCE (20) - copy source.
                IMPORTING (21) - importing a volume.
                CONVERTING (22) - converting a volume.
                INVALID (23) - invalid.
                EXCLUSIVE (24) - local storage system has exclusive access to the volume.
                CONSISTENT (25) - volume is being imported consistently along with other volumes in the VV set.
                STANDBY (26) - volume in standby mode.
                SD_META_INCONSISTENT (27) - SD Meta Inconsistent.
                SD_NEEDS_FIX (28) - SD needs fix.
                SD_META_FIXING (29) - SD meta fix.
                UNKNOWN (999) - unknown state.
                NOT_SUPPORTED_BY_WSAPI (1000) - state not supported by WSAPI.
              valuemap:
                name: 'Volume detailed state enum'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.degradedStates
              master_item:
                key: 'hpe.primera.volume["{#ID}",data]'
              tags:
                - tag: component
                  value: storage
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#NAME}'
            - uuid: 462e4b491dd94c78b299178af6d34ca0
              name: 'Volume [{#NAME}]: Failed state'
              type: DEPENDENT
              key: 'hpe.primera.volume.state["{#ID}",failed]'
              value_type: CHAR
              description: |
                Volume detailed state:
                
                LDS_NOT_STARTED (1) - LDs not started.
                NOT_STARTED (2) - VV not started.
                NEEDS_CHECK (3) - check for consistency.
                NEEDS_MAINT_CHECK (4) - maintenance check is required.
                INTERNAL_CONSISTENCY_ERROR (5) - internal consistency error.
                SNAPDATA_INVALID (6) - invalid snapshot data.
                PRESERVED (7) - unavailable LD sets due to missing chunklets. Preserved remaining VV data.
                STALE (8) - parts of the VV contain old data because of a copy-on-write operation.
                COPY_FAILED (9) - a promote or copy operation to this volume failed.
                DEGRADED_AVAIL (10) - degraded due to availability.
                DEGRADED_PERF (11) - degraded due to performance.
                PROMOTING (12) - volume is the current target of a promote operation.
                COPY_TARGET (13) - volume is the current target of a physical copy operation.
                RESYNC_TARGET (14) - volume is the current target of a resynchronized copy operation.
                TUNING (15) - volume tuning is in progress.
                CLOSING (16) - volume is closing.
                REMOVING (17) - removing the volume.
                REMOVING_RETRY (18) - retrying a volume removal operation.
                CREATING (19) - creating a volume.
                COPY_SOURCE (20) - copy source.
                IMPORTING (21) - importing a volume.
                CONVERTING (22) - converting a volume.
                INVALID (23) - invalid.
                EXCLUSIVE (24) - local storage system has exclusive access to the volume.
                CONSISTENT (25) - volume is being imported consistently along with other volumes in the VV set.
                STANDBY (26) - volume in standby mode.
                SD_META_INCONSISTENT (27) - SD Meta Inconsistent.
                SD_NEEDS_FIX (28) - SD needs fix.
                SD_META_FIXING (29) - SD meta fix.
                UNKNOWN (999) - unknown state.
                NOT_SUPPORTED_BY_WSAPI (1000) - state not supported by WSAPI.
              valuemap:
                name: 'Volume detailed state enum'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.failedStates
                - type: JAVASCRIPT
                  parameters:
                    - 'return JSON.stringify(JSON.parse(value));'
              master_item:
                key: 'hpe.primera.volume["{#ID}",data]'
              tags:
                - tag: component
                  value: storage
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#NAME}'
            - uuid: 4d4e34fdbac84cada109cbfe9b69812c
              name: 'Volume [{#NAME}]: State'
              type: DEPENDENT
              key: 'hpe.primera.volume.state["{#ID}"]'
              description: |
                State of the volume:
                
                NORMAL (1) - normal operation;
                DEGRADED (2) - degraded state;
                FAILED (3) - abnormal operation;
                UNKNOWN (99) - unknown state.
              valuemap:
                name: 'State enum'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.state
              master_item:
                key: 'hpe.primera.volume["{#ID}",data]'
              tags:
                - tag: component
                  value: storage
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#NAME}'
              trigger_prototypes:
                - uuid: c91920ca3ceb457cb9e2db0bb70d7fe0
                  expression: 'last(/HPE Primera by HTTP/hpe.primera.volume.state["{#ID}"])=2'
                  name: 'HPE Primera: Volume [{#NAME}]: Degraded'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'Volume [{#NAME}] is in degraded state.'
                  tags:
                    - tag: scope
                      value: availability
                    - tag: scope
                      value: capacity
                - uuid: 394b5bd072ac41acb0702601c5d5f049
                  expression: 'last(/HPE Primera by HTTP/hpe.primera.volume.state["{#ID}"])=3'
                  name: 'HPE Primera: Volume [{#NAME}]: Failed'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: HIGH
                  description: 'Volume [{#NAME}] is in failed state.'
                  tags:
                    - tag: scope
                      value: availability
                    - tag: scope
                      value: capacity
            - uuid: 582544eb48d04a35ab03a9d01901feb9
              name: 'Volume [{#NAME}]: Remote copy status'
              type: DEPENDENT
              key: 'hpe.primera.volume.status["{#ID}",rcopy]'
              value_type: CHAR
              description: |
                Remote copy status of the volume:
                
                NONE (1) - volume is not associated with remote copy;
                PRIMARY (2) - volume is the primary copy;
                SECONDARY (3) - volume is the secondary copy;
                SNAP (4) - volume is the remote copy snapshot;
                SYNC (5) - volume is a remote copy snapshot being used for synchronization;
                DELETE (6) - volume is a remote copy snapshot that is marked for deletion;
                UNKNOWN (99) - remote copy status is unknown for this volume.
              valuemap:
                name: 'rcopyStatus enum'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.rcopyStatus
              master_item:
                key: 'hpe.primera.volume["{#ID}",data]'
              tags:
                - tag: component
                  value: storage
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#NAME}'
            - uuid: 37c200429b414e149fb970c269721154
              name: 'Volume [{#NAME}]: Get volume data'
              type: DEPENDENT
              key: 'hpe.primera.volume["{#ID}",data]'
              history: '0'
              value_type: TEXT
              description: 'Volume [{#NAME}] data'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.members[?(@.id == "{#ID}")].first()'
              master_item:
                key: hpe.primera.get.volumes
              tags:
                - tag: component
                  value: raw
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#NAME}'
          graph_prototypes:
            - uuid: 8c7139d2b7d94773ad6ef813c7fa59c9
              name: 'Volume [{#NAME}]: Administrative space'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'HPE Primera by HTTP'
                    key: 'hpe.primera.volume.space.admin["{#ID}",free]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'HPE Primera by HTTP'
                    key: 'hpe.primera.volume.space.admin["{#ID}",raw_reserved]'
                - sortorder: '2'
                  color: 00611C
                  item:
                    host: 'HPE Primera by HTTP'
                    key: 'hpe.primera.volume.space.admin["{#ID}",reserved]'
                - sortorder: '3'
                  color: F7941D
                  item:
                    host: 'HPE Primera by HTTP'
                    key: 'hpe.primera.volume.space.admin["{#ID}",used]'
            - uuid: c74b88d4e61d4264b804965854eb1da1
              name: 'Volume [{#NAME}]: Capacity efficiency: Ratio'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'HPE Primera by HTTP'
                    key: 'hpe.primera.volume.capacity.efficiency["{#ID}",compaction]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'HPE Primera by HTTP'
                    key: 'hpe.primera.volume.capacity.efficiency["{#ID}",overprovisioning]'
            - uuid: d2a75ebb20c94eb4ab5e6a9b13d1d439
              name: 'Volume [{#NAME}]: Capacity efficiency: Space saved'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'HPE Primera by HTTP'
                    key: 'hpe.primera.volume.capacity.efficiency["{#ID}",compression]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'HPE Primera by HTTP'
                    key: 'hpe.primera.volume.capacity.efficiency["{#ID}",deduplication]'
                - sortorder: '2'
                  color: 00611C
                  item:
                    host: 'HPE Primera by HTTP'
                    key: 'hpe.primera.volume.capacity.efficiency["{#ID}",reduction]'
            - uuid: 7214605009354fd382368ec8699d5474
              name: 'Volume [{#NAME}]: Snapshot space'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'HPE Primera by HTTP'
                    key: 'hpe.primera.volume.space.snapshot["{#ID}",free]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'HPE Primera by HTTP'
                    key: 'hpe.primera.volume.space.snapshot["{#ID}",raw_reserved]'
                - sortorder: '2'
                  color: 00611C
                  item:
                    host: 'HPE Primera by HTTP'
                    key: 'hpe.primera.volume.space.snapshot["{#ID}",reserved]'
                - sortorder: '3'
                  color: F7941D
                  item:
                    host: 'HPE Primera by HTTP'
                    key: 'hpe.primera.volume.space.snapshot["{#ID}",used]'
            - uuid: 0ad9f609419340168bf7f49de98e0135
              name: 'Volume [{#NAME}]: User space'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'HPE Primera by HTTP'
                    key: 'hpe.primera.volume.space.user["{#ID}",free]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'HPE Primera by HTTP'
                    key: 'hpe.primera.volume.space.user["{#ID}",raw_reserved]'
                - sortorder: '2'
                  color: 00611C
                  item:
                    host: 'HPE Primera by HTTP'
                    key: 'hpe.primera.volume.space.user["{#ID}",reserved]'
                - sortorder: '3'
                  color: F7941D
                  item:
                    host: 'HPE Primera by HTTP'
                    key: 'hpe.primera.volume.space.user["{#ID}",used]'
          master_item:
            key: hpe.primera.get.volumes
          lld_macro_paths:
            - lld_macro: '{#ID}'
              path: $.id
            - lld_macro: '{#NAME}'
              path: $.name
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.members
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 6h
      tags:
        - tag: class
          value: hardware
        - tag: class
          value: storage
        - tag: subclass
          value: server
        - tag: target
          value: hpe
        - tag: target
          value: primera
      macros:
        - macro: '{$HPE.PRIMERA.API.HOST}'
          description: 'The hostname or IP address of the API host.'
          config:
            type: TEXT
            priority: '9'
            label: Address
            description: 'The hostname or IP address of the API host.'
            required: 'YES'
        - macro: '{$HPE.PRIMERA.API.PASSWORD}'
          type: SECRET_TEXT
          description: 'Specify password for WSAPI.'
          config:
            type: TEXT
            priority: '1'
            label: Password
            description: 'Specify password for WSAPI.'
            required: 'YES'
        - macro: '{$HPE.PRIMERA.API.PORT}'
          value: '443'
          description: 'The WSAPI port.'
          config:
            type: TEXT
            priority: '10'
            label: Port
            description: 'The WSAPI port. In the range from 1 to 65535 inclusive.'
            required: 'YES'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$HPE.PRIMERA.API.SCHEME}'
          value: https
          description: 'The WSAPI scheme (http/https).'
          config:
            type: TEXT
            priority: '8'
            label: Scheme
            description: 'The WSAPI scheme (http/https).'
            required: 'YES'
        - macro: '{$HPE.PRIMERA.API.USERNAME}'
          value: zabbix
          description: 'Specify user name for WSAPI.'
          config:
            type: TEXT
            priority: '2'
            label: Username
            description: 'Specify user name for WSAPI.'
            required: 'YES'
        - macro: '{$HPE.PRIMERA.CPG.NAME.MATCHES}'
          value: '.*'
          description: 'This macro is used in filters of CPGs discovery rule.'
          config:
            type: TEXT
            priority: '13'
            section_name: Filters
            label: 'CPGs discovery filter (include)'
            description: 'This macro is used in filters of CPGs discovery rule.'
        - macro: '{$HPE.PRIMERA.CPG.NAME.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          description: 'This macro is used in filters of CPGs discovery rule.'
          config:
            type: TEXT
            priority: '14'
            section_name: Filters
            label: 'CPGs discovery filter (exclude)'
            description: 'This macro is used in filters of CPGs discovery rule.'
        - macro: '{$HPE.PRIMERA.DATA.TIMEOUT}'
          value: 15s
          description: 'Response timeout for WSAPI.'
          config:
            type: TEXT
            priority: '7'
            section_name: Other
            label: 'WSAPI response timeout'
            description: 'Response timeout for WSAPI.'
        - macro: '{$HPE.PRIMERA.LLD.FILTER.TASK.NAME.MATCHES}'
          value: CHANGE_IF_NEEDED
          description: 'Filter of discoverable tasks by name.'
          config:
            type: TEXT
            priority: '3'
            section_name: Filters
            label: 'Filter for tasks (include)'
            description: 'Filter of discoverable tasks by name.'
        - macro: '{$HPE.PRIMERA.LLD.FILTER.TASK.NAME.NOT_MATCHES}'
          value: '.*'
          description: 'Filter to exclude discovered tasks by name.'
          config:
            type: TEXT
            priority: '4'
            section_name: Filters
            label: 'Filter for tasks (exclude)'
            description: 'Filter to exclude discovered tasks by name.'
        - macro: '{$HPE.PRIMERA.LLD.FILTER.TASK.TYPE.MATCHES}'
          value: '.*'
          description: 'Filter of discoverable tasks by type.'
          config:
            type: TEXT
            priority: '5'
            section_name: Filters
            label: 'Filter for tasks by type (include)'
            description: 'Filter of discoverable tasks by type.'
        - macro: '{$HPE.PRIMERA.LLD.FILTER.TASK.TYPE.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          description: 'Filter to exclude discovered tasks by type.'
          config:
            type: TEXT
            priority: '6'
            section_name: Filters
            label: 'Filter for tasks by type (exclude)'
            description: 'Filter to exclude discovered tasks by type.'
        - macro: '{$HPE.PRIMERA.VOLUME.NAME.MATCHES}'
          value: '.*'
          description: 'This macro is used in filters of volume discovery rule.'
          config:
            type: TEXT
            priority: '11'
            section_name: Filters
            label: 'Volume discovery filter (include)'
            description: 'This macro is used in filters of volume discovery rule.'
        - macro: '{$HPE.PRIMERA.VOLUME.NAME.NOT_MATCHES}'
          value: ^(admin|.srdata|.mgmtdata)$
          description: 'This macro is used in filters of volume discovery rule.'
          config:
            type: TEXT
            priority: '12'
            section_name: Filters
            label: 'Volume discovery filter (exclude)'
            description: 'This macro is used in filters of volume discovery rule.'
      dashboards:
        - uuid: 38656d541ee34c40b4a50943a2e6f999
          name: 'Storage overview'
          auto_start: 'NO'
          pages:
            - name: 'System capacity'
              widgets:
                - type: graph
                  width: '72'
                  height: '5'
                  fields:
                    - type: GRAPH
                      name: graphid.0
                      value:
                        host: 'HPE Primera by HTTP'
                        name: 'HPE Primera: Capacity'
                    - type: STRING
                      name: reference
                      value: AAAAA
            - name: 'CPG (common provisioning groups)'
              widgets:
                - type: graphprototype
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'HPE Primera by HTTP'
                        name: 'CPG [{#NAME}]: CPG space'
                    - type: STRING
                      name: reference
                      value: AAAAB
                - type: graphprototype
                  'y': '5'
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'HPE Primera by HTTP'
                        name: 'CPG [{#NAME}]: Number of virtual volumes'
                    - type: STRING
                      name: reference
                      value: AAAAC
                - type: graphprototype
                  'y': '10'
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'HPE Primera by HTTP'
                        name: 'CPG [{#NAME}]: Raw space'
                    - type: STRING
                      name: reference
                      value: AAAAD
                - type: graphprototype
                  'y': '15'
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'HPE Primera by HTTP'
                        name: 'CPG [{#NAME}]: Snapshot administration space'
                    - type: STRING
                      name: reference
                      value: AAAAE
                - type: graphprototype
                  'y': '20'
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'HPE Primera by HTTP'
                        name: 'CPG [{#NAME}]: Snapshot data space'
                    - type: STRING
                      name: reference
                      value: AAAAF
                - type: graphprototype
                  'y': '25'
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'HPE Primera by HTTP'
                        name: 'CPG [{#NAME}]: User data space'
                    - type: STRING
                      name: reference
                      value: AAAAG
            - name: Volumes
              widgets:
                - type: graphprototype
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'HPE Primera by HTTP'
                        name: 'Volume [{#NAME}]: Administrative space'
                    - type: STRING
                      name: reference
                      value: AAAAH
                - type: graphprototype
                  'y': '5'
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'HPE Primera by HTTP'
                        name: 'Volume [{#NAME}]: Capacity efficiency: Ratio'
                    - type: STRING
                      name: reference
                      value: AAAAI
                - type: graphprototype
                  'y': '10'
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'HPE Primera by HTTP'
                        name: 'Volume [{#NAME}]: Capacity efficiency: Space saved'
                    - type: STRING
                      name: reference
                      value: AAAAJ
                - type: graphprototype
                  'y': '15'
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'HPE Primera by HTTP'
                        name: 'Volume [{#NAME}]: Snapshot space'
                    - type: STRING
                      name: reference
                      value: AAAAK
                - type: graphprototype
                  'y': '20'
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'HPE Primera by HTTP'
                        name: 'Volume [{#NAME}]: User space'
                    - type: STRING
                      name: reference
                      value: AAAAL
      valuemaps:
        - uuid: 79ba0611293541f29f8b43b34e64465d
          name: Boolean
          mappings:
            - value: '0'
              newvalue: 'No'
            - value: '1'
              newvalue: 'Yes'
        - uuid: fd9a3483b02f45c6836b9a126b669402
          name: 'diskState enum'
          mappings:
            - value: '1'
              newvalue: Normal
            - value: '2'
              newvalue: Degraded
            - value: '3'
              newvalue: New
            - value: '4'
              newvalue: Failed
            - value: '99'
              newvalue: Unknown
        - uuid: 7513c4c923884ed4b8e35ee9cdf4f627
          name: 'hardwareType enum'
          mappings:
            - value: '1'
              newvalue: FC
            - value: '2'
              newvalue: Eth
            - value: '3'
              newvalue: iSCSI
            - value: '4'
              newvalue: CNA
            - value: '5'
              newvalue: SAS
            - value: '6'
              newvalue: Combo
            - value: '7'
              newvalue: NVMe
            - value: '8'
              newvalue: Unknown
        - uuid: 5d243add5b534ebfac8ef95d55c4c8c9
          name: 'portConnType enum'
          mappings:
            - value: '1'
              newvalue: Host
            - value: '2'
              newvalue: Disk
            - value: '3'
              newvalue: Free
            - value: '4'
              newvalue: Iport
            - value: '5'
              newvalue: RCFC
            - value: '6'
              newvalue: Peer
            - value: '7'
              newvalue: RCIP
            - value: '8'
              newvalue: ISCSI
            - value: '9'
              newvalue: CNA
            - value: '10'
              newvalue: FS
        - uuid: 5762248dd10143a3945c989f0fb73b47
          name: 'portFailOverState enum'
          mappings:
            - value: '1'
              newvalue: None
            - value: '2'
              newvalue: 'Failover pending'
            - value: '3'
              newvalue: 'Failed over'
            - value: '4'
              newvalue: Active
            - value: '5'
              newvalue: 'Active down'
            - value: '6'
              newvalue: 'Active failed'
            - value: '7'
              newvalue: Failback_pending
        - uuid: 5a6cdc765c254f17b136c4267fc71349
          name: 'portLinkState enum'
          mappings:
            - value: '1'
              newvalue: 'Config wait'
            - value: '2'
              newvalue: 'ALPA wait'
            - value: '3'
              newvalue: 'Login wait'
            - value: '4'
              newvalue: 'Link is ready'
            - value: '5'
              newvalue: 'Link is loss sync'
            - value: '6'
              newvalue: 'In error state'
            - value: '7'
              newvalue: xxx
            - value: '8'
              newvalue: 'Non participate'
            - value: '9'
              newvalue: 'Core dump'
            - value: '10'
              newvalue: Offline
            - value: '11'
              newvalue: 'FW dead'
            - value: '12'
              newvalue: 'Idle for reset'
            - value: '13'
              newvalue: 'DHCP in progress'
            - value: '14'
              newvalue: 'Pending reset'
            - value: '15'
              newvalue: New
            - value: '16'
              newvalue: Disabled
            - value: '17'
              newvalue: Down
            - value: '18'
              newvalue: Failed
            - value: '19'
              newvalue: Purging
        - uuid: eb36574d642d4f9ea51688b4ff971c91
          name: 'rcopyStatus enum'
          mappings:
            - value: '1'
              newvalue: None
            - value: '2'
              newvalue: Primary
            - value: '3'
              newvalue: Secondary
            - value: '4'
              newvalue: Snap
            - value: '5'
              newvalue: Sync
            - value: '6'
              newvalue: Delete
            - value: '99'
              newvalue: Unknown
        - uuid: aaa5a863e8524a7088e64a51f5976c98
          name: 'Service state'
          mappings:
            - value: '0'
              newvalue: Down
            - value: '1'
              newvalue: Up
        - uuid: 86e4337cbc86423fb9f605a9fb3b25b1
          name: 'State enum'
          mappings:
            - value: '1'
              newvalue: Normal
            - value: '2'
              newvalue: Degraded
            - value: '3'
              newvalue: Failed
            - value: '99'
              newvalue: Unknown
        - uuid: 5cfd4442b6244399b7aa8b57e9816a4e
          name: 'taskStatus enum'
          mappings:
            - value: '1'
              newvalue: Done
            - value: '2'
              newvalue: Active
            - value: '3'
              newvalue: Cancelled
            - value: '4'
              newvalue: Failed
        - uuid: 9a8e1dbbb8f7497c9492fc941fde7177
          name: 'taskType enum'
          mappings:
            - value: '1'
              newvalue: 'VV copy'
            - value: '2'
              newvalue: 'Phys copy resync'
            - value: '3'
              newvalue: 'Move regions'
            - value: '4'
              newvalue: 'Promote SV'
            - value: '5'
              newvalue: 'Remote copy sync'
            - value: '6'
              newvalue: 'Remote copy reverse'
            - value: '7'
              newvalue: 'Remote copy failover'
            - value: '8'
              newvalue: 'Remote copy recover'
            - value: '9'
              newvalue: 'Remote copy restore'
            - value: '10'
              newvalue: 'Compact CPG'
            - value: '11'
              newvalue: 'Compact IDS'
            - value: '12'
              newvalue: 'Snapshot accounting'
            - value: '13'
              newvalue: 'Check VV'
            - value: '14'
              newvalue: 'Scheduled task'
            - value: '15'
              newvalue: 'System task'
            - value: '16'
              newvalue: 'Background task'
            - value: '17'
              newvalue: 'Import VV'
            - value: '18'
              newvalue: 'Online copy'
            - value: '19'
              newvalue: 'Convert VV'
            - value: '20'
              newvalue: 'Background command'
            - value: '21'
              newvalue: 'CLX sync'
            - value: '22'
              newvalue: 'CLX recovery'
            - value: '23'
              newvalue: 'Tune SD'
            - value: '24'
              newvalue: 'Tune VV'
            - value: '25'
              newvalue: 'Tune VV rollback'
            - value: '26'
              newvalue: 'Tune VV restart'
            - value: '27'
              newvalue: 'System tuning'
            - value: '28'
              newvalue: 'Node rescue'
            - value: '29'
              newvalue: 'Repair sync'
            - value: '30'
              newvalue: 'Remote copy switchover'
            - value: '31'
              newvalue: Defragmentation
            - value: '32'
              newvalue: 'Encryption change'
            - value: '33'
              newvalue: 'Remote copy failsafe'
            - value: '34'
              newvalue: 'Tune TPVV'
            - value: '35'
              newvalue: 'Remote copy change mode'
            - value: '37'
              newvalue: 'Online promote'
            - value: '38'
              newvalue: 'Relocate PD'
            - value: '39'
              newvalue: 'Periodic CSS'
            - value: '40'
              newvalue: 'Tune VV large'
            - value: '41'
              newvalue: 'SD meta fixer'
            - value: '42'
              newvalue: 'Dedup dryrun'
            - value: '43'
              newvalue: 'Compr dryrun'
            - value: '44'
              newvalue: 'Dedup compr dryrun'
            - value: '99'
              newvalue: Unknown
        - uuid: f529111642364bb3a23637adc554e592
          name: 'Volume compressionState enum'
          mappings:
            - value: '1'
              newvalue: 'Yes'
            - value: '2'
              newvalue: 'No'
            - value: '3'
              newvalue: 'Off'
            - value: '4'
              newvalue: NA
        - uuid: 716912c7b7d94f8e97fbf911edc9578e
          name: 'Volume deduplicationState enum'
          mappings:
            - value: '1'
              newvalue: 'Yes'
            - value: '2'
              newvalue: 'No'
            - value: '3'
              newvalue: NA
            - value: '4'
              newvalue: 'Off'
        - uuid: 6a2355e32bf54483b252f1aaf170aa45
          name: 'Volume detailed state enum'
          mappings:
            - value: '1'
              newvalue: 'LDS not started'
            - value: '2'
              newvalue: 'VV not started'
            - value: '3'
              newvalue: 'Needs check'
            - value: '4'
              newvalue: 'Needs maint check'
            - value: '5'
              newvalue: 'Internal consistency error'
            - value: '6'
              newvalue: 'Snapdata invalid'
            - value: '7'
              newvalue: Preserved
            - value: '8'
              newvalue: Stale
            - value: '9'
              newvalue: 'Copy failed'
            - value: '10'
              newvalue: 'Degraded avail'
            - value: '11'
              newvalue: 'Degraded perf'
            - value: '12'
              newvalue: Promoting
            - value: '13'
              newvalue: 'Copy target'
            - value: '14'
              newvalue: 'Resync target'
            - value: '15'
              newvalue: Tuning
            - value: '16'
              newvalue: Closing
            - value: '17'
              newvalue: Removing
            - value: '18'
              newvalue: 'Removing retry'
            - value: '19'
              newvalue: Creating
            - value: '20'
              newvalue: 'Copy source'
            - value: '21'
              newvalue: Importing
            - value: '22'
              newvalue: Converting
            - value: '23'
              newvalue: Invalid
            - value: '24'
              newvalue: Exclusive
            - value: '25'
              newvalue: Consistent
            - value: '26'
              newvalue: Standby
            - value: '27'
              newvalue: 'SD Meta inconsistent'
            - value: '28'
              newvalue: 'SD needs fix'
            - value: '29'
              newvalue: 'SD meta fix'
            - value: '999'
              newvalue: 'Unknown state'
            - value: '1000'
              newvalue: 'State not supported by WSAPI'
    - uuid: 00ade9277d7c41e8b57d638b22d54372
      template: 'Oracle by ODBC'
      name: 'Oracle by ODBC'
      description: |
        1. Create an Oracle user for monitoring.
        
        2. Set the hostname or IP address of the Oracle DB instance, user name and password in host macros ({$ORACLE.HOST}, {$ORACLE.USER} and {$ORACLE.PASSWORD}).
          Do not forget to install the Microsoft ODBC driver on the Zabbix server or the Zabbix proxy.
          See Oracle documentation for instructions: https://www.oracle.com/database/technologies/releasenote-odbc-ic.html.
        
          Note! Credentials in the odbc.ini do not work for Oracle.
          Note! Be sure that ODBC connects to Oracle with session parameter NLS_NUMERIC_CHARACTERS= '.,' It is important for correct display float numbers in Zabbix.
        The "Service's TCP port state" item uses {$ORACLE.HOST} and {$ORACLE.PORT} macros to check the availability of the listener.
        
        Generated by official Zabbix template tool "Templator"
      wizard_ready: 'YES'
      readme: |
        ## Overview
        
        The template is developed to monitor a single DBMS Oracle Database instance with ODBC and can monitor CDB or non-CDB installations.
        
        ## Supported versions
        
        Oracle Database 12c2 and newer.
        
        **Important! This integration queries the `V$ACTIVE_SESSION_HISTORY` dynamic performance view which is part of the Oracle Diagnostics Pack. Please make sure that you have the licence required for using this management pack.**
        
        ## Setup
        
        1. Create an Oracle Database user for monitoring:
        
            In CDB installations, it is possible to monitor tablespaces from the CDB (container database) and all PDBs (pluggable databases). To do so, a common user is needed with the correct rights:
        
            ```
            CREATE USER c##zabbix_mon IDENTIFIED BY <PASSWORD>;
            -- Grant access to the c##zabbix_mon user.
            ALTER USER c##zabbix_mon SET CONTAINER_DATA=ALL CONTAINER=CURRENT;
            GRANT CONNECT, CREATE SESSION TO c##zabbix_mon;
            GRANT SELECT_CATALOG_ROLE to c##zabbix_mon;
            GRANT SELECT ON v_$instance TO c##zabbix_mon;
            GRANT SELECT ON v_$database TO c##zabbix_mon;
            GRANT SELECT ON v_$sysmetric TO c##zabbix_mon;
            GRANT SELECT ON v_$system_parameter TO c##zabbix_mon;
            GRANT SELECT ON v_$session TO c##zabbix_mon;
            GRANT SELECT ON v_$recovery_file_dest TO c##zabbix_mon;
            GRANT SELECT ON v_$active_session_history TO c##zabbix_mon;
            GRANT SELECT ON v_$osstat TO c##zabbix_mon;
            GRANT SELECT ON v_$process TO c##zabbix_mon;
            GRANT SELECT ON v_$datafile TO c##zabbix_mon;
            GRANT SELECT ON v_$pgastat TO c##zabbix_mon;
            GRANT SELECT ON v_$sgastat TO c##zabbix_mon;
            GRANT SELECT ON v_$log TO c##zabbix_mon;
            GRANT SELECT ON v_$archive_dest TO c##zabbix_mon;
            GRANT SELECT ON v_$asm_diskgroup TO c##zabbix_mon;
            GRANT SELECT ON v_$asm_diskgroup_stat TO c##zabbix_mon;
            GRANT SELECT ON DBA_USERS TO c##zabbix_mon;
            ```
            This is needed because the template uses `CDB_*` views to monitor tablespaces from the CDB and different PDBs - the monitoring user therefore needs access to the container data objects on all PDBs.
        
            However, if you wish to monitor only a single PDB or a non-CDB instance, a local user is sufficient:
            
            ```
            CREATE USER zabbix_mon IDENTIFIED BY <PASSWORD>;
            -- Grant access to the zabbix_mon user.
            GRANT CONNECT, CREATE SESSION TO zabbix_mon;
            GRANT SELECT_CATALOG_ROLE to zabbix_mon;
            GRANT SELECT ON v_$instance TO zabbix_mon;
            GRANT SELECT ON v_$database TO zabbix_mon;
            GRANT SELECT ON v_$sysmetric TO zabbix_mon;
            GRANT SELECT ON v_$system_parameter TO zabbix_mon;
            GRANT SELECT ON v_$session TO zabbix_mon;
            GRANT SELECT ON v_$recovery_file_dest TO zabbix_mon;
            GRANT SELECT ON v_$active_session_history TO zabbix_mon;
            GRANT SELECT ON v_$osstat TO zabbix_mon;
            GRANT SELECT ON v_$process TO zabbix_mon;
            GRANT SELECT ON v_$datafile TO zabbix_mon;
            GRANT SELECT ON v_$pgastat TO zabbix_mon;
            GRANT SELECT ON v_$sgastat TO zabbix_mon;
            GRANT SELECT ON v_$log TO zabbix_mon;
            GRANT SELECT ON v_$archive_dest TO zabbix_mon;
            GRANT SELECT ON v_$asm_diskgroup TO zabbix_mon;
            GRANT SELECT ON v_$asm_diskgroup_stat TO zabbix_mon;
            GRANT SELECT ON DBA_USERS TO zabbix_mon;
            ```
            **Important! Ensure that the ODBC connection to Oracle includes the session parameter `NLS_NUMERIC_CHARACTERS= '.,'`. It is important for displaying the float numbers in Zabbix correctly.**
        
            **Important! These privileges grant the monitoring user `SELECT_CATALOG_ROLE`, which, in turn, gives access to thousands of tables in the database.**
            This role is required to access the `V$RESTORE_POINT` dynamic performance view.
            However, there are ways to go around this, if the `SELECT_CATALOG_ROLE` assigned to a monitoring user raises any security issues.
            One way to do this is using **pipelined table functions**:
        
              1. Log into your database as the `SYS` user or make sure that your administration user has the required privileges to execute the steps below;
        
              2. Create types for the table function:
        
                  ```sql
                  CREATE OR REPLACE TYPE zbx_mon_restore_point_row AS OBJECT (
                    SCN                           NUMBER,
                    DATABASE_INCARNATION#         NUMBER,
                    GUARANTEE_FLASHBACK_DATABASE  VARCHAR2(3),
                    STORAGE_SIZE                  NUMBER,
                    TIME                          TIMESTAMP(9),
                    RESTORE_POINT_TIME            TIMESTAMP(9),
                    PRESERVED                     VARCHAR2(3),
                    NAME                          VARCHAR2(128),
                    PDB_RESTORE_POINT             VARCHAR2(3),
                    CLEAN_PDB_RESTORE_POINT       VARCHAR2(3),
                    PDB_INCARNATION#              NUMBER,
                    REPLICATED                    VARCHAR2(3),
                    CON_ID                        NUMBER
                  );
                  CREATE OR REPLACE TYPE zbx_mon_restore_point_tab IS TABLE OF zbx_mon_restore_point_row;
                  ```
        
              3. Create the pipelined table function:
        
                  ```sql
                  CREATE OR REPLACE FUNCTION zbx_mon_restore_point RETURN zbx_mon_restore_point_tab PIPELINED AS
                  BEGIN
                    FOR i IN (SELECT * FROM V$RESTORE_POINT) LOOP
                      PIPE ROW (zbx_mon_restore_point_row(i.SCN, i.DATABASE_INCARNATION#, i.GUARANTEE_FLASHBACK_DATABASE, i.STORAGE_SIZE, i.TIME, i.RESTORE_POINT_TIME, i.PRESERVED, i.NAME, i.PDB_RESTORE_POINT, i.CLEAN_PDB_RESTORE_POINT, i.PDB_INCARNATION#, i.REPLICATED, i.CON_ID));
                    END LOOP;
                    RETURN;
                  END;
                  ```
        
              4. Grant the Zabbix monitoring user the Execute privilege on the created pipelined table function and replace the monitoring user `V$RESTORE_POINT` view with the `SYS` user function (in this example, the `SYS` user is used to create DB types and function):
        
                  ```sql
                  GRANT EXECUTE ON zbx_mon_restore_point TO c##zabbix_mon;
                  CREATE OR REPLACE VIEW c##zabbix_mon.V$RESTORE_POINT AS SELECT * FROM TABLE(SYS.zbx_mon_restore_point);
                  ```
        
              5. Finally, revoke the `SELECT_CATALOG_ROLE` and grant additional permissions that were previously covered by the `SELECT_CATALOG_ROLE`.
        
                  ```sql
                  REVOKE SELECT_CATALOG_ROLE FROM c##zabbix_mon;
                  GRANT SELECT ON v_$pdbs TO c##zabbix_mon;
                  GRANT SELECT ON v_$sort_segment TO c##zabbix_mon;
                  GRANT SELECT ON v_$parameter TO c##zabbix_mon;
                  GRANT SELECT ON CDB_TABLESPACES TO c##zabbix_mon;
                  GRANT SELECT ON CDB_DATA_FILES TO c##zabbix_mon;
                  GRANT SELECT ON CDB_FREE_SPACE TO c##zabbix_mon;
                  GRANT SELECT ON CDB_TEMP_FILES TO c##zabbix_mon;
                  ```
        
              > Note that in these examples, the monitoring user is named `c##zabbix_mon` and the system user - `SYS`. Change these example usernames to ones that are appropriate for your environment.
            
            If this workaround does not work for you, there are more options available, such as __materialized views__, but look out for data refresh as `V$RESTORE_POINT` is a dynamic performance view.
        
        2. Install the ODBC driver on Zabbix server or Zabbix proxy.
          See the [Oracle documentation](https://www.oracle.com/database/technologies/releasenote-odbc-ic.html) for instructions.
        
        3. Configure Zabbix server or Zabbix proxy for using the Oracle environment:
        
            This step is required only when:
            
            * installing Oracle Instant Client with .rpm packages with a version < 19.3 (if Instant Client is the only Oracle software installed on Zabbix server or Zabbix proxy);
            
            * installing Oracle Instant Client manually with .zip files.
          
            There are multiple configuration options:
            
              1. Using the `LDCONFIG` utility **(recommended option)**:
          
                  To update the runtime link path, it is recommended to use the ```LDCONFIG``` utility, for example:
            
                  ```
                  # sh -c "echo /opt/oracle/instantclient_19_18 > /etc/ld.so.conf.d/oracle-instantclient.conf"
                  # ldconfig
                  ```
          
              2. Using the application configuration file:
          
                  An alternative solution is to export the required variables by editing or adding a new application configuration file:
            
                   * ```/etc/sysconfig/zabbix-server # for server```
            
                   * ```/etc/sysconfig/zabbix-proxy # for proxy```
            
                  And then, adding:
                
                  ```
                  # Oracle Instant Client library
                  LD_LIBRARY_PATH=/opt/oracle/instantclient_19_18:$LD_LIBRARY_PATH
                  export LD_LIBRARY_PATH
                  ```
            
            Keep in mind that the library paths will vary depending on your installation.
        
            This is a minimal configuration example. Depending on the Oracle Instant Client version, required functionality and host operating system, a different set of additional packages might need to be installed.
            For more detailed configuration instructions, see the [official Oracle Instant Client installation instructions for Linux](https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html).
        
        4. Restart Zabbix server or Zabbix proxy.
        
        5. Set the username and password in host wizard configuration fields `Username` and `Password`.
        
        6. Set the `Oracle URL`, `Oracle driver path` and `Oracle Service Name` in host wizard configuration fields.
        
            * `Oracle URL` is a hostname or IP address of the Oracle DB instance.
        
            * `Oracle driver path` is a path to the driver location in the OS. The ODBC driver file should be found in the Instant Client directory and named `libsqora.so.XX.Y`.
        
            * `Oracle Service Name` is a service name to which the host will connect to. It is important as it determines if the connection is established to a non-CDB, CDB, or PDB. If you wish to monitor tablespaces of all PDBs, you will need to set a service name that points to the CDB.
              Active service names can be seen from the instance running Oracle Database with `lsnrctl status`.
              
            **Important! Make sure that the user created in step #1 is present on the specified service.**
        
            The "Service's TCP port state" item uses `{$ORACLE.HOST}` and `{$ORACLE.PORT}` macros to check the availability of the listener.
      vendor:
        name: Zabbix
        version: 8.0-0
      groups:
        - name: Templates/Databases
      items:
        - uuid: 76591a03cf684d30ae15eca8519ce1dd
          name: 'Get archive log'
          type: ODBC
          key: 'db.odbc.get[get_archivelog,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          delay: 1h
          history: '0'
          value_type: TEXT
          params: |
            SELECT d.dest_name
            FROM v$archive_dest d , v$database db WHERE d.status != 'INACTIVE' AND db.log_mode = 'ARCHIVELOG';
          username: '{$ORACLE.USER}'
          password: '{$ORACLE.PASSWORD}'
          description: 'Gets the destinations of the log archive.'
          tags:
            - tag: component
              value: raw
        - uuid: 10f3da9afb674ff18956aa99229de8dd
          name: 'Get ASM disk groups'
          type: ODBC
          key: 'db.odbc.get[get_asm,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          delay: 1h
          history: '0'
          value_type: TEXT
          params: 'SELECT name AS dgname FROM v$asm_diskgroup;'
          username: '{$ORACLE.USER}'
          password: '{$ORACLE.PASSWORD}'
          description: 'Gets the ASM disk groups.'
          tags:
            - tag: component
              value: raw
        - uuid: 7ca479f46bb2435f9f9cb62d404fa37c
          name: 'Get database'
          type: ODBC
          key: 'db.odbc.get[get_db,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          delay: 1h
          history: '0'
          value_type: TEXT
          params: 'SELECT name as DBNAME, DECODE(CDB, ''YES'', ''CDB'', ''No-CDB'') AS TYPE  FROM V$DATABASE;'
          username: '{$ORACLE.USER}'
          password: '{$ORACLE.PASSWORD}'
          description: 'Gets the databases in the database management system (DBMS).'
          tags:
            - tag: component
              value: raw
        - uuid: dde19b79507648bd80a82a0575bf8671
          name: 'Get instance state'
          type: ODBC
          key: 'db.odbc.get[get_instance_state,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          history: '0'
          value_type: TEXT
          params: |
            SELECT
            INSTANCE_NAME,
            HOST_NAME,
            VERSION || '-' || EDITION AS VERSION,
            floor((SYSDATE - startup_time)*60*60*24) AS UPTIME,
            decode(status,'STARTED',1,'MOUNTED',2,'OPEN',3,'OPEN MIGRATE',4, 0) AS STATUS,
            decode(archiver,'STOPPED',1,'STARTED',2,'FAILED',3, 0) AS  ARCHIVER,
            decode(instance_role,'PRIMARY_INSTANCE',1,'SECONDARY_INSTANCE',2, 0) AS  INSTANCE_ROLE
            FROM v$instance;
          username: '{$ORACLE.USER}'
          password: '{$ORACLE.PASSWORD}'
          description: 'Gets the state of the current instance.'
          tags:
            - tag: component
              value: raw
        - uuid: de5aa291b7da4733ad26d517e8ff55cf
          name: 'Get PDB'
          type: ODBC
          key: 'db.odbc.get[get_pdb,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          delay: 1h
          history: '0'
          value_type: TEXT
          params: 'SELECT CON_ID, name as DBNAME FROM V$PDBS;'
          username: '{$ORACLE.USER}'
          password: '{$ORACLE.PASSWORD}'
          description: 'Gets the pluggable database (PDB) in DBMS.'
          tags:
            - tag: component
              value: raw
        - uuid: 3839683749974cdeafd9178bdccb38d6
          name: 'Get system metrics'
          type: ODBC
          key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          delay: 0;m0-59
          history: '0'
          value_type: TEXT
          params: |
            SELECT 'SYS::' || METRIC_NAME AS METRIC, ROUND(VALUE,3) as VALUE
             FROM V$SYSMETRIC WHERE GROUP_ID = 2
            UNION
              SELECT 'SYSPARAM::' || INITCAP(NAME) AS METRIC, to_number(VALUE)
              FROM V$SYSTEM_PARAMETER WHERE NAME IN ('sessions', 'processes', 'db_files')
            UNION
             SELECT 'SESSION::Long time locked' ,count(*) FROM V$SESSION s WHERE s.BLOCKING_SESSION IS NOT NULL AND s.BLOCKING_SESSION_STATUS='VALID' AND s.SECONDS_IN_WAIT > {$ORACLE.SESSION.LOCK.MAX.TIME}
            UNION
            SELECT 'SESSION::Lock rate' ,(cnt_block / cnt_all)* 100 pct
            FROM ( SELECT COUNT(*) cnt_block FROM v$session WHERE blocking_session IS NOT NULL), ( SELECT COUNT(*) cnt_all FROM v$session)
            UNION
              SELECT 'SESSION::Long time locked' ,count(*) FROM V$SESSION s WHERE s.BLOCKING_SESSION IS NOT NULL AND s.BLOCKING_SESSION_STATUS='VALID' AND s.SECONDS_IN_WAIT > {$ORACLE.SESSION.LOCK.MAX.TIME}
            UNION
             SELECT 'SESSION::Total', COUNT(*) AS VALUE FROM V$SESSION
            UNION
            SELECT 'SESSION::Concurrency rate', NVL(ROUND(SUM(duty_act.cnt*100 / num_cores.val)), 0)
            FROM
            ( SELECT DECODE(session_state, 'ON CPU', 'CPU', wait_class) wait_class, ROUND(COUNT(*)/(60 * 15), 1) cnt
            FROM v$active_session_history sh
            WHERE sh.sample_time >= SYSDATE - 15 / 1440 AND DECODE(session_state, 'ON CPU', 'CPU', wait_class) IN('Concurrency')
            GROUP BY DECODE(session_state, 'ON CPU', 'CPU', wait_class)) duty_act,
            ( SELECT SUM(value) val FROM v$osstat WHERE stat_name = 'NUM_CPU_CORES') num_cores
            UNION
             SELECT 'PGA::' || INITCAP(NAME), VALUE FROM V$PGASTAT
            UNION
             SELECT 'FRA::Space Limit' AS METRIC, space_limit AS VALUE FROM V$RECOVERY_FILE_DEST
            UNION
             SELECT 'FRA::Space Used', space_used AS VALUE FROM V$RECOVERY_FILE_DEST
            UNION
             SELECT 'FRA::Space Reclaimable', space_reclaimable AS VALUE FROM V$RECOVERY_FILE_DEST
            UNION
             SELECT 'FRA::Number Of Files', number_of_files AS VALUE FROM V$RECOVERY_FILE_DEST
            UNION
             SELECT 'FRA::Usable Pct', DECODE(space_limit, 0, 0,(100-(100 *(space_used-space_reclaimable)/ space_limit))) AS VALUE FROM V$RECOVERY_FILE_DEST
            UNION
             SELECT 'FRA::Restore Point', COUNT(*) AS VALUE FROM V$RESTORE_POINT
            UNION
             SELECT 'PROC::Procnum', COUNT(*) FROM v$process
            UNION
             SELECT 'DATAFILE::Count', COUNT(*) FROM v$datafile
            UNION
             SELECT 'SGA::' || INITCAP(pool), SUM(bytes) FROM V$SGASTAT
             WHERE pool IN ( 'java pool', 'large pool' ) GROUP BY pool
            UNION
             SELECT 'SGA::Shared Pool', SUM(bytes) FROM V$SGASTAT
             WHERE pool = 'shared pool' AND name NOT IN ('library cache', 'dictionary cache', 'free memory', 'sql area')
            UNION
             SELECT 'SGA::' || INITCAP(name), bytes FROM V$SGASTAT
             WHERE pool IS NULL AND name IN ('log_buffer', 'fixed_sga')
            UNION
             SELECT 'SGA::Buffer_Cache', SUM(bytes) FROM V$SGASTAT
             WHERE pool IS NULL AND name IN ('buffer_cache', 'db_block_buffers')
            UNION
             SELECT 'REDO::Available', count(*) from v$log t where t.status in ('INACTIVE', 'UNUSED')
            UNION
             SELECT 'USER::Expire password', ROUND(DECODE(SIGN(NVL(u.expiry_date, SYSDATE + 999) - SYSDATE),-1, 0, NVL(u.expiry_date, SYSDATE + 999) - SYSDATE)) exp_passwd_days_before
            FROM dba_users u WHERE username = UPPER('{$ORACLE.USER}');
          username: '{$ORACLE.USER}'
          password: '{$ORACLE.PASSWORD}'
          description: 'Gets the values of the system metrics.'
          tags:
            - tag: component
              value: raw
        - uuid: 2310462a8936465c8a62d8586ab0ba65
          name: 'Get tablespace'
          type: ODBC
          key: 'db.odbc.get[get_tablespace,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          delay: 1h
          history: '0'
          value_type: TEXT
          params: |
            SELECT
            	CON_ID,
            	NVL(CON$NAME, 'DB') CON_NAME,
            	TABLESPACE_NAME TABLESPACE,
            	CONTENTS
            FROM
            	CDB_TABLESPACES;
          username: '{$ORACLE.USER}'
          password: '{$ORACLE.PASSWORD}'
          description: 'Gets tablespaces in DBMS.'
          tags:
            - tag: component
              value: raw
        - uuid: 7ee99dfbd8dd4048bc2867aaa2fc335e
          name: 'Service''s TCP port state'
          key: 'net.tcp.service[tcp,{$ORACLE.HOST},{$ORACLE.PORT}]'
          delay: 30s
          description: 'Checks the availability of Oracle on the TCP port.'
          valuemap:
            name: 'Service state'
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 10m
          tags:
            - tag: component
              value: health
            - tag: component
              value: network
        - uuid: 6b6ce717919e45df93015a8f65337055
          name: 'Active parallel sessions'
          type: DEPENDENT
          key: oracle.active_parallel_sessions
          value_type: FLOAT
          description: 'The number of active parallel sessions.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''SYS::Active Parallel Sessions'')].VALUE.first()'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: sessions
        - uuid: 928b095ffe57404eb6863b06b466524d
          name: 'Active serial sessions'
          type: DEPENDENT
          key: oracle.active_serial_sessions
          value_type: FLOAT
          description: 'The number of active serial sessions.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''SYS::Active Serial Sessions'')].VALUE.first()'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: sessions
        - uuid: 70633c6c4e27410dabcf035dd583f820
          name: 'Average active sessions'
          type: DEPENDENT
          key: oracle.active_sessions
          value_type: FLOAT
          description: 'The average number of active sessions at a point in time that are either working or waiting.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''SYS::Average Active Sessions'')].VALUE.first()'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: sessions
        - uuid: eb9f4179a87249fc9df9989f58502a12
          name: 'Archiver state'
          type: DEPENDENT
          key: oracle.archiver_state
          description: 'The status of automatic archiving.'
          valuemap:
            name: 'Oracle archiver state'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $..ARCHIVER.first()
          master_item:
            key: 'db.odbc.get[get_instance_state,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: application
        - uuid: 836e01f5247a468dbf1866a744979376
          name: 'Buffer cache hit ratio'
          type: DEPENDENT
          key: oracle.buffer_cache_hit_ratio
          value_type: FLOAT
          units: '%'
          description: 'The ratio of buffer cache hits ((LogRead - PhyRead)/LogRead).'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''SYS::Buffer Cache Hit Ratio'')].VALUE.first()'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: cache
        - uuid: dedafce88267427a8f0b51d74de28c58
          name: 'Global cache blocks corrupted'
          type: DEPENDENT
          key: oracle.cache_blocks_corrupt
          units: Rps
          description: 'The number of blocks that encountered corruption or checksum failure during the interconnect.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''SYS::Global Cache Blocks Corrupted'')].VALUE.first()'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: cache
        - uuid: d0d0dbbf1869487d957e60d03e8e3512
          name: 'Global cache blocks lost'
          type: DEPENDENT
          key: oracle.cache_blocks_lost
          units: Rps
          description: 'The number of lost global cache blocks.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''SYS::Global Cache Blocks Lost'')].VALUE.first()'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: cache
        - uuid: 50ea6f52e01c44e5b9039add026faaa2
          name: 'Cursor cache hit ratio'
          type: DEPENDENT
          key: oracle.cursor_cache_hit_ratio
          value_type: FLOAT
          units: '%'
          description: 'The ratio of cursor cache hits (CursorCacheHit/SoftParse).'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''SYS::Cursor Cache Hit Ratio'')].VALUE.first()'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: cache
        - uuid: 82228fbb70bf4660aa64bdde2f57686d
          name: 'Database CPU time ratio'
          type: DEPENDENT
          key: oracle.database_cpu_time_ratio
          value_type: FLOAT
          units: '%'
          description: 'The ratio calculated by dividing the total CPU (used by the database) by the Oracle time model statistic DB time.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''SYS::Database CPU Time Ratio'')].VALUE.first()'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: cpu
        - uuid: 877272b0b9424d279b1efaa6536eb19b
          name: 'Database wait time ratio'
          type: DEPENDENT
          key: oracle.database_wait_time_ratio
          value_type: FLOAT
          units: '%'
          description: 'Wait time - the time that the server process spends waiting for available shared resources to be released by other server processes such as latches, locks, data buffers, etc.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''SYS::Database Wait Time Ratio'')].VALUE.first()'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: application
        - uuid: 751fe010337e40a5a12fc24d327ffcee
          name: 'Datafiles count'
          type: DEPENDENT
          key: oracle.db_files_count
          description: 'The current number of datafiles.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''DATAFILE::Count'')].VALUE.first()'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: datafiles
        - uuid: a0e263bf207042058b5d9d2e735e05eb
          name: 'Datafiles limit'
          type: DEPENDENT
          key: oracle.db_files_limit
          description: 'The maximum allowable number of datafiles.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''SYSPARAM::Db_Files'')].VALUE.first()'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: datafiles
        - uuid: 22d9cccf44924f99aaf444c80b3beab9
          name: 'Disk sort per second'
          type: DEPENDENT
          key: oracle.disk_sorts
          value_type: FLOAT
          units: Rps
          description: 'The number of sorts going to disk per second.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''SYS::Disk Sort Per Sec'')].VALUE.first()'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: application
        - uuid: 46e0598b703a412e96a3b18e2248e754
          name: 'Enqueue timeouts per second'
          type: DEPENDENT
          key: oracle.enqueue_timeouts_rate
          value_type: FLOAT
          units: Rps
          description: 'Enqueue timeouts per second.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''SYS::Enqueue Timeouts Per Sec'')].VALUE.first()'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: application
        - uuid: beca246cadb44e48a20bc8809624a6f4
          name: 'FRA, Number of files'
          type: DEPENDENT
          key: oracle.fra_number_of_files
          description: 'The number of files in the FRA.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''FRA::Number Of Files'')].VALUE.first()'
              error_handler: CUSTOM_VALUE
              error_handler_params: '0'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: fra
        - uuid: 61eb041ea3b349df88cb3495b383fbe4
          name: 'FRA, Number of restore points'
          type: DEPENDENT
          key: oracle.fra_restore_point
          value_type: FLOAT
          description: 'Number of restore points in the FRA.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''FRA::Restore Point'')].VALUE.first()'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: fra
        - uuid: 375e094a1a024a19b8e69e4f362c0163
          name: 'FRA, Space limit'
          type: DEPENDENT
          key: oracle.fra_space_limit
          units: B
          description: 'The maximum amount of disk space (in bytes) that the database can use for the Fast Recovery Area (FRA).'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''FRA::Space Limit'')].VALUE.first()'
              error_handler: CUSTOM_VALUE
              error_handler_params: '0'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: fra
        - uuid: 4028e389cc9e4b24946657f1ded1ba47
          name: 'FRA, Space reclaimable'
          type: DEPENDENT
          key: oracle.fra_space_reclaimable
          units: B
          description: 'The total amount of disk space (in bytes) that can be created by deleting obsolete, redundant, and other low-priority files from the FRA.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''FRA::Space Reclaimable'')].VALUE.first()'
              error_handler: CUSTOM_VALUE
              error_handler_params: '0'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: fra
        - uuid: 40b03e917c3c4c0385536336e48affcb
          name: 'FRA, Used space'
          type: DEPENDENT
          key: oracle.fra_space_used
          units: B
          description: 'The amount of disk space (in bytes) used by FRA files created in the current and all the previous FRAs.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''FRA::Space Used'')].VALUE.first()'
              error_handler: CUSTOM_VALUE
              error_handler_params: '0'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: fra
        - uuid: b29c93eecf9d4d1b8c5de1ce9721801f
          name: 'FRA, Usable space in %'
          type: DEPENDENT
          key: oracle.fra_usable_pct
          value_type: FLOAT
          units: '%'
          description: 'Percentage of space usable in the FRA.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''FRA::Usable Pct'')].VALUE.first()'
              error_handler: CUSTOM_VALUE
              error_handler_params: '0'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: fra
        - uuid: 3243beb0fe70425f8d71938a52f765ae
          name: 'GC CR block received per second'
          type: DEPENDENT
          key: oracle.gc_cr_block_received_rate
          value_type: FLOAT
          units: Rps
          description: 'The global cache (GC) and the consistent read (CR) block received per second.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''SYS::GC CR Block Received Per Second'')].VALUE.first()'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: cache
        - uuid: cc3c9200deed42e5a8e187e82c123009
          name: 'Instance role'
          type: DEPENDENT
          key: oracle.instance.role
          description: 'Indicates whether the instance is an active instance or an inactive secondary instance.'
          valuemap:
            name: 'Oracle instance role'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $..INSTANCE_ROLE.first()
          master_item:
            key: 'db.odbc.get[get_instance_state,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: application
        - uuid: 3da27d558e034236a42b3b94bfa13159
          name: 'Instance hostname'
          type: DEPENDENT
          key: oracle.instance_hostname
          value_type: CHAR
          description: 'The name of the host machine.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $..HOST_NAME.first()
          master_item:
            key: 'db.odbc.get[get_instance_state,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: application
          triggers:
            - uuid: 618a3e3c82dc4ccba82477afdd100a98
              expression: 'last(/Oracle by ODBC/oracle.instance_hostname,#1)<>last(/Oracle by ODBC/oracle.instance_hostname,#2) and length(last(/Oracle by ODBC/oracle.instance_hostname))>0'
              name: 'Oracle: Instance hostname has changed'
              event_name: 'Oracle: Instance hostname has changed (new hostname received: {ITEM.VALUE})'
              priority: INFO
              description: 'An Oracle Database instance hostname has changed. Acknowledge to close the problem manually.'
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: notice
        - uuid: 4e5df3339a2940c6b3cdad6f5b65234b
          name: 'Instance name'
          type: DEPENDENT
          key: oracle.instance_name
          value_type: CHAR
          description: 'The name of the instance.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $..INSTANCE_NAME.first()
          master_item:
            key: 'db.odbc.get[get_instance_state,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: application
          triggers:
            - uuid: 2fe53d1d931e4eb38fef10a3171c1665
              expression: 'last(/Oracle by ODBC/oracle.instance_name,#1)<>last(/Oracle by ODBC/oracle.instance_name,#2) and length(last(/Oracle by ODBC/oracle.instance_name))>0'
              name: 'Oracle: Instance name has changed'
              event_name: 'Oracle: Instance name has changed (new name received: {ITEM.VALUE})'
              priority: INFO
              description: 'An Oracle Database instance name has changed. Acknowledge to close the problem manually.'
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: notice
        - uuid: 632a953eead74114bdaf640bbf5929a5
          name: 'Instance status'
          type: DEPENDENT
          key: oracle.instance_status
          description: 'The status of the instance.'
          valuemap:
            name: 'Oracle instance status'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $..STATUS.first()
          master_item:
            key: 'db.odbc.get[get_instance_state,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: application
        - uuid: 9a3084287a354fb0b0eb5de377a6de92
          name: 'Library cache hit ratio'
          type: DEPENDENT
          key: oracle.library_cache_hit_ratio
          value_type: FLOAT
          units: '%'
          description: 'The ratio of library cache hits (Hits/Pins).'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''SYS::Library Cache Hit Ratio'')].VALUE.first()'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: cache
        - uuid: ac44884b2518485eae4bc7caf46799a8
          name: 'Logons per second'
          type: DEPENDENT
          key: oracle.logons_rate
          value_type: FLOAT
          units: Rps
          description: 'The number of logon attempts.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''SYS::Logons Per Sec'')].VALUE.first()'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: application
        - uuid: f7691a5d7ef74a4d99cac61835052fba
          name: 'Long table scans per second'
          type: DEPENDENT
          key: oracle.long_table_scans_rate
          value_type: FLOAT
          units: Rps
          description: 'The number of long table scans per second. A table is considered long if it is not cached and if its high water mark is greater than five blocks.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''SYS::Long Table Scans Per Sec'')].VALUE.first()'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: application
        - uuid: 49445baea18640ea844f869c51aee565
          name: 'Memory sorts ratio'
          type: DEPENDENT
          key: oracle.memory_sorts_ratio
          value_type: FLOAT
          units: '%'
          description: 'The percentage of sorts (from `ORDER BY` clauses or index building) that are done to disk vs. in-memory.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''SYS::Memory Sorts Ratio'')].VALUE.first()'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: application
        - uuid: 786188c7719048cb863450f98ab921ac
          name: 'PGA, Global memory bound'
          type: DEPENDENT
          key: oracle.pga_global_bound
          units: B
          description: 'The maximum size of a work area executed in automatic mode.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''PGA::Global Memory Bound'')].VALUE.first()'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: memory
            - tag: component
              value: pga
        - uuid: 1f532b6599f34db285b60a8879638d75
          name: 'PGA, Aggregate target parameter'
          type: DEPENDENT
          key: oracle.pga_target
          units: B
          description: 'The current value of the `PGA_AGGREGATE_TARGET` initialization parameter. If this parameter is not set, then its value is "0" and automatic management of the PGA memory is disabled.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''PGA::Aggregate Pga Target Parameter'')].VALUE.first()'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: memory
            - tag: component
              value: pga
        - uuid: 001bf0d526cb455386f5a63e6bb8f410
          name: 'Physical reads per second'
          type: DEPENDENT
          key: oracle.physical_reads_rate
          value_type: FLOAT
          units: Rps
          description: 'Reads per second.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''SYS::Physical Reads Per Sec'')].VALUE.first()'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: disk
        - uuid: 2f305e09eafd4f7a9360f138be20a631
          name: 'Physical reads bytes per second'
          type: DEPENDENT
          key: oracle.physical_read_bytes_rate
          value_type: FLOAT
          units: Bps
          description: 'Read bytes per second.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''SYS::Physical Read Bytes Per Sec'')].VALUE.first()'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: disk
        - uuid: d20f81d99e6647479abcc9ffcbc208fc
          name: 'Physical writes per second'
          type: DEPENDENT
          key: oracle.physical_writes_rate
          value_type: FLOAT
          units: Rps
          description: 'Writes per second.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''SYS::Physical Writes Per Sec'')].VALUE.first()'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: disk
        - uuid: e2e21384fbae431a88f1eef610b0307b
          name: 'Physical writes bytes per second'
          type: DEPENDENT
          key: oracle.physical_write_bytes_rate
          value_type: FLOAT
          units: Bps
          description: 'Write bytes per second.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''SYS::Physical Write Bytes Per Sec'')].VALUE.first()'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: disk
        - uuid: 533ae91bb94e4077870aa362a8cea7e5
          name: 'Number of processes'
          type: DEPENDENT
          key: oracle.processes_count
          description: 'The current number of user processes.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''PROC::Procnum'')].VALUE.first()'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: system
        - uuid: 721c04b5f3ba42d0ae7acceb5876c360
          name: 'Processes limit'
          type: DEPENDENT
          key: oracle.processes_limit
          description: 'The maximum number of user processes.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''SYSPARAM::Processes'')].VALUE.first()'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: system
        - uuid: 65064008eef54657b7b7f2beeba70b0a
          name: 'Redo logs available to switch'
          type: DEPENDENT
          key: oracle.redo_logs_available
          description: 'The number of inactive/unused redo logs available for log switching.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''REDO::Available'')].VALUE.first()'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: application
          triggers:
            - uuid: 1348b1e854e64d34b6b00be118f045c3
              expression: 'max(/Oracle by ODBC/oracle.redo_logs_available,5m) < {$ORACLE.REDO.MIN.WARN}'
              name: 'Oracle: Number of REDO logs available for switching is too low'
              event_name: 'Oracle: Number of REDO logs available for switching is too low (less {$ORACLE.REDO.MIN.WARN} for 5 min)'
              priority: WARNING
              description: 'The number of inactive/unused redos available for log switching is low (risk of database downtime).'
              tags:
                - tag: scope
                  value: capacity
        - uuid: ab298981f26a4ec6849e1155ce35ee76
          name: 'Rows per sort'
          type: DEPENDENT
          key: oracle.rows_per_sort
          value_type: FLOAT
          description: 'The average number of rows per sort for all types of sorts performed.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''SYS::Rows Per Sort'')].VALUE.first()'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: application
        - uuid: ddbdd3d7d40d42b9b9711470516a5aec
          name: 'SQL service response time'
          type: DEPENDENT
          key: oracle.service_response_time
          value_type: FLOAT
          units: s
          description: 'The Structured Query Language (SQL) service response time expressed in seconds.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''SYS::SQL Service Response Time'')].VALUE.first()'
            - type: MULTIPLIER
              parameters:
                - '0.01'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: application
        - uuid: e269a27f3c3f47ae86fef231da2a6fce
          name: 'Active background sessions'
          type: DEPENDENT
          key: oracle.session_active_background
          value_type: FLOAT
          description: 'The number of active background sessions.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''SESSION::Active Background'')].VALUE.first()'
              error_handler: CUSTOM_VALUE
              error_handler_params: '0'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: sessions
        - uuid: 6e8defc1e3e2485784d8bef6e2b988c7
          name: 'Active user sessions'
          type: DEPENDENT
          key: oracle.session_active_user
          value_type: FLOAT
          description: 'The number of active user sessions.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''SESSION::Active User'')].VALUE.first()'
              error_handler: CUSTOM_VALUE
              error_handler_params: '0'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: sessions
        - uuid: a3f2b314a6354d238d6604afa2333ae6
          name: 'Sessions concurrency'
          type: DEPENDENT
          key: oracle.session_concurrency_rate
          value_type: FLOAT
          units: '%'
          description: 'The percentage of concurrency. Concurrency is a database behavior when different transactions request to change the same resource. In the case of modifying data transactions, it sequentially temporarily blocks the right to change the data, and the rest of the transactions wait for access. When the access to a resource is locked for a long time, the concurrency grows (like the transaction queue), often leaving an extremely negative impact on performance. A high contention value does not indicate the root cause of the problem, but is a signal to search for it.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''SESSION::Concurrency rate'')].VALUE.first()'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: sessions
          triggers:
            - uuid: 7099e4a160c1446395b9e5b721db7b38
              expression: 'min(/Oracle by ODBC/oracle.session_concurrency_rate,5m) > {$ORACLE.CONCURRENCY.MAX.WARN}'
              name: 'Oracle: Too high database concurrency'
              event_name: 'Oracle: Too high database concurrency (over {$ORACLE.CONCURRENCY.MAX.WARN}% for 5 min)'
              priority: WARNING
              description: 'The concurrency rate exceeds `{$ORACLE.CONCURRENCY.MAX.WARN}`%. A high contention value does not indicate the root cause of the problem, but is a signal to review resource consumption (determine the "heaviest" queries in the database, trace sessions, etc.) This will help find the root cause and possible optimization points both in database configuration and the logic of building queries.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 3459ae7c82454882a9655db8a83120fd
          name: 'Session count'
          type: DEPENDENT
          key: oracle.session_count
          value_type: FLOAT
          description: 'The session count.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''SESSION::Total'')].VALUE.first()'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: sessions
        - uuid: 5abf01d0bad442e7817752ae01dfc2d2
          name: 'Inactive user sessions'
          type: DEPENDENT
          key: oracle.session_inactive_user
          value_type: FLOAT
          description: 'The number of inactive user sessions.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''SESSION::Inactive User'')].VALUE.first()'
              error_handler: CUSTOM_VALUE
              error_handler_params: '0'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: sessions
        - uuid: ebc142a0784041d2bbe982c4d766b98f
          name: 'Sessions limit'
          type: DEPENDENT
          key: oracle.session_limit
          description: 'The user and system sessions.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''SYSPARAM::Sessions'')].VALUE.first()'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: sessions
        - uuid: 64361f8862e8482d86a8bdd71c709142
          name: 'Sessions lock rate'
          type: DEPENDENT
          key: oracle.session_lock_rate
          value_type: FLOAT
          units: '%'
          description: 'The percentage of locked sessions. Locks are mechanisms that prevent destructive interaction between transactions accessing the same resource - either user objects, such as tables and rows or system objects not visible to users, such as shared data structures in memory and data dictionary rows.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''SESSION::Lock rate'')].VALUE.first()'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: sessions
          triggers:
            - uuid: 9a75f3a039094ca89c2ba7e3fa93b1a8
              expression: 'min(/Oracle by ODBC/oracle.session_lock_rate,5m) > {$ORACLE.SESSIONS.LOCK.MAX.WARN}'
              name: 'Oracle: Too many locked sessions'
              event_name: 'Oracle: Too many locked sessions (over {$ORACLE.SESSIONS.LOCK.MAX.WARN}% for 5 min)'
              priority: WARNING
              description: 'The number of locked sessions exceeds `{$ORACLE.SESSIONS.LOCK.MAX.WARN}`% of the running sessions.'
              tags:
                - tag: scope
                  value: performance
        - uuid: a9669cb6290b4a158e7f02c1f079b6f9
          name: 'Sessions locked over {$ORACLE.SESSION.LOCK.MAX.TIME}s'
          type: DEPENDENT
          key: oracle.session_long_time_locked
          value_type: FLOAT
          description: 'The count of the prolongedly locked sessions. (You can change the duration of the maximum session lock in seconds for a query using the `{$ORACLE.SESSION.LOCK.MAX.TIME}` macro. Default = 600 s).'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''SESSION::Long time locked'')].VALUE.first()'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: sessions
          triggers:
            - uuid: a8f5ec966f5e4c72baad1380eda4d0a2
              expression: 'min(/Oracle by ODBC/oracle.session_long_time_locked,5m) > {$ORACLE.SESSION.LONG.LOCK.MAX.WARN}'
              name: 'Oracle: Too many sessions locked'
              event_name: 'Oracle: Too many sessions locked over {$ORACLE.SESSION.LOCK.MAX.TIME}s (over {$ORACLE.SESSION.LONG.LOCK.MAX.WARN} for 5 min)'
              priority: WARNING
              description: 'The number of locked sessions exceeding `{$ORACLE.SESSION.LOCK.MAX.TIME}` seconds is too high. Long-term locks can negatively affect the database performance. Therefore, if they are detected, you should first find the most difficult queries from the database point of view and then analyze possible resource leaks.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 94fe3a129f08415bb7e02a862bd9e8a8
          name: 'SGA, buffer cache'
          type: DEPENDENT
          key: oracle.sga_buffer_cache
          units: B
          description: 'The size of standard block cache.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''SGA::Buffer_Cache'')].VALUE.first()'
              error_handler: CUSTOM_VALUE
              error_handler_params: '0'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: cache
            - tag: component
              value: sga
        - uuid: 062fbd601d6f41208e364c80f1d08b1e
          name: 'SGA, fixed'
          type: DEPENDENT
          key: oracle.sga_fixed
          units: B
          description: 'The fixed System Global Area (SGA) is an internal housekeeping area.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''SGA::Fixed_Sga'')].VALUE.first()'
              error_handler: CUSTOM_VALUE
              error_handler_params: '0'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: memory
            - tag: component
              value: sga
        - uuid: 614066ff91e144dbae58b4920c1db932
          name: 'SGA, java pool'
          type: DEPENDENT
          key: oracle.sga_java_pool
          units: B
          description: 'The memory is allocated from the Java pool.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''SGA::Java Pool'')].VALUE.first()'
              error_handler: CUSTOM_VALUE
              error_handler_params: '0'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: memory
            - tag: component
              value: sga
        - uuid: 0f726310d4a8426188658f7c093c3989
          name: 'SGA, large pool'
          type: DEPENDENT
          key: oracle.sga_large_pool
          units: B
          description: 'The memory is allocated from a large pool.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''SGA::Large Pool'')].VALUE.first()'
              error_handler: CUSTOM_VALUE
              error_handler_params: '0'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: memory
            - tag: component
              value: sga
        - uuid: 03e9cea3887447349c9116b89b1be026
          name: 'SGA, log buffer'
          type: DEPENDENT
          key: oracle.sga_log_buffer
          units: B
          description: 'The number of bytes allocated for the redo log buffer.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''SGA::Log_Buffer'')].VALUE.first()'
              error_handler: CUSTOM_VALUE
              error_handler_params: '0'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: memory
            - tag: component
              value: sga
        - uuid: eb4c2f63ef8449d99794e5fdb7fed7bf
          name: 'SGA, shared pool'
          type: DEPENDENT
          key: oracle.sga_shared_pool
          units: B
          description: 'The memory is allocated from a shared pool.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''SGA::Shared Pool'')].VALUE.first()'
              error_handler: CUSTOM_VALUE
              error_handler_params: '0'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: memory
            - tag: component
              value: sga
        - uuid: b14b0126cf64436ea206ec151984cd95
          name: 'Shared pool free %'
          type: DEPENDENT
          key: oracle.shared_pool_free
          value_type: FLOAT
          units: '%'
          description: 'Free memory of a shared pool expressed in %.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''SYS::Shared Pool Free %'')].VALUE.first()'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: memory
          triggers:
            - uuid: 8facfa98bcd3447ea53d0a3d09ada933
              expression: 'max(/Oracle by ODBC/oracle.shared_pool_free,5m)<{$ORACLE.SHARED.FREE.MIN.WARN}'
              name: 'Oracle: Shared pool free is too low'
              event_name: 'Oracle: Shared pool free is too low (less {$ORACLE.SHARED.FREE.MIN.WARN}% for 5m)'
              priority: WARNING
              description: 'The free memory percent of the shared pool has been less than `{$ORACLE.SHARED.FREE.MIN.WARN}`% for the last 5 minutes.'
              tags:
                - tag: scope
                  value: capacity
        - uuid: 8b3e958d76d14ef7a6869634106f1277
          name: 'Total sorts per user call'
          type: DEPENDENT
          key: oracle.sorts_per_user_call
          value_type: FLOAT
          description: 'The total sorts per user call.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''SYS::Total Sorts Per User Call'')].VALUE.first()'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: application
        - uuid: fc2cff59b0804989989179e1dbc338b5
          name: 'Temp space used'
          type: DEPENDENT
          key: oracle.temp_space_used
          value_type: FLOAT
          units: B
          description: 'Used temporary space.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''SYS::Temp Space Used'')].VALUE.first()'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: application
        - uuid: 085c097ab3b34f07b262caf80703b469
          name: 'PGA, Total allocated'
          type: DEPENDENT
          key: oracle.total_pga_allocated
          units: B
          description: 'The current amount of the PGA memory allocated by the instance. The Oracle Database attempts to keep this number below the value of the `PGA_AGGREGATE_TARGET` initialization parameter. However, it is possible for the PGA allocated to exceed that value by a small percentage and for a short period of time when the work area workload is increasing very rapidly or when `PGA_AGGREGATE_TARGET` is set to a small value.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''PGA::Total Pga Allocated'')].VALUE.first()'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: memory
            - tag: component
              value: pga
        - uuid: c2c18a0a502d4fbe91db25d29ae57d45
          name: 'PGA, Total freeable'
          type: DEPENDENT
          key: oracle.total_pga_freeable
          units: B
          description: 'The number of bytes of the PGA memory in all processes that could be freed back to the OS.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''PGA::Total Freeable Pga Memory'')].VALUE.first()'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: memory
            - tag: component
              value: pga
        - uuid: e0e88ce92ece4ca0b776f09dc4ec5039
          name: 'PGA, Total inuse'
          type: DEPENDENT
          key: oracle.total_pga_used
          units: B
          description: 'The amount of Program Global Area (PGA) memory currently consumed by work areas. This number can be used to determine how much memory is consumed by other consumers of the PGA memory (for example, PL/SQL or Java).'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''PGA::Total Pga Inuse'')].VALUE.first()'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: memory
            - tag: component
              value: pga
        - uuid: 3c817d2b45fc471aa86771ce1739de6f
          name: Uptime
          type: DEPENDENT
          key: oracle.uptime
          trends: '0'
          units: s
          description: 'The Oracle instance uptime expressed in seconds.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $..UPTIME.first()
          master_item:
            key: 'db.odbc.get[get_instance_state,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: application
          triggers:
            - uuid: 03a4fb1d6e684c9b82c1317699c71468
              expression: 'nodata(/Oracle by ODBC/oracle.uptime,5m)=1'
              name: 'Oracle: Failed to fetch info data'
              event_name: 'Oracle: Failed to fetch info data (or no data for 5m)'
              priority: WARNING
              description: 'Zabbix has not received any data for the items for the last 5 minutes. The database might be unavailable for connecting.'
              dependencies:
                - name: 'Oracle: Port {$ORACLE.PORT} is unavailable'
                  expression: 'max(/Oracle by ODBC/net.tcp.service[tcp,{$ORACLE.HOST},{$ORACLE.PORT}],#3)=0  and max(/Oracle by ODBC/proc.num[,,,"tnslsnr LISTENER"],#3)>0'
              tags:
                - tag: scope
                  value: availability
            - uuid: 431201a1ce0d47948751c7e4e6bbeb92
              expression: 'last(/Oracle by ODBC/oracle.uptime)<10m'
              name: 'Oracle: Host has been restarted'
              event_name: 'Oracle: {HOST.NAME} has been restarted (uptime < 10m)'
              priority: INFO
              description: 'Uptime is less than 10 minutes.'
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: notice
        - uuid: ad275dbbe8af483b93d37e416c3f1fd2
          name: 'User ''{$ORACLE.USER}'' expire password'
          type: DEPENDENT
          key: oracle.user_expire_password
          value_type: FLOAT
          units: days
          description: 'The number of days before the Zabbix account password expires.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''USER::Expire password'')].VALUE.first()'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: application
          triggers:
            - uuid: a909d8cccacf4470a3e2da88b4e5c3d5
              expression: 'last(/Oracle by ODBC/oracle.user_expire_password)  < {$ORACLE.EXPIRE.PASSWORD.MIN.WARN}'
              name: 'Oracle: Zabbix account will expire soon'
              event_name: 'Oracle: Zabbix account will expire soon (under {$ORACLE.EXPIRE.PASSWORD.MIN.WARN} days)'
              priority: WARNING
              description: 'The password for the Zabbix user in the database expires soon.'
              tags:
                - tag: scope
                  value: notice
        - uuid: 3455378f6ecf4ecb93a69d2387e4a57d
          name: 'User rollbacks per second'
          type: DEPENDENT
          key: oracle.user_rollbacks_rate
          value_type: FLOAT
          units: Rps
          description: 'The number of times that users manually issued the `ROLLBACK` statement or an error occurred during the users'' transactions.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.METRIC==''SYS::User Rollbacks Per Sec'')].VALUE.first()'
          master_item:
            key: 'db.odbc.get[get_system_metrics,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: application
        - uuid: 45143cb0d0284608bf48897885a91bbb
          name: Version
          type: DEPENDENT
          key: oracle.version
          value_type: CHAR
          description: 'The Oracle Server version.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $..VERSION.first()
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          master_item:
            key: 'db.odbc.get[get_instance_state,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          tags:
            - tag: component
              value: application
          triggers:
            - uuid: a5dd4fe627c44afebdfe7beeefc4ec3d
              expression: 'last(/Oracle by ODBC/oracle.version,#1)<>last(/Oracle by ODBC/oracle.version,#2) and length(last(/Oracle by ODBC/oracle.version))>0'
              name: 'Oracle: Version has changed'
              event_name: 'Oracle: Version has changed (new version value received: {ITEM.VALUE})'
              priority: INFO
              description: 'The Oracle Database version has changed. Acknowledge to close the problem manually.'
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: notice
        - uuid: bf89a6ced768432a9cc3c27e1e3159d0
          name: 'Number of LISTENER processes'
          key: 'proc.num[,,,"tnslsnr LISTENER"]'
          delay: 30s
          description: 'The number of running listener processes.'
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 10m
          tags:
            - tag: component
              value: application
          triggers:
            - uuid: eb5e531eb3f142569775349a126d1ab0
              expression: 'max(/Oracle by ODBC/proc.num[,,,"tnslsnr LISTENER"],#3)=0'
              name: 'Oracle: LISTENER process is not running'
              priority: DISASTER
              description: 'The Oracle listener process is not running.'
              tags:
                - tag: scope
                  value: availability
      discovery_rules:
        - uuid: a527b14b1cee4115be5c5e9387af821b
          name: 'Archive log discovery'
          type: DEPENDENT
          key: oracle.archivelog.discovery
          description: 'Used for the discovery of the log archive.'
          item_prototypes:
            - uuid: 1a6e01f90dca47459975632c14ce5a39
              name: 'Archivelog ''{#DEST_NAME}'': Get archive log info'
              type: ODBC
              key: 'db.odbc.get[get_archivelog_{#DEST_NAME}_stat,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
              delay: 5m
              history: '0'
              value_type: TEXT
              params: |
                SELECT
                d.dest_name, DECODE (d.status, 'VALID',3, 'DEFERRED', 2, 'ERROR', 1, 0) AS status,
                d.log_sequence,
                d.error
                FROM v$archive_dest d , v$database db
                WHERE d.dest_name = '{#DEST_NAME}' AND d.status != 'INACTIVE' AND db.log_mode = 'ARCHIVELOG';
              username: '{$ORACLE.USER}'
              password: '{$ORACLE.PASSWORD}'
              description: 'Gets the archive log statistics.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.first()
                  error_handler: DISCARD_VALUE
              tags:
                - tag: component
                  value: archive-log
                - tag: component
                  value: raw
            - uuid: 06e47a56685e4dd784628c40d5038c88
              name: 'Archivelog ''{#DEST_NAME}'': Error'
              type: DEPENDENT
              key: 'oracle.archivelog_error["{#DEST_NAME}"]'
              value_type: TEXT
              description: 'Displays the error message.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.ERROR
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: 'db.odbc.get[get_archivelog_{#DEST_NAME}_stat,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
              tags:
                - tag: component
                  value: archive-log
                - tag: destination
                  value: '{#DEST_NAME}'
            - uuid: 1948e6bfaa48451cac6ee83a16b07826
              name: 'Archivelog ''{#DEST_NAME}'': Last sequence'
              type: DEPENDENT
              key: 'oracle.archivelog_log_sequence["{#DEST_NAME}"]'
              description: 'Identifies the sequence number of the last archived redo log to be archived.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.LOG_SEQUENCE
              master_item:
                key: 'db.odbc.get[get_archivelog_{#DEST_NAME}_stat,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
              tags:
                - tag: component
                  value: archive-log
                - tag: destination
                  value: '{#DEST_NAME}'
            - uuid: 0d561969fc2942fea854541a03b6a490
              name: 'Archivelog ''{#DEST_NAME}'': Status'
              type: DEPENDENT
              key: 'oracle.archivelog_log_status["{#DEST_NAME}"]'
              description: |
                Identifies the current status of the destination where:
                1 - VALID;
                2 - DEFERRED;
                3 - ERROR;
                0 - UNKNOWN.
              valuemap:
                name: 'Oracle Archivelog status'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.STATUS
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: 'db.odbc.get[get_archivelog_{#DEST_NAME}_stat,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
              tags:
                - tag: component
                  value: archive-log
                - tag: destination
                  value: '{#DEST_NAME}'
              trigger_prototypes:
                - uuid: 1202e75015304115a4ccdab027617816
                  expression: 'last(/Oracle by ODBC/oracle.archivelog_log_status["{#DEST_NAME}"])<2'
                  name: 'Oracle: Archivelog ''{#DEST_NAME}'': Log Archive is not valid'
                  priority: HIGH
                  description: |
                    The trigger will launch if the archive log destination is not in one of these states:
                    2 - DEFERRED;
                    3 - VALID.
                  tags:
                    - tag: scope
                      value: availability
          master_item:
            key: 'db.odbc.get[get_archivelog,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          lld_macro_paths:
            - lld_macro: '{#DEST_NAME}'
              path: $.DEST_NAME
        - uuid: c40708b755c7464bb064b7bffc584381
          name: 'ASM disk groups discovery'
          type: DEPENDENT
          key: oracle.asm.discovery
          description: 'Used for discovering the ASM disk groups.'
          item_prototypes:
            - uuid: 63fad55a2ced487aa30017b33bf1692e
              name: 'ASM ''{#DGNAME}'': Get ASM stats'
              type: ODBC
              key: 'db.odbc.get[get_asm_{#DGNAME}_stat,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
              history: '0'
              value_type: TEXT
              params: |
                SELECT
                name AS dgname,
                ROUND(total_mb / DECODE(TYPE, 'NORMAL', 2, 'HIGH', 3, 'EXTERN', 1)*1024*1024) AS size_byte,
                ROUND(usable_file_mb*1024*1024 ) AS free_size_byte,
                ROUND(100-(usable_file_mb /(total_mb / DECODE(TYPE, 'NORMAL', 2, 'HIGH', 3, 'EXTERN', 1)))* 100, 2) AS used_percent
                FROM v$asm_diskgroup_stat
                WHERE name = '{#DGNAME}';
              username: '{$ORACLE.USER}'
              password: '{$ORACLE.PASSWORD}'
              description: 'Gets the ASM disk group statistics.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.first()
                  error_handler: DISCARD_VALUE
              tags:
                - tag: component
                  value: asm
                - tag: component
                  value: raw
            - uuid: da6116af9f54452ab1694af8eef9f38d
              name: 'ASM ''{#DGNAME}'': Free size'
              type: DEPENDENT
              key: 'oracle.asm_free_size["{#DGNAME}"]'
              units: B
              description: 'The free size of the ASM disk group.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.FREE_SIZE_BYTE
              master_item:
                key: 'db.odbc.get[get_asm_{#DGNAME}_stat,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
              tags:
                - tag: component
                  value: asm
                - tag: disk-group
                  value: '{#DGNAME}'
            - uuid: 7f2a51d7eeb64c5b8929dcb0e3a49273
              name: 'ASM ''{#DGNAME}'': Total size'
              type: DEPENDENT
              key: 'oracle.asm_total_size["{#DGNAME}"]'
              units: B
              description: 'The total size of the ASM disk group.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.SIZE_BYTE
              master_item:
                key: 'db.odbc.get[get_asm_{#DGNAME}_stat,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
              tags:
                - tag: component
                  value: asm
                - tag: disk-group
                  value: '{#DGNAME}'
            - uuid: 9c87a9089a19468f85eb1d3c28893092
              name: 'ASM ''{#DGNAME}'': Used size, percent'
              type: DEPENDENT
              key: 'oracle.asm_used_pct["{#DGNAME}"]'
              value_type: FLOAT
              units: '%'
              description: 'Usage of the ASM disk group expressed in %.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.USED_PERCENT
              master_item:
                key: 'db.odbc.get[get_asm_{#DGNAME}_stat,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
              tags:
                - tag: component
                  value: asm
                - tag: disk-group
                  value: '{#DGNAME}'
              trigger_prototypes:
                - uuid: 756a8b4b04bc4aadab6b4b4cc856ad32
                  expression: 'min(/Oracle by ODBC/oracle.asm_used_pct["{#DGNAME}"],5m)>{$ORACLE.ASM.USED.PCT.MAX.HIGH}'
                  name: 'Oracle: ASM ''{#DGNAME}'': Disk group usage is too high'
                  event_name: 'Oracle: ASM ''{#DGNAME}'': Disk group usage is too high (over {$ORACLE.ASM.USED.PCT.MAX.HIGH}% for 5m)'
                  priority: HIGH
                  description: 'The usage of the ASM disk group expressed in % exceeds `{$ORACLE.ASM.USED.PCT.MAX.WARN}`.'
                  tags:
                    - tag: scope
                      value: capacity
                - uuid: d65971e0f3994dfcbcbde145c9866678
                  expression: 'min(/Oracle by ODBC/oracle.asm_used_pct["{#DGNAME}"],5m)>{$ORACLE.ASM.USED.PCT.MAX.WARN}'
                  name: 'Oracle: ASM ''{#DGNAME}'': Disk group usage is too high'
                  event_name: 'Oracle: ASM ''{#DGNAME}'': Disk group usage is too high (over {$ORACLE.ASM.USED.PCT.MAX.WARN}% for 5m)'
                  priority: WARNING
                  description: 'The usage of the ASM disk group expressed in % exceeds `{$ORACLE.ASM.USED.PCT.MAX.WARN}`.'
                  dependencies:
                    - name: 'Oracle: ASM ''{#DGNAME}'': Disk group usage is too high'
                      expression: 'min(/Oracle by ODBC/oracle.asm_used_pct["{#DGNAME}"],5m)>{$ORACLE.ASM.USED.PCT.MAX.HIGH}'
                  tags:
                    - tag: scope
                      value: capacity
          graph_prototypes:
            - uuid: 75f9f07dbae84443900aad10095e37f9
              name: 'ASM ''{#DGNAME}'': ASM disk group ''{#DGNAME}'''
              graph_items:
                - color: 199C0D
                  item:
                    host: 'Oracle by ODBC'
                    key: 'oracle.asm_free_size["{#DGNAME}"]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'Oracle by ODBC'
                    key: 'oracle.asm_total_size["{#DGNAME}"]'
          master_item:
            key: 'db.odbc.get[get_asm,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          lld_macro_paths:
            - lld_macro: '{#DGNAME}'
              path: $.DGNAME
        - uuid: 0f65936b86314c269b7720a9ff3f1c14
          name: 'Database discovery'
          type: DEPENDENT
          key: oracle.db.discovery
          filter:
            evaltype: AND
            conditions:
              - macro: '{#DBNAME}'
                value: '{$ORACLE.DBNAME.MATCHES}'
              - macro: '{#DBNAME}'
                value: '{$ORACLE.DBNAME.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
          description: 'Used for database discovery.'
          item_prototypes:
            - uuid: 5de7c786988d49d0b50f28d2d622db62
              name: 'Database ''{#DBNAME}'': Get CDB and No-CDB info'
              type: ODBC
              key: 'db.odbc.get[get_cdb_{#DBNAME}_info,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
              history: '0'
              value_type: TEXT
              params: |
                SELECT name as DBNAME,
                DECODE(open_mode, 'MOUNTED', 1, 'READ ONLY', 2, 'READ WRITE', 3, 'READ ONLY WITH APPLY', 4, 'MIGRATE', 5, 0) AS open_mode,
                DECODE(database_role, 'SNAPSHOT STANDBY', 1, 'LOGICAL STANDBY', 2, 'PHYSICAL STANDBY', 3, 'PRIMARY', 4, 'FAR SYNC', 5, 0) AS ROLE,
                DECODE(force_logging, 'YES',1,'NO',0,0) AS force_logging,
                DECODE(log_mode, 'MANUAL',2 ,'ARCHIVELOG',1,'NOARCHIVELOG',0,0) AS log_mode
                FROM v$database
                WHERE name = '{#DBNAME}';
              username: '{$ORACLE.USER}'
              password: '{$ORACLE.PASSWORD}'
              description: 'Gets the information about the CDB and non-CDB database on an instance.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.first()
                  error_handler: DISCARD_VALUE
              tags:
                - tag: component
                  value: cdb
                - tag: component
                  value: raw
            - uuid: 075885bfd41d43aba7861ae49e9abbee
              name: 'Database ''{#DBNAME}'': Force logging'
              type: DEPENDENT
              key: 'oracle.db_force_logging["{#DBNAME}"]'
              description: 'Indicates whether the database is under force logging mode (`YES`/`NO`).'
              valuemap:
                name: 'Oracle force log status'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.FORCE_LOGGING
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 15m
              master_item:
                key: 'db.odbc.get[get_cdb_{#DBNAME}_info,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
              tags:
                - tag: component
                  value: database
                - tag: database
                  value: '{#DBNAME}'
                - tag: type
                  value: '{#TYPE}'
            - uuid: 9b88e24d523e4111b2ff65ae26650e04
              name: 'Database ''{#DBNAME}'': Log mode'
              type: DEPENDENT
              key: 'oracle.db_log_mode["{#DBNAME}"]'
              description: |
                The archive log mode where:
                0 - NOARCHIVELOG;
                1 - ARCHIVELOG;
                2 - MANUAL.
              valuemap:
                name: 'Oracle log mode'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.LOG_MODE
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 15m
              master_item:
                key: 'db.odbc.get[get_cdb_{#DBNAME}_info,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
              tags:
                - tag: component
                  value: database
                - tag: database
                  value: '{#DBNAME}'
                - tag: type
                  value: '{#TYPE}'
            - uuid: f1971909355f4ef48c32695b5d204d56
              name: 'Database ''{#DBNAME}'': Open status'
              type: DEPENDENT
              key: 'oracle.db_open_mode["{#DBNAME}"]'
              description: |
                1 - MOUNTED;
                2 - READ WRITE;
                3 - READ ONLY;
                4 - READ ONLY WITH APPLY (a physical standby database is open in real-time query mode).
              valuemap:
                name: 'Oracle DB open status'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.OPEN_MODE
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 15m
              master_item:
                key: 'db.odbc.get[get_cdb_{#DBNAME}_info,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
              tags:
                - tag: component
                  value: database
                - tag: database
                  value: '{#DBNAME}'
                - tag: type
                  value: '{#TYPE}'
              trigger_prototypes:
                - uuid: 9bf80a9372ef4b3898fd5a4f0c3cec7c
                  expression: 'last(/Oracle by ODBC/oracle.db_open_mode["{#DBNAME}"],#1)<>last(/Oracle by ODBC/oracle.db_open_mode["{#DBNAME}"],#2)'
                  name: 'Oracle: Database ''{#DBNAME}'': Open status has changed'
                  event_name: 'Oracle: Database ''{#DBNAME}'': Open status has changed (new value received: {ITEM.VALUE})'
                  priority: INFO
                  description: 'The Oracle Database open status has changed. Acknowledge to close the problem manually.'
                  manual_close: 'YES'
                  dependencies:
                    - name: 'Oracle: Database ''{#DBNAME}'': Open status in mount mode'
                      expression: 'last(/Oracle by ODBC/oracle.db_open_mode["{#DBNAME}"])=1'
                  tags:
                    - tag: scope
                      value: notice
                - uuid: 3620ac4e75644789a2f0245dbb948771
                  expression: 'last(/Oracle by ODBC/oracle.db_open_mode["{#DBNAME}"])=1'
                  name: 'Oracle: Database ''{#DBNAME}'': Open status in mount mode'
                  priority: WARNING
                  description: 'The Oracle Database is in a mounted state.'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: 949d1e5fc4424b2bb0ffd220f00f6a79
              name: 'Database ''{#DBNAME}'': Role'
              type: DEPENDENT
              key: 'oracle.db_role["{#DBNAME}"]'
              description: |
                The current role of the database where:
                1 - SNAPSHOT STANDBY;
                2 - LOGICAL STANDBY;
                3 - PHYSICAL STANDBY;
                4 - PRIMARY;
                5 - FAR SYNC.
              valuemap:
                name: 'Oracle DB role'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.ROLE
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 15m
              master_item:
                key: 'db.odbc.get[get_cdb_{#DBNAME}_info,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
              tags:
                - tag: component
                  value: database
                - tag: database
                  value: '{#DBNAME}'
                - tag: type
                  value: '{#TYPE}'
              trigger_prototypes:
                - uuid: fb5ccc917a8344d7945b8867a1982d6b
                  expression: 'last(/Oracle by ODBC/oracle.db_role["{#DBNAME}"],#1)<>last(/Oracle by ODBC/oracle.db_role["{#DBNAME}"],#2)'
                  name: 'Oracle: Database ''{#DBNAME}'': Role has changed'
                  event_name: 'Oracle: Database ''{#DBNAME}'': Role has changed (new value received: {ITEM.VALUE})'
                  priority: INFO
                  description: 'The Oracle Database role has changed. Acknowledge to close the problem manually.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: notice
          trigger_prototypes:
            - uuid: 9c17e0fdd6fe409e8f298433e58b7445
              expression: 'last(/Oracle by ODBC/oracle.db_force_logging["{#DBNAME}"]) = 0 and last(/Oracle by ODBC/oracle.db_log_mode["{#DBNAME}"]) = 1'
              name: 'Oracle: Database ''{#DBNAME}'': Force logging is deactivated for DB with active Archivelog'
              priority: WARNING
              description: 'Force logging mode is a very important metric for databases in `ARCHIVELOG`. This feature allows to forcibly write all the transactions to the redo log.'
              tags:
                - tag: scope
                  value: performance
          master_item:
            key: 'db.odbc.get[get_db,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          lld_macro_paths:
            - lld_macro: '{#DBNAME}'
              path: $.DBNAME
            - lld_macro: '{#TYPE}'
              path: $.TYPE
        - uuid: 2611e69f735a42b190852589658dd591
          name: 'PDB discovery'
          type: DEPENDENT
          key: oracle.pdb.discovery
          filter:
            evaltype: AND
            conditions:
              - macro: '{#DBNAME}'
                value: '{$ORACLE.DBNAME.MATCHES}'
              - macro: '{#DBNAME}'
                value: '{$ORACLE.DBNAME.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
          description: 'Used for the discovery of the pluggable database (PDB).'
          item_prototypes:
            - uuid: cedcebd0b7ce474c9681022fcc75df1c
              name: 'Database ''{#DBNAME}'': Get PDB info'
              type: ODBC
              key: 'db.odbc.get[get_pdb_{#CON_ID}_info,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
              history: '0'
              value_type: TEXT
              params: |
                SELECT
                name as DBNAME,
                DECODE(open_mode, 'MOUNTED', 1, 'READ ONLY', 2, 'READ WRITE', 3, 'READ ONLY WITH APPLY', 4, 'MIGRATE', 5, 0) AS open_mode
                FROM v$pdbs
                WHERE CON_ID = '{#CON_ID}';
              username: '{$ORACLE.USER}'
              password: '{$ORACLE.PASSWORD}'
              description: 'Gets the information about the PDB database on an instance.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.first()
                  error_handler: DISCARD_VALUE
              tags:
                - tag: component
                  value: pdb
                - tag: component
                  value: raw
            - uuid: 975d302e3e9a4316b6d63256b88b5006
              name: 'Database ''{#DBNAME}'': Open status'
              type: DEPENDENT
              key: 'oracle.pdb_open_mode["{#CON_ID}"]'
              description: |
                1 - MOUNTED;
                2 - READ WRITE;
                3 - READ ONLY;
                4 - READ ONLY WITH APPLY (a physical standby database is open in real-time query mode).
              valuemap:
                name: 'Oracle DB open status'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.OPEN_MODE
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 15m
              master_item:
                key: 'db.odbc.get[get_pdb_{#CON_ID}_info,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
              tags:
                - tag: component
                  value: database
                - tag: database
                  value: '{#DBNAME}'
                - tag: type
                  value: pdb
              trigger_prototypes:
                - uuid: 3dbb9379f8024924b197037acfbbdac4
                  expression: 'last(/Oracle by ODBC/oracle.pdb_open_mode["{#CON_ID}"],#1)<>last(/Oracle by ODBC/oracle.pdb_open_mode["{#CON_ID}"],#2)'
                  name: 'Oracle: Database ''{#DBNAME}'': Open status has changed'
                  event_name: 'Oracle: Database ''{#DBNAME}'': Open status has changed (new value received: {ITEM.VALUE})'
                  priority: INFO
                  description: 'The Oracle Database open status has changed. Acknowledge to close the problem manually.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: notice
                - uuid: 5f8ed69b2c074a29b9975baf10a2a2f8
                  expression: 'last(/Oracle by ODBC/oracle.pdb_open_mode["{#CON_ID}"])=1'
                  name: 'Oracle: Database ''{#DBNAME}'': Open status in mount mode'
                  priority: WARNING
                  description: 'The Oracle Database is in a mounted state.'
                  tags:
                    - tag: scope
                      value: notice
          master_item:
            key: 'db.odbc.get[get_pdb,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          lld_macro_paths:
            - lld_macro: '{#CON_ID}'
              path: $.CON_ID
            - lld_macro: '{#DBNAME}'
              path: $.DBNAME
        - uuid: c8de553c98f64e59b40bf927f6447ad1
          name: 'Tablespace discovery'
          type: DEPENDENT
          key: oracle.tablespace.discovery
          filter:
            evaltype: AND
            conditions:
              - macro: '{#CON_NAME}'
                value: '{$ORACLE.TABLESPACE.CONTAINER.MATCHES}'
              - macro: '{#CON_NAME}'
                value: '{$ORACLE.TABLESPACE.CONTAINER.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#TABLESPACE}'
                value: '{$ORACLE.TABLESPACE.NAME.MATCHES}'
              - macro: '{#TABLESPACE}'
                value: '{$ORACLE.TABLESPACE.NAME.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
          description: 'Used for the discovery of tablespaces in DBMS.'
          item_prototypes:
            - uuid: 972be2e777e44c539d0ddd7918b79e88
              name: '''{#CON_NAME}'' TBS ''{#TABLESPACE}'': Get tablespaces stats'
              type: ODBC
              key: 'db.odbc.get[get_{#CON_ID}_tablespace_{#TABLESPACE}_stats,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
              history: '0'
              value_type: TEXT
              params: |
                SELECT df.CON_NAME,
                       df.TABLESPACE_NAME                  AS TABLESPACE,
                       df.CONTENTS                         AS TYPE,
                       NVL(SUM(df.BYTES), 0)               AS FILE_BYTES,
                       NVL(SUM(df.MAX_BYTES), 0)           AS MAX_BYTES,
                       NVL(SUM(f.FREE), 0)                 AS FREE_BYTES,
                       NVL(SUM(df.BYTES) - SUM(f.FREE), 0) AS USED_BYTES,
                       ROUND(CASE SUM(df.MAX_BYTES)
                                 WHEN 0 THEN 0
                                 ELSE (SUM(df.BYTES) / SUM(df.MAX_BYTES) * 100)
                                 END, 2)                   AS USED_PCT_MAX,
                       ROUND(CASE SUM(df.BYTES)
                                 WHEN 0 THEN 0
                                 ELSE (NVL(SUM(df.BYTES) - SUM(f.FREE), 0)) / SUM(df.BYTES) * 100
                                 END, 2)                   AS USED_FILE_PCT,
                       ROUND(CASE SUM(df.MAX_BYTES)
                                 WHEN 0 THEN 0
                                 ELSE NVL(SUM(df.BYTES) - SUM(f.FREE), 0) / SUM(df.MAX_BYTES) * 100
                                 END, 2)                   AS USED_FROM_MAX_PCT,
                       CASE df.STATUS
                           WHEN 'ONLINE' THEN 1
                           WHEN 'OFFLINE' THEN 2
                           WHEN 'READ ONLY' THEN 3
                           ELSE 0
                           END                             AS STATUS
                FROM (SELECT ct.CON$NAME                              AS CON_NAME,
                             cdf.FILE_ID,
                             ct.CONTENTS,
                             ct.STATUS,
                             cdf.FILE_NAME,
                             cdf.TABLESPACE_NAME,
                             TRUNC(cdf.BYTES)                         AS BYTES,
                             TRUNC(GREATEST(cdf.BYTES, cdf.MAXBYTES)) AS MAX_BYTES
                      FROM CDB_DATA_FILES cdf,
                           CDB_TABLESPACES ct
                      WHERE cdf.TABLESPACE_NAME = ct.TABLESPACE_NAME
                        AND cdf.CON_ID = ct.CON_ID
                        AND (ct.CON_ID = '{#CON_ID}' or (ct.CON$NAME is null and ct.CON_ID = 0))
                        AND cdf.TABLESPACE_NAME = '{#TABLESPACE}'
                        AND ct.CONTENTS = '{#CONTENTS}') df,
                     (SELECT TRUNC(SUM(BYTES)) AS FREE,
                             FILE_ID
                      FROM CDB_FREE_SPACE
                      GROUP BY FILE_ID) f
                WHERE df.FILE_ID = f.FILE_ID (+)
                GROUP BY df.CON_NAME,
                         df.TABLESPACE_NAME,
                         df.CONTENTS,
                         df.STATUS
                UNION ALL
                SELECT Y.CON_NAME,
                       Y.NAME                                   AS TABLESPACE,
                       Y.CONTENTS                               AS TYPE,
                       NVL(SUM(Y.BYTES), 0)                     AS FILE_BYTES,
                       NVL(SUM(Y.MAX_BYTES), 0)                 AS MAX_BYTES,
                       NVL(MAX(NVL(Y.FREE_BYTES, 0)), 0)        AS FREE_BYTES,
                       NVL(SUM(Y.BYTES) - MAX(Y.FREE_BYTES), 0) AS USED_BYTES,
                       ROUND(CASE SUM(Y.MAX_BYTES)
                                 WHEN 0 THEN 0
                                 ELSE (SUM(Y.BYTES) / SUM(Y.MAX_BYTES) * 100)
                                 END, 2)                                    AS USED_PCT_MAX,
                       ROUND(CASE SUM(Y.BYTES)
                                 WHEN 0 THEN 0
                                 ELSE (NVL(SUM(Y.BYTES) - MAX(Y.FREE_BYTES), 0)) / SUM(Y.BYTES) * 100
                                 END, 2)                                    AS USED_FILE_PCT,
                       ROUND(CASE SUM(Y.MAX_BYTES)
                                 WHEN 0 THEN 0
                                 ELSE (NVL(SUM(Y.BYTES) - MAX(Y.FREE_BYTES), 0)) / SUM(Y.MAX_BYTES) * 100
                                 END, 2)                                    AS USED_FROM_MAX_PCT,
                       CASE Y.STATUS
                           WHEN 'ONLINE' THEN 1
                           WHEN 'OFFLINE' THEN 2
                           WHEN 'READ ONLY' THEN 3
                           ELSE 0
                           END                                  AS STATUS
                FROM (SELECT ct.CON$NAME                  AS CON_NAME,
                             ctf.TABLESPACE_NAME          AS NAME,
                             ct.CONTENTS,
                             ctf.STATUS                   AS STATUS,
                             ctf.BYTES                    AS BYTES,
                             (SELECT ((f.TOTAL_BLOCKS - s.TOT_USED_BLOCKS) * vp.VALUE)
                              FROM (SELECT CON_ID,
                                           TABLESPACE_NAME,
                                           SUM(USED_BLOCKS) TOT_USED_BLOCKS
                                    FROM V$SORT_SEGMENT
                                    WHERE TABLESPACE_NAME != 'DUMMY'
                                    GROUP BY CON_ID,
                                             TABLESPACE_NAME) s,
                                   (SELECT CON_ID,
                                           TABLESPACE_NAME,
                                           SUM(BLOCKS) TOTAL_BLOCKS
                                    FROM CDB_TEMP_FILES
                                    WHERE TABLESPACE_NAME != 'DUMMY'
                                    GROUP BY CON_ID,
                                             TABLESPACE_NAME) f,
                                   (SELECT VALUE
                                    FROM V$PARAMETER
                                    WHERE NAME = 'db_block_size') vp
                              WHERE f.TABLESPACE_NAME = s.TABLESPACE_NAME
                                AND f.TABLESPACE_NAME = ctf.TABLESPACE_NAME
                                AND f.CON_ID = s.CON_ID
                                AND f.CON_ID = ct.CON_ID) AS FREE_BYTES,
                             CASE
                                 WHEN ctf.MAXBYTES = 0 THEN ctf.BYTES
                                 ELSE ctf.MAXBYTES
                                 END                      AS MAX_BYTES
                      FROM CDB_TEMP_FILES ctf,
                           CDB_TABLESPACES ct
                      WHERE ctf.TABLESPACE_NAME = ct.TABLESPACE_NAME
                        AND ctf.CON_ID = ct.CON_ID
                        AND (ct.CON_ID = '{#CON_ID}' or (ct.CON$NAME is null and ct.CON_ID = 0))
                        AND ctf.TABLESPACE_NAME = '{#TABLESPACE}'
                        AND ct.CONTENTS = '{#CONTENTS}') Y
                GROUP BY Y.CON_NAME,
                         Y.NAME,
                         Y.CONTENTS,
                         Y.STATUS;
              username: '{$ORACLE.USER}'
              password: '{$ORACLE.PASSWORD}'
              description: 'Gets the statistics of the tablespace.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.first()
                  error_handler: DISCARD_VALUE
              tags:
                - tag: component
                  value: raw
                - tag: component
                  value: tablespaces
            - uuid: 46956fd7e5d8462798b85cd7b425a794
              name: '''{#CON_NAME}'' TBS ''{#TABLESPACE}'': Tablespace allocated, bytes'
              type: DEPENDENT
              key: 'oracle.tbs_alloc_bytes["{#CON_ID}","{#TABLESPACE}"]'
              units: B
              description: 'Currently allocated bytes for the tablespace (sum of the current size of datafiles).'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.FILE_BYTES
              master_item:
                key: 'db.odbc.get[get_{#CON_ID}_tablespace_{#TABLESPACE}_stats,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
              tags:
                - tag: component
                  value: tablespaces
                - tag: contents
                  value: '{#CONTENTS}'
                - tag: database
                  value: '{#CON_NAME}'
                - tag: tablespace
                  value: '{#TABLESPACE}'
            - uuid: 8c3284a21872423499ee15fd7b0038f1
              name: '''{#CON_NAME}'' TBS ''{#TABLESPACE}'': Tablespace free, bytes'
              type: DEPENDENT
              key: 'oracle.tbs_free_bytes["{#CON_ID}","{#TABLESPACE}"]'
              units: B
              description: 'Free bytes of the allocated space.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.FREE_BYTES
              master_item:
                key: 'db.odbc.get[get_{#CON_ID}_tablespace_{#TABLESPACE}_stats,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
              tags:
                - tag: component
                  value: tablespaces
                - tag: contents
                  value: '{#CONTENTS}'
                - tag: database
                  value: '{#CON_NAME}'
                - tag: tablespace
                  value: '{#TABLESPACE}'
            - uuid: afd8c1a01b64408fbc6f8f95fbb13593
              name: '''{#CON_NAME}'' TBS ''{#TABLESPACE}'': Tablespace MAX size, bytes'
              type: DEPENDENT
              key: 'oracle.tbs_max_bytes["{#CON_ID}","{#TABLESPACE}"]'
              units: B
              description: 'The maximum size of the tablespace.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.MAX_BYTES
              master_item:
                key: 'db.odbc.get[get_{#CON_ID}_tablespace_{#TABLESPACE}_stats,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
              tags:
                - tag: component
                  value: tablespaces
                - tag: contents
                  value: '{#CONTENTS}'
                - tag: database
                  value: '{#CON_NAME}'
                - tag: tablespace
                  value: '{#TABLESPACE}'
            - uuid: 42c7812a75d5433ab8a275498635c81c
              name: '''{#CON_NAME}'' TBS ''{#TABLESPACE}'': Open status'
              type: DEPENDENT
              key: 'oracle.tbs_status["{#CON_ID}","{#TABLESPACE}"]'
              description: |
                The tablespace status where:
                1 - ONLINE;
                2 - OFFLINE;
                3 - READ ONLY.
              valuemap:
                name: 'Oracle tablespace status'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.STATUS
              master_item:
                key: 'db.odbc.get[get_{#CON_ID}_tablespace_{#TABLESPACE}_stats,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
              tags:
                - tag: component
                  value: tablespaces
                - tag: contents
                  value: '{#CONTENTS}'
                - tag: database
                  value: '{#CON_NAME}'
                - tag: tablespace
                  value: '{#TABLESPACE}'
              trigger_prototypes:
                - uuid: 3c5f54f41f95440aa18ca5316aeb50f6
                  expression: 'last(/Oracle by ODBC/oracle.tbs_status["{#CON_ID}","{#TABLESPACE}"])=2'
                  name: 'Oracle: ''{#CON_NAME}'' TBS ''{#TABLESPACE}'': Tablespace is OFFLINE'
                  priority: WARNING
                  description: 'The tablespace is in the offline state.'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: 05c2af5a765842a1a70f2f67355db1b3
                  expression: 'last(/Oracle by ODBC/oracle.tbs_status["{#CON_ID}","{#TABLESPACE}"],#1)<>last(/Oracle by ODBC/oracle.tbs_status["{#CON_ID}","{#TABLESPACE}"],#2)'
                  name: 'Oracle: ''{#CON_NAME}'' TBS ''{#TABLESPACE}'': Tablespace status has changed'
                  event_name: 'Oracle: ''{#CON_NAME}'' TBS ''{#TABLESPACE}'': Tablespace status has changed (new value received: {ITEM.VALUE})'
                  priority: INFO
                  description: 'Oracle tablespace status has changed. Acknowledge to close the problem manually.'
                  manual_close: 'YES'
                  dependencies:
                    - name: 'Oracle: ''{#CON_NAME}'' TBS ''{#TABLESPACE}'': Tablespace is OFFLINE'
                      expression: 'last(/Oracle by ODBC/oracle.tbs_status["{#CON_ID}","{#TABLESPACE}"])=2'
                  tags:
                    - tag: scope
                      value: capacity
            - uuid: b9cc0eabdcbc404fb0df2a2a082411f1
              name: '''{#CON_NAME}'' TBS ''{#TABLESPACE}'': Tablespace used, bytes'
              type: DEPENDENT
              key: 'oracle.tbs_used_bytes["{#CON_ID}","{#TABLESPACE}"]'
              units: B
              description: 'Currently used bytes for the tablespace (current size of datafiles minus the free space).'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.USED_BYTES
              master_item:
                key: 'db.odbc.get[get_{#CON_ID}_tablespace_{#TABLESPACE}_stats,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
              tags:
                - tag: component
                  value: tablespaces
                - tag: contents
                  value: '{#CONTENTS}'
                - tag: database
                  value: '{#CON_NAME}'
                - tag: tablespace
                  value: '{#TABLESPACE}'
            - uuid: 877961c286e448238f58cff9c51088c8
              name: '''{#CON_NAME}'' TBS ''{#TABLESPACE}'': Tablespace usage, percent'
              type: DEPENDENT
              key: 'oracle.tbs_used_file_pct["{#CON_ID}","{#TABLESPACE}"]'
              value_type: FLOAT
              units: '%'
              description: 'Used bytes/allocated bytes*100.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.USED_FILE_PCT
              master_item:
                key: 'db.odbc.get[get_{#CON_ID}_tablespace_{#TABLESPACE}_stats,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
              tags:
                - tag: component
                  value: tablespaces
                - tag: contents
                  value: '{#CONTENTS}'
                - tag: database
                  value: '{#CON_NAME}'
                - tag: tablespace
                  value: '{#TABLESPACE}'
              trigger_prototypes:
                - uuid: 78c293ae7ded42b0b05d50af99762017
                  expression: 'min(/Oracle by ODBC/oracle.tbs_used_file_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.HIGH}'
                  name: 'Oracle: ''{#CON_NAME}'' TBS ''{#TABLESPACE}'': Tablespace usage is too high'
                  event_name: 'Oracle: ''{#CON_NAME}'' TBS ''{#TABLESPACE}'': Tablespace usage is too high (over {$ORACLE.TBS.USED.PCT.MAX.HIGH}% for 5m).'
                  priority: HIGH
                  description: 'The usage of the tablespace `{#TABLESPACE}` exceeds `{$ORACLE.TBS.USED.PCT.MAX.HIGH}`%'
                  tags:
                    - tag: scope
                      value: capacity
                - uuid: e6f2cb4ade52464b97f5e0f5e05ab61b
                  expression: 'min(/Oracle by ODBC/oracle.tbs_used_file_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.WARN}'
                  name: 'Oracle: ''{#CON_NAME}'' TBS ''{#TABLESPACE}'': Tablespace usage is too high'
                  event_name: 'Oracle: ''{#CON_NAME}'' TBS ''{#TABLESPACE}'': Tablespace usage is too high (over {$ORACLE.TBS.USED.PCT.MAX.WARN}% for 5m).'
                  priority: WARNING
                  description: 'The usage of the tablespace `{#TABLESPACE}` exceeds `{$ORACLE.TBS.USED.PCT.MAX.WARN}`%'
                  dependencies:
                    - name: 'Oracle: ''{#CON_NAME}'' TBS ''{#TABLESPACE}'': Tablespace usage is too high'
                      expression: 'min(/Oracle by ODBC/oracle.tbs_used_file_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.MAX.HIGH}'
                  tags:
                    - tag: scope
                      value: capacity
            - uuid: 94ecf43024cd41cf891df319cc615b50
              name: '''{#CON_NAME}'' TBS ''{#TABLESPACE}'': Tablespace usage from MAX, percent'
              type: DEPENDENT
              key: 'oracle.tbs_used_from_max_pct["{#CON_ID}","{#TABLESPACE}"]'
              value_type: FLOAT
              units: '%'
              description: 'Used bytes/max bytes*100.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.USED_FROM_MAX_PCT
              master_item:
                key: 'db.odbc.get[get_{#CON_ID}_tablespace_{#TABLESPACE}_stats,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
              tags:
                - tag: component
                  value: tablespaces
                - tag: contents
                  value: '{#CONTENTS}'
                - tag: database
                  value: '{#CON_NAME}'
                - tag: tablespace
                  value: '{#TABLESPACE}'
              trigger_prototypes:
                - uuid: 1db3eee269ea4554bc363338868c8830
                  expression: 'min(/Oracle by ODBC/oracle.tbs_used_from_max_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.FROM.MAX.HIGH}'
                  name: 'Oracle: ''{#CON_NAME}'' TBS ''{#TABLESPACE}'': Tablespace usage from MAX is too high'
                  event_name: 'Oracle: ''{#CON_NAME}'' TBS ''{#TABLESPACE}'': Tablespace usage from MAX is too high (over {$ORACLE.TBS.USED.PCT.FROM.MAX.HIGH}% for 5m).'
                  priority: HIGH
                  description: 'The usage of the tablespace `{#TABLESPACE}` from MAX exceeds `{$ORACLE.TBS.USED.PCT.FROM.MAX.HIGH}`%'
                  tags:
                    - tag: scope
                      value: capacity
                - uuid: 062309da61ff407eb96201f530544a02
                  expression: 'min(/Oracle by ODBC/oracle.tbs_used_from_max_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.FROM.MAX.WARN}'
                  name: 'Oracle: ''{#CON_NAME}'' TBS ''{#TABLESPACE}'': Tablespace usage from MAX is too high'
                  event_name: 'Oracle: ''{#CON_NAME}'' TBS ''{#TABLESPACE}'': Tablespace usage from MAX is too high (over {$ORACLE.TBS.USED.PCT.FROM.MAX.WARN}% for 5m).'
                  priority: WARNING
                  description: 'The usage of the tablespace `{#TABLESPACE}` from MAX exceeds `{$ORACLE.TBS.USED.PCT.FROM.MAX.WARN}`%'
                  dependencies:
                    - name: 'Oracle: ''{#CON_NAME}'' TBS ''{#TABLESPACE}'': Tablespace usage from MAX is too high'
                      expression: 'min(/Oracle by ODBC/oracle.tbs_used_from_max_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.USED.PCT.FROM.MAX.HIGH}'
                  tags:
                    - tag: scope
                      value: capacity
            - uuid: c3a904455ff244e1a30bf32f0b4ea0d7
              name: '''{#CON_NAME}'' TBS ''{#TABLESPACE}'': Tablespace allocated, percent'
              type: DEPENDENT
              key: 'oracle.tbs_used_pct["{#CON_ID}","{#TABLESPACE}"]'
              value_type: FLOAT
              units: '%'
              description: 'Allocated bytes/max bytes*100.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.USED_PCT_MAX
              master_item:
                key: 'db.odbc.get[get_{#CON_ID}_tablespace_{#TABLESPACE}_stats,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
              tags:
                - tag: component
                  value: tablespaces
                - tag: contents
                  value: '{#CONTENTS}'
                - tag: database
                  value: '{#CON_NAME}'
                - tag: tablespace
                  value: '{#TABLESPACE}'
              trigger_prototypes:
                - uuid: a8aa7255866d4a5ba71d2f89a1d234fe
                  expression: 'min(/Oracle by ODBC/oracle.tbs_used_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.UTIL.PCT.MAX.HIGH}'
                  name: 'Oracle: ''{#CON_NAME}'' TBS ''{#TABLESPACE}'': Tablespace utilization is too high'
                  event_name: 'Oracle: ''{#CON_NAME}'' TBS ''{#TABLESPACE}'': Tablespace utilization is too high (over {$ORACLE.TBS.UTIL.PCT.MAX.HIGH}% for 5m).'
                  priority: HIGH
                  description: 'The utilization of the tablespace `{#TABLESPACE}` exceeds `{$ORACLE.TBS.UTIL.PCT.MAX.HIGH}`%'
                  tags:
                    - tag: scope
                      value: capacity
                - uuid: 9469e51bd69e4baba82de4fd4e5eb14c
                  expression: 'min(/Oracle by ODBC/oracle.tbs_used_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.UTIL.PCT.MAX.WARN}'
                  name: 'Oracle: ''{#CON_NAME}'' TBS ''{#TABLESPACE}'': Tablespace utilization is too high'
                  event_name: 'Oracle: ''{#CON_NAME}'' TBS ''{#TABLESPACE}'': Tablespace utilization is too high (over {$ORACLE.TBS.UTIL.PCT.MAX.WARN}% for 5m).'
                  priority: WARNING
                  description: 'The utilization of the tablespace `{#TABLESPACE}` exceeds `{$ORACLE.TBS.UTIL.PCT.MAX.WARN}`%'
                  dependencies:
                    - name: 'Oracle: ''{#CON_NAME}'' TBS ''{#TABLESPACE}'': Tablespace utilization is too high'
                      expression: 'min(/Oracle by ODBC/oracle.tbs_used_pct["{#CON_ID}","{#TABLESPACE}"],5m)>{$ORACLE.TBS.UTIL.PCT.MAX.HIGH}'
                  tags:
                    - tag: scope
                      value: capacity
          graph_prototypes:
            - uuid: a9f3bc52aa0340feb35600ad249e82d3
              name: '''{#CON_NAME}'' TBS ''{#TABLESPACE}'': Tablespace ''{#TABLESPACE}'''
              graph_items:
                - color: 199C0D
                  item:
                    host: 'Oracle by ODBC'
                    key: 'oracle.tbs_alloc_bytes["{#CON_ID}","{#TABLESPACE}"]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'Oracle by ODBC'
                    key: 'oracle.tbs_max_bytes["{#CON_ID}","{#TABLESPACE}"]'
                - sortorder: '2'
                  color: 00611C
                  item:
                    host: 'Oracle by ODBC'
                    key: 'oracle.tbs_used_bytes["{#CON_ID}","{#TABLESPACE}"]'
          master_item:
            key: 'db.odbc.get[get_tablespace,,"Driver={$ORACLE.DRIVER};DBQ=//{$ORACLE.HOST}:{$ORACLE.PORT}/{$ORACLE.SERVICE};"]'
          lld_macro_paths:
            - lld_macro: '{#CONTENTS}'
              path: $.CONTENTS
            - lld_macro: '{#CON_ID}'
              path: $.CON_ID
            - lld_macro: '{#CON_NAME}'
              path: $.CON_NAME
            - lld_macro: '{#TABLESPACE}'
              path: $.TABLESPACE
      tags:
        - tag: class
          value: database
        - tag: subclass
          value: sql
        - tag: target
          value: oracle
      macros:
        - macro: '{$ORACLE.ASM.USED.PCT.MAX.HIGH}'
          value: '95'
          description: 'The maximum percentage of used space in the Automatic Storage Management (ASM) disk group for the High trigger expression.'
          config:
            type: TEXT
            priority: '31'
            section_name: Thresholds
            label: 'High threshold for used space in the ASM'
            description: 'Maximum percentage of used space in the Automatic Storage Management (ASM) disk group for the High trigger expression. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$ORACLE.ASM.USED.PCT.MAX.WARN}'
          value: '90'
          description: 'The maximum percentage of used space in the Automatic Storage Management (ASM) disk group for the Warning trigger expression.'
          config:
            type: TEXT
            priority: '30'
            section_name: Thresholds
            label: 'Warning threshold for used space in the ASM'
            description: 'Maximum percentage of used space in the Automatic Storage Management (ASM) disk group for the Warning trigger expression. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$ORACLE.CONCURRENCY.MAX.WARN}'
          value: '80'
          description: 'The maximum percentage of session concurrency for the Warning trigger expression.'
          config:
            type: TEXT
            priority: '26'
            section_name: Thresholds
            label: 'Warning threshold for session concurrency'
            description: 'Maximum percentage of session concurrency for the Warning trigger expression. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$ORACLE.DB.FILE.MAX.WARN}'
          value: '80'
          description: 'The maximum percentage of used database files for the Warning trigger expression.'
          config:
            type: TEXT
            priority: '21'
            section_name: Thresholds
            label: 'Warning threshold for used database files'
            description: 'Maximum percentage of used database files for the Warning trigger expression. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$ORACLE.DBNAME.MATCHES}'
          value: '.*'
          description: 'Used in database discovery. It can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '7'
            section_name: Filters
            label: 'Include database filter'
            description: 'Regex string to include discovered database.'
        - macro: '{$ORACLE.DBNAME.NOT_MATCHES}'
          value: PDB\$SEED
          description: 'Used in database discovery. It can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '8'
            section_name: Filters
            label: 'Exclude database filter'
            description: 'Regex string to exclude discovered database.'
        - macro: '{$ORACLE.DRIVER}'
          description: 'Oracle driver path. For example: `/usr/lib/oracle/21/client64/lib/libsqora.so.21.1`'
          config:
            type: TEXT
            priority: '1'
            label: 'Oracle driver path'
            required: 'YES'
        - macro: '{$ORACLE.EXPIRE.PASSWORD.MIN.WARN}'
          value: '7'
          description: 'The number of days before the password expires for the Warning trigger expression.'
          config:
            type: TEXT
            priority: '29'
            section_name: Thresholds
            label: 'Warning threshold in days before the password expires'
            description: 'Number of days before the password expires for the Warning trigger expression.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$ORACLE.HOST}'
          description: 'The hostname or IP address of the Oracle DB instance.'
          config:
            type: TEXT
            priority: '5'
            label: 'Oracle URL'
            description: 'Hostname or IP address of the Oracle DB instance.'
            required: 'YES'
        - macro: '{$ORACLE.PASSWORD}'
          type: SECRET_TEXT
          description: 'Oracle user''s password.'
          config:
            type: TEXT
            priority: '4'
            label: Password
            description: 'Oracle database password.'
            required: 'YES'
        - macro: '{$ORACLE.PGA.USE.MAX.WARN}'
          value: '90'
          description: 'Alert threshold for the maximum percentage of the Program Global Area (PGA) usage for the Warning trigger expression.'
          config:
            type: TEXT
            priority: '22'
            section_name: Thresholds
            label: 'Warning threshold for PGA usage'
            description: 'Alert threshold for the maximum percentage of the Program Global Area (PGA) usage for the Warning trigger expression. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$ORACLE.PORT}'
          value: '1521'
          description: 'Oracle Database TCP port.'
          config:
            type: TEXT
            priority: '6'
            label: 'Oracle port'
            description: 'Oracle database TCP port. In the range from 1 to 65535 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$ORACLE.PROCESSES.MAX.WARN}'
          value: '80'
          description: 'Alert threshold for the maximum percentage of active processes for the Warning trigger expression.'
          config:
            type: TEXT
            priority: '19'
            section_name: Thresholds
            label: 'Warning threshold for active processes'
            description: 'Alert threshold for the maximum percentage of active processes for the Warning trigger expression. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$ORACLE.REDO.MIN.WARN}'
          value: '3'
          description: 'Alert threshold for the minimum number of redo logs for the Warning trigger expression.'
          config:
            type: TEXT
            priority: '27'
            section_name: Thresholds
            label: 'Warning threshold for minimum number of redo logs'
            description: 'Alert threshold for the minimum number of redo logs for the Warning trigger expression.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$ORACLE.SERVICE}'
          description: 'Oracle Service Name.'
          config:
            type: TEXT
            priority: '2'
            label: 'Oracle Service Name'
            required: 'YES'
        - macro: '{$ORACLE.SESSION.LOCK.MAX.TIME}'
          value: '600'
          description: 'The maximum duration of the session lock in seconds to count the session as a prolongedly locked query.'
          config:
            type: TEXT
            priority: '24'
            section_name: Thresholds
            label: 'Duration of the session lock'
            description: 'Maximum duration of the session lock in seconds to count the session as a prolongedly locked query.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$ORACLE.SESSION.LONG.LOCK.MAX.WARN}'
          value: '3'
          description: 'Alert threshold for the maximum number of the prolongedly locked sessions for the Warning trigger expression.'
          config:
            type: TEXT
            priority: '25'
            section_name: Thresholds
            label: 'Warning threshold for prolongedly locked sessions'
            description: 'Alert threshold for the maximum number of the prolongedly locked sessions for the Warning trigger expression.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$ORACLE.SESSIONS.LOCK.MAX.WARN}'
          value: '20'
          description: 'Alert threshold for the maximum percentage of locked sessions for the Warning trigger expression.'
          config:
            type: TEXT
            priority: '23'
            section_name: Thresholds
            label: 'Warning threshold for locked sessions'
            description: 'Alert threshold for the maximum percentage of locked sessions for the Warning trigger expression. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$ORACLE.SESSIONS.MAX.WARN}'
          value: '80'
          description: 'Alert threshold for the maximum percentage of active sessions for the Warning trigger expression.'
          config:
            type: TEXT
            priority: '20'
            section_name: Thresholds
            label: 'Warning threshold for active sessions'
            description: 'Alert threshold for the maximum percentage of active sessions for the Warning trigger expression. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$ORACLE.SHARED.FREE.MIN.WARN}'
          value: '5'
          description: 'Alert threshold for the minimum percentage of free shared pool for the Warning trigger expression.'
          config:
            type: TEXT
            priority: '28'
            section_name: Thresholds
            label: 'Warning threshold for free shared pool'
            description: 'Alert threshold for the minimum percentage of free shared pool for the Warning trigger expression.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$ORACLE.TABLESPACE.CONTAINER.MATCHES}'
          value: '.*'
          description: 'Used in tablespace discovery. It can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '9'
            section_name: Filters
            label: 'Include tablespace container filter'
            description: 'Regex string to include discovered tablespace container.'
        - macro: '{$ORACLE.TABLESPACE.CONTAINER.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          description: 'Used in tablespace discovery. It can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '10'
            section_name: Filters
            label: 'Exclude tablespace container filter'
            description: 'Regex string to exclude discovered tablespace container.'
        - macro: '{$ORACLE.TABLESPACE.NAME.MATCHES}'
          value: '.*'
          description: 'Used in tablespace discovery. It can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '11'
            section_name: Filters
            label: 'Include tablespace name filter'
            description: 'Regex string to include discovered tablespace.'
        - macro: '{$ORACLE.TABLESPACE.NAME.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          description: 'Used in tablespace discovery. It can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '12'
            section_name: Filters
            label: 'Exclude tablespace name filter'
            description: 'Regex string to exclude discovered tablespace.'
        - macro: '{$ORACLE.TBS.USED.PCT.FROM.MAX.HIGH}'
          value: '95'
          description: 'High severity alert threshold for the maximum percentage of tablespace usage (used bytes/max bytes) for the High trigger expression.'
          config:
            type: TEXT
            priority: '14'
            section_name: Thresholds
            label: 'High severity alert threshold for from maximum tablespace size'
            description: 'High severity alert threshold for the maximum percentage of tablespace usage (used bytes/max bytes) for the High trigger expression. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$ORACLE.TBS.USED.PCT.FROM.MAX.WARN}'
          value: '90'
          description: 'Warning severity alert threshold for the maximum percentage of tablespace usage from maximum tablespace size (used bytes/max bytes) for the Warning trigger expression.'
          config:
            type: TEXT
            priority: '13'
            section_name: Thresholds
            label: 'Warning severity alert threshold for from maximum tablespace size'
            description: 'Warning severity alert threshold for the maximum percentage of tablespace usage from maximum tablespace size (used bytes/max bytes) for the Warning trigger expression. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$ORACLE.TBS.USED.PCT.MAX.HIGH}'
          value: '95'
          description: 'High severity alert threshold for the maximum percentage of tablespace usage (used bytes/allocated bytes) for the High trigger expression.'
          config:
            type: TEXT
            priority: '16'
            section_name: Thresholds
            label: 'High severity alert threshold for the maximum percentage of tablespace usage'
            description: 'High severity alert threshold for the maximum percentage of tablespace usage (used bytes/allocated bytes) for the High trigger expression. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$ORACLE.TBS.USED.PCT.MAX.WARN}'
          value: '90'
          description: 'Warning severity alert threshold for the maximum percentage of tablespace usage (used bytes/allocated bytes) for the Warning trigger expression.'
          config:
            type: TEXT
            priority: '15'
            section_name: Thresholds
            label: 'Warning severity alert threshold for the maximum percentage of tablespace usage'
            description: 'Warning severity alert threshold for the maximum percentage of tablespace usage (used bytes/allocated bytes) for the Warning trigger expression. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$ORACLE.TBS.UTIL.PCT.MAX.HIGH}'
          value: '90'
          description: 'High severity alert threshold for the maximum percentage of tablespace utilization (allocated bytes/max bytes) for the High trigger expression.'
          config:
            type: TEXT
            priority: '18'
            section_name: Thresholds
            label: 'High severity alert threshold for tablespace utilization'
            description: 'High severity alert threshold for the maximum percentage of tablespace utilization (allocated bytes/max bytes) for the High trigger expression. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$ORACLE.TBS.UTIL.PCT.MAX.WARN}'
          value: '80'
          description: 'Warning severity alert threshold for the maximum percentage of tablespace utilization (allocated bytes/max bytes) for the High trigger expression.'
          config:
            type: TEXT
            priority: '17'
            section_name: Thresholds
            label: 'Warning severity alert threshold for tablespace utilization'
            description: 'Warning severity alert threshold for the maximum percentage of tablespace utilization (allocated bytes/max bytes) for the Warning trigger expression. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$ORACLE.USER}'
          description: 'Oracle username.'
          config:
            type: TEXT
            priority: '3'
            label: Username
            description: 'Oracle database username.'
            required: 'YES'
      dashboards:
        - uuid: 8bb7593dc22d43d5ba7a16cb7b94d8a3
          name: 'Oracle Performance'
          pages:
            - widgets:
                - type: graph
                  width: '36'
                  height: '5'
                  fields:
                    - type: GRAPH
                      name: graphid.0
                      value:
                        host: 'Oracle by ODBC'
                        name: 'Oracle: Cache Hit Ratios'
                    - type: STRING
                      name: reference
                      value: AAAAA
                - type: graph
                  'y': '5'
                  width: '36'
                  height: '5'
                  fields:
                    - type: GRAPH
                      name: graphid.0
                      value:
                        host: 'Oracle by ODBC'
                        name: 'Oracle: Physical Read\Write Rate'
                    - type: STRING
                      name: reference
                      value: AAAAC
                - type: graph
                  'y': '10'
                  width: '36'
                  height: '5'
                  fields:
                    - type: GRAPH
                      name: graphid.0
                      value:
                        host: 'Oracle by ODBC'
                        name: 'Oracle: Datafiles'
                    - type: STRING
                      name: reference
                      value: AAAAE
                - type: graph
                  'y': '15'
                  width: '36'
                  height: '5'
                  fields:
                    - type: GRAPH
                      name: graphid.0
                      value:
                        host: 'Oracle by ODBC'
                        name: 'Oracle: Processes'
                    - type: STRING
                      name: reference
                      value: AAAAG
                - type: graph
                  'y': '20'
                  width: '72'
                  height: '5'
                  fields:
                    - type: GRAPH
                      name: graphid.0
                      value:
                        host: 'Oracle by ODBC'
                        name: 'Oracle: SGA Memory Usage'
                    - type: STRING
                      name: reference
                      value: AAAAI
                - type: graph
                  x: '36'
                  width: '36'
                  height: '5'
                  fields:
                    - type: GRAPH
                      name: graphid.0
                      value:
                        host: 'Oracle by ODBC'
                        name: 'Oracle: Sort Operations'
                    - type: STRING
                      name: reference
                      value: AAAAB
                - type: graph
                  x: '36'
                  'y': '5'
                  width: '36'
                  height: '5'
                  fields:
                    - type: GRAPH
                      name: graphid.0
                      value:
                        host: 'Oracle by ODBC'
                        name: 'Oracle: Physical Read\Write Rate, Bytes'
                    - type: STRING
                      name: reference
                      value: AAAAD
                - type: graph
                  x: '36'
                  'y': '10'
                  width: '36'
                  height: '5'
                  fields:
                    - type: GRAPH
                      name: graphid.0
                      value:
                        host: 'Oracle by ODBC'
                        name: 'Oracle: PGA'
                    - type: STRING
                      name: reference
                      value: AAAAF
                - type: graph
                  x: '36'
                  'y': '15'
                  width: '36'
                  height: '5'
                  fields:
                    - type: GRAPH
                      name: graphid.0
                      value:
                        host: 'Oracle by ODBC'
                        name: 'Oracle: Sessions'
                    - type: STRING
                      name: reference
                      value: AAAAH
      valuemaps:
        - uuid: 79af6c068ba141ba9806f4341edd9266
          name: 'Oracle Archivelog status'
          mappings:
            - value: '0'
              newvalue: Unknown
            - value: '1'
              newvalue: Error
            - value: '2'
              newvalue: Deferred
            - value: '3'
              newvalue: Valid
        - uuid: 3afaab75342c4be186fb4f595ed62a31
          name: 'Oracle archiver state'
          mappings:
            - value: '0'
              newvalue: Unknown
            - value: '1'
              newvalue: Stopped
            - value: '2'
              newvalue: Started
            - value: '3'
              newvalue: Failed
        - uuid: d0912db18fe54941b9345ebf869fd1a6
          name: 'Oracle DB open status'
          mappings:
            - value: '0'
              newvalue: Unknown
            - value: '1'
              newvalue: Mounted
            - value: '2'
              newvalue: 'Read Only'
            - value: '3'
              newvalue: Read-Write
            - value: '4'
              newvalue: 'Read Only with Apply'
        - uuid: df05d594141f42ebb294cf6adca5fd6b
          name: 'Oracle DB role'
          mappings:
            - value: '0'
              newvalue: Unknown
            - value: '1'
              newvalue: 'Snapshot standby'
            - value: '2'
              newvalue: 'Logical standby'
            - value: '3'
              newvalue: 'Physical standby'
            - value: '4'
              newvalue: Primary
            - value: '5'
              newvalue: 'Far sync'
        - uuid: f00ca5c45ab84df788820af2642e4784
          name: 'Oracle force log status'
          mappings:
            - value: '0'
              newvalue: 'No'
            - value: '1'
              newvalue: 'Yes'
        - uuid: 97b689d7ddc04bcd9b9f92af6ba783bd
          name: 'Oracle instance role'
          mappings:
            - value: '0'
              newvalue: Unknown
            - value: '1'
              newvalue: Primary
            - value: '2'
              newvalue: Secondary
        - uuid: 41e105c52bf045899c3c4a1cb4e16865
          name: 'Oracle instance status'
          mappings:
            - value: '0'
              newvalue: Unknown
            - value: '1'
              newvalue: Started
            - value: '2'
              newvalue: Mounted
            - value: '3'
              newvalue: Open
            - value: '4'
              newvalue: 'Open migrate'
        - uuid: 809554f521d645ea8e8850c3b1f41579
          name: 'Oracle log mode'
          mappings:
            - value: '0'
              newvalue: NOARCHIVELOG
            - value: '1'
              newvalue: ARCHIVELOG
            - value: '2'
              newvalue: MANUAL
        - uuid: c6633e4ef9a84fa7b843529479a06158
          name: 'Oracle tablespace status'
          mappings:
            - value: '0'
              newvalue: Unknown
            - value: '1'
              newvalue: Online
            - value: '2'
              newvalue: Offline
            - value: '3'
              newvalue: Read-Only
        - uuid: 45ad479873b84113a98fa21b21081c65
          name: 'Service state'
          mappings:
            - value: '0'
              newvalue: Down
            - value: '1'
              newvalue: Up
    - uuid: 28e31ef9402d4c1ba2fbc730a288d2d8
      template: 'TrueNAS CORE by SNMP'
      name: 'TrueNAS CORE by SNMP'
      description: |
        Template for monitoring TrueNAS CORE by SNMP.
        
        Setup:
        1. Import the template into Zabbix.
        2. Enable SNMP daemon at Services in TrueNAS CORE web interface: https://www.truenas.com/docs/core/uireference/services/snmpscreen/
        3. Link the template to the host.
        
        MIBs used:
        HOST-RESOURCES-MIB
        SNMPv2-MIB
        UCD-DISKIO-MIB
        UCD-SNMP-MIB
        FREENAS-MIB
        
        Generated by official Zabbix template tool "Templator"
      wizard_ready: 'YES'
      readme: |
        ## Overview
        
        Template for monitoring TrueNAS CORE by SNMP.
        
        ## Setup
        
        1. Import the template into Zabbix.
        2. Enable SNMP daemon at Services in TrueNAS CORE web interface: https://www.truenas.com/docs/core/uireference/services/snmpscreen/
        3. Link the template to the host.
      vendor:
        name: Zabbix
        version: 8.0-2
      groups:
        - name: Templates/Applications
      items:
        - uuid: bbebf1aafe8149a7825ffb976d20fd5c
          name: 'ICMP ping'
          type: SIMPLE
          key: icmpping
          description: |
            The host accessibility by ICMP ping.
            
            0 - ICMP ping fails;
            1 - ICMP ping successful.
          valuemap:
            name: 'Service state'
          tags:
            - tag: component
              value: health
            - tag: component
              value: network
          triggers:
            - uuid: 2cf51ae664644a7f93950c3366d6f6b9
              expression: 'max(/TrueNAS CORE by SNMP/icmpping,#3)=0'
              name: 'TrueNAS CORE: Unavailable by ICMP ping'
              priority: HIGH
              description: 'Last three attempts returned timeout. Please check device connectivity.'
              tags:
                - tag: scope
                  value: availability
        - uuid: 43b3e4ddfeb34a1abba953cd7503ce2c
          name: 'ICMP loss'
          type: SIMPLE
          key: icmppingloss
          value_type: FLOAT
          units: '%'
          description: 'The percentage of lost packets.'
          tags:
            - tag: component
              value: health
            - tag: component
              value: network
          triggers:
            - uuid: 8593009de6804a56b3523f8ec53b784e
              expression: 'min(/TrueNAS CORE by SNMP/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/TrueNAS CORE by SNMP/icmppingloss,5m)<100'
              name: 'TrueNAS CORE: High ICMP ping loss'
              opdata: 'Loss: {ITEM.LASTVALUE1}'
              priority: WARNING
              description: 'ICMP packets loss detected.'
              dependencies:
                - name: 'TrueNAS CORE: Unavailable by ICMP ping'
                  expression: 'max(/TrueNAS CORE by SNMP/icmpping,#3)=0'
              tags:
                - tag: scope
                  value: availability
                - tag: scope
                  value: performance
        - uuid: 006c38011abf42f69ef5d9238a356faf
          name: 'ICMP response time'
          type: SIMPLE
          key: icmppingsec
          value_type: FLOAT
          units: s
          description: 'The ICMP ping response time (in seconds).'
          tags:
            - tag: component
              value: health
            - tag: component
              value: network
          triggers:
            - uuid: d952f59905fb405dbdd807df08ae9a92
              expression: 'avg(/TrueNAS CORE by SNMP/icmppingsec,5m)>{$ICMP_RESPONSE_TIME_WARN}'
              name: 'TrueNAS CORE: High ICMP ping response time'
              opdata: 'Value: {ITEM.LASTVALUE1}'
              priority: WARNING
              description: 'Average ICMP response time is too high.'
              dependencies:
                - name: 'TrueNAS CORE: High ICMP ping loss'
                  expression: 'min(/TrueNAS CORE by SNMP/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/TrueNAS CORE by SNMP/icmppingloss,5m)<100'
                - name: 'TrueNAS CORE: Unavailable by ICMP ping'
                  expression: 'max(/TrueNAS CORE by SNMP/icmpping,#3)=0'
              tags:
                - tag: scope
                  value: availability
                - tag: scope
                  value: performance
        - uuid: 4324124b621348e6bf51b808e33089dd
          name: 'TrueNAS CORE: SNMP walk network interfaces'
          type: SNMP_AGENT
          snmp_oid: 'walk[1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.2.2.1.7,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2,1.3.6.1.2.1.2.2.1.3,1.3.6.1.2.1.31.1.1.1.6,1.3.6.1.2.1.31.1.1.1.10,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.2.2.1.13,1.3.6.1.2.1.31.1.1.1.15]'
          key: net.if.walk
          history: '0'
          value_type: TEXT
          description: 'Discovering interfaces from IF-MIB.'
          tags:
            - tag: component
              value: raw
        - uuid: 12720ac373444e33961d97f9903eac0e
          name: 'SNMP traps (fallback)'
          type: SNMP_TRAP
          key: snmptrap.fallback
          value_type: LOG
          description: 'The item is used to collect all SNMP traps unmatched by other snmptrap items'
          logtimefmt: 'hh:mm:sszyyyy/MM/dd'
          tags:
            - tag: component
              value: network
        - uuid: 0d1336b92a9347d58fab43e008ecc11b
          name: 'System contact details'
          type: SNMP_AGENT
          snmp_oid: 'get[1.3.6.1.2.1.1.4.0]'
          key: 'system.contact[sysContact.0]'
          delay: 15m
          value_type: CHAR
          description: |
            MIB: SNMPv2-MIB
            The textual identification of the contact person for this managed node, together with information on how to contact this person. If no contact information is known, the value is the zero-length string.
          inventory_link: CONTACT
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 12h
          tags:
            - tag: component
              value: system
        - uuid: b41b8db2212848db83a6a0d9369fecdd
          name: 'Interrupts per second'
          type: SNMP_AGENT
          snmp_oid: 'get[1.3.6.1.4.1.2021.11.59.0]'
          key: system.cpu.intr
          value_type: FLOAT
          description: |
            MIB: UCD-SNMP-MIB
            Number of interrupts processed.
          preprocessing:
            - type: CHANGE_PER_SECOND
          tags:
            - tag: component
              value: cpu
        - uuid: 4283476959894b78956973be95d33e72
          name: 'Load average (1m avg)'
          type: DEPENDENT
          key: system.cpu.load.avg1
          value_type: FLOAT
          description: |
            MIB: UCD-SNMP-MIB
            The 1 minute load averages.
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.laName == ''Load-1'')].laLoad.first()'
          master_item:
            key: system.cpu.load.walk
          tags:
            - tag: component
              value: cpu
        - uuid: a7885b68d6644a2ab5875e742a7bc06f
          name: 'Load average (5m avg)'
          type: DEPENDENT
          key: system.cpu.load.avg5
          value_type: FLOAT
          description: |
            MIB: UCD-SNMP-MIB
            The 5 minutes load averages.
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.laName == ''Load-5'')].laLoad.first()'
          master_item:
            key: system.cpu.load.walk
          tags:
            - tag: component
              value: cpu
        - uuid: 5263b1258bd24219a3f1a7d11012b316
          name: 'Load average (15m avg)'
          type: DEPENDENT
          key: system.cpu.load.avg15
          value_type: FLOAT
          description: |
            MIB: UCD-SNMP-MIB
            The 15 minutes load averages.
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$[?(@.laName == ''Load-15'')].laLoad.first()'
          master_item:
            key: system.cpu.load.walk
          tags:
            - tag: component
              value: cpu
        - uuid: a34ec7a56e5c4b7eb9ecc1bb029735a2
          name: 'SNMP walk CPU load averages'
          type: SNMP_AGENT
          snmp_oid: 'walk[1.3.6.1.4.1.2021.10.1.2,1.3.6.1.4.1.2021.10.1.3]'
          key: system.cpu.load.walk
          history: '0'
          value_type: TEXT
          description: |
            MIB: UCD-SNMP-MIB
            SNMP walk through laTable. The collected data used in dependent CPU load average items.
          preprocessing:
            - type: SNMP_WALK_TO_JSON
              parameters:
                - laName
                - 1.3.6.1.4.1.2021.10.1.2
                - '0'
                - laLoad
                - 1.3.6.1.4.1.2021.10.1.3
                - '0'
          tags:
            - tag: component
              value: cpu
            - tag: component
              value: raw
        - uuid: 94366f840edc4686a230682d623f1f41
          name: 'Number of CPUs'
          type: DEPENDENT
          key: system.cpu.num
          description: |
            MIB: HOST-RESOURCES-MIB
            Count the number of CPU cores by counting number of cores discovered in hrProcessorTable using LLD.
          preprocessing:
            - type: SNMP_WALK_TO_JSON
              parameters:
                - '{#SNMPVALUE}'
                - 1.3.6.1.2.1.25.3.3.1.1
                - '0'
            - type: JAVASCRIPT
              parameters:
                - 'return JSON.parse(value).length;'
          master_item:
            key: system.cpu.walk
          tags:
            - tag: component
              value: cpu
        - uuid: c8740f4489c04eedb072869e27f68a60
          name: 'Context switches per second'
          type: SNMP_AGENT
          snmp_oid: 'get[1.3.6.1.4.1.2021.11.60.0]'
          key: system.cpu.switches
          value_type: FLOAT
          description: |
            MIB: UCD-SNMP-MIB
            Number of context switches.
          preprocessing:
            - type: CHANGE_PER_SECOND
          tags:
            - tag: component
              value: cpu
        - uuid: e6d239830cf743b3adbaad91da793fd6
          name: 'SNMP walk system CPUs'
          type: SNMP_AGENT
          snmp_oid: 'walk[1.3.6.1.2.1.25.3.3.1.1,1.3.6.1.4.1.2021.11.11.0,1.3.6.1.4.1.2021.11.50.0,1.3.6.1.4.1.2021.11.51.0,1.3.6.1.4.1.2021.11.52.0,1.3.6.1.4.1.2021.11.54.0,1.3.6.1.4.1.2021.11.56.0]'
          key: system.cpu.walk
          history: '0'
          value_type: TEXT
          description: |
            MIB: HOST-RESOURCES-MIB
            Discovering system CPUs.
          tags:
            - tag: component
              value: raw
        - uuid: d6ac8d84482244b88e4d2dbc676ea3d4
          name: 'System description'
          type: SNMP_AGENT
          snmp_oid: 'get[1.3.6.1.2.1.1.1.0]'
          key: 'system.descr[sysDescr.0]'
          delay: 15m
          value_type: CHAR
          description: |
            MIB: SNMPv2-MIB
            A textual description of the entity. This value should
            include the full name and version identification of the system's hardware type, software operating-system, and
            networking software.
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 12h
          tags:
            - tag: component
              value: system
        - uuid: dc3e8cb20837479f8aad2d1948ac8875
          name: 'Uptime (hardware)'
          type: SNMP_AGENT
          snmp_oid: 'get[1.3.6.1.2.1.25.1.1.0]'
          key: 'system.hw.uptime[hrSystemUptime.0]'
          delay: 30s
          trends: '0'
          units: uptime
          description: |
            MIB: HOST-RESOURCES-MIB
            The amount of time since this host was last initialized. Note that this is different from sysUpTime in the SNMPv2-MIB [RFC1907] because sysUpTime is the uptime of the network management portion of the system.
          preprocessing:
            - type: CHECK_NOT_SUPPORTED
              parameters:
                - '-1'
              error_handler: CUSTOM_VALUE
              error_handler_params: '0'
            - type: MULTIPLIER
              parameters:
                - '0.01'
          tags:
            - tag: component
              value: system
        - uuid: 75c8390f14364962bd92df0c087e765a
          name: 'System location'
          type: SNMP_AGENT
          snmp_oid: 'get[1.3.6.1.2.1.1.6.0]'
          key: 'system.location[sysLocation.0]'
          delay: 15m
          value_type: CHAR
          description: |
            MIB: SNMPv2-MIB
            Physical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.
          inventory_link: LOCATION
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 12h
          tags:
            - tag: component
              value: system
        - uuid: 46b98d1ef62d49a0bb22687dc119acf0
          name: 'System name'
          type: SNMP_AGENT
          snmp_oid: 'get[1.3.6.1.2.1.1.5.0]'
          key: system.name
          delay: 15m
          value_type: CHAR
          description: |
            MIB: SNMPv2-MIB
            An administratively-assigned name for this managed node.By convention, this is the node's fully-qualified domain name. If the name is unknown, the value is the zero-length string.
          inventory_link: NAME
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 12h
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: 4c3b96b22fa345c3a42fe17ed877b527
              expression: 'last(/TrueNAS CORE by SNMP/system.name,#1)<>last(/TrueNAS CORE by SNMP/system.name,#2) and length(last(/TrueNAS CORE by SNMP/system.name))>0'
              name: 'TrueNAS CORE: System name has changed'
              event_name: 'TrueNAS CORE: System name has changed (new name: {ITEM.VALUE})'
              priority: INFO
              description: 'The name of the system has changed. Acknowledge to close the problem manually.'
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: notice
                - tag: scope
                  value: security
        - uuid: f21ada8be3c94f9d8e4c75f411f8b85a
          name: 'Uptime (network)'
          type: SNMP_AGENT
          snmp_oid: 'get[1.3.6.1.2.1.1.3.0]'
          key: 'system.net.uptime[sysUpTime.0]'
          delay: 30s
          trends: '0'
          units: uptime
          description: |
            MIB: SNMPv2-MIB
            Time (in hundredths of a second) since the network management portion of the system was last re-initialized.
          preprocessing:
            - type: MULTIPLIER
              parameters:
                - '0.01'
          tags:
            - tag: component
              value: system
        - uuid: 79abfa4a6842499da1f03805de93c49f
          name: 'System object ID'
          type: SNMP_AGENT
          snmp_oid: 'get[1.3.6.1.2.1.1.2.0]'
          key: 'system.objectid[sysObjectID.0]'
          delay: 15m
          value_type: CHAR
          description: |
            MIB: SNMPv2-MIB
            The vendor's authoritative identification of the network management subsystem contained in the entity. This value is allocated within the SMI enterprises subtree (1.3.6.1.4.1) and provides an easy and unambiguous means for determining`what kind of box' is being managed.  For example, if vendor`Flintstones, Inc.' was assigned the subtree1.3.6.1.4.1.4242, it could assign the identifier 1.3.6.1.4.1.4242.1.1 to its `Fred Router'.
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 12h
          tags:
            - tag: component
              value: system
        - uuid: e61f086a8a3942569e6c7f67b24e8f86
          name: 'Free swap space'
          type: SNMP_AGENT
          snmp_oid: 'get[1.3.6.1.4.1.2021.4.4.0]'
          key: system.swap.free
          units: B
          description: |
            MIB: UCD-SNMP-MIB
            The amount of swap space currently unused or available.
          preprocessing:
            - type: MULTIPLIER
              parameters:
                - '1024'
          tags:
            - tag: component
              value: memory
            - tag: component
              value: storage
        - uuid: 2a075af85eed44c8adba2cb7bc657b40
          name: 'Free swap space in %'
          type: CALCULATED
          key: system.swap.pfree
          value_type: FLOAT
          units: '%'
          params: 'last(//system.swap.free)/last(//system.swap.total)*100'
          description: 'The free space of the swap volume/file expressed in %.'
          preprocessing:
            - type: CHECK_NOT_SUPPORTED
              parameters:
                - '-1'
              error_handler: CUSTOM_VALUE
              error_handler_params: '100'
          tags:
            - tag: component
              value: memory
            - tag: component
              value: storage
        - uuid: b0fc3cd77ed348bb955fc98d8636ab76
          name: 'Total swap space'
          type: SNMP_AGENT
          snmp_oid: 'get[1.3.6.1.4.1.2021.4.3.0]'
          key: system.swap.total
          units: B
          description: |
            MIB: UCD-SNMP-MIB
            The total amount of swap space configured for this host.
          preprocessing:
            - type: MULTIPLIER
              parameters:
                - '1024'
          tags:
            - tag: component
              value: memory
            - tag: component
              value: storage
        - uuid: 8111f8ada49c4559b4773cd32ca3226d
          name: 'SNMP walk disk temperatures'
          type: SNMP_AGENT
          snmp_oid: 'walk[1.3.6.1.4.1.50536.3.1.2,1.3.6.1.4.1.50536.3.1.3]'
          key: truenas.disk.temp.walk
          history: '0'
          value_type: TEXT
          description: |
            MIB: FREENAS-MIB
            SNMP walk through hddTempTable. The collected data used in disk temperature LLD and dependent item prototypes.
          tags:
            - tag: component
              value: raw
            - tag: component
              value: storage
        - uuid: 2eaaabc61df64756a35aec95650abf7c
          name: 'ARC target size of cache'
          type: DEPENDENT
          key: truenas.zfs.arc.c
          units: B
          description: |
            MIB: FREENAS-MIB
            ARC target size of cache in bytes.
          preprocessing:
            - type: SNMP_WALK_VALUE
              parameters:
                - 1.3.6.1.4.1.50536.1.4.6.0
                - '0'
            - type: MULTIPLIER
              parameters:
                - '1024'
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
          master_item:
            key: truenas.zfs.arc_l2arc.walk
          tags:
            - tag: component
              value: memory
            - tag: component
              value: zfs
        - uuid: a4ae886ac205413c85df7c527a9aadb3
          name: 'ARC data size'
          type: DEPENDENT
          key: truenas.zfs.arc.data
          units: B
          description: |
            MIB: FREENAS-MIB
            ARC data size used in bytes.
          preprocessing:
            - type: SNMP_WALK_VALUE
              parameters:
                - 1.3.6.1.4.1.50536.1.4.3.0
                - '0'
            - type: MULTIPLIER
              parameters:
                - '1024'
          master_item:
            key: truenas.zfs.arc_l2arc.walk
          tags:
            - tag: component
              value: memory
            - tag: component
              value: zfs
        - uuid: e3c72ceecec2478685e4bd5983e48c12
          name: 'ARC cache hit ratio'
          type: DEPENDENT
          key: truenas.zfs.arc.hit.ratio
          value_type: FLOAT
          units: '%'
          description: |
            MIB: FREENAS-MIB
            ARC cache hit ration percentage.
          preprocessing:
            - type: SNMP_WALK_VALUE
              parameters:
                - 1.3.6.1.4.1.50536.1.4.9.0
                - '0'
          master_item:
            key: truenas.zfs.arc_l2arc.walk
          tags:
            - tag: component
              value: memory
            - tag: component
              value: zfs
        - uuid: f4c6c12561944975999b59c30744b375
          name: 'ARC hits'
          type: DEPENDENT
          key: truenas.zfs.arc.hits
          value_type: FLOAT
          description: |
            MIB: FREENAS-MIB
            Total amount of cache hits in the ARC per second.
          preprocessing:
            - type: SNMP_WALK_VALUE
              parameters:
                - 1.3.6.1.4.1.50536.1.4.4.0
                - '0'
            - type: CHANGE_PER_SECOND
          master_item:
            key: truenas.zfs.arc_l2arc.walk
          tags:
            - tag: component
              value: memory
            - tag: component
              value: zfs
        - uuid: db3cee6cf685446ca880e3ba0c7a51f1
          name: 'ARC metadata size'
          type: DEPENDENT
          key: truenas.zfs.arc.meta
          units: B
          description: |
            MIB: FREENAS-MIB
            ARC metadata size used in bytes.
          preprocessing:
            - type: SNMP_WALK_VALUE
              parameters:
                - 1.3.6.1.4.1.50536.1.4.2.0
                - '0'
            - type: MULTIPLIER
              parameters:
                - '1024'
          master_item:
            key: truenas.zfs.arc_l2arc.walk
          tags:
            - tag: component
              value: memory
            - tag: component
              value: zfs
        - uuid: d39e5b7524054b5c8121a5b67506fc52
          name: 'ARC cache miss ratio'
          type: DEPENDENT
          key: truenas.zfs.arc.miss.ratio
          value_type: FLOAT
          units: '%'
          description: |
            MIB: FREENAS-MIB
            ARC cache miss ration percentage.
          preprocessing:
            - type: SNMP_WALK_VALUE
              parameters:
                - 1.3.6.1.4.1.50536.1.4.10.0
                - '0'
          master_item:
            key: truenas.zfs.arc_l2arc.walk
          tags:
            - tag: component
              value: memory
            - tag: component
              value: zfs
        - uuid: 51b0901f89ca49f18b5af0c6325190ad
          name: 'ARC misses'
          type: DEPENDENT
          key: truenas.zfs.arc.misses
          value_type: FLOAT
          description: |
            MIB: FREENAS-MIB
            Total amount of cache misses in the ARC per second.
          preprocessing:
            - type: SNMP_WALK_VALUE
              parameters:
                - 1.3.6.1.4.1.50536.1.4.5.0
                - '0'
            - type: CHANGE_PER_SECOND
          master_item:
            key: truenas.zfs.arc_l2arc.walk
          tags:
            - tag: component
              value: memory
            - tag: component
              value: zfs
        - uuid: 5b00055c79174a65af5168b47fb4dbd1
          name: 'ARC target size of MRU'
          type: DEPENDENT
          key: truenas.zfs.arc.p
          units: B
          description: |
            MIB: FREENAS-MIB
            ARC target size of MRU in bytes.
          preprocessing:
            - type: SNMP_WALK_VALUE
              parameters:
                - 1.3.6.1.4.1.50536.1.4.7.0
                - '0'
            - type: MULTIPLIER
              parameters:
                - '1024'
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
          master_item:
            key: truenas.zfs.arc_l2arc.walk
          tags:
            - tag: component
              value: memory
            - tag: component
              value: zfs
        - uuid: a677b4991bc94e5b929bcf9f6a0c08ee
          name: 'ARC size'
          type: DEPENDENT
          key: truenas.zfs.arc.size
          units: B
          description: |
            MIB: FREENAS-MIB
            ARC size in bytes.
          preprocessing:
            - type: SNMP_WALK_VALUE
              parameters:
                - 1.3.6.1.4.1.50536.1.4.1.0
                - '0'
            - type: MULTIPLIER
              parameters:
                - '1024'
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
          master_item:
            key: truenas.zfs.arc_l2arc.walk
          tags:
            - tag: component
              value: memory
            - tag: component
              value: zfs
        - uuid: 629537d839cb44d68ed3f1693abdb2ef
          name: 'SNMP walk ARC L2ARC'
          type: SNMP_AGENT
          snmp_oid: 'walk[1.3.6.1.4.1.50536.1.4,1.3.6.1.4.1.50536.1.5]'
          key: truenas.zfs.arc_l2arc.walk
          history: '0'
          value_type: TEXT
          description: |
            MIB: FREENAS-MIB
            SNMP walk through arc and l2arc. The collected data used in dependent ARC and L2ARC items.
          tags:
            - tag: component
              value: memory
            - tag: component
              value: raw
            - tag: component
              value: zfs
        - uuid: 97ca4111c54d43baaf779b293f392037
          name: 'SNMP walk ZFS datasets'
          type: SNMP_AGENT
          snmp_oid: 'walk[1.3.6.1.4.1.50536.1.2.1.1.2,1.3.6.1.4.1.50536.1.2.1.1.3,1.3.6.1.4.1.50536.1.2.1.1.4,1.3.6.1.4.1.50536.1.2.1.1.5,1.3.6.1.4.1.50536.1.2.1.1.6]'
          key: truenas.zfs.dataset.walk
          history: '0'
          value_type: TEXT
          description: |
            MIB: FREENAS-MIB
            SNMP walk through datasetTable. The collected data used in ZFS dataset LLD and dependent item prototypes.
          tags:
            - tag: component
              value: raw
            - tag: component
              value: storage
        - uuid: 2b2ca373849045969f6dbcd411a7e688
          name: 'L2ARC hits'
          type: DEPENDENT
          key: truenas.zfs.l2arc.hits
          value_type: FLOAT
          description: |
            MIB: FREENAS-MIB
            Hits to the L2 cache per second.
          preprocessing:
            - type: SNMP_WALK_VALUE
              parameters:
                - 1.3.6.1.4.1.50536.1.5.1.0
                - '0'
            - type: CHANGE_PER_SECOND
          master_item:
            key: truenas.zfs.arc_l2arc.walk
          tags:
            - tag: component
              value: memory
            - tag: component
              value: zfs
        - uuid: ff6827a36cc9451f801dcf5a433378de
          name: 'L2ARC misses'
          type: DEPENDENT
          key: truenas.zfs.l2arc.misses
          value_type: FLOAT
          description: |
            MIB: FREENAS-MIB
            Misses to the L2 cache per second.
          preprocessing:
            - type: SNMP_WALK_VALUE
              parameters:
                - 1.3.6.1.4.1.50536.1.5.2.0
                - '0'
            - type: CHANGE_PER_SECOND
          master_item:
            key: truenas.zfs.arc_l2arc.walk
          tags:
            - tag: component
              value: memory
            - tag: component
              value: zfs
        - uuid: d3408357df26465794eeb6d6706ee05a
          name: 'L2ARC read rate'
          type: DEPENDENT
          key: truenas.zfs.l2arc.read
          value_type: FLOAT
          units: Bps
          description: |
            MIB: FREENAS-MIB
            Read rate from L2 cache in bytes per second.
          preprocessing:
            - type: SNMP_WALK_VALUE
              parameters:
                - 1.3.6.1.4.1.50536.1.5.3.0
                - '0'
            - type: CHANGE_PER_SECOND
          master_item:
            key: truenas.zfs.arc_l2arc.walk
          tags:
            - tag: component
              value: memory
            - tag: component
              value: zfs
        - uuid: ab95d192720b4f5fa897fed6f1aa40e2
          name: 'L2ARC size'
          type: DEPENDENT
          key: truenas.zfs.l2arc.size
          value_type: FLOAT
          units: B
          description: |
            MIB: FREENAS-MIB
            L2ARC size in bytes.
          preprocessing:
            - type: SNMP_WALK_VALUE
              parameters:
                - 1.3.6.1.4.1.50536.1.5.5.0
                - '0'
            - type: MULTIPLIER
              parameters:
                - '1024'
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
          master_item:
            key: truenas.zfs.arc_l2arc.walk
          tags:
            - tag: component
              value: memory
            - tag: component
              value: zfs
        - uuid: 1e04b61c5b0242b095c41495f9f28b57
          name: 'L2ARC write rate'
          type: DEPENDENT
          key: truenas.zfs.l2arc.write
          value_type: FLOAT
          units: Bps
          description: |
            MIB: FREENAS-MIB
            Write rate from L2 cache in bytes per second.
          preprocessing:
            - type: SNMP_WALK_VALUE
              parameters:
                - 1.3.6.1.4.1.50536.1.5.4.0
                - '0'
            - type: CHANGE_PER_SECOND
          master_item:
            key: truenas.zfs.arc_l2arc.walk
          tags:
            - tag: component
              value: memory
            - tag: component
              value: zfs
        - uuid: 73abc73aa39d4dc0a372c274fbea3fa1
          name: 'SNMP walk ZFS pools'
          type: SNMP_AGENT
          snmp_oid: 'walk[1.3.6.1.4.1.50536.1.1.1.1.2,1.3.6.1.4.1.50536.1.1.1.1.3,1.3.6.1.4.1.50536.1.1.1.1.4,1.3.6.1.4.1.50536.1.1.1.1.5,1.3.6.1.4.1.50536.1.1.1.1.6,1.3.6.1.4.1.50536.1.1.1.1.7,1.3.6.1.4.1.50536.1.1.1.1.8,1.3.6.1.4.1.50536.1.1.1.1.9,1.3.6.1.4.1.50536.1.1.1.1.10,1.3.6.1.4.1.50536.1.1.1.1.11]'
          key: truenas.zfs.pools.walk
          history: '0'
          value_type: TEXT
          description: |
            MIB: FREENAS-MIB
            SNMP walk through zpoolTable. The collected data used in ZFS pool LLD and dependent item prototypes.
          tags:
            - tag: component
              value: raw
            - tag: component
              value: storage
        - uuid: a504d960680346ad863c5f2117301200
          name: 'ZIL operations 1 second'
          type: DEPENDENT
          key: truenas.zfs.zil.ops1
          value_type: FLOAT
          description: |
            MIB: FREENAS-MIB
            The ops column parsed from the command zilstat 1 1.
          preprocessing:
            - type: SNMP_WALK_VALUE
              parameters:
                - 1.3.6.1.4.1.50536.1.6.1.0
                - '0'
          master_item:
            key: truenas.zfs.zil.walk
          tags:
            - tag: component
              value: log
            - tag: component
              value: zfs
        - uuid: d82112c728704383b873289f0b8bbce6
          name: 'ZIL operations 5 seconds'
          type: DEPENDENT
          key: truenas.zfs.zil.ops5
          value_type: FLOAT
          description: |
            MIB: FREENAS-MIB
            The ops column parsed from the command zilstat 5 1.
          preprocessing:
            - type: SNMP_WALK_VALUE
              parameters:
                - 1.3.6.1.4.1.50536.1.6.2.0
                - '0'
          master_item:
            key: truenas.zfs.zil.walk
          tags:
            - tag: component
              value: log
            - tag: component
              value: zfs
        - uuid: 598dda71f21a410a82ba5b96e1564166
          name: 'ZIL operations 10 seconds'
          type: DEPENDENT
          key: truenas.zfs.zil.ops10
          value_type: FLOAT
          description: |
            MIB: FREENAS-MIB
            The ops column parsed from the command zilstat 10 1.
          preprocessing:
            - type: SNMP_WALK_VALUE
              parameters:
                - 1.3.6.1.4.1.50536.1.6.3.0
                - '0'
          master_item:
            key: truenas.zfs.zil.walk
          tags:
            - tag: component
              value: log
            - tag: component
              value: zfs
        - uuid: ffa31756524a4c679f8a059002b43173
          name: 'SNMP walk ZIL'
          type: SNMP_AGENT
          snmp_oid: 'walk[1.3.6.1.4.1.50536.1.6]'
          key: truenas.zfs.zil.walk
          history: '0'
          value_type: TEXT
          description: |
            MIB: FREENAS-MIB
            SNMP walk through zil. The collected data used in dependent ZIL items.
          tags:
            - tag: component
              value: log
            - tag: component
              value: raw
            - tag: component
              value: zfs
        - uuid: b695ddba4fd14b8f85e0c5a9f567e32b
          name: 'SNMP walk ZFS volumes'
          type: SNMP_AGENT
          snmp_oid: 'walk[1.3.6.1.4.1.50536.1.3.1.1.2,1.3.6.1.4.1.50536.1.3.1.1.3,1.3.6.1.4.1.50536.1.3.1.1.4,1.3.6.1.4.1.50536.1.3.1.1.5,1.3.6.1.4.1.50536.1.3.1.1.6]'
          key: truenas.zfs.zvols.walk
          history: '0'
          value_type: TEXT
          description: |
            MIB: FREENAS-MIB
            SNMP walk through zvolTable. The collected data used in ZFS volume LLD and dependent item prototypes.
          tags:
            - tag: component
              value: raw
            - tag: component
              value: storage
        - uuid: 845cd344b76f4836b472fca60e5426d1
          name: 'SNMP walk block devices'
          type: SNMP_AGENT
          snmp_oid: 'walk[1.3.6.1.4.1.2021.13.15.1.1.2,1.3.6.1.4.1.2021.13.15.1.1.5,1.3.6.1.4.1.2021.13.15.1.1.6,1.3.6.1.4.1.2021.13.15.1.1.9]'
          key: vfs.dev.walk
          history: '0'
          value_type: TEXT
          description: |
            MIB: UCD-DISKIO-MIB
            SNMP walk through diskIOTable. The collected data used in filesystem LLD and dependent item prototypes.
          tags:
            - tag: component
              value: raw
            - tag: component
              value: storage
        - uuid: 43901b6beb7f4f559464775863d19976
          name: 'Available memory'
          type: CALCULATED
          key: vm.memory.available
          units: B
          params: last(//vm.memory.free)+last(//vm.memory.buffers)+last(//vm.memory.cached)
          description: 'Please note that memory utilization is a rough estimate, since memory available is calculated as free+buffers+cached, which is not 100% accurate, but the best we can get using SNMP.'
          tags:
            - tag: component
              value: memory
        - uuid: 3b6007f808e04eefafe236737773ce7f
          name: 'Memory (buffers)'
          type: SNMP_AGENT
          snmp_oid: 'get[1.3.6.1.4.1.2021.4.14.0]'
          key: vm.memory.buffers
          units: B
          description: |
            MIB: UCD-SNMP-MIB
            The total amount of real or virtual memory currently allocated for use as memory buffers.
          preprocessing:
            - type: MULTIPLIER
              parameters:
                - '1024'
          tags:
            - tag: component
              value: memory
        - uuid: ab4c02a4c1fc4ef69a31e9b83a1a9263
          name: 'Memory (cached)'
          type: SNMP_AGENT
          snmp_oid: 'get[1.3.6.1.4.1.2021.4.15.0]'
          key: vm.memory.cached
          units: B
          description: |
            MIB: UCD-SNMP-MIB
            The total amount of real or virtual memory currently allocated for use as cached memory.
          preprocessing:
            - type: MULTIPLIER
              parameters:
                - '1024'
          tags:
            - tag: component
              value: memory
        - uuid: d55491912c814481b0931e836838e9b0
          name: 'Free memory'
          type: SNMP_AGENT
          snmp_oid: 'get[1.3.6.1.4.1.2021.4.6.0]'
          key: vm.memory.free
          units: B
          description: |
            MIB: UCD-SNMP-MIB
            The amount of real/physical memory currently unused or available.
          preprocessing:
            - type: MULTIPLIER
              parameters:
                - '1024'
          tags:
            - tag: component
              value: memory
        - uuid: e3802f02a4364e6bb37fb7fe780c4137
          name: 'Total memory'
          type: SNMP_AGENT
          snmp_oid: 'get[1.3.6.1.4.1.2021.4.5.0]'
          key: vm.memory.total
          units: B
          description: |
            MIB: UCD-SNMP-MIB
            The total memory expressed in bytes.
          preprocessing:
            - type: MULTIPLIER
              parameters:
                - '1024'
          tags:
            - tag: component
              value: memory
        - uuid: c70fad7e758e480fbae726a677a29ead
          name: 'Memory utilization'
          type: CALCULATED
          key: vm.memory.util
          value_type: FLOAT
          units: '%'
          params: '(last(//vm.memory.total)-(last(//vm.memory.free)+last(//vm.memory.buffers)+last(//vm.memory.cached)))/last(//vm.memory.total)*100'
          description: 'Please note that memory utilization is a rough estimate, since memory available is calculated as free+buffers+cached, which is not 100% accurate, but the best we can get using SNMP.'
          tags:
            - tag: component
              value: memory
          triggers:
            - uuid: 3ee054e3d944441d9fd174e13b6a59ee
              expression: 'min(/TrueNAS CORE by SNMP/vm.memory.util,5m)>{$MEMORY.UTIL.MAX}'
              name: 'TrueNAS CORE: High memory utilization'
              event_name: 'TrueNAS CORE: High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m)'
              priority: AVERAGE
              description: 'The system is running out of free memory.'
              dependencies:
                - name: 'TrueNAS CORE: Lack of available memory'
                  expression: 'min(/TrueNAS CORE by SNMP/vm.memory.available,5m)<{$MEMORY.AVAILABLE.MIN} and last(/TrueNAS CORE by SNMP/vm.memory.total)>0'
              tags:
                - tag: scope
                  value: capacity
                - tag: scope
                  value: performance
        - uuid: fcbcc100655d478bbf868ffc2a0302d8
          name: 'SNMP agent availability'
          type: INTERNAL
          key: 'zabbix[host,snmp,available]'
          description: |
            Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.
            Possible values:
            0 - not available
            1 - available
            2 - unknown
          valuemap:
            name: zabbix.host.available
          tags:
            - tag: component
              value: health
            - tag: component
              value: network
          triggers:
            - uuid: 4c5e21bdc561429e9ce4f6f105aae7f6
              expression: 'max(/TrueNAS CORE by SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0'
              name: 'TrueNAS CORE: No SNMP data collection'
              opdata: 'Current state: {ITEM.LASTVALUE1}'
              priority: WARNING
              description: 'SNMP is not available for polling. Please check device connectivity and SNMP settings.'
              dependencies:
                - name: 'TrueNAS CORE: Unavailable by ICMP ping'
                  expression: 'max(/TrueNAS CORE by SNMP/icmpping,#3)=0'
              tags:
                - tag: scope
                  value: availability
      discovery_rules:
        - uuid: cc40c0d4ea184b12bf15056f103a4654
          name: 'CPU discovery'
          type: DEPENDENT
          key: cpu.discovery
          description: 'This discovery will create set of per core CPU metrics from UCD-SNMP-MIB, using {#CPU.COUNT} in preprocessing. That''s the only reason why LLD is used.'
          item_prototypes:
            - uuid: 03eaea043f2b4aee9ccc562ae5390656
              name: 'CPU idle time'
              type: DEPENDENT
              key: 'system.cpu.idle[{#SNMPINDEX}]'
              value_type: FLOAT
              units: '%'
              description: |
                MIB: UCD-SNMP-MIB
                The time the CPU has spent doing nothing.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - 1.3.6.1.4.1.2021.11.11.0
                    - '0'
              master_item:
                key: system.cpu.walk
              tags:
                - tag: component
                  value: cpu
            - uuid: 378d399d09bd4197b20f575f023a9423
              name: 'CPU interrupt time'
              type: DEPENDENT
              key: 'system.cpu.interrupt[{#SNMPINDEX}]'
              value_type: FLOAT
              units: '%'
              description: |
                MIB: UCD-SNMP-MIB
                The amount of time the CPU has been servicing hardware interrupts.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - 1.3.6.1.4.1.2021.11.56.0
                    - '0'
                - type: CHANGE_PER_SECOND
                - type: JAVASCRIPT
                  parameters:
                    - 'return value/{#CPU.COUNT}'
              master_item:
                key: system.cpu.walk
              tags:
                - tag: component
                  value: cpu
            - uuid: bd17c78973cf482a8916645847a9814f
              name: 'CPU iowait time'
              type: DEPENDENT
              key: 'system.cpu.iowait[{#SNMPINDEX}]'
              value_type: FLOAT
              units: '%'
              description: |
                MIB: UCD-SNMP-MIB
                The amount of time the CPU has been waiting for I/O to complete.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - 1.3.6.1.4.1.2021.11.54.0
                    - '0'
                - type: CHANGE_PER_SECOND
                - type: JAVASCRIPT
                  parameters:
                    - 'return value/{#CPU.COUNT}'
              master_item:
                key: system.cpu.walk
              tags:
                - tag: component
                  value: cpu
            - uuid: e25d8fe2e3b24fff86fe2d91e9b4f16e
              name: 'CPU nice time'
              type: DEPENDENT
              key: 'system.cpu.nice[{#SNMPINDEX}]'
              value_type: FLOAT
              units: '%'
              description: |
                MIB: UCD-SNMP-MIB
                The time the CPU has spent running users' processes that have been niced.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - 1.3.6.1.4.1.2021.11.51.0
                    - '0'
                - type: CHANGE_PER_SECOND
                - type: JAVASCRIPT
                  parameters:
                    - 'return value/{#CPU.COUNT}'
              master_item:
                key: system.cpu.walk
              tags:
                - tag: component
                  value: cpu
            - uuid: 6782830d2a25423fb0db137d66b2f2dd
              name: 'CPU system time'
              type: DEPENDENT
              key: 'system.cpu.system[{#SNMPINDEX}]'
              value_type: FLOAT
              units: '%'
              description: |
                MIB: UCD-SNMP-MIB
                The time the CPU has spent running the kernel and its processes.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - 1.3.6.1.4.1.2021.11.52.0
                    - '0'
                - type: CHANGE_PER_SECOND
                - type: JAVASCRIPT
                  parameters:
                    - 'return value/{#CPU.COUNT}'
              master_item:
                key: system.cpu.walk
              tags:
                - tag: component
                  value: cpu
            - uuid: d38eaa9cf17a4778b0b6dfea897e3e6e
              name: 'CPU user time'
              type: DEPENDENT
              key: 'system.cpu.user[{#SNMPINDEX}]'
              value_type: FLOAT
              units: '%'
              description: |
                MIB: UCD-SNMP-MIB
                The time the CPU has spent running users' processes that are not niced.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - 1.3.6.1.4.1.2021.11.50.0
                    - '0'
                - type: CHANGE_PER_SECOND
                - type: JAVASCRIPT
                  parameters:
                    - 'return value/{#CPU.COUNT}'
              master_item:
                key: system.cpu.walk
              tags:
                - tag: component
                  value: cpu
            - uuid: 40f51efcbf47483f84c843c00bd1e034
              name: 'CPU utilization'
              type: DEPENDENT
              key: 'system.cpu.util[{#SNMPINDEX}]'
              value_type: FLOAT
              units: '%'
              description: 'The CPU utilization expressed in %.'
              preprocessing:
                - type: JAVASCRIPT
                  parameters:
                    - 'return (100 - value)'
              master_item:
                key: 'system.cpu.idle[{#SNMPINDEX}]'
              tags:
                - tag: component
                  value: cpu
              trigger_prototypes:
                - uuid: 776551cd5322405e8d7c2b9c30b3a82b
                  expression: 'min(/TrueNAS CORE by SNMP/system.cpu.util[{#SNMPINDEX}],5m)>{$CPU.UTIL.CRIT}'
                  name: 'TrueNAS CORE: High CPU utilization'
                  event_name: 'TrueNAS CORE: High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)'
                  opdata: 'Current utilization: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'The CPU utilization is too high. The system might be slow to respond.'
                  dependencies:
                    - name: 'TrueNAS CORE: Load average is too high'
                      expression: |
                        min(/TrueNAS CORE by SNMP/system.cpu.load.avg1,5m)/last(/TrueNAS CORE by SNMP/system.cpu.num)>{$LOAD_AVG_PER_CPU.MAX.WARN}
                        and last(/TrueNAS CORE by SNMP/system.cpu.load.avg5)>0
                        and last(/TrueNAS CORE by SNMP/system.cpu.load.avg15)>0
                  tags:
                    - tag: scope
                      value: performance
          graph_prototypes:
            - uuid: ef6bd369fc964266a4324f314d5dbdc2
              name: 'TrueNAS CORE: CPU usage{#SINGLETON}'
              type: STACKED
              ymin_type_1: FIXED
              ymax_type_1: FIXED
              graph_items:
                - color: 199C0D
                  item:
                    host: 'TrueNAS CORE by SNMP'
                    key: 'system.cpu.system[{#SNMPINDEX}]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'TrueNAS CORE by SNMP'
                    key: 'system.cpu.user[{#SNMPINDEX}]'
                - sortorder: '2'
                  color: 00611C
                  item:
                    host: 'TrueNAS CORE by SNMP'
                    key: 'system.cpu.nice[{#SNMPINDEX}]'
                - sortorder: '3'
                  color: F7941D
                  item:
                    host: 'TrueNAS CORE by SNMP'
                    key: 'system.cpu.iowait[{#SNMPINDEX}]'
                - sortorder: '4'
                  color: FC6EA3
                  item:
                    host: 'TrueNAS CORE by SNMP'
                    key: 'system.cpu.interrupt[{#SNMPINDEX}]'
            - uuid: 11de3174f0e24212bedd1ef81429db9d
              name: 'TrueNAS CORE: CPU utilization{#SINGLETON}'
              ymin_type_1: FIXED
              ymax_type_1: FIXED
              graph_items:
                - drawtype: GRADIENT_LINE
                  color: 199C0D
                  item:
                    host: 'TrueNAS CORE by SNMP'
                    key: 'system.cpu.util[{#SNMPINDEX}]'
          master_item:
            key: system.cpu.num
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - 'return JSON.stringify([{"{#CPU.COUNT}": value, "{#SNMPINDEX}": 0, "{#SINGLETON}":""}])'
        - uuid: a78d7feb497e46c9870344e569b01a60
          name: 'Network interfaces discovery'
          type: DEPENDENT
          key: net.if.discovery
          filter:
            evaltype: AND
            conditions:
              - macro: '{#IFADMINSTATUS}'
                value: '{$NET.IF.IFADMINSTATUS.MATCHES}'
              - macro: '{#IFADMINSTATUS}'
                value: '{$NET.IF.IFADMINSTATUS.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#IFALIAS}'
                value: '{$NET.IF.IFALIAS.MATCHES}'
              - macro: '{#IFALIAS}'
                value: '{$NET.IF.IFALIAS.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#IFDESCR}'
                value: '{$NET.IF.IFDESCR.MATCHES}'
              - macro: '{#IFDESCR}'
                value: '{$NET.IF.IFDESCR.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#IFNAME}'
                value: '{$NET.IF.IFNAME.MATCHES}'
              - macro: '{#IFNAME}'
                value: '{$NET.IF.IFNAME.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#IFOPERSTATUS}'
                value: '{$NET.IF.IFOPERSTATUS.MATCHES}'
              - macro: '{#IFOPERSTATUS}'
                value: '{$NET.IF.IFOPERSTATUS.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#IFTYPE}'
                value: '{$NET.IF.IFTYPE.MATCHES}'
              - macro: '{#IFTYPE}'
                value: '{$NET.IF.IFTYPE.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
          description: 'Discovering interfaces from IF-MIB.'
          item_prototypes:
            - uuid: 3c3873ba5f8c473aa15efef467514d75
              name: 'Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded'
              type: DEPENDENT
              key: 'net.if.in.discards[ifInDiscards.{#SNMPINDEX}]'
              description: |
                MIB: IF-MIB
                The number of inbound packets which were chosen to be discarded
                even though no errors had been detected to prevent their being deliverable to a higher-layer protocol.
                One possible reason for discarding such a packet could be to free up buffer space.
                Discontinuities in the value of this counter can occur at re-initialization of the management system,
                and at other times as indicated by the value of ifCounterDiscontinuityTime.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.2.2.1.13.{#SNMPINDEX}'
                    - '0'
                - type: CHANGE_PER_SECOND
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3m
              master_item:
                key: net.if.walk
              tags:
                - tag: component
                  value: network
                - tag: description
                  value: '{#IFALIAS}'
                - tag: interface
                  value: '{#IFNAME}'
            - uuid: 28d757aaa3834e539f909afc478d11a6
              name: 'Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors'
              type: DEPENDENT
              key: 'net.if.in.errors[ifInErrors.{#SNMPINDEX}]'
              description: |
                MIB: IF-MIB
                For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol.  For character-oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.2.2.1.14.{#SNMPINDEX}'
                    - '0'
                - type: CHANGE_PER_SECOND
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3m
              master_item:
                key: net.if.walk
              tags:
                - tag: component
                  value: network
                - tag: description
                  value: '{#IFALIAS}'
                - tag: interface
                  value: '{#IFNAME}'
            - uuid: 5aeeb92e3eeb4b7ca61b3f66b42ea270
              name: 'Interface {#IFNAME}({#IFALIAS}): Bits received'
              type: DEPENDENT
              key: 'net.if.in[ifHCInOctets.{#SNMPINDEX}]'
              units: bps
              description: |
                MIB: IF-MIB
                The total number of octets received on the interface, including framing characters. This object is a 64-bit version of ifInOctets. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.31.1.1.1.6.{#SNMPINDEX}'
                    - '0'
                - type: CHANGE_PER_SECOND
                - type: MULTIPLIER
                  parameters:
                    - '8'
              master_item:
                key: net.if.walk
              tags:
                - tag: component
                  value: network
                - tag: description
                  value: '{#IFALIAS}'
                - tag: interface
                  value: '{#IFNAME}'
            - uuid: 871849c94071437d9a7a8249bb421597
              name: 'Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded'
              type: DEPENDENT
              key: 'net.if.out.discards[ifOutDiscards.{#SNMPINDEX}]'
              description: |
                MIB: IF-MIB
                The number of outbound packets which were chosen to be discarded
                even though no errors had been detected to prevent their being deliverable to a higher-layer protocol.
                One possible reason for discarding such a packet could be to free up buffer space.
                Discontinuities in the value of this counter can occur at re-initialization of the management system,
                and at other times as indicated by the value of ifCounterDiscontinuityTime.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.2.2.1.19.{#SNMPINDEX}'
                    - '0'
                - type: CHANGE_PER_SECOND
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3m
              master_item:
                key: net.if.walk
              tags:
                - tag: component
                  value: network
                - tag: description
                  value: '{#IFALIAS}'
                - tag: interface
                  value: '{#IFNAME}'
            - uuid: 74eac8a7eb5b4998b1fd05ec6ffebaf5
              name: 'Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors'
              type: DEPENDENT
              key: 'net.if.out.errors[ifOutErrors.{#SNMPINDEX}]'
              description: |
                MIB: IF-MIB
                For packet-oriented interfaces, the number of outbound packets that contained errors preventing them from being deliverable to a higher-layer protocol.  For character-oriented or fixed-length interfaces, the number of outbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.2.2.1.20.{#SNMPINDEX}'
                    - '0'
                - type: CHANGE_PER_SECOND
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3m
              master_item:
                key: net.if.walk
              tags:
                - tag: component
                  value: network
                - tag: description
                  value: '{#IFALIAS}'
                - tag: interface
                  value: '{#IFNAME}'
            - uuid: 604e8060ed2742fab7722d4cd92aa14b
              name: 'Interface {#IFNAME}({#IFALIAS}): Bits sent'
              type: DEPENDENT
              key: 'net.if.out[ifHCOutOctets.{#SNMPINDEX}]'
              units: bps
              description: |
                MIB: IF-MIB
                The total number of octets transmitted out of the interface, including framing characters. This object is a 64-bit version of ifOutOctets.Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of ifCounterDiscontinuityTime.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.31.1.1.1.10.{#SNMPINDEX}'
                    - '0'
                - type: CHANGE_PER_SECOND
                - type: MULTIPLIER
                  parameters:
                    - '8'
              master_item:
                key: net.if.walk
              tags:
                - tag: component
                  value: network
                - tag: description
                  value: '{#IFALIAS}'
                - tag: interface
                  value: '{#IFNAME}'
            - uuid: bdb0895c1c1e4e3abe68e62989454a88
              name: 'Interface {#IFNAME}({#IFALIAS}): Speed'
              type: DEPENDENT
              key: 'net.if.speed[ifHighSpeed.{#SNMPINDEX}]'
              trends: '0'
              units: bps
              description: |
                MIB: IF-MIB
                An estimate of the interface's current bandwidth in units of 1,000,000 bits per second. If this object reports a value of `n`, then the speed of the interface is somewhere in the range of `n-500,000` to `n+499,999`.
                For interfaces which do not vary in bandwidth or for those where no accurate estimation can be made, this object should contain the nominal bandwidth.
                For a sub-layer which has no concept of bandwidth, this object should be zero.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.31.1.1.1.15.{#SNMPINDEX}'
                    - '0'
                - type: MULTIPLIER
                  parameters:
                    - '1000000'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: net.if.walk
              tags:
                - tag: component
                  value: network
                - tag: description
                  value: '{#IFALIAS}'
                - tag: interface
                  value: '{#IFNAME}'
            - uuid: e4ce41cb19bc43058ee268a6c513abd4
              name: 'Interface {#IFNAME}({#IFALIAS}): Operational status'
              type: DEPENDENT
              key: 'net.if.status[ifOperStatus.{#SNMPINDEX}]'
              trends: '0'
              description: |
                MIB: IF-MIB
                The current operational state of the interface.
                - The testing(3) state indicates that no operational packet scan be passed
                - If ifAdminStatus is down(2) then ifOperStatus should be down(2)
                - If ifAdminStatus is changed to up(1) then ifOperStatus should change to up(1) if the interface is ready to transmit and receive network traffic
                - It should change todormant(5) if the interface is waiting for external actions (such as a serial line waiting for an incoming connection)
                - It should remain in the down(2) state if and only if there is a fault that prevents it from going to the up(1) state
                - It should remain in the notPresent(6) state if the interface has missing(typically, hardware) components.
              valuemap:
                name: 'IF-MIB::ifOperStatus'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.2.2.1.8.{#SNMPINDEX}'
                    - '0'
              master_item:
                key: net.if.walk
              tags:
                - tag: component
                  value: network
                - tag: description
                  value: '{#IFALIAS}'
                - tag: interface
                  value: '{#IFNAME}'
              trigger_prototypes:
                - uuid: 7b3d635ed17b41fc9ac242f2e010be65
                  expression: '{$IFCONTROL:"{#IFNAME}"}=1 and last(/TrueNAS CORE by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/TrueNAS CORE by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/TrueNAS CORE by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))'
                  recovery_mode: RECOVERY_EXPRESSION
                  recovery_expression: 'last(/TrueNAS CORE by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0'
                  name: 'TrueNAS CORE: Interface {#IFNAME}({#IFALIAS}): Link down'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: |
                    This trigger expression works as follows:
                    1. It can be triggered if the operations status is down.
                    2. `{$IFCONTROL:"{#IFNAME}"}=1` - a user can redefine the context macro to "0", marking this interface as not important. No new trigger will be fired if this interface is down.
                    3. `last(/TEMPLATE_NAME/METRIC,#1)<>last(/TEMPLATE_NAME/METRIC,#2)` - the trigger fires only if the operational status was up to (1) sometime before (so, does not fire for "eternal off" interfaces.)
                    
                    WARNING: if closed manually - it will not fire again on the next poll, because of .diff.
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: availability
            - uuid: ed51f6b579b040088312d9312378ed4a
              name: 'Interface {#IFNAME}({#IFALIAS}): Interface type'
              type: DEPENDENT
              key: 'net.if.type[ifType.{#SNMPINDEX}]'
              trends: '0'
              description: |
                MIB: IF-MIB
                The type of interface.
                Additional values for ifType are assigned by the Internet Assigned Numbers Authority (IANA),
                through updating the syntax of the IANAifType textual convention.
              valuemap:
                name: 'IF-MIB::ifType'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.2.2.1.3.{#SNMPINDEX}'
                    - '0'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: net.if.walk
              tags:
                - tag: component
                  value: network
                - tag: description
                  value: '{#IFALIAS}'
                - tag: interface
                  value: '{#IFNAME}'
          trigger_prototypes:
            - uuid: 486e833486c240379f6c7cb34172a402
              expression: |
                change(/TrueNAS CORE by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])<0 and last(/TrueNAS CORE by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0
                and (
                last(/TrueNAS CORE by SNMP/net.if.type[ifType.{#SNMPINDEX}])=6 or
                last(/TrueNAS CORE by SNMP/net.if.type[ifType.{#SNMPINDEX}])=7 or
                last(/TrueNAS CORE by SNMP/net.if.type[ifType.{#SNMPINDEX}])=11 or
                last(/TrueNAS CORE by SNMP/net.if.type[ifType.{#SNMPINDEX}])=62 or
                last(/TrueNAS CORE by SNMP/net.if.type[ifType.{#SNMPINDEX}])=69 or
                last(/TrueNAS CORE by SNMP/net.if.type[ifType.{#SNMPINDEX}])=117
                )
                and
                (last(/TrueNAS CORE by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2)
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: |
                (change(/TrueNAS CORE by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 and last(/TrueNAS CORE by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}],#2)>0) or
                (last(/TrueNAS CORE by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2)
              name: 'TrueNAS CORE: Interface {#IFNAME}({#IFALIAS}): Ethernet has changed to lower speed than it was before'
              opdata: 'Current reported speed: {ITEM.LASTVALUE1}'
              priority: INFO
              description: 'This Ethernet connection has transitioned down from its known maximum speed. This might be a sign of autonegotiation issues. Acknowledge to close the problem manually.'
              manual_close: 'YES'
              dependencies:
                - name: 'TrueNAS CORE: Interface {#IFNAME}({#IFALIAS}): Link down'
                  expression: '{$IFCONTROL:"{#IFNAME}"}=1 and last(/TrueNAS CORE by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/TrueNAS CORE by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/TrueNAS CORE by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))'
                  recovery_expression: 'last(/TrueNAS CORE by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0'
              tags:
                - tag: scope
                  value: performance
            - uuid: 3b6a73abbc7943c687d579acedb84393
              expression: |
                (avg(/TrueNAS CORE by SNMP/net.if.in[ifHCInOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/TrueNAS CORE by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) or
                avg(/TrueNAS CORE by SNMP/net.if.out[ifHCOutOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/TrueNAS CORE by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])) and
                last(/TrueNAS CORE by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: |
                avg(/TrueNAS CORE by SNMP/net.if.in[ifHCInOctets.{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/TrueNAS CORE by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) and
                avg(/TrueNAS CORE by SNMP/net.if.out[ifHCOutOctets.{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/TrueNAS CORE by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])
              name: 'TrueNAS CORE: Interface {#IFNAME}({#IFALIAS}): High bandwidth usage'
              event_name: 'TrueNAS CORE: Interface {#IFNAME}({#IFALIAS}): High bandwidth usage (>{$IF.UTIL.MAX:"{#IFNAME}"}%)'
              opdata: 'In: {ITEM.LASTVALUE1}, out: {ITEM.LASTVALUE3}, speed: {ITEM.LASTVALUE2}'
              priority: WARNING
              description: 'The utilization of the network interface is close to its estimated maximum bandwidth.'
              manual_close: 'YES'
              dependencies:
                - name: 'TrueNAS CORE: Interface {#IFNAME}({#IFALIAS}): Link down'
                  expression: '{$IFCONTROL:"{#IFNAME}"}=1 and last(/TrueNAS CORE by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/TrueNAS CORE by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/TrueNAS CORE by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))'
                  recovery_expression: 'last(/TrueNAS CORE by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0'
              tags:
                - tag: scope
                  value: performance
            - uuid: 8ebbfbdd56984e4eb8f52f730aaca429
              expression: |
                min(/TrueNAS CORE by SNMP/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"}
                or min(/TrueNAS CORE by SNMP/net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"}
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: |
                max(/TrueNAS CORE by SNMP/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8
                and max(/TrueNAS CORE by SNMP/net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8
              name: 'TrueNAS CORE: Interface {#IFNAME}({#IFALIAS}): High error rate'
              event_name: 'TrueNAS CORE: Interface {#IFNAME}({#IFALIAS}): High error rate (>{$IF.ERRORS.WARN:"{#IFNAME}"} for 5m)'
              opdata: 'errors in: {ITEM.LASTVALUE1}, errors out: {ITEM.LASTVALUE2}'
              priority: WARNING
              description: 'It recovers when it is below 80% of the `{$IF.ERRORS.WARN:"{#IFNAME}"}` threshold.'
              manual_close: 'YES'
              dependencies:
                - name: 'TrueNAS CORE: Interface {#IFNAME}({#IFALIAS}): Link down'
                  expression: '{$IFCONTROL:"{#IFNAME}"}=1 and last(/TrueNAS CORE by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/TrueNAS CORE by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/TrueNAS CORE by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))'
                  recovery_expression: 'last(/TrueNAS CORE by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0'
              tags:
                - tag: scope
                  value: availability
                - tag: scope
                  value: performance
          graph_prototypes:
            - uuid: dacff40c560e41529c48d9025104b2bb
              name: 'Interface {#IFNAME}({#IFALIAS}): Network traffic'
              graph_items:
                - drawtype: GRADIENT_LINE
                  color: 199C0D
                  item:
                    host: 'TrueNAS CORE by SNMP'
                    key: 'net.if.in[ifHCInOctets.{#SNMPINDEX}]'
                - sortorder: '1'
                  drawtype: BOLD_LINE
                  color: F63100
                  item:
                    host: 'TrueNAS CORE by SNMP'
                    key: 'net.if.out[ifHCOutOctets.{#SNMPINDEX}]'
                - sortorder: '2'
                  color: 00611C
                  yaxisside: RIGHT
                  item:
                    host: 'TrueNAS CORE by SNMP'
                    key: 'net.if.out.errors[ifOutErrors.{#SNMPINDEX}]'
                - sortorder: '3'
                  color: F7941D
                  yaxisside: RIGHT
                  item:
                    host: 'TrueNAS CORE by SNMP'
                    key: 'net.if.in.errors[ifInErrors.{#SNMPINDEX}]'
                - sortorder: '4'
                  color: FC6EA3
                  yaxisside: RIGHT
                  item:
                    host: 'TrueNAS CORE by SNMP'
                    key: 'net.if.out.discards[ifOutDiscards.{#SNMPINDEX}]'
                - sortorder: '5'
                  color: 6C59DC
                  yaxisside: RIGHT
                  item:
                    host: 'TrueNAS CORE by SNMP'
                    key: 'net.if.in.discards[ifInDiscards.{#SNMPINDEX}]'
          master_item:
            key: net.if.walk
          preprocessing:
            - type: SNMP_WALK_TO_JSON
              parameters:
                - '{#IFOPERSTATUS}'
                - 1.3.6.1.2.1.2.2.1.8
                - '0'
                - '{#IFADMINSTATUS}'
                - 1.3.6.1.2.1.2.2.1.7
                - '0'
                - '{#IFALIAS}'
                - 1.3.6.1.2.1.31.1.1.1.18
                - '0'
                - '{#IFNAME}'
                - 1.3.6.1.2.1.31.1.1.1.1
                - '0'
                - '{#IFDESCR}'
                - 1.3.6.1.2.1.2.2.1.2
                - '0'
                - '{#IFTYPE}'
                - 1.3.6.1.2.1.2.2.1.3
                - '0'
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
        - uuid: b3906a308e4c4631a96a4aa188d22c74
          name: 'Disks temperature discovery'
          type: DEPENDENT
          key: truenas.disk.temp.discovery
          description: 'Disks temperature discovery from FREENAS-MIB.'
          item_prototypes:
            - uuid: 7de2508fff174bd78b4ea0424a67fbf9
              name: 'Disk [{#DISK_NAME}]'': Temperature'
              type: DEPENDENT
              key: 'truenas.disk.temp[{#DISK_NAME}]'
              value_type: FLOAT
              units: C
              description: |
                MIB: FREENAS-MIB
                The temperature of this HDD in mC.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.50536.3.1.3.{#SNMPINDEX}'
                    - '0'
                - type: MULTIPLIER
                  parameters:
                    - '0.001'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: truenas.disk.temp.walk
              tags:
                - tag: component
                  value: storage
                - tag: disk
                  value: '{#DISK_NAME}'
              trigger_prototypes:
                - uuid: fda99a2e62064414af85c1137cbf0aef
                  expression: 'avg(/TrueNAS CORE by SNMP/truenas.disk.temp[{#DISK_NAME}],5m) > {$TEMPERATURE.MAX.CRIT:"{#DISK_NAME}"}'
                  name: 'TrueNAS CORE: Disk [{#DISK_NAME}]'': Average disk temperature is too high'
                  event_name: 'TrueNAS CORE: Disk [{#DISK_NAME}]'': Average disk temperature is too high (over {$TEMPERATURE.MAX.CRIT:"{#DISK_NAME}"}C for 5m)'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'Disk temperature is high.'
                  tags:
                    - tag: scope
                      value: notice
                - uuid: 73194e7637a84dca976b218e9f4248c2
                  expression: 'avg(/TrueNAS CORE by SNMP/truenas.disk.temp[{#DISK_NAME}],5m) > {$TEMPERATURE.MAX.WARN:"{#DISK_NAME}"}'
                  name: 'TrueNAS CORE: Disk [{#DISK_NAME}]'': Average disk temperature is too high'
                  event_name: 'TrueNAS CORE: Disk [{#DISK_NAME}]'': Average disk temperature is too high (over {$TEMPERATURE.MAX.WARN:"{#DISK_NAME}"}C for 5m)'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'Disk temperature is high.'
                  tags:
                    - tag: scope
                      value: notice
          graph_prototypes:
            - uuid: 0334f7b454644a7cb25864a67dfbf158
              name: 'Disk [{#DISK_NAME}]'': Temperature'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'TrueNAS CORE by SNMP'
                    key: 'truenas.disk.temp[{#DISK_NAME}]'
          master_item:
            key: truenas.disk.temp.walk
          preprocessing:
            - type: SNMP_WALK_TO_JSON
              parameters:
                - '{#DISK_NAME}'
                - 1.3.6.1.4.1.50536.3.1.2
                - '0'
              error_handler: DISCARD_VALUE
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 6h
        - uuid: f3d22d302e274b12927afd9453bb787a
          name: 'ZFS datasets discovery'
          type: DEPENDENT
          key: truenas.zfs.dataset.discovery
          filter:
            evaltype: AND
            conditions:
              - macro: '{#DATASET_NAME}'
                value: '{$DATASET.NAME.MATCHES}'
              - macro: '{#DATASET_NAME}'
                value: '{$DATASET.NAME.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
          description: 'ZFS datasets discovery from FREENAS-MIB.'
          item_prototypes:
            - uuid: 3c3eab95b8e74e608fe3b7abab98c76b
              name: 'Dataset [{#DATASET_NAME}]: Available space'
              type: DEPENDENT
              key: 'truenas.dataset.avail[{#DATASET_NAME}]'
              units: B
              description: |
                MIB: FREENAS-MIB
                The available size of the dataset in bytes.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.50536.1.2.1.1.6.{#SNMPINDEX}'
                    - '0'
                - type: MULTIPLIER
                  parameters:
                    - '{#DATASET_ALLOC_UNITS}'
              master_item:
                key: truenas.zfs.dataset.walk
              tags:
                - tag: component
                  value: storage
                - tag: dataset
                  value: '{#DATASET_NAME}'
            - uuid: fd6b3a3ebfb041b3a9026fb1b4370ec7
              name: 'Dataset [{#DATASET_NAME}]: Usage in %'
              type: CALCULATED
              key: 'truenas.dataset.pused[{#DATASET_NAME}]'
              value_type: FLOAT
              units: '%'
              params: 'last(//truenas.dataset.used[{#DATASET_NAME}]) * 100 / last(//truenas.dataset.size.total[{#DATASET_NAME}])'
              description: 'The used size of the dataset in %.'
              tags:
                - tag: component
                  value: storage
                - tag: dataset
                  value: '{#DATASET_NAME}'
            - uuid: 5ead1929891a4152b581f9adf35ce4ce
              name: 'Dataset [{#DATASET_NAME}]: Total space'
              type: DEPENDENT
              key: 'truenas.dataset.size.total[{#DATASET_NAME}]'
              units: B
              description: |
                MIB: FREENAS-MIB
                The size of the dataset in bytes.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.50536.1.2.1.1.4.{#SNMPINDEX}'
                    - '0'
                - type: MULTIPLIER
                  parameters:
                    - '{#DATASET_ALLOC_UNITS}'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: truenas.zfs.dataset.walk
              tags:
                - tag: component
                  value: storage
                - tag: dataset
                  value: '{#DATASET_NAME}'
            - uuid: 0e24fceacd64430abed01294ffd28104
              name: 'Dataset [{#DATASET_NAME}]: Used space'
              type: DEPENDENT
              key: 'truenas.dataset.used[{#DATASET_NAME}]'
              units: B
              description: |
                MIB: FREENAS-MIB
                The used size of the dataset in bytes.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.50536.1.2.1.1.5.{#SNMPINDEX}'
                    - '0'
                - type: MULTIPLIER
                  parameters:
                    - '{#DATASET_ALLOC_UNITS}'
              master_item:
                key: truenas.zfs.dataset.walk
              tags:
                - tag: component
                  value: storage
                - tag: dataset
                  value: '{#DATASET_NAME}'
          trigger_prototypes:
            - uuid: f759e058ef5345d884662f51db0c222e
              expression: 'min(/TrueNAS CORE by SNMP/truenas.dataset.pused[{#DATASET_NAME}],5m) > {$DATASET.PUSED.MAX.WARN:"{#DATASET_NAME}"} and last(/TrueNAS CORE by SNMP/truenas.dataset.avail[{#DATASET_NAME}]) < {$DATASET.FREE.MIN.WARN:"{#POOLNAME}"}'
              name: 'TrueNAS CORE: Dataset [{#DATASET_NAME}]: High space usage'
              event_name: 'TrueNAS CORE: Dataset [{#DATASET_NAME}]: High space usage (more than {$DATASET.PUSED.MAX.WARN:"{#DATASET_NAME}"}% used)'
              opdata: 'Current usage: {ITEM.LASTVALUE1}'
              priority: WARNING
              description: |
                Two conditions should match:
                1. The first condition - utilization of the space should be above `{$DATASET.PUSED.MAX.WARN:"{#DATASET_NAME}"}%.`
                2. The second condition - the dataset free space is less than `{$DATASET.FREE.MIN.WARN:"{#POOLNAME}"}`.
              dependencies:
                - name: 'TrueNAS CORE: Dataset [{#DATASET_NAME}]: Very high space usage'
                  expression: 'min(/TrueNAS CORE by SNMP/truenas.dataset.pused[{#DATASET_NAME}],5m) > {$DATASET.PUSED.MAX.CRIT:"{#DATASET_NAME}"} and last(/TrueNAS CORE by SNMP/truenas.dataset.avail[{#DATASET_NAME}]) < {$DATASET.FREE.MIN.CRIT:"{#POOLNAME}"}'
              tags:
                - tag: scope
                  value: capacity
                - tag: scope
                  value: performance
            - uuid: f0e37c1f63aa4e3090c0dc8c4f0dfe9b
              expression: 'min(/TrueNAS CORE by SNMP/truenas.dataset.pused[{#DATASET_NAME}],5m) > {$DATASET.PUSED.MAX.CRIT:"{#DATASET_NAME}"} and last(/TrueNAS CORE by SNMP/truenas.dataset.avail[{#DATASET_NAME}]) < {$DATASET.FREE.MIN.CRIT:"{#POOLNAME}"}'
              name: 'TrueNAS CORE: Dataset [{#DATASET_NAME}]: Very high space usage'
              event_name: 'TrueNAS CORE: Dataset [{#DATASET_NAME}]: Very high space usage (more than {$DATASET.PUSED.MAX.CRIT:"{#DATASET_NAME}"}% used)'
              opdata: 'Current usage: {ITEM.LASTVALUE1}'
              priority: AVERAGE
              description: |
                Two conditions should match:
                1. The first condition - utilization of the space should be above `{$DATASET.PUSED.MAX.CRIT:"{#DATASET_NAME}"}%.`
                2. The second condition - the dataset free space is less than `{$DATASET.FREE.MIN.CRIT:"{#POOLNAME}"}`.
              tags:
                - tag: scope
                  value: capacity
                - tag: scope
                  value: performance
          graph_prototypes:
            - uuid: 38637298316543bdb9f2c291285f8077
              name: 'Dataset [{#DATASET_NAME}]: Space usage'
              width: '600'
              height: '340'
              type: PIE
              show_3d: 'YES'
              graph_items:
                - color: '969696'
                  calc_fnc: LAST
                  type: GRAPH_SUM
                  item:
                    host: 'TrueNAS CORE by SNMP'
                    key: 'truenas.dataset.size.total[{#DATASET_NAME}]'
                - sortorder: '1'
                  color: C80000
                  calc_fnc: LAST
                  item:
                    host: 'TrueNAS CORE by SNMP'
                    key: 'truenas.dataset.used[{#DATASET_NAME}]'
          master_item:
            key: truenas.zfs.dataset.walk
          preprocessing:
            - type: SNMP_WALK_TO_JSON
              parameters:
                - '{#DATASET_NAME}'
                - 1.3.6.1.4.1.50536.1.2.1.1.2
                - '0'
                - '{#DATASET_ALLOC_UNITS}'
                - 1.3.6.1.4.1.50536.1.2.1.1.3
                - '0'
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 6h
        - uuid: edde9729f6304a9b83d31a1c62356fdd
          name: 'ZFS pools discovery'
          type: DEPENDENT
          key: truenas.zfs.pools.discovery
          description: 'ZFS pools discovery from FREENAS-MIB.'
          item_prototypes:
            - uuid: 2727c62d279f46b0938b1ef6c3b70fe5
              name: 'Pool [{#POOLNAME}]: Available space'
              type: DEPENDENT
              key: 'truenas.zpool.avail[{#POOLNAME}]'
              units: B
              description: |
                MIB: FREENAS-MIB
                The available size of the storage pool in bytes.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.50536.1.1.1.1.6.{#SNMPINDEX}'
                    - '0'
                - type: MULTIPLIER
                  parameters:
                    - '{#POOL_ALLOC_UNITS}'
              master_item:
                key: truenas.zfs.pools.walk
              tags:
                - tag: component
                  value: storage
                - tag: pool
                  value: '{#POOLNAME}'
            - uuid: 382c3a50845f4d96a44dc22704768d41
              name: 'Pool [{#POOLNAME}]: Health'
              type: DEPENDENT
              key: 'truenas.zpool.health[{#POOLNAME}]'
              description: |
                MIB: FREENAS-MIB
                The current health of the containing pool, as reported by zpool status.
              valuemap:
                name: 'FREENAS-MIB::ZPoolHealthType'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.50536.1.1.1.1.7.{#SNMPINDEX}'
                    - '0'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: truenas.zfs.pools.walk
              tags:
                - tag: component
                  value: health
                - tag: component
                  value: storage
                - tag: pool
                  value: '{#POOLNAME}'
              trigger_prototypes:
                - uuid: 676c2abdd102484a92db3501ccc2ca51
                  expression: 'last(/TrueNAS CORE by SNMP/truenas.zpool.health[{#POOLNAME}]) <> 0'
                  name: 'TrueNAS CORE: Pool [{#POOLNAME}]: Status is not online'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'Please check pool status.'
                  tags:
                    - tag: scope
                      value: availability
            - uuid: 5f972063f958463ab132b8d478092bd8
              name: 'Pool [{#POOLNAME}]: Usage in %'
              type: CALCULATED
              key: 'truenas.zpool.pused[{#POOLNAME}]'
              value_type: FLOAT
              units: '%'
              params: 'last(//truenas.zpool.used[{#POOLNAME}]) * 100 / last(//truenas.zpool.size.total[{#POOLNAME}])'
              description: 'The used size of the storage pool in %.'
              tags:
                - tag: component
                  value: storage
                - tag: pool
                  value: '{#POOLNAME}'
            - uuid: b5766173631a47ee8c58e24f5c0523b5
              name: 'Pool [{#POOLNAME}]: Read rate'
              type: DEPENDENT
              key: 'truenas.zpool.read.bytes[{#POOLNAME}]'
              value_type: FLOAT
              units: Bps
              description: |
                MIB: FREENAS-MIB
                The bandwidth of all read operations (including metadata), expressed as units per second (averaged since system booted).
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.50536.1.1.1.1.10.{#SNMPINDEX}'
                    - '0'
                - type: MULTIPLIER
                  parameters:
                    - '{#POOL_ALLOC_UNITS}'
                - type: CHANGE_PER_SECOND
              master_item:
                key: truenas.zfs.pools.walk
              tags:
                - tag: component
                  value: storage
                - tag: pool
                  value: '{#POOLNAME}'
            - uuid: f32abc8617c6466d8a92219def967bd8
              name: 'Pool [{#POOLNAME}]: Read operations rate'
              type: DEPENDENT
              key: 'truenas.zpool.read.ops[{#POOLNAME}]'
              value_type: FLOAT
              units: IOPS
              description: |
                MIB: FREENAS-MIB
                The number of read I/O operations sent to the pool or device, including metadata requests (averaged since system booted).
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.50536.1.1.1.1.8.{#SNMPINDEX}'
                    - '0'
                - type: CHANGE_PER_SECOND
              master_item:
                key: truenas.zfs.pools.walk
              tags:
                - tag: component
                  value: storage
                - tag: pool
                  value: '{#POOLNAME}'
            - uuid: 567422ecdcec49faac94540f64a05e3a
              name: 'Pool [{#POOLNAME}]: Total space'
              type: DEPENDENT
              key: 'truenas.zpool.size.total[{#POOLNAME}]'
              units: B
              description: |
                MIB: FREENAS-MIB
                The size of the storage pool in bytes.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.50536.1.1.1.1.4.{#SNMPINDEX}'
                    - '0'
                - type: MULTIPLIER
                  parameters:
                    - '{#POOL_ALLOC_UNITS}'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: truenas.zfs.pools.walk
              tags:
                - tag: component
                  value: storage
                - tag: pool
                  value: '{#POOLNAME}'
            - uuid: fe5cf78cdcdd4386982f5cd204d99283
              name: 'Pool [{#POOLNAME}]: Used space'
              type: DEPENDENT
              key: 'truenas.zpool.used[{#POOLNAME}]'
              units: B
              description: |
                MIB: FREENAS-MIB
                The used size of the storage pool in bytes.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.50536.1.1.1.1.5.{#SNMPINDEX}'
                    - '0'
                - type: MULTIPLIER
                  parameters:
                    - '{#POOL_ALLOC_UNITS}'
              master_item:
                key: truenas.zfs.pools.walk
              tags:
                - tag: component
                  value: storage
                - tag: pool
                  value: '{#POOLNAME}'
            - uuid: d11e981ec16c4da0aee6842bdddfe2fd
              name: 'Pool [{#POOLNAME}]: Write rate'
              type: DEPENDENT
              key: 'truenas.zpool.write.bytes[{#POOLNAME}]'
              value_type: FLOAT
              units: Bps
              description: |
                MIB: FREENAS-MIB
                The bandwidth of all write operations, expressed as units per second (averaged since system booted).
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.50536.1.1.1.1.11.{#SNMPINDEX}'
                    - '0'
                - type: MULTIPLIER
                  parameters:
                    - '{#POOL_ALLOC_UNITS}'
                - type: CHANGE_PER_SECOND
              master_item:
                key: truenas.zfs.pools.walk
              tags:
                - tag: component
                  value: storage
                - tag: pool
                  value: '{#POOLNAME}'
            - uuid: e4bfc421633a433ca1b895fa4f5cf96e
              name: 'Pool [{#POOLNAME}]: Write operations rate'
              type: DEPENDENT
              key: 'truenas.zpool.write.ops[{#POOLNAME}]'
              value_type: FLOAT
              units: IOPS
              description: |
                MIB: FREENAS-MIB
                The number of write I/O operations sent to the pool or device (averaged since system booted).
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.50536.1.1.1.1.9.{#SNMPINDEX}'
                    - '0'
                - type: CHANGE_PER_SECOND
              master_item:
                key: truenas.zfs.pools.walk
              tags:
                - tag: component
                  value: storage
                - tag: pool
                  value: '{#POOLNAME}'
          trigger_prototypes:
            - uuid: 18eef491c14b4f768400b4acca5c7e80
              expression: 'min(/TrueNAS CORE by SNMP/truenas.zpool.pused[{#POOLNAME}],5m) > {$ZPOOL.PUSED.MAX.WARN:"{#POOLNAME}"} and last(/TrueNAS CORE by SNMP/truenas.zpool.avail[{#POOLNAME}]) < {$ZPOOL.FREE.MIN.WARN:"{#POOLNAME}"}'
              name: 'TrueNAS CORE: Pool [{#POOLNAME}]: High space usage'
              event_name: 'TrueNAS CORE: Pool [{#POOLNAME}]: High space usage (more than {$ZPOOL.PUSED.MAX.WARN:"{#POOLNAME}"}% used)'
              opdata: 'Current usage: {ITEM.LASTVALUE1}'
              priority: WARNING
              description: |
                Two conditions should match:
                1. The first condition - utilization of the space should be above `{$ZPOOL.PUSED.MAX.WARN:"{#POOLNAME}"}%.`
                2. The second condition - the pool free space is less than `{$ZPOOL.FREE.MIN.WARN:"{#POOLNAME}"}`.
              dependencies:
                - name: 'TrueNAS CORE: Pool [{#POOLNAME}]: Very high space usage'
                  expression: 'min(/TrueNAS CORE by SNMP/truenas.zpool.pused[{#POOLNAME}],5m) > {$ZPOOL.PUSED.MAX.CRIT:"{#POOLNAME}"} and last(/TrueNAS CORE by SNMP/truenas.zpool.avail[{#POOLNAME}]) < {$ZPOOL.FREE.MIN.CRIT:"{#POOLNAME}"}'
              tags:
                - tag: scope
                  value: capacity
                - tag: scope
                  value: performance
            - uuid: ab01140b8a724c1cbb79be032de8c8b5
              expression: 'min(/TrueNAS CORE by SNMP/truenas.zpool.pused[{#POOLNAME}],5m) > {$ZPOOL.PUSED.MAX.CRIT:"{#POOLNAME}"} and last(/TrueNAS CORE by SNMP/truenas.zpool.avail[{#POOLNAME}]) < {$ZPOOL.FREE.MIN.CRIT:"{#POOLNAME}"}'
              name: 'TrueNAS CORE: Pool [{#POOLNAME}]: Very high space usage'
              event_name: 'TrueNAS CORE: Pool [{#POOLNAME}]: Very high space usage (more than {$ZPOOL.PUSED.MAX.CRIT:"{#POOLNAME}"}% used)'
              opdata: 'Current usage: {ITEM.LASTVALUE1}'
              priority: AVERAGE
              description: |
                Two conditions should match:
                1. The first condition - utilization of the space should be above `{$ZPOOL.PUSED.MAX.CRIT:"{#POOLNAME}"}%.`
                2. The second condition - the pool free space is less than `{$ZPOOL.FREE.MIN.CRIT:"{#POOLNAME}"}`.
              tags:
                - tag: scope
                  value: capacity
                - tag: scope
                  value: performance
          graph_prototypes:
            - uuid: 8c2ed6ea842941b3b306efe87df844be
              name: 'Pool [{#POOLNAME}]: Read/write rates'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'TrueNAS CORE by SNMP'
                    key: 'truenas.zpool.read.bytes[{#POOLNAME}]'
                - sortorder: '1'
                  drawtype: GRADIENT_LINE
                  color: F63100
                  item:
                    host: 'TrueNAS CORE by SNMP'
                    key: 'truenas.zpool.write.bytes[{#POOLNAME}]'
            - uuid: 497e60420e314ec3a3de904042ae4756
              name: 'Pool [{#POOLNAME}]: Space usage'
              width: '600'
              height: '340'
              type: PIE
              show_3d: 'YES'
              graph_items:
                - color: '969696'
                  calc_fnc: LAST
                  type: GRAPH_SUM
                  item:
                    host: 'TrueNAS CORE by SNMP'
                    key: 'truenas.zpool.size.total[{#POOLNAME}]'
                - sortorder: '1'
                  color: C80000
                  calc_fnc: LAST
                  item:
                    host: 'TrueNAS CORE by SNMP'
                    key: 'truenas.zpool.used[{#POOLNAME}]'
          master_item:
            key: truenas.zfs.pools.walk
          preprocessing:
            - type: SNMP_WALK_TO_JSON
              parameters:
                - '{#POOLNAME}'
                - 1.3.6.1.4.1.50536.1.1.1.1.2
                - '0'
                - '{#POOL_ALLOC_UNITS}'
                - 1.3.6.1.4.1.50536.1.1.1.1.3
                - '0'
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 6h
        - uuid: dfeb1df58c024b27a0a65206d896975c
          name: 'ZFS volumes discovery'
          type: DEPENDENT
          key: truenas.zfs.zvols.discovery
          description: 'ZFS volumes discovery from FREENAS-MIB.'
          item_prototypes:
            - uuid: 26967102b3a946c997fbbdcc5c2d78bc
              name: 'TrueNAS CORE: ZFS volume [{#ZVOL_NAME}]: Available space'
              type: DEPENDENT
              key: 'truenas.zvol.avail[{#ZVOL_NAME}]'
              units: B
              description: |
                MIB: FREENAS-MIB
                The available of the ZFS volume in bytes.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.50536.1.3.1.1.6.{#SNMPINDEX}'
                    - '0'
                - type: MULTIPLIER
                  parameters:
                    - '{#ZVOL_ALLOC_UNITS}'
              master_item:
                key: truenas.zfs.zvols.walk
              tags:
                - tag: component
                  value: storage
                - tag: volume
                  value: '{#ZVOL_NAME}'
            - uuid: cc01786aff804d6998b039525214ddbd
              name: 'TrueNAS CORE: ZFS volume [{#ZVOL_NAME}]: Total space'
              type: DEPENDENT
              key: 'truenas.zvol.size.total[{#ZVOL_NAME}]'
              units: B
              description: |
                MIB: FREENAS-MIB
                The size of the ZFS volume in bytes.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.50536.1.3.1.1.4.{#SNMPINDEX}'
                    - '0'
                - type: MULTIPLIER
                  parameters:
                    - '{#ZVOL_ALLOC_UNITS}'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: truenas.zfs.zvols.walk
              tags:
                - tag: component
                  value: storage
                - tag: volume
                  value: '{#ZVOL_NAME}'
            - uuid: a722d904125d46729c29ad4283d0b1b0
              name: 'TrueNAS CORE: ZFS volume [{#ZVOL_NAME}]: Used space'
              type: DEPENDENT
              key: 'truenas.zvol.used[{#ZVOL_NAME}]'
              units: B
              description: |
                MIB: FREENAS-MIB
                The used size of the ZFS volume in bytes.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.50536.1.3.1.1.5.{#SNMPINDEX}'
                    - '0'
                - type: MULTIPLIER
                  parameters:
                    - '{#ZVOL_ALLOC_UNITS}'
              master_item:
                key: truenas.zfs.zvols.walk
              tags:
                - tag: component
                  value: storage
                - tag: volume
                  value: '{#ZVOL_NAME}'
          graph_prototypes:
            - uuid: 18746b4b3cfb4d1baf06df7b05a047f9
              name: 'TrueNAS CORE: ZFS volume [{#ZVOL_NAME}]: Space usage'
              width: '600'
              height: '340'
              type: PIE
              show_3d: 'YES'
              graph_items:
                - color: '969696'
                  calc_fnc: LAST
                  type: GRAPH_SUM
                  item:
                    host: 'TrueNAS CORE by SNMP'
                    key: 'truenas.zvol.size.total[{#ZVOL_NAME}]'
                - sortorder: '1'
                  color: C80000
                  calc_fnc: LAST
                  item:
                    host: 'TrueNAS CORE by SNMP'
                    key: 'truenas.zvol.used[{#ZVOL_NAME}]'
          master_item:
            key: truenas.zfs.zvols.walk
          preprocessing:
            - type: SNMP_WALK_TO_JSON
              parameters:
                - '{#ZVOL_NAME}'
                - 1.3.6.1.4.1.50536.1.3.1.1.2
                - '0'
                - '{#ZVOL_ALLOC_UNITS}'
                - 1.3.6.1.4.1.50536.1.3.1.1.3
                - '0'
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 6h
        - uuid: 1f992aa87f9e4074a8cba928b2017a03
          name: 'Block devices discovery'
          type: DEPENDENT
          key: vfs.dev.discovery
          filter:
            evaltype: AND
            conditions:
              - macro: '{#DEVNAME}'
                value: '{$VFS.DEV.DEVNAME.MATCHES}'
              - macro: '{#DEVNAME}'
                value: '{$VFS.DEV.DEVNAME.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
          description: 'Block devices are discovered from UCD-DISKIO-MIB::diskIOTable (http://net-snmp.sourceforge.net/docs/mibs/ucdDiskIOMIB.html#diskIOTable).'
          item_prototypes:
            - uuid: ba220c4106cb4bff9dd60c92aee7919a
              name: 'TrueNAS CORE: [{#DEVNAME}]: Disk read rate'
              type: DEPENDENT
              key: 'vfs.dev.read.rate[{#SNMPINDEX}]'
              value_type: FLOAT
              units: '!r/s'
              description: |
                MIB: UCD-DISKIO-MIB
                The number of read accesses from this device since boot.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.2021.13.15.1.1.5.{#SNMPINDEX}'
                    - '0'
                - type: CHANGE_PER_SECOND
              master_item:
                key: vfs.dev.walk
              tags:
                - tag: component
                  value: storage
                - tag: disk
                  value: '{#DEVNAME}'
            - uuid: 0dd2f25f1d2a45f2ae265d8550fe7d45
              name: 'TrueNAS CORE: [{#DEVNAME}]: Disk utilization'
              type: DEPENDENT
              key: 'vfs.dev.util[{#SNMPINDEX}]'
              value_type: FLOAT
              units: '%'
              description: |
                MIB: UCD-DISKIO-MIB
                The 1 minute average load of disk (%).
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.2021.13.15.1.1.9.{#SNMPINDEX}'
                    - '0'
              master_item:
                key: vfs.dev.walk
              tags:
                - tag: component
                  value: storage
                - tag: disk
                  value: '{#DEVNAME}'
            - uuid: 1549def5cf23434b8d0a19ac951eb2ff
              name: 'TrueNAS CORE: [{#DEVNAME}]: Disk write rate'
              type: DEPENDENT
              key: 'vfs.dev.write.rate[{#SNMPINDEX}]'
              value_type: FLOAT
              units: '!w/s'
              description: |
                MIB: UCD-DISKIO-MIB
                The number of write accesses from this device since boot.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.2021.13.15.1.1.6.{#SNMPINDEX}'
                    - '0'
                - type: CHANGE_PER_SECOND
              master_item:
                key: vfs.dev.walk
              tags:
                - tag: component
                  value: storage
                - tag: disk
                  value: '{#DEVNAME}'
          graph_prototypes:
            - uuid: c6e277b4a9e949df9e7bfd6adefc65b5
              name: 'TrueNAS CORE: [{#DEVNAME}]: Read/write rates'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'TrueNAS CORE by SNMP'
                    key: 'vfs.dev.read.rate[{#SNMPINDEX}]'
                - sortorder: '1'
                  drawtype: GRADIENT_LINE
                  color: F63100
                  item:
                    host: 'TrueNAS CORE by SNMP'
                    key: 'vfs.dev.write.rate[{#SNMPINDEX}]'
          master_item:
            key: vfs.dev.walk
          preprocessing:
            - type: SNMP_WALK_TO_JSON
              parameters:
                - '{#DEVNAME}'
                - 1.3.6.1.4.1.2021.13.15.1.1.2
                - '0'
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
      tags:
        - tag: class
          value: hardware
        - tag: subclass
          value: backup
        - tag: target
          value: truenas-core
      macros:
        - macro: '{$CPU.UTIL.CRIT}'
          value: '90'
          description: 'Threshold of CPU utilization for warning trigger in %.'
          config:
            type: TEXT
            priority: '1'
            section_name: Thresholds
            label: 'Threshold for CPU utilization (critical)'
            description: 'Threshold of CPU utilization for warning trigger in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$DATASET.FREE.MIN.CRIT}'
          value: 5G
          description: 'This macro is used for trigger expression. It can be overridden on the host or linked on the template level.'
          config:
            type: TEXT
            priority: '17'
            section_name: Thresholds
            label: 'Dataset free space minimum (critical)'
            description: 'This macro is used for trigger expression. It can be overridden on the host or linked on the template level.'
        - macro: '{$DATASET.FREE.MIN.WARN}'
          value: 5G
          description: 'This macro is used for trigger expression. It can be overridden on the host or linked on the template level.'
          config:
            type: TEXT
            priority: '15'
            section_name: Thresholds
            label: 'Dataset free space minimum (warning)'
            description: 'This macro is used for trigger expression. It can be overridden on the host or linked on the template level.'
        - macro: '{$DATASET.NAME.MATCHES}'
          value: .+
          description: 'This macro is used in datasets discovery. Can be overridden on the host or linked template level'
          config:
            type: TEXT
            priority: '8'
            section_name: Filters
            label: 'Dataset name filter (include)'
            description: 'This macro is used in datasets discovery. Can be overridden on the host or linked template level'
        - macro: '{$DATASET.NAME.NOT_MATCHES}'
          value: '^(boot|.+\.system(.+)?$)'
          description: 'This macro is used in datasets discovery. Can be overridden on the host or linked template level'
          config:
            type: TEXT
            priority: '9'
            section_name: Filters
            label: 'Dataset name filter (exclude)'
            description: 'This macro is used in datasets discovery. Can be overridden on the host or linked template level'
        - macro: '{$DATASET.PUSED.MAX.CRIT}'
          value: '90'
          description: 'Threshold of used dataset space for average severity trigger in %.'
          config:
            type: TEXT
            priority: '16'
            section_name: Thresholds
            label: 'Dataset percent used maximum (critical)'
            description: 'Threshold of used dataset space for average severity trigger in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$DATASET.PUSED.MAX.WARN}'
          value: '80'
          description: 'Threshold of used dataset space for warning trigger in %.'
          config:
            type: TEXT
            priority: '14'
            section_name: Thresholds
            label: 'Dataset percent used maximum (warning)'
            description: 'Threshold of used dataset space for warning trigger in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$ICMP_LOSS_WARN}'
          value: '20'
          description: 'Warning threshold of ICMP packet loss in %.'
          config:
            type: TEXT
            priority: '21'
            section_name: Thresholds
            label: 'Threshold of ICMP packet loss'
            description: 'Warning threshold of ICMP packet loss in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$ICMP_RESPONSE_TIME_WARN}'
          value: '0.15'
          description: 'Warning threshold of the average ICMP response time in seconds.'
          config:
            type: TEXT
            priority: '22'
            section_name: Thresholds
            label: 'Threshold of the average ICMP response'
            description: 'Warning threshold of the average ICMP response time in seconds. No less than 0.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$IF.ERRORS.WARN}'
          value: '2'
          description: 'Warning threshold of error packet rate. Can be used with interface name as context.'
          config:
            type: TEXT
            priority: '25'
            section_name: Thresholds
            label: 'Threshold of error packet rate'
            description: 'Warning threshold of error packet rate. No less than 0.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$IF.UTIL.MAX}'
          value: '90'
          description: 'Used as a threshold in the interface utilization trigger.'
          config:
            type: TEXT
            priority: '24'
            section_name: Thresholds
            label: 'The threshold in the interface utilization'
            description: 'Used as a threshold in the interface utilization trigger. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$IFCONTROL}'
          value: '1'
          description: 'Link status trigger will be fired only for interfaces where the context macro equals "1".'
          config:
            type: CHECKBOX
            priority: '23'
            label: 'Interfaces control'
            description: 'Fire a trigger when the interface operational status changes to "Link down".'
            options:
              - checked: '1'
                unchecked: '0'
        - macro: '{$LOAD_AVG_PER_CPU.MAX.WARN}'
          value: '1.5'
          description: 'Load per CPU considered sustainable. Tune if needed.'
          config:
            type: TEXT
            priority: '2'
            section_name: Thresholds
            label: 'The CPU load per core'
            description: 'Load per CPU considered sustainable. Tune if needed.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$MEMORY.AVAILABLE.MIN}'
          value: 20M
          description: 'Threshold of available memory for trigger in bytes.'
          config:
            type: TEXT
            priority: '3'
            section_name: Thresholds
            label: 'Threshold for available memory'
            description: 'Threshold of available memory for trigger in bytes.'
        - macro: '{$MEMORY.UTIL.MAX}'
          value: '90'
          description: 'Threshold of memory utilization for trigger in %'
          config:
            type: TEXT
            priority: '4'
            section_name: Thresholds
            label: 'Threshold for memory utilization'
            description: 'Threshold of memory utilization for trigger in % In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$NET.IF.IFADMINSTATUS.MATCHES}'
          value: '^.*'
          description: 'Used in network interface discovery rule filters.'
          config:
            type: TEXT
            priority: '30'
            section_name: Filters
            label: 'Filter network interface by adminstatus'
            description: 'Regex string to include discovered interface by adminstatus.'
        - macro: '{$NET.IF.IFADMINSTATUS.NOT_MATCHES}'
          value: ^2$
          description: 'Ignore `down(2)` administrative status'
          config:
            type: TEXT
            priority: '31'
            section_name: Filters
            label: 'Filter network interface by adminstatus (exclude)'
            description: 'Regex string to exclude discovered interface by adminstatus.'
        - macro: '{$NET.IF.IFALIAS.MATCHES}'
          value: '.*'
          description: 'Used in network interface discovery rule filters.'
          config:
            type: TEXT
            priority: '34'
            section_name: Filters
            label: 'Filter network interface by alias'
            description: 'Regex string to include discovered interface by alias.'
        - macro: '{$NET.IF.IFALIAS.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          description: 'Used in network interface discovery rule filters.'
          config:
            type: TEXT
            priority: '35'
            section_name: Filters
            label: 'Filter network interface by alias (exclude)'
            description: 'Regex string to exclude discovered interface by alias.'
        - macro: '{$NET.IF.IFDESCR.MATCHES}'
          value: '.*'
          description: 'Used in network interface discovery rule filters.'
          config:
            type: TEXT
            priority: '32'
            section_name: Filters
            label: 'Filter network interface by description'
            description: 'Regex string to include discovered interface by description.'
        - macro: '{$NET.IF.IFDESCR.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          description: 'Used in network interface discovery rule filters.'
          config:
            type: TEXT
            priority: '33'
            section_name: Filters
            label: 'Filter network interface by description (exclude)'
            description: 'Regex string to exclude discovered interface by description.'
        - macro: '{$NET.IF.IFNAME.MATCHES}'
          value: '^.*$'
          description: 'Used for network interface discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '26'
            section_name: Filters
            label: 'Filter for network interface by name'
            description: 'Regex string to include discovered interface by name.'
        - macro: '{$NET.IF.IFNAME.NOT_MATCHES}'
          value: '(^Software Loopback Interface|^NULL[0-9.]*$|^[Ll]o[0-9.]*$|^[Ss]ystem$|^Nu[0-9.]*$|^veth[0-9a-z]+$|docker[0-9]+|br-[a-z0-9]{12})'
          description: 'Filters out `loopbacks`, `nulls`, docker `veth` links and `docker0 bridge` by default.'
          config:
            type: TEXT
            priority: '27'
            section_name: Filters
            label: 'Filter for network interface by name (exclude)'
            description: 'Filters out `loopbacks`, `nulls`, docker `veth` links and `docker0` bridge by default.'
        - macro: '{$NET.IF.IFOPERSTATUS.MATCHES}'
          value: '^.*$'
          description: 'Used for network interface discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '28'
            section_name: Filters
            label: 'Filter network interface by status'
            description: 'Regex string to include discovered interface by status.'
        - macro: '{$NET.IF.IFOPERSTATUS.NOT_MATCHES}'
          value: ^6$
          description: 'Ignore `notPresent(6)`'
          config:
            type: TEXT
            priority: '29'
            section_name: Filters
            label: 'Filter network interface by status (exclude)'
            description: 'Regex string to exclude discovered interface by status.'
        - macro: '{$NET.IF.IFTYPE.MATCHES}'
          value: '.*'
          description: 'Used in network interface discovery rule filters.'
          config:
            type: TEXT
            priority: '36'
            section_name: Filters
            label: 'Filter network interface by type'
            description: 'Regex string to include discovered interface by type.'
        - macro: '{$NET.IF.IFTYPE.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          description: 'Used in network interface discovery rule filters.'
          config:
            type: TEXT
            priority: '37'
            section_name: Filters
            label: 'Filter network interface by type (exclude)'
            description: 'Regex string to exclude discovered interface by type.'
        - macro: '{$SNMP.TIMEOUT}'
          value: 5m
          description: 'Time interval for the SNMP availability trigger.'
          config:
            type: TEXT
            priority: '20'
            section_name: Other
            label: 'Time interval'
            description: 'Time interval for the SNMP availability trigger.'
        - macro: '{$SWAP.PFREE.MIN.WARN}'
          value: '50'
          description: 'Threshold of free swap space for warning trigger in %.'
          config:
            type: TEXT
            priority: '5'
            section_name: Thresholds
            label: 'Swap free space warning (%)'
            description: 'Threshold of free swap space for warning trigger in %.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$TEMPERATURE.MAX.CRIT}'
          value: '65'
          description: 'This macro is used for trigger expression. It can be overridden on the host or linked on the template level.'
          config:
            type: TEXT
            priority: '19'
            section_name: Thresholds
            label: 'Temperature maximum (critical)'
            description: 'This macro is used for trigger expression. It can be overridden on the host or linked on the template level.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$TEMPERATURE.MAX.WARN}'
          value: '50'
          description: 'This macro is used for trigger expression. It can be overridden on the host or linked on the template level.'
          config:
            type: TEXT
            priority: '18'
            section_name: Thresholds
            label: 'Temperature maximum (warning)'
            description: 'This macro is used for trigger expression. It can be overridden on the host or linked on the template level.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$VFS.DEV.DEVNAME.MATCHES}'
          value: .+
          description: 'This macro is used in block devices discovery. Can be overridden on the host or linked template level'
          config:
            type: TEXT
            priority: '6'
            section_name: Filters
            label: 'Device name filter (include)'
            description: 'This macro is used in block devices discovery. Can be overridden on the host or linked template level'
        - macro: '{$VFS.DEV.DEVNAME.NOT_MATCHES}'
          value: '^(loop[0-9]*|sd[a-z][0-9]+|nbd[0-9]+|sr[0-9]+|fd[0-9]+|dm-[0-9]+|ram[0-9]+|ploop[a-z0-9]+|md[0-9]*|hcp[0-9]*|cd[0-9]*|pass[0-9]*|zram[0-9]*)'
          description: 'This macro is used in block devices discovery. Can be overridden on the host or linked template level'
          config:
            type: TEXT
            priority: '7'
            section_name: Filters
            label: 'Device name filter (exclude)'
            description: 'This macro is used in block devices discovery. Can be overridden on the host or linked template level'
        - macro: '{$ZPOOL.FREE.MIN.CRIT}'
          value: 5G
          description: 'This macro is used for trigger expression. It can be overridden on the host or linked on the template level.'
          config:
            type: TEXT
            priority: '13'
            section_name: Thresholds
            label: 'ZPool free space minimum (critical)'
            description: 'This macro is used for trigger expression. It can be overridden on the host or linked on the template level.'
        - macro: '{$ZPOOL.FREE.MIN.WARN}'
          value: 5G
          description: 'This macro is used for trigger expression. It can be overridden on the host or linked on the template level.'
          config:
            type: TEXT
            priority: '11'
            section_name: Thresholds
            label: 'ZPool free space minimum (warning)'
            description: 'This macro is used for trigger expression. It can be overridden on the host or linked on the template level.'
        - macro: '{$ZPOOL.PUSED.MAX.CRIT}'
          value: '90'
          description: 'Threshold of used pool space for average severity trigger in %.'
          config:
            type: TEXT
            priority: '12'
            section_name: Thresholds
            label: 'ZPool percent used maximum (critical)'
            description: 'Threshold of used pool space for average severity trigger in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$ZPOOL.PUSED.MAX.WARN}'
          value: '80'
          description: 'Threshold of used pool space for warning trigger in %.'
          config:
            type: TEXT
            priority: '10'
            section_name: Thresholds
            label: 'ZPool percent used maximum (warning)'
            description: 'Threshold of used pool space for warning trigger in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
      dashboards:
        - uuid: 6db6fb2b5fe04a7095fcbec6e70e76e1
          name: 'TrueNAS CORE: Overview'
          pages:
            - name: Resources
              widgets:
                - type: graph
                  width: '72'
                  height: '5'
                  fields:
                    - type: GRAPH
                      name: graphid.0
                      value:
                        host: 'TrueNAS CORE by SNMP'
                        name: 'TrueNAS CORE: Memory utilization'
                    - type: STRING
                      name: reference
                      value: AAAAA
                - type: graph
                  'y': '5'
                  width: '36'
                  height: '5'
                  fields:
                    - type: GRAPH
                      name: graphid.0
                      value:
                        host: 'TrueNAS CORE by SNMP'
                        name: 'TrueNAS CORE: Memory usage'
                    - type: STRING
                      name: reference
                      value: AAAAB
                - type: graphprototype
                  'y': '10'
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'TrueNAS CORE by SNMP'
                        name: 'TrueNAS CORE: CPU usage{#SINGLETON}'
                    - type: STRING
                      name: reference
                      value: AAAAD
                - type: graphprototype
                  'y': '15'
                  width: '36'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'TrueNAS CORE by SNMP'
                        name: 'TrueNAS CORE: CPU utilization{#SINGLETON}'
                    - type: STRING
                      name: reference
                      value: AAAAE
                - type: graph
                  'y': '20'
                  width: '72'
                  height: '5'
                  fields:
                    - type: GRAPH
                      name: graphid.0
                      value:
                        host: 'TrueNAS CORE by SNMP'
                        name: 'TrueNAS CORE: CPU jumps'
                    - type: STRING
                      name: reference
                      value: AAAAG
                - type: graph
                  x: '36'
                  'y': '5'
                  width: '36'
                  height: '5'
                  fields:
                    - type: GRAPH
                      name: graphid.0
                      value:
                        host: 'TrueNAS CORE by SNMP'
                        name: 'TrueNAS CORE: Swap usage'
                    - type: STRING
                      name: reference
                      value: AAAAC
                - type: graph
                  x: '36'
                  'y': '15'
                  width: '36'
                  height: '5'
                  fields:
                    - type: GRAPH
                      name: graphid.0
                      value:
                        host: 'TrueNAS CORE by SNMP'
                        name: 'TrueNAS CORE: System load'
                    - type: STRING
                      name: reference
                      value: AAAAF
            - name: Disks
              widgets:
                - type: graphprototype
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'TrueNAS CORE by SNMP'
                        name: 'TrueNAS CORE: [{#DEVNAME}]: Read/write rates'
                    - type: STRING
                      name: reference
                      value: AAAAH
                - type: graphprototype
                  'y': '5'
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'TrueNAS CORE by SNMP'
                        name: 'Disk [{#DISK_NAME}]'': Temperature'
                    - type: STRING
                      name: reference
                      value: AAAAI
            - name: ZFS
              widgets:
                - type: graph
                  width: '72'
                  height: '5'
                  fields:
                    - type: GRAPH
                      name: graphid.0
                      value:
                        host: 'TrueNAS CORE by SNMP'
                        name: 'TrueNAS CORE: ARC hit ratio'
                    - type: STRING
                      name: reference
                      value: AAAAJ
                - type: graphprototype
                  'y': '5'
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'TrueNAS CORE by SNMP'
                        name: 'Pool [{#POOLNAME}]: Space usage'
                    - type: STRING
                      name: reference
                      value: AAAAK
                - type: graphprototype
                  'y': '10'
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'TrueNAS CORE by SNMP'
                        name: 'Pool [{#POOLNAME}]: Read/write rates'
                    - type: STRING
                      name: reference
                      value: AAAAL
                - type: graphprototype
                  'y': '15'
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'TrueNAS CORE by SNMP'
                        name: 'TrueNAS CORE: ZFS volume [{#ZVOL_NAME}]: Space usage'
                    - type: STRING
                      name: reference
                      value: AAAAM
                - type: graphprototype
                  'y': '20'
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'TrueNAS CORE by SNMP'
                        name: 'Dataset [{#DATASET_NAME}]: Space usage'
                    - type: STRING
                      name: reference
                      value: AAAAN
            - name: 'Network interfaces'
              widgets:
                - type: graphprototype
                  width: '72'
                  height: '10'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'TrueNAS CORE by SNMP'
                        name: 'Interface {#IFNAME}({#IFALIAS}): Network traffic'
                    - type: STRING
                      name: reference
                      value: AAAAO
      valuemaps:
        - uuid: 1ce70fc8edf2449ea6a0c687f359441a
          name: 'FREENAS-MIB::ZPoolHealthType'
          mappings:
            - value: '0'
              newvalue: online
            - value: '1'
              newvalue: degraded
            - value: '2'
              newvalue: faulted
            - value: '3'
              newvalue: offline
            - value: '4'
              newvalue: unavail
            - value: '5'
              newvalue: removed
        - uuid: 8206c1b8a10840c0908b34c95f8ba4b3
          name: 'IF-MIB::ifOperStatus'
          mappings:
            - value: '1'
              newvalue: up
            - value: '2'
              newvalue: down
            - value: '4'
              newvalue: unknown
            - value: '5'
              newvalue: dormant
            - value: '6'
              newvalue: notPresent
            - value: '7'
              newvalue: lowerLayerDown
        - uuid: f5115f963d0043f6b76ebbd27aaba600
          name: 'IF-MIB::ifType'
          mappings:
            - value: '1'
              newvalue: other
            - value: '2'
              newvalue: regular1822
            - value: '3'
              newvalue: hdh1822
            - value: '4'
              newvalue: ddnX25
            - value: '5'
              newvalue: rfc877x25
            - value: '6'
              newvalue: ethernetCsmacd
            - value: '7'
              newvalue: iso88023Csmacd
            - value: '8'
              newvalue: iso88024TokenBus
            - value: '9'
              newvalue: iso88025TokenRing
            - value: '10'
              newvalue: iso88026Man
            - value: '11'
              newvalue: starLan
            - value: '12'
              newvalue: proteon10Mbit
            - value: '13'
              newvalue: proteon80Mbit
            - value: '14'
              newvalue: hyperchannel
            - value: '15'
              newvalue: fddi
            - value: '16'
              newvalue: lapb
            - value: '17'
              newvalue: sdlc
            - value: '18'
              newvalue: ds1
            - value: '19'
              newvalue: e1
            - value: '20'
              newvalue: basicISDN
            - value: '21'
              newvalue: primaryISDN
            - value: '22'
              newvalue: propPointToPointSerial
            - value: '23'
              newvalue: ppp
            - value: '24'
              newvalue: softwareLoopback
            - value: '25'
              newvalue: eon
            - value: '26'
              newvalue: ethernet3Mbit
            - value: '27'
              newvalue: nsip
            - value: '28'
              newvalue: slip
            - value: '29'
              newvalue: ultra
            - value: '30'
              newvalue: ds3
            - value: '31'
              newvalue: sip
            - value: '32'
              newvalue: frameRelay
            - value: '33'
              newvalue: rs232
            - value: '34'
              newvalue: para
            - value: '35'
              newvalue: arcnet
            - value: '36'
              newvalue: arcnetPlus
            - value: '37'
              newvalue: atm
            - value: '38'
              newvalue: miox25
            - value: '39'
              newvalue: sonet
            - value: '40'
              newvalue: x25ple
            - value: '41'
              newvalue: iso88022llc
            - value: '42'
              newvalue: localTalk
            - value: '43'
              newvalue: smdsDxi
            - value: '44'
              newvalue: frameRelayService
            - value: '45'
              newvalue: v35
            - value: '46'
              newvalue: hssi
            - value: '47'
              newvalue: hippi
            - value: '48'
              newvalue: modem
            - value: '49'
              newvalue: aal5
            - value: '50'
              newvalue: sonetPath
            - value: '51'
              newvalue: sonetVT
            - value: '52'
              newvalue: smdsIcip
            - value: '53'
              newvalue: propVirtual
            - value: '54'
              newvalue: propMultiplexor
            - value: '55'
              newvalue: ieee80212
            - value: '56'
              newvalue: fibreChannel
            - value: '57'
              newvalue: hippiInterface
            - value: '58'
              newvalue: frameRelayInterconnect
            - value: '59'
              newvalue: aflane8023
            - value: '60'
              newvalue: aflane8025
            - value: '61'
              newvalue: cctEmul
            - value: '62'
              newvalue: fastEther
            - value: '63'
              newvalue: isdn
            - value: '64'
              newvalue: v11
            - value: '65'
              newvalue: v36
            - value: '66'
              newvalue: g703at64k
            - value: '67'
              newvalue: g703at2mb
            - value: '68'
              newvalue: qllc
            - value: '69'
              newvalue: fastEtherFX
            - value: '70'
              newvalue: channel
            - value: '71'
              newvalue: ieee80211
            - value: '72'
              newvalue: ibm370parChan
            - value: '73'
              newvalue: escon
            - value: '74'
              newvalue: dlsw
            - value: '75'
              newvalue: isdns
            - value: '76'
              newvalue: isdnu
            - value: '77'
              newvalue: lapd
            - value: '78'
              newvalue: ipSwitch
            - value: '79'
              newvalue: rsrb
            - value: '80'
              newvalue: atmLogical
            - value: '81'
              newvalue: ds0
            - value: '82'
              newvalue: ds0Bundle
            - value: '83'
              newvalue: bsc
            - value: '84'
              newvalue: async
            - value: '85'
              newvalue: cnr
            - value: '86'
              newvalue: iso88025Dtr
            - value: '87'
              newvalue: eplrs
            - value: '88'
              newvalue: arap
            - value: '89'
              newvalue: propCnls
            - value: '90'
              newvalue: hostPad
            - value: '91'
              newvalue: termPad
            - value: '92'
              newvalue: frameRelayMPI
            - value: '93'
              newvalue: x213
            - value: '94'
              newvalue: adsl
            - value: '95'
              newvalue: radsl
            - value: '96'
              newvalue: sdsl
            - value: '97'
              newvalue: vdsl
            - value: '98'
              newvalue: iso88025CRFPInt
            - value: '99'
              newvalue: myrinet
            - value: '100'
              newvalue: voiceEM
            - value: '101'
              newvalue: voiceFXO
            - value: '102'
              newvalue: voiceFXS
            - value: '103'
              newvalue: voiceEncap
            - value: '104'
              newvalue: voiceOverIp
            - value: '105'
              newvalue: atmDxi
            - value: '106'
              newvalue: atmFuni
            - value: '107'
              newvalue: atmIma
            - value: '108'
              newvalue: pppMultilinkBundle
            - value: '109'
              newvalue: ipOverCdlc
            - value: '110'
              newvalue: ipOverClaw
            - value: '111'
              newvalue: stackToStack
            - value: '112'
              newvalue: virtualIpAddress
            - value: '113'
              newvalue: mpc
            - value: '114'
              newvalue: ipOverAtm
            - value: '115'
              newvalue: iso88025Fiber
            - value: '116'
              newvalue: tdlc
            - value: '117'
              newvalue: gigabitEthernet
            - value: '118'
              newvalue: hdlc
            - value: '119'
              newvalue: lapf
            - value: '120'
              newvalue: v37
            - value: '121'
              newvalue: x25mlp
            - value: '122'
              newvalue: x25huntGroup
            - value: '123'
              newvalue: trasnpHdlc
            - value: '124'
              newvalue: interleave
            - value: '125'
              newvalue: fast
            - value: '126'
              newvalue: ip
            - value: '127'
              newvalue: docsCableMaclayer
            - value: '128'
              newvalue: docsCableDownstream
            - value: '129'
              newvalue: docsCableUpstream
            - value: '130'
              newvalue: a12MppSwitch
            - value: '131'
              newvalue: tunnel
            - value: '132'
              newvalue: coffee
            - value: '133'
              newvalue: ces
            - value: '134'
              newvalue: atmSubInterface
            - value: '135'
              newvalue: l2vlan
            - value: '136'
              newvalue: l3ipvlan
            - value: '137'
              newvalue: l3ipxvlan
            - value: '138'
              newvalue: digitalPowerline
            - value: '139'
              newvalue: mediaMailOverIp
            - value: '140'
              newvalue: dtm
            - value: '141'
              newvalue: dcn
            - value: '142'
              newvalue: ipForward
            - value: '143'
              newvalue: msdsl
            - value: '144'
              newvalue: ieee1394
            - value: '145'
              newvalue: if-gsn
            - value: '146'
              newvalue: dvbRccMacLayer
            - value: '147'
              newvalue: dvbRccDownstream
            - value: '148'
              newvalue: dvbRccUpstream
            - value: '149'
              newvalue: atmVirtual
            - value: '150'
              newvalue: mplsTunnel
            - value: '151'
              newvalue: srp
            - value: '152'
              newvalue: voiceOverAtm
            - value: '153'
              newvalue: voiceOverFrameRelay
            - value: '154'
              newvalue: idsl
            - value: '155'
              newvalue: compositeLink
            - value: '156'
              newvalue: ss7SigLink
            - value: '157'
              newvalue: propWirelessP2P
            - value: '158'
              newvalue: frForward
            - value: '159'
              newvalue: rfc1483
            - value: '160'
              newvalue: usb
            - value: '161'
              newvalue: ieee8023adLag
            - value: '162'
              newvalue: bgppolicyaccounting
            - value: '163'
              newvalue: frf16MfrBundle
            - value: '164'
              newvalue: h323Gatekeeper
            - value: '165'
              newvalue: h323Proxy
            - value: '166'
              newvalue: mpls
            - value: '167'
              newvalue: mfSigLink
            - value: '168'
              newvalue: hdsl2
            - value: '169'
              newvalue: shdsl
            - value: '170'
              newvalue: ds1FDL
            - value: '171'
              newvalue: pos
            - value: '172'
              newvalue: dvbAsiIn
            - value: '173'
              newvalue: dvbAsiOut
            - value: '174'
              newvalue: plc
            - value: '175'
              newvalue: nfas
            - value: '176'
              newvalue: tr008
            - value: '177'
              newvalue: gr303RDT
            - value: '178'
              newvalue: gr303IDT
            - value: '179'
              newvalue: isup
            - value: '180'
              newvalue: propDocsWirelessMaclayer
            - value: '181'
              newvalue: propDocsWirelessDownstream
            - value: '182'
              newvalue: propDocsWirelessUpstream
            - value: '183'
              newvalue: hiperlan2
            - value: '184'
              newvalue: propBWAp2Mp
            - value: '185'
              newvalue: sonetOverheadChannel
            - value: '186'
              newvalue: digitalWrapperOverheadChannel
            - value: '187'
              newvalue: aal2
            - value: '188'
              newvalue: radioMAC
            - value: '189'
              newvalue: atmRadio
            - value: '190'
              newvalue: imt
            - value: '191'
              newvalue: mvl
            - value: '192'
              newvalue: reachDSL
            - value: '193'
              newvalue: frDlciEndPt
            - value: '194'
              newvalue: atmVciEndPt
            - value: '195'
              newvalue: opticalChannel
            - value: '196'
              newvalue: opticalTransport
            - value: '197'
              newvalue: propAtm
            - value: '198'
              newvalue: voiceOverCable
            - value: '199'
              newvalue: infiniband
            - value: '200'
              newvalue: teLink
            - value: '201'
              newvalue: q2931
            - value: '202'
              newvalue: virtualTg
            - value: '203'
              newvalue: sipTg
            - value: '204'
              newvalue: sipSig
            - value: '205'
              newvalue: docsCableUpstreamChannel
            - value: '206'
              newvalue: econet
            - value: '207'
              newvalue: pon155
            - value: '208'
              newvalue: pon622
            - value: '209'
              newvalue: bridge
            - value: '210'
              newvalue: linegroup
            - value: '211'
              newvalue: voiceEMFGD
            - value: '212'
              newvalue: voiceFGDEANA
            - value: '213'
              newvalue: voiceDID
            - value: '214'
              newvalue: mpegTransport
            - value: '215'
              newvalue: sixToFour
            - value: '216'
              newvalue: gtp
            - value: '217'
              newvalue: pdnEtherLoop1
            - value: '218'
              newvalue: pdnEtherLoop2
            - value: '219'
              newvalue: opticalChannelGroup
            - value: '220'
              newvalue: homepna
            - value: '221'
              newvalue: gfp
            - value: '222'
              newvalue: ciscoISLvlan
            - value: '223'
              newvalue: actelisMetaLOOP
            - value: '224'
              newvalue: fcipLink
            - value: '225'
              newvalue: rpr
            - value: '226'
              newvalue: qam
            - value: '227'
              newvalue: lmp
            - value: '228'
              newvalue: cblVectaStar
            - value: '229'
              newvalue: docsCableMCmtsDownstream
            - value: '230'
              newvalue: adsl2
            - value: '231'
              newvalue: macSecControlledIF
            - value: '232'
              newvalue: macSecUncontrolledIF
            - value: '233'
              newvalue: aviciOpticalEther
            - value: '234'
              newvalue: atmbond
            - value: '235'
              newvalue: voiceFGDOS
            - value: '236'
              newvalue: mocaVersion1
            - value: '237'
              newvalue: ieee80216WMAN
            - value: '238'
              newvalue: adsl2plus
            - value: '239'
              newvalue: dvbRcsMacLayer
            - value: '240'
              newvalue: dvbTdm
            - value: '241'
              newvalue: dvbRcsTdma
            - value: '242'
              newvalue: x86Laps
            - value: '243'
              newvalue: wwanPP
            - value: '244'
              newvalue: wwanPP2
            - value: '245'
              newvalue: voiceEBS
            - value: '246'
              newvalue: ifPwType
            - value: '247'
              newvalue: ilan
            - value: '248'
              newvalue: pip
            - value: '249'
              newvalue: aluELP
            - value: '250'
              newvalue: gpon
            - value: '251'
              newvalue: vdsl2
            - value: '252'
              newvalue: capwapDot11Profile
            - value: '253'
              newvalue: capwapDot11Bss
            - value: '254'
              newvalue: capwapWtpVirtualRadio
            - value: '255'
              newvalue: bits
            - value: '256'
              newvalue: docsCableUpstreamRfPort
            - value: '257'
              newvalue: cableDownstreamRfPort
            - value: '258'
              newvalue: vmwareVirtualNic
            - value: '259'
              newvalue: ieee802154
            - value: '260'
              newvalue: otnOdu
            - value: '261'
              newvalue: otnOtu
            - value: '262'
              newvalue: ifVfiType
            - value: '263'
              newvalue: g9981
            - value: '264'
              newvalue: g9982
            - value: '265'
              newvalue: g9983
            - value: '266'
              newvalue: aluEpon
            - value: '267'
              newvalue: aluEponOnu
            - value: '268'
              newvalue: aluEponPhysicalUni
            - value: '269'
              newvalue: aluEponLogicalLink
            - value: '270'
              newvalue: aluGponOnu
            - value: '271'
              newvalue: aluGponPhysicalUni
            - value: '272'
              newvalue: vmwareNicTeam
            - value: '277'
              newvalue: docsOfdmDownstream
            - value: '278'
              newvalue: docsOfdmaUpstream
            - value: '279'
              newvalue: gfast
            - value: '280'
              newvalue: sdci
            - value: '281'
              newvalue: xboxWireless
            - value: '282'
              newvalue: fastdsl
            - value: '283'
              newvalue: docsCableScte55d1FwdOob
            - value: '284'
              newvalue: docsCableScte55d1RetOob
            - value: '285'
              newvalue: docsCableScte55d2DsOob
            - value: '286'
              newvalue: docsCableScte55d2UsOob
            - value: '287'
              newvalue: docsCableNdf
            - value: '288'
              newvalue: docsCableNdr
            - value: '289'
              newvalue: ptm
            - value: '290'
              newvalue: ghn
        - uuid: 8673d9a283674ca2bcd973f5fdff7258
          name: 'Service state'
          mappings:
            - value: '0'
              newvalue: Down
            - value: '1'
              newvalue: Up
        - uuid: 0fe93c05f4c94ce8943950210218f6d9
          name: zabbix.host.available
          mappings:
            - value: '0'
              newvalue: 'not available'
            - value: '1'
              newvalue: available
            - value: '2'
              newvalue: unknown
  triggers:
    - uuid: e3907a8b6aba4512a24a677ed31e4362
      expression: '(last(/Arista by SNMP/system.hw.uptime[hrSystemUptime.0])>0 and last(/Arista by SNMP/system.hw.uptime[hrSystemUptime.0])<10m) or (last(/Arista by SNMP/system.hw.uptime[hrSystemUptime.0])=0 and last(/Arista by SNMP/system.net.uptime[sysUpTime.0])<10m)'
      name: 'Arista: Host has been restarted'
      event_name: 'Arista: {HOST.NAME} has been restarted (uptime < 10m)'
      priority: WARNING
      description: 'Uptime is less than 10 minutes.'
      manual_close: 'YES'
      dependencies:
        - name: 'Arista: No SNMP data collection'
          expression: 'max(/Arista by SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0'
      tags:
        - tag: scope
          value: notice
    - uuid: 28a227bae78343c58edb44e6bdc18543
      expression: '(last(/Aruba CX 8300s by SNMP/system.hw.uptime[hrSystemUptime.0])>0 and last(/Aruba CX 8300s by SNMP/system.hw.uptime[hrSystemUptime.0])<10m) or (last(/Aruba CX 8300s by SNMP/system.hw.uptime[hrSystemUptime.0])=0 and last(/Aruba CX 8300s by SNMP/system.net.uptime[sysUpTime.0])<10m)'
      name: 'Aruba: Host has been restarted'
      event_name: 'Aruba: {HOST.NAME} has been restarted (uptime < 10m)'
      priority: WARNING
      description: 'Uptime is less than 10 minutes.'
      manual_close: 'YES'
      dependencies:
        - name: 'Aruba: No SNMP data collection'
          expression: 'max(/Aruba CX 8300s by SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0'
      tags:
        - tag: scope
          value: notice
    - uuid: 7b0bde98c6c54e67b0aa8b3339fe464d
      expression: 'max(/Oracle by ODBC/net.tcp.service[tcp,{$ORACLE.HOST},{$ORACLE.PORT}],#3)=0  and max(/Oracle by ODBC/proc.num[,,,"tnslsnr LISTENER"],#3)>0'
      name: 'Oracle: Port {$ORACLE.PORT} is unavailable'
      priority: DISASTER
      description: 'The TCP port of the Oracle Server service is currently unavailable.'
      tags:
        - tag: scope
          value: availability
    - uuid: 38471058988c46f4b81af9f77637914a
      expression: 'min(/Oracle by ODBC/oracle.processes_count,5m) * 100 / last(/Oracle by ODBC/oracle.processes_limit) > {$ORACLE.PROCESSES.MAX.WARN}'
      name: 'Oracle: Too many active processes'
      event_name: 'Oracle: Too many active processes (over {$ORACLE.PROCESSES.MAX.WARN}% for 5 min)'
      priority: WARNING
      description: 'Active processes are using more than `{$ORACLE.PROCESSES.MAX.WARN}`% of the available number of processes.'
      tags:
        - tag: scope
          value: capacity
    - uuid: 4a055da31f09489ea0f03e4582ee4333
      expression: 'min(/Oracle by ODBC/oracle.session_count,5m) * 100 / last(/Oracle by ODBC/oracle.session_limit) > {$ORACLE.SESSIONS.MAX.WARN}'
      name: 'Oracle: Too many active sessions'
      event_name: 'Oracle: Too many active sessions (over {$ORACLE.SESSIONS.MAX.WARN}% for 5 min)'
      priority: WARNING
      description: 'Active sessions are using more than `{$ORACLE.SESSIONS.MAX.WARN}`% of the available sessions.'
      tags:
        - tag: scope
          value: capacity
    - uuid: 5752d92063f84aaa818bc85b135cd4fd
      expression: 'min(/Oracle by ODBC/oracle.db_files_count,5m) * 100 / last(/Oracle by ODBC/oracle.db_files_limit) > {$ORACLE.DB.FILE.MAX.WARN}'
      name: 'Oracle: Too many database files'
      event_name: 'Oracle: Too many database files (over {$ORACLE.DB.FILE.MAX.WARN}% for 5 min)'
      priority: WARNING
      description: 'The number of datafiles is higher than `{$ORACLE.DB.FILE.MAX.WARN}`% of the available datafile limit.'
      tags:
        - tag: scope
          value: capacity
    - uuid: 476001f0f52a45f59942d73c643371c1
      expression: 'min(/Oracle by ODBC/oracle.total_pga_used,5m) * 100 / last(/Oracle by ODBC/oracle.pga_target) > {$ORACLE.PGA.USE.MAX.WARN}'
      name: 'Oracle: Total PGA inuse is too high'
      event_name: 'Oracle: Total PGA inuse is too high (over {$ORACLE.PGA.USE.MAX.WARN}% for 5 min)'
      priority: WARNING
      description: 'The total PGA currently consumed by work areas is more than `{$ORACLE.PGA.USE.MAX.WARN}`% of `PGA_AGGREGATE_TARGET`.'
      tags:
        - tag: scope
          value: capacity
    - uuid: 6c1708d53693435c87cd27f1568345c1
      expression: 'min(/TrueNAS CORE by SNMP/system.swap.pfree,5m)<{$SWAP.PFREE.MIN.WARN} and last(/TrueNAS CORE by SNMP/system.swap.total)>0'
      name: 'TrueNAS CORE: High swap space usage'
      event_name: 'TrueNAS CORE: High swap space usage (less than {$SWAP.PFREE.MIN.WARN}% free)'
      opdata: 'Free: {ITEM.LASTVALUE1}, total: {ITEM.LASTVALUE2}'
      priority: WARNING
      description: 'If there is no swap configured, this trigger is ignored.'
      dependencies:
        - name: 'TrueNAS CORE: High memory utilization'
          expression: 'min(/TrueNAS CORE by SNMP/vm.memory.util,5m)>{$MEMORY.UTIL.MAX}'
        - name: 'TrueNAS CORE: Lack of available memory'
          expression: 'min(/TrueNAS CORE by SNMP/vm.memory.available,5m)<{$MEMORY.AVAILABLE.MIN} and last(/TrueNAS CORE by SNMP/vm.memory.total)>0'
      tags:
        - tag: scope
          value: capacity
        - tag: scope
          value: performance
    - uuid: 6864f43129064a0bba5e659b514eb8d9
      expression: '(last(/TrueNAS CORE by SNMP/system.hw.uptime[hrSystemUptime.0])>0 and last(/TrueNAS CORE by SNMP/system.hw.uptime[hrSystemUptime.0])<10m) or (last(/TrueNAS CORE by SNMP/system.hw.uptime[hrSystemUptime.0])=0 and last(/TrueNAS CORE by SNMP/system.net.uptime[sysUpTime.0])<10m)'
      name: 'TrueNAS CORE: Host has been restarted'
      event_name: 'TrueNAS CORE: {HOST.NAME} has been restarted (uptime < 10m)'
      priority: WARNING
      description: 'Uptime is less than 10 minutes.'
      manual_close: 'YES'
      dependencies:
        - name: 'TrueNAS CORE: No SNMP data collection'
          expression: 'max(/TrueNAS CORE by SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0'
      tags:
        - tag: scope
          value: notice
    - uuid: 0a04cc4789a14f1090232fce196c0e4d
      expression: 'min(/TrueNAS CORE by SNMP/vm.memory.available,5m)<{$MEMORY.AVAILABLE.MIN} and last(/TrueNAS CORE by SNMP/vm.memory.total)>0'
      name: 'TrueNAS CORE: Lack of available memory'
      event_name: 'TrueNAS CORE: Lack of available memory (<{$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2})'
      opdata: 'Available: {ITEM.LASTVALUE1}, total: {ITEM.LASTVALUE2}'
      priority: AVERAGE
      description: 'The system is running out of memory.'
      tags:
        - tag: scope
          value: capacity
        - tag: scope
          value: performance
    - uuid: c923ea2cc04848de911ad9a41defaff6
      expression: |
        min(/TrueNAS CORE by SNMP/system.cpu.load.avg1,5m)/last(/TrueNAS CORE by SNMP/system.cpu.num)>{$LOAD_AVG_PER_CPU.MAX.WARN}
        and last(/TrueNAS CORE by SNMP/system.cpu.load.avg5)>0
        and last(/TrueNAS CORE by SNMP/system.cpu.load.avg15)>0
      name: 'TrueNAS CORE: Load average is too high'
      event_name: 'TrueNAS CORE: Load average is too high (per CPU load over {$LOAD_AVG_PER_CPU.MAX.WARN} for 5m)'
      opdata: 'Load averages(1m 5m 15m): ({ITEM.LASTVALUE1} {ITEM.LASTVALUE3} {ITEM.LASTVALUE4}), # of CPUs: {ITEM.LASTVALUE2}'
      priority: AVERAGE
      description: 'The load average per CPU is too high. The system may be slow to respond.'
      tags:
        - tag: scope
          value: performance
  graphs:
    - uuid: 9d75893b596e448e9fe0fb3a851b0ab2
      name: 'Arista: CPU utilization'
      ymin_type_1: FIXED
      ymax_type_1: FIXED
      graph_items:
        - drawtype: GRADIENT_LINE
          color: 199C0D
          item:
            host: 'Arista by SNMP'
            key: system.cpu.util
    - uuid: fd69ef33a56a4a53864205a41e944242
      name: 'Dell R720: CPU utilization'
      graph_items:
        - color: 199C0D
          item:
            host: 'DELL PowerEdge R720 by HTTP'
            key: dell.server.util.cpu
    - uuid: 901625ceb44e4891bfc5bff5fcb47cff
      name: 'Dell R720: IO utilization'
      graph_items:
        - color: 199C0D
          item:
            host: 'DELL PowerEdge R720 by HTTP'
            key: dell.server.util.io
    - uuid: a3b920c8d78b4259ae3c83df84410000
      name: 'Dell R720: Memory utilization'
      graph_items:
        - color: 199C0D
          item:
            host: 'DELL PowerEdge R720 by HTTP'
            key: dell.server.util.mem
    - uuid: 670ede1de7c349a299881c3d79f891ba
      name: 'Dell R720: SYS utilization'
      graph_items:
        - color: 199C0D
          item:
            host: 'DELL PowerEdge R720 by HTTP'
            key: dell.server.util.sys
    - uuid: e4b1e16f35f5445dad9d49876c8def60
      name: 'Dell R820: CPU utilization'
      graph_items:
        - color: 199C0D
          item:
            host: 'DELL PowerEdge R820 by HTTP'
            key: dell.server.util.cpu
    - uuid: 81516d7d799044fb83b166ecc7c280f8
      name: 'Dell R820: IO utilization'
      graph_items:
        - color: 199C0D
          item:
            host: 'DELL PowerEdge R820 by HTTP'
            key: dell.server.util.io
    - uuid: c8efb88c2b654975bfba21c5a292ee75
      name: 'Dell R820: Memory utilization'
      graph_items:
        - color: 199C0D
          item:
            host: 'DELL PowerEdge R820 by HTTP'
            key: dell.server.util.mem
    - uuid: 05822555cf8e4f33a559d1973e9776bb
      name: 'Dell R820: SYS utilization'
      graph_items:
        - color: 199C0D
          item:
            host: 'DELL PowerEdge R820 by HTTP'
            key: dell.server.util.sys
    - uuid: 79e292a64d9247c486812db7a62c0eda
      name: 'HPE Primera: Capacity'
      graph_items:
        - color: 199C0D
          item:
            host: 'HPE Primera by HTTP'
            key: hpe.primera.system.capacity.allocated
        - sortorder: '1'
          color: F63100
          item:
            host: 'HPE Primera by HTTP'
            key: hpe.primera.system.capacity.failed
        - sortorder: '2'
          color: 00611C
          item:
            host: 'HPE Primera by HTTP'
            key: hpe.primera.system.capacity.free
        - sortorder: '3'
          color: F7941D
          item:
            host: 'HPE Primera by HTTP'
            key: hpe.primera.system.capacity.total
    - uuid: cf491b94c7674160ba36e2105026c834
      name: 'Oracle: Cache Hit Ratios'
      graph_items:
        - color: 199C0D
          item:
            host: 'Oracle by ODBC'
            key: oracle.buffer_cache_hit_ratio
        - sortorder: '1'
          color: F63100
          item:
            host: 'Oracle by ODBC'
            key: oracle.library_cache_hit_ratio
    - uuid: 72ad9e81bb5147e6827499143d256068
      name: 'Oracle: Datafiles'
      graph_items:
        - color: 199C0D
          item:
            host: 'Oracle by ODBC'
            key: oracle.db_files_count
        - sortorder: '1'
          color: F63100
          item:
            host: 'Oracle by ODBC'
            key: oracle.db_files_limit
    - uuid: dba3f3b856114d50b826a15cacd1d896
      name: 'Oracle: PGA'
      graph_items:
        - color: 199C0D
          item:
            host: 'Oracle by ODBC'
            key: oracle.total_pga_used
        - sortorder: '1'
          color: F63100
          item:
            host: 'Oracle by ODBC'
            key: oracle.pga_target
        - sortorder: '2'
          color: 00611C
          item:
            host: 'Oracle by ODBC'
            key: oracle.total_pga_allocated
    - uuid: 3d1c6ffe69f34695b30d132d99d41dbb
      name: 'Oracle: Physical Read\Write Rate'
      graph_items:
        - color: 199C0D
          item:
            host: 'Oracle by ODBC'
            key: oracle.physical_writes_rate
        - sortorder: '1'
          color: F63100
          item:
            host: 'Oracle by ODBC'
            key: oracle.physical_reads_rate
    - uuid: 5002e9a128524991b16dbea89e0f4b07
      name: 'Oracle: Physical Read\Write Rate, Bytes'
      graph_items:
        - color: 199C0D
          item:
            host: 'Oracle by ODBC'
            key: oracle.physical_write_bytes_rate
        - sortorder: '1'
          color: F63100
          item:
            host: 'Oracle by ODBC'
            key: oracle.physical_read_bytes_rate
    - uuid: 044e0b3a485547b7b41939a78be80784
      name: 'Oracle: Processes'
      graph_items:
        - color: 199C0D
          item:
            host: 'Oracle by ODBC'
            key: oracle.processes_count
        - sortorder: '1'
          color: F63100
          item:
            host: 'Oracle by ODBC'
            key: oracle.processes_limit
    - uuid: eef29b959d334e4b9ba3a4d83a571f1f
      name: 'Oracle: Sessions'
      graph_items:
        - color: 199C0D
          item:
            host: 'Oracle by ODBC'
            key: oracle.session_count
        - sortorder: '1'
          color: F63100
          item:
            host: 'Oracle by ODBC'
            key: oracle.session_active_background
        - sortorder: '2'
          color: 00611C
          item:
            host: 'Oracle by ODBC'
            key: oracle.session_inactive_user
        - sortorder: '3'
          color: F7941D
          item:
            host: 'Oracle by ODBC'
            key: oracle.session_active_user
        - sortorder: '4'
          color: FC6EA3
          item:
            host: 'Oracle by ODBC'
            key: oracle.session_limit
    - uuid: dd6a3c604ba446e793526564527c5c2f
      name: 'Oracle: SGA Memory Usage'
      type: STACKED
      graph_items:
        - color: 199C0D
          item:
            host: 'Oracle by ODBC'
            key: oracle.sga_java_pool
        - sortorder: '1'
          color: F63100
          item:
            host: 'Oracle by ODBC'
            key: oracle.sga_large_pool
        - sortorder: '2'
          color: 00611C
          item:
            host: 'Oracle by ODBC'
            key: oracle.sga_shared_pool
        - sortorder: '3'
          color: F7941D
          item:
            host: 'Oracle by ODBC'
            key: oracle.sga_log_buffer
        - sortorder: '4'
          color: FC6EA3
          item:
            host: 'Oracle by ODBC'
            key: oracle.sga_fixed
        - sortorder: '5'
          color: 6C59DC
          item:
            host: 'Oracle by ODBC'
            key: oracle.sga_buffer_cache
    - uuid: 48e400ae300642d2ac1b3f3e9d47acc0
      name: 'Oracle: Sort Operations'
      graph_items:
        - color: 199C0D
          item:
            host: 'Oracle by ODBC'
            key: oracle.memory_sorts_ratio
        - sortorder: '1'
          color: F63100
          item:
            host: 'Oracle by ODBC'
            key: oracle.disk_sorts
    - uuid: 621f703356cb4522bef8f1c89732c9cb
      name: 'TrueNAS CORE: ARC hit ratio'
      type: STACKED
      ymin_type_1: FIXED
      graph_items:
        - color: 199C0D
          item:
            host: 'TrueNAS CORE by SNMP'
            key: truenas.zfs.arc.hit.ratio
        - sortorder: '1'
          color: F63100
          item:
            host: 'TrueNAS CORE by SNMP'
            key: truenas.zfs.arc.miss.ratio
    - uuid: 977c98430b1241988206b56b3fc40091
      name: 'TrueNAS CORE: CPU jumps'
      graph_items:
        - color: 199C0D
          item:
            host: 'TrueNAS CORE by SNMP'
            key: system.cpu.switches
        - sortorder: '1'
          color: F63100
          item:
            host: 'TrueNAS CORE by SNMP'
            key: system.cpu.intr
    - uuid: 5c95f63eaaf049cab4884b2785c5d382
      name: 'TrueNAS CORE: Memory usage'
      ymin_type_1: FIXED
      graph_items:
        - drawtype: BOLD_LINE
          color: 199C0D
          item:
            host: 'TrueNAS CORE by SNMP'
            key: vm.memory.total
        - sortorder: '1'
          drawtype: GRADIENT_LINE
          color: F63100
          item:
            host: 'TrueNAS CORE by SNMP'
            key: vm.memory.available
    - uuid: a36f52864942457894638adef660a775
      name: 'TrueNAS CORE: Memory utilization'
      ymin_type_1: FIXED
      ymax_type_1: FIXED
      graph_items:
        - drawtype: GRADIENT_LINE
          color: 199C0D
          item:
            host: 'TrueNAS CORE by SNMP'
            key: vm.memory.util
    - uuid: bd67954025d145c8a0eb2f21d53a52f5
      name: 'TrueNAS CORE: Swap usage'
      graph_items:
        - color: 199C0D
          item:
            host: 'TrueNAS CORE by SNMP'
            key: system.swap.free
        - sortorder: '1'
          color: F63100
          item:
            host: 'TrueNAS CORE by SNMP'
            key: system.swap.total
    - uuid: f7a0b78f1f814e2b94cec941168eafaa
      name: 'TrueNAS CORE: System load'
      ymin_type_1: FIXED
      graph_items:
        - color: 199C0D
          item:
            host: 'TrueNAS CORE by SNMP'
            key: system.cpu.load.avg1
        - sortorder: '1'
          color: F63100
          item:
            host: 'TrueNAS CORE by SNMP'
            key: system.cpu.load.avg5
        - sortorder: '2'
          color: 00611C
          item:
            host: 'TrueNAS CORE by SNMP'
            key: system.cpu.load.avg15
        - sortorder: '3'
          color: F7941D
          yaxisside: RIGHT
          item:
            host: 'TrueNAS CORE by SNMP'
            key: system.cpu.num
