zabbix_export:
  version: '8.0'
  template_groups:
    - uuid: a571c0d144b14fd4a87a9d9b2aa9fcd6
      name: Templates/Applications
    - uuid: 748ad4d098d447d492bb935c907f652f
      name: Templates/Databases
    - uuid: 36bff6c29af64692839d077febfc7079
      name: 'Templates/Network devices'
    - uuid: 846977d1dfed4968bc5f8bdb363285bc
      name: 'Templates/Operating systems'
    - uuid: 7c2cb727f85b492d88cd56e17127c64d
      name: Templates/SAN
  templates:
    - uuid: 47d87c39c121429b98a18f641aa443ea
      template: 'GridGain by JMX'
      name: 'GridGain by JMX'
      description: |
        The template to monitor GridGain In-Memory Computing Platform by Zabbix that work without any external scripts.
          It works with both standalone and cluster instances.
          The metrics are discoverable and collected by JMX.
          Current JMX tree hierarchy contains classloader by default. Add the following jvm option `-DIGNITE_MBEAN_APPEND_CLASS_LOADER_ID=false`to will exclude one level with Classloader name.
          You can set {$GRIDGAIN.USER} and {$GRIDGAIN.PASSWORD} macros in the template for using on the host level.
        
        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
        
        Official JMX Template for GridGain In-Memory Computing Platform.
        This template is based on the original template developed by Igor Akkuratov, Senior Engineer at GridGain Systems and GridGain In-Memory Computing Platform Contributor.
        
        ## Setup
        
        This template works with standalone and cluster instances. Metrics are collected by JMX. All metrics are discoverable.
        
        1. Enable and configure JMX access to GridGain In-Memory Computing Platform. See documentation for [instructions](https://docs.oracle.com/javase/8/docs/technotes/guides/management/agent.html). Current JMX tree hierarchy contains classloader by default. Add the following jvm option `-DIGNITE_MBEAN_APPEND_CLASS_LOADER_ID=false`to will exclude one level with Classloader name. You can configure Cache and Data Region metrics which you want using [official guide](https://www.gridgain.com/docs/latest/administrators-guide/monitoring-metrics/configuring-metrics).
        2. Set the user name and password in host wizard configuration fields `Username` and `Password`.
      vendor:
        name: Zabbix
        version: 8.0-1
      groups:
        - name: Templates/Databases
      discovery_rules:
        - uuid: f8d8a6cd41da496ea6d61793e0ab0d00
          name: 'Data region metrics'
          type: JMX
          key: 'jmx.discovery[beans,"org.apache:group=DataRegionMetrics,*"]'
          delay: 10m
          username: '{$GRIDGAIN.USER}'
          password: '{$GRIDGAIN.PASSWORD}'
          filter:
            evaltype: AND
            conditions:
              - macro: '{#JMXNAME}'
                value: '{$GRIDGAIN.LLD.FILTER.DATA.REGION.MATCHES}'
              - macro: '{#JMXNAME}'
                value: '{$GRIDGAIN.LLD.FILTER.DATA.REGION.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
          item_prototypes:
            - uuid: c09b0ea002db4c3d9104a7f51b9921cc
              name: 'Data region {#JMXNAME}: Allocation, rate'
              type: JMX
              key: 'jmx["{#JMXOBJ}",AllocationRate]'
              value_type: FLOAT
              units: '!pps'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Allocation rate (pages per second) averaged across rateTimeInternal.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: data_region
            - uuid: 3425f6775e9e4a979d876becddec46d2
              name: 'Data region {#JMXNAME}: Checkpoint buffer size'
              type: JMX
              key: 'jmx["{#JMXOBJ}",CheckpointBufferSize]'
              value_type: FLOAT
              units: B
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Total size in bytes for checkpoint buffer.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: data_region
            - uuid: 6e44ce63725a46b486175e34697776ee
              name: 'Data region {#JMXNAME}: Dirty pages'
              type: JMX
              key: 'jmx["{#JMXOBJ}",DirtyPages]'
              value_type: FLOAT
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Number of pages in memory not yet synchronized with persistent storage.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: data_region
            - uuid: 5396db6809ca44c480f123e1e63430b4
              name: 'Data region {#JMXNAME}: Eviction, rate'
              type: JMX
              key: 'jmx["{#JMXOBJ}",EvictionRate]'
              value_type: FLOAT
              units: '!pps'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Eviction rate (pages per second).'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: data_region
              trigger_prototypes:
                - uuid: 7e2fc41d632240b3869080d41ef5e639
                  expression: 'min(/GridGain by JMX/jmx["{#JMXOBJ}",EvictionRate],5m)>0'
                  name: 'GridGain: Data region {#JMXNAME}: Node started to evict pages'
                  priority: INFO
                  description: 'You store more data than region can accommodate. Data started to move to disk it can make requests work slower. Acknowledge to close the problem manually.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: performance
            - uuid: 9f7d683cf3ca47c681eef43e4dd9a471
              name: 'Data region {#JMXNAME}: Size, max'
              type: JMX
              key: 'jmx["{#JMXOBJ}",MaxSize]'
              value_type: FLOAT
              units: B
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Maximum memory region size defined by its data region.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: data_region
            - uuid: 16170e6c8007492984c367892a7393aa
              name: 'Data region {#JMXNAME}: Offheap size'
              type: JMX
              key: 'jmx["{#JMXOBJ}",OffHeapSize]'
              value_type: FLOAT
              units: B
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Offheap size in bytes.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: data_region
            - uuid: 982c738bdd4f4802917d3f5d63cc489f
              name: 'Data region {#JMXNAME}: Offheap used size'
              type: JMX
              key: 'jmx["{#JMXOBJ}",OffheapUsedSize]'
              value_type: FLOAT
              units: B
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Total used offheap size in bytes.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: data_region
            - uuid: 03c923d00e5a486faece1f37b3a2863d
              name: 'Data region {#JMXNAME}: Pages fill factor'
              type: JMX
              key: 'jmx["{#JMXOBJ}",PagesFillFactor]'
              value_type: FLOAT
              units: '%'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'The percentage of the used space.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: data_region
            - uuid: 9094f5992c514be6abaee490b211774e
              name: 'Data region {#JMXNAME}: Pages replace, rate'
              type: JMX
              key: 'jmx["{#JMXOBJ}",PagesReplaceRate]'
              value_type: FLOAT
              units: '!pps'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Rate at which pages in memory are replaced with pages from persistent storage (pages per second).'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: data_region
              trigger_prototypes:
                - uuid: d2b012fdfe634526bb583d4ad18abe4d
                  expression: 'min(/GridGain by JMX/jmx["{#JMXOBJ}",PagesReplaceRate],5m)>0'
                  name: 'GridGain: Data region {#JMXNAME}: Pages replace rate more than 0'
                  priority: WARNING
                  description: 'There is more data than DataRegionMaxSize. Cluster started to replace pages in memory. Page replacement can slow down operations.'
                  tags:
                    - tag: scope
                      value: performance
            - uuid: 390107f411e24581a61043000b42152f
              name: 'Data region {#JMXNAME}: Allocated, bytes'
              type: JMX
              key: 'jmx["{#JMXOBJ}",TotalAllocatedSize]'
              value_type: FLOAT
              units: B
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Total size of memory allocated in bytes.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: data_region
            - uuid: 8e0e7a96f0a6424b88829fab78cce2ba
              name: 'Data region {#JMXNAME}: Used checkpoint buffer size'
              type: JMX
              key: 'jmx["{#JMXOBJ}",UsedCheckpointBufferSize]'
              value_type: FLOAT
              units: B
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Used checkpoint buffer size in bytes.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: data_region
          trigger_prototypes:
            - uuid: 9a7d7c745faa4f1fa4ffd1ca8c1ac602
              expression: 'min(/GridGain by JMX/jmx["{#JMXOBJ}",UsedCheckpointBufferSize],5m)/last(/GridGain by JMX/jmx["{#JMXOBJ}",CheckpointBufferSize])*100>{$GRIDGAIN.CHECKPOINT.PUSED.MAX.HIGH}'
              name: 'GridGain: Data region {#JMXNAME}: Checkpoint buffer utilization is too high'
              event_name: 'GridGain: Data region {#JMXNAME}: Checkpoint buffer utilization is too high (over {$GRIDGAIN.CHECKPOINT.PUSED.MAX.HIGH} in 5m)'
              priority: HIGH
              description: 'Checkpoint buffer utilization is high. Threads will be throttled to avoid buffer overflow. It can be caused by high disk utilization.'
              tags:
                - tag: scope
                  value: performance
            - uuid: 02ce52a2067147238969a4fd24f85bdc
              expression: 'min(/GridGain by JMX/jmx["{#JMXOBJ}",UsedCheckpointBufferSize],5m)/last(/GridGain by JMX/jmx["{#JMXOBJ}",CheckpointBufferSize])*100>{$GRIDGAIN.CHECKPOINT.PUSED.MAX.WARN}'
              name: 'GridGain: Data region {#JMXNAME}: Checkpoint buffer utilization is too high'
              event_name: 'GridGain: Data region {#JMXNAME}: Checkpoint buffer utilization is too high (over {$GRIDGAIN.CHECKPOINT.PUSED.MAX.WARN} in 5m)'
              priority: WARNING
              description: 'Checkpoint buffer utilization is high. Threads will be throttled to avoid buffer overflow. It can be caused by high disk utilization.'
              dependencies:
                - name: 'GridGain: Data region {#JMXNAME}: Checkpoint buffer utilization is too high'
                  expression: 'min(/GridGain by JMX/jmx["{#JMXOBJ}",UsedCheckpointBufferSize],5m)/last(/GridGain by JMX/jmx["{#JMXOBJ}",CheckpointBufferSize])*100>{$GRIDGAIN.CHECKPOINT.PUSED.MAX.HIGH}'
              tags:
                - tag: scope
                  value: performance
            - uuid: 92c2772aa8d7425e8bee5d760ba5b607
              expression: 'min(/GridGain by JMX/jmx["{#JMXOBJ}",OffheapUsedSize],5m)/last(/GridGain by JMX/jmx["{#JMXOBJ}",OffHeapSize])*100>{$GRIDGAIN.DATA.REGION.PUSED.MAX.HIGH}'
              name: 'GridGain: Data region {#JMXNAME}: Data region utilization is too high'
              event_name: 'GridGain: Data region {#JMXNAME}: Data region utilization is too high (over {$GRIDGAIN.DATA.REGION.PUSED.MAX.HIGH} in 5m)'
              priority: HIGH
              description: 'Data region utilization is high. Increase data region size or delete any data.'
              tags:
                - tag: scope
                  value: performance
            - uuid: 3694e6d813b04b51a77c842de617503c
              expression: 'min(/GridGain by JMX/jmx["{#JMXOBJ}",OffheapUsedSize],5m)/last(/GridGain by JMX/jmx["{#JMXOBJ}",OffHeapSize])*100>{$GRIDGAIN.DATA.REGION.PUSED.MAX.WARN}'
              name: 'GridGain: Data region {#JMXNAME}: Data region utilization is too high'
              event_name: 'GridGain: Data region {#JMXNAME}: Data region utilization is too high (over {$GRIDGAIN.DATA.REGION.PUSED.MAX.WARN} in 5m)'
              priority: WARNING
              description: 'Data region utilization is high. Increase data region size or delete any data.'
              dependencies:
                - name: 'GridGain: Data region {#JMXNAME}: Data region utilization is too high'
                  expression: 'min(/GridGain by JMX/jmx["{#JMXOBJ}",OffheapUsedSize],5m)/last(/GridGain by JMX/jmx["{#JMXOBJ}",OffHeapSize])*100>{$GRIDGAIN.DATA.REGION.PUSED.MAX.HIGH}'
              tags:
                - tag: scope
                  value: performance
          graph_prototypes:
            - uuid: f9410067b582451aa0b2675391504a65
              name: 'Data region {#JMXNAME}: Checkpoint buffer utilization'
              graph_items:
                - drawtype: BOLD_LINE
                  color: 199C0D
                  item:
                    host: 'GridGain by JMX'
                    key: 'jmx["{#JMXOBJ}",CheckpointBufferSize]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'GridGain by JMX'
                    key: 'jmx["{#JMXOBJ}",UsedCheckpointBufferSize]'
            - uuid: 6f2ffd3ba45c4803864d049e7bfbbf18
              name: 'Data region {#JMXNAME}: DataRegion utilization'
              graph_items:
                - drawtype: BOLD_LINE
                  color: 199C0D
                  item:
                    host: 'GridGain by JMX'
                    key: 'jmx["{#JMXOBJ}",OffHeapSize]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'GridGain by JMX'
                    key: 'jmx["{#JMXOBJ}",OffheapUsedSize]'
          jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  var data = JSON.parse(value);
                  for (var item, i = 0; item = data.data[i++];) {
                  	if (!('{#JMXIGNITEINSTANCENAME}' in item)) {
                  		Object.assign(item, {
                  			'{#JMXIGNITEINSTANCENAME}': 'null'
                  		});
                  	}
                  
                  }
                  
                  return JSON.stringify(data)
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 3h
        - uuid: e7ad3e966ed94b91a88d28b785862b2f
          name: 'Local node metrics'
          type: JMX
          key: 'jmx.discovery[beans,"org.apache:group=Kernal,name=ClusterLocalNodeMetricsMXBeanImpl,*"]'
          delay: 30m
          username: '{$GRIDGAIN.USER}'
          password: '{$GRIDGAIN.PASSWORD}'
          item_prototypes:
            - uuid: f3c7461902934de8a220513a33ad8771
              name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Jobs active, current'
              type: JMX
              key: 'jmx["{#JMXOBJ}",CurrentActiveJobs]'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Number of currently active jobs concurrently executing on the node.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: job
                - tag: component
                  value: node
            - uuid: c254bc19bccb44de821c51b0882b78b4
              name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Jobs cancelled, current'
              type: JMX
              key: 'jmx["{#JMXOBJ}",CurrentCancelledJobs]'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Number of cancelled jobs that are still running.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: job
                - tag: component
                  value: node
            - uuid: 63916bbee7604c3e9610f5989bc5bb7a
              name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: PME duration, current'
              type: JMX
              key: 'jmx["{#JMXOBJ}",CurrentPmeDuration]'
              units: ms
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Current PME duration in milliseconds.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: node
              trigger_prototypes:
                - uuid: a2672171fa374810b95b72f6014f3998
                  expression: 'min(/GridGain by JMX/jmx["{#JMXOBJ}",CurrentPmeDuration],5m) > {$GRIDGAIN.PME.DURATION.MAX.HIGH}'
                  name: 'GridGain: GridGain [{#JMXIGNITEINSTANCENAME}]: PME duration is too long'
                  event_name: 'GridGain: GridGain [{#JMXIGNITEINSTANCENAME}]: PME duration is too long (over {$GRIDGAIN.PME.DURATION.MAX.HIGH} for 5 min)'
                  priority: HIGH
                  description: 'PME duration is over {$GRIDGAIN.PME.DURATION.MAX.HIGH}ms. Looks like PME is hung.'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: f21e1cee28354fcd945d58955831641b
                  expression: 'min(/GridGain by JMX/jmx["{#JMXOBJ}",CurrentPmeDuration],5m) > {$GRIDGAIN.PME.DURATION.MAX.WARN}'
                  name: 'GridGain: GridGain [{#JMXIGNITEINSTANCENAME}]: PME duration is too long'
                  event_name: 'GridGain: GridGain [{#JMXIGNITEINSTANCENAME}]: PME duration is too long (over {$GRIDGAIN.PME.DURATION.MAX.WARN} for 5 min)'
                  priority: WARNING
                  description: 'PME duration is over {$GRIDGAIN.PME.DURATION.MAX.WARN}ms.'
                  dependencies:
                    - name: 'GridGain: GridGain [{#JMXIGNITEINSTANCENAME}]: PME duration is too long'
                      expression: 'min(/GridGain by JMX/jmx["{#JMXOBJ}",CurrentPmeDuration],5m) > {$GRIDGAIN.PME.DURATION.MAX.HIGH}'
                  tags:
                    - tag: scope
                      value: performance
            - uuid: 790e8c300f7c4c82b640fb6025bb9eef
              name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Jobs rejected, current'
              type: JMX
              key: 'jmx["{#JMXOBJ}",CurrentRejectedJobs]'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Number of jobs rejected after more recent collision resolution operation.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: job
                - tag: component
                  value: node
            - uuid: a5c1ece74c914620b9ce70c00c7d5377
              name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Threads count, current'
              type: JMX
              key: 'jmx["{#JMXOBJ}",CurrentThreadCount]'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Current number of live threads.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: node
                - tag: component
                  value: threads
              trigger_prototypes:
                - uuid: 124c9738a384481fb39f5e8078cca0e4
                  expression: 'min(/GridGain by JMX/jmx["{#JMXOBJ}",CurrentThreadCount],15m) > {$GRIDGAIN.THREADS.COUNT.MAX.WARN}'
                  name: 'GridGain: GridGain [{#JMXIGNITEINSTANCENAME}]: Number of running threads is too high'
                  event_name: 'GridGain: GridGain [{#JMXIGNITEINSTANCENAME}]: Number of running threads is too high (over {$GRIDGAIN.THREADS.COUNT.MAX.WARN} for 15 min)'
                  priority: WARNING
                  description: 'Number of running threads is over {$GRIDGAIN.THREADS.COUNT.MAX.WARN}.'
                  dependencies:
                    - name: 'GridGain: GridGain [{#JMXIGNITEINSTANCENAME}]: PME duration is too long'
                      expression: 'min(/GridGain by JMX/jmx["{#JMXOBJ}",CurrentPmeDuration],5m) > {$GRIDGAIN.PME.DURATION.MAX.HIGH}'
                  tags:
                    - tag: scope
                      value: performance
            - uuid: df386b29e8f74ec9a8f1825cb3094c0e
              name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Jobs waiting, current'
              type: JMX
              key: 'jmx["{#JMXOBJ}",CurrentWaitingJobs]'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Number of queued jobs currently waiting to be executed.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: job
                - tag: component
                  value: node
              trigger_prototypes:
                - uuid: 71d259fbdcd74888a4bedc646fc4bc54
                  expression: 'min(/GridGain by JMX/jmx["{#JMXOBJ}",CurrentWaitingJobs],15m) > {$GRIDGAIN.JOBS.QUEUE.MAX.WARN}'
                  name: 'GridGain: GridGain [{#JMXIGNITEINSTANCENAME}]: Number of queued jobs is too high'
                  event_name: 'GridGain: GridGain [{#JMXIGNITEINSTANCENAME}]: Number of queued jobs is too high (over {$GRIDGAIN.JOBS.QUEUE.MAX.WARN} for 15 min)'
                  priority: WARNING
                  description: 'Number of queued jobs is over {$GRIDGAIN.JOBS.QUEUE.MAX.WARN}.'
                  tags:
                    - tag: scope
                      value: performance
            - uuid: ec0c25c202ff4b1ea47422b51c24d3b4
              name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Heap memory used'
              type: JMX
              key: 'jmx["{#JMXOBJ}",HeapMemoryUsed]'
              units: B
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Current heap size that is used for object allocation.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: memory
                - tag: component
                  value: node
            - uuid: a698da07a1794c479db9948a5ffb4123
              name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Jobs cancelled, rate'
              type: JMX
              key: 'jmx["{#JMXOBJ}",TotalCancelledJobs]'
              value_type: FLOAT
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Total number of jobs cancelled by the node per second.'
              preprocessing:
                - type: CHANGE_PER_SECOND
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: job
                - tag: component
                  value: node
            - uuid: 5a60a71ecd2d40af8ca2ca81712c287e
              name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Jobs executed, rate'
              type: JMX
              key: 'jmx["{#JMXOBJ}",TotalExecutedJobs]'
              value_type: FLOAT
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Total number of jobs handled by the node per second.'
              preprocessing:
                - type: CHANGE_PER_SECOND
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: job
                - tag: component
                  value: node
            - uuid: 7673741944094af9a6bc05bd630fd055
              name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Jobs rejects, rate'
              type: JMX
              key: 'jmx["{#JMXOBJ}",TotalRejectedJobs]'
              value_type: FLOAT
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Total number of jobs this node rejects during collision resolution operations since node startup per second.'
              preprocessing:
                - type: CHANGE_PER_SECOND
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: job
                - tag: component
                  value: node
          graph_prototypes:
            - uuid: ca84e5c7fc76473392a30a3073e9cb25
              name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Jobs current state'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'GridGain by JMX'
                    key: 'jmx["{#JMXOBJ}",CurrentActiveJobs]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'GridGain by JMX'
                    key: 'jmx["{#JMXOBJ}",CurrentWaitingJobs]'
                - sortorder: '2'
                  color: 00611C
                  item:
                    host: 'GridGain by JMX'
                    key: 'jmx["{#JMXOBJ}",CurrentRejectedJobs]'
                - sortorder: '3'
                  color: F7941D
                  item:
                    host: 'GridGain by JMX'
                    key: 'jmx["{#JMXOBJ}",CurrentCancelledJobs]'
            - uuid: 93e01a53b9054a83a6461e3526f63ee3
              name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Jobs rate'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'GridGain by JMX'
                    key: 'jmx["{#JMXOBJ}",TotalCancelledJobs]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'GridGain by JMX'
                    key: 'jmx["{#JMXOBJ}",TotalRejectedJobs]'
                - sortorder: '2'
                  color: 00611C
                  item:
                    host: 'GridGain by JMX'
                    key: 'jmx["{#JMXOBJ}",TotalExecutedJobs]'
          jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  var data = JSON.parse(value);
                  for (var item, i = 0; item = data.data[i++];) {
                  	if (!('{#JMXIGNITEINSTANCENAME}' in item)) {
                  		Object.assign(item, {
                  			'{#JMXIGNITEINSTANCENAME}': 'null'
                  		});
                  	}
                  
                  }
                  
                  return JSON.stringify(data)
        - uuid: 5b7b9e010a274bb5a52784143dd57628
          name: 'Cluster metrics'
          type: JMX
          key: 'jmx.discovery[beans,"org.apache:group=Kernal,name=ClusterMetricsMXBeanImpl,*"]'
          delay: 30m
          username: '{$GRIDGAIN.USER}'
          password: '{$GRIDGAIN.PASSWORD}'
          item_prototypes:
            - uuid: a7eb47fd5db24c198774beacf52fa965
              name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Nodes, Active baseline'
              type: JMX
              key: 'jmx["{#JMXOBJ}",ActiveBaselineNodes]'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'The number of nodes that are currently active in the baseline topology.'
              preprocessing:
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3h
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: node
            - uuid: 16ca4ca8efa04874902a619bce1f0071
              name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Nodes, Baseline'
              type: JMX
              key: 'jmx["{#JMXOBJ}",TotalBaselineNodes]'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Total baseline nodes that are registered in the baseline topology.'
              preprocessing:
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3h
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: node
            - uuid: cf66620eeb6b4c9d88c2bd69ed05685a
              name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Nodes, Client'
              type: JMX
              key: 'jmx["{#JMXOBJ}",TotalClientNodes]'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'The number of client nodes in the cluster.'
              preprocessing:
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3h
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: node
            - uuid: d74b4324fb5a446a92e6fcf89162eff5
              name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Nodes, total'
              type: JMX
              key: 'jmx["{#JMXOBJ}",TotalNodes]'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Total number of nodes.'
              preprocessing:
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3h
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: node
            - uuid: b64a4ce1266b4806a554967d2fd24fa5
              name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Nodes, Server'
              type: JMX
              key: 'jmx["{#JMXOBJ}",TotalServerNodes]'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'The number of server nodes in the cluster.'
              preprocessing:
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3h
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: node
              trigger_prototypes:
                - uuid: bf1fbe1ea3754da59bd8a510fbcc6f54
                  expression: 'change(/GridGain by JMX/jmx["{#JMXOBJ}",TotalServerNodes])>0'
                  name: 'GridGain: GridGain [{#JMXIGNITEINSTANCENAME}]: Server node added to the topology'
                  priority: INFO
                  description: 'One or more server node added to the topology. Acknowledge to close the problem manually.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: capacity
                - uuid: db4cd7173ead4e878b79d55067d81300
                  expression: 'change(/GridGain by JMX/jmx["{#JMXOBJ}",TotalServerNodes])<0'
                  name: 'GridGain: GridGain [{#JMXIGNITEINSTANCENAME}]: Server node left the topology'
                  priority: WARNING
                  description: 'One or more server node left the topology. Acknowledge to close the problem manually.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: capacity
          trigger_prototypes:
            - uuid: ea93cb34b6434f2e94095c28087fc18e
              expression: 'last(/GridGain by JMX/jmx["{#JMXOBJ}",TotalServerNodes])>last(/GridGain by JMX/jmx["{#JMXOBJ}",TotalBaselineNodes])'
              name: 'GridGain: GridGain [{#JMXIGNITEINSTANCENAME}]: There are nodes is not in topology'
              priority: INFO
              description: 'One or more server node left the topology. Acknowledge to close the problem manually.'
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: capacity
          jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  var data = JSON.parse(value);
                  for (var item, i = 0; item = data.data[i++];) {
                  	if (!('{#JMXIGNITEINSTANCENAME}' in item)) {
                  		Object.assign(item, {
                  			'{#JMXIGNITEINSTANCENAME}': 'null'
                  		});
                  	}
                  
                  }
                  
                  return JSON.stringify(data)
        - uuid: 3b81fbcbef204717be1918d3df919174
          name: 'GridGain kernal metrics'
          type: JMX
          key: 'jmx.discovery[beans,"org.apache:group=Kernal,name=IgniteKernal,*"]'
          delay: 30m
          username: '{$GRIDGAIN.USER}'
          password: '{$GRIDGAIN.PASSWORD}'
          item_prototypes:
            - uuid: cbe7305a44754576a8084d606710765f
              name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Version'
              type: JMX
              key: 'jmx["{#JMXOBJ}",FullVersion]'
              value_type: CHAR
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Version of GridGain instance.'
              preprocessing:
                - type: REGEX
                  parameters:
                    - '(.*)-\d+'
                    - \1
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3h
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: kernal
              trigger_prototypes:
                - uuid: 4cc201fb67664fc49d36bbec95b574ce
                  expression: 'last(/GridGain by JMX/jmx["{#JMXOBJ}",FullVersion],#1)<>last(/GridGain by JMX/jmx["{#JMXOBJ}",FullVersion],#2) and length(last(/GridGain by JMX/jmx["{#JMXOBJ}",FullVersion]))>0'
                  name: 'GridGain: GridGain [{#JMXIGNITEINSTANCENAME}]: Version has changed'
                  event_name: 'GridGain: GridGain [{#JMXIGNITEINSTANCENAME}]: Version has changed (new version: {ITEM.VALUE})'
                  priority: INFO
                  description: 'The GridGain [{#JMXIGNITEINSTANCENAME}] version has changed. Acknowledge to close the problem manually.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: 18f518b41e804f7cb3eeaaf92fef40e7
              name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Local node ID'
              type: JMX
              key: 'jmx["{#JMXOBJ}",LocalNodeId]'
              value_type: CHAR
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Unique identifier for this node within grid.'
              preprocessing:
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3h
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: kernal
            - uuid: 4b3c99a88fbf4485a3dbf5efa2723ca7
              name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Uptime'
              type: JMX
              key: 'jmx["{#JMXOBJ}",UpTime]'
              units: uptime
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Uptime of GridGain instance.'
              preprocessing:
                - type: MULTIPLIER
                  parameters:
                    - '0.001'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: kernal
              trigger_prototypes:
                - uuid: d7b2be3a707f49d2897e7cce356cafa5
                  expression: 'nodata(/GridGain by JMX/jmx["{#JMXOBJ}",UpTime],10m)=1'
                  name: 'GridGain: GridGain [{#JMXIGNITEINSTANCENAME}]: Failed to fetch info data'
                  event_name: 'GridGain: GridGain [{#JMXIGNITEINSTANCENAME}]: Failed to fetch info data (or no data for 10m)'
                  priority: WARNING
                  description: 'Zabbix has not received data for items for the last 10 minutes.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: 23cd9dbb498f4bb095ec8be1693fccf0
                  expression: 'last(/GridGain by JMX/jmx["{#JMXOBJ}",UpTime])<10m'
                  name: 'GridGain: GridGain [{#JMXIGNITEINSTANCENAME}]: Instance has been restarted'
                  event_name: 'GridGain: GridGain [{#JMXIGNITEINSTANCENAME}]: Instance has been restarted (uptime < 10m)'
                  priority: INFO
                  description: 'Uptime is less than 10 minutes.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: notice
          jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  var data = JSON.parse(value);
                  for (var item, i = 0; item = data.data[i++];) {
                  	if (!('{#JMXIGNITEINSTANCENAME}' in item)) {
                  		Object.assign(item, {
                  			'{#JMXIGNITEINSTANCENAME}': 'null'
                  		});
                  	}
                  
                  }
                  
                  return JSON.stringify(data)
        - uuid: 6265d30cd7494809bc94f929968d3c6f
          name: 'TCP Communication SPI metrics'
          type: JMX
          key: 'jmx.discovery[beans,"org.apache:group=SPIs,name=TcpCommunicationSpi,*"]'
          delay: 30m
          username: '{$GRIDGAIN.USER}'
          password: '{$GRIDGAIN.PASSWORD}'
          item_prototypes:
            - uuid: 904f0c843b1b434986043a63cb0890e7
              name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Communication outbound messages queue'
              type: JMX
              key: 'jmx["{#JMXOBJ}",OutboundMessagesQueueSize]'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Outbound messages queue size.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: messages
                - tag: component
                  value: network
            - uuid: 2a01c4dc23b34df6801be0901bf10ab0
              name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Communication messages received, rate'
              type: JMX
              key: 'jmx["{#JMXOBJ}",ReceivedMessagesCount]'
              value_type: FLOAT
              units: '!msg/s'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'The number of  messages received per second.'
              preprocessing:
                - type: CHANGE_PER_SECOND
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: messages
                - tag: component
                  value: network
            - uuid: 613114b7abb94bd5bbabc2d1d19975b7
              name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Communication reconnect rate'
              type: JMX
              key: 'jmx["{#JMXOBJ}",ReconnectCount,maxNumbers]'
              value_type: FLOAT
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Gets maximum number of reconnect attempts used when establishing connection with remote nodes per second.'
              preprocessing:
                - type: CHANGE_PER_SECOND
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: network
            - uuid: e015293ddbb540e4b6b59ba6e28ed91e
              name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Communication messages sent, rate'
              type: JMX
              key: 'jmx["{#JMXOBJ}",SentMessagesCount]'
              value_type: FLOAT
              units: '!msg/s'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'The number of  messages sent per second.'
              preprocessing:
                - type: CHANGE_PER_SECOND
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: messages
                - tag: component
                  value: network
          graph_prototypes:
            - uuid: ca090aa6d7e449e880b43cdbbd80d991
              name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Communication messages rate'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'GridGain by JMX'
                    key: 'jmx["{#JMXOBJ}",SentMessagesCount]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'GridGain by JMX'
                    key: 'jmx["{#JMXOBJ}",ReceivedMessagesCount]'
          jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  var data = JSON.parse(value);
                  for (var item, i = 0; item = data.data[i++];) {
                  	if (!('{#JMXIGNITEINSTANCENAME}' in item)) {
                  		Object.assign(item, {
                  			'{#JMXIGNITEINSTANCENAME}': 'null'
                  		});
                  	}
                  
                  }
                  
                  return JSON.stringify(data)
        - uuid: 5fb38d8148d746d6ae19d4f8c5a33ce8
          name: 'TCP discovery SPI'
          type: JMX
          key: 'jmx.discovery[beans,"org.apache:group=SPIs,name=TcpDiscoverySpi,*"]'
          delay: 30m
          username: '{$GRIDGAIN.USER}'
          password: '{$GRIDGAIN.PASSWORD}'
          item_prototypes:
            - uuid: 3e1086638d954e939907fd2009408048
              name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Coordinator'
              type: JMX
              key: 'jmx["{#JMXOBJ}",Coordinator]'
              value_type: CHAR
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Current coordinator UUID.'
              preprocessing:
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3h
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: network
              trigger_prototypes:
                - uuid: 40641263a3d840e89e46ba6f57076a0a
                  expression: 'last(/GridGain by JMX/jmx["{#JMXOBJ}",Coordinator],#1)<>last(/GridGain by JMX/jmx["{#JMXOBJ}",Coordinator],#2) and length(last(/GridGain by JMX/jmx["{#JMXOBJ}",Coordinator]))>0'
                  name: 'GridGain: GridGain [{#JMXIGNITEINSTANCENAME}]: Coordinator has changed'
                  event_name: 'GridGain: GridGain [{#JMXIGNITEINSTANCENAME}]: Version has changed (new version: {ITEM.VALUE})'
                  priority: WARNING
                  description: 'The GridGain [{#JMXIGNITEINSTANCENAME}] version has changed. Acknowledge to close the problem manually.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: 29d85d09951346c1a7c30acc83f404fc
              name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Discovery message worker queue'
              type: JMX
              key: 'jmx["{#JMXOBJ}",MessageWorkerQueueSize]'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Message worker queue current size.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: messages
                - tag: component
                  value: network
            - uuid: 0aed9a4269ff4718aa443d1b053fa31b
              name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Nodes failed'
              type: JMX
              key: 'jmx["{#JMXOBJ}",NodesFailed]'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Nodes failed count.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: network
                - tag: component
                  value: nodes
            - uuid: 43ea840b621e4f2a8643ca38479eb73e
              name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Nodes joined'
              type: JMX
              key: 'jmx["{#JMXOBJ}",NodesJoined]'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Nodes join count.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: network
                - tag: component
                  value: nodes
            - uuid: 0164664362e446209b4399081d807ca7
              name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Nodes left'
              type: JMX
              key: 'jmx["{#JMXOBJ}",NodesLeft]'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Nodes left count.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: network
                - tag: component
                  value: nodes
            - uuid: e03329689c674ea997d55d11e1a0c2be
              name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Discovery reconnect, rate'
              type: JMX
              key: 'jmx["{#JMXOBJ}",ReconnectCount]'
              value_type: FLOAT
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Number of times node tries to (re)establish connection to another node per second.'
              preprocessing:
                - type: CHANGE_PER_SECOND
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: network
                - tag: component
                  value: nodes
            - uuid: e344575b799a4f69b79b45ef6590a649
              name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: TotalProcessedMessages'
              type: JMX
              key: 'jmx["{#JMXOBJ}",TotalProcessedMessages]'
              value_type: FLOAT
              units: '!msg/s'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'The number of messages received per second.'
              preprocessing:
                - type: CHANGE_PER_SECOND
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: messages
                - tag: component
                  value: network
            - uuid: adcf2c5981004c8da658122cc50a6518
              name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Discovery messages received, rate'
              type: JMX
              key: 'jmx["{#JMXOBJ}",TotalReceivedMessages]'
              value_type: FLOAT
              units: '!msg/s'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'The number of messages processed per second.'
              preprocessing:
                - type: CHANGE_PER_SECOND
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: messages
                - tag: component
                  value: network
          graph_prototypes:
            - uuid: a44983a855934d3ea5d2eaa1421df147
              name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Discovery messages rate'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'GridGain by JMX'
                    key: 'jmx["{#JMXOBJ}",TotalProcessedMessages]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'GridGain by JMX'
                    key: 'jmx["{#JMXOBJ}",TotalReceivedMessages]'
          jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  var data = JSON.parse(value);
                  for (var item, i = 0; item = data.data[i++];) {
                  	if (!('{#JMXIGNITEINSTANCENAME}' in item)) {
                  		Object.assign(item, {
                  			'{#JMXIGNITEINSTANCENAME}': 'null'
                  		});
                  	}
                  
                  }
                  
                  return JSON.stringify(data)
        - uuid: b0b570121f1646e5baf0b0ff5cc5de2b
          name: 'Transaction metrics'
          type: JMX
          key: 'jmx.discovery[beans,"org.apache:group=TransactionMetrics,name=TransactionMetricsMxBeanImpl,*"]'
          delay: 30m
          username: '{$GRIDGAIN.USER}'
          password: '{$GRIDGAIN.PASSWORD}'
          item_prototypes:
            - uuid: 0b03ef7787684ab5abd99af4610adf59
              name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Locked keys'
              type: JMX
              key: 'jmx["{#JMXOBJ}",LockedKeysNumber]'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'The number of keys locked on the node.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: transactions
            - uuid: 446cbb708d354b2a9282e973d562527f
              name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Transactions owner, current'
              type: JMX
              key: 'jmx["{#JMXOBJ}",OwnerTransactionsNumber]'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'The number of active transactions for which this node is the initiator.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: transactions
            - uuid: 21971cbf540c48df93fde079ce917a26
              name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Transactions committed, rate'
              type: JMX
              key: 'jmx["{#JMXOBJ}",TransactionsCommittedNumber]'
              value_type: FLOAT
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'The number of transactions which were committed per second.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: transactions
            - uuid: d8d3e05c6e7e4874b3149edb74774e6d
              name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Transactions holding lock, current'
              type: JMX
              key: 'jmx["{#JMXOBJ}",TransactionsHoldingLockNumber]'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'The number of active transactions holding at least one key lock.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: transactions
            - uuid: 2d1def1d4f414ce992cf5a6ff1bc4204
              name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Transactions rolledback, rate'
              type: JMX
              key: 'jmx["{#JMXOBJ}",TransactionsRolledBackNumber]'
              value_type: FLOAT
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'The number of transactions which were rollback per second.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: transactions
          graph_prototypes:
            - uuid: 82d772972cec4454b95d69343040b2b5
              name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Transactions'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'GridGain by JMX'
                    key: 'jmx["{#JMXOBJ}",OwnerTransactionsNumber]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'GridGain by JMX'
                    key: 'jmx["{#JMXOBJ}",TransactionsHoldingLockNumber]'
            - uuid: ad74079d5ef741918d25f059c1950839
              name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Transactions rate'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'GridGain by JMX'
                    key: 'jmx["{#JMXOBJ}",TransactionsRolledBackNumber]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'GridGain by JMX'
                    key: 'jmx["{#JMXOBJ}",TransactionsCommittedNumber]'
          jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  var data = JSON.parse(value);
                  for (var item, i = 0; item = data.data[i++];) {
                  	if (!('{#JMXIGNITEINSTANCENAME}' in item)) {
                  		Object.assign(item, {
                  			'{#JMXIGNITEINSTANCENAME}': 'null'
                  		});
                  	}
                  
                  }
                  
                  return JSON.stringify(data)
        - uuid: 7e3825aba1ad47c194162122eb050612
          name: 'Cache groups'
          type: JMX
          key: 'jmx.discovery[beans,"org.apache:group=\"Cache groups\",*"]'
          delay: 10m
          username: '{$GRIDGAIN.USER}'
          password: '{$GRIDGAIN.PASSWORD}'
          filter:
            evaltype: AND
            conditions:
              - macro: '{#JMXNAME}'
                value: '{$GRIDGAIN.LLD.FILTER.CACHE.MATCHES}'
              - macro: '{#JMXNAME}'
                value: '{$GRIDGAIN.LLD.FILTER.CACHE.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
          item_prototypes:
            - uuid: d46bf088d33946a69a5b625566558994
              name: 'Cache group [{#JMXNAME}]: Backups'
              type: JMX
              key: 'jmx["{#JMXOBJ}",Backups]'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Count of backups configured for cache group.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: cache_group
            - uuid: a535d161527b4821b717f114aaeb8b0b
              name: 'Cache group [{#JMXNAME}]: Caches'
              type: JMX
              key: 'jmx["{#JMXOBJ}",Caches]'
              value_type: CHAR
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'List of caches.'
              preprocessing:
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3h
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: cache_group
              trigger_prototypes:
                - uuid: 94d82f9db4f449e491782e14f6973f9b
                  expression: 'last(/GridGain by JMX/jmx["{#JMXOBJ}",Caches],#1)<>last(/GridGain by JMX/jmx["{#JMXOBJ}",Caches],#2) and length(last(/GridGain by JMX/jmx["{#JMXOBJ}",Caches]))>0'
                  name: 'GridGain: Cache group [{#JMXNAME}]: List of caches has changed'
                  event_name: 'GridGain: Cache group [{#JMXNAME}]: Version has changed (new version: {ITEM.VALUE})'
                  priority: INFO
                  description: 'List of caches has changed. Significant changes have occurred in the cluster. Acknowledge to close the problem manually.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: 0a09c18adfd5477098684c47927f967b
              name: 'Cache group [{#JMXNAME}]: Local node partitions, moving'
              type: JMX
              key: 'jmx["{#JMXOBJ}",LocalNodeMovingPartitionsCount]'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Count of partitions with state MOVING for this cache group located on this node.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: cache_group
              trigger_prototypes:
                - uuid: 84e1402b3ae64960ad997d2610137927
                  expression: 'max(/GridGain by JMX/jmx["{#JMXOBJ}",LocalNodeMovingPartitionsCount],30m)>0'
                  name: 'GridGain: Cache group [{#JMXNAME}]: Rebalance in progress'
                  priority: INFO
                  description: 'Acknowledge to close the problem manually.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: c2a38de3743549e0850e678d1f91e2de
              name: 'Cache group [{#JMXNAME}]: Local node partitions, owning'
              type: JMX
              key: 'jmx["{#JMXOBJ}",LocalNodeOwningPartitionsCount]'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Count of partitions with state OWNING for this cache group located on this node.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: cache_group
            - uuid: be9b2cbf210e4e27a5887d77f2dafaad
              name: 'Cache group [{#JMXNAME}]: Local node entries, renting'
              type: JMX
              key: 'jmx["{#JMXOBJ}",LocalNodeRentingEntriesCount]'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Count of entries remains to evict in RENTING partitions located on this node for this cache group.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: cache_group
            - uuid: 582acb454ffa4b129f5786e814df234f
              name: 'Cache group [{#JMXNAME}]: Local node partitions, renting'
              type: JMX
              key: 'jmx["{#JMXOBJ}",LocalNodeRentingPartitionsCount]'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Count of partitions with state RENTING for this cache group located on this node.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: cache_group
            - uuid: e026169754954bbe85afcef2534b4d0e
              name: 'Cache group [{#JMXNAME}]: Partition copies, max'
              type: JMX
              key: 'jmx["{#JMXOBJ}",MaximumNumberOfPartitionCopies]'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Maximum number of partition copies for all partitions of this cache group.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: cache_group
            - uuid: b93a9ff86a2048bfbf8743b7a1c5ec06
              name: 'Cache group [{#JMXNAME}]: Partition copies, min'
              type: JMX
              key: 'jmx["{#JMXOBJ}",MinimumNumberOfPartitionCopies]'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Minimum number of partition copies for all partitions of this cache group.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: cache_group
              trigger_prototypes:
                - uuid: 63c244c02ace4ac4a8d6f60e5c533890
                  expression: 'max(/GridGain by JMX/jmx["{#JMXOBJ}",MinimumNumberOfPartitionCopies],30m)=0'
                  name: 'GridGain: Cache group [{#JMXNAME}]: There is no copy for partitions'
                  priority: WARNING
                  tags:
                    - tag: scope
                      value: capacity
            - uuid: 8dac4ccaad0f4736b2065e2f1200e3ff
              name: 'Cache group [{#JMXNAME}]: Partitions'
              type: JMX
              key: 'jmx["{#JMXOBJ}",Partitions]'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Count of partitions for cache group.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: cache_group
          trigger_prototypes:
            - uuid: 3ded54fcdad74c83b47543410a7d9b3c
              expression: 'min(/GridGain by JMX/jmx["{#JMXOBJ}",Backups],5m)>=max(/GridGain by JMX/jmx["{#JMXOBJ}",MinimumNumberOfPartitionCopies],5m)'
              name: 'GridGain: Cache group [{#JMXNAME}]: One or more backups are unavailable'
              priority: WARNING
              tags:
                - tag: scope
                  value: capacity
          graph_prototypes:
            - uuid: da32480debef4e2baec58a7cf1131357
              name: 'Cache group [{#JMXNAME}]: Partitions'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'GridGain by JMX'
                    key: 'jmx["{#JMXOBJ}",LocalNodeMovingPartitionsCount]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'GridGain by JMX'
                    key: 'jmx["{#JMXOBJ}",LocalNodeRentingPartitionsCount]'
                - sortorder: '2'
                  color: 00611C
                  item:
                    host: 'GridGain by JMX'
                    key: 'jmx["{#JMXOBJ}",LocalNodeOwningPartitionsCount]'
                - sortorder: '3'
                  color: F7941D
                  item:
                    host: 'GridGain by JMX'
                    key: 'jmx["{#JMXOBJ}",LocalNodeRentingEntriesCount]'
          jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  var data = JSON.parse(value);
                  for (var item, i = 0; item = data.data[i++];) {
                  	if (!('{#JMXIGNITEINSTANCENAME}' in item)) {
                  		Object.assign(item, {
                  			'{#JMXIGNITEINSTANCENAME}': 'null'
                  		});
                  	}
                  
                  }
                  
                  return JSON.stringify(data)
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 3h
        - uuid: 3ca6cce698d247daae252430289e7b61
          name: 'Thread pool metrics'
          type: JMX
          key: 'jmx.discovery[beans,"org.apache:group=\"Thread Pools\",*"]'
          delay: 10m
          username: '{$GRIDGAIN.USER}'
          password: '{$GRIDGAIN.PASSWORD}'
          filter:
            evaltype: AND
            conditions:
              - macro: '{#JMXNAME}'
                value: '{$GRIDGAIN.LLD.FILTER.THREAD.POOL.MATCHES}'
              - macro: '{#JMXNAME}'
                value: '{$GRIDGAIN.LLD.FILTER.THREAD.POOL.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
          item_prototypes:
            - uuid: 7d6ab6a7180c44859b933784fb565212
              name: 'Thread pool [{#JMXNAME}]: Pool size, core'
              type: JMX
              key: 'jmx["{#JMXOBJ}",CorePoolSize]'
              units: '!msg'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'The core number of threads.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: thread_pool
            - uuid: 3ffebf40ed154a7eb7050e16d30f9f53
              name: 'Thread pool [{#JMXNAME}]: Pool size, max'
              type: JMX
              key: 'jmx["{#JMXOBJ}",MaximumPoolSize]'
              units: '!msg'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'The maximum allowed number of threads.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: thread_pool
            - uuid: 1f7f5e0d19f6400fa8803eba2fb14f85
              name: 'Thread pool [{#JMXNAME}]: Pool size'
              type: JMX
              key: 'jmx["{#JMXOBJ}",PoolSize]'
              units: '!msg'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Current number of threads in the pool.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: thread_pool
            - uuid: c4a5e348590341b29af96b57bf92240b
              name: 'Thread pool [{#JMXNAME}]: Queue size'
              type: JMX
              key: 'jmx["{#JMXOBJ}",QueueSize]'
              units: '!msg'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Current size of the execution queue.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: thread_pool
              trigger_prototypes:
                - uuid: f2a7aa098ed245f48b455ed747ee42c3
                  expression: 'min(/GridGain by JMX/jmx["{#JMXOBJ}",QueueSize],5m) > {$GRIDGAIN.THREAD.QUEUE.MAX.WARN:"{#JMXNAME}"}'
                  name: 'GridGain: Thread pool [{#JMXNAME}]: Too many messages in queue'
                  event_name: 'GridGain: Thread pool [{#JMXNAME}]: Too many messages in queue (over {$GRIDGAIN.THREAD.QUEUE.MAX.WARN:"{#JMXNAME}"} for 5 min)'
                  priority: AVERAGE
                  description: 'Number of messages in queue more than {$GRIDGAIN.THREAD.QUEUE.MAX.WARN:"{#JMXNAME}"}.'
                  tags:
                    - tag: scope
                      value: performance
          graph_prototypes:
            - uuid: d3db21cd80664dc4b6847456e15b2b3e
              name: 'Thread pool [{#JMXNAME}]: Thread pool size'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'GridGain by JMX'
                    key: 'jmx["{#JMXOBJ}",PoolSize]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'GridGain by JMX'
                    key: 'jmx["{#JMXOBJ}",MaximumPoolSize]'
                - sortorder: '2'
                  color: 00611C
                  item:
                    host: 'GridGain by JMX'
                    key: 'jmx["{#JMXOBJ}",CorePoolSize]'
          jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  var data = JSON.parse(value);
                  for (var item, i = 0; item = data.data[i++];) {
                  	if (!('{#JMXIGNITEINSTANCENAME}' in item)) {
                  		Object.assign(item, {
                  			'{#JMXIGNITEINSTANCENAME}': 'null'
                  		});
                  	}
                  
                  }
                  
                  return JSON.stringify(data)
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 3h
        - uuid: 3f3382c27cc449bd86822c245b798056
          name: 'Cache metrics'
          type: JMX
          key: 'jmx.discovery[beans,"org.apache:name=\"org.apache.gridgain.internal.processors.cache.CacheLocalMetricsMXBeanImpl\",*"]'
          delay: 10m
          username: '{$GRIDGAIN.USER}'
          password: '{$GRIDGAIN.PASSWORD}'
          filter:
            evaltype: AND
            conditions:
              - macro: '{#JMXGROUP}'
                value: '{$GRIDGAIN.LLD.FILTER.CACHE.MATCHES}'
              - macro: '{#JMXGROUP}'
                value: '{$GRIDGAIN.LLD.FILTER.CACHE.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
          item_prototypes:
            - uuid: 6fb5dee0c7434b279eb21da7d54edacc
              name: 'Cache group [{#JMXGROUP}]: Cache gets, rate'
              type: JMX
              key: 'jmx["{#JMXOBJ}",CacheGets]'
              value_type: FLOAT
              units: ops
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'The number of gets to the cache per second.'
              preprocessing:
                - type: CHANGE_PER_SECOND
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: cache
            - uuid: 632a331fe886428fa7b2c8845a02b57a
              name: 'Cache group [{#JMXGROUP}]: Cache hits, pct'
              type: JMX
              key: 'jmx["{#JMXOBJ}",CacheHitPercentage]'
              value_type: FLOAT
              units: '%'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Percentage of successful hits.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: cache
            - uuid: 843b31df2e4d430082731b44e2653f13
              name: 'Cache group [{#JMXGROUP}]: Cache misses, pct'
              type: JMX
              key: 'jmx["{#JMXOBJ}",CacheMissPercentage]'
              value_type: FLOAT
              units: '%'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'Percentage of accesses that failed to find anything.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: cache
            - uuid: 96616d8c2b9c46b0bbd7350679476c36
              name: 'Cache group [{#JMXGROUP}]: Cache puts, rate'
              type: JMX
              key: 'jmx["{#JMXOBJ}",CachePuts]'
              value_type: FLOAT
              units: ops
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'The number of puts to the cache per second.'
              preprocessing:
                - type: CHANGE_PER_SECOND
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: cache
            - uuid: 308b3e27d35b439bbb2c1cf96f6d92fe
              name: 'Cache group [{#JMXGROUP}]: Cache removals, rate'
              type: JMX
              key: 'jmx["{#JMXOBJ}",CacheRemovals]'
              value_type: FLOAT
              units: ops
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'The number of removals from the cache per second.'
              preprocessing:
                - type: CHANGE_PER_SECOND
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: cache
            - uuid: e4886d5b699e432c8e6bb47b23b9c314
              name: 'Cache group [{#JMXGROUP}]: Cache size'
              type: JMX
              key: 'jmx["{#JMXOBJ}",CacheSize]'
              units: '!keys'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'The number of non-null values in the cache as a long value.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: cache
            - uuid: 304ff6af92c0473aab8216d16509d28f
              name: 'Cache group [{#JMXGROUP}]: Cache transaction commits, rate'
              type: JMX
              key: 'jmx["{#JMXOBJ}",CacheTxCommits]'
              value_type: FLOAT
              units: '!tps'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'The number of transaction commits per second.'
              preprocessing:
                - type: CHANGE_PER_SECOND
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: cache
            - uuid: bd5b517d5a384c70a070658bc41734bf
              name: 'Cache group [{#JMXGROUP}]: Cache transaction rollbacks, rate'
              type: JMX
              key: 'jmx["{#JMXOBJ}",CacheTxRollbacks]'
              value_type: FLOAT
              units: '!tps'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'The number of transaction rollback per second.'
              preprocessing:
                - type: CHANGE_PER_SECOND
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: cache
            - uuid: a0d3a73939564dc39267ccdca06d524b
              name: 'Cache group [{#JMXGROUP}]: Cache heap entries'
              type: JMX
              key: 'jmx["{#JMXOBJ}",HeapEntriesCount]'
              units: '!keys'
              username: '{$GRIDGAIN.USER}'
              password: '{$GRIDGAIN.PASSWORD}'
              description: 'The number of entries in heap memory.'
              preprocessing:
                - type: CHANGE_PER_SECOND
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: cache
          trigger_prototypes:
            - uuid: cfe03901890a4377ad8d5dcc7be3e0c5
              expression: 'last(/GridGain by JMX/jmx["{#JMXOBJ}",CacheSize])=last(/GridGain by JMX/jmx["{#JMXOBJ}",HeapEntriesCount])'
              name: 'GridGain: Cache group [{#JMXGROUP}]: All entries are in heap'
              priority: INFO
              description: 'All entries are in heap. Possibly you use eager queries it may cause out of memory exceptions for big caches. Acknowledge to close the problem manually.'
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: notice
            - uuid: 1c990b38154340a3aab678ac1365cf7e
              expression: 'min(/GridGain by JMX/jmx["{#JMXOBJ}",CacheTxRollbacks],5m) > max(/GridGain by JMX/jmx["{#JMXOBJ}",CacheTxCommits],5m)'
              name: 'GridGain: Cache group [{#JMXGROUP}]: Success transactions less than rollbacks for 5m'
              priority: WARNING
              dependencies:
                - name: 'GridGain: Cache group [{#JMXGROUP}]: There are no success transactions for cache for 5m'
                  expression: 'min(/GridGain by JMX/jmx["{#JMXOBJ}",CacheTxRollbacks],5m)>0 and max(/GridGain by JMX/jmx["{#JMXOBJ}",CacheTxCommits],5m)=0'
              tags:
                - tag: scope
                  value: performance
            - uuid: 2caa406da4cf4d089705e5506fd589f1
              expression: 'min(/GridGain by JMX/jmx["{#JMXOBJ}",CacheTxRollbacks],5m)>0 and max(/GridGain by JMX/jmx["{#JMXOBJ}",CacheTxCommits],5m)=0'
              name: 'GridGain: Cache group [{#JMXGROUP}]: There are no success transactions for cache for 5m'
              priority: AVERAGE
              tags:
                - tag: scope
                  value: performance
          graph_prototypes:
            - uuid: 8c453a6631b34c96b39375aff2e51ac3
              name: 'Cache group [{#JMXGROUP}]: Cache hits'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'GridGain by JMX'
                    key: 'jmx["{#JMXOBJ}",CacheHitPercentage]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'GridGain by JMX'
                    key: 'jmx["{#JMXOBJ}",CacheMissPercentage]'
            - uuid: de80d7645ec347c3a547e9d8d41edc3a
              name: 'Cache group [{#JMXGROUP}]: Cache ops'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'GridGain by JMX'
                    key: 'jmx["{#JMXOBJ}",CacheGets]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'GridGain by JMX'
                    key: 'jmx["{#JMXOBJ}",CachePuts]'
                - sortorder: '2'
                  color: 00611C
                  item:
                    host: 'GridGain by JMX'
                    key: 'jmx["{#JMXOBJ}",CacheRemovals]'
            - uuid: 20b825d52d8241a79405768faf0e202d
              name: 'Cache group [{#JMXGROUP}]: Cache transactions'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'GridGain by JMX'
                    key: 'jmx["{#JMXOBJ}",CacheTxCommits]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'GridGain by JMX'
                    key: 'jmx["{#JMXOBJ}",CacheTxRollbacks]'
          jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  var data = JSON.parse(value);
                  for (var item, i = 0; item = data.data[i++];) {
                  	if (!('{#JMXIGNITEINSTANCENAME}' in item)) {
                  		Object.assign(item, {
                  			'{#JMXIGNITEINSTANCENAME}': 'null'
                  		});
                  	}
                  
                  }
                  
                  return JSON.stringify(data)
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 3h
      tags:
        - tag: class
          value: software
        - tag: subclass
          value: bigdata
        - tag: subclass
          value: computing
        - tag: target
          value: gridgain
      macros:
        - macro: '{$GRIDGAIN.CHECKPOINT.PUSED.MAX.HIGH}'
          value: '80'
          description: 'The maximum percent of checkpoint buffer utilization for high trigger expression.'
          config:
            type: TEXT
            priority: '14'
            section_name: Thresholds
            label: 'Checkpoint buffer usage high (%)'
            description: 'The maximum percent of checkpoint buffer utilization for high trigger expression. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$GRIDGAIN.CHECKPOINT.PUSED.MAX.WARN}'
          value: '66'
          description: 'The maximum percent of checkpoint buffer utilization for warning trigger expression.'
          config:
            type: TEXT
            priority: '15'
            section_name: Thresholds
            label: 'Checkpoint buffer usage warning (%)'
            description: 'The maximum percent of checkpoint buffer utilization for warning trigger expression. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$GRIDGAIN.DATA.REGION.PUSED.MAX.HIGH}'
          value: '90'
          description: 'The maximum percent of data region utilization for high trigger expression.'
          config:
            type: TEXT
            priority: '16'
            section_name: Thresholds
            label: 'Data region usage high (%)'
            description: 'The maximum percent of data region utilization for high trigger expression. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$GRIDGAIN.DATA.REGION.PUSED.MAX.WARN}'
          value: '80'
          description: 'The maximum percent of data region utilization for warning trigger expression.'
          config:
            type: TEXT
            priority: '17'
            section_name: Thresholds
            label: 'Data region usage warning (%)'
            description: 'The maximum percent of data region utilization for warning trigger expression. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$GRIDGAIN.JOBS.QUEUE.MAX.WARN}'
          value: '10'
          description: 'The maximum number of queued jobs for trigger expression.'
          config:
            type: TEXT
            priority: '13'
            section_name: Thresholds
            label: 'Max queued jobs'
            description: 'The maximum number of queued jobs for trigger expression.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$GRIDGAIN.LLD.FILTER.CACHE.MATCHES}'
          value: '.*'
          description: 'Filter of discoverable cache groups.'
          config:
            type: TEXT
            priority: '7'
            section_name: Filters
            label: 'Cache groups filter (include)'
            description: 'Filter of discoverable cache groups.'
        - macro: '{$GRIDGAIN.LLD.FILTER.CACHE.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          description: 'Filter to exclude discovered cache groups.'
          config:
            type: TEXT
            priority: '8'
            section_name: Filters
            label: 'Cache groups filter (exclude)'
            description: 'Filter to exclude discovered cache groups.'
        - macro: '{$GRIDGAIN.LLD.FILTER.DATA.REGION.MATCHES}'
          value: '.*'
          description: 'Filter of discoverable data regions.'
          config:
            type: TEXT
            priority: '5'
            section_name: Filters
            label: 'Data regions filter (include)'
            description: 'Filter of discoverable data regions.'
        - macro: '{$GRIDGAIN.LLD.FILTER.DATA.REGION.NOT_MATCHES}'
          value: ^(sysMemPlc|TxLog)$
          description: 'Filter to exclude discovered data regions.'
          config:
            type: TEXT
            priority: '6'
            section_name: Filters
            label: 'Data regions filter (exclude)'
            description: 'Filter to exclude discovered data regions.'
        - macro: '{$GRIDGAIN.LLD.FILTER.THREAD.POOL.MATCHES}'
          value: '.*'
          description: 'Filter of discoverable thread pools.'
          config:
            type: TEXT
            priority: '3'
            section_name: Filters
            label: 'Thread pools filter (include)'
            description: 'Filter of discoverable thread pools.'
        - macro: '{$GRIDGAIN.LLD.FILTER.THREAD.POOL.NOT_MATCHES}'
          value: ^(GridCallbackExecutor|GridRebalanceStripedExecutor|GridDataStreamExecutor|StripedExecutor)$
          description: 'Filter to exclude discovered thread pools.'
          config:
            type: TEXT
            priority: '4'
            section_name: Filters
            label: 'Thread pools filter (exclude)'
            description: 'Filter to exclude discovered thread pools.'
        - macro: '{$GRIDGAIN.PASSWORD}'
          value: '<secret>'
          config:
            type: TEXT
            priority: '1'
            label: Password
        - macro: '{$GRIDGAIN.PME.DURATION.MAX.HIGH}'
          value: '60000'
          description: 'The maximum PME duration in ms for high trigger expression.'
          config:
            type: TEXT
            priority: '11'
            section_name: Thresholds
            label: 'Max PME duration high (ms)'
            description: 'The maximum PME duration in ms for high trigger expression.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$GRIDGAIN.PME.DURATION.MAX.WARN}'
          value: '10000'
          description: 'The maximum PME duration in ms for warning trigger expression.'
          config:
            type: TEXT
            priority: '10'
            section_name: Thresholds
            label: 'Max PME duration warning (ms)'
            description: 'The maximum PME duration in ms for warning trigger expression.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$GRIDGAIN.THREAD.QUEUE.MAX.WARN}'
          value: '1000'
          description: 'Threshold for thread pool queue size. Can be used with thread pool name as context.'
          config:
            type: TEXT
            priority: '9'
            section_name: Thresholds
            label: 'Thread pool queue size threshold'
            description: 'Threshold for thread pool queue size. Can be used with thread pool name as context.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$GRIDGAIN.THREADS.COUNT.MAX.WARN}'
          value: '1000'
          description: 'The maximum number of running threads for trigger expression.'
          config:
            type: TEXT
            priority: '12'
            section_name: Thresholds
            label: 'Max running threads'
            description: 'The maximum number of running threads for trigger expression.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$GRIDGAIN.USER}'
          value: zabbix
          config:
            type: TEXT
            priority: '2'
            label: Username
      dashboards:
        - uuid: 407c505abde6457b88154f6d566190d8
          name: 'GridGain: Overview'
          pages:
            - name: General
              widgets:
                - type: graphprototype
                  width: '72'
                  height: '5'
                  fields:
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'GridGain by JMX'
                        name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Transactions rate'
                    - type: STRING
                      name: reference
                      value: AAAAA
                - type: graphprototype
                  'y': '5'
                  width: '72'
                  height: '5'
                  fields:
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'GridGain by JMX'
                        name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Discovery messages rate'
                    - type: STRING
                      name: reference
                      value: AAAAB
                - type: graphprototype
                  'y': '10'
                  width: '72'
                  height: '5'
                  fields:
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'GridGain by JMX'
                        name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Communication messages rate'
                    - type: STRING
                      name: reference
                      value: AAAAC
                - type: graphprototype
                  'y': '15'
                  width: '72'
                  height: '5'
                  fields:
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'GridGain by JMX'
                        name: 'GridGain [{#JMXIGNITEINSTANCENAME}]: Jobs rate'
                    - type: STRING
                      name: reference
                      value: AAAAD
    - uuid: 812073bf8df143bcae2a84b32c3965e5
      template: 'HAProxy by Zabbix agent'
      name: 'HAProxy by Zabbix agent'
      description: |
        The template to monitor HAProxy by Zabbix that works without any external scripts.
        Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
        
        The template collects metrics by polling the HAProxy stats page with Zabbix agent.
        
        Note, that this template doesn't support authentication and redirects (limitations of 'web.page.get').
        
        Setup:
        
        1. Set up the HAProxy stats page:
        https://www.haproxy.com/blog/exploring-the-haproxy-stats-page/
        
        The example configuration of HAProxy:
        
        frontend stats
            bind *:8404
            stats enable
            stats uri /stats
            stats refresh 10s
        
        2. Set the hostname or IP address of the HAProxy stats host or container in the '{$HAPROXY.STATS.HOST}' macro. You can also change the status page port in the '{$HAPROXY.STATS.PORT}' macro, the status page scheme in the '{$HAPROXY.STATS.SCHEME}' macro and the status page path in the '{$HAPROXY.STATS.PATH}' macro if necessary.
        
        You can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/393527-discussion-thread-for-official-zabbix-template-haproxy
        
        Generated by official Zabbix template tool "Templator"
      wizard_ready: 'YES'
      readme: |
        ## Overview
        
        The template to monitor HAProxy by Zabbix that works without any external scripts.
        Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
        
        The template collects metrics by polling the HAProxy stats page with Zabbix agent.
        
        Note, that this template doesn't support authentication and redirects (limitations of `web.page.get`).
        
        ## Setup
        
        1. Set up the [`HAProxy stats page`](https://www.haproxy.com/blog/exploring-the-haproxy-stats-page/).
        
        The example configuration of HAProxy:
        
        ```text
        frontend stats
            bind *:8404
            stats enable
            stats uri /stats
            stats refresh 10s
        ```
        2. Set the hostname or IP address of the HAProxy stats host or container in the `Address` host wizard configuration field. You can also change the status page port in the `Port`, the status page scheme in the `Scheme` and the status page path in the `Stats page path` host wizard configuration fields if necessary.
      vendor:
        name: Zabbix
        version: 8.0-1
      groups:
        - name: Templates/Applications
      items:
        - uuid: ca85e2fda99b42a4ad2b373211a6b07d
          name: 'Get nodes'
          type: DEPENDENT
          key: haproxy.get.nodes
          history: '0'
          value_type: TEXT
          description: 'Array for LLD rules.'
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - 'return JSON.stringify(JSON.parse(value),[''mode'',''pxname'',''svname''])'
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
          master_item:
            key: 'web.page.get["{$HAPROXY.STATS.SCHEME}://{$HAPROXY.STATS.HOST}:{$HAPROXY.STATS.PORT}/{$HAPROXY.STATS.PATH};csv"]'
          tags:
            - tag: component
              value: raw
        - uuid: 29381f1e0bdc4628a82ef1b7724f2e6f
          name: Uptime
          type: DEPENDENT
          key: haproxy.uptime
          value_type: FLOAT
          units: s
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  try {
                  	var t = value.match(/(\d+)d (\d+)h(\d+)m(\d+)s/);
                  	return t[1] * 86400 + t[2] * 3600 + t[3] * 60 + t[4] * 1;
                  }
                  catch (error) {
                  	throw "HAProxy uptime is not found : " + error;
                  }
          master_item:
            key: 'web.page.get["{$HAPROXY.STATS.SCHEME}://{$HAPROXY.STATS.HOST}:{$HAPROXY.STATS.PORT}/{$HAPROXY.STATS.PATH}"]'
          tags:
            - tag: component
              value: application
          triggers:
            - uuid: e76d5b82b0ad421ea62cd1dc069e036b
              expression: 'last(/HAProxy by Zabbix agent/haproxy.uptime)<10m'
              name: 'HAProxy: Service has been restarted'
              event_name: 'HAProxy: Service has been restarted (uptime < 10m)'
              priority: INFO
              description: 'Uptime is less than 10 minutes.'
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: notice
        - uuid: e930e70fb1b44d9cbe673f35133c6e77
          name: Version
          type: DEPENDENT
          key: haproxy.version
          value_type: CHAR
          preprocessing:
            - type: REGEX
              parameters:
                - 'HAProxy version ([^,]*),'
                - \1
              error_handler: CUSTOM_ERROR
              error_handler_params: 'HAProxy version is not found'
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          master_item:
            key: 'web.page.get["{$HAPROXY.STATS.SCHEME}://{$HAPROXY.STATS.HOST}:{$HAPROXY.STATS.PORT}/{$HAPROXY.STATS.PATH}"]'
          tags:
            - tag: component
              value: application
          triggers:
            - uuid: db6ef8f306f64f0f81a590e4b45b370c
              expression: 'last(/HAProxy by Zabbix agent/haproxy.version,#1)<>last(/HAProxy by Zabbix agent/haproxy.version,#2) and length(last(/HAProxy by Zabbix agent/haproxy.version))>0'
              name: 'HAProxy: Version has changed'
              event_name: 'HAProxy: Version has changed (new version: {ITEM.VALUE})'
              priority: INFO
              description: 'HAProxy version has changed. Acknowledge to close the problem manually.'
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: notice
        - uuid: c224cfe9b7474f9e80618dde78cfcb11
          name: 'Service response time'
          key: 'net.tcp.service.perf["{$HAPROXY.STATS.SCHEME}","{$HAPROXY.STATS.HOST}","{$HAPROXY.STATS.PORT}"]'
          value_type: FLOAT
          units: s
          tags:
            - tag: component
              value: health
            - tag: component
              value: network
          triggers:
            - uuid: 4e881047bbd54c5984922d1189567ece
              expression: 'min(/HAProxy by Zabbix agent/net.tcp.service.perf["{$HAPROXY.STATS.SCHEME}","{$HAPROXY.STATS.HOST}","{$HAPROXY.STATS.PORT}"],5m)>{$HAPROXY.RESPONSE_TIME.MAX.WARN}'
              name: 'HAProxy: Service response time is too high'
              event_name: 'HAProxy: Service response time is too high (over {$HAPROXY.RESPONSE_TIME.MAX.WARN} for 5m)'
              priority: WARNING
              manual_close: 'YES'
              dependencies:
                - name: 'HAProxy: Service is down'
                  expression: 'last(/HAProxy by Zabbix agent/net.tcp.service["{$HAPROXY.STATS.SCHEME}","{$HAPROXY.STATS.HOST}","{$HAPROXY.STATS.PORT}"])=0'
              tags:
                - tag: scope
                  value: performance
        - uuid: 97e45c508f5a4df78fc783382088e233
          name: 'Service status'
          key: 'net.tcp.service["{$HAPROXY.STATS.SCHEME}","{$HAPROXY.STATS.HOST}","{$HAPROXY.STATS.PORT}"]'
          valuemap:
            name: 'Service state'
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 10m
          tags:
            - tag: component
              value: health
            - tag: component
              value: network
          triggers:
            - uuid: 8d5c7940e5924b469b3e7804043ea7b6
              expression: 'last(/HAProxy by Zabbix agent/net.tcp.service["{$HAPROXY.STATS.SCHEME}","{$HAPROXY.STATS.HOST}","{$HAPROXY.STATS.PORT}"])=0'
              name: 'HAProxy: Service is down'
              priority: AVERAGE
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: availability
        - uuid: e70009bd4e3041a3952738673ebb5c29
          name: 'Get stats page'
          key: 'web.page.get["{$HAPROXY.STATS.SCHEME}://{$HAPROXY.STATS.HOST}:{$HAPROXY.STATS.PORT}/{$HAPROXY.STATS.PATH}"]'
          history: '0'
          value_type: TEXT
          description: 'HAProxy Statistics Report HTML'
          tags:
            - tag: component
              value: raw
        - uuid: aabdb5706b6744379561f269e0709141
          name: 'Get stats'
          key: 'web.page.get["{$HAPROXY.STATS.SCHEME}://{$HAPROXY.STATS.HOST}:{$HAPROXY.STATS.PORT}/{$HAPROXY.STATS.PATH};csv"]'
          history: '0'
          value_type: TEXT
          description: 'HAProxy Statistics Report in CSV format'
          preprocessing:
            - type: REGEX
              parameters:
                - '# ([\s\S]*)'
                - \1
            - type: CSV_TO_JSON
              parameters:
                - ''
                - ''
                - '1'
          tags:
            - tag: component
              value: raw
      discovery_rules:
        - uuid: 9899f0a11ece4b9194ca44a8fc34b066
          name: 'Backend discovery'
          type: DEPENDENT
          key: haproxy.backend.discovery
          filter:
            evaltype: AND
            conditions:
              - macro: '{#MODE}'
                value: http|tcp
              - macro: '{#SVNAME}'
                value: BACKEND
          description: 'Discovery backends'
          item_prototypes:
            - uuid: 1ee660a3cfbd4e76a20a32524cdb707f
              name: 'Backend {#PXNAME}: Number of active servers'
              type: DEPENDENT
              key: 'haproxy.backend.act[{#PXNAME},{#SVNAME}]'
              description: 'Number of active servers.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.act
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: 'haproxy.backend.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: backend
                  value: '{#PXNAME}'
                - tag: component
                  value: servers
            - uuid: 6c4b8a679428455aadbd307162635e6e
              name: 'Backend {#PXNAME}: Number of backup servers'
              type: DEPENDENT
              key: 'haproxy.backend.bck[{#PXNAME},{#SVNAME}]'
              description: 'Number of backup servers.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.bck
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: 'haproxy.backend.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: backend
                  value: '{#PXNAME}'
                - tag: component
                  value: servers
            - uuid: 7d5a7b04e836417b96f2301d91fabab4
              name: 'Backend {#PXNAME}: Incoming traffic'
              type: DEPENDENT
              key: 'haproxy.backend.bin.rate[{#PXNAME},{#SVNAME}]'
              value_type: FLOAT
              units: bps
              description: 'Number of bits received by the backend'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.bin
                - type: MULTIPLIER
                  parameters:
                    - '8'
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'haproxy.backend.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: backend
                  value: '{#PXNAME}'
                - tag: component
                  value: network
            - uuid: fc353e7b680648698ecf949f784ca0ce
              name: 'Backend {#PXNAME}: Outgoing traffic'
              type: DEPENDENT
              key: 'haproxy.backend.bout.rate[{#PXNAME},{#SVNAME}]'
              value_type: FLOAT
              units: bps
              description: 'Number of bits sent by the backend'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.bout
                - type: MULTIPLIER
                  parameters:
                    - '8'
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'haproxy.backend.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: backend
                  value: '{#PXNAME}'
                - tag: component
                  value: network
            - uuid: 3df452e68f144fc3a8e5ff7644ace606
              name: 'Backend {#PXNAME}: Responses denied per second'
              type: DEPENDENT
              key: 'haproxy.backend.dresp.rate[{#PXNAME},{#SVNAME}]'
              value_type: FLOAT
              description: 'Responses denied due to security concerns (ACL-restricted).'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.dresp
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'haproxy.backend.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: backend
                  value: '{#PXNAME}'
                - tag: component
                  value: responses
            - uuid: 5e315f24828d45b285e92971d5456234
              name: 'Backend {#PXNAME}: Errors connection per second'
              type: DEPENDENT
              key: 'haproxy.backend.econ.rate[{#PXNAME},{#SVNAME}]'
              value_type: FLOAT
              description: 'Number of requests that encountered an error attempting to connect to a backend server.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.econ
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'haproxy.backend.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: backend
                  value: '{#PXNAME}'
                - tag: component
                  value: connections
            - uuid: f1ca728c571e4cf4ac9ebc36e96df27e
              name: 'Backend {#PXNAME}: Response errors per second'
              type: DEPENDENT
              key: 'haproxy.backend.eresp.rate[{#PXNAME},{#SVNAME}]'
              value_type: FLOAT
              description: 'Number of requests whose responses yielded an error'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.eresp
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'haproxy.backend.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: backend
                  value: '{#PXNAME}'
                - tag: component
                  value: responses
              trigger_prototypes:
                - uuid: 892d6f67eeff4520aadbf4f3841f8174
                  expression: 'min(/HAProxy by Zabbix agent/haproxy.backend.eresp.rate[{#PXNAME},{#SVNAME}],5m)>{$HAPROXY.BACK_ERESP.MAX.WARN}'
                  name: 'HAProxy: backend {#PXNAME}: Number of responses with error is high'
                  event_name: 'HAProxy: backend {#PXNAME}: Number of responses with error is more than {$HAPROXY.BACK_ERESP.MAX.WARN} for 5m'
                  priority: WARNING
                  description: 'Number of requests on backend, whose responses yielded an error, is more than {$HAPROXY.BACK_ERESP.MAX.WARN}.'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: a32d07355a9c4e9f9f63bac4ef2ef342
              name: 'Backend {#PXNAME}: Number of responses with codes 1xx per second'
              type: DEPENDENT
              key: 'haproxy.backend.hrsp_1xx.rate[{#PXNAME},{#SVNAME}]'
              value_type: FLOAT
              description: 'Number of informational HTTP responses per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.hrsp_1xx
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'haproxy.backend.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: backend
                  value: '{#PXNAME}'
                - tag: component
                  value: responses
            - uuid: 2b02a86c01a245859ad4305d25569ab0
              name: 'Backend {#PXNAME}: Number of responses with codes 2xx per second'
              type: DEPENDENT
              key: 'haproxy.backend.hrsp_2xx.rate[{#PXNAME},{#SVNAME}]'
              value_type: FLOAT
              description: 'Number of successful HTTP responses per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.hrsp_2xx
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'haproxy.backend.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: backend
                  value: '{#PXNAME}'
                - tag: component
                  value: responses
            - uuid: 24de211953f8480c9e1118abde731344
              name: 'Backend {#PXNAME}: Number of responses with codes 3xx per second'
              type: DEPENDENT
              key: 'haproxy.backend.hrsp_3xx.rate[{#PXNAME},{#SVNAME}]'
              value_type: FLOAT
              description: 'Number of HTTP redirections per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.hrsp_3xx
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'haproxy.backend.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: backend
                  value: '{#PXNAME}'
                - tag: component
                  value: responses
            - uuid: 221ef133420f4140a17146eb976744eb
              name: 'Backend {#PXNAME}: Number of responses with codes 4xx per second'
              type: DEPENDENT
              key: 'haproxy.backend.hrsp_4xx.rate[{#PXNAME},{#SVNAME}]'
              value_type: FLOAT
              description: 'Number of HTTP client errors per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.hrsp_4xx
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'haproxy.backend.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: backend
                  value: '{#PXNAME}'
                - tag: component
                  value: responses
            - uuid: 3a3f40a93c184673bdbd220add5ef458
              name: 'Backend {#PXNAME}: Number of responses with codes 5xx per second'
              type: DEPENDENT
              key: 'haproxy.backend.hrsp_5xx.rate[{#PXNAME},{#SVNAME}]'
              value_type: FLOAT
              description: 'Number of HTTP server errors per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.hrsp_5xx
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'haproxy.backend.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: backend
                  value: '{#PXNAME}'
                - tag: component
                  value: responses
            - uuid: 389e5f77b422419386c2fa21db612697
              name: 'Backend {#PXNAME}: Unassigned requests'
              type: DEPENDENT
              key: 'haproxy.backend.qcur[{#PXNAME},{#SVNAME}]'
              description: 'Current number of requests unassigned in queue.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.qcur
              master_item:
                key: 'haproxy.backend.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: backend
                  value: '{#PXNAME}'
                - tag: component
                  value: requests
              trigger_prototypes:
                - uuid: 89ccc4b4a55349c7869c2202881dcb2a
                  expression: 'min(/HAProxy by Zabbix agent/haproxy.backend.qcur[{#PXNAME},{#SVNAME}],5m)>{$HAPROXY.BACK_QCUR.MAX.WARN}'
                  name: 'HAProxy: backend {#PXNAME}: Current number of requests unassigned in queue is high'
                  event_name: 'HAProxy: backend {#PXNAME}: Current number of requests unassigned in queue is more than {$HAPROXY.BACK_QCUR.MAX.WARN} for 5m'
                  priority: WARNING
                  description: 'Current number of requests on backend unassigned in queue is more than {$HAPROXY.BACK_QCUR.MAX.WARN}.'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: a58ff94387824acb81b27cab5cfc680a
              name: 'Backend {#PXNAME}: Time in queue'
              type: DEPENDENT
              key: 'haproxy.backend.qtime[{#PXNAME},{#SVNAME}]'
              value_type: FLOAT
              units: s
              description: 'Average time spent in queue (in ms) for the last 1,024 requests'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.qtime
                - type: MULTIPLIER
                  parameters:
                    - '0.001'
              master_item:
                key: 'haproxy.backend.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: backend
                  value: '{#PXNAME}'
                - tag: component
                  value: requests
              trigger_prototypes:
                - uuid: 1aff4be13f0f4aee8a512d4b962215a6
                  expression: 'min(/HAProxy by Zabbix agent/haproxy.backend.qtime[{#PXNAME},{#SVNAME}],5m)>{$HAPROXY.BACK_QTIME.MAX.WARN}'
                  name: 'HAProxy: backend {#PXNAME}: Average time spent in queue is high'
                  event_name: 'HAProxy: backend {#PXNAME}: Average time spent in queue is more than {$HAPROXY.BACK_QTIME.MAX.WARN} for 5m'
                  priority: WARNING
                  description: 'Average time spent in queue (in ms) for the last 1,024 requests is more than {$HAPROXY.BACK_QTIME.MAX.WARN}.'
                  tags:
                    - tag: scope
                      value: performance
            - uuid: 109438f053a24866a8c001c2260f1c37
              name: 'Backend {#PXNAME}: Raw data'
              type: DEPENDENT
              key: 'haproxy.backend.raw[{#PXNAME},{#SVNAME}]'
              history: '0'
              value_type: TEXT
              description: 'The raw data of the Backend with the name `{#PXNAME}`'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[?(@.pxname == ''{#PXNAME}'' && @.svname == ''{#SVNAME}'')].first()'
              master_item:
                key: 'web.page.get["{$HAPROXY.STATS.SCHEME}://{$HAPROXY.STATS.HOST}:{$HAPROXY.STATS.PORT}/{$HAPROXY.STATS.PATH};csv"]'
              tags:
                - tag: backend
                  value: '{#PXNAME}'
                - tag: component
                  value: raw
            - uuid: 7e801fd81fed448db7dd6c6eeaa398d5
              name: 'Backend {#PXNAME}: Responses time'
              type: DEPENDENT
              key: 'haproxy.backend.rtime[{#PXNAME},{#SVNAME}]'
              value_type: FLOAT
              units: s
              description: 'Average backend response time (in ms) for the last 1,024 requests'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.rtime
                - type: MULTIPLIER
                  parameters:
                    - '0.001'
              master_item:
                key: 'haproxy.backend.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: backend
                  value: '{#PXNAME}'
                - tag: component
                  value: responses
              trigger_prototypes:
                - uuid: e0dd27ac272a4fbf9495c09f3291db8f
                  expression: 'min(/HAProxy by Zabbix agent/haproxy.backend.rtime[{#PXNAME},{#SVNAME}],5m)>{$HAPROXY.BACK_RTIME.MAX.WARN}'
                  name: 'HAProxy: backend {#PXNAME}: Average response time is high'
                  event_name: 'HAProxy: backend {#PXNAME}: Average response time is more than {$HAPROXY.BACK_RTIME.MAX.WARN} for 5m'
                  priority: WARNING
                  description: 'Average backend response time (in ms) for the last 1,024 requests is more than {$HAPROXY.BACK_RTIME.MAX.WARN}.'
                  tags:
                    - tag: scope
                      value: performance
            - uuid: 5826a63314314ef297c81749561574d2
              name: 'Backend {#PXNAME}: Status'
              type: DEPENDENT
              key: 'haproxy.backend.status[{#PXNAME},{#SVNAME}]'
              value_type: CHAR
              description: |
                Possible values:
                UP - The server is reporting as healthy.
                DOWN - The server is reporting as unhealthy and unable to receive requests.
                NOLB - You've added http-check disable-on-404 to the backend and the health checked URL has returned an HTTP 404 response.
                MAINT - The server has been disabled or put into maintenance mode.
                DRAIN - The server has been put into drain mode.
                no check - Health checks are not enabled for this server.
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.status
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 10m
              master_item:
                key: 'haproxy.backend.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: backend
                  value: '{#PXNAME}'
                - tag: component
                  value: health
              trigger_prototypes:
                - uuid: 51452fd94c12448fab0703e867f69fd2
                  expression: 'count(/HAProxy by Zabbix agent/haproxy.backend.status[{#PXNAME},{#SVNAME}],#5,"eq","DOWN")=5'
                  name: 'HAProxy: backend {#PXNAME}: Server is DOWN'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'Backend is not available.'
                  tags:
                    - tag: scope
                      value: availability
            - uuid: d11c9b4c7027475e897456e712675cc9
              name: 'Backend {#PXNAME}: Sessions per second'
              type: DEPENDENT
              key: 'haproxy.backend.stot.rate[{#PXNAME},{#SVNAME}]'
              value_type: FLOAT
              description: 'Cumulative number of sessions (end-to-end connections) per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.stot
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'haproxy.backend.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: backend
                  value: '{#PXNAME}'
                - tag: component
                  value: sessions
            - uuid: 21cc9c7a1b7042f0bb14eeab91464ae8
              name: 'Backend {#PXNAME}: Weight'
              type: DEPENDENT
              key: 'haproxy.backend.weight[{#PXNAME},{#SVNAME}]'
              description: 'Total effective weight.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.weight
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: 'haproxy.backend.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: backend
                  value: '{#PXNAME}'
                - tag: component
                  value: balancer
            - uuid: bebad9eb0731474db798eacde7771238
              name: 'Backend {#PXNAME}: Redispatched requests per second'
              type: DEPENDENT
              key: 'haproxy.backend.wredis.rate[{#PXNAME},{#SVNAME}]'
              value_type: FLOAT
              description: 'Number of times a request was redispatched to a different backend.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.wredis
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'haproxy.backend.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: backend
                  value: '{#PXNAME}'
                - tag: component
                  value: requests
            - uuid: 0f09a6b800d747f4beed96a25b5cfa49
              name: 'Backend {#PXNAME}: Retried connections per second'
              type: DEPENDENT
              key: 'haproxy.backend.wretr.rate[{#PXNAME},{#SVNAME}]'
              value_type: FLOAT
              description: 'Number of times a connection was retried.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.wretr
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'haproxy.backend.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: backend
                  value: '{#PXNAME}'
                - tag: component
                  value: connections
          graph_prototypes:
            - uuid: 70bf1a17304e495dae74b86b93ac9773
              name: 'HAProxy: Backend {#PXNAME} In/Out traffic'
              graph_items:
                - drawtype: GRADIENT_LINE
                  color: 199C0D
                  item:
                    host: 'HAProxy by Zabbix agent'
                    key: 'haproxy.backend.bin.rate[{#PXNAME},{#SVNAME}]'
                - sortorder: '1'
                  drawtype: GRADIENT_LINE
                  color: F63100
                  item:
                    host: 'HAProxy by Zabbix agent'
                    key: 'haproxy.backend.bout.rate[{#PXNAME},{#SVNAME}]'
            - uuid: a8518997e8ce40339f5d2384a011f3ba
              name: 'HAProxy: Backend {#PXNAME} Redispatched requests and retried connections per second'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'HAProxy by Zabbix agent'
                    key: 'haproxy.backend.wredis.rate[{#PXNAME},{#SVNAME}]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'HAProxy by Zabbix agent'
                    key: 'haproxy.backend.wretr.rate[{#PXNAME},{#SVNAME}]'
            - uuid: 50d592985cd74d0a95904971dc40767d
              name: 'HAProxy: Backend {#PXNAME} Responses by HTTP code'
              type: STACKED
              graph_items:
                - color: 199C0D
                  item:
                    host: 'HAProxy by Zabbix agent'
                    key: 'haproxy.backend.hrsp_1xx.rate[{#PXNAME},{#SVNAME}]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'HAProxy by Zabbix agent'
                    key: 'haproxy.backend.hrsp_2xx.rate[{#PXNAME},{#SVNAME}]'
                - sortorder: '2'
                  color: 00611C
                  item:
                    host: 'HAProxy by Zabbix agent'
                    key: 'haproxy.backend.hrsp_3xx.rate[{#PXNAME},{#SVNAME}]'
                - sortorder: '3'
                  color: F7941D
                  item:
                    host: 'HAProxy by Zabbix agent'
                    key: 'haproxy.backend.hrsp_4xx.rate[{#PXNAME},{#SVNAME}]'
                - sortorder: '4'
                  color: FC6EA3
                  item:
                    host: 'HAProxy by Zabbix agent'
                    key: 'haproxy.backend.hrsp_5xx.rate[{#PXNAME},{#SVNAME}]'
          master_item:
            key: haproxy.get.nodes
          lld_macro_paths:
            - lld_macro: '{#MODE}'
              path: $.mode
            - lld_macro: '{#PXNAME}'
              path: $.pxname
            - lld_macro: '{#SVNAME}'
              path: $.svname
          overrides:
            - name: 'Discard HTTP status codes'
              step: '1'
              filter:
                conditions:
                  - macro: '{#MODE}'
                    value: tcp
              operations:
                - operator: LIKE
                  value: 'Number of responses with codes'
                  discover: NO_DISCOVER
                  status: ENABLED
        - uuid: 69264415d8644ef597affd3dc95d42b2
          name: 'Frontend discovery'
          type: DEPENDENT
          key: haproxy.frontend.discovery
          filter:
            evaltype: AND
            conditions:
              - macro: '{#MODE}'
                value: http|tcp
              - macro: '{#SVNAME}'
                value: FRONTEND
          description: 'Discovery frontends'
          item_prototypes:
            - uuid: 434f9c1dd63946d3a181c42bcee94e07
              name: 'Frontend {#PXNAME}: Incoming traffic'
              type: DEPENDENT
              key: 'haproxy.frontend.bin.rate[{#PXNAME},{#SVNAME}]'
              value_type: FLOAT
              units: bps
              description: 'Number of bits received by the frontend'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.bin
                - type: MULTIPLIER
                  parameters:
                    - '8'
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'haproxy.frontend.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: component
                  value: network
                - tag: frontend
                  value: '{#PXNAME}'
            - uuid: 047ec4b444af4bc38f74eb7fabf2fb94
              name: 'Frontend {#PXNAME}: Outgoing traffic'
              type: DEPENDENT
              key: 'haproxy.frontend.bout.rate[{#PXNAME},{#SVNAME}]'
              value_type: FLOAT
              units: bps
              description: 'Number of bits sent by the frontend'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.bout
                - type: MULTIPLIER
                  parameters:
                    - '8'
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'haproxy.frontend.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: component
                  value: network
                - tag: frontend
                  value: '{#PXNAME}'
            - uuid: 4542ee3da6334468b6a146083bfa1208
              name: 'Frontend {#PXNAME}: Denied requests per second'
              type: DEPENDENT
              key: 'haproxy.frontend.dreq.rate[{#PXNAME},{#SVNAME}]'
              value_type: FLOAT
              description: 'Requests denied due to security concerns (ACL-restricted) per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.dreq
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'haproxy.frontend.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: component
                  value: requests
                - tag: frontend
                  value: '{#PXNAME}'
              trigger_prototypes:
                - uuid: 269d5e491e3d41b6be5257c8a8a85efb
                  expression: 'min(/HAProxy by Zabbix agent/haproxy.frontend.dreq.rate[{#PXNAME},{#SVNAME}],5m)>{$HAPROXY.FRONT_DREQ.MAX.WARN}'
                  name: 'HAProxy: frontend {#PXNAME}: Number of requests denied is high'
                  event_name: 'HAProxy: frontend {#PXNAME}: Number of requests denied is more than {$HAPROXY.FRONT_DREQ.MAX.WARN} for 5m'
                  priority: WARNING
                  description: 'Number of requests denied due to security concerns (ACL-restricted) is more than {$HAPROXY.FRONT_DREQ.MAX.WARN}.'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: 2da48ea7b7fb4432b041b9706017778e
              name: 'Frontend {#PXNAME}: Request errors per second'
              type: DEPENDENT
              key: 'haproxy.frontend.ereq.rate[{#PXNAME},{#SVNAME}]'
              value_type: FLOAT
              description: 'Number of request errors per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.ereq
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'haproxy.frontend.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: component
                  value: requests
                - tag: frontend
                  value: '{#PXNAME}'
              trigger_prototypes:
                - uuid: 8361fb028aed4bd9bf3356249699d424
                  expression: 'min(/HAProxy by Zabbix agent/haproxy.frontend.ereq.rate[{#PXNAME},{#SVNAME}],5m)>{$HAPROXY.FRONT_EREQ.MAX.WARN}'
                  name: 'HAProxy: frontend {#PXNAME}: Number of request errors is high'
                  event_name: 'HAProxy: frontend {#PXNAME}: Number of request errors is more than {$HAPROXY.FRONT_EREQ.MAX.WARN} for 5m'
                  priority: WARNING
                  description: 'Number of request errors is more than {$HAPROXY.FRONT_EREQ.MAX.WARN}.'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: d4d6d7092c524a4aa9ac83f9506fcb44
              name: 'Frontend {#PXNAME}: Number of responses with codes 1xx per second'
              type: DEPENDENT
              key: 'haproxy.frontend.hrsp_1xx.rate[{#PXNAME},{#SVNAME}]'
              value_type: FLOAT
              description: 'Number of informational HTTP responses per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.hrsp_1xx
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'haproxy.frontend.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: component
                  value: responses
                - tag: frontend
                  value: '{#PXNAME}'
            - uuid: 34bb4142cb4c48678f1136ed7a582ff7
              name: 'Frontend {#PXNAME}: Number of responses with codes 2xx per second'
              type: DEPENDENT
              key: 'haproxy.frontend.hrsp_2xx.rate[{#PXNAME},{#SVNAME}]'
              value_type: FLOAT
              description: 'Number of successful HTTP responses per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.hrsp_2xx
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'haproxy.frontend.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: component
                  value: responses
                - tag: frontend
                  value: '{#PXNAME}'
            - uuid: 3d6966759c864b0d94daceead022e421
              name: 'Frontend {#PXNAME}: Number of responses with codes 3xx per second'
              type: DEPENDENT
              key: 'haproxy.frontend.hrsp_3xx.rate[{#PXNAME},{#SVNAME}]'
              value_type: FLOAT
              description: 'Number of HTTP redirections per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.hrsp_3xx
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'haproxy.frontend.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: component
                  value: responses
                - tag: frontend
                  value: '{#PXNAME}'
            - uuid: 3fe3871812254cf0a228b6607f02ea12
              name: 'Frontend {#PXNAME}: Number of responses with codes 4xx per second'
              type: DEPENDENT
              key: 'haproxy.frontend.hrsp_4xx.rate[{#PXNAME},{#SVNAME}]'
              value_type: FLOAT
              description: 'Number of HTTP client errors per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.hrsp_4xx
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'haproxy.frontend.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: component
                  value: responses
                - tag: frontend
                  value: '{#PXNAME}'
            - uuid: 85d7aa81598b48ee9d40ce3e5b7fc7ea
              name: 'Frontend {#PXNAME}: Number of responses with codes 5xx per second'
              type: DEPENDENT
              key: 'haproxy.frontend.hrsp_5xx.rate[{#PXNAME},{#SVNAME}]'
              value_type: FLOAT
              description: 'Number of HTTP server errors per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.hrsp_5xx
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'haproxy.frontend.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: component
                  value: responses
                - tag: frontend
                  value: '{#PXNAME}'
            - uuid: 24ee024f493e47f4b4405bc469976c8e
              name: 'Frontend {#PXNAME}: Sessions rate'
              type: DEPENDENT
              key: 'haproxy.frontend.rate[{#PXNAME},{#SVNAME}]'
              description: 'Number of sessions created per second'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.rate
              master_item:
                key: 'haproxy.frontend.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: component
                  value: sessions
                - tag: frontend
                  value: '{#PXNAME}'
            - uuid: 8cac0a6b219e49c2ae1fd61e78be4ee0
              name: 'Frontend {#PXNAME}: Raw data'
              type: DEPENDENT
              key: 'haproxy.frontend.raw[{#PXNAME},{#SVNAME}]'
              history: '0'
              value_type: TEXT
              description: 'The raw data of the Frontend with the name `{#PXNAME}`'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[?(@.pxname == ''{#PXNAME}'' && @.svname == ''{#SVNAME}'')].first()'
              master_item:
                key: 'web.page.get["{$HAPROXY.STATS.SCHEME}://{$HAPROXY.STATS.HOST}:{$HAPROXY.STATS.PORT}/{$HAPROXY.STATS.PATH};csv"]'
              tags:
                - tag: component
                  value: raw
                - tag: frontend
                  value: '{#PXNAME}'
            - uuid: 2290bc0944774d54a89d5b6195f81ad4
              name: 'Frontend {#PXNAME}: Requests rate'
              type: DEPENDENT
              key: 'haproxy.frontend.req_rate[{#PXNAME},{#SVNAME}]'
              description: 'HTTP requests per second'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.req_rate
              master_item:
                key: 'haproxy.frontend.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: component
                  value: requests
                - tag: frontend
                  value: '{#PXNAME}'
            - uuid: b01d1b02b9da4609acaa278cf5f2ebbd
              name: 'Frontend {#PXNAME}: Established sessions'
              type: DEPENDENT
              key: 'haproxy.frontend.scur[{#PXNAME},{#SVNAME}]'
              description: 'The current number of established sessions.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.scur
              master_item:
                key: 'haproxy.frontend.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: component
                  value: sessions
                - tag: frontend
                  value: '{#PXNAME}'
            - uuid: 4ed338fd24e14aeda1f6058a36371455
              name: 'Frontend {#PXNAME}: Session limits'
              type: DEPENDENT
              key: 'haproxy.frontend.slim[{#PXNAME},{#SVNAME}]'
              description: 'The most simultaneous sessions that are allowed, as defined by the maxconn setting in the frontend.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.slim
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: 'haproxy.frontend.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: component
                  value: sessions
                - tag: frontend
                  value: '{#PXNAME}'
            - uuid: 5a48a087c07c4cbbaf0332930d59244b
              name: 'Frontend {#PXNAME}: Status'
              type: DEPENDENT
              key: 'haproxy.frontend.status[{#PXNAME},{#SVNAME}]'
              value_type: CHAR
              description: |
                Possible values: OPEN, STOP.
                When Status is OPEN, the frontend is operating normally and ready to receive traffic.
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.status
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: 'haproxy.frontend.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: component
                  value: health
                - tag: frontend
                  value: '{#PXNAME}'
            - uuid: 4aedda0904954ade92a4aad6460d759b
              name: 'Frontend {#PXNAME}: Session utilization'
              type: CALCULATED
              key: 'haproxy.frontend.sutil[{#PXNAME},{#SVNAME}]'
              value_type: FLOAT
              units: '%'
              params: 'last(//haproxy.frontend.scur[{#PXNAME},{#SVNAME}]) / last(//haproxy.frontend.slim[{#PXNAME},{#SVNAME}]) * 100'
              description: 'Percentage of sessions used (scur / slim * 100).'
              tags:
                - tag: component
                  value: sessions
                - tag: frontend
                  value: '{#PXNAME}'
              trigger_prototypes:
                - uuid: 9af44a07b1a347979492063ee756b025
                  expression: 'min(/HAProxy by Zabbix agent/haproxy.frontend.sutil[{#PXNAME},{#SVNAME}],5m)>{$HAPROXY.FRONT_SUTIL.MAX.WARN}'
                  name: 'HAProxy: frontend {#PXNAME}: Session utilization is high'
                  event_name: 'HAProxy: frontend {#PXNAME}: Session utilization is more than {$HAPROXY.FRONT_SUTIL.MAX.WARN}% for 5m'
                  priority: WARNING
                  description: 'Alerting on this metric is essential to ensure your server has sufficient capacity to handle all concurrent sessions. Unlike requests, upon reaching the session limit HAProxy will deny additional clients until resource consumption drops. Furthermore, if you find your session usage percentage to be hovering above 80%, it could be time to either modify HAProxy''s configuration to allow more sessions, or migrate your HAProxy server to a bigger box.'
                  tags:
                    - tag: scope
                      value: performance
          graph_prototypes:
            - uuid: 30141ef1c5bf4c4a9cca0f8ce2ea3373
              name: 'HAProxy: Frontend {#PXNAME} Errors and denials per second'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'HAProxy by Zabbix agent'
                    key: 'haproxy.frontend.ereq.rate[{#PXNAME},{#SVNAME}]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'HAProxy by Zabbix agent'
                    key: 'haproxy.frontend.dreq.rate[{#PXNAME},{#SVNAME}]'
            - uuid: f6a6bb900b4e45c9af863e6e0aa9af8a
              name: 'HAProxy: Frontend {#PXNAME} In/Out traffic'
              graph_items:
                - drawtype: GRADIENT_LINE
                  color: 199C0D
                  item:
                    host: 'HAProxy by Zabbix agent'
                    key: 'haproxy.frontend.bin.rate[{#PXNAME},{#SVNAME}]'
                - sortorder: '1'
                  drawtype: GRADIENT_LINE
                  color: F63100
                  item:
                    host: 'HAProxy by Zabbix agent'
                    key: 'haproxy.frontend.bout.rate[{#PXNAME},{#SVNAME}]'
            - uuid: 065d1ef09a404cf1bcc67f0e987482ab
              name: 'HAProxy: Frontend {#PXNAME} Requests and sessions per second'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'HAProxy by Zabbix agent'
                    key: 'haproxy.frontend.req_rate[{#PXNAME},{#SVNAME}]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'HAProxy by Zabbix agent'
                    key: 'haproxy.frontend.rate[{#PXNAME},{#SVNAME}]'
            - uuid: 3ce6177d02a045219cec0d348b970860
              name: 'HAProxy: Frontend {#PXNAME} Responses by HTTP code'
              type: STACKED
              graph_items:
                - color: 199C0D
                  item:
                    host: 'HAProxy by Zabbix agent'
                    key: 'haproxy.frontend.hrsp_1xx.rate[{#PXNAME},{#SVNAME}]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'HAProxy by Zabbix agent'
                    key: 'haproxy.frontend.hrsp_2xx.rate[{#PXNAME},{#SVNAME}]'
                - sortorder: '2'
                  color: 00611C
                  item:
                    host: 'HAProxy by Zabbix agent'
                    key: 'haproxy.frontend.hrsp_3xx.rate[{#PXNAME},{#SVNAME}]'
                - sortorder: '3'
                  color: F7941D
                  item:
                    host: 'HAProxy by Zabbix agent'
                    key: 'haproxy.frontend.hrsp_4xx.rate[{#PXNAME},{#SVNAME}]'
                - sortorder: '4'
                  color: FC6EA3
                  item:
                    host: 'HAProxy by Zabbix agent'
                    key: 'haproxy.frontend.hrsp_5xx.rate[{#PXNAME},{#SVNAME}]'
          master_item:
            key: haproxy.get.nodes
          lld_macro_paths:
            - lld_macro: '{#MODE}'
              path: $.mode
            - lld_macro: '{#PXNAME}'
              path: $.pxname
            - lld_macro: '{#SVNAME}'
              path: $.svname
          overrides:
            - name: 'Discard HTTP status codes'
              step: '1'
              filter:
                conditions:
                  - macro: '{#MODE}'
                    value: tcp
              operations:
                - operator: LIKE
                  value: 'Number of responses with codes'
                  discover: NO_DISCOVER
                  status: ENABLED
        - uuid: a2f7f79b8f094afd93648f62f99d3369
          name: 'Server discovery'
          type: DEPENDENT
          key: haproxy.server.discovery
          filter:
            evaltype: AND
            conditions:
              - macro: '{#MODE}'
                value: http|tcp
              - macro: '{#SVNAME}'
                value: FRONTEND|BACKEND
                operator: NOT_MATCHES_REGEX
          description: 'Discovery servers'
          item_prototypes:
            - uuid: 82b1f8a01ba04818a990c336eb7154e3
              name: '{#PXNAME} {#SVNAME}: Server is active'
              type: DEPENDENT
              key: 'haproxy.server.act[{#PXNAME},{#SVNAME}]'
              description: 'Shows whether the server is active (marked with a Y) or a backup (marked with a -).'
              valuemap:
                name: 'Server mode'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.act
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: component
                  value: role
                - tag: server
                  value: '{#PXNAME}'
                - tag: service
                  value: '{#SVNAME}'
            - uuid: 3617492e9cfd49b6b5576ed231dc2614
              name: '{#PXNAME} {#SVNAME}: Server is backup'
              type: DEPENDENT
              key: 'haproxy.server.bck[{#PXNAME},{#SVNAME}]'
              description: 'Shows whether the server is a backup (marked with a Y) or active (marked with a -).'
              valuemap:
                name: 'Server mode'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.bck
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: component
                  value: role
                - tag: server
                  value: '{#PXNAME}'
                - tag: service
                  value: '{#SVNAME}'
            - uuid: 20d5a69a9aa24fc6abf21c1c317ac425
              name: '{#PXNAME} {#SVNAME}: Incoming traffic'
              type: DEPENDENT
              key: 'haproxy.server.bin.rate[{#PXNAME},{#SVNAME}]'
              value_type: FLOAT
              units: bps
              description: 'Number of bits received by the backend'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.bin
                - type: MULTIPLIER
                  parameters:
                    - '8'
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: component
                  value: network
                - tag: server
                  value: '{#PXNAME}'
                - tag: service
                  value: '{#SVNAME}'
            - uuid: 7fbc335144b74c08ba6a79a108e8e894
              name: '{#PXNAME} {#SVNAME}: Outgoing traffic'
              type: DEPENDENT
              key: 'haproxy.server.bout.rate[{#PXNAME},{#SVNAME}]'
              value_type: FLOAT
              units: bps
              description: 'Number of bits sent by the backend'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.bout
                - type: MULTIPLIER
                  parameters:
                    - '8'
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: component
                  value: network
                - tag: server
                  value: '{#PXNAME}'
                - tag: service
                  value: '{#SVNAME}'
            - uuid: c46228518a3a460b894aea999ca0feab
              name: '{#PXNAME} {#SVNAME}: Status of last health check'
              type: DEPENDENT
              key: 'haproxy.server.check_status[{#PXNAME},{#SVNAME}]'
              value_type: CHAR
              description: |
                Status of last health check, one of:
                UNK     -> unknown
                INI     -> initializing
                SOCKERR -> socket error
                L4OK    -> check passed on layer 4, no upper layers testing enabled
                L4TOUT  -> layer 1-4 timeout
                L4CON   -> layer 1-4 connection problem, for example "Connection refused" (tcp rst) or "No route to host" (icmp)
                L6OK    -> check passed on layer 6
                L6TOUT  -> layer 6 (SSL) timeout
                L6RSP   -> layer 6 invalid response - protocol error
                L7OK    -> check passed on layer 7
                L7OKC   -> check conditionally passed on layer 7, for example 404 with disable-on-404
                L7TOUT  -> layer 7 (HTTP/SMTP) timeout
                L7RSP   -> layer 7 invalid response - protocol error
                L7STS   -> layer 7 response error, for example HTTP 5xx
                Notice: If a check is currently running, the last known status will be reported, prefixed with "* ". e. g. "* L7OK".
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.check_status
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 10m
              master_item:
                key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: component
                  value: health
                - tag: server
                  value: '{#PXNAME}'
                - tag: service
                  value: '{#SVNAME}'
              trigger_prototypes:
                - uuid: 1378f45ad65a498aae7b571a69547352
                  expression: 'find(/HAProxy by Zabbix agent/haproxy.server.check_status[{#PXNAME},{#SVNAME}],#3,"regexp","(?:L[4-7]OK|^$)")=0'
                  name: 'HAProxy: {#PXNAME} {#SVNAME}: Health check error'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'Please check the server for faults.'
                  dependencies:
                    - name: 'HAProxy: {#PXNAME} {#SVNAME}: Server is DOWN'
                      expression: 'count(/HAProxy by Zabbix agent/haproxy.server.status[{#PXNAME},{#SVNAME}],#5,"eq","DOWN")=5'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: 537f0b807f784b6cba1032ff77fad499
              name: '{#PXNAME} {#SVNAME}: Responses denied per second'
              type: DEPENDENT
              key: 'haproxy.server.dresp.rate[{#PXNAME},{#SVNAME}]'
              value_type: FLOAT
              description: 'Responses denied due to security concerns (ACL-restricted).'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.dresp
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: component
                  value: responses
                - tag: server
                  value: '{#PXNAME}'
                - tag: service
                  value: '{#SVNAME}'
            - uuid: f688e1e62fa94d1db1d59735094f0bc4
              name: '{#PXNAME} {#SVNAME}: Errors connection per second'
              type: DEPENDENT
              key: 'haproxy.server.econ.rate[{#PXNAME},{#SVNAME}]'
              value_type: FLOAT
              description: 'Number of requests that encountered an error attempting to connect to a backend server.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.econ
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: component
                  value: connections
                - tag: server
                  value: '{#PXNAME}'
                - tag: service
                  value: '{#SVNAME}'
            - uuid: bdcac24a8b1e4dd5a441edb61ca13156
              name: '{#PXNAME} {#SVNAME}: Response errors per second'
              type: DEPENDENT
              key: 'haproxy.server.eresp.rate[{#PXNAME},{#SVNAME}]'
              value_type: FLOAT
              description: 'Number of requests whose responses yielded an error.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.eresp
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: component
                  value: responses
                - tag: server
                  value: '{#PXNAME}'
                - tag: service
                  value: '{#SVNAME}'
              trigger_prototypes:
                - uuid: 5a982a97f812468eb8e7163f06f0ee77
                  expression: 'min(/HAProxy by Zabbix agent/haproxy.server.eresp.rate[{#PXNAME},{#SVNAME}],5m)>{$HAPROXY.SERVER_ERESP.MAX.WARN}'
                  name: 'HAProxy: {#PXNAME} {#SVNAME}: Number of responses with error is high'
                  event_name: 'HAProxy: {#PXNAME} {#SVNAME}: Number of responses with error is more than {$HAPROXY.SERVER_ERESP.MAX.WARN} for 5m'
                  priority: WARNING
                  description: 'Number of requests on server, whose responses yielded an error, is more than {$HAPROXY.SERVER_ERESP.MAX.WARN}.'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: 71fbb982c23c498fb52b68b3f839c642
              name: '{#PXNAME} {#SVNAME}: Number of responses with codes 1xx per second'
              type: DEPENDENT
              key: 'haproxy.server.hrsp_1xx.rate[{#PXNAME},{#SVNAME}]'
              value_type: FLOAT
              description: 'Number of informational HTTP responses per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.hrsp_1xx
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: component
                  value: responses
                - tag: server
                  value: '{#PXNAME}'
                - tag: service
                  value: '{#SVNAME}'
            - uuid: a1aa6301ea1445bdbc509ec31cc9ebfc
              name: '{#PXNAME} {#SVNAME}: Number of responses with codes 2xx per second'
              type: DEPENDENT
              key: 'haproxy.server.hrsp_2xx.rate[{#PXNAME},{#SVNAME}]'
              value_type: FLOAT
              description: 'Number of successful HTTP responses per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.hrsp_2xx
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: component
                  value: responses
                - tag: server
                  value: '{#PXNAME}'
                - tag: service
                  value: '{#SVNAME}'
            - uuid: 5b5576604886429ca22db333c9886c25
              name: '{#PXNAME} {#SVNAME}: Number of responses with codes 3xx per second'
              type: DEPENDENT
              key: 'haproxy.server.hrsp_3xx.rate[{#PXNAME},{#SVNAME}]'
              value_type: FLOAT
              description: 'Number of HTTP redirections per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.hrsp_3xx
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: component
                  value: responses
                - tag: server
                  value: '{#PXNAME}'
                - tag: service
                  value: '{#SVNAME}'
            - uuid: 3af9ae3041bb4cd588cc6048370d9be7
              name: '{#PXNAME} {#SVNAME}: Number of responses with codes 4xx per second'
              type: DEPENDENT
              key: 'haproxy.server.hrsp_4xx.rate[{#PXNAME},{#SVNAME}]'
              value_type: FLOAT
              description: 'Number of HTTP client errors per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.hrsp_4xx
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: component
                  value: responses
                - tag: server
                  value: '{#PXNAME}'
                - tag: service
                  value: '{#SVNAME}'
            - uuid: 9f2f6e181dca47ab8e1ae9064ab9fe15
              name: '{#PXNAME} {#SVNAME}: Number of responses with codes 5xx per second'
              type: DEPENDENT
              key: 'haproxy.server.hrsp_5xx.rate[{#PXNAME},{#SVNAME}]'
              value_type: FLOAT
              description: 'Number of HTTP server errors per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.hrsp_5xx
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: component
                  value: responses
                - tag: server
                  value: '{#PXNAME}'
                - tag: service
                  value: '{#SVNAME}'
            - uuid: 8a7257e803b84783a8c9964807a336a5
              name: '{#PXNAME} {#SVNAME}: Server was selected per second'
              type: DEPENDENT
              key: 'haproxy.server.lbtot.rate[{#PXNAME},{#SVNAME}]'
              value_type: FLOAT
              description: 'Number of times that server was selected.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.lbtot
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: component
                  value: connections
                - tag: server
                  value: '{#PXNAME}'
                - tag: service
                  value: '{#SVNAME}'
            - uuid: 03c6d54204104fa0a320ff76204fc825
              name: '{#PXNAME} {#SVNAME}: Unassigned requests'
              type: DEPENDENT
              key: 'haproxy.server.qcur[{#PXNAME},{#SVNAME}]'
              description: 'Current number of requests unassigned in queue.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.qcur
              master_item:
                key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: component
                  value: requests
                - tag: server
                  value: '{#PXNAME}'
                - tag: service
                  value: '{#SVNAME}'
              trigger_prototypes:
                - uuid: b88e0b4baa2e4738a161a7fc437d6e1c
                  expression: 'min(/HAProxy by Zabbix agent/haproxy.server.qcur[{#PXNAME},{#SVNAME}],5m)>{$HAPROXY.SERVER_QCUR.MAX.WARN}'
                  name: 'HAProxy: {#PXNAME} {#SVNAME}: Current number of requests unassigned in queue is high'
                  event_name: 'HAProxy: {#PXNAME} {#SVNAME}: Current number of requests unassigned in queue is more than {$HAPROXY.SERVER_QCUR.MAX.WARN} for 5m'
                  priority: WARNING
                  description: 'Current number of requests unassigned in queue is more than {$HAPROXY.SERVER_QCUR.MAX.WARN}.'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: 50a837b40d624492b0248324d8b62694
              name: '{#PXNAME} {#SVNAME}: Configured maxqueue'
              type: DEPENDENT
              key: 'haproxy.server.qlimit[{#PXNAME},{#SVNAME}]'
              description: 'Configured maxqueue for the server, or nothing in the value is 0 (default, meaning no limit).'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.qlimit
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
                - type: MATCHES_REGEX
                  parameters:
                    - ^\d+$
                  error_handler: CUSTOM_VALUE
                  error_handler_params: '0'
              master_item:
                key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: component
                  value: queues
                - tag: server
                  value: '{#PXNAME}'
                - tag: service
                  value: '{#SVNAME}'
            - uuid: 58c074ebc26145a6847d425d51f7cbca
              name: '{#PXNAME} {#SVNAME}: Time in queue'
              type: DEPENDENT
              key: 'haproxy.server.qtime[{#PXNAME},{#SVNAME}]'
              value_type: FLOAT
              units: s
              description: 'Average time spent in queue (in ms) for the last 1,024 requests.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.qtime
                - type: MULTIPLIER
                  parameters:
                    - '0.001'
              master_item:
                key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: component
                  value: requests
                - tag: server
                  value: '{#PXNAME}'
                - tag: service
                  value: '{#SVNAME}'
              trigger_prototypes:
                - uuid: abf3d9e3f6fa43d8bf722bcc58c37388
                  expression: 'min(/HAProxy by Zabbix agent/haproxy.server.qtime[{#PXNAME},{#SVNAME}],5m)>{$HAPROXY.SERVER_QTIME.MAX.WARN}'
                  name: 'HAProxy: {#PXNAME} {#SVNAME}: Average time spent in queue is high'
                  event_name: 'HAProxy: {#PXNAME} {#SVNAME}: Average time spent in queue is more than {$HAPROXY.SERVER_QTIME.MAX.WARN} for 5m'
                  priority: WARNING
                  description: 'Average time spent in queue (in ms) for the last 1,024 requests is more than {$HAPROXY.SERVER_QTIME.MAX.WARN}.'
                  tags:
                    - tag: scope
                      value: performance
            - uuid: 3db97a60d637466bb7038dd08b9f5c7e
              name: 'Server {#PXNAME} {#SVNAME}: Raw data'
              type: DEPENDENT
              key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]'
              history: '0'
              value_type: TEXT
              description: 'The raw data of the Server named `{#SVNAME}` and the proxy with the name `{#PXNAME}`'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[?(@.pxname == ''{#PXNAME}'' && @.svname == ''{#SVNAME}'')].first()'
              master_item:
                key: 'web.page.get["{$HAPROXY.STATS.SCHEME}://{$HAPROXY.STATS.HOST}:{$HAPROXY.STATS.PORT}/{$HAPROXY.STATS.PATH};csv"]'
              tags:
                - tag: component
                  value: raw
                - tag: server
                  value: '{#PXNAME}'
                - tag: service
                  value: '{#SVNAME}'
            - uuid: 25c22d3eca2d4eb7b83791d36edcf470
              name: '{#PXNAME} {#SVNAME}: Responses time'
              type: DEPENDENT
              key: 'haproxy.server.rtime[{#PXNAME},{#SVNAME}]'
              value_type: FLOAT
              units: s
              description: 'Average server response time (in ms) for the last 1,024 requests.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.rtime
                - type: MULTIPLIER
                  parameters:
                    - '0.001'
              master_item:
                key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: component
                  value: health
                - tag: server
                  value: '{#PXNAME}'
                - tag: service
                  value: '{#SVNAME}'
              trigger_prototypes:
                - uuid: 51ae2aca459b453cb433c5cc0f043a25
                  expression: 'min(/HAProxy by Zabbix agent/haproxy.server.rtime[{#PXNAME},{#SVNAME}],5m)>{$HAPROXY.SERVER_RTIME.MAX.WARN}'
                  name: 'HAProxy: {#PXNAME} {#SVNAME}: Average response time is high'
                  event_name: 'HAProxy: {#PXNAME} {#SVNAME}: Average response time is more than {$HAPROXY.SERVER_RTIME.MAX.WARN} for 5m'
                  priority: WARNING
                  description: 'Average server response time (in ms) for the last 1,024 requests is more than {$HAPROXY.SERVER_RTIME.MAX.WARN}.'
                  tags:
                    - tag: scope
                      value: performance
            - uuid: 973e886a54374bd4815f71d9f9174e80
              name: '{#PXNAME} {#SVNAME}: Status'
              type: DEPENDENT
              key: 'haproxy.server.status[{#PXNAME},{#SVNAME}]'
              value_type: CHAR
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.status
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 10m
              master_item:
                key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: component
                  value: health
                - tag: server
                  value: '{#PXNAME}'
                - tag: service
                  value: '{#SVNAME}'
              trigger_prototypes:
                - uuid: ec64ec00aa164ac09faf90794264907a
                  expression: 'count(/HAProxy by Zabbix agent/haproxy.server.status[{#PXNAME},{#SVNAME}],#5,"eq","DOWN")=5'
                  name: 'HAProxy: {#PXNAME} {#SVNAME}: Server is DOWN'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'Server is not available.'
                  tags:
                    - tag: scope
                      value: availability
            - uuid: 6f5c20d65ba34afbb47cd65af1d1b368
              name: '{#PXNAME} {#SVNAME}: Sessions per second'
              type: DEPENDENT
              key: 'haproxy.server.stot.rate[{#PXNAME},{#SVNAME}]'
              value_type: FLOAT
              description: 'Cumulative number of sessions (end-to-end connections) per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.stot
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: component
                  value: sessions
                - tag: server
                  value: '{#PXNAME}'
                - tag: service
                  value: '{#SVNAME}'
            - uuid: 02605cd644e14e2398af89433a6d976d
              name: '{#PXNAME} {#SVNAME}: Weight'
              type: DEPENDENT
              key: 'haproxy.server.weight[{#PXNAME},{#SVNAME}]'
              description: 'Effective weight.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.weight
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: component
                  value: balancer
                - tag: server
                  value: '{#PXNAME}'
                - tag: service
                  value: '{#SVNAME}'
            - uuid: 606acc119e0d4d9c934e200e037434fe
              name: '{#PXNAME} {#SVNAME}: Redispatched requests per second'
              type: DEPENDENT
              key: 'haproxy.server.wredis.rate[{#PXNAME},{#SVNAME}]'
              value_type: FLOAT
              description: 'Number of times a request was redispatched to a different backend.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.wredis
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: component
                  value: requests
                - tag: server
                  value: '{#PXNAME}'
                - tag: service
                  value: '{#SVNAME}'
            - uuid: 1e2188320b834562b6b33e96f90a5b44
              name: '{#PXNAME} {#SVNAME}: Retried connections per second'
              type: DEPENDENT
              key: 'haproxy.server.wretr.rate[{#PXNAME},{#SVNAME}]'
              value_type: FLOAT
              description: 'Number of times a connection was retried.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.wretr
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'haproxy.server.raw[{#PXNAME},{#SVNAME}]'
              tags:
                - tag: component
                  value: connections
                - tag: server
                  value: '{#PXNAME}'
                - tag: service
                  value: '{#SVNAME}'
          graph_prototypes:
            - uuid: 15210cbf31ab459ca77d35206255f317
              name: 'HAProxy: {#PXNAME} {#SVNAME} In/Out traffic'
              graph_items:
                - drawtype: GRADIENT_LINE
                  color: 199C0D
                  item:
                    host: 'HAProxy by Zabbix agent'
                    key: 'haproxy.server.bin.rate[{#PXNAME},{#SVNAME}]'
                - sortorder: '1'
                  drawtype: GRADIENT_LINE
                  color: F63100
                  item:
                    host: 'HAProxy by Zabbix agent'
                    key: 'haproxy.server.bout.rate[{#PXNAME},{#SVNAME}]'
            - uuid: 09fb856698f441b29103e3b8c8bcb8dd
              name: 'HAProxy: {#PXNAME} {#SVNAME} Responses by HTTP code'
              type: STACKED
              graph_items:
                - color: 199C0D
                  item:
                    host: 'HAProxy by Zabbix agent'
                    key: 'haproxy.server.hrsp_1xx.rate[{#PXNAME},{#SVNAME}]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'HAProxy by Zabbix agent'
                    key: 'haproxy.server.hrsp_2xx.rate[{#PXNAME},{#SVNAME}]'
                - sortorder: '2'
                  color: 00611C
                  item:
                    host: 'HAProxy by Zabbix agent'
                    key: 'haproxy.server.hrsp_3xx.rate[{#PXNAME},{#SVNAME}]'
                - sortorder: '3'
                  color: F7941D
                  item:
                    host: 'HAProxy by Zabbix agent'
                    key: 'haproxy.server.hrsp_4xx.rate[{#PXNAME},{#SVNAME}]'
                - sortorder: '4'
                  color: FC6EA3
                  item:
                    host: 'HAProxy by Zabbix agent'
                    key: 'haproxy.server.hrsp_5xx.rate[{#PXNAME},{#SVNAME}]'
            - uuid: e3e10b66deb14b33a436481cc34eeb84
              name: 'HAProxy: {#PXNAME} {#SVNAME} Response time and time in queue'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'HAProxy by Zabbix agent'
                    key: 'haproxy.server.rtime[{#PXNAME},{#SVNAME}]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'HAProxy by Zabbix agent'
                    key: 'haproxy.server.qtime[{#PXNAME},{#SVNAME}]'
          master_item:
            key: haproxy.get.nodes
          lld_macro_paths:
            - lld_macro: '{#MODE}'
              path: $.mode
            - lld_macro: '{#PXNAME}'
              path: $.pxname
            - lld_macro: '{#SVNAME}'
              path: $.svname
          overrides:
            - name: 'Discard HTTP status codes'
              step: '1'
              filter:
                conditions:
                  - macro: '{#MODE}'
                    value: tcp
              operations:
                - operator: LIKE
                  value: 'Number of responses with codes'
                  discover: NO_DISCOVER
                  status: ENABLED
      tags:
        - tag: class
          value: software
        - tag: target
          value: haproxy
      macros:
        - macro: '{$HAPROXY.BACK_ERESP.MAX.WARN}'
          value: '10'
          description: 'Maximum of responses with error on BACKEND for trigger expression.'
          config:
            type: TEXT
            priority: '11'
            section_name: Thresholds
            label: 'Max backend error responses'
            description: 'Maximum of responses with error on BACKEND for trigger expression.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$HAPROXY.BACK_QCUR.MAX.WARN}'
          value: '10'
          description: 'Maximum number of requests on BACKEND unassigned in queue for trigger expression.'
          config:
            type: TEXT
            priority: '8'
            section_name: Thresholds
            label: 'Max backend unassigned queue'
            description: 'Maximum number of requests on BACKEND unassigned in queue for trigger expression.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$HAPROXY.BACK_QTIME.MAX.WARN}'
          value: 10s
          description: 'Maximum of average time spent in queue on BACKEND for trigger expression.'
          config:
            type: TEXT
            priority: '10'
            section_name: Thresholds
            label: 'Max backend queue time'
            description: 'Maximum of average time spent in queue on BACKEND for trigger expression.'
        - macro: '{$HAPROXY.BACK_RTIME.MAX.WARN}'
          value: 10s
          description: 'Maximum of average BACKEND response time for trigger expression.'
          config:
            type: TEXT
            priority: '9'
            section_name: Thresholds
            label: 'Max backend response time'
            description: 'Maximum of average BACKEND response time for trigger expression.'
        - macro: '{$HAPROXY.FRONT_DREQ.MAX.WARN}'
          value: '10'
          description: 'The HAProxy maximum denied requests for trigger expression.'
          config:
            type: TEXT
            priority: '6'
            section_name: Thresholds
            label: 'Max denied requests'
            description: 'The HAProxy maximum denied requests for trigger expression.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$HAPROXY.FRONT_EREQ.MAX.WARN}'
          value: '10'
          description: 'The HAProxy maximum number of request errors for trigger expression.'
          config:
            type: TEXT
            priority: '7'
            section_name: Thresholds
            label: 'Max request errors'
            description: 'The HAProxy maximum number of request errors for trigger expression.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$HAPROXY.FRONT_SUTIL.MAX.WARN}'
          value: '80'
          description: 'Maximum of session usage percentage on frontend for trigger expression.'
          config:
            type: TEXT
            priority: '16'
            section_name: Thresholds
            label: 'Max frontend session usage (%)'
            description: 'Maximum of session usage percentage on frontend for trigger expression. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$HAPROXY.RESPONSE_TIME.MAX.WARN}'
          value: 10s
          description: 'The HAProxy stats page maximum response time in seconds for trigger expression.'
          config:
            type: TEXT
            priority: '5'
            section_name: Thresholds
            label: 'Max stats response time (sec)'
            description: 'The HAProxy stats page maximum response time in seconds for trigger expression.'
        - macro: '{$HAPROXY.SERVER_ERESP.MAX.WARN}'
          value: '10'
          description: 'Maximum of responses with error on server for trigger expression.'
          config:
            type: TEXT
            priority: '15'
            section_name: Thresholds
            label: 'Max server error responses'
            description: 'Maximum of responses with error on server for trigger expression.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$HAPROXY.SERVER_QCUR.MAX.WARN}'
          value: '10'
          description: 'Maximum number of requests on server unassigned in queue for trigger expression.'
          config:
            type: TEXT
            priority: '12'
            section_name: Thresholds
            label: 'Max server unassigned queue'
            description: 'Maximum number of requests on server unassigned in queue for trigger expression.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$HAPROXY.SERVER_QTIME.MAX.WARN}'
          value: 10s
          description: 'Maximum of average time spent in queue on server for trigger expression.'
          config:
            type: TEXT
            priority: '14'
            section_name: Thresholds
            label: 'Max server queue time'
            description: 'Maximum of average time spent in queue on server for trigger expression.'
        - macro: '{$HAPROXY.SERVER_RTIME.MAX.WARN}'
          value: 10s
          description: 'Maximum of average server response time for trigger expression.'
          config:
            type: TEXT
            priority: '13'
            section_name: Thresholds
            label: 'Max server response time'
            description: 'Maximum of average server response time for trigger expression.'
        - macro: '{$HAPROXY.STATS.HOST}'
          value: localhost
          description: 'The hostname or IP address of the HAProxy stats host or container.'
          config:
            type: TEXT
            priority: '2'
            label: Address
            description: 'The hostname or IP address of the HAProxy stats host or container.'
        - macro: '{$HAPROXY.STATS.PATH}'
          value: stats
          description: 'The path of HAProxy stats page.'
          config:
            type: TEXT
            priority: '4'
            label: 'Stats page path'
            description: 'The path of HAProxy stats page.'
        - macro: '{$HAPROXY.STATS.PORT}'
          value: '8404'
          description: 'The port of the HAProxy stats host or container.'
          config:
            type: TEXT
            priority: '3'
            label: Port
            description: 'The port of the HAProxy stats host or container. In the range from 1 to 65535 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$HAPROXY.STATS.SCHEME}'
          value: http
          description: 'The scheme of HAProxy stats page(http/https).'
          config:
            type: LIST
            priority: '1'
            label: Scheme
            description: 'The scheme of HAProxy stats page(http/https).'
            options:
              - value: http
                text: http
              - value: https
                text: https
      dashboards:
        - uuid: 6d515de988274ac6b31938eebd175973
          name: 'HAProxy Backend performance'
          pages:
            - widgets:
                - type: graphprototype
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'HAProxy by Zabbix agent'
                        name: 'HAProxy: Backend {#PXNAME} Redispatched requests and retried connections per second'
                    - type: STRING
                      name: reference
                      value: AAAAE
                - type: graphprototype
                  'y': '5'
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'HAProxy by Zabbix agent'
                        name: 'HAProxy: Backend {#PXNAME} Responses by HTTP code'
                    - type: STRING
                      name: reference
                      value: AAAAF
                - type: graphprototype
                  'y': '10'
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'HAProxy by Zabbix agent'
                        name: 'HAProxy: Backend {#PXNAME} In/Out traffic'
                    - type: STRING
                      name: reference
                      value: AAAAG
        - uuid: 7c4decb2fefc4cfe9c4a3f8717d710ca
          name: 'HAProxy Frontend performance'
          pages:
            - widgets:
                - type: graphprototype
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'HAProxy by Zabbix agent'
                        name: 'HAProxy: Frontend {#PXNAME} Requests and sessions per second'
                    - type: STRING
                      name: reference
                      value: AAAAA
                - type: graphprototype
                  'y': '5'
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'HAProxy by Zabbix agent'
                        name: 'HAProxy: Frontend {#PXNAME} Errors and denials per second'
                    - 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: 'HAProxy by Zabbix agent'
                        name: 'HAProxy: Frontend {#PXNAME} Responses by HTTP code'
                    - type: STRING
                      name: reference
                      value: AAAAC
                - type: graphprototype
                  'y': '15'
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'HAProxy by Zabbix agent'
                        name: 'HAProxy: Frontend {#PXNAME} In/Out traffic'
                    - type: STRING
                      name: reference
                      value: AAAAD
        - uuid: ebc5a517fa544fada42550059c014c5b
          name: 'HAProxy Server performance'
          pages:
            - widgets:
                - type: graphprototype
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'HAProxy by Zabbix agent'
                        name: 'HAProxy: {#PXNAME} {#SVNAME} Response time and time in queue'
                    - 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: 'HAProxy by Zabbix agent'
                        name: 'HAProxy: {#PXNAME} {#SVNAME} Responses by HTTP code'
                    - 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: 'HAProxy by Zabbix agent'
                        name: 'HAProxy: {#PXNAME} {#SVNAME} In/Out traffic'
                    - type: STRING
                      name: reference
                      value: AAAAJ
      valuemaps:
        - uuid: bf2e9463450d4f4899abcac85cde0a92
          name: 'Server mode'
          mappings:
            - value: '0'
              newvalue: '-'
            - value: '1'
              newvalue: 'Y'
        - uuid: 4980ec41c6644ecb9d5b52027a381fd8
          name: 'Service state'
          mappings:
            - value: '0'
              newvalue: Down
            - value: '1'
              newvalue: Up
    - uuid: 2f82248e411340429d390e8389850401
      template: 'HashiCorp Vault by HTTP'
      name: 'HashiCorp Vault by HTTP'
      description: |
        Get HashiCorp Vault metrics from Vault API HTTP Prometheus metrics endpoint.
        
        Some metrics may not be collected depending on your Vault instance version and configuration.
        
        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 HashiCorp Vault by Zabbix that work without any external scripts.
        Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
        
        Template `Vault by HTTP` — collects metrics by HTTP agent from `/sys/metrics` API endpoint.
        See https://www.vaultproject.io/api-docs/system/metrics.
        
        ## Setup
        
        > See [Zabbix template operation](https://www.zabbix.com/documentation/8.0/manual/config/templates_out_of_the_box/http) for basic instructions.
        
        Configure Vault API. See [Vault Configuration](https://www.vaultproject.io/docs/configuration).
        Create a Vault service token and set it to the host wizard configuration field `Vault auth token`.
      vendor:
        name: Zabbix
        version: 8.0-1
      groups:
        - name: Templates/Applications
      items:
        - uuid: cd948f4219164c77a17b56f1b01767d0
          name: 'Check mountpoint discovery'
          type: DEPENDENT
          key: vault.check_mountpoint_discovery
          history: '0'
          value_type: TEXT
          preprocessing:
            - type: PROMETHEUS_TO_JSON
              parameters:
                - '{__name__=~"^vault_rollback_attempt_(?:.+?)_count$"}'
              error_handler: DISCARD_VALUE
            - type: JAVASCRIPT
              parameters:
                - |
                  var name,
                  	output = [];
                  
                  JSON.parse(value).forEach(function (v) {
                  	if (name = v.name.match(/^vault_(rollback_attempt|route_rollback)_(.+?)_count$/)) {
                  		output.push(
                  			{
                  				'{#MOUNTPOINT}': name[2].replace(/_/g, '/'),
                  				'{#PATTERN_C}': 'vault_' + name[1] + '_' + name[2] + '_count',
                  				'{#PATTERN_Q}': 'vault_' + name[1] + '_' + name[2]
                  			}
                  		);
                  	}
                  });
                  
                  return JSON.stringify(output);
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 15m
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: discovery
            - tag: component
              value: mountpoint
        - uuid: 940cacdb967c40a1b9fba1c143c8589b
          name: 'Check replication discovery'
          type: DEPENDENT
          key: vault.check_replication_discovery
          history: '0'
          value_type: TEXT
          preprocessing:
            - type: PROMETHEUS_TO_JSON
              parameters:
                - '{__name__=~"^replication_(?:.+)$"}'
              error_handler: DISCARD_VALUE
            - type: JAVASCRIPT
              parameters:
                - 'return JSON.stringify(value !== "[]" ? [{''{#SINGLETON}'': ''''}] : []);'
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 15m
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: discovery
            - tag: component
              value: replication
        - uuid: f9c8f0ec3a5640af8464f69d1cebbd42
          name: 'Check storage discovery'
          type: DEPENDENT
          key: vault.check_storage_discovery
          history: '0'
          value_type: TEXT
          preprocessing:
            - type: PROMETHEUS_TO_JSON
              parameters:
                - '{__name__=~"^vault_(?:.+)_(?:get|put|list|delete)_count$"}'
              error_handler: DISCARD_VALUE
            - type: JAVASCRIPT
              parameters:
                - |
                  var name,
                  	output = [];
                  
                  JSON.parse(value).forEach(function (v) {
                  	if (name = v.name.match(/^vault_((?!barrier).+?)_(get|put|list|delete)_count$/)) {
                  		output.push(
                  			{
                  				'{#STORAGE}': name[1],
                  				'{#OPERATION}': name[2].toUpperCase(),
                  				'{#PATTERN_C}': 'vault_' + name[1] + '_' + name[2] + '_count',
                  				'{#PATTERN_Q}': 'vault_' + name[1] + '_' + name[2]
                  			}
                  		);
                  	}
                  });
                  
                  return JSON.stringify(output);
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 15m
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: discovery
            - tag: component
              value: storage
        - uuid: febb5558b1944187a0ac6e87ed153267
          name: 'Check WAL discovery'
          type: DEPENDENT
          key: vault.check_wal_discovery
          history: '0'
          value_type: TEXT
          preprocessing:
            - type: PROMETHEUS_TO_JSON
              parameters:
                - '{__name__=~"^vault_wal_(?:.+)$"}'
              error_handler: DISCARD_VALUE
            - type: JAVASCRIPT
              parameters:
                - 'return JSON.stringify(value !== "[]" ? [{''{#SINGLETON}'': ''''}] : []);'
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 15m
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: discovery
            - tag: component
              value: wal
        - uuid: 9607f909cfed4515bed2e0ea16749e0d
          name: 'Clear metrics'
          type: DEPENDENT
          key: vault.clear_metrics
          history: '0'
          value_type: TEXT
          preprocessing:
            - type: CHECK_JSON_ERROR
              parameters:
                - $.errors
              error_handler: DISCARD_VALUE
          master_item:
            key: vault.get_metrics
          tags:
            - tag: component
              value: metrics
            - tag: component
              value: raw
        - uuid: a78063c1186540fb88d3b958b14250bf
          name: 'Get health'
          type: HTTP_AGENT
          key: vault.get_health
          history: '0'
          value_type: TEXT
          preprocessing:
            - type: CHECK_NOT_SUPPORTED
              parameters:
                - '-1'
              error_handler: CUSTOM_VALUE
              error_handler_params: '{"healthcheck": 0}'
          url: '{$VAULT.API.SCHEME}://{$VAULT.HOST}:{$VAULT.API.PORT}/v1/sys/health'
          status_codes: '200,429,472,473,503,501'
          headers:
            - name: X-Vault-Token
              value: '{$VAULT.TOKEN}'
          tags:
            - tag: component
              value: health
            - tag: component
              value: raw
        - uuid: f92c90b99edc42d9b170d775c714fa0a
          name: 'Get leader'
          type: HTTP_AGENT
          key: vault.get_leader
          history: '0'
          value_type: TEXT
          preprocessing:
            - type: CHECK_NOT_SUPPORTED
              parameters:
                - '-1'
          url: '{$VAULT.API.SCHEME}://{$VAULT.HOST}:{$VAULT.API.PORT}/v1/sys/leader'
          headers:
            - name: X-Vault-Token
              value: '{$VAULT.TOKEN}'
          tags:
            - tag: component
              value: leader
            - tag: component
              value: raw
        - uuid: 4ccc4256252f4345a264db340f4ddbf5
          name: 'Get metrics'
          type: HTTP_AGENT
          key: vault.get_metrics
          history: '0'
          value_type: TEXT
          preprocessing:
            - type: CHECK_NOT_SUPPORTED
              parameters:
                - '-1'
          url: '{$VAULT.API.SCHEME}://{$VAULT.HOST}:{$VAULT.API.PORT}/v1/sys/metrics?format=prometheus'
          status_codes: '200,503,403'
          headers:
            - name: X-Vault-Token
              value: '{$VAULT.TOKEN}'
          tags:
            - tag: component
              value: metrics
            - tag: component
              value: raw
        - uuid: cf264b78e4c44d49a81eac141a86d011
          name: 'Get metrics error'
          type: DEPENDENT
          key: vault.get_metrics.error
          value_type: CHAR
          description: 'Get metrics error.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.errors[0]'
              error_handler: CUSTOM_VALUE
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
          master_item:
            key: vault.get_metrics
          tags:
            - tag: component
              value: health
            - tag: component
              value: metrics
          triggers:
            - uuid: a43a4139d225461289d16b7a78002cb0
              expression: 'length(last(/HashiCorp Vault by HTTP/vault.get_metrics.error))>0'
              name: 'HashiCorp Vault: Failed to get metrics'
              event_name: 'HashiCorp Vault: Failed to get metrics (error: {ITEM.VALUE})'
              priority: WARNING
              dependencies:
                - name: 'HashiCorp Vault: Vault server is sealed'
                  expression: 'last(/HashiCorp Vault by HTTP/vault.health.sealed)=1'
              tags:
                - tag: scope
                  value: availability
        - uuid: e8cb015d45ad4e3b9f87d3cbbae3a980
          name: 'Get tokens'
          type: SCRIPT
          key: vault.get_tokens
          delay: 15m
          history: '0'
          value_type: TEXT
          params: |
            var params = JSON.parse(value);
            
            params['url'] = params.scheme + '://'
            	+ params.host + ':'
            	+ params.port + '/v1/auth/token/lookup-accessor';
            
            var request = new HttpRequest(),
            	output = [];
            
            request.addHeader('X-Vault-Token: ' + params.token);
            
            params.accessors.trim().split(/\x20+/).forEach(function (accessor) {
            	if (!accessor) {
            		return;
            	}
            
            	var response,
            		data = {},
            		error_msg = '';
            
            	try {
            		response = request.post(params.url, JSON.stringify({ accessor: accessor }));
            		Zabbix.log(4, '[ Vault API ] Received response with status code ' + request.getStatus() + ': ' + response);
            
            		if (response !== null) {
            			try {
            				response = JSON.parse(response);
            			}
            			catch (error) {
            				throw 'Failed to parse response received from Vault API. Check debug log for more information.';
            			}
            		}
            
            		if (request.getStatus() !== 200) {
            			throw response.errors && response.errors[0] || JSON.stringify(response);
            		}
            
            		if (typeof response !== 'object' || typeof response.data === 'undefined') {
            			throw 'Cannot lookup token from Vault API. Check debug log for more information.';
            		}
            
            		data = response.data;
            	}
            	catch (error) {
            		error_msg = error;
            	}
            
            	output.push({
            		'accessor': accessor,
            		'token_name': data.display_name || 'null',
            		'ttl': data.ttl || 0,
            		'has_ttl': !!data.expire_time,
            		'error': error_msg.toString()
            	});
            });
            
            return JSON.stringify(output);
          description: 'Get information about tokens via their accessors. Accessors are defined in the macro "{$VAULT.TOKEN.ACCESSORS}".'
          parameters:
            - name: accessors
              value: '{$VAULT.TOKEN.ACCESSORS}'
            - name: host
              value: '{$VAULT.HOST}'
            - name: port
              value: '{$VAULT.API.PORT}'
            - name: scheme
              value: '{$VAULT.API.SCHEME}'
            - name: token
              value: '{$VAULT.TOKEN}'
          tags:
            - tag: component
              value: raw
            - tag: component
              value: tokens
        - uuid: df395f64c8fc45d2a9442bb655474b4a
          name: Healthcheck
          type: DEPENDENT
          key: vault.health.check
          description: 'Vault healthcheck.'
          valuemap:
            name: 'Service state'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.healthcheck
              error_handler: CUSTOM_VALUE
              error_handler_params: '1'
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
          master_item:
            key: vault.get_health
          tags:
            - tag: component
              value: health
          triggers:
            - uuid: 93b4ae5089834a87ae41091fc9773501
              expression: 'last(/HashiCorp Vault by HTTP/vault.health.check)=0'
              name: 'HashiCorp Vault: Vault server is not responding'
              priority: HIGH
              tags:
                - tag: scope
                  value: availability
        - uuid: 05c46e931d29415f9a6a32f4dadd1eed
          name: Initialized
          type: DEPENDENT
          key: vault.health.initialized
          description: 'Initialization status.'
          valuemap:
            name: 'Vault flag'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.initialized
              error_handler: DISCARD_VALUE
            - type: BOOL_TO_DECIMAL
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
          master_item:
            key: vault.get_health
          tags:
            - tag: component
              value: health
        - uuid: 75a3c56f1bb24646927cf9b490471cae
          name: 'Performance standby'
          type: DEPENDENT
          key: vault.health.performance_standby
          description: 'Performance standby status.'
          valuemap:
            name: 'Vault flag'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.performance_standby
              error_handler: DISCARD_VALUE
            - type: BOOL_TO_DECIMAL
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
          master_item:
            key: vault.get_health
          tags:
            - tag: component
              value: health
        - uuid: 488a43102a304f7ab4d2586088a2fded
          name: 'Disaster Recovery replication'
          type: DEPENDENT
          key: vault.health.replication_dr_mode
          value_type: CHAR
          description: |
            Disaster recovery replication mode
            https://www.vaultproject.io/docs/enterprise/replication
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.replication_dr_mode
              error_handler: DISCARD_VALUE
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
          master_item:
            key: vault.get_health
          tags:
            - tag: component
              value: health
        - uuid: 509982bde325478a9d77f99c256f1068
          name: 'Performance replication'
          type: DEPENDENT
          key: vault.health.replication_performance_mode
          value_type: CHAR
          description: |
            Performance replication mode
            https://www.vaultproject.io/docs/enterprise/replication
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.replication_performance_mode
              error_handler: DISCARD_VALUE
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
          master_item:
            key: vault.get_health
          tags:
            - tag: component
              value: health
        - uuid: e6d2183bb8b14fa3a647d5cea1f56d4c
          name: Sealed
          type: DEPENDENT
          key: vault.health.sealed
          description: 'Seal status.'
          valuemap:
            name: 'Vault flag'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.sealed
              error_handler: DISCARD_VALUE
            - type: BOOL_TO_DECIMAL
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
          master_item:
            key: vault.get_health
          tags:
            - tag: component
              value: health
          triggers:
            - uuid: 3f4ebf7094914c219ac32132400f90c8
              expression: 'last(/HashiCorp Vault by HTTP/vault.health.sealed)=1'
              name: 'HashiCorp Vault: Vault server is sealed'
              priority: AVERAGE
              description: 'https://www.vaultproject.io/docs/concepts/seal'
              tags:
                - tag: scope
                  value: availability
        - uuid: 0641c979cf774d97a9bc52dbaffe8a0f
          name: Standby
          type: DEPENDENT
          key: vault.health.standby
          description: 'Standby status.'
          valuemap:
            name: 'Vault flag'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.standby
              error_handler: DISCARD_VALUE
            - type: BOOL_TO_DECIMAL
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
          master_item:
            key: vault.get_health
          tags:
            - tag: component
              value: health
        - uuid: e7e79cc09faa409dbe3fa74e1db4cb5f
          name: Version
          type: DEPENDENT
          key: vault.health.version
          value_type: CHAR
          description: 'Server version.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.version
              error_handler: DISCARD_VALUE
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
          master_item:
            key: vault.get_health
          tags:
            - tag: component
              value: health
          triggers:
            - uuid: ee9a561165b847c2a0719a767e5c4fe9
              expression: 'last(/HashiCorp Vault by HTTP/vault.health.version,#1)<>last(/HashiCorp Vault by HTTP/vault.health.version,#2) and length(last(/HashiCorp Vault by HTTP/vault.health.version))>0'
              name: 'HashiCorp Vault: Version has changed'
              event_name: 'HashiCorp Vault: Version has changed (new version: {ITEM.VALUE})'
              priority: INFO
              description: 'Vault version has changed. Acknowledge to close the problem manually.'
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: notice
        - uuid: 77da3cf43b0d4a449399f3de6d5e8477
          name: 'HA enabled'
          type: DEPENDENT
          key: vault.leader.ha_enabled
          description: 'HA enabled status.'
          valuemap:
            name: 'Vault flag'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.ha_enabled
            - type: BOOL_TO_DECIMAL
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
          master_item:
            key: vault.get_leader
          tags:
            - tag: component
              value: leader
        - uuid: ea6a7f625c144dc6beff71d3a19004ab
          name: 'Is leader'
          type: DEPENDENT
          key: vault.leader.is_self
          description: 'Leader status.'
          valuemap:
            name: 'Vault flag'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.is_self
            - type: BOOL_TO_DECIMAL
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
          master_item:
            key: vault.get_leader
          tags:
            - tag: component
              value: leader
        - uuid: f23cbc80bf2d4064bf45cc27f6ec752e
          name: 'Audit log request failures, rate'
          type: DEPENDENT
          key: vault.metrics.audit.log.request.failure.rate
          value_type: FLOAT
          description: 'Number of audit log request failures.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_audit_log_request_failure
                - value
                - ''
              error_handler: DISCARD_VALUE
            - type: CHANGE_PER_SECOND
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: audit_log
        - uuid: 33f2ce934ae5451dace5f880b3a2e6b7
          name: 'Audit log requests, rate'
          type: DEPENDENT
          key: vault.metrics.audit.log.request.rate
          value_type: FLOAT
          units: rps
          description: 'Number of all audit log requests across all audit log devices.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_audit_log_request_count
                - value
                - ''
              error_handler: DISCARD_VALUE
            - type: CHANGE_PER_SECOND
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: audit_log
        - uuid: 6b8b37e62e374bc38994c5dcc6f0fc6d
          name: 'Audit log response failures, rate'
          type: DEPENDENT
          key: vault.metrics.audit.log.response.failure.rate
          value_type: FLOAT
          description: 'Number of audit log response failures.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_audit_log_response_failure
                - value
                - ''
              error_handler: DISCARD_VALUE
            - type: CHANGE_PER_SECOND
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: audit_log
        - uuid: c336a5cecd4641b58be6ab1ba511f6ef
          name: 'Audit log response, rate'
          type: DEPENDENT
          key: vault.metrics.audit.log.response.rate
          value_type: FLOAT
          units: rps
          description: 'Number of audit log responses across all audit log devices.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_audit_log_response_count
                - value
                - ''
              error_handler: DISCARD_VALUE
            - type: CHANGE_PER_SECOND
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: audit_log
        - uuid: e1d11f77e8394b22b88ddcf9a1b8159b
          name: 'Barrier DELETE ops, rate'
          type: DEPENDENT
          key: vault.metrics.barrier.delete.rate
          value_type: FLOAT
          description: 'Number of DELETE operations at the barrier.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_barrier_delete_count
                - value
                - ''
              error_handler: DISCARD_VALUE
            - type: CHANGE_PER_SECOND
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: barrier
        - uuid: 8a854323d051485091917391c630cc28
          name: 'Barrier LIST ops, rate'
          type: DEPENDENT
          key: vault.metrics.barrier.list.rate
          value_type: FLOAT
          description: 'Number of LIST operations at the barrier.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_barrier_list_count
                - value
                - ''
              error_handler: DISCARD_VALUE
            - type: CHANGE_PER_SECOND
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: barrier
        - uuid: 1dbf0413b1574f6e9b04abe5d06ab8aa
          name: 'Barrier PUT ops, rate'
          type: DEPENDENT
          key: vault.metrics.barrier.put.rate
          value_type: FLOAT
          description: 'Number of PUT operations at the barrier.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_barrier_put_count
                - value
                - ''
              error_handler: DISCARD_VALUE
            - type: CHANGE_PER_SECOND
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: barrier
        - uuid: f0069229811749e5b399f1214176ae11
          name: 'Cache hit, rate'
          type: DEPENDENT
          key: vault.metrics.cache.hit.rate
          value_type: FLOAT
          description: 'Number of times a value was retrieved from the LRU cache.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_cache_hit
                - value
                - ''
              error_handler: DISCARD_VALUE
            - type: CHANGE_PER_SECOND
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: cache
        - uuid: 4df07a4ea4a048c7bc11b21b56cf96c6
          name: 'Cache miss, rate'
          type: DEPENDENT
          key: vault.metrics.cache.miss.rate
          value_type: FLOAT
          description: 'Number of times a value was not in the LRU cache. The results in a read from the configured storage.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_cache_miss
                - value
                - ''
              error_handler: DISCARD_VALUE
            - type: CHANGE_PER_SECOND
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: cache
        - uuid: d99841c57aa349ae8676072e12add35c
          name: 'Cache write, rate'
          type: DEPENDENT
          key: vault.metrics.cache.write.rate
          value_type: FLOAT
          description: 'Number of times a value was written to the LRU cache.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_cache_write
                - value
                - ''
              error_handler: DISCARD_VALUE
            - type: CHANGE_PER_SECOND
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: cache
        - uuid: 004f1eebd08c46d4bbdab7a6c6e3f3ec
          name: 'Check token, rate'
          type: DEPENDENT
          key: vault.metrics.core.check.token.rate
          value_type: FLOAT
          description: 'Number of token checks handled by Vault core.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_core_check_token_count
                - value
                - ''
              error_handler: DISCARD_VALUE
            - type: CHANGE_PER_SECOND
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: core
        - uuid: 77bf09bd2b554e5a8d0dde53045f05c7
          name: 'Fetch ACL and token, rate'
          type: DEPENDENT
          key: vault.metrics.core.fetch.acl_and_token
          value_type: FLOAT
          description: 'Number of ACL and corresponding token entry fetches handled by Vault core.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_core_fetch_acl_and_token_count
                - value
                - ''
              error_handler: DISCARD_VALUE
            - type: CHANGE_PER_SECOND
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: core
        - uuid: 4ddf18c7768147a396fe13608b5508fb
          name: 'Requests, rate'
          type: DEPENDENT
          key: vault.metrics.core.handle.request
          value_type: FLOAT
          description: 'Number of requests handled by Vault core.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_core_handle_request_count
                - value
                - ''
              error_handler: DISCARD_VALUE
            - type: CHANGE_PER_SECOND
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: core
        - uuid: 2aa54d38cc2541e3ae4df89e86d63d20
          name: 'Leadership setup failed, counter'
          type: DEPENDENT
          key: vault.metrics.core.leadership.setup_failed
          description: 'Cluster leadership setup failures which have occurred in a highly available Vault cluster.'
          preprocessing:
            - type: PROMETHEUS_TO_JSON
              parameters:
                - vault_core_leadership_setup_failed
            - type: JSONPATH
              parameters:
                - '$[?(@.name=="vault_core_leadership_setup_failed")].value.sum()'
              error_handler: CUSTOM_VALUE
              error_handler_params: '0'
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: core
          triggers:
            - uuid: c68ab0c784314291bde1cc8693fd5959
              expression: '(max(/HashiCorp Vault by HTTP/vault.metrics.core.leadership.setup_failed,1h)-min(/HashiCorp Vault by HTTP/vault.metrics.core.leadership.setup_failed,1h))>{$VAULT.LEADERSHIP.SETUP.FAILED.MAX.WARN}'
              name: 'HashiCorp Vault: High frequency of leadership setup failures'
              event_name: 'HashiCorp Vault: High frequency of leadership setup failures (over {$VAULT.LEADERSHIP.SETUP.FAILED.MAX.WARN} for 1h)'
              priority: AVERAGE
              description: 'There have been more than {$VAULT.LEADERSHIP.SETUP.FAILED.MAX.WARN} Vault leadership setup failures in the past 1h.'
              tags:
                - tag: scope
                  value: performance
        - uuid: f0ca68774b5842d7803d2c2619958184
          name: 'Leadership setup lost, counter'
          type: DEPENDENT
          key: vault.metrics.core.leadership_lost
          description: 'Cluster leadership losses which have occurred in a highly available Vault cluster.'
          preprocessing:
            - type: PROMETHEUS_TO_JSON
              parameters:
                - vault_core_leadership_lost_count
            - type: JSONPATH
              parameters:
                - '$[?(@.name=="vault_core_leadership_lost_count")].value.sum()'
              error_handler: CUSTOM_VALUE
              error_handler_params: '0'
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: core
          triggers:
            - uuid: 8d7f4f51272a4ce5a3a7ab9642e51d63
              expression: '(max(/HashiCorp Vault by HTTP/vault.metrics.core.leadership_lost,1h)-min(/HashiCorp Vault by HTTP/vault.metrics.core.leadership_lost,1h))>{$VAULT.LEADERSHIP.LOSSES.MAX.WARN}'
              name: 'HashiCorp Vault: High frequency of leadership losses'
              event_name: 'HashiCorp Vault: High frequency of leadership losses (over {$VAULT.LEADERSHIP.LOSSES.MAX.WARN} for 1h)'
              priority: AVERAGE
              description: 'There have been more than {$VAULT.LEADERSHIP.LOSSES.MAX.WARN} Vault leadership losses in the past 1h.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 2bdb273b513d4a06914cd6ea11ac2368
          name: 'Post-unseal ops, counter'
          type: DEPENDENT
          key: vault.metrics.core.post_unseal
          description: 'Duration of time taken by post-unseal operations handled by Vault core.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_core_post_unseal_count
                - value
                - ''
              error_handler: DISCARD_VALUE
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: core
        - uuid: 81738d2323a94aa8a7f2b1d9721ac9f9
          name: 'Pre-seal ops, counter'
          type: DEPENDENT
          key: vault.metrics.core.pre_seal
          description: 'Duration of time taken by pre-seal operations.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_core_pre_seal_count
                - value
                - ''
              error_handler: DISCARD_VALUE
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: core
        - uuid: 42d7e5c3d5b24a65b9821e1aaf0df2a0
          name: 'Seal ops, counter'
          type: DEPENDENT
          key: vault.metrics.core.seal
          value_type: FLOAT
          description: 'Duration of time taken by seal operations.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_core_seal_count
                - value
                - ''
              error_handler: DISCARD_VALUE
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: core
        - uuid: 95f6ab7294c547e7976a292447ef31fb
          name: 'Internal seal ops, counter'
          type: DEPENDENT
          key: vault.metrics.core.seal_internal
          description: 'Duration of time taken by internal seal operations.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_core_seal_internal_count
                - value
                - ''
              error_handler: DISCARD_VALUE
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: core
        - uuid: e0ecf5aa8c2a4e0886b5a12588839efd
          name: 'Requested seal ops, counter'
          type: DEPENDENT
          key: vault.metrics.core.seal_with_request
          description: 'Duration of time taken by requested seal operations.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_core_seal_with_request_count
                - value
                - ''
              error_handler: DISCARD_VALUE
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: core
        - uuid: 1d66f20a1d594b4fa7c81849b83a4ef9
          name: 'Leadership step downs, counter'
          type: DEPENDENT
          key: vault.metrics.core.step_down
          description: 'Cluster leadership step down.'
          preprocessing:
            - type: PROMETHEUS_TO_JSON
              parameters:
                - vault_core_step_down_count
            - type: JSONPATH
              parameters:
                - '$[?(@.name=="vault_core_step_down_count")].value.sum()'
              error_handler: CUSTOM_VALUE
              error_handler_params: '0'
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: core
          triggers:
            - uuid: 5f2895eb5a94441f858c573584ec8b19
              expression: '(max(/HashiCorp Vault by HTTP/vault.metrics.core.step_down,1h)-min(/HashiCorp Vault by HTTP/vault.metrics.core.step_down,1h))>{$VAULT.LEADERSHIP.STEPDOWNS.MAX.WARN}'
              name: 'HashiCorp Vault: High frequency of leadership step downs'
              event_name: 'HashiCorp Vault: High frequency of leadership step downs (over {$VAULT.LEADERSHIP.STEPDOWNS.MAX.WARN} for 1h)'
              priority: AVERAGE
              description: 'There have been more than {$VAULT.LEADERSHIP.STEPDOWNS.MAX.WARN} Vault leadership step downs in the past 1h.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 075c83114d1746b6b773579404e0268d
          name: 'Unseal ops, counter'
          type: DEPENDENT
          key: vault.metrics.core.unseal
          description: 'Duration of time taken by unseal operations.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_core_unseal_count
                - value
                - ''
              error_handler: DISCARD_VALUE
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: core
        - uuid: 5edebc9e295844ee8716d2b17152bdd9
          name: 'Fetch lease times, counter'
          type: DEPENDENT
          key: vault.metrics.expire.fetch.lease.times
          description: 'Time taken to fetch lease times.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_expire_fetch_lease_times_count
                - value
                - ''
              error_handler: DISCARD_VALUE
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: expire
        - uuid: 7f3ab929e48848e294cfa68b8e1783ad
          name: 'Fetch lease times by token, counter'
          type: DEPENDENT
          key: vault.metrics.expire.fetch.lease.times.by_token
          description: 'Time taken to fetch lease times by token.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_expire_fetch_lease_times_by_token_count
                - value
                - ''
              error_handler: DISCARD_VALUE
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: expire
        - uuid: 66f1855a47624f10ae69735053e326f1
          name: 'Number of expiring leases'
          type: DEPENDENT
          key: vault.metrics.expire.num_leases
          description: 'Number of all leases which are eligible for eventual expiry.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_expire_num_leases
                - value
                - ''
              error_handler: DISCARD_VALUE
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: expire
        - uuid: b160780f06c846809f7aca043777754f
          name: 'Register ops, count'
          type: DEPENDENT
          key: vault.metrics.expire.register
          value_type: FLOAT
          description: 'Time taken for register operations.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_expire_register_count
                - value
                - ''
              error_handler: DISCARD_VALUE
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: expire
        - uuid: 89dcbfb69b8a44dcbf330d16d292ec1b
          name: 'Register auth ops, count'
          type: DEPENDENT
          key: vault.metrics.expire.register.auth
          value_type: FLOAT
          description: 'Time taken for register authentication operations which create lease entries without lease ID.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_expire_register_auth_count
                - value
                - ''
              error_handler: DISCARD_VALUE
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: expire
        - uuid: 2d418cd62ada44c6bd527db8da0731e1
          name: 'Expire renew, count'
          type: DEPENDENT
          key: vault.metrics.expire.renew
          value_type: FLOAT
          description: 'Time taken to renew a lease.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_expire_renew_count
                - value
                - ''
              error_handler: DISCARD_VALUE
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: expire
        - uuid: 091c66e0f2794a72a97ddfc3a7142b72
          name: 'Renew token, count'
          type: DEPENDENT
          key: vault.metrics.expire.renew_token
          value_type: FLOAT
          description: 'Time taken to renew a token which does not need to invoke a logical backend.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_expire_renew_token_count
                - value
                - ''
              error_handler: DISCARD_VALUE
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: expire
        - uuid: 21a1b8470a31484da1e3fd76d3c8094b
          name: 'Expire revoke, count'
          type: DEPENDENT
          key: vault.metrics.expire.revoke
          value_type: FLOAT
          description: 'Time taken to revoke a token.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_expire_revoke_count
                - value
                - ''
              error_handler: DISCARD_VALUE
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: expire
        - uuid: bc023bdad9504a86b17d2308db62e98f
          name: 'Revoke secrets by token, count'
          type: DEPENDENT
          key: vault.metrics.expire.revoke.by_token
          value_type: FLOAT
          description: 'Time taken to revoke all secrets issued with a given token.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_expire_revoke_by_token_count
                - value
                - ''
              error_handler: DISCARD_VALUE
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: expire
        - uuid: 6bed679f33b4415d833cb5033c5f824c
          name: 'Expire revoke force, count'
          type: DEPENDENT
          key: vault.metrics.expire.revoke.force
          value_type: FLOAT
          description: 'Time taken to forcibly revoke a token.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_expire_revoke_force_count
                - value
                - ''
              error_handler: DISCARD_VALUE
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: expire
        - uuid: 93041bd251d148c39e6e2e162f6f1078
          name: 'Expire revoke prefix, count'
          type: DEPENDENT
          key: vault.metrics.expire.revoke.prefix
          value_type: FLOAT
          description: 'Tokens revoke on a prefix.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_expire_revoke_prefix_count
                - value
                - ''
              error_handler: DISCARD_VALUE
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: expire
        - uuid: 5c3e5032315e466e81fca67ea880b33a
          name: 'Policy DELETE ops, rate'
          type: DEPENDENT
          key: vault.metrics.policy.delete_policy.rate
          value_type: FLOAT
          description: 'Number of operations to delete a policy.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_policy_delete_policy_count
                - value
                - ''
              error_handler: DISCARD_VALUE
            - type: CHANGE_PER_SECOND
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: policy
        - uuid: bd790a83c48e4ea6bcc9271703036101
          name: 'Policy GET ops, rate'
          type: DEPENDENT
          key: vault.metrics.policy.get_policy.rate
          value_type: FLOAT
          description: 'Number of operations to get a policy.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_policy_get_policy_count
                - value
                - ''
              error_handler: DISCARD_VALUE
            - type: CHANGE_PER_SECOND
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: policy
        - uuid: 6650bc3487934dcebc2e1f4da2e1db13
          name: 'Policy LIST ops, rate'
          type: DEPENDENT
          key: vault.metrics.policy.list_policies.rate
          value_type: FLOAT
          description: 'Number of operations to list policies.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_policy_list_policies_count
                - value
                - ''
              error_handler: DISCARD_VALUE
            - type: CHANGE_PER_SECOND
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: policy
        - uuid: c8010706f8274e898812b722a82e9add
          name: 'Policy SET ops, rate'
          type: DEPENDENT
          key: vault.metrics.policy.set_policy.rate
          value_type: FLOAT
          description: 'Number of operations to set a policy.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_policy_set_policy_count
                - value
                - ''
              error_handler: DISCARD_VALUE
            - type: CHANGE_PER_SECOND
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: policy
        - uuid: d7602cb55879403982afeabecb4c130a
          name: 'Process CPU seconds, total'
          type: DEPENDENT
          key: vault.metrics.process.cpu.seconds.total
          value_type: FLOAT
          units: s
          description: 'Total user and system CPU time spent in seconds.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - process_cpu_seconds_total
                - value
                - ''
              error_handler: DISCARD_VALUE
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: process
        - uuid: 095af4564c5445c0be7ad38811404535
          name: 'Open file descriptors, max'
          type: DEPENDENT
          key: vault.metrics.process.max.fds
          value_type: FLOAT
          description: 'Maximum number of open file descriptors.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - process_max_fds
                - value
                - ''
              error_handler: DISCARD_VALUE
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: process
        - uuid: 0b2c6c947c46409b93acea8e67a0f058
          name: 'Open file descriptors, current'
          type: DEPENDENT
          key: vault.metrics.process.open.fds
          value_type: FLOAT
          description: 'Number of open file descriptors.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - process_open_fds
                - value
                - ''
              error_handler: DISCARD_VALUE
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: process
        - uuid: ddd6b5b8206442a7b5f0026e82bc2bd2
          name: 'Process resident memory'
          type: DEPENDENT
          key: vault.metrics.process.resident_memory.bytes
          value_type: FLOAT
          units: B
          description: 'Resident memory size in bytes.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - process_resident_memory_bytes
                - value
                - ''
              error_handler: DISCARD_VALUE
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: process
        - uuid: 241f8503d30c41df9e902cf31ddf715e
          name: Uptime
          type: DEPENDENT
          key: vault.metrics.process.uptime
          units: s
          description: 'Server uptime.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - process_start_time_seconds
                - value
                - ''
              error_handler: DISCARD_VALUE
            - type: JAVASCRIPT
              parameters:
                - 'return Math.floor(Date.now()/1000 - Number(value));'
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: process
          triggers:
            - uuid: a60eed70ecbc44fa935ec87d83fe4793
              expression: 'last(/HashiCorp Vault by HTTP/vault.metrics.process.uptime)<10m'
              name: 'HashiCorp Vault: Service has been restarted'
              event_name: 'HashiCorp Vault: Service has been restarted (uptime < 10m)'
              priority: INFO
              description: 'Uptime is less than 10 minutes.'
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: notice
        - uuid: bf3a561bc96b46fc9a818a9f43c57be5
          name: 'Process virtual memory, current'
          type: DEPENDENT
          key: vault.metrics.process.virtual_memory.bytes
          value_type: FLOAT
          units: B
          description: 'Virtual memory size in bytes.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - process_virtual_memory_bytes
                - value
                - ''
              error_handler: DISCARD_VALUE
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: process
        - uuid: 17c568d745534c218dc292043234b215
          name: 'Process virtual memory, max'
          type: DEPENDENT
          key: vault.metrics.process.virtual_memory.max.bytes
          value_type: FLOAT
          units: B
          description: 'Maximum amount of virtual memory available in bytes.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - process_virtual_memory_max_bytes
                - value
                - ''
              error_handler: DISCARD_VALUE
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: process
        - uuid: 58e6fbc8a6084008b08c7fc03ad4a703
          name: 'Runtime allocated bytes'
          type: DEPENDENT
          key: vault.metrics.runtime.alloc.bytes
          value_type: FLOAT
          units: B
          description: 'Number of bytes allocated by the Vault process. This could burst from time to time, but should return to a steady state value.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_runtime_alloc_bytes
                - value
                - ''
              error_handler: DISCARD_VALUE
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: runtime
        - uuid: 3b2208b0248b4288ad91a8a5e3090b29
          name: 'Runtime freed objects'
          type: DEPENDENT
          key: vault.metrics.runtime.free.count
          value_type: FLOAT
          description: 'Number of freed objects.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_runtime_free_count
                - value
                - ''
              error_handler: DISCARD_VALUE
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: runtime
        - uuid: c1a159a37d4e4130a4a19d0ded2b0b72
          name: 'Runtime heap objects'
          type: DEPENDENT
          key: vault.metrics.runtime.heap.objects
          value_type: FLOAT
          description: 'Number of objects on the heap. This is a good general memory pressure indicator worth establishing a baseline and thresholds for alerting.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_runtime_heap_objects
                - value
                - ''
              error_handler: DISCARD_VALUE
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: runtime
        - uuid: f8f0f80be7514fe5b085f04858ac4d7a
          name: 'Runtime malloc count'
          type: DEPENDENT
          key: vault.metrics.runtime.malloc.count
          value_type: FLOAT
          description: 'Cumulative count of allocated heap objects.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_runtime_malloc_count
                - value
                - ''
              error_handler: DISCARD_VALUE
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: runtime
        - uuid: b728e92f88db47308272eff7e3bb8c08
          name: 'Runtime num goroutines'
          type: DEPENDENT
          key: vault.metrics.runtime.num_goroutines
          value_type: FLOAT
          description: 'Number of goroutines. This serves as a general system load indicator worth establishing a baseline and thresholds for alerting.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_runtime_num_goroutines
                - value
                - ''
              error_handler: DISCARD_VALUE
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: runtime
        - uuid: 9af322bade374b45b78d949e632747a8
          name: 'Runtime sys bytes'
          type: DEPENDENT
          key: vault.metrics.runtime.sys.bytes
          value_type: FLOAT
          units: B
          description: 'Number of bytes allocated to Vault. This includes what is being used by Vault''s heap and what has been reclaimed but not given back to the operating system.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_runtime_sys_bytes
                - value
                - ''
              error_handler: DISCARD_VALUE
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: runtime
        - uuid: 38f50f3173c346cebe6e321347e0270f
          name: 'Runtime GC runs, total'
          type: DEPENDENT
          key: vault.metrics.runtime.total.gc.runs
          description: 'Total number of garbage collection runs since Vault was last started.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_runtime_total_gc_runs
                - value
                - ''
              error_handler: DISCARD_VALUE
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: runtime
        - uuid: 20f0708b63784c4190e8e6256f2d57f3
          name: 'Secret kv entries'
          type: DEPENDENT
          key: vault.metrics.secret.kv.count
          description: 'Number of entries in each key-value secret engine.'
          preprocessing:
            - type: PROMETHEUS_TO_JSON
              parameters:
                - vault_secret_kv_count
            - type: JSONPATH
              parameters:
                - '$[?(@.name=="vault_secret_kv_count")].value.sum()'
              error_handler: CUSTOM_VALUE
              error_handler_params: '0'
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: secret
        - uuid: 568b4b77ae58468da7bb407d349bd330
          name: 'Token secret lease creation, rate'
          type: DEPENDENT
          key: vault.metrics.secret.lease.creation.rate
          value_type: FLOAT
          description: 'Counts the number of leases created by secret engines.'
          preprocessing:
            - type: PROMETHEUS_TO_JSON
              parameters:
                - vault_secret_lease_creation
            - type: JSONPATH
              parameters:
                - '$[?(@.name=="vault_secret_lease_creation")].value.sum()'
              error_handler: CUSTOM_VALUE
              error_handler_params: '0'
            - type: CHANGE_PER_SECOND
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: secret
        - uuid: 37576dbac47349fca97fe27c4906124d
          name: 'Token count, total'
          type: DEPENDENT
          key: vault.metrics.token
          description: 'Total number of service tokens available for use; counts all un-expired and un-revoked tokens in Vault''s token store. This measurement is performed every 10 minutes.'
          preprocessing:
            - type: PROMETHEUS_TO_JSON
              parameters:
                - vault_token_count
            - type: JSONPATH
              parameters:
                - '$[?(@.name=="vault_token_count")].value.sum()'
              error_handler: CUSTOM_VALUE
              error_handler_params: '0'
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: token
        - uuid: 4c7ae38abae146fdbaf334501b3644f1
          name: 'Token count by auth, total'
          type: DEPENDENT
          key: vault.metrics.token.by_auth
          description: 'Total number of service tokens that were created by an auth method.'
          preprocessing:
            - type: PROMETHEUS_TO_JSON
              parameters:
                - vault_token_count_by_auth
            - type: JSONPATH
              parameters:
                - '$[?(@.name=="vault_token_count_by_auth")].value.sum()'
              error_handler: CUSTOM_VALUE
              error_handler_params: '0'
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: token
        - uuid: 2f9011a7dd6f4b078402dbb50256ee0a
          name: 'Token count by policy, total'
          type: DEPENDENT
          key: vault.metrics.token.by_policy
          description: 'Total number of service tokens that have a policy attached.'
          preprocessing:
            - type: PROMETHEUS_TO_JSON
              parameters:
                - vault_token_count_by_policy
            - type: JSONPATH
              parameters:
                - '$[?(@.name=="vault_token_count_by_policy")].value.sum()'
              error_handler: CUSTOM_VALUE
              error_handler_params: '0'
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: token
        - uuid: c5b512233ae745c390d85e604bf7449e
          name: 'Token count by ttl, total'
          type: DEPENDENT
          key: vault.metrics.token.by_ttl
          description: 'Number of service tokens, grouped by the TTL range they were assigned at creation.'
          preprocessing:
            - type: PROMETHEUS_TO_JSON
              parameters:
                - vault_token_count_by_ttl
            - type: JSONPATH
              parameters:
                - '$[?(@.name=="vault_token_count_by_ttl")].value.sum()'
              error_handler: CUSTOM_VALUE
              error_handler_params: '0'
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: token
        - uuid: 1a203f57eb0647ca98a848913bb5b707
          name: 'Token create, count'
          type: DEPENDENT
          key: vault.metrics.token.create
          value_type: FLOAT
          description: 'The time taken to create a token.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_token_create_count
                - value
                - ''
              error_handler: DISCARD_VALUE
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: token
        - uuid: 0033d69a310041e58107e06a296492bd
          name: 'Token createAccessor, count'
          type: DEPENDENT
          key: vault.metrics.token.createAccessor
          value_type: FLOAT
          description: 'The time taken to create a token accessor.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_token_createAccessor_count
                - value
                - ''
              error_handler: DISCARD_VALUE
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: token
        - uuid: 3c73e0cdfe4147abb86ce939189e4cec
          name: 'Token creation, rate'
          type: DEPENDENT
          key: vault.metrics.token.creation.rate
          value_type: FLOAT
          description: 'Number of service or batch tokens created.'
          preprocessing:
            - type: PROMETHEUS_TO_JSON
              parameters:
                - vault_token_creation
            - type: JSONPATH
              parameters:
                - '$[?(@.name=="vault_token_creation")].value.sum()'
              error_handler: CUSTOM_VALUE
              error_handler_params: '0'
            - type: CHANGE_PER_SECOND
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: token
        - uuid: ad0c38837e774d9b8164bad51ae9fd4c
          name: 'Token lookup, rate'
          type: DEPENDENT
          key: vault.metrics.token.lookup.rate
          value_type: FLOAT
          description: 'Number of token look up.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_token_lookup_count
                - value
                - ''
              error_handler: DISCARD_VALUE
            - type: CHANGE_PER_SECOND
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: token
        - uuid: 0d30ca2565b24659839e7e31fc8f6739
          name: 'Token revoke, count'
          type: DEPENDENT
          key: vault.metrics.token.revoke
          value_type: FLOAT
          description: 'The time taken to look up a token.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_token_revoke_count
                - value
                - ''
              error_handler: DISCARD_VALUE
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: token
        - uuid: c851263be6d94ab39b548a57bbad4eab
          name: 'Token revoke tree, count'
          type: DEPENDENT
          key: vault.metrics.token.revoke.tree
          value_type: FLOAT
          description: 'Time taken to revoke a token tree.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_token_revoke_tree_count
                - value
                - ''
              error_handler: DISCARD_VALUE
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: token
        - uuid: 830ff368911c4532b10ff1e8c6c9e59b
          name: 'Token store, count'
          type: DEPENDENT
          key: vault.metrics.token.store
          value_type: FLOAT
          description: 'Time taken to store an updated token entry without writing to the secondary index.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_token_store_count
                - value
                - ''
              error_handler: DISCARD_VALUE
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: token
        - uuid: 2f0e733e6b1c406b88d012e727ab0169
          name: 'Runtime GC pause, total'
          type: DEPENDENT
          key: vault.metrics.total.gc.pause
          units: s
          description: 'The total garbage collector pause time since Vault was last started.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_runtime_total_gc_pause_ns
                - value
                - ''
              error_handler: DISCARD_VALUE
            - type: MULTIPLIER
              parameters:
                - '1.0E-9'
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: runtime
        - uuid: f616fbcd3d20456bb34cde735cf7fad5
          name: 'Barrier GET ops, rate'
          type: DEPENDENT
          key: vault.metrics.vault.barrier.get.rate
          value_type: FLOAT
          description: 'Number of GET operations at the barrier.'
          preprocessing:
            - type: PROMETHEUS_PATTERN
              parameters:
                - vault_barrier_get_count
                - value
                - ''
              error_handler: DISCARD_VALUE
            - type: CHANGE_PER_SECOND
          master_item:
            key: vault.clear_metrics
          tags:
            - tag: component
              value: barrier
      discovery_rules:
        - uuid: ca7bbea60da54770b164ee11d9cd325f
          name: 'Mountpoint metrics discovery'
          type: DEPENDENT
          key: vault.mountpoint.discovery
          description: 'Mountpoint metrics discovery.'
          item_prototypes:
            - uuid: 3956d1e526d944c7b68d09a1cf52f11e
              name: 'Rollback attempt [{#MOUNTPOINT}] ops, rate'
              type: DEPENDENT
              key: 'vault.metrics.rollback.attempt.rate[{#MOUNTPOINT}]'
              value_type: FLOAT
              description: 'Number of operations to perform a rollback operation on the given mount point.'
              preprocessing:
                - type: PROMETHEUS_PATTERN
                  parameters:
                    - '{#PATTERN_C}'
                    - value
                    - ''
                  error_handler: DISCARD_VALUE
                - type: CHANGE_PER_SECOND
              master_item:
                key: vault.clear_metrics
              tags:
                - tag: component
                  value: mountpoint
                - tag: mountpoint
                  value: '{#MOUNTPOINT}'
            - uuid: e0a4232e6a20433ba26e4313ff9ec1bc
              name: 'Route rollback [{#MOUNTPOINT}] ops, rate'
              type: DEPENDENT
              key: 'vault.metrics.route.rollback.rate[{#MOUNTPOINT}]'
              value_type: FLOAT
              description: 'Number of operations to dispatch a rollback operation to a backend, and for that backend to process it. Rollback operations are automatically scheduled to clean up partial errors.'
              preprocessing:
                - type: PROMETHEUS_PATTERN
                  parameters:
                    - '{#PATTERN_C}'
                    - value
                    - ''
                  error_handler: DISCARD_VALUE
                - type: CHANGE_PER_SECOND
              master_item:
                key: vault.clear_metrics
              tags:
                - tag: component
                  value: mountpoint
                - tag: mountpoint
                  value: '{#MOUNTPOINT}'
          master_item:
            key: vault.check_mountpoint_discovery
        - uuid: f2015f2394a64e7e923a2030400bcd69
          name: 'Replication metrics discovery'
          type: DEPENDENT
          key: vault.replication.discovery
          description: 'Discovery for replication metrics.'
          item_prototypes:
            - uuid: af047eca9606472680288e5b5703bca9
              name: 'Stream WAL guard found, count{#SINGLETON}'
              type: DEPENDENT
              key: 'vault.metrics.logshipper.streamWALs.guard_found[{#SINGLETON}]'
              value_type: FLOAT
              description: 'Number of incidences where the starting Merkle Tree index used to begin streaming WAL entries is matched/found.'
              preprocessing:
                - type: PROMETHEUS_PATTERN
                  parameters:
                    - logshipper_streamWALs_guard_found
                    - value
                    - ''
                  error_handler: DISCARD_VALUE
              master_item:
                key: vault.clear_metrics
              tags:
                - tag: component
                  value: replication
            - uuid: df61d6db369540fd9934648189e9175a
              name: 'Stream WAL missing guard, count{#SINGLETON}'
              type: DEPENDENT
              key: 'vault.metrics.logshipper.streamWALs.missing_guard[{#SINGLETON}]'
              value_type: FLOAT
              description: 'Number of incidences where the starting Merkle Tree index used to begin streaming WAL entries is not matched/found.'
              preprocessing:
                - type: PROMETHEUS_PATTERN
                  parameters:
                    - logshipper_streamWALs_missing_guard
                    - value
                    - ''
                  error_handler: DISCARD_VALUE
              master_item:
                key: vault.clear_metrics
              tags:
                - tag: component
                  value: replication
            - uuid: 288ffb2cd8bc45f39a7e6d98a2100022
              name: 'Last remote WAL{#SINGLETON}'
              type: DEPENDENT
              key: 'vault.metrics.replication.fsm.last_remote_wal[{#SINGLETON}]'
              value_type: FLOAT
              description: 'The index of the last remote WAL.'
              preprocessing:
                - type: PROMETHEUS_PATTERN
                  parameters:
                    - replication_fsm_last_remote_wal
                    - value
                    - ''
                  error_handler: DISCARD_VALUE
              master_item:
                key: vault.clear_metrics
              tags:
                - tag: component
                  value: replication
            - uuid: ca9c56e53093436f99a6a80f499aac45
              name: 'Merkle commit index{#SINGLETON}'
              type: DEPENDENT
              key: 'vault.metrics.replication.merkle.commit_index[{#SINGLETON}]'
              value_type: FLOAT
              description: 'The last committed index in the Merkle Tree.'
              preprocessing:
                - type: PROMETHEUS_PATTERN
                  parameters:
                    - replication_merkle_commit_index
                    - value
                    - ''
                  error_handler: DISCARD_VALUE
              master_item:
                key: vault.clear_metrics
              tags:
                - tag: component
                  value: replication
            - uuid: 854a4541b78c4df6b9d4971d71c7df49
              name: 'Last DR WAL{#SINGLETON}'
              type: DEPENDENT
              key: 'vault.metrics.replication.wal.last_dr_wal[{#SINGLETON}]'
              value_type: FLOAT
              description: 'The index of the last DR WAL.'
              preprocessing:
                - type: PROMETHEUS_PATTERN
                  parameters:
                    - replication_wal_last_dr_wal
                    - value
                    - ''
                  error_handler: DISCARD_VALUE
              master_item:
                key: vault.clear_metrics
              tags:
                - tag: component
                  value: replication
            - uuid: 5aed3273a8c24236817f8bd3b5860f87
              name: 'Last performance WAL{#SINGLETON}'
              type: DEPENDENT
              key: 'vault.metrics.replication.wal.last_performance_wal[{#SINGLETON}]'
              value_type: FLOAT
              description: 'The index of the last Performance WAL.'
              preprocessing:
                - type: PROMETHEUS_PATTERN
                  parameters:
                    - replication_wal_last_performance_wal
                    - value
                    - ''
                  error_handler: DISCARD_VALUE
              master_item:
                key: vault.clear_metrics
              tags:
                - tag: component
                  value: replication
            - uuid: f5bcef9569f44212b813cc0ec821b1ea
              name: 'Last WAL{#SINGLETON}'
              type: DEPENDENT
              key: 'vault.metrics.replication.wal.last_wal[{#SINGLETON}]'
              value_type: FLOAT
              description: 'The index of the last WAL.'
              preprocessing:
                - type: PROMETHEUS_PATTERN
                  parameters:
                    - replication_wal_last_wal
                    - value
                    - ''
                  error_handler: DISCARD_VALUE
              master_item:
                key: vault.clear_metrics
              tags:
                - tag: component
                  value: replication
          master_item:
            key: vault.check_replication_discovery
        - uuid: ef703fedc3b347e9bb878d159d6756d8
          name: 'Storage metrics discovery'
          type: DEPENDENT
          key: vault.storage.discovery
          filter:
            evaltype: AND
            conditions:
              - macro: '{#STORAGE}'
                value: '{$VAULT.LLD.FILTER.STORAGE.MATCHES}'
          description: 'Storage backend metrics discovery.'
          item_prototypes:
            - uuid: 0cdb0bcf0ff448ff8c5d673f9b66d17a
              name: 'Storage [{#STORAGE}] {#OPERATION} ops, rate'
              type: DEPENDENT
              key: 'vault.metrics.storage.rate[{#STORAGE}, {#OPERATION}]'
              value_type: FLOAT
              description: 'Number of a {#OPERATION} operation against the {#STORAGE} storage backend.'
              preprocessing:
                - type: PROMETHEUS_PATTERN
                  parameters:
                    - '{#PATTERN_C}'
                    - value
                    - ''
                  error_handler: DISCARD_VALUE
                - type: CHANGE_PER_SECOND
              master_item:
                key: vault.clear_metrics
              tags:
                - tag: component
                  value: storage
                - tag: operation
                  value: '{#OPERATION}'
                - tag: storage
                  value: '{#STORAGE}'
          master_item:
            key: vault.check_storage_discovery
        - uuid: d580dee4c0bc4a0db91c9c5af70965af
          name: 'Token metrics discovery'
          type: DEPENDENT
          key: vault.tokens.discovery
          description: 'Tokens metrics discovery.'
          item_prototypes:
            - uuid: 9a9359e74c3a48b1bbada84d772e665a
              name: 'Token [{#TOKEN_NAME}] error'
              type: DEPENDENT
              key: 'vault.token_via_accessor.error["{#ACCESSOR}"]'
              value_type: CHAR
              description: 'Token lookup error text.'
              valuemap:
                name: 'Vault flag'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[?(@.accessor == "{#ACCESSOR}")].error.first()'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: vault.get_tokens
              tags:
                - tag: component
                  value: token
                - tag: token
                  value: '{#TOKEN_NAME}'
              trigger_prototypes:
                - uuid: 8cd5d903d4e74974a8469554b737ee3d
                  expression: 'length(last(/HashiCorp Vault by HTTP/vault.token_via_accessor.error["{#ACCESSOR}"]))>0'
                  name: 'HashiCorp Vault: Token [{#TOKEN_NAME}] lookup error occurred'
                  priority: WARNING
                  dependencies:
                    - name: 'HashiCorp Vault: Vault server is sealed'
                      expression: 'last(/HashiCorp Vault by HTTP/vault.health.sealed)=1'
                  tags:
                    - tag: scope
                      value: availability
            - uuid: caa3f9ca96b14b929dd75238602fead9
              name: 'Token [{#TOKEN_NAME}] has TTL'
              type: DEPENDENT
              key: 'vault.token_via_accessor.has_ttl["{#ACCESSOR}"]'
              description: 'The Token has TTL.'
              valuemap:
                name: 'Vault flag'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[?(@.accessor == "{#ACCESSOR}")].has_ttl.first()'
                - type: BOOL_TO_DECIMAL
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: vault.get_tokens
              tags:
                - tag: component
                  value: token
                - tag: token
                  value: '{#TOKEN_NAME}'
            - uuid: 0f872d9d811c44f6a9a9f8f5089ca0a1
              name: 'Token [{#TOKEN_NAME}] TTL'
              type: DEPENDENT
              key: 'vault.token_via_accessor.ttl["{#ACCESSOR}"]'
              units: s
              description: 'The TTL period of the token.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[?(@.accessor == "{#ACCESSOR}")].ttl.first()'
              master_item:
                key: vault.get_tokens
              tags:
                - tag: component
                  value: token
                - tag: token
                  value: '{#TOKEN_NAME}'
          trigger_prototypes:
            - uuid: f4f0db7e26d9470a86d11e86d1ae26e2
              expression: 'last(/HashiCorp Vault by HTTP/vault.token_via_accessor.has_ttl["{#ACCESSOR}"])=1 and last(/HashiCorp Vault by HTTP/vault.token_via_accessor.ttl["{#ACCESSOR}"])<{$VAULT.TOKEN.TTL.MIN.CRIT}'
              name: 'HashiCorp Vault: Token [{#TOKEN_NAME}] will expire soon'
              event_name: 'HashiCorp Vault: Token [{#TOKEN_NAME}] will expire soon (less than {$VAULT.TOKEN.TTL.MIN.CRIT})'
              priority: AVERAGE
              tags:
                - tag: scope
                  value: security
            - uuid: 0e2143a2a46d44778db34ac9af69bbfc
              expression: 'last(/HashiCorp Vault by HTTP/vault.token_via_accessor.has_ttl["{#ACCESSOR}"])=1 and last(/HashiCorp Vault by HTTP/vault.token_via_accessor.ttl["{#ACCESSOR}"])<{$VAULT.TOKEN.TTL.MIN.WARN}'
              name: 'HashiCorp Vault: Token [{#TOKEN_NAME}] will expire soon'
              event_name: 'HashiCorp Vault: Token [{#TOKEN_NAME}] will expire soon (less than {$VAULT.TOKEN.TTL.MIN.WARN})'
              priority: WARNING
              dependencies:
                - name: 'HashiCorp Vault: Token [{#TOKEN_NAME}] will expire soon'
                  expression: 'last(/HashiCorp Vault by HTTP/vault.token_via_accessor.has_ttl["{#ACCESSOR}"])=1 and last(/HashiCorp Vault by HTTP/vault.token_via_accessor.ttl["{#ACCESSOR}"])<{$VAULT.TOKEN.TTL.MIN.CRIT}'
              tags:
                - tag: scope
                  value: security
          master_item:
            key: vault.get_tokens
          lld_macro_paths:
            - lld_macro: '{#ACCESSOR}'
              path: $.accessor
            - lld_macro: '{#TOKEN_NAME}'
              path: $.token_name
        - uuid: ce7b2bb4c09c42d5a4b9e92c1c3dee23
          name: 'WAL metrics discovery'
          type: DEPENDENT
          key: vault.wal.discovery
          description: 'Discovery for WAL metrics.'
          item_prototypes:
            - uuid: 7e21309d1778466cae08e6424108d0e9
              name: 'Delete WALs, count{#SINGLETON}'
              type: DEPENDENT
              key: 'vault.metrics.wal.deletewals[{#SINGLETON}]'
              value_type: FLOAT
              description: 'Time taken to delete a Write Ahead Log (WAL).'
              preprocessing:
                - type: PROMETHEUS_PATTERN
                  parameters:
                    - vault_wal_deletewals_count
                    - value
                    - ''
                  error_handler: DISCARD_VALUE
              master_item:
                key: vault.clear_metrics
              tags:
                - tag: component
                  value: wal
            - uuid: 80d5a79d35bc4b3a970f311b0c8c3fbf
              name: 'Flush ready WAL, count{#SINGLETON}'
              type: DEPENDENT
              key: 'vault.metrics.wal.flushready[{#SINGLETON}]'
              value_type: FLOAT
              description: 'Time taken to flush a ready Write Ahead Log (WAL) to storage.'
              preprocessing:
                - type: PROMETHEUS_PATTERN
                  parameters:
                    - vault_wal_flushready_count
                    - value
                    - ''
                  error_handler: DISCARD_VALUE
              master_item:
                key: vault.clear_metrics
              tags:
                - tag: component
                  value: wal
            - uuid: daee033751164b6591d326d2d59b7e3a
              name: 'GC deleted WAL{#SINGLETON}'
              type: DEPENDENT
              key: 'vault.metrics.wal.gc.deleted[{#SINGLETON}]'
              value_type: FLOAT
              description: 'Number of Write Ahead Logs (WAL) deleted during each garbage collection run.'
              preprocessing:
                - type: PROMETHEUS_PATTERN
                  parameters:
                    - vault_wal_gc_deleted
                    - value
                    - ''
                  error_handler: DISCARD_VALUE
              master_item:
                key: vault.clear_metrics
              tags:
                - tag: component
                  value: wal
            - uuid: b45b43ac739246719e517d04eb384787
              name: 'WALs on disk, total{#SINGLETON}'
              type: DEPENDENT
              key: 'vault.metrics.wal.gc.total[{#SINGLETON}]'
              value_type: FLOAT
              description: 'Total Number of Write Ahead Logs (WAL) on disk.'
              preprocessing:
                - type: PROMETHEUS_PATTERN
                  parameters:
                    - vault_wal_gc_total
                    - value
                    - ''
                  error_handler: DISCARD_VALUE
              master_item:
                key: vault.clear_metrics
              tags:
                - tag: component
                  value: wal
            - uuid: b1e306d6136a4b6d933bd2154b3d5d6e
              name: 'Load WALs, count{#SINGLETON}'
              type: DEPENDENT
              key: 'vault.metrics.wal.loadWAL[{#SINGLETON}]'
              value_type: FLOAT
              description: 'Time taken to load a Write Ahead Log (WAL).'
              preprocessing:
                - type: PROMETHEUS_PATTERN
                  parameters:
                    - vault_wal_loadWAL_count
                    - value
                    - ''
                  error_handler: DISCARD_VALUE
              master_item:
                key: vault.clear_metrics
              tags:
                - tag: component
                  value: wal
            - uuid: de8fea26aa1546d2bdf1ec7dd5205a3b
              name: 'Persist WALs, count{#SINGLETON}'
              type: DEPENDENT
              key: 'vault.metrics.wal.persistwals[{#SINGLETON}]'
              value_type: FLOAT
              description: 'Time taken to persist a Write Ahead Log (WAL).'
              preprocessing:
                - type: PROMETHEUS_PATTERN
                  parameters:
                    - vault_wal_persistwals_count
                    - value
                    - ''
                  error_handler: DISCARD_VALUE
              master_item:
                key: vault.clear_metrics
              tags:
                - tag: component
                  value: wal
          master_item:
            key: vault.check_wal_discovery
      tags:
        - tag: class
          value: software
        - tag: subclass
          value: security
        - tag: target
          value: vault
      macros:
        - macro: '{$VAULT.API.PORT}'
          value: '8200'
          description: 'Vault port.'
          config:
            type: TEXT
            priority: '1'
            label: Port
            description: 'Vault port. In the range from 1 to 65535 inclusive.'
            required: 'YES'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$VAULT.API.SCHEME}'
          value: http
          description: 'Vault API scheme.'
          config:
            type: LIST
            priority: '2'
            label: Scheme
            description: 'Vault API scheme.'
            required: 'YES'
            options:
              - value: http
                text: http
              - value: https
                text: https
        - macro: '{$VAULT.HOST}'
          description: 'Vault host name.'
          config:
            type: TEXT
            priority: '3'
            label: Address
            description: 'Vault host name.'
            required: 'YES'
        - macro: '{$VAULT.LEADERSHIP.LOSSES.MAX.WARN}'
          value: '5'
          description: 'Maximum number of Vault leadership losses.'
          config:
            type: TEXT
            priority: '6'
            section_name: Thresholds
            label: 'Max leadership losses'
            description: 'Maximum number of Vault leadership losses.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$VAULT.LEADERSHIP.SETUP.FAILED.MAX.WARN}'
          value: '5'
          description: 'Maximum number of Vault leadership setup failed.'
          config:
            type: TEXT
            priority: '5'
            section_name: Thresholds
            label: 'Max leadership setup failures'
            description: 'Maximum number of Vault leadership setup failed.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$VAULT.LEADERSHIP.STEPDOWNS.MAX.WARN}'
          value: '5'
          description: 'Maximum number of Vault leadership step downs.'
          config:
            type: TEXT
            priority: '7'
            section_name: Thresholds
            label: 'Max leadership step downs'
            description: 'Maximum number of Vault leadership step downs.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$VAULT.LLD.FILTER.STORAGE.MATCHES}'
          value: .+
          description: 'Filter of discoverable storage backends.'
          config:
            type: TEXT
            priority: '8'
            section_name: Filters
            label: 'Storage backend filter (include)'
            description: 'Filter of discoverable storage backends.'
        - macro: '{$VAULT.OPEN.FDS.MAX.WARN}'
          value: '90'
          description: 'Maximum percentage of used file descriptors for trigger expression.'
          config:
            type: TEXT
            priority: '4'
            section_name: Thresholds
            label: 'Max file descriptors used (%)'
            description: 'Maximum percentage of used file descriptors for trigger expression. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$VAULT.TOKEN}'
          description: 'Vault auth token.'
          config:
            type: TEXT
            priority: '9'
            label: 'Vault auth token'
            description: 'Vault auth token.'
            required: 'YES'
        - macro: '{$VAULT.TOKEN.ACCESSORS}'
          description: 'Vault accessors separated by spaces for monitoring token expiration time.'
          config:
            type: TEXT
            priority: '10'
            label: 'Token accessors for expiration'
            description: 'Vault accessors separated by spaces for monitoring token expiration time.'
            required: 'YES'
        - macro: '{$VAULT.TOKEN.TTL.MIN.CRIT}'
          value: 3d
          description: 'Token TTL critical threshold.'
          config:
            type: TEXT
            priority: '11'
            section_name: Thresholds
            label: 'Token TTL critical limit'
            description: 'Token TTL critical threshold.'
        - macro: '{$VAULT.TOKEN.TTL.MIN.WARN}'
          value: 7d
          description: 'Token TTL warning threshold.'
          config:
            type: TEXT
            priority: '12'
            section_name: Thresholds
            label: 'Token TTL warning limit'
            description: 'Token TTL warning threshold.'
      valuemaps:
        - uuid: 547a6b8002d44a8f8f363023c6097b1e
          name: 'Service state'
          mappings:
            - value: '0'
              newvalue: Down
            - value: '1'
              newvalue: Up
        - uuid: 46edbd58c7384b53bb31775244c23343
          name: 'Vault flag'
          mappings:
            - value: '0'
              newvalue: 'False'
            - value: '1'
              newvalue: 'True'
    - uuid: 57aeccd43b744942b9555269b79a96ad
      template: 'HP Comware HH3C by SNMP'
      name: 'HP Comware HH3C by SNMP'
      description: |
        Template Net HP Comware (HH3C)
        
        MIBs used:
        EtherLike-MIB
        HOST-RESOURCES-MIB
        SNMPv2-MIB
        ENTITY-MIB
        HH3C-ENTITY-EXT-MIB
        IF-MIB
        
        Known Issues:
        
          Description: No temperature sensors. All entities of them return 0 for HH3C-ENTITY-EXT-MIB::hh3cEntityExtTemperature
          Version: 1910-48 Switch Software Version 5.20.99, Release 1116 Copyright(c)2010-2016 Hewlett Packard Enterprise Development LP
          Device: HP 1910-48
        
        Generated by official Zabbix template tool "Templator"
      wizard_ready: 'YES'
      readme: |
        ## Overview
        
        http://certifiedgeek.weebly.com/blog/hp-comware-snmp-mib-for-cpu-memory-and-temperature
        http://www.h3c.com.hk/products___solutions/technology/system_management/configuration_example/200912/656451_57_0.htm
        
        ### Known Issues
        
        Description: No temperature sensors. All entities of them return 0 for HH3C-ENTITY-EXT-MIB::hh3cEntityExtTemperature
        - Version: 1910-48 Switch Software Version 5.20.99, Release 1116 Copyright(c)2010-2016 Hewlett Packard Enterprise Development LP
        - Device: HP 1910-48
      vendor:
        name: Zabbix
        version: 8.0-2
      groups:
        - name: 'Templates/Network devices'
      items:
        - uuid: fbefc108101b48e298a01037d5b3db50
          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: 1bd6a4748e29498e99ccd3b23d83cdf7
              expression: 'max(/HP Comware HH3C by SNMP/icmpping,#3)=0'
              name: 'HP Comware HH3C: Unavailable by ICMP ping'
              priority: HIGH
              description: 'Last three attempts returned timeout. Please check device connectivity.'
              tags:
                - tag: scope
                  value: availability
        - uuid: 49b86b6d17394b859b02ea79c6d28b30
          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: d41edaea369d40d2944af72a3ee76850
              expression: 'min(/HP Comware HH3C by SNMP/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/HP Comware HH3C by SNMP/icmppingloss,5m)<100'
              name: 'HP Comware HH3C: High ICMP ping loss'
              opdata: 'Loss: {ITEM.LASTVALUE1}'
              priority: WARNING
              description: 'ICMP packets loss detected.'
              dependencies:
                - name: 'HP Comware HH3C: Unavailable by ICMP ping'
                  expression: 'max(/HP Comware HH3C by SNMP/icmpping,#3)=0'
              tags:
                - tag: scope
                  value: availability
                - tag: scope
                  value: performance
        - uuid: 1560f8f1509040a783e4149845ce38a3
          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: 2698115b6f014e8cbdb11c2d5eeb8f08
              expression: 'avg(/HP Comware HH3C by SNMP/icmppingsec,5m)>{$ICMP_RESPONSE_TIME_WARN}'
              name: 'HP Comware HH3C: High ICMP ping response time'
              opdata: 'Value: {ITEM.LASTVALUE1}'
              priority: WARNING
              description: 'Average ICMP response time is too high.'
              dependencies:
                - name: 'HP Comware HH3C: High ICMP ping loss'
                  expression: 'min(/HP Comware HH3C by SNMP/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/HP Comware HH3C by SNMP/icmppingloss,5m)<100'
                - name: 'HP Comware HH3C: Unavailable by ICMP ping'
                  expression: 'max(/HP Comware HH3C by SNMP/icmpping,#3)=0'
              tags:
                - tag: scope
                  value: availability
                - tag: scope
                  value: performance
        - uuid: fa164b01a218494dab454126b4f561a9
          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: 6f340c49d4364b8096a49c3fa52e2745
          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: 85e404c0181143f28b1187acb08cfa04
          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: b476c099f8f64aa89cd5f61fc8b47dfa
          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: 3e4feed03de941c98e88e17b3e81b5e4
          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: b57179ad3e5f41f5805e93ff9e68d631
          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: cf1d0aa58a194904902899dbba814514
              expression: 'last(/HP Comware HH3C by SNMP/system.name,#1)<>last(/HP Comware HH3C by SNMP/system.name,#2) and length(last(/HP Comware HH3C by SNMP/system.name))>0'
              name: 'HP Comware HH3C: System name has changed'
              event_name: 'HP Comware HH3C: 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: ac039d3041cc439eb1c3184ed78554d0
          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: 72139a34e0cf4357b86a52cf8430ee8c
          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: c407deea6e0f41b18d84ccbe7fcbca63
          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: bc6e9c399c3d4d43aaeb5a1b03deb7d4
              expression: 'max(/HP Comware HH3C by SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0'
              name: 'HP Comware HH3C: 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: 'HP Comware HH3C: Unavailable by ICMP ping'
                  expression: 'max(/HP Comware HH3C by SNMP/icmpping,#3)=0'
              tags:
                - tag: scope
                  value: availability
      discovery_rules:
        - uuid: ab903dd9cb4b49daba7a1bb0c2c65a1f
          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: 88a392e093444292b3c58c5f9d5305a5
              name: '{#ENT_NAME}: Firmware version'
              type: SNMP_AGENT
              snmp_oid: 'get[1.3.6.1.2.1.47.1.1.1.1.9.{#SNMPINDEX}]'
              key: 'system.hw.firmware[entPhysicalFirmwareRev.{#SNMPINDEX}]'
              delay: 1h
              value_type: CHAR
              description: 'MIB: ENTITY-MIB'
              preprocessing:
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              tags:
                - tag: component
                  value: system
              trigger_prototypes:
                - uuid: 17e0f72418f4432d852b5c39ddf675bd
                  expression: 'last(/HP Comware HH3C by SNMP/system.hw.firmware[entPhysicalFirmwareRev.{#SNMPINDEX}],#1)<>last(/HP Comware HH3C by SNMP/system.hw.firmware[entPhysicalFirmwareRev.{#SNMPINDEX}],#2) and length(last(/HP Comware HH3C by SNMP/system.hw.firmware[entPhysicalFirmwareRev.{#SNMPINDEX}]))>0'
                  name: 'HP Comware HH3C: {#ENT_NAME}: Firmware has changed'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: INFO
                  description: 'Firmware version has changed. Acknowledge to close the problem manually.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: cc241e313bde48e1bd23f3eefb667439
              name: '{#ENT_NAME}: Hardware model name'
              type: SNMP_AGENT
              snmp_oid: 'get[1.3.6.1.2.1.47.1.1.1.1.2.{#SNMPINDEX}]'
              key: 'system.hw.model[entPhysicalDescr.{#SNMPINDEX}]'
              delay: 1h
              value_type: CHAR
              description: 'MIB: ENTITY-MIB'
              preprocessing:
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              tags:
                - tag: component
                  value: system
            - uuid: 9ebc80e149fc4db7a4fb7df2322aad86
              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:
                    - 1d
              tags:
                - tag: component
                  value: system
              trigger_prototypes:
                - uuid: d3633f4584344570a1c0570f0b082590
                  expression: 'last(/HP Comware HH3C by SNMP/system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}],#1)<>last(/HP Comware HH3C by SNMP/system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}],#2) and length(last(/HP Comware HH3C by SNMP/system.hw.serialnumber[entPhysicalSerialNum.{#SNMPINDEX}]))>0'
                  name: 'HP Comware HH3C: {#ENT_NAME}: Device has been replaced'
                  event_name: 'HP Comware HH3C: {#ENT_NAME}: 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: a63db3df3939447397df5bf9a58edde1
              name: '{#ENT_NAME}: Hardware version(revision)'
              type: SNMP_AGENT
              snmp_oid: 'get[1.3.6.1.2.1.47.1.1.1.1.8.{#SNMPINDEX}]'
              key: 'system.hw.version[entPhysicalHardwareRev.{#SNMPINDEX}]'
              delay: 1h
              value_type: CHAR
              description: 'MIB: ENTITY-MIB'
              preprocessing:
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              tags:
                - tag: component
                  value: system
            - uuid: a54f57e58f494300b99161b1fb8f2edf
              name: '{#ENT_NAME}: Operating system'
              type: SNMP_AGENT
              snmp_oid: 'get[1.3.6.1.2.1.47.1.1.1.1.10.{#SNMPINDEX}]'
              key: 'system.sw.os[entPhysicalSoftwareRev.{#SNMPINDEX}]'
              delay: 1h
              value_type: CHAR
              description: 'MIB: ENTITY-MIB'
              preprocessing:
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              tags:
                - tag: component
                  value: os
              trigger_prototypes:
                - uuid: 9e6cccf7daec4405ac3bb1a27670fcee
                  expression: 'last(/HP Comware HH3C by SNMP/system.sw.os[entPhysicalSoftwareRev.{#SNMPINDEX}],#1)<>last(/HP Comware HH3C by SNMP/system.sw.os[entPhysicalSoftwareRev.{#SNMPINDEX}],#2) and length(last(/HP Comware HH3C by SNMP/system.sw.os[entPhysicalSoftwareRev.{#SNMPINDEX}]))>0'
                  name: 'HP Comware HH3C: {#ENT_NAME}: Operating system description has changed'
                  priority: INFO
                  description: 'The description of the operating system has changed. Possible reasons are that the system has been updated or replaced. Acknowledge to close the problem manually.'
                  manual_close: 'YES'
                  dependencies:
                    - name: 'HP Comware HH3C: System name has changed'
                      expression: 'last(/HP Comware HH3C by SNMP/system.name,#1)<>last(/HP Comware HH3C by SNMP/system.name,#2) and length(last(/HP Comware HH3C by SNMP/system.name))>0'
                  tags:
                    - tag: scope
                      value: notice
        - uuid: fdd2fcda49ab4f00861f1a2dcee1dcad
          name: 'FAN 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,{#ENT_DESCR},1.3.6.1.2.1.47.1.1.1.1.2]'
          key: fan.discovery
          delay: 1h
          filter:
            conditions:
              - macro: '{#ENT_CLASS}'
                value: '7'
          description: 'Discovering all entities of PhysicalClass - 7: fan(7)'
          item_prototypes:
            - uuid: 9cacbc1e037a4c0abdf0862014484a3c
              name: '{#ENT_NAME}: Fan status'
              type: SNMP_AGENT
              snmp_oid: 'get[1.3.6.1.4.1.25506.2.6.1.1.1.1.19.{#SNMPINDEX}]'
              key: 'sensor.fan.status[hh3cEntityExtErrorStatus.{#SNMPINDEX}]'
              delay: 3m
              trends: '0'
              description: |
                MIB: HH3C-ENTITY-EXT-MIB
                Indicate the error state of this entity object.
                fanError(41) means that the fan stops working.
              valuemap:
                name: 'HH3C-ENTITY-EXT-MIB::hh3cEntityExtErrorStatus'
              tags:
                - tag: component
                  value: fan
              trigger_prototypes:
                - uuid: b0821c8e75e14e53906c3a3f209a2785
                  expression: 'count(/HP Comware HH3C by SNMP/sensor.fan.status[hh3cEntityExtErrorStatus.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS:\"fanError\"}")=1 or count(/HP Comware HH3C by SNMP/sensor.fan.status[hh3cEntityExtErrorStatus.{#SNMPINDEX}],#1,"eq","{$FAN_CRIT_STATUS:\"hardwareFaulty\"}")=1'
                  name: 'HP Comware HH3C: {#ENT_NAME}: 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
        - uuid: 268421e66ba94cecac8fdeac7dfbffbb
          name: 'Module Discovery'
          type: SNMP_AGENT
          snmp_oid: 'discovery[{#SNMPVALUE},1.3.6.1.2.1.47.1.1.1.1.2,{#MODULE_NAME},1.3.6.1.2.1.47.1.1.1.1.7]'
          key: module.discovery
          delay: 1h
          filter:
            evaltype: OR
            conditions:
              - macro: '{#SNMPVALUE}'
                value: '(Fabric|FABRIC) (.+) (Module|MODULE)'
              - macro: '{#SNMPVALUE}'
                value: '^(MODULE|Module) (LEVEL|level)1$'
          description: 'Filter limits results to ''Module level1'' or Fabric Modules'
          item_prototypes:
            - uuid: edbaa4c5e6e744b3bd4d7ab85b42c1ca
              name: '{#MODULE_NAME}: CPU utilization'
              type: SNMP_AGENT
              snmp_oid: 'get[1.3.6.1.4.1.25506.2.6.1.1.1.1.6.{#SNMPINDEX}]'
              key: 'system.cpu.util[hh3cEntityExtCpuUsage.{#SNMPINDEX}]'
              value_type: FLOAT
              units: '%'
              description: |
                MIB: HH3C-ENTITY-EXT-MIB
                The CPU usage for this entity. Generally, the CPU usage
                will calculate the overall CPU usage on the entity, and it
                is not sensible with the number of CPU on the entity
              tags:
                - tag: component
                  value: cpu
              trigger_prototypes:
                - uuid: 37a4a248c89240fe82c5fd6622123aa0
                  expression: 'min(/HP Comware HH3C by SNMP/system.cpu.util[hh3cEntityExtCpuUsage.{#SNMPINDEX}],5m)>{$CPU.UTIL.CRIT}'
                  name: 'HP Comware HH3C: {#MODULE_NAME}: High CPU utilization'
                  event_name: 'HP Comware HH3C: {#MODULE_NAME}: 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.'
                  tags:
                    - tag: scope
                      value: performance
            - uuid: 3021126f556f4c62b335c8108ba1cff1
              name: '{#MODULE_NAME}: Memory utilization'
              type: SNMP_AGENT
              snmp_oid: 'get[1.3.6.1.4.1.25506.2.6.1.1.1.1.8.{#SNMPINDEX}]'
              key: 'vm.memory.util[hh3cEntityExtMemUsage.{#SNMPINDEX}]'
              value_type: FLOAT
              units: '%'
              description: |
                MIB: HH3C-ENTITY-EXT-MIB
                The memory usage for the entity. This object indicates what
                percent of memory are used.
              tags:
                - tag: component
                  value: memory
              trigger_prototypes:
                - uuid: e8d3cb45afea4cbd935c9ea668746260
                  expression: 'min(/HP Comware HH3C by SNMP/vm.memory.util[hh3cEntityExtMemUsage.{#SNMPINDEX}],5m)>{$MEMORY.UTIL.MAX}'
                  name: 'HP Comware HH3C: {#MODULE_NAME}: High memory utilization'
                  event_name: 'HP Comware HH3C: {#MODULE_NAME}: 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: 2f7801aa39bd486bb9d2ff751c98559b
              name: '{#MODULE_NAME}: CPU utilization'
              ymin_type_1: FIXED
              ymax_type_1: FIXED
              graph_items:
                - drawtype: GRADIENT_LINE
                  color: 199C0D
                  item:
                    host: 'HP Comware HH3C by SNMP'
                    key: 'system.cpu.util[hh3cEntityExtCpuUsage.{#SNMPINDEX}]'
            - uuid: ff71369f73174bc0baf98f6da6f82d97
              name: '{#MODULE_NAME}: Memory utilization'
              ymin_type_1: FIXED
              ymax_type_1: FIXED
              graph_items:
                - drawtype: GRADIENT_LINE
                  color: 199C0D
                  item:
                    host: 'HP Comware HH3C by SNMP'
                    key: 'vm.memory.util[hh3cEntityExtMemUsage.{#SNMPINDEX}]'
        - uuid: ef05164a28be4a37950e7edc17dd389b
          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: 22cd0f5dd18b4d68ba2695a681819c45
              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: 442bc76f9f4441f6b3c7ff60b9359e2b
              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: ac12b0e85f3b49239838c6625d62d8a9
              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: ed6e19e8821349f380a3c0d4fdd2f4e0
              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: d077353aafbb43678bed7dba795923ce
              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: e76bb270115240d8b0fdb17b1b010418
              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: 61b52d6ce511476a8baeaf302476e831
              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: 4391767dc38e4f4fbc1cd2dc186beb82
              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: d0a5ea31836946f28abe357440ebdbea
                  expression: '{$IFCONTROL:"{#IFNAME}"}=1 and last(/HP Comware HH3C by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/HP Comware HH3C by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/HP Comware HH3C by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))'
                  recovery_mode: RECOVERY_EXPRESSION
                  recovery_expression: 'last(/HP Comware HH3C by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0'
                  name: 'HP Comware HH3C: 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: 2733e5694b544bb98ff981b2ed8371ec
              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: b672a06043664dafa8f69d7d530a8723
              expression: |
                change(/HP Comware HH3C by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])<0 and last(/HP Comware HH3C by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0
                and (
                last(/HP Comware HH3C by SNMP/net.if.type[ifType.{#SNMPINDEX}])=6 or
                last(/HP Comware HH3C by SNMP/net.if.type[ifType.{#SNMPINDEX}])=7 or
                last(/HP Comware HH3C by SNMP/net.if.type[ifType.{#SNMPINDEX}])=11 or
                last(/HP Comware HH3C by SNMP/net.if.type[ifType.{#SNMPINDEX}])=62 or
                last(/HP Comware HH3C by SNMP/net.if.type[ifType.{#SNMPINDEX}])=69 or
                last(/HP Comware HH3C by SNMP/net.if.type[ifType.{#SNMPINDEX}])=117
                )
                and
                (last(/HP Comware HH3C by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2)
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: |
                (change(/HP Comware HH3C by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 and last(/HP Comware HH3C by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}],#2)>0) or
                (last(/HP Comware HH3C by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2)
              name: 'HP Comware HH3C: 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: 'HP Comware HH3C: Interface {#IFNAME}({#IFALIAS}): Link down'
                  expression: '{$IFCONTROL:"{#IFNAME}"}=1 and last(/HP Comware HH3C by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/HP Comware HH3C by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/HP Comware HH3C by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))'
                  recovery_expression: 'last(/HP Comware HH3C by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0'
              tags:
                - tag: scope
                  value: performance
            - uuid: 98c74ed2d41941218802f4c472331f46
              expression: |
                (avg(/HP Comware HH3C by SNMP/net.if.in[ifHCInOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/HP Comware HH3C by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) or
                avg(/HP Comware HH3C by SNMP/net.if.out[ifHCOutOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/HP Comware HH3C by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])) and
                last(/HP Comware HH3C by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: |
                avg(/HP Comware HH3C by SNMP/net.if.in[ifHCInOctets.{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/HP Comware HH3C by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) and
                avg(/HP Comware HH3C by SNMP/net.if.out[ifHCOutOctets.{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/HP Comware HH3C by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])
              name: 'HP Comware HH3C: Interface {#IFNAME}({#IFALIAS}): High bandwidth usage'
              event_name: 'HP Comware HH3C: 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: 'HP Comware HH3C: Interface {#IFNAME}({#IFALIAS}): Link down'
                  expression: '{$IFCONTROL:"{#IFNAME}"}=1 and last(/HP Comware HH3C by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/HP Comware HH3C by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/HP Comware HH3C by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))'
                  recovery_expression: 'last(/HP Comware HH3C by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0'
              tags:
                - tag: scope
                  value: performance
            - uuid: d7d8ad2b63ac41e6b84852c312c2a8d9
              expression: |
                min(/HP Comware HH3C by SNMP/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"}
                or min(/HP Comware HH3C by SNMP/net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"}
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: |
                max(/HP Comware HH3C by SNMP/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8
                and max(/HP Comware HH3C by SNMP/net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8
              name: 'HP Comware HH3C: Interface {#IFNAME}({#IFALIAS}): High error rate'
              event_name: 'HP Comware HH3C: 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: 'HP Comware HH3C: Interface {#IFNAME}({#IFALIAS}): Link down'
                  expression: '{$IFCONTROL:"{#IFNAME}"}=1 and last(/HP Comware HH3C by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/HP Comware HH3C by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/HP Comware HH3C by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))'
                  recovery_expression: 'last(/HP Comware HH3C by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0'
              tags:
                - tag: scope
                  value: availability
                - tag: scope
                  value: performance
          graph_prototypes:
            - uuid: 220602812c8e4507a236a945fe3ec539
              name: 'Interface {#IFNAME}({#IFALIAS}): Network traffic'
              graph_items:
                - drawtype: GRADIENT_LINE
                  color: 199C0D
                  item:
                    host: 'HP Comware HH3C by SNMP'
                    key: 'net.if.in[ifHCInOctets.{#SNMPINDEX}]'
                - sortorder: '1'
                  drawtype: BOLD_LINE
                  color: F63100
                  item:
                    host: 'HP Comware HH3C by SNMP'
                    key: 'net.if.out[ifHCOutOctets.{#SNMPINDEX}]'
                - sortorder: '2'
                  color: 00611C
                  yaxisside: RIGHT
                  item:
                    host: 'HP Comware HH3C by SNMP'
                    key: 'net.if.out.errors[ifOutErrors.{#SNMPINDEX}]'
                - sortorder: '3'
                  color: F7941D
                  yaxisside: RIGHT
                  item:
                    host: 'HP Comware HH3C by SNMP'
                    key: 'net.if.in.errors[ifInErrors.{#SNMPINDEX}]'
                - sortorder: '4'
                  color: FC6EA3
                  yaxisside: RIGHT
                  item:
                    host: 'HP Comware HH3C by SNMP'
                    key: 'net.if.out.discards[ifOutDiscards.{#SNMPINDEX}]'
                - sortorder: '5'
                  color: 6C59DC
                  yaxisside: RIGHT
                  item:
                    host: 'HP Comware HH3C by SNMP'
                    key: 'net.if.in.discards[ifInDiscards.{#SNMPINDEX}]'
        - uuid: 21d413e388294d288edc95d98eb27980
          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: ee270fb1f0c54a5c91c581ee28c7a066
              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: 0ff624a6250b431498e4747678149e4b
                  expression: 'last(/HP Comware HH3C by SNMP/net.if.duplex[dot3StatsDuplexStatus.{#SNMPINDEX}])=2'
                  name: 'HP Comware HH3C: 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: 75f751bae6e64b9892c9283cefa8db80
          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,{#ENT_DESCR},1.3.6.1.2.1.47.1.1.1.1.2]'
          key: psu.discovery
          delay: 1h
          filter:
            conditions:
              - macro: '{#ENT_CLASS}'
                value: '6'
          description: 'Discovering all entities of PhysicalClass - 6: powerSupply(6)'
          item_prototypes:
            - uuid: 1ed2aa667cc94e6f9fb3abb9cb8de9b2
              name: '{#ENT_NAME}: Power supply status'
              type: SNMP_AGENT
              snmp_oid: 'get[1.3.6.1.4.1.25506.2.6.1.1.1.1.19.{#SNMPINDEX}]'
              key: 'sensor.psu.status[hh3cEntityExtErrorStatus.{#SNMPINDEX}]'
              delay: 3m
              trends: '0'
              description: |
                MIB: HH3C-ENTITY-EXT-MIB
                Indicate the error state of this entity object.
                psuError(51) means that the Power Supply Unit is in the state of fault.
                rpsError(61) means the Redundant Power Supply is in the state of fault.
              valuemap:
                name: 'HH3C-ENTITY-EXT-MIB::hh3cEntityExtErrorStatus'
              tags:
                - tag: component
                  value: power
              trigger_prototypes:
                - uuid: 0c3cb88352e2417fb2b80bb78448fb35
                  expression: 'count(/HP Comware HH3C by SNMP/sensor.psu.status[hh3cEntityExtErrorStatus.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS:\"psuError\"}")=1 or count(/HP Comware HH3C by SNMP/sensor.psu.status[hh3cEntityExtErrorStatus.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS:\"rpsError\"}")=1 or count(/HP Comware HH3C by SNMP/sensor.psu.status[hh3cEntityExtErrorStatus.{#SNMPINDEX}],#1,"eq","{$PSU_CRIT_STATUS:\"hardwareFaulty\"}")=1'
                  name: 'HP Comware HH3C: {#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: 14606d314fc24002a0a4cda2fa009d45
          name: 'Temperature Discovery'
          type: SNMP_AGENT
          snmp_oid: 'discovery[{#SNMPVALUE},1.3.6.1.2.1.47.1.1.1.1.2,{#MODULE_NAME},1.3.6.1.2.1.47.1.1.1.1.7]'
          key: temp.discovery
          delay: 1h
          filter:
            evaltype: OR
            conditions:
              - macro: '{#SNMPVALUE}'
                value: '(Fabric|FABRIC) (.+) (Module|MODULE)'
              - macro: '{#SNMPVALUE}'
                value: '(T|t)emperature.*(s|S)ensor'
              - macro: '{#SNMPVALUE}'
                value: '^(MODULE|Module) (LEVEL|level)1$'
          description: 'Discovering modules temperature (same filter as in Module Discovery) plus and temperature sensors'
          item_prototypes:
            - uuid: 4b18458608f74e0ca48af5cb674e324d
              name: '{#SNMPVALUE}: Temperature'
              type: SNMP_AGENT
              snmp_oid: 'get[1.3.6.1.4.1.25506.2.6.1.1.1.1.12.{#SNMPINDEX}]'
              key: 'sensor.temp.value[hh3cEntityExtTemperature.{#SNMPINDEX}]'
              delay: 3m
              value_type: FLOAT
              units: °C
              description: |
                MIB: HH3C-ENTITY-EXT-MIB
                The temperature for the {#SNMPVALUE}.
              tags:
                - tag: component
                  value: temperature
              trigger_prototypes:
                - uuid: bbad03018e8e408c952cca2615b4eab3
                  expression: 'avg(/HP Comware HH3C by SNMP/sensor.temp.value[hh3cEntityExtTemperature.{#SNMPINDEX}],5m)>{$TEMP_CRIT:"{#SNMPVALUE}"}'
                  recovery_mode: RECOVERY_EXPRESSION
                  recovery_expression: 'max(/HP Comware HH3C by SNMP/sensor.temp.value[hh3cEntityExtTemperature.{#SNMPINDEX}],5m)<{$TEMP_CRIT:"{#SNMPVALUE}"}-3'
                  name: 'HP Comware HH3C: {#SNMPVALUE}: Temperature is above critical threshold'
                  event_name: 'HP Comware HH3C: {#SNMPVALUE}: Temperature is above critical threshold: >{$TEMP_CRIT:"{#SNMPVALUE}"}'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: HIGH
                  description: 'This trigger uses temperature sensor values as well as temperature sensor status if available'
                  tags:
                    - tag: scope
                      value: availability
                    - tag: scope
                      value: performance
                - uuid: cda6a4e305fe41239462d2f85acc5590
                  expression: 'avg(/HP Comware HH3C by SNMP/sensor.temp.value[hh3cEntityExtTemperature.{#SNMPINDEX}],5m)>{$TEMP_WARN:"{#SNMPVALUE}"}'
                  recovery_mode: RECOVERY_EXPRESSION
                  recovery_expression: 'max(/HP Comware HH3C by SNMP/sensor.temp.value[hh3cEntityExtTemperature.{#SNMPINDEX}],5m)<{$TEMP_WARN:"{#SNMPVALUE}"}-3'
                  name: 'HP Comware HH3C: {#SNMPVALUE}: Temperature is above warning threshold'
                  event_name: 'HP Comware HH3C: {#SNMPVALUE}: Temperature is above warning threshold: >{$TEMP_WARN:"{#SNMPVALUE}"}'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'This trigger uses temperature sensor values as well as temperature sensor status if available'
                  dependencies:
                    - name: 'HP Comware HH3C: {#SNMPVALUE}: Temperature is above critical threshold'
                      expression: 'avg(/HP Comware HH3C by SNMP/sensor.temp.value[hh3cEntityExtTemperature.{#SNMPINDEX}],5m)>{$TEMP_CRIT:"{#SNMPVALUE}"}'
                      recovery_expression: 'max(/HP Comware HH3C by SNMP/sensor.temp.value[hh3cEntityExtTemperature.{#SNMPINDEX}],5m)<{$TEMP_CRIT:"{#SNMPVALUE}"}-3'
                  tags:
                    - tag: scope
                      value: availability
                    - tag: scope
                      value: performance
                - uuid: 340a9c397bff4ac5a37a2ada9d0c1e69
                  expression: 'avg(/HP Comware HH3C by SNMP/sensor.temp.value[hh3cEntityExtTemperature.{#SNMPINDEX}],5m)<{$TEMP_CRIT_LOW:"{#SNMPVALUE}"}'
                  recovery_mode: RECOVERY_EXPRESSION
                  recovery_expression: 'min(/HP Comware HH3C by SNMP/sensor.temp.value[hh3cEntityExtTemperature.{#SNMPINDEX}],5m)>{$TEMP_CRIT_LOW:"{#SNMPVALUE}"}+3'
                  name: 'HP Comware HH3C: {#SNMPVALUE}: Temperature is too low'
                  event_name: 'HP Comware HH3C: {#SNMPVALUE}: Temperature is too low: <{$TEMP_CRIT_LOW:"{#SNMPVALUE}"}'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  tags:
                    - tag: scope
                      value: availability
                    - tag: scope
                      value: performance
      tags:
        - tag: class
          value: network
        - tag: target
          value: hp
        - tag: target
          value: hp-comware
      macros:
        - macro: '{$CPU.UTIL.CRIT}'
          value: '90'
          config:
            type: TEXT
            priority: '1'
            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:"fanError"}'
          value: '41'
          config:
            type: TEXT
            priority: '5'
            section_name: Other
            label: 'Fan critical status (fan error)'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$FAN_CRIT_STATUS:"hardwareFaulty"}'
          value: '91'
          config:
            type: TEXT
            priority: '6'
            section_name: Other
            label: 'Fan critical status (hardware faulty)'
            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: '12'
            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: '13'
            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: '14'
            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: '15'
            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: '16'
            section_name: Thresholds
            label: 'Interfaces control'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$MEMORY.UTIL.MAX}'
          value: '90'
          config:
            type: TEXT
            priority: '10'
            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: '{$NET.IF.IFADMINSTATUS.MATCHES}'
          value: '^.*'
          config:
            type: TEXT
            priority: '21'
            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: '22'
            section_name: Filters
            label: 'Filter for network interface by adminstatus (exclude)'
        - macro: '{$NET.IF.IFALIAS.MATCHES}'
          value: '.*'
          config:
            type: TEXT
            priority: '25'
            section_name: Filters
            label: 'Filter for network interfaces by alias'
        - macro: '{$NET.IF.IFALIAS.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          config:
            type: TEXT
            priority: '26'
            section_name: Filters
            label: 'Filter for network interfaces by alias (exclude)'
        - macro: '{$NET.IF.IFDESCR.MATCHES}'
          value: '.*'
          config:
            type: TEXT
            priority: '23'
            section_name: Filters
            label: 'Filter for network interfaces by description'
        - macro: '{$NET.IF.IFDESCR.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          config:
            type: TEXT
            priority: '24'
            section_name: Filters
            label: 'Filter for network interfaces by description (exclude)'
        - macro: '{$NET.IF.IFNAME.MATCHES}'
          value: '^.*$'
          config:
            type: TEXT
            priority: '17'
            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: '18'
            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: '19'
            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: '20'
            section_name: Filters
            label: 'Filter for network interface by status (exclude)'
        - macro: '{$NET.IF.IFTYPE.MATCHES}'
          value: '.*'
          config:
            type: TEXT
            priority: '27'
            section_name: Filters
            label: 'Filter for network interfaces by type'
        - macro: '{$NET.IF.IFTYPE.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          config:
            type: TEXT
            priority: '28'
            section_name: Filters
            label: 'Filter for network interfaces by type (exclude)'
        - macro: '{$PSU_CRIT_STATUS:"hardwareFaulty"}'
          value: '91'
          config:
            type: TEXT
            priority: '9'
            section_name: Other
            label: 'PSU critical status (hardware faulty)'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$PSU_CRIT_STATUS:"psuError"}'
          value: '51'
          config:
            type: TEXT
            priority: '7'
            section_name: Other
            label: 'PSU critical status (PSU error)'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$PSU_CRIT_STATUS:"rpsError"}'
          value: '61'
          config:
            type: TEXT
            priority: '8'
            section_name: Other
            label: 'PSU critical status (RPS error)'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$SNMP.TIMEOUT}'
          value: 5m
          description: 'Time interval for the SNMP availability trigger.'
          config:
            type: TEXT
            priority: '11'
            section_name: Other
            label: 'Time interval'
            description: 'Time interval for the SNMP availability trigger.'
        - macro: '{$TEMP_CRIT}'
          value: '60'
          config:
            type: TEXT
            priority: '2'
            section_name: Thresholds
            label: 'Threshold for temperature (critical)'
            description: 'In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$TEMP_CRIT_LOW}'
          value: '5'
          config:
            type: TEXT
            priority: '3'
            section_name: Thresholds
            label: 'Threshold for low temperature (critical)'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$TEMP_WARN}'
          value: '50'
          config:
            type: TEXT
            priority: '4'
            section_name: Thresholds
            label: 'Threshold for temperature (warning)'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
      dashboards:
        - uuid: bb5d0711937d47d989653b53b7772cea
          name: 'Network interfaces'
          pages:
            - widgets:
                - type: graphprototype
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'HP Comware HH3C by SNMP'
                        name: 'Interface {#IFNAME}({#IFALIAS}): Network traffic'
                    - type: STRING
                      name: reference
                      value: AAAAA
        - uuid: 74325ab2f9e346a89eb281df04154ab2
          name: Resources
          pages:
            - widgets:
                - type: graphprototype
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'HP Comware HH3C by SNMP'
                        name: '{#MODULE_NAME}: CPU utilization'
                    - 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: 'HP Comware HH3C by SNMP'
                        name: '{#MODULE_NAME}: Memory utilization'
                    - type: STRING
                      name: reference
                      value: AAAAC
      valuemaps:
        - uuid: ec3b9adaa2ad448db5a613cfb6e02fd3
          name: 'EtherLike-MIB::dot3StatsDuplexStatus'
          mappings:
            - value: '1'
              newvalue: unknown
            - value: '2'
              newvalue: halfDuplex
            - value: '3'
              newvalue: fullDuplex
        - uuid: d7832aa00dd743bb8451cabff4e90e60
          name: 'HH3C-ENTITY-EXT-MIB::hh3cEntityExtErrorStatus'
          mappings:
            - value: '1'
              newvalue: notSupported
            - value: '2'
              newvalue: normal
            - value: '3'
              newvalue: postFailure
            - value: '4'
              newvalue: entityAbsent
            - value: '11'
              newvalue: poeError
            - value: '21'
              newvalue: stackError
            - value: '22'
              newvalue: stackPortBlocked
            - value: '23'
              newvalue: stackPortFailed
            - value: '31'
              newvalue: sfpRecvError
            - value: '32'
              newvalue: sfpSendError
            - value: '33'
              newvalue: sfpBothError
            - value: '41'
              newvalue: fanError
            - value: '51'
              newvalue: psuError
            - value: '61'
              newvalue: rpsError
            - value: '71'
              newvalue: moduleFaulty
            - value: '81'
              newvalue: sensorError
            - value: '91'
              newvalue: hardwareFaulty
        - uuid: 47c29a4e28094f59a3666ab1bc7bbba9
          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: 023e30ad64bc402abf989de29c2b7c5e
          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: 814a713abe0740bc93531596474b80b2
          name: 'Service state'
          mappings:
            - value: '0'
              newvalue: Down
            - value: '1'
              newvalue: Up
        - uuid: f6c6d62117c749a482792e753486a2be
          name: zabbix.host.available
          mappings:
            - value: '0'
              newvalue: 'not available'
            - value: '1'
              newvalue: available
            - value: '2'
              newvalue: unknown
    - uuid: ab05dbb15ff047f192782f617f0627ac
      template: 'Ignite by JMX'
      name: 'Ignite by JMX'
      description: |
        The template to monitor Apache Ignite by Zabbix that work without any external scripts.
          It works with both standalone and cluster instances.
          The metrics are discoverable and collected by JMX.
          Current JMX tree hierarchy contains classloader by default. Add the following jvm option `-DIGNITE_MBEAN_APPEND_CLASS_LOADER_ID=false`to will exclude one level with Classloader name.
          You can set {$IGNITE.USER} and {$IGNITE.PASSWORD} macros in the template for using on the host level.
        
        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
        
        Official JMX Template for Apache Ignite computing platform.
        This template is based on the original template developed by Igor Akkuratov, Senior Engineer at GridGain Systems and Apache Ignite Contributor.
        
        ## Setup
        
        This template works with standalone and cluster instances. Metrics are collected by JMX. All metrics are discoverable.
        
        1. Enable and configure JMX access to Apache Ignite. See documentation for [instructions](https://docs.oracle.com/javase/8/docs/technotes/guides/management/agent.html). Current JMX tree hierarchy contains classloader by default. Add the following jvm option `-DIGNITE_MBEAN_APPEND_CLASS_LOADER_ID=false`to will exclude one level with Classloader name. You can configure Cache and Data Region metrics which you want using [official guide](https://ignite.apache.org/docs/latest/monitoring-metrics/configuring-metrics).
        2. Set the user name and password in host wizard configuration fields `Username` and `Password`.
      vendor:
        name: Zabbix
        version: 8.0-1
      groups:
        - name: Templates/Databases
      discovery_rules:
        - uuid: 2aa2cf6500b347e083c492aa2eade85a
          name: 'Data region metrics'
          type: JMX
          key: 'jmx.discovery[beans,"org.apache:group=DataRegionMetrics,*"]'
          delay: 10m
          username: '{$IGNITE.USER}'
          password: '{$IGNITE.PASSWORD}'
          filter:
            evaltype: AND
            conditions:
              - macro: '{#JMXNAME}'
                value: '{$IGNITE.LLD.FILTER.DATA.REGION.MATCHES}'
              - macro: '{#JMXNAME}'
                value: '{$IGNITE.LLD.FILTER.DATA.REGION.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
          item_prototypes:
            - uuid: 56780f0bc58e499bb452e5879961ac9d
              name: 'Data region {#JMXNAME}: Allocation, rate'
              type: JMX
              key: 'jmx["{#JMXOBJ}",AllocationRate]'
              value_type: FLOAT
              units: '!pps'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Allocation rate (pages per second) averaged across rateTimeInternal.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: data-region
                  value: '{#JMXNAME}'
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
            - uuid: 9b3528eb623c4fdda10228671268bcdb
              name: 'Data region {#JMXNAME}: Checkpoint buffer size'
              type: JMX
              key: 'jmx["{#JMXOBJ}",CheckpointBufferSize]'
              value_type: FLOAT
              units: B
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Total size in bytes for checkpoint buffer.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: data-region
                  value: '{#JMXNAME}'
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
            - uuid: 21f8fc17522d40cc8723053e8ed8716f
              name: 'Data region {#JMXNAME}: Dirty pages'
              type: JMX
              key: 'jmx["{#JMXOBJ}",DirtyPages]'
              value_type: FLOAT
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Number of pages in memory not yet synchronized with persistent storage.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: data-region
                  value: '{#JMXNAME}'
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
            - uuid: 8bcc78ee4e984f9c8c07b60e5dd35c42
              name: 'Data region {#JMXNAME}: Eviction, rate'
              type: JMX
              key: 'jmx["{#JMXOBJ}",EvictionRate]'
              value_type: FLOAT
              units: '!pps'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Eviction rate (pages per second).'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: data-region
                  value: '{#JMXNAME}'
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
              trigger_prototypes:
                - uuid: e210c54ba16f4d879d8a4fb88c365c53
                  expression: 'min(/Ignite by JMX/jmx["{#JMXOBJ}",EvictionRate],5m)>0'
                  name: 'Ignite: Data region {#JMXNAME}: Node started to evict pages'
                  priority: INFO
                  description: 'You store more data than region can accommodate. Data started to move to disk it can make requests work slower. Acknowledge to close the problem manually.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: capacity
            - uuid: 7fa689749cd64474af294976e4bc7762
              name: 'Data region {#JMXNAME}: Size, max'
              type: JMX
              key: 'jmx["{#JMXOBJ}",MaxSize]'
              value_type: FLOAT
              units: B
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Maximum memory region size defined by its data region.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: data-region
                  value: '{#JMXNAME}'
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
            - uuid: bb0dd42c5a3c400f95a7084792e7522e
              name: 'Data region {#JMXNAME}: Offheap size'
              type: JMX
              key: 'jmx["{#JMXOBJ}",OffHeapSize]'
              value_type: FLOAT
              units: B
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Offheap size in bytes.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: data-region
                  value: '{#JMXNAME}'
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
            - uuid: a793c5e41891467fb3ee53722f9fae13
              name: 'Data region {#JMXNAME}: Offheap used size'
              type: JMX
              key: 'jmx["{#JMXOBJ}",OffheapUsedSize]'
              value_type: FLOAT
              units: B
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Total used offheap size in bytes.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: data-region
                  value: '{#JMXNAME}'
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
            - uuid: b4fb229defdb434b8307d91e2f17f5db
              name: 'Data region {#JMXNAME}: Pages fill factor'
              type: JMX
              key: 'jmx["{#JMXOBJ}",PagesFillFactor]'
              value_type: FLOAT
              units: '%'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'The percentage of the used space.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: data-region
                  value: '{#JMXNAME}'
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
            - uuid: 4ca77d42a8f44e278b44417d33094535
              name: 'Data region {#JMXNAME}: Pages replace, rate'
              type: JMX
              key: 'jmx["{#JMXOBJ}",PagesReplaceRate]'
              value_type: FLOAT
              units: '!pps'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Rate at which pages in memory are replaced with pages from persistent storage (pages per second).'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: data-region
                  value: '{#JMXNAME}'
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
              trigger_prototypes:
                - uuid: 70ef41de47b2463a9c580e790754a49c
                  expression: 'min(/Ignite by JMX/jmx["{#JMXOBJ}",PagesReplaceRate],5m)>0'
                  name: 'Ignite: Data region {#JMXNAME}: Pages replace rate more than 0'
                  priority: WARNING
                  description: 'There is more data than DataRegionMaxSize. Cluster started to replace pages in memory. Page replacement can slow down operations.'
                  tags:
                    - tag: scope
                      value: capacity
                    - tag: scope
                      value: performance
            - uuid: b62d56147b3d43aebd1f3c9eb13a8e05
              name: 'Data region {#JMXNAME}: Allocated, bytes'
              type: JMX
              key: 'jmx["{#JMXOBJ}",TotalAllocatedSize]'
              value_type: FLOAT
              units: B
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Total size of memory allocated in bytes.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: data-region
                  value: '{#JMXNAME}'
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
            - uuid: 14b02d5526c44f2599e1893b815b1d2b
              name: 'Data region {#JMXNAME}: Used checkpoint buffer size'
              type: JMX
              key: 'jmx["{#JMXOBJ}",UsedCheckpointBufferSize]'
              value_type: FLOAT
              units: B
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Used checkpoint buffer size in bytes.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: data-region
                  value: '{#JMXNAME}'
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
          trigger_prototypes:
            - uuid: 480b7cc1a967436b8620f9552f8ac4f6
              expression: 'min(/Ignite by JMX/jmx["{#JMXOBJ}",UsedCheckpointBufferSize],5m)/last(/Ignite by JMX/jmx["{#JMXOBJ}",CheckpointBufferSize])*100>{$IGNITE.CHECKPOINT.PUSED.MAX.HIGH}'
              name: 'Ignite: Data region {#JMXNAME}: Checkpoint buffer utilization is too high'
              event_name: 'Ignite: Data region {#JMXNAME}: Checkpoint buffer utilization is too high (over {$IGNITE.CHECKPOINT.PUSED.MAX.HIGH} in 5m)'
              priority: HIGH
              description: 'Checkpoint buffer utilization is high. Threads will be throttled to avoid buffer overflow. It can be caused by high disk utilization.'
              tags:
                - tag: scope
                  value: capacity
            - uuid: 67eddf17affd49b7844cd0846bc56f7d
              expression: 'min(/Ignite by JMX/jmx["{#JMXOBJ}",UsedCheckpointBufferSize],5m)/last(/Ignite by JMX/jmx["{#JMXOBJ}",CheckpointBufferSize])*100>{$IGNITE.CHECKPOINT.PUSED.MAX.WARN}'
              name: 'Ignite: Data region {#JMXNAME}: Checkpoint buffer utilization is too high'
              event_name: 'Ignite: Data region {#JMXNAME}: Checkpoint buffer utilization is too high (over {$IGNITE.CHECKPOINT.PUSED.MAX.WARN} in 5m)'
              priority: WARNING
              description: 'Checkpoint buffer utilization is high. Threads will be throttled to avoid buffer overflow. It can be caused by high disk utilization.'
              dependencies:
                - name: 'Ignite: Data region {#JMXNAME}: Checkpoint buffer utilization is too high'
                  expression: 'min(/Ignite by JMX/jmx["{#JMXOBJ}",UsedCheckpointBufferSize],5m)/last(/Ignite by JMX/jmx["{#JMXOBJ}",CheckpointBufferSize])*100>{$IGNITE.CHECKPOINT.PUSED.MAX.HIGH}'
              tags:
                - tag: scope
                  value: capacity
            - uuid: 736fbc965aa448309d022de34354decf
              expression: 'min(/Ignite by JMX/jmx["{#JMXOBJ}",OffheapUsedSize],5m)/last(/Ignite by JMX/jmx["{#JMXOBJ}",OffHeapSize])*100>{$IGNITE.DATA.REGION.PUSED.MAX.HIGH}'
              name: 'Ignite: Data region {#JMXNAME}: Data region utilization is too high'
              event_name: 'Ignite: Data region {#JMXNAME}: Data region utilization is too high (over {$IGNITE.DATA.REGION.PUSED.MAX.HIGH} in 5m)'
              priority: HIGH
              description: 'Data region utilization is high. Increase data region size or delete any data.'
              tags:
                - tag: scope
                  value: capacity
            - uuid: 6ded19e7616b45f08e37e716d8256c5e
              expression: 'min(/Ignite by JMX/jmx["{#JMXOBJ}",OffheapUsedSize],5m)/last(/Ignite by JMX/jmx["{#JMXOBJ}",OffHeapSize])*100>{$IGNITE.DATA.REGION.PUSED.MAX.WARN}'
              name: 'Ignite: Data region {#JMXNAME}: Data region utilization is too high'
              event_name: 'Ignite: Data region {#JMXNAME}: Data region utilization is too high (over {$IGNITE.DATA.REGION.PUSED.MAX.WARN} in 5m)'
              priority: WARNING
              description: 'Data region utilization is high. Increase data region size or delete any data.'
              dependencies:
                - name: 'Ignite: Data region {#JMXNAME}: Data region utilization is too high'
                  expression: 'min(/Ignite by JMX/jmx["{#JMXOBJ}",OffheapUsedSize],5m)/last(/Ignite by JMX/jmx["{#JMXOBJ}",OffHeapSize])*100>{$IGNITE.DATA.REGION.PUSED.MAX.HIGH}'
              tags:
                - tag: scope
                  value: capacity
          graph_prototypes:
            - uuid: 0ac5a59cc5a64e2ea6bc6e266919ecca
              name: 'Data region {#JMXNAME}: Checkpoint buffer utilization'
              graph_items:
                - drawtype: BOLD_LINE
                  color: 199C0D
                  item:
                    host: 'Ignite by JMX'
                    key: 'jmx["{#JMXOBJ}",CheckpointBufferSize]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'Ignite by JMX'
                    key: 'jmx["{#JMXOBJ}",UsedCheckpointBufferSize]'
            - uuid: 330be15755ca4b5dbee88e21b2e58df2
              name: 'Data region {#JMXNAME}: DataRegion utilization'
              graph_items:
                - drawtype: BOLD_LINE
                  color: 199C0D
                  item:
                    host: 'Ignite by JMX'
                    key: 'jmx["{#JMXOBJ}",OffHeapSize]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'Ignite by JMX'
                    key: 'jmx["{#JMXOBJ}",OffheapUsedSize]'
          jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  var data = JSON.parse(value);
                  for (var item, i = 0; item = data.data[i++];) {
                  	if (!('{#JMXIGNITEINSTANCENAME}' in item)) {
                  		Object.assign(item, {
                  			'{#JMXIGNITEINSTANCENAME}': 'null'
                  		});
                  	}
                  
                  }
                  
                  return JSON.stringify(data)
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 3h
        - uuid: 92f16f4d02e149c5ae5b09f1007cead8
          name: 'Local node metrics'
          type: JMX
          key: 'jmx.discovery[beans,"org.apache:group=Kernal,name=ClusterLocalNodeMetricsMXBeanImpl,*"]'
          delay: 30m
          username: '{$IGNITE.USER}'
          password: '{$IGNITE.PASSWORD}'
          item_prototypes:
            - uuid: 7f8721ab4e6c4b23bd1e948f8c1c4480
              name: '[{#JMXIGNITEINSTANCENAME}]: Jobs active, current'
              type: JMX
              key: 'jmx["{#JMXOBJ}",CurrentActiveJobs]'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Number of currently active jobs concurrently executing on the node.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
            - uuid: 13b1867082c340d0a6f317c94376a055
              name: '[{#JMXIGNITEINSTANCENAME}]: Jobs cancelled, current'
              type: JMX
              key: 'jmx["{#JMXOBJ}",CurrentCancelledJobs]'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Number of cancelled jobs that are still running.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
            - uuid: 832c3683406c460c826522f8b2e3aafa
              name: '[{#JMXIGNITEINSTANCENAME}]: PME duration, current'
              type: JMX
              key: 'jmx["{#JMXOBJ}",CurrentPmeDuration]'
              units: ms
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Current PME duration in milliseconds.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
              trigger_prototypes:
                - uuid: 81587d91606348a6b5385d4b59331adf
                  expression: 'min(/Ignite by JMX/jmx["{#JMXOBJ}",CurrentPmeDuration],5m) > {$IGNITE.PME.DURATION.MAX.HIGH}'
                  name: 'Ignite: [{#JMXIGNITEINSTANCENAME}]: PME duration is too long'
                  event_name: 'Ignite: [{#JMXIGNITEINSTANCENAME}]: PME duration is too long (over {$IGNITE.PME.DURATION.MAX.HIGH} for 5 min)'
                  priority: HIGH
                  description: 'PME duration is over {$IGNITE.PME.DURATION.MAX.HIGH}ms. Looks like PME is hung.'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: 0de7ca62c7044e48a8931cf0dfe8ce34
                  expression: 'min(/Ignite by JMX/jmx["{#JMXOBJ}",CurrentPmeDuration],5m) > {$IGNITE.PME.DURATION.MAX.WARN}'
                  name: 'Ignite: [{#JMXIGNITEINSTANCENAME}]: PME duration is too long'
                  event_name: 'Ignite: [{#JMXIGNITEINSTANCENAME}]: PME duration is too long (over {$IGNITE.PME.DURATION.MAX.WARN} for 5 min)'
                  priority: WARNING
                  description: 'PME duration is over {$IGNITE.PME.DURATION.MAX.WARN}ms.'
                  dependencies:
                    - name: 'Ignite: [{#JMXIGNITEINSTANCENAME}]: PME duration is too long'
                      expression: 'min(/Ignite by JMX/jmx["{#JMXOBJ}",CurrentPmeDuration],5m) > {$IGNITE.PME.DURATION.MAX.HIGH}'
                  tags:
                    - tag: scope
                      value: performance
            - uuid: 6b68ba90e40b4fa0a798dfde64ba8f01
              name: '[{#JMXIGNITEINSTANCENAME}]: Jobs rejected, current'
              type: JMX
              key: 'jmx["{#JMXOBJ}",CurrentRejectedJobs]'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Number of jobs rejected after more recent collision resolution operation.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
            - uuid: c459658bf32f4ca5aac6cfe1f8a8cc5b
              name: '[{#JMXIGNITEINSTANCENAME}]: Threads count, current'
              type: JMX
              key: 'jmx["{#JMXOBJ}",CurrentThreadCount]'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Current number of live threads.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
              trigger_prototypes:
                - uuid: 8c4ddb0485464c409077f86241956a56
                  expression: 'min(/Ignite by JMX/jmx["{#JMXOBJ}",CurrentThreadCount],15m) > {$IGNITE.THREADS.COUNT.MAX.WARN}'
                  name: 'Ignite: [{#JMXIGNITEINSTANCENAME}]: Number of running threads is too high'
                  event_name: 'Ignite: [{#JMXIGNITEINSTANCENAME}]: Number of running threads is too high (over {$IGNITE.THREADS.COUNT.MAX.WARN} for 15 min)'
                  priority: WARNING
                  description: 'Number of running threads is over {$IGNITE.THREADS.COUNT.MAX.WARN}.'
                  dependencies:
                    - name: 'Ignite: [{#JMXIGNITEINSTANCENAME}]: PME duration is too long'
                      expression: 'min(/Ignite by JMX/jmx["{#JMXOBJ}",CurrentPmeDuration],5m) > {$IGNITE.PME.DURATION.MAX.HIGH}'
                  tags:
                    - tag: scope
                      value: performance
            - uuid: e29b01d139bd4d7e8248ccddb2a19baa
              name: '[{#JMXIGNITEINSTANCENAME}]: Jobs waiting, current'
              type: JMX
              key: 'jmx["{#JMXOBJ}",CurrentWaitingJobs]'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Number of queued jobs currently waiting to be executed.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
              trigger_prototypes:
                - uuid: a723fdecd1b34609b92bb351b1b44a46
                  expression: 'min(/Ignite by JMX/jmx["{#JMXOBJ}",CurrentWaitingJobs],15m) > {$IGNITE.JOBS.QUEUE.MAX.WARN}'
                  name: 'Ignite: [{#JMXIGNITEINSTANCENAME}]: Number of queued jobs is too high'
                  event_name: 'Ignite: [{#JMXIGNITEINSTANCENAME}]: Number of queued jobs is too high (over {$IGNITE.JOBS.QUEUE.MAX.WARN} for 15 min)'
                  priority: WARNING
                  description: 'Number of queued jobs is over {$IGNITE.JOBS.QUEUE.MAX.WARN}.'
                  tags:
                    - tag: scope
                      value: performance
            - uuid: 5f61ae253e4f459ebc403ca69d85a617
              name: '[{#JMXIGNITEINSTANCENAME}]: Heap memory used'
              type: JMX
              key: 'jmx["{#JMXOBJ}",HeapMemoryUsed]'
              units: B
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Current heap size that is used for object allocation.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
            - uuid: 923c561a1a504ce399bf6b1892e29a3e
              name: '[{#JMXIGNITEINSTANCENAME}]: Jobs cancelled, rate'
              type: JMX
              key: 'jmx["{#JMXOBJ}",TotalCancelledJobs]'
              value_type: FLOAT
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Total number of jobs cancelled by the node per second.'
              preprocessing:
                - type: CHANGE_PER_SECOND
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
            - uuid: d6044f18b5e741818ca299ce8b19ccdb
              name: '[{#JMXIGNITEINSTANCENAME}]: Jobs executed, rate'
              type: JMX
              key: 'jmx["{#JMXOBJ}",TotalExecutedJobs]'
              value_type: FLOAT
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Total number of jobs handled by the node per second.'
              preprocessing:
                - type: CHANGE_PER_SECOND
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
            - uuid: 15135ffe1ec74e8c920ee4c70b986904
              name: '[{#JMXIGNITEINSTANCENAME}]: Jobs rejects, rate'
              type: JMX
              key: 'jmx["{#JMXOBJ}",TotalRejectedJobs]'
              value_type: FLOAT
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Total number of jobs this node rejects during collision resolution operations since node startup per second.'
              preprocessing:
                - type: CHANGE_PER_SECOND
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
          graph_prototypes:
            - uuid: 40e5feb97990445da11d8d8f49643882
              name: '[{#JMXIGNITEINSTANCENAME}]: Jobs current state'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'Ignite by JMX'
                    key: 'jmx["{#JMXOBJ}",CurrentActiveJobs]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'Ignite by JMX'
                    key: 'jmx["{#JMXOBJ}",CurrentWaitingJobs]'
                - sortorder: '2'
                  color: 00611C
                  item:
                    host: 'Ignite by JMX'
                    key: 'jmx["{#JMXOBJ}",CurrentRejectedJobs]'
                - sortorder: '3'
                  color: F7941D
                  item:
                    host: 'Ignite by JMX'
                    key: 'jmx["{#JMXOBJ}",CurrentCancelledJobs]'
            - uuid: cd3eedf54f44492d83138e3f8adf2564
              name: '[{#JMXIGNITEINSTANCENAME}]: Jobs rate'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'Ignite by JMX'
                    key: 'jmx["{#JMXOBJ}",TotalCancelledJobs]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'Ignite by JMX'
                    key: 'jmx["{#JMXOBJ}",TotalRejectedJobs]'
                - sortorder: '2'
                  color: 00611C
                  item:
                    host: 'Ignite by JMX'
                    key: 'jmx["{#JMXOBJ}",TotalExecutedJobs]'
          jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  var data = JSON.parse(value);
                  for (var item, i = 0; item = data.data[i++];) {
                  	if (!('{#JMXIGNITEINSTANCENAME}' in item)) {
                  		Object.assign(item, {
                  			'{#JMXIGNITEINSTANCENAME}': 'null'
                  		});
                  	}
                  
                  }
                  
                  return JSON.stringify(data)
        - uuid: 1b3b0461964a418a962539ec4c17aca6
          name: 'Cluster metrics'
          type: JMX
          key: 'jmx.discovery[beans,"org.apache:group=Kernal,name=ClusterMetricsMXBeanImpl,*"]'
          delay: 30m
          username: '{$IGNITE.USER}'
          password: '{$IGNITE.PASSWORD}'
          item_prototypes:
            - uuid: 238c39ab7d5640abb3a81f0a51acc065
              name: '[{#JMXIGNITEINSTANCENAME}]: Nodes, Active baseline'
              type: JMX
              key: 'jmx["{#JMXOBJ}",ActiveBaselineNodes]'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'The number of nodes that are currently active in the baseline topology.'
              preprocessing:
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3h
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
            - uuid: 4edffa6b8f294d959797a5c6ca4ccc5a
              name: '[{#JMXIGNITEINSTANCENAME}]: Nodes, Baseline'
              type: JMX
              key: 'jmx["{#JMXOBJ}",TotalBaselineNodes]'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Total baseline nodes that are registered in the baseline topology.'
              preprocessing:
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3h
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
            - uuid: a4116287c8a34359a46eff1217f7418d
              name: '[{#JMXIGNITEINSTANCENAME}]: Nodes, Client'
              type: JMX
              key: 'jmx["{#JMXOBJ}",TotalClientNodes]'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'The number of client nodes in the cluster.'
              preprocessing:
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3h
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
            - uuid: 517a320bd6964ec7906bf6b0408d834b
              name: '[{#JMXIGNITEINSTANCENAME}]: Nodes, total'
              type: JMX
              key: 'jmx["{#JMXOBJ}",TotalNodes]'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Total number of nodes.'
              preprocessing:
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3h
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
            - uuid: 9cfa72ba360840d9b87de9c59b780529
              name: '[{#JMXIGNITEINSTANCENAME}]: Nodes, Server'
              type: JMX
              key: 'jmx["{#JMXOBJ}",TotalServerNodes]'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'The number of server nodes in the cluster.'
              preprocessing:
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3h
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
              trigger_prototypes:
                - uuid: e2c38e56189d4ed79bac6bd4ca8e477c
                  expression: 'change(/Ignite by JMX/jmx["{#JMXOBJ}",TotalServerNodes])>0'
                  name: 'Ignite: [{#JMXIGNITEINSTANCENAME}]: Server node added to the topology'
                  priority: INFO
                  description: 'One or more server node added to the topology. Acknowledge to close the problem manually.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: availability
                    - tag: scope
                      value: notice
                - uuid: 81efb2805dbc49719a316d1992aaac3a
                  expression: 'change(/Ignite by JMX/jmx["{#JMXOBJ}",TotalServerNodes])<0'
                  name: 'Ignite: [{#JMXIGNITEINSTANCENAME}]: Server node left the topology'
                  priority: WARNING
                  description: 'One or more server node left the topology. Acknowledge to close the problem manually.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: availability
                    - tag: scope
                      value: notice
          trigger_prototypes:
            - uuid: 17f9fd03d3144812bf776c0f8ca836e4
              expression: 'last(/Ignite by JMX/jmx["{#JMXOBJ}",TotalServerNodes])>last(/Ignite by JMX/jmx["{#JMXOBJ}",TotalBaselineNodes])'
              name: 'Ignite: [{#JMXIGNITEINSTANCENAME}]: There are nodes is not in topology'
              priority: INFO
              description: 'One or more server node left the topology. Acknowledge to close the problem manually.'
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: availability
                - tag: scope
                  value: notice
          jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  var data = JSON.parse(value);
                  for (var item, i = 0; item = data.data[i++];) {
                  	if (!('{#JMXIGNITEINSTANCENAME}' in item)) {
                  		Object.assign(item, {
                  			'{#JMXIGNITEINSTANCENAME}': 'null'
                  		});
                  	}
                  
                  }
                  
                  return JSON.stringify(data)
        - uuid: c1513c51c41046c288b9add14feaabdb
          name: 'Ignite kernal metrics'
          type: JMX
          key: 'jmx.discovery[beans,"org.apache:group=Kernal,name=IgniteKernal,*"]'
          delay: 30m
          username: '{$IGNITE.USER}'
          password: '{$IGNITE.PASSWORD}'
          item_prototypes:
            - uuid: b9e23036503a4227bfbb21969583120e
              name: '[{#JMXIGNITEINSTANCENAME}]: Version'
              type: JMX
              key: 'jmx["{#JMXOBJ}",FullVersion]'
              value_type: CHAR
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Version of Ignite instance.'
              preprocessing:
                - type: REGEX
                  parameters:
                    - '(.*)-\d+'
                    - \1
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3h
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
              trigger_prototypes:
                - uuid: 08a1f4bd227e4f96b501a4681bf9fc8f
                  expression: 'last(/Ignite by JMX/jmx["{#JMXOBJ}",FullVersion],#1)<>last(/Ignite by JMX/jmx["{#JMXOBJ}",FullVersion],#2) and length(last(/Ignite by JMX/jmx["{#JMXOBJ}",FullVersion]))>0'
                  name: 'Ignite: [{#JMXIGNITEINSTANCENAME}]: Version has changed'
                  event_name: 'Ignite: [{#JMXIGNITEINSTANCENAME}]: Version has changed (new version: {ITEM.VALUE})'
                  priority: INFO
                  description: '[{#JMXIGNITEINSTANCENAME}] version has changed. Acknowledge to close the problem manually.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: cfa6cb5b02634c9d803b7c3a0774a7ce
              name: '[{#JMXIGNITEINSTANCENAME}]: Local node ID'
              type: JMX
              key: 'jmx["{#JMXOBJ}",LocalNodeId]'
              value_type: CHAR
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Unique identifier for this node within grid.'
              preprocessing:
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3h
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
            - uuid: d48d3694467e4153af369475672e4811
              name: '[{#JMXIGNITEINSTANCENAME}]: Uptime'
              type: JMX
              key: 'jmx["{#JMXOBJ}",UpTime]'
              units: uptime
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Uptime of Ignite instance.'
              preprocessing:
                - type: MULTIPLIER
                  parameters:
                    - '0.001'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
              trigger_prototypes:
                - uuid: d90f8b10d32240d882317bf9fb628eae
                  expression: 'nodata(/Ignite by JMX/jmx["{#JMXOBJ}",UpTime],10m)=1'
                  name: 'Ignite: [{#JMXIGNITEINSTANCENAME}]: Failed to fetch info data'
                  event_name: 'Ignite: [{#JMXIGNITEINSTANCENAME}]: Failed to fetch info data (or no data for 10m)'
                  priority: WARNING
                  description: 'Zabbix has not received data for items for the last 10 minutes.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: f3415dd32a3b450f80b29b83bd54fdef
                  expression: 'last(/Ignite by JMX/jmx["{#JMXOBJ}",UpTime])<10m'
                  name: 'Ignite: [{#JMXIGNITEINSTANCENAME}]: Instance has been restarted'
                  event_name: 'Ignite: [{#JMXIGNITEINSTANCENAME}]: Instance has been restarted (uptime < 10m)'
                  priority: INFO
                  description: 'Uptime is less than 10 minutes.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: notice
          jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  var data = JSON.parse(value);
                  for (var item, i = 0; item = data.data[i++];) {
                  	if (!('{#JMXIGNITEINSTANCENAME}' in item)) {
                  		Object.assign(item, {
                  			'{#JMXIGNITEINSTANCENAME}': 'null'
                  		});
                  	}
                  
                  }
                  
                  return JSON.stringify(data)
        - uuid: afd0c3182f8d4a299a180848eb096b95
          name: 'TCP Communication SPI metrics'
          type: JMX
          key: 'jmx.discovery[beans,"org.apache:group=SPIs,name=TcpCommunicationSpi,*"]'
          delay: 30m
          username: '{$IGNITE.USER}'
          password: '{$IGNITE.PASSWORD}'
          item_prototypes:
            - uuid: c6d996a3b2754963a916f44e8e99e828
              name: '[{#JMXIGNITEINSTANCENAME}]: Communication outbound messages queue'
              type: JMX
              key: 'jmx["{#JMXOBJ}",OutboundMessagesQueueSize]'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Outbound messages queue size.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
            - uuid: 8a25c98dd3374e78ba26cebea1eaaebc
              name: '[{#JMXIGNITEINSTANCENAME}]: Communication messages received, rate'
              type: JMX
              key: 'jmx["{#JMXOBJ}",ReceivedMessagesCount]'
              value_type: FLOAT
              units: '!msg/s'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'The number of  messages received per second.'
              preprocessing:
                - type: CHANGE_PER_SECOND
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
            - uuid: 6eacaf2c8e9e4f53991d547f81731780
              name: '[{#JMXIGNITEINSTANCENAME}]: Communication messages sent, rate'
              type: JMX
              key: 'jmx["{#JMXOBJ}",SentMessagesCount]'
              value_type: FLOAT
              units: '!msg/s'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'The number of  messages sent per second.'
              preprocessing:
                - type: CHANGE_PER_SECOND
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
          graph_prototypes:
            - uuid: 9a116cfc05bc46d1bab248048f125a78
              name: '[{#JMXIGNITEINSTANCENAME}]: Communication messages rate'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'Ignite by JMX'
                    key: 'jmx["{#JMXOBJ}",SentMessagesCount]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'Ignite by JMX'
                    key: 'jmx["{#JMXOBJ}",ReceivedMessagesCount]'
          jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  var data = JSON.parse(value);
                  for (var item, i = 0; item = data.data[i++];) {
                  	if (!('{#JMXIGNITEINSTANCENAME}' in item)) {
                  		Object.assign(item, {
                  			'{#JMXIGNITEINSTANCENAME}': 'null'
                  		});
                  	}
                  
                  }
                  
                  return JSON.stringify(data)
        - uuid: bab4df33f0bb4b5d892438865b6a97f2
          name: 'TCP discovery SPI'
          type: JMX
          key: 'jmx.discovery[beans,"org.apache:group=SPIs,name=TcpDiscoverySpi,*"]'
          delay: 30m
          username: '{$IGNITE.USER}'
          password: '{$IGNITE.PASSWORD}'
          item_prototypes:
            - uuid: d7a4b267f29b4baab3af479e7b49ae66
              name: '[{#JMXIGNITEINSTANCENAME}]: Coordinator'
              type: JMX
              key: 'jmx["{#JMXOBJ}",Coordinator]'
              value_type: CHAR
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Current coordinator UUID.'
              preprocessing:
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3h
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
              trigger_prototypes:
                - uuid: 82e24abcc7874382a2af0018a4a001e1
                  expression: 'last(/Ignite by JMX/jmx["{#JMXOBJ}",Coordinator],#1)<>last(/Ignite by JMX/jmx["{#JMXOBJ}",Coordinator],#2) and length(last(/Ignite by JMX/jmx["{#JMXOBJ}",Coordinator]))>0'
                  name: 'Ignite: [{#JMXIGNITEINSTANCENAME}]: Coordinator has changed'
                  event_name: 'Ignite: [{#JMXIGNITEINSTANCENAME}]: Version has changed (new version: {ITEM.VALUE})'
                  priority: WARNING
                  description: '[{#JMXIGNITEINSTANCENAME}] version has changed. Acknowledge to close the problem manually.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: 7b7a7edb2602436c8b53d6f9f4ea2236
              name: '[{#JMXIGNITEINSTANCENAME}]: Discovery message worker queue'
              type: JMX
              key: 'jmx["{#JMXOBJ}",MessageWorkerQueueSize]'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Message worker queue current size.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
            - uuid: d933d5036b1f41358130c512af1161c6
              name: '[{#JMXIGNITEINSTANCENAME}]: Nodes failed'
              type: JMX
              key: 'jmx["{#JMXOBJ}",NodesFailed]'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Nodes failed count.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
            - uuid: 4464386c72704016a790371e8117896c
              name: '[{#JMXIGNITEINSTANCENAME}]: Nodes joined'
              type: JMX
              key: 'jmx["{#JMXOBJ}",NodesJoined]'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Nodes join count.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
            - uuid: fda81af6a86948b394b53f1ec505993a
              name: '[{#JMXIGNITEINSTANCENAME}]: Nodes left'
              type: JMX
              key: 'jmx["{#JMXOBJ}",NodesLeft]'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Nodes left count.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
            - uuid: 57aeab81263f45fba8189347d5446045
              name: '[{#JMXIGNITEINSTANCENAME}]: Discovery reconnect, rate'
              type: JMX
              key: 'jmx["{#JMXOBJ}",ReconnectCount]'
              value_type: FLOAT
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Number of times node tries to (re)establish connection to another node per second.'
              preprocessing:
                - type: CHANGE_PER_SECOND
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
            - uuid: 615e7eb22a2d46ab863628d40bff4d7d
              name: '[{#JMXIGNITEINSTANCENAME}]: TotalProcessedMessages'
              type: JMX
              key: 'jmx["{#JMXOBJ}",TotalProcessedMessages]'
              value_type: FLOAT
              units: '!msg/s'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'The number of messages received per second.'
              preprocessing:
                - type: CHANGE_PER_SECOND
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
            - uuid: b896207c7fda48ea9265cebfee12f6df
              name: '[{#JMXIGNITEINSTANCENAME}]: Discovery messages received, rate'
              type: JMX
              key: 'jmx["{#JMXOBJ}",TotalReceivedMessages]'
              value_type: FLOAT
              units: '!msg/s'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'The number of messages processed per second.'
              preprocessing:
                - type: CHANGE_PER_SECOND
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
          graph_prototypes:
            - uuid: 348631d78d0644209001b054f18b2dc9
              name: '[{#JMXIGNITEINSTANCENAME}]: Discovery messages rate'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'Ignite by JMX'
                    key: 'jmx["{#JMXOBJ}",TotalProcessedMessages]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'Ignite by JMX'
                    key: 'jmx["{#JMXOBJ}",TotalReceivedMessages]'
          jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  var data = JSON.parse(value);
                  for (var item, i = 0; item = data.data[i++];) {
                  	if (!('{#JMXIGNITEINSTANCENAME}' in item)) {
                  		Object.assign(item, {
                  			'{#JMXIGNITEINSTANCENAME}': 'null'
                  		});
                  	}
                  
                  }
                  
                  return JSON.stringify(data)
        - uuid: 709e596e106b40869be746dc84214c06
          name: 'Transaction metrics'
          type: JMX
          key: 'jmx.discovery[beans,"org.apache:group=TransactionMetrics,name=TransactionMetricsMxBeanImpl,*"]'
          delay: 30m
          username: '{$IGNITE.USER}'
          password: '{$IGNITE.PASSWORD}'
          item_prototypes:
            - uuid: 9bdf9d13664b405f9737590323bc4a1c
              name: '[{#JMXIGNITEINSTANCENAME}]: Locked keys'
              type: JMX
              key: 'jmx["{#JMXOBJ}",LockedKeysNumber]'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'The number of keys locked on the node.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
            - uuid: ac461a17802440a8906ea7471659935a
              name: '[{#JMXIGNITEINSTANCENAME}]: Transactions owner, current'
              type: JMX
              key: 'jmx["{#JMXOBJ}",OwnerTransactionsNumber]'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'The number of active transactions for which this node is the initiator.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
            - uuid: 3754810fbb1f47fe858880ada9f40921
              name: '[{#JMXIGNITEINSTANCENAME}]: Transactions committed, rate'
              type: JMX
              key: 'jmx["{#JMXOBJ}",TransactionsCommittedNumber]'
              value_type: FLOAT
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'The number of transactions which were committed per second.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
            - uuid: ff5a1a7f579c430c8f1860d241bd8b2f
              name: '[{#JMXIGNITEINSTANCENAME}]: Transactions holding lock, current'
              type: JMX
              key: 'jmx["{#JMXOBJ}",TransactionsHoldingLockNumber]'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'The number of active transactions holding at least one key lock.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
            - uuid: 3de3a27adea84e9cbb2cae812a3bc9c6
              name: '[{#JMXIGNITEINSTANCENAME}]: Transactions rolledback, rate'
              type: JMX
              key: 'jmx["{#JMXOBJ}",TransactionsRolledBackNumber]'
              value_type: FLOAT
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'The number of transactions which were rollback per second.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
          graph_prototypes:
            - uuid: a10ff3fbfd92437ca24cddd82afe3572
              name: '[{#JMXIGNITEINSTANCENAME}]: Transactions'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'Ignite by JMX'
                    key: 'jmx["{#JMXOBJ}",OwnerTransactionsNumber]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'Ignite by JMX'
                    key: 'jmx["{#JMXOBJ}",TransactionsHoldingLockNumber]'
            - uuid: 0f84dd85e01d475fa1257085814800da
              name: '[{#JMXIGNITEINSTANCENAME}]: Transactions rate'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'Ignite by JMX'
                    key: 'jmx["{#JMXOBJ}",TransactionsRolledBackNumber]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'Ignite by JMX'
                    key: 'jmx["{#JMXOBJ}",TransactionsCommittedNumber]'
          jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  var data = JSON.parse(value);
                  for (var item, i = 0; item = data.data[i++];) {
                  	if (!('{#JMXIGNITEINSTANCENAME}' in item)) {
                  		Object.assign(item, {
                  			'{#JMXIGNITEINSTANCENAME}': 'null'
                  		});
                  	}
                  
                  }
                  
                  return JSON.stringify(data)
        - uuid: aefce82342554933ae1214dcd7ca708b
          name: 'Cache groups'
          type: JMX
          key: 'jmx.discovery[beans,"org.apache:group=\"Cache groups\",*"]'
          delay: 10m
          username: '{$IGNITE.USER}'
          password: '{$IGNITE.PASSWORD}'
          filter:
            evaltype: AND
            conditions:
              - macro: '{#JMXNAME}'
                value: '{$IGNITE.LLD.FILTER.CACHE.MATCHES}'
              - macro: '{#JMXNAME}'
                value: '{$IGNITE.LLD.FILTER.CACHE.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
          item_prototypes:
            - uuid: 0014580397654a279b3c8906e457ee74
              name: 'Cache group [{#JMXNAME}]: Backups'
              type: JMX
              key: 'jmx["{#JMXOBJ}",Backups]'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Count of backups configured for cache group.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
                - tag: jmx-name
                  value: '{#JMXNAME}'
            - uuid: 8b5acfc3a3c64714b57381fc0ae6b1a6
              name: 'Cache group [{#JMXNAME}]: Caches'
              type: JMX
              key: 'jmx["{#JMXOBJ}",Caches]'
              value_type: CHAR
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'List of caches.'
              preprocessing:
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3h
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
                - tag: jmx-name
                  value: '{#JMXNAME}'
              trigger_prototypes:
                - uuid: b500b51a688d4b55942ce7311e82c54f
                  expression: 'last(/Ignite by JMX/jmx["{#JMXOBJ}",Caches],#1)<>last(/Ignite by JMX/jmx["{#JMXOBJ}",Caches],#2) and length(last(/Ignite by JMX/jmx["{#JMXOBJ}",Caches]))>0'
                  name: 'Ignite: Cache group [{#JMXNAME}]: List of caches has changed'
                  event_name: 'Ignite: Cache group [{#JMXNAME}]: Version has changed (new version: {ITEM.VALUE})'
                  priority: INFO
                  description: 'List of caches has changed. Significant changes have occurred in the cluster. Acknowledge to close the problem manually.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: 253059e09010451f94ad0e6b10be7cc5
              name: 'Cache group [{#JMXNAME}]: Local node partitions, moving'
              type: JMX
              key: 'jmx["{#JMXOBJ}",LocalNodeMovingPartitionsCount]'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Count of partitions with state MOVING for this cache group located on this node.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
                - tag: jmx-name
                  value: '{#JMXNAME}'
              trigger_prototypes:
                - uuid: 32a4aa1043b44c6198f01951d9ac32b4
                  expression: 'max(/Ignite by JMX/jmx["{#JMXOBJ}",LocalNodeMovingPartitionsCount],30m)>0'
                  name: 'Ignite: Cache group [{#JMXNAME}]: Rebalance in progress'
                  priority: INFO
                  description: 'Acknowledge to close the problem manually.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: 84edf5609ef94d0185a15a606384e609
              name: 'Cache group [{#JMXNAME}]: Local node partitions, owning'
              type: JMX
              key: 'jmx["{#JMXOBJ}",LocalNodeOwningPartitionsCount]'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Count of partitions with state OWNING for this cache group located on this node.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
                - tag: jmx-name
                  value: '{#JMXNAME}'
            - uuid: 314499dd6d214bdcbc524f83c6cbaa2b
              name: 'Cache group [{#JMXNAME}]: Local node entries, renting'
              type: JMX
              key: 'jmx["{#JMXOBJ}",LocalNodeRentingEntriesCount]'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Count of entries remains to evict in RENTING partitions located on this node for this cache group.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
                - tag: jmx-name
                  value: '{#JMXNAME}'
            - uuid: 06aff67a70624af899b2f111d7e6c34b
              name: 'Cache group [{#JMXNAME}]: Local node partitions, renting'
              type: JMX
              key: 'jmx["{#JMXOBJ}",LocalNodeRentingPartitionsCount]'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Count of partitions with state RENTING for this cache group located on this node.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
                - tag: jmx-name
                  value: '{#JMXNAME}'
            - uuid: 6888861452b64b9e90ece1d1ab97ab4d
              name: 'Cache group [{#JMXNAME}]: Partition copies, max'
              type: JMX
              key: 'jmx["{#JMXOBJ}",MaximumNumberOfPartitionCopies]'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Maximum number of partition copies for all partitions of this cache group.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
                - tag: jmx-name
                  value: '{#JMXNAME}'
            - uuid: 9910268fcb3a46aca2eeaf581420ca31
              name: 'Cache group [{#JMXNAME}]: Partition copies, min'
              type: JMX
              key: 'jmx["{#JMXOBJ}",MinimumNumberOfPartitionCopies]'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Minimum number of partition copies for all partitions of this cache group.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
                - tag: jmx-name
                  value: '{#JMXNAME}'
              trigger_prototypes:
                - uuid: 8755dd8b09e347659aee2450bcdd5c28
                  expression: 'max(/Ignite by JMX/jmx["{#JMXOBJ}",MinimumNumberOfPartitionCopies],30m)=0'
                  name: 'Ignite: Cache group [{#JMXNAME}]: There is no copy for partitions'
                  priority: WARNING
                  tags:
                    - tag: scope
                      value: notice
            - uuid: edc59b661b004f9a8687b6a6b0e1dc09
              name: 'Cache group [{#JMXNAME}]: Partitions'
              type: JMX
              key: 'jmx["{#JMXOBJ}",Partitions]'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Count of partitions for cache group.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
                - tag: jmx-name
                  value: '{#JMXNAME}'
          trigger_prototypes:
            - uuid: 1b85d75607294d6a8fded5b85f7f9a4a
              expression: 'min(/Ignite by JMX/jmx["{#JMXOBJ}",Backups],5m)>=max(/Ignite by JMX/jmx["{#JMXOBJ}",MinimumNumberOfPartitionCopies],5m)'
              name: 'Ignite: Cache group [{#JMXNAME}]: One or more backups are unavailable'
              priority: WARNING
              tags:
                - tag: scope
                  value: availability
          graph_prototypes:
            - uuid: ffb5efed84144196a631b0bdef33a13e
              name: 'Cache group [{#JMXNAME}]: Partitions'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'Ignite by JMX'
                    key: 'jmx["{#JMXOBJ}",LocalNodeMovingPartitionsCount]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'Ignite by JMX'
                    key: 'jmx["{#JMXOBJ}",LocalNodeRentingPartitionsCount]'
                - sortorder: '2'
                  color: 00611C
                  item:
                    host: 'Ignite by JMX'
                    key: 'jmx["{#JMXOBJ}",LocalNodeOwningPartitionsCount]'
                - sortorder: '3'
                  color: F7941D
                  item:
                    host: 'Ignite by JMX'
                    key: 'jmx["{#JMXOBJ}",LocalNodeRentingEntriesCount]'
          jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  var data = JSON.parse(value);
                  for (var item, i = 0; item = data.data[i++];) {
                  	if (!('{#JMXIGNITEINSTANCENAME}' in item)) {
                  		Object.assign(item, {
                  			'{#JMXIGNITEINSTANCENAME}': 'null'
                  		});
                  	}
                  
                  }
                  
                  return JSON.stringify(data)
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 3h
        - uuid: d532f96029b7415fac925e6fd53100f4
          name: 'Thread pool metrics'
          type: JMX
          key: 'jmx.discovery[beans,"org.apache:group=\"Thread Pools\",*"]'
          delay: 10m
          username: '{$IGNITE.USER}'
          password: '{$IGNITE.PASSWORD}'
          filter:
            evaltype: AND
            conditions:
              - macro: '{#JMXNAME}'
                value: '{$IGNITE.LLD.FILTER.THREAD.POOL.MATCHES}'
              - macro: '{#JMXNAME}'
                value: '{$IGNITE.LLD.FILTER.THREAD.POOL.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
          item_prototypes:
            - uuid: 1646bb35234742bb894a5abfd1fbf021
              name: 'Thread pool [{#JMXNAME}]: Pool size, core'
              type: JMX
              key: 'jmx["{#JMXOBJ}",CorePoolSize]'
              units: '!msg'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'The core number of threads.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
                - tag: thread-pool
                  value: '{#JMXNAME}'
            - uuid: 959cfe87996b4d6886bb90db2265deef
              name: 'Thread pool [{#JMXNAME}]: Pool size, max'
              type: JMX
              key: 'jmx["{#JMXOBJ}",MaximumPoolSize]'
              units: '!msg'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'The maximum allowed number of threads.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
                - tag: thread-pool
                  value: '{#JMXNAME}'
            - uuid: 6c7897c2f2c842988a1e6802eb11adde
              name: 'Thread pool [{#JMXNAME}]: Pool size'
              type: JMX
              key: 'jmx["{#JMXOBJ}",PoolSize]'
              units: '!msg'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Current number of threads in the pool.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
                - tag: thread-pool
                  value: '{#JMXNAME}'
            - uuid: 0b4b22918f374603a2f14efc95c217da
              name: 'Thread pool [{#JMXNAME}]: Queue size'
              type: JMX
              key: 'jmx["{#JMXOBJ}",QueueSize]'
              units: '!msg'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Current size of the execution queue.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
                - tag: thread-pool
                  value: '{#JMXNAME}'
              trigger_prototypes:
                - uuid: 1d29e40969d54e9090724c8a774eaf4d
                  expression: 'min(/Ignite by JMX/jmx["{#JMXOBJ}",QueueSize],5m) > {$IGNITE.THREAD.QUEUE.MAX.WARN:"{#JMXNAME}"}'
                  name: 'Ignite: Thread pool [{#JMXNAME}]: Too many messages in queue'
                  event_name: 'Ignite: Thread pool [{#JMXNAME}]: Too many messages in queue (over {$IGNITE.THREAD.QUEUE.MAX.WARN:"{#JMXNAME}"} for 5 min)'
                  priority: AVERAGE
                  description: 'Number of messages in queue more than {$IGNITE.THREAD.QUEUE.MAX.WARN:"{#JMXNAME}"}.'
                  tags:
                    - tag: scope
                      value: performance
          graph_prototypes:
            - uuid: 112c375ee9264c1996ea8c35e467f4a4
              name: 'Thread pool [{#JMXNAME}]: Thread pool size'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'Ignite by JMX'
                    key: 'jmx["{#JMXOBJ}",PoolSize]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'Ignite by JMX'
                    key: 'jmx["{#JMXOBJ}",MaximumPoolSize]'
                - sortorder: '2'
                  color: 00611C
                  item:
                    host: 'Ignite by JMX'
                    key: 'jmx["{#JMXOBJ}",CorePoolSize]'
          jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  var data = JSON.parse(value);
                  for (var item, i = 0; item = data.data[i++];) {
                  	if (!('{#JMXIGNITEINSTANCENAME}' in item)) {
                  		Object.assign(item, {
                  			'{#JMXIGNITEINSTANCENAME}': 'null'
                  		});
                  	}
                  
                  }
                  
                  return JSON.stringify(data)
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 3h
        - uuid: b050fc87d8a3400282739f03c1a5fefd
          name: 'Cache metrics'
          type: JMX
          key: 'jmx.discovery[beans,"org.apache:name=\"org.apache.ignite.internal.processors.cache.CacheLocalMetricsMXBeanImpl\",*"]'
          delay: 10m
          username: '{$IGNITE.USER}'
          password: '{$IGNITE.PASSWORD}'
          filter:
            evaltype: AND
            conditions:
              - macro: '{#JMXGROUP}'
                value: '{$IGNITE.LLD.FILTER.CACHE.MATCHES}'
              - macro: '{#JMXGROUP}'
                value: '{$IGNITE.LLD.FILTER.CACHE.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
          item_prototypes:
            - uuid: 372f156464634c2b98c2ce3bfe9ac2f4
              name: 'Cache group [{#JMXGROUP}]: Cache gets, rate'
              type: JMX
              key: 'jmx["{#JMXOBJ}",CacheGets]'
              value_type: FLOAT
              units: ops
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'The number of gets to the cache per second.'
              preprocessing:
                - type: CHANGE_PER_SECOND
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
                - tag: jmx-group
                  value: '{#JMXGROUP}'
            - uuid: 5e633d192b3a472e9a29b4e0a0013ab1
              name: 'Cache group [{#JMXGROUP}]: Cache hits, pct'
              type: JMX
              key: 'jmx["{#JMXOBJ}",CacheHitPercentage]'
              value_type: FLOAT
              units: '%'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Percentage of successful hits.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
                - tag: jmx-group
                  value: '{#JMXGROUP}'
            - uuid: 0d79c416c12748f9a3471003ce4d88fb
              name: 'Cache group [{#JMXGROUP}]: Cache misses, pct'
              type: JMX
              key: 'jmx["{#JMXOBJ}",CacheMissPercentage]'
              value_type: FLOAT
              units: '%'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'Percentage of accesses that failed to find anything.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
                - tag: jmx-group
                  value: '{#JMXGROUP}'
            - uuid: fb324608d65545c79e71df0978d0d053
              name: 'Cache group [{#JMXGROUP}]: Cache puts, rate'
              type: JMX
              key: 'jmx["{#JMXOBJ}",CachePuts]'
              value_type: FLOAT
              units: ops
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'The number of puts to the cache per second.'
              preprocessing:
                - type: CHANGE_PER_SECOND
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
                - tag: jmx-group
                  value: '{#JMXGROUP}'
            - uuid: 503f39545fa04af79e8dc85f0550ed6b
              name: 'Cache group [{#JMXGROUP}]: Cache removals, rate'
              type: JMX
              key: 'jmx["{#JMXOBJ}",CacheRemovals]'
              value_type: FLOAT
              units: ops
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'The number of removals from the cache per second.'
              preprocessing:
                - type: CHANGE_PER_SECOND
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
                - tag: jmx-group
                  value: '{#JMXGROUP}'
            - uuid: 182dea03e7d64425aea8c64e1d5714ba
              name: 'Cache group [{#JMXGROUP}]: Cache size'
              type: JMX
              key: 'jmx["{#JMXOBJ}",CacheSize]'
              units: '!keys'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'The number of non-null values in the cache as a long value.'
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
                - tag: jmx-group
                  value: '{#JMXGROUP}'
            - uuid: 74119c1570c24155b450db6e5c1126cd
              name: 'Cache group [{#JMXGROUP}]: Cache transaction commits, rate'
              type: JMX
              key: 'jmx["{#JMXOBJ}",CacheTxCommits]'
              value_type: FLOAT
              units: '!tps'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'The number of transaction commits per second.'
              preprocessing:
                - type: CHANGE_PER_SECOND
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
                - tag: jmx-group
                  value: '{#JMXGROUP}'
            - uuid: 34d8a8ac772a48c486bfb101e7129fd8
              name: 'Cache group [{#JMXGROUP}]: Cache transaction rollbacks, rate'
              type: JMX
              key: 'jmx["{#JMXOBJ}",CacheTxRollbacks]'
              value_type: FLOAT
              units: '!tps'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'The number of transaction rollback per second.'
              preprocessing:
                - type: CHANGE_PER_SECOND
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
                - tag: jmx-group
                  value: '{#JMXGROUP}'
            - uuid: cb6b9006d41c46f29ff902a76a27c6f5
              name: 'Cache group [{#JMXGROUP}]: Cache heap entries'
              type: JMX
              key: 'jmx["{#JMXOBJ}",HeapEntriesCount]'
              units: '!keys'
              username: '{$IGNITE.USER}'
              password: '{$IGNITE.PASSWORD}'
              description: 'The number of entries in heap memory.'
              preprocessing:
                - type: CHANGE_PER_SECOND
              jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
              tags:
                - tag: component
                  value: ignite
                - tag: instance-name
                  value: '{#JMXIGNITEINSTANCENAME}'
                - tag: jmx-group
                  value: '{#JMXGROUP}'
          trigger_prototypes:
            - uuid: 97aa5e21a05743b9bb6714d7d5d28a67
              expression: 'last(/Ignite by JMX/jmx["{#JMXOBJ}",CacheSize])=last(/Ignite by JMX/jmx["{#JMXOBJ}",HeapEntriesCount])'
              name: 'Ignite: Cache group [{#JMXGROUP}]: All entries are in heap'
              priority: INFO
              description: 'All entries are in heap. Possibly you use eager queries it may cause out of memory exceptions for big caches. Acknowledge to close the problem manually.'
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: notice
            - uuid: bfc948858de94088a96c9eddb14b893d
              expression: 'min(/Ignite by JMX/jmx["{#JMXOBJ}",CacheTxRollbacks],5m) > max(/Ignite by JMX/jmx["{#JMXOBJ}",CacheTxCommits],5m)'
              name: 'Ignite: Cache group [{#JMXGROUP}]: Success transactions less than rollbacks for 5m'
              priority: WARNING
              dependencies:
                - name: 'Ignite: Cache group [{#JMXGROUP}]: There are no success transactions for cache for 5m'
                  expression: 'min(/Ignite by JMX/jmx["{#JMXOBJ}",CacheTxRollbacks],5m)>0 and max(/Ignite by JMX/jmx["{#JMXOBJ}",CacheTxCommits],5m)=0'
              tags:
                - tag: scope
                  value: notice
            - uuid: 1d80fe9b052444359eca04629e45e799
              expression: 'min(/Ignite by JMX/jmx["{#JMXOBJ}",CacheTxRollbacks],5m)>0 and max(/Ignite by JMX/jmx["{#JMXOBJ}",CacheTxCommits],5m)=0'
              name: 'Ignite: Cache group [{#JMXGROUP}]: There are no success transactions for cache for 5m'
              priority: AVERAGE
              tags:
                - tag: scope
                  value: notice
          graph_prototypes:
            - uuid: 50482d45d20a42e581cfdb0a40a9a9dc
              name: 'Cache group [{#JMXGROUP}]: Cache hits'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'Ignite by JMX'
                    key: 'jmx["{#JMXOBJ}",CacheHitPercentage]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'Ignite by JMX'
                    key: 'jmx["{#JMXOBJ}",CacheMissPercentage]'
            - uuid: 1ce594e3eed64627a337e690b772a741
              name: 'Cache group [{#JMXGROUP}]: Cache ops'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'Ignite by JMX'
                    key: 'jmx["{#JMXOBJ}",CacheGets]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'Ignite by JMX'
                    key: 'jmx["{#JMXOBJ}",CachePuts]'
                - sortorder: '2'
                  color: 00611C
                  item:
                    host: 'Ignite by JMX'
                    key: 'jmx["{#JMXOBJ}",CacheRemovals]'
            - uuid: 91e7fb726cf24bbf9aab6467b9e3a217
              name: 'Cache group [{#JMXGROUP}]: Cache transactions'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'Ignite by JMX'
                    key: 'jmx["{#JMXOBJ}",CacheTxCommits]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'Ignite by JMX'
                    key: 'jmx["{#JMXOBJ}",CacheTxRollbacks]'
          jmx_endpoint: 'service:jmx:rmi:///jndi/rmi://{HOST.CONN}:{HOST.PORT}/jmxrmi'
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  var data = JSON.parse(value);
                  for (var item, i = 0; item = data.data[i++];) {
                  	if (!('{#JMXIGNITEINSTANCENAME}' in item)) {
                  		Object.assign(item, {
                  			'{#JMXIGNITEINSTANCENAME}': 'null'
                  		});
                  	}
                  
                  }
                  
                  return JSON.stringify(data)
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 3h
      tags:
        - tag: class
          value: database
        - tag: subclass
          value: management
        - tag: target
          value: ignite
      macros:
        - macro: '{$IGNITE.CHECKPOINT.PUSED.MAX.HIGH}'
          value: '80'
          description: 'The maximum percent of checkpoint buffer utilization for high trigger expression.'
          config:
            type: TEXT
            priority: '14'
            section_name: Thresholds
            label: 'Checkpoint buffer utilization max (high) %'
            description: 'The maximum percent of checkpoint buffer utilization for high trigger expression. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$IGNITE.CHECKPOINT.PUSED.MAX.WARN}'
          value: '66'
          description: 'The maximum percent of checkpoint buffer utilization for warning trigger expression.'
          config:
            type: TEXT
            priority: '15'
            section_name: Thresholds
            label: 'Checkpoint buffer utilization max (warning) %'
            description: 'The maximum percent of checkpoint buffer utilization for warning trigger expression. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$IGNITE.DATA.REGION.PUSED.MAX.HIGH}'
          value: '90'
          description: 'The maximum percent of data region utilization for high trigger expression.'
          config:
            type: TEXT
            priority: '16'
            section_name: Thresholds
            label: 'Data region utilization max (high) %'
            description: 'The maximum percent of data region utilization for high trigger expression. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$IGNITE.DATA.REGION.PUSED.MAX.WARN}'
          value: '80'
          description: 'The maximum percent of data region utilization for warning trigger expression.'
          config:
            type: TEXT
            priority: '17'
            section_name: Thresholds
            label: 'Data region utilization max (warning) %'
            description: 'The maximum percent of data region utilization for warning trigger expression. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$IGNITE.JOBS.QUEUE.MAX.WARN}'
          value: '10'
          description: 'The maximum number of queued jobs for trigger expression.'
          config:
            type: TEXT
            priority: '13'
            section_name: Thresholds
            label: 'Max queued jobs'
            description: 'The maximum number of queued jobs for trigger expression.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$IGNITE.LLD.FILTER.CACHE.MATCHES}'
          value: '.*'
          description: 'Filter of discoverable cache groups.'
          config:
            type: TEXT
            priority: '7'
            section_name: Filters
            label: 'Cache groups filter (include)'
            description: 'Filter of discoverable cache groups.'
        - macro: '{$IGNITE.LLD.FILTER.CACHE.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          description: 'Filter to exclude discovered cache groups.'
          config:
            type: TEXT
            priority: '8'
            section_name: Filters
            label: 'Cache groups filter (exclude)'
            description: 'Filter to exclude discovered cache groups.'
        - macro: '{$IGNITE.LLD.FILTER.DATA.REGION.MATCHES}'
          value: '.*'
          description: 'Filter of discoverable data regions.'
          config:
            type: TEXT
            priority: '5'
            section_name: Filters
            label: 'Data regions filter (include)'
            description: 'Filter of discoverable data regions.'
        - macro: '{$IGNITE.LLD.FILTER.DATA.REGION.NOT_MATCHES}'
          value: ^(sysMemPlc|TxLog)$
          description: 'Filter to exclude discovered data regions.'
          config:
            type: TEXT
            priority: '6'
            section_name: Filters
            label: 'Data regions filter (exclude)'
            description: 'Filter to exclude discovered data regions.'
        - macro: '{$IGNITE.LLD.FILTER.THREAD.POOL.MATCHES}'
          value: '.*'
          description: 'Filter of discoverable thread pools.'
          config:
            type: TEXT
            priority: '3'
            section_name: Filters
            label: 'Thread pools filter (include)'
            description: 'Filter of discoverable thread pools.'
        - macro: '{$IGNITE.LLD.FILTER.THREAD.POOL.NOT_MATCHES}'
          value: ^(GridCallbackExecutor|GridRebalanceStripedExecutor|GridDataStreamExecutor|StripedExecutor)$
          description: 'Filter to exclude discovered thread pools.'
          config:
            type: TEXT
            priority: '4'
            section_name: Filters
            label: 'Thread pools filter (exclude)'
            description: 'Filter to exclude discovered thread pools.'
        - macro: '{$IGNITE.PASSWORD}'
          config:
            type: TEXT
            priority: '1'
            label: Password
            required: 'YES'
        - macro: '{$IGNITE.PME.DURATION.MAX.HIGH}'
          value: '60000'
          description: 'The maximum PME duration in ms for high trigger expression.'
          config:
            type: TEXT
            priority: '11'
            section_name: Thresholds
            label: 'PME duration max (high) ms'
            description: 'The maximum PME duration in ms for high trigger expression.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$IGNITE.PME.DURATION.MAX.WARN}'
          value: '10000'
          description: 'The maximum PME duration in ms for warning trigger expression.'
          config:
            type: TEXT
            priority: '10'
            section_name: Thresholds
            label: 'PME duration max (warning) ms'
            description: 'The maximum PME duration in ms for warning trigger expression.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$IGNITE.THREAD.QUEUE.MAX.WARN}'
          value: '1000'
          description: 'Threshold for thread pool queue size. Can be used with thread pool name as context.'
          config:
            type: TEXT
            priority: '9'
            section_name: Thresholds
            label: 'Thread pool queue size threshold'
            description: 'Threshold for thread pool queue size. Can be used with thread pool name as context.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$IGNITE.THREADS.COUNT.MAX.WARN}'
          value: '1000'
          description: 'The maximum number of running threads for trigger expression.'
          config:
            type: TEXT
            priority: '12'
            section_name: Thresholds
            label: 'Max running threads'
            description: 'The maximum number of running threads for trigger expression.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$IGNITE.USER}'
          value: zabbix
          config:
            type: TEXT
            priority: '2'
            label: Username
            required: 'YES'
    - uuid: 79267c69f54a4e59b4152aba4e8c4bd5
      template: 'NetApp AFF A700 by HTTP'
      name: 'NetApp AFF A700 by HTTP'
      description: |
        The template to monitor SAN NetApp AFF A700 cluster by Zabbix HTTP agent.
        
        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'
      vendor:
        name: Zabbix
        version: 8.0-2
      groups:
        - name: Templates/SAN
      items:
        - uuid: 95d822159f2a4c4084ad36b18cd11a1d
          name: 'Get chassis'
          type: HTTP_AGENT
          key: netapp.chassis.get
          history: '0'
          value_type: TEXT
          authtype: BASIC
          username: '{$NETAPP.USERNAME}'
          password: '{$NETAPP.PASSWORD}'
          timeout: '{$NETAPP.HTTP.AGENT.TIMEOUT}'
          url: '{$NETAPP.URL}/api/cluster/chassis?fields=id,state'
          tags:
            - tag: component
              value: raw
        - uuid: 49490a886b5f4e5c9e8cc121a6ffd713
          name: 'Get cluster'
          type: HTTP_AGENT
          key: netapp.cluster.get
          history: '0'
          value_type: TEXT
          authtype: BASIC
          username: '{$NETAPP.USERNAME}'
          password: '{$NETAPP.PASSWORD}'
          timeout: '{$NETAPP.HTTP.AGENT.TIMEOUT}'
          url: '{$NETAPP.URL}/api/cluster'
          tags:
            - tag: component
              value: raw
        - uuid: 2c98b9d6353a4b1f9c0a794681788c22
          name: 'Cluster location'
          type: DEPENDENT
          key: netapp.cluster.location
          value_type: CHAR
          description: 'The location of the cluster.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.location
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 6h
          master_item:
            key: netapp.cluster.get
          tags:
            - tag: component
              value: cluster
        - uuid: a052583b18b44ed9b8df1c1eca375113
          name: 'Cluster name'
          type: DEPENDENT
          key: netapp.cluster.name
          value_type: CHAR
          description: 'The name of the cluster.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.name
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 6h
          master_item:
            key: netapp.cluster.get
          tags:
            - tag: component
              value: cluster
        - uuid: 63c3ea4634024fb88841cee7e64c964b
          name: 'Cluster IOPS, other rate'
          type: DEPENDENT
          key: netapp.cluster.statistics.iops.other.rate
          value_type: FLOAT
          units: '!iops'
          description: 'The number of I/O operations observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.statistics.iops_raw.other
            - type: CHANGE_PER_SECOND
          master_item:
            key: netapp.cluster.get
          tags:
            - tag: component
              value: cluster
            - tag: component
              value: iops
        - uuid: 5f38f233c9c0446e8bb9e60229294cdf
          name: 'Cluster IOPS, read rate'
          type: DEPENDENT
          key: netapp.cluster.statistics.iops.read.rate
          value_type: FLOAT
          units: '!iops'
          description: 'The number of I/O operations observed at the storage object. Performance metric for read I/O operations.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.statistics.iops_raw.read
            - type: CHANGE_PER_SECOND
          master_item:
            key: netapp.cluster.get
          tags:
            - tag: component
              value: cluster
            - tag: component
              value: iops
        - uuid: 8380db1dbf2a4c2e95eff184d3a61fde
          name: 'Cluster IOPS, total rate'
          type: DEPENDENT
          key: netapp.cluster.statistics.iops.total.rate
          value_type: FLOAT
          units: '!iops'
          description: 'The number of I/O operations observed at the storage object. Performance metric aggregated over all types of I/O operations.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.statistics.iops_raw.total
            - type: CHANGE_PER_SECOND
          master_item:
            key: netapp.cluster.get
          tags:
            - tag: component
              value: cluster
            - tag: component
              value: iops
        - uuid: 65a4b938010045ef9735a7d9f6239ccd
          name: 'Cluster IOPS, write rate'
          type: DEPENDENT
          key: netapp.cluster.statistics.iops.write.rate
          value_type: FLOAT
          units: '!iops'
          description: 'The number of I/O operations observed at the storage object. Performance metric for write I/O operations.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.statistics.iops_raw.write
            - type: CHANGE_PER_SECOND
          master_item:
            key: netapp.cluster.get
          tags:
            - tag: component
              value: cluster
            - tag: component
              value: iops
        - uuid: 77253d87ce8242afa45a3c79ab96a91e
          name: 'Cluster IOPS raw, other'
          type: DEPENDENT
          key: netapp.cluster.statistics.iops_raw.other
          units: '!iops'
          description: 'The number of I/O operations observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.statistics.iops_raw.other
          master_item:
            key: netapp.cluster.get
          tags:
            - tag: component
              value: cluster
            - tag: component
              value: iops
        - uuid: 14262390978b45729fa3ac593cf21a69
          name: 'Cluster IOPS raw, read'
          type: DEPENDENT
          key: netapp.cluster.statistics.iops_raw.read
          units: '!iops'
          description: 'The number of I/O operations observed at the storage object. Performance metric for read I/O operations.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.statistics.iops_raw.read
          master_item:
            key: netapp.cluster.get
          tags:
            - tag: component
              value: cluster
            - tag: component
              value: iops
        - uuid: 7a0407b68348478f9bc56bf0629f59d2
          name: 'Cluster IOPS raw, total'
          type: DEPENDENT
          key: netapp.cluster.statistics.iops_raw.total
          units: '!iops'
          description: 'The number of I/O operations observed at the storage object. Performance metric aggregated over all types of I/O operations.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.statistics.iops_raw.total
          master_item:
            key: netapp.cluster.get
          tags:
            - tag: component
              value: cluster
            - tag: component
              value: iops
        - uuid: 92640d6a2d044100a59c5d180d43fbce
          name: 'Cluster IOPS raw, write'
          type: DEPENDENT
          key: netapp.cluster.statistics.iops_raw.write
          units: '!iops'
          description: 'The number of I/O operations observed at the storage object. Performance metric for write I/O operations.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.statistics.iops_raw.write
          master_item:
            key: netapp.cluster.get
          tags:
            - tag: component
              value: cluster
            - tag: component
              value: iops
        - uuid: 4bd4fe94e9a54fa2b8ab9bdf0475edff
          name: 'Cluster latency, other'
          type: CALCULATED
          key: netapp.cluster.statistics.latency.other
          value_type: FLOAT
          units: '!ms'
          params: |
            (last(//netapp.cluster.statistics.latency_raw.other) - last(//netapp.cluster.statistics.latency_raw.other,#2)) /
            (last(//netapp.cluster.statistics.iops_raw.other) - last(//netapp.cluster.statistics.iops_raw.other,#2) +
            (last(//netapp.cluster.statistics.iops_raw.other) - last(//netapp.cluster.statistics.iops_raw.other,#2) = 0) ) * 0.001
          description: 'The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on.'
          tags:
            - tag: component
              value: cluster
            - tag: component
              value: latency
        - uuid: 4b89e603f9cf4b92a85293b1ad15c005
          name: 'Cluster latency, read'
          type: CALCULATED
          key: netapp.cluster.statistics.latency.read
          value_type: FLOAT
          units: '!ms'
          params: |
            (last(//netapp.cluster.statistics.latency_raw.read) - last(//netapp.cluster.statistics.latency_raw.read,#2)) /
            (last(//netapp.cluster.statistics.iops_raw.read) - last(//netapp.cluster.statistics.iops_raw.read,#2) +
            (last(//netapp.cluster.statistics.iops_raw.read) - last(//netapp.cluster.statistics.iops_raw.read,#2) = 0) ) * 0.001
          description: 'The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for read I/O operations.'
          tags:
            - tag: component
              value: cluster
            - tag: component
              value: latency
        - uuid: 2c953f67a7484e389d11ac5ef6b06c44
          name: 'Cluster latency, total'
          type: CALCULATED
          key: netapp.cluster.statistics.latency.total
          value_type: FLOAT
          units: '!ms'
          params: |
            (last(//netapp.cluster.statistics.latency_raw.total) - last(//netapp.cluster.statistics.latency_raw.total,#2)) /
            (last(//netapp.cluster.statistics.iops_raw.total) - last(//netapp.cluster.statistics.iops_raw.total,#2) +
            (last(//netapp.cluster.statistics.iops_raw.total) - last(//netapp.cluster.statistics.iops_raw.total,#2) = 0) ) * 0.001
          description: 'The average latency per I/O operation in milliseconds observed at the storage object. Performance metric aggregated over all types of I/O operations.'
          tags:
            - tag: component
              value: cluster
            - tag: component
              value: latency
        - uuid: 543ba306d85e41c98d34dab39463dd87
          name: 'Cluster latency, write'
          type: CALCULATED
          key: netapp.cluster.statistics.latency.write
          value_type: FLOAT
          units: '!ms'
          params: |
            (last(//netapp.cluster.statistics.latency_raw.write) - last(//netapp.cluster.statistics.latency_raw.write,#2)) /
            (last(//netapp.cluster.statistics.iops_raw.write) - last(//netapp.cluster.statistics.iops_raw.write,#2) +
            (last(//netapp.cluster.statistics.iops_raw.write) - last(//netapp.cluster.statistics.iops_raw.write,#2) = 0) ) * 0.001
          description: 'The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for write I/O operations.'
          tags:
            - tag: component
              value: cluster
            - tag: component
              value: latency
        - uuid: acd5b961c4d843589514771fa9a0aaa3
          name: 'Cluster latency raw, other'
          type: DEPENDENT
          key: netapp.cluster.statistics.latency_raw.other
          units: '!mcs'
          description: 'The raw latency in microseconds observed at the storage object. This can be divided by the raw IOPS value to calculate the average latency per I/O operation. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.statistics.latency_raw.other
          master_item:
            key: netapp.cluster.get
          tags:
            - tag: component
              value: cluster
            - tag: component
              value: latency
        - uuid: 3e81e918028d412eaa2cb27718ae3b98
          name: 'Cluster latency raw, read'
          type: DEPENDENT
          key: netapp.cluster.statistics.latency_raw.read
          units: '!mcs'
          description: 'The raw latency in microseconds observed at the storage object. This can be divided by the raw IOPS value to calculate the average latency per I/O operation. Performance metric for read I/O operations.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.statistics.latency_raw.read
          master_item:
            key: netapp.cluster.get
          tags:
            - tag: component
              value: cluster
            - tag: component
              value: latency
        - uuid: 78253f625b7e468898f6dd48c9707ad3
          name: 'Cluster latency raw, total'
          type: DEPENDENT
          key: netapp.cluster.statistics.latency_raw.total
          units: '!mcs'
          description: 'The raw latency in microseconds observed at the storage object. This can be divided by the raw IOPS value to calculate the average latency per I/O operation. Performance metric aggregated over all types of I/O operations.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.statistics.latency_raw.total
          master_item:
            key: netapp.cluster.get
          tags:
            - tag: component
              value: cluster
            - tag: component
              value: latency
        - uuid: fb73702348d3468cad5312af772eaeb9
          name: 'Cluster latency raw, write'
          type: DEPENDENT
          key: netapp.cluster.statistics.latency_raw.write
          units: '!mcs'
          description: 'The raw latency in microseconds observed at the storage object. This can be divided by the raw IOPS value to calculate the average latency per I/O operation. Performance metric for write I/O operations.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.statistics.latency_raw.write
          master_item:
            key: netapp.cluster.get
          tags:
            - tag: component
              value: cluster
            - tag: component
              value: latency
        - uuid: 61acb5f1435f4452a789c44bfd105da3
          name: 'Cluster throughput, other rate'
          type: DEPENDENT
          key: netapp.cluster.statistics.throughput.other.rate
          value_type: FLOAT
          units: Bps
          description: 'Throughput bytes observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.statistics.throughput_raw.other
            - type: CHANGE_PER_SECOND
          master_item:
            key: netapp.cluster.get
          tags:
            - tag: component
              value: cluster
            - tag: component
              value: throughput
        - uuid: a1fad2e35b8f4c1da450b953d3952263
          name: 'Cluster throughput, read rate'
          type: DEPENDENT
          key: netapp.cluster.statistics.throughput.read.rate
          value_type: FLOAT
          units: Bps
          description: 'Throughput bytes observed at the storage object. Performance metric for read I/O operations.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.statistics.throughput_raw.read
            - type: CHANGE_PER_SECOND
          master_item:
            key: netapp.cluster.get
          tags:
            - tag: component
              value: cluster
            - tag: component
              value: throughput
        - uuid: e894ad01c2d74edfb8f954198979070c
          name: 'Cluster throughput, total rate'
          type: DEPENDENT
          key: netapp.cluster.statistics.throughput.total.rate
          value_type: FLOAT
          units: Bps
          description: 'Throughput bytes observed at the storage object. Performance metric aggregated over all types of I/O operations.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.statistics.throughput_raw.total
            - type: CHANGE_PER_SECOND
          master_item:
            key: netapp.cluster.get
          tags:
            - tag: component
              value: cluster
            - tag: component
              value: throughput
        - uuid: c06c118d3fbe48b78db12e43232d6d97
          name: 'Cluster throughput, write rate'
          type: DEPENDENT
          key: netapp.cluster.statistics.throughput.write.rate
          value_type: FLOAT
          units: Bps
          description: 'Throughput bytes observed at the storage object. Performance metric for write I/O operations.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.statistics.throughput_raw.write
            - type: CHANGE_PER_SECOND
          master_item:
            key: netapp.cluster.get
          tags:
            - tag: component
              value: cluster
            - tag: component
              value: throughput
        - uuid: 5029bccf54f542b1a2dc760067ddabe3
          name: 'Cluster status'
          type: DEPENDENT
          key: netapp.cluster.status
          value_type: CHAR
          description: 'The status of the cluster: ok, error, partial_no_data, partial_no_response, partial_other_error, negative_delta, backfilled_data, inconsistent_delta_time, inconsistent_old_data.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.statistics.status
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 6h
          master_item:
            key: netapp.cluster.get
          tags:
            - tag: component
              value: cluster
          triggers:
            - uuid: c823a2eb325a4153871be705d7c24c72
              expression: '(last(/NetApp AFF A700 by HTTP/netapp.cluster.status)<>"ok")'
              name: 'NetApp AFF A700: Cluster status is abnormal'
              priority: AVERAGE
              description: 'Any errors associated with the sample. For example, if the aggregation of data over multiple nodes fails then any of the partial errors might be returned, “ok” on success, or “error” on any internal uncategorized failure. Whenever a sample collection is missed but done at a later time, it is back filled to the previous 15 second timestamp and tagged with "backfilled_data". “Inconsistent_ delta_time” is encountered when the time between two collections is not the same for all nodes. Therefore, the aggregated value might be over or under inflated. “Negative_delta” is returned when an expected monotonically increasing value has decreased in value. “Inconsistent_old_data” is returned when one or more nodes do not have the latest data.'
              tags:
                - tag: scope
                  value: availability
                - tag: scope
                  value: performance
        - uuid: cd56dc70e28f4a3382f2f1b08a4fa584
          name: 'Cluster software version'
          type: DEPENDENT
          key: netapp.cluster.version
          value_type: CHAR
          description: 'This returns the cluster version information. When the cluster has more than one node, the cluster version is equivalent to the lowest of generation, major, and minor versions on all nodes.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.version.full
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 6h
          master_item:
            key: netapp.cluster.get
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: 4a2936f068ed486f8c8a2cf2cfa7440b
              expression: 'last(/NetApp AFF A700 by HTTP/netapp.cluster.version,#1)<>last(/NetApp AFF A700 by HTTP/netapp.cluster.version,#2) and length(last(/NetApp AFF A700 by HTTP/netapp.cluster.version))>0'
              name: 'NetApp AFF A700: Version has changed'
              event_name: 'NetApp AFF A700: Version has changed (new version: {ITEM.VALUE})'
              priority: INFO
              description: 'The NetApp AFF A700 version has changed. Acknowledge to close the problem manually.'
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: notice
        - uuid: c9bf91e0f23c4961aed8ee5b32ff7767
          name: 'Get disks'
          type: HTTP_AGENT
          key: netapp.disks.get
          history: '0'
          value_type: TEXT
          authtype: BASIC
          username: '{$NETAPP.USERNAME}'
          password: '{$NETAPP.PASSWORD}'
          timeout: '{$NETAPP.HTTP.AGENT.TIMEOUT}'
          url: '{$NETAPP.URL}/api/storage/disks?fields=state,node.name'
          tags:
            - tag: component
              value: raw
        - uuid: 54163ca73a8c40188048ef5d89ec4927
          name: 'Get FRUs'
          type: HTTP_AGENT
          key: netapp.frus.get
          history: '0'
          value_type: TEXT
          authtype: BASIC
          username: '{$NETAPP.USERNAME}'
          password: '{$NETAPP.PASSWORD}'
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  var result = [];
                  
                  JSON.parse(value).records.forEach(function(chassis) {
                  	chassis.frus.forEach(function(frus) {
                  		frus.chassisId = chassis.id;
                  		result.push(frus);
                  	})
                  });
                  
                  return JSON.stringify(result);
          timeout: '{$NETAPP.HTTP.AGENT.TIMEOUT}'
          url: '{$NETAPP.URL}/api/cluster/chassis?fields=id,frus.id,frus.state'
          tags:
            - tag: component
              value: raw
        - uuid: c9b6ac2405af48c0899d1536662f752b
          name: 'Get LUNs'
          type: HTTP_AGENT
          key: netapp.luns.get
          history: '0'
          value_type: TEXT
          authtype: BASIC
          username: '{$NETAPP.USERNAME}'
          password: '{$NETAPP.PASSWORD}'
          timeout: '{$NETAPP.HTTP.AGENT.TIMEOUT}'
          url: '{$NETAPP.URL}/api/storage/luns?fields=name,svm.name,space.size,space.used,status.state,status.container_state'
          tags:
            - tag: component
              value: raw
        - uuid: 5c36efc545ba4dcbb0be84da5e8088cc
          name: 'Get nodes'
          type: HTTP_AGENT
          key: netapp.nodes.get
          history: '0'
          value_type: TEXT
          authtype: BASIC
          username: '{$NETAPP.USERNAME}'
          password: '{$NETAPP.PASSWORD}'
          timeout: '{$NETAPP.HTTP.AGENT.TIMEOUT}'
          url: '{$NETAPP.URL}/api/cluster/nodes?fields=*'
          tags:
            - tag: component
              value: raw
        - uuid: c677a3caf7a04710bc67b165b4152808
          name: 'Get ethernet ports'
          type: HTTP_AGENT
          key: netapp.ports.eth.get
          history: '0'
          value_type: TEXT
          authtype: BASIC
          username: '{$NETAPP.USERNAME}'
          password: '{$NETAPP.PASSWORD}'
          timeout: '{$NETAPP.HTTP.AGENT.TIMEOUT}'
          url: '{$NETAPP.URL}/api/network/ethernet/ports?fields=name,type,node.name,broadcast_domain.name,enabled,state,mtu,speed'
          tags:
            - tag: component
              value: raw
        - uuid: 2a6abfe87cc548bb81fcb217cde4f805
          name: 'Get FC ports'
          type: HTTP_AGENT
          key: netapp.ports.fc.get
          history: '0'
          value_type: TEXT
          authtype: BASIC
          username: '{$NETAPP.USERNAME}'
          password: '{$NETAPP.PASSWORD}'
          timeout: '{$NETAPP.HTTP.AGENT.TIMEOUT}'
          url: '{$NETAPP.URL}/api/network/fc/ports?fields=name,node.name,description,enabled,fabric.switch_port,state'
          tags:
            - tag: component
              value: raw
        - uuid: 7a813b7cb05d497fbf77bf11b01757dd
          name: 'Get SVMs'
          type: HTTP_AGENT
          key: netapp.svms.get
          history: '0'
          value_type: TEXT
          authtype: BASIC
          username: '{$NETAPP.USERNAME}'
          password: '{$NETAPP.PASSWORD}'
          timeout: '{$NETAPP.HTTP.AGENT.TIMEOUT}'
          url: '{$NETAPP.URL}/api/svm/svms?fields=name,state,comment'
          tags:
            - tag: component
              value: raw
        - uuid: fa7fa8daaaa640d494af38614ba12c2e
          name: 'Get volumes'
          type: HTTP_AGENT
          key: netapp.volumes.get
          history: '0'
          value_type: TEXT
          authtype: BASIC
          username: '{$NETAPP.USERNAME}'
          password: '{$NETAPP.PASSWORD}'
          timeout: '{$NETAPP.HTTP.AGENT.TIMEOUT}'
          url: '{$NETAPP.URL}/api/storage/volumes?fields=name,comment,state,type,svm.name,space.size,space.available,space.used,statistics'
          tags:
            - tag: component
              value: raw
      discovery_rules:
        - uuid: c5265605c1b5440999b7c0dbff8ce328
          name: 'Chassis discovery'
          type: HTTP_AGENT
          key: netapp.chassis.discovery
          delay: 1h
          authtype: BASIC
          username: '{$NETAPP.USERNAME}'
          password: '{$NETAPP.PASSWORD}'
          item_prototypes:
            - uuid: 7e6b1e1d5b484080b8f31929a78e44e7
              name: '{#ID}: State'
              type: DEPENDENT
              key: 'netapp.chassis.state[{#ID}]'
              value_type: CHAR
              description: 'The chassis state: ok, error.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.records[?(@.id==''{#ID}'')].state.first()'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: netapp.chassis.get
              tags:
                - tag: chassis
                  value: '{#ID}'
                - tag: component
                  value: chassis
              trigger_prototypes:
                - uuid: 381eb797545d452a84d3dba43865bbed
                  expression: '(last(/NetApp AFF A700 by HTTP/netapp.chassis.state[{#ID}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.chassis.state[{#ID}],#2) and last(/NetApp AFF A700 by HTTP/netapp.chassis.state[{#ID}])="error")'
                  recovery_mode: RECOVERY_EXPRESSION
                  recovery_expression: '(last(/NetApp AFF A700 by HTTP/netapp.chassis.state[{#ID}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.chassis.state[{#ID}],#2) and last(/NetApp AFF A700 by HTTP/netapp.chassis.state[{#ID}])="ok")'
                  name: 'NetApp AFF A700: {#ID}: Chassis has something errors'
                  priority: AVERAGE
                  description: 'Something is wrong with the chassis.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: performance
          timeout: '{$NETAPP.HTTP.AGENT.TIMEOUT}'
          url: '{$NETAPP.URL}/api/cluster/chassis?fields=id'
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  var result = [];
                  
                  JSON.parse(value).records.forEach(function (chassis) {
                  	result.push({"{#ID}": chassis.id});
                  });
                  
                  return JSON.stringify(result);
        - uuid: e7c0955f88d342179b96f56e1f35afe2
          name: 'Disks discovery'
          type: HTTP_AGENT
          key: netapp.disks.discovery
          delay: 1h
          authtype: BASIC
          username: '{$NETAPP.USERNAME}'
          password: '{$NETAPP.PASSWORD}'
          item_prototypes:
            - uuid: f170a3d8e98048ce91bf10f1ebcd2611
              name: '{#DISKNAME}: State'
              type: DEPENDENT
              key: 'netapp.disk.state[{#NODENAME},{#DISKNAME}]'
              value_type: CHAR
              description: 'The state of the disk. Possible values: broken, copy, maintenance, partner, pending, present, reconstructing, removed, spare, unfail, zeroing'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.records[?(@.name==''{#DISKNAME}''&&@.node.name==''{#NODENAME}'')].state.first()'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: netapp.disks.get
              tags:
                - tag: component
                  value: disk
                - tag: disk
                  value: '{#DISKNAME}'
                - tag: node
                  value: '{#NODENAME}'
              trigger_prototypes:
                - uuid: 72c1925f51c149eca27c7ddd1c81e44f
                  expression: '(last(/NetApp AFF A700 by HTTP/netapp.disk.state[{#NODENAME},{#DISKNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.disk.state[{#NODENAME},{#DISKNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.disk.state[{#NODENAME},{#DISKNAME}])<>"present")'
                  recovery_mode: RECOVERY_EXPRESSION
                  recovery_expression: '(last(/NetApp AFF A700 by HTTP/netapp.disk.state[{#NODENAME},{#DISKNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.disk.state[{#NODENAME},{#DISKNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.disk.state[{#NODENAME},{#DISKNAME}])="present")'
                  name: 'NetApp AFF A700: {#DISKNAME}: Disk of the Node "{#NODENAME}" has state different from "present"'
                  priority: AVERAGE
                  description: 'Something is wrong with the disk.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: performance
          timeout: '{$NETAPP.HTTP.AGENT.TIMEOUT}'
          url: '{$NETAPP.URL}/api/storage/disks?fields=name,node.name'
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  var result = [];
                  
                  JSON.parse(value).records.forEach(function (disk) {
                  	result.push({"{#DISKNAME}": disk.name, "{#NODENAME}": disk.node.name});
                  });
                  
                  return JSON.stringify(result);
        - uuid: 1ae3dea03a464096819de8a206b0780e
          name: 'FRUs discovery'
          type: DEPENDENT
          key: netapp.frus.discovery
          item_prototypes:
            - uuid: 643c9e0a8869464bacae0ff6161afe36
              name: '{#FRUID}: State'
              type: DEPENDENT
              key: 'netapp.chassis.fru.state[{#CHASSISID},{#FRUID}]'
              value_type: CHAR
              description: 'The FRU state: ok, error.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$[?(@.id==''{#FRUID}''&&@.chassisId==''{#CHASSISID}'')].state.first()'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: netapp.frus.get
              tags:
                - tag: chassis
                  value: '{#CHASSISID}'
                - tag: component
                  value: fru
                - tag: fru
                  value: '{#FRUID}'
              trigger_prototypes:
                - uuid: a17cb2ea98b6415d9e22e7f591d80adb
                  expression: '(last(/NetApp AFF A700 by HTTP/netapp.chassis.fru.state[{#CHASSISID},{#FRUID}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.chassis.fru.state[{#CHASSISID},{#FRUID}],#2) and last(/NetApp AFF A700 by HTTP/netapp.chassis.fru.state[{#CHASSISID},{#FRUID}])="error")'
                  recovery_mode: RECOVERY_EXPRESSION
                  recovery_expression: '(last(/NetApp AFF A700 by HTTP/netapp.chassis.fru.state[{#CHASSISID},{#FRUID}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.chassis.fru.state[{#CHASSISID},{#FRUID}],#2) and last(/NetApp AFF A700 by HTTP/netapp.chassis.fru.state[{#CHASSISID},{#FRUID}])="ok")'
                  name: 'NetApp AFF A700: {#FRUID}: FRU of the chassis "{#ID}" state is error'
                  priority: AVERAGE
                  description: 'Something is wrong with the FRU.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: availability
                    - tag: scope
                      value: performance
          master_item:
            key: netapp.frus.get
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  var result = [];
                  
                  JSON.parse(value).forEach(function (fru) {
                  	result.push({"{#CHASSISID}": fru.chassisId, "{#FRUID}": fru.id});
                  });
                  
                  return JSON.stringify(result);
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 6h
        - uuid: b75474be384f4d7fa0f625c4cebeef43
          name: 'LUNs discovery'
          type: HTTP_AGENT
          key: netapp.luns.discovery
          delay: 1h
          authtype: BASIC
          username: '{$NETAPP.USERNAME}'
          password: '{$NETAPP.PASSWORD}'
          item_prototypes:
            - uuid: 05dfdbc0cacb4f1fa458180e4b4fe35c
              name: '{#LUNNAME}: Space size'
              type: DEPENDENT
              key: 'netapp.lun.space.size[{#SVMNAME},{#LUNNAME}]'
              units: B
              description: 'The total provisioned size of the LUN.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.records[?(@.svm.name==''{#SVMNAME}''&&@.name==''{#LUNNAME}'')].space.size.first()'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: netapp.luns.get
              tags:
                - tag: component
                  value: lun
                - tag: lun
                  value: '{#LUNNAME}'
                - tag: svm
                  value: '{#SVMNAME}'
            - uuid: e12b5d04f3264ee2b602d459fb64c6ee
              name: '{#LUNNAME}: Space used'
              type: DEPENDENT
              key: 'netapp.lun.space.used[{#SVMNAME},{#LUNNAME}]'
              units: B
              description: 'The amount of space consumed by the main data stream of the LUN.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.records[?(@.svm.name==''{#SVMNAME}''&&@.name==''{#LUNNAME}'')].space.used.first()'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: netapp.luns.get
              tags:
                - tag: component
                  value: lun
                - tag: lun
                  value: '{#LUNNAME}'
                - tag: svm
                  value: '{#SVMNAME}'
            - uuid: 701fdb0345874ea39afc3362faa2f5a4
              name: '{#LUNNAME}: Container state'
              type: DEPENDENT
              key: 'netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}]'
              value_type: CHAR
              description: 'The state of the volume and aggregate that contain the LUN: online, aggregate_offline, volume_offline. LUNs are only available when their containers are available.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.records[?(@.svm.name==''{#SVMNAME}''&&@.name==''{#LUNNAME}'')].status.container_state.first()'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: netapp.luns.get
              tags:
                - tag: component
                  value: lun
                - tag: lun
                  value: '{#LUNNAME}'
                - tag: svm
                  value: '{#SVMNAME}'
              trigger_prototypes:
                - uuid: 7a4e0a681edd4db6b701b131fea0e5e4
                  expression: '(last(/NetApp AFF A700 by HTTP/netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}])<>"online")'
                  recovery_mode: RECOVERY_EXPRESSION
                  recovery_expression: '(last(/NetApp AFF A700 by HTTP/netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.lun.status.container_state[{#SVMNAME},{#LUNNAME}])="online")'
                  name: 'NetApp AFF A700: {#LUNNAME}: LUN of the SVM "{#SVMNAME}" has abnormal container state'
                  priority: AVERAGE
                  description: 'LUNs are only available when their containers are available.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: performance
            - uuid: ae15b98b9de2472e8c56ddb2a13d7981
              name: '{#LUNNAME}: State'
              type: DEPENDENT
              key: 'netapp.lun.status.state[{#SVMNAME},{#LUNNAME}]'
              value_type: CHAR
              description: 'The state of the LUN. Normal states for a LUN are online and offline. Other states indicate errors. Possible values: foreign_lun_error, nvfail, offline, online, space_error.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.records[?(@.svm.name==''{#SVMNAME}''&&@.name==''{#LUNNAME}'')].status.state.first()'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: netapp.luns.get
              tags:
                - tag: component
                  value: lun
                - tag: lun
                  value: '{#LUNNAME}'
                - tag: svm
                  value: '{#SVMNAME}'
              trigger_prototypes:
                - uuid: 5b065dd69e654bee881ae60464a5c9fe
                  expression: '(last(/NetApp AFF A700 by HTTP/netapp.lun.status.state[{#SVMNAME},{#LUNNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.lun.status.state[{#SVMNAME},{#LUNNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.lun.status.state[{#SVMNAME},{#LUNNAME}])<>"online")'
                  recovery_mode: RECOVERY_EXPRESSION
                  recovery_expression: '(last(/NetApp AFF A700 by HTTP/netapp.lun.status.state[{#SVMNAME},{#LUNNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.lun.status.state[{#SVMNAME},{#LUNNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.lun.status.state[{#SVMNAME},{#LUNNAME}])="online")'
                  name: 'NetApp AFF A700: {#LUNNAME}: LUN of the SVM "{#SVMNAME}" has abnormal state'
                  priority: AVERAGE
                  description: 'Normal states for a LUN are online and offline. Other states indicate errors.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: performance
          timeout: '{$NETAPP.HTTP.AGENT.TIMEOUT}'
          url: '{$NETAPP.URL}/api/storage/luns?fields=name,svm.name,space.size,space.used,status.state,status.container_state'
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  var result = [];
                  
                  JSON.parse(value).records.forEach(function (lun) {
                  	result.push({"{#LUNNAME}": lun.name, "{#SVMNAME}": lun.svm.name});
                  });
                  
                  return JSON.stringify(result);
        - uuid: b914c4c37ba446eba7ecdc73a9692885
          name: 'Nodes discovery'
          type: HTTP_AGENT
          key: netapp.nodes.discovery
          delay: 1h
          authtype: BASIC
          username: '{$NETAPP.USERNAME}'
          password: '{$NETAPP.PASSWORD}'
          item_prototypes:
            - uuid: 23474d549a4c4e80b2e89c12a909dc0c
              name: '{#NODENAME}: Software version'
              type: DEPENDENT
              key: 'netapp.node.version[{#NODENAME}]'
              value_type: CHAR
              description: 'This returns the cluster version information. When the cluster has more than one node, the cluster version is equivalent to the lowest of generation, major, and minor versions on all nodes.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.records[?(@.name==''{#NODENAME}'')].version.full.first()'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: netapp.nodes.get
              tags:
                - tag: component
                  value: node
                - tag: node
                  value: '{#NODENAME}'
              trigger_prototypes:
                - uuid: 34092a7ade784221ae50eb74a6fbcb5d
                  expression: 'last(/NetApp AFF A700 by HTTP/netapp.node.version[{#NODENAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.node.version[{#NODENAME}],#2) and length(last(/NetApp AFF A700 by HTTP/netapp.node.version[{#NODENAME}]))>0'
                  name: 'NetApp AFF A700: {#NODENAME}: Version has changed'
                  event_name: 'NetApp AFF A700: {#NODENAME}: Version has changed (new version: {ITEM.VALUE})'
                  priority: INFO
                  description: '{#NODENAME} version has changed. Acknowledge to close the problem manually.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: 416e2a3d707d4a5389c90566b588bf7f
              name: '{#NODENAME}: Controller over temperature'
              type: DEPENDENT
              key: 'netapp.nodes.controller.over_temperature[{#NODENAME}]'
              value_type: CHAR
              description: 'Specifies whether the hardware is currently operating outside of its recommended temperature range. The hardware shuts down if the temperature exceeds critical thresholds. Possible values: over, normal'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.records[?(@.name==''{#NODENAME}'')].controller.over_temperature.first()'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: netapp.nodes.get
              tags:
                - tag: component
                  value: node
                - tag: node
                  value: '{#NODENAME}'
              trigger_prototypes:
                - uuid: 4dbb3a9da15f45989b8fa4217f3f25c3
                  expression: '(last(/NetApp AFF A700 by HTTP/netapp.nodes.controller.over_temperature[{#NODENAME}])<>"normal")'
                  name: 'NetApp AFF A700: {#NODENAME}: Node has over temperature'
                  priority: AVERAGE
                  description: 'The hardware shuts down if the temperature exceeds critical thresholds(item''s value is "over").'
                  tags:
                    - tag: scope
                      value: availability
                    - tag: scope
                      value: performance
            - uuid: f554158202d347388304751c8bdf7515
              name: '{#NODENAME}: Location'
              type: DEPENDENT
              key: 'netapp.nodes.location[{#NODENAME}]'
              value_type: CHAR
              description: 'The location of the node.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.records[?(@.name==''{#NODENAME}'')].location.first()'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: netapp.nodes.get
              tags:
                - tag: component
                  value: node
                - tag: node
                  value: '{#NODENAME}'
            - uuid: be634e1ba1ea454fbc6c7c8224909187
              name: '{#NODENAME}: Membership'
              type: DEPENDENT
              key: 'netapp.nodes.membership[{#NODENAME}]'
              value_type: CHAR
              description: |
                Possible values:
                  available - If a node is available, this means it is detected on the internal cluster network and can be added to the cluster. Nodes that have a membership of “available” are not returned when a GET request is called when the cluster exists. A query on the “membership” property for available must be provided to scan for nodes on the cluster network. Nodes that have a membership of “available” are returned automatically before a cluster is created.
                  joining - Joining nodes are in the process of being added to the cluster. The node may be progressing through the steps to become a member or might have failed. The job to add the node or create the cluster provides details on the current progress of the node.
                  member - Nodes that are members have successfully joined the cluster.
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.records[?(@.name==''{#NODENAME}'')].membership.first()'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: netapp.nodes.get
              tags:
                - tag: component
                  value: node
                - tag: node
                  value: '{#NODENAME}'
            - uuid: 5b3b6fab8fe54f3585c1a270caad2b3e
              name: '{#NODENAME}: State'
              type: DEPENDENT
              key: 'netapp.nodes.state[{#NODENAME}]'
              value_type: CHAR
              description: |
                State of the node:
                up - Node is up and operational.
                booting - Node is booting up.
                down - Node has stopped or is dumping core.
                taken_over - Node has been taken over by its HA partner and is not yet waiting for giveback.
                waiting_for_giveback - Node has been taken over by its HA partner and is waiting for the HA partner to giveback disks.
                degraded - Node has one or more critical services offline.
                unknown - Node or its HA partner cannot be contacted and there is no information on the node's state.
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.records[?(@.name==''{#NODENAME}'')].state.first()'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: netapp.nodes.get
              tags:
                - tag: component
                  value: node
                - tag: node
                  value: '{#NODENAME}'
              trigger_prototypes:
                - uuid: db8ff0f2cd294cc5952992a0d476e798
                  expression: '(last(/NetApp AFF A700 by HTTP/netapp.nodes.state[{#NODENAME}])<>"up")'
                  name: 'NetApp AFF A700: {#NODENAME}: Node state is abnormal'
                  priority: AVERAGE
                  description: |
                    The state of the node is different from up:
                    booting - Node is booting up.
                    down - Node has stopped or is dumping core.
                    taken_over - Node has been taken over by its HA partner and is not yet waiting for giveback.
                    waiting_for_giveback - Node has been taken over by its HA partner and is waiting for the HA partner to giveback disks.
                    degraded - Node has one or more critical services offline.
                    unknown - Node or its HA partner cannot be contacted and there is no information on the node's state.
                  tags:
                    - tag: scope
                      value: availability
                    - tag: scope
                      value: performance
            - uuid: 56e0b6df4dbd456880c2481bec40b41e
              name: '{#NODENAME}: Uptime'
              type: DEPENDENT
              key: 'netapp.nodes.uptime[{#NODENAME}]'
              units: s
              description: 'The total time, in seconds, that the node has been up.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.records[?(@.name==''{#NODENAME}'')].uptime.first()'
              master_item:
                key: netapp.nodes.get
              tags:
                - tag: component
                  value: node
                - tag: node
                  value: '{#NODENAME}'
              trigger_prototypes:
                - uuid: 61357dfdb08846c4935f62ba894b159a
                  expression: 'last(/NetApp AFF A700 by HTTP/netapp.nodes.uptime[{#NODENAME}])<10m'
                  name: 'NetApp AFF A700: {#NODENAME}: Node has been restarted'
                  event_name: 'NetApp AFF A700: {#NODENAME}: Node has been restarted (uptime < 10m)'
                  priority: INFO
                  description: 'Uptime is less than 10 minutes.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: notice
          timeout: '{$NETAPP.HTTP.AGENT.TIMEOUT}'
          url: '{$NETAPP.URL}/api/cluster/nodes?fields=name'
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  var result = [];
                  
                  JSON.parse(value).records.forEach(function (node) {
                  	result.push({"{#NODENAME}": node.name});
                  });
                  
                  return JSON.stringify(result);
        - uuid: 98ed5727ede8490b8479a2194b2c847a
          name: 'Ethernet ports discovery'
          type: HTTP_AGENT
          key: netapp.ports.ether.discovery
          delay: 1h
          authtype: BASIC
          username: '{$NETAPP.USERNAME}'
          password: '{$NETAPP.PASSWORD}'
          item_prototypes:
            - uuid: dda2086a96f844c7b5a8002549fe6bf5
              name: '{#ETHPORTNAME}: State'
              type: DEPENDENT
              key: 'netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}]'
              value_type: CHAR
              description: 'The operational state of the port. Possible values: up, down.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.records[?(@.name==''{#ETHPORTNAME}'')].state.first()'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: netapp.ports.eth.get
              tags:
                - tag: component
                  value: interfaces
                - tag: interfaces
                  value: '{#ETHPORTNAME}'
                - tag: node
                  value: '{#NODENAME}'
              trigger_prototypes:
                - uuid: 0fa3a54b559349d58b616720ee33cdf5
                  expression: '(last(/NetApp AFF A700 by HTTP/netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}])="down")'
                  recovery_mode: RECOVERY_EXPRESSION
                  recovery_expression: '(last(/NetApp AFF A700 by HTTP/netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.port.eth.state[{#NODENAME},{#ETHPORTNAME}])="up")'
                  name: 'NetApp AFF A700: {#ETHPORTNAME}: Ethernet port of the Node "{#NODENAME}" is down'
                  priority: AVERAGE
                  description: 'Something is wrong with the ethernet port.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: availability
          timeout: '{$NETAPP.HTTP.AGENT.TIMEOUT}'
          url: '{$NETAPP.URL}/api/network/ethernet/ports?fields=name,state,node.name'
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  var result = [];
                  
                  JSON.parse(value).records.forEach(function (port) {
                  	result.push({"{#NODENAME}": port.node.name, "{#ETHPORTNAME}": port.name, "{#ETHPORTSTATE}": port.state});
                  });
                  
                  return JSON.stringify(result);
        - uuid: bab3f935c2a04c89b0901f1c19d50558
          name: 'FC ports discovery'
          type: HTTP_AGENT
          key: netapp.ports.fc.discovery
          delay: 1h
          authtype: BASIC
          username: '{$NETAPP.USERNAME}'
          password: '{$NETAPP.PASSWORD}'
          item_prototypes:
            - uuid: b4358be015104524811f011ddf0fb1a1
              name: '{#FCPORTNAME}: Description'
              type: DEPENDENT
              key: 'netapp.port.fc.description[{#NODENAME},{#FCPORTNAME}]'
              value_type: CHAR
              description: 'A description of the FC port.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.records[?(@.name==''{#FCPORTNAME}'')].description.first()'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: netapp.ports.fc.get
              tags:
                - tag: component
                  value: fc-port
                - tag: fc-port
                  value: '{#FCPORTNAME}'
                - tag: node
                  value: '{#NODENAME}'
            - uuid: e939576d865041dd8f4af24bb7811117
              name: '{#FCPORTNAME}: State'
              type: DEPENDENT
              key: 'netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}]'
              value_type: CHAR
              description: |
                The operational state of the FC port. Possible values:
                startup - The port is booting up.
                link_not_connected - The port has finished initialization, but a link with the fabric is not established.
                online - The port is initialized and a link with the fabric has been established.
                link_disconnected - The link was present at one point on this port but is currently not established.
                offlined_by_user - The port is administratively disabled.
                offlined_by_system - The port is set to offline by the system. This happens when the port encounters too many errors.
                node_offline - The state information for the port cannot be retrieved. The node is offline or inaccessible.
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.records[?(@.name==''{#FCPORTNAME}'')].state.first()'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: netapp.ports.fc.get
              tags:
                - tag: component
                  value: fc-port
                - tag: fc-port
                  value: '{#FCPORTNAME}'
                - tag: node
                  value: '{#NODENAME}'
              trigger_prototypes:
                - uuid: a985c047b9834081bf21ae50836cef46
                  expression: '(last(/NetApp AFF A700 by HTTP/netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}])<>"online")'
                  recovery_mode: RECOVERY_EXPRESSION
                  recovery_expression: '(last(/NetApp AFF A700 by HTTP/netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.port.fc.state[{#NODENAME},{#FCPORTNAME}])="online")'
                  name: 'NetApp AFF A700: {#FCPORTNAME}: FC port of the Node "{#NODENAME}" has state different from "online"'
                  priority: AVERAGE
                  description: 'Something is wrong with the FC port.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: availability
                    - tag: scope
                      value: performance
          timeout: '{$NETAPP.HTTP.AGENT.TIMEOUT}'
          url: '{$NETAPP.URL}/api/network/fc/ports?fields=node.name,name,state'
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  var result = [];
                  
                  JSON.parse(value).records.forEach(function (port) {
                  	result.push({"{#NODENAME}": port.node.name, "{#FCPORTNAME}": port.name, "{#FCPORTSTATE}": port.state});
                  });
                  
                  return JSON.stringify(result);
        - uuid: b2a5b50d7e3e4592ad9627ae85487554
          name: 'SVMs discovery'
          type: HTTP_AGENT
          key: netapp.svms.discovery
          delay: 1h
          authtype: BASIC
          username: '{$NETAPP.USERNAME}'
          password: '{$NETAPP.PASSWORD}'
          item_prototypes:
            - uuid: e7fab9c64c5348158418a02b1139eb68
              name: '{#SVMNAME}: Comment'
              type: DEPENDENT
              key: 'netapp.svm.comment[{#SVMNAME}]'
              value_type: CHAR
              description: 'The comment for the SVM.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.records[?(@.name==''{#SVMNAME}'')].comment.first()'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: netapp.svms.get
              tags:
                - tag: component
                  value: svm
                - tag: svm
                  value: '{#SVMNAME}'
            - uuid: 6534f78b5b6c4e61b8ee0ab05bcc6fa3
              name: '{#SVMNAME}: State'
              type: DEPENDENT
              key: 'netapp.svm.state[{#SVMNAME}]'
              value_type: CHAR
              description: 'SVM state: starting, running, stopping, stopped, deleting.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.records[?(@.name==''{#SVMNAME}'')].state.first()'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: netapp.svms.get
              tags:
                - tag: component
                  value: svm
                - tag: svm
                  value: '{#SVMNAME}'
              trigger_prototypes:
                - uuid: 7c5695fd13a4489ca1c9772f1d3376a7
                  expression: '(last(/NetApp AFF A700 by HTTP/netapp.svm.state[{#SVMNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.svm.state[{#SVMNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.svm.state[{#SVMNAME}])<>"running")'
                  recovery_mode: RECOVERY_EXPRESSION
                  recovery_expression: '(last(/NetApp AFF A700 by HTTP/netapp.svm.state[{#SVMNAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.svm.state[{#SVMNAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.svm.state[{#SVMNAME}])="running")'
                  name: 'NetApp AFF A700: {#SVMNAME}: SVM state is abnormal'
                  priority: AVERAGE
                  description: 'Something is wrong with the SVM.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: availability
                    - tag: scope
                      value: performance
          timeout: '{$NETAPP.HTTP.AGENT.TIMEOUT}'
          url: '{$NETAPP.URL}/api/svm/svms?fields=name'
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  var result = [];
                  
                  JSON.parse(value).records.forEach(function (svm) {
                  	result.push({"{#SVMNAME}": svm.name});
                  });
                  
                  return JSON.stringify(result);
        - uuid: 3d2001596c2642e7a6ee09d3ac7effb3
          name: 'Volumes discovery'
          type: HTTP_AGENT
          key: netapp.volumes.discovery
          delay: 1h
          authtype: BASIC
          username: '{$NETAPP.USERNAME}'
          password: '{$NETAPP.PASSWORD}'
          item_prototypes:
            - uuid: 7218a035d00b47faae1d47955de4f61f
              name: '{#VOLUMENAME}: Comment'
              type: DEPENDENT
              key: 'netapp.volume.comment[{#VOLUMENAME}]'
              value_type: CHAR
              description: 'A comment for the volume.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.records[?(@.name==''{#VOLUMENAME}'')].comment.first()'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: netapp.volumes.get
              tags:
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#VOLUMENAME}'
            - uuid: 63c67432c4dd48f3a9b2736b1d8eda60
              name: '{#VOLUMENAME}: Available size'
              type: DEPENDENT
              key: 'netapp.volume.space_available[{#VOLUMENAME}]'
              units: B
              description: 'The available space, in bytes.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.records[?(@.name==''{#VOLUMENAME}'')].space.available.first()'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: netapp.volumes.get
              tags:
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#VOLUMENAME}'
            - uuid: b17602cccbb84012b6cb8edd8bd80374
              name: '{#VOLUMENAME}: Space size'
              type: DEPENDENT
              key: 'netapp.volume.space_size[{#VOLUMENAME}]'
              units: B
              description: 'Total provisioned size. The default size is equal to the minimum size of 20MB, in bytes.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.records[?(@.name==''{#VOLUMENAME}'')].space.size.first()'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: netapp.volumes.get
              tags:
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#VOLUMENAME}'
            - uuid: 0166239c8d4a4e42ba2f9b3b530143a8
              name: '{#VOLUMENAME}: Used size'
              type: DEPENDENT
              key: 'netapp.volume.space_used[{#VOLUMENAME}]'
              units: B
              description: 'The virtual space used (includes volume reserves) before storage efficiency, in bytes.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.records[?(@.name==''{#VOLUMENAME}'')].space.used.first()'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: netapp.volumes.get
              tags:
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#VOLUMENAME}'
            - uuid: fa2ae9b23fce43a49efa9c66369cce27
              name: '{#VOLUMENAME}: State'
              type: DEPENDENT
              key: 'netapp.volume.state[{#VOLUMENAME}]'
              value_type: CHAR
              description: 'Volume state. A volume can only be brought online if it is offline. Taking a volume offline removes its junction path. The ''mixed'' state applies to FlexGroup volumes only and cannot be specified as a target state. An ''error'' state implies that the volume is not in a state to serve data.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.records[?(@.name==''{#VOLUMENAME}'')].state.first()'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: netapp.volumes.get
              tags:
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#VOLUMENAME}'
              trigger_prototypes:
                - uuid: b00f339ed1a9450ba096cabababcf76e
                  expression: '(last(/NetApp AFF A700 by HTTP/netapp.volume.state[{#VOLUMENAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.volume.state[{#VOLUMENAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.volume.state[{#VOLUMENAME}])<>"online")'
                  recovery_mode: RECOVERY_EXPRESSION
                  recovery_expression: '(last(/NetApp AFF A700 by HTTP/netapp.volume.state[{#VOLUMENAME}],#1)<>last(/NetApp AFF A700 by HTTP/netapp.volume.state[{#VOLUMENAME}],#2) and last(/NetApp AFF A700 by HTTP/netapp.volume.state[{#VOLUMENAME}])="online")'
                  name: 'NetApp AFF A700: {#VOLUMENAME}: Volume state is abnormal'
                  priority: AVERAGE
                  description: 'A volume can only be brought online if it is offline. Taking a volume offline removes its junction path. The ''mixed'' state applies to FlexGroup volumes only and cannot be specified as a target state. An ''error'' state implies that the volume is not in a state to serve data.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: performance
            - uuid: cb4cfb0ce84f405ebfbf2e4a64c12ca2
              name: '{#VOLUMENAME}: Volume IOPS, other rate'
              type: DEPENDENT
              key: 'netapp.volume.statistics.iops.other.rate[{#VOLUMENAME}]'
              value_type: FLOAT
              units: '!iops'
              description: 'The number of I/O operations observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.records[?(@.name==''{#VOLUMENAME}'')].statistics.iops_raw.other.first()'
                - type: CHANGE_PER_SECOND
              master_item:
                key: netapp.volumes.get
              tags:
                - tag: component
                  value: iops
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#VOLUMENAME}'
            - uuid: ae3142dae1294a16a4cdd0ef153f7cfb
              name: '{#VOLUMENAME}: Volume IOPS, read rate'
              type: DEPENDENT
              key: 'netapp.volume.statistics.iops.read.rate[{#VOLUMENAME}]'
              value_type: FLOAT
              units: '!iops'
              description: 'The number of I/O operations observed at the storage object. Performance metric for read I/O operations.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.records[?(@.name==''{#VOLUMENAME}'')].statistics.iops_raw.read.first()'
                - type: CHANGE_PER_SECOND
              master_item:
                key: netapp.volumes.get
              tags:
                - tag: component
                  value: iops
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#VOLUMENAME}'
            - uuid: b767b6185c744ddc8061bef36d16581d
              name: '{#VOLUMENAME}: Volume IOPS, total rate'
              type: DEPENDENT
              key: 'netapp.volume.statistics.iops.total.rate[{#VOLUMENAME}]'
              value_type: FLOAT
              units: '!iops'
              description: 'The number of I/O operations observed at the storage object. Performance metric aggregated over all types of I/O operations.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.records[?(@.name==''{#VOLUMENAME}'')].statistics.iops_raw.total.first()'
                - type: CHANGE_PER_SECOND
              master_item:
                key: netapp.volumes.get
              tags:
                - tag: component
                  value: iops
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#VOLUMENAME}'
            - uuid: ffe8787aeaa2414e82a925ab0dbfb9aa
              name: '{#VOLUMENAME}: Volume IOPS, write rate'
              type: DEPENDENT
              key: 'netapp.volume.statistics.iops.write.rate[{#VOLUMENAME}]'
              value_type: FLOAT
              units: '!iops'
              description: 'The number of I/O operations observed at the storage object. Performance metric for write I/O operations.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.records[?(@.name==''{#VOLUMENAME}'')].statistics.iops_raw.write.first()'
                - type: CHANGE_PER_SECOND
              master_item:
                key: netapp.volumes.get
              tags:
                - tag: component
                  value: iops
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#VOLUMENAME}'
            - uuid: 64a56ed125f249308d0f525aa0a3e56d
              name: '{#VOLUMENAME}: Volume IOPS raw, other'
              type: DEPENDENT
              key: 'netapp.volume.statistics.iops_raw.other[{#VOLUMENAME}]'
              units: '!iops'
              description: 'The number of I/O operations observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.records[?(@.name==''{#VOLUMENAME}'')].statistics.iops_raw.other.first()'
              master_item:
                key: netapp.volumes.get
              tags:
                - tag: component
                  value: iops
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#VOLUMENAME}'
            - uuid: 01ee6910b06e42e294e2c80229cc960e
              name: '{#VOLUMENAME}: Volume IOPS raw, read'
              type: DEPENDENT
              key: 'netapp.volume.statistics.iops_raw.read[{#VOLUMENAME}]'
              units: '!iops'
              description: 'The number of I/O operations observed at the storage object. Performance metric for read I/O operations.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.records[?(@.name==''{#VOLUMENAME}'')].statistics.iops_raw.read.first()'
              master_item:
                key: netapp.volumes.get
              tags:
                - tag: component
                  value: iops
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#VOLUMENAME}'
            - uuid: 5964ea1edbb74fa4a7c04a79ef776ff3
              name: '{#VOLUMENAME}: Volume IOPS raw, total'
              type: DEPENDENT
              key: 'netapp.volume.statistics.iops_raw.total[{#VOLUMENAME}]'
              units: '!iops'
              description: 'The number of I/O operations observed at the storage object. Performance metric aggregated over all types of I/O operations.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.records[?(@.name==''{#VOLUMENAME}'')].statistics.iops_raw.total.first()'
              master_item:
                key: netapp.volumes.get
              tags:
                - tag: component
                  value: iops
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#VOLUMENAME}'
            - uuid: 77329ceefeef490e98f7d23689765c87
              name: '{#VOLUMENAME}: Volume IOPS raw, write'
              type: DEPENDENT
              key: 'netapp.volume.statistics.iops_raw.write[{#VOLUMENAME}]'
              units: '!iops'
              description: 'The number of I/O operations observed at the storage object. Performance metric for write I/O operations.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.records[?(@.name==''{#VOLUMENAME}'')].statistics.iops_raw.write.first()'
              master_item:
                key: netapp.volumes.get
              tags:
                - tag: component
                  value: iops
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#VOLUMENAME}'
            - uuid: fc21c2c1ff87454ea9fc59af4d0d4693
              name: '{#VOLUMENAME}: Volume latency, other'
              type: CALCULATED
              key: 'netapp.volume.statistics.latency.other[{#VOLUMENAME}]'
              value_type: FLOAT
              units: '!ms'
              params: |
                (last(//netapp.volume.statistics.latency_raw.other[{#VOLUMENAME}]) - last(//netapp.volume.statistics.latency_raw.other[{#VOLUMENAME}],#2)) /
                (last(//netapp.volume.statistics.iops_raw.other[{#VOLUMENAME}]) - last(//netapp.volume.statistics.iops_raw.other[{#VOLUMENAME}],#2) +
                (last(//netapp.volume.statistics.iops_raw.other[{#VOLUMENAME}]) - last(//netapp.volume.statistics.iops_raw.other[{#VOLUMENAME}],#2) = 0) ) * 0.001
              description: 'The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on.'
              tags:
                - tag: component
                  value: latency
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#VOLUMENAME}'
            - uuid: 3e80e6c55bd0497f87d4f4e71f11f0aa
              name: '{#VOLUMENAME}: Volume latency, read'
              type: CALCULATED
              key: 'netapp.volume.statistics.latency.read[{#VOLUMENAME}]'
              value_type: FLOAT
              units: '!ms'
              params: |
                (last(//netapp.volume.statistics.latency_raw.read[{#VOLUMENAME}]) - last(//netapp.volume.statistics.latency_raw.read[{#VOLUMENAME}],#2)) /
                (last(//netapp.volume.statistics.iops_raw.read[{#VOLUMENAME}]) - last(//netapp.volume.statistics.iops_raw.read[{#VOLUMENAME}],#2) +
                (last(//netapp.volume.statistics.iops_raw.read[{#VOLUMENAME}]) - last(//netapp.volume.statistics.iops_raw.read[{#VOLUMENAME}],#2) = 0)) * 0.001
              description: 'The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for read I/O operations.'
              tags:
                - tag: component
                  value: latency
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#VOLUMENAME}'
            - uuid: ff804a090b064bfeb60183d7d7d2abe1
              name: '{#VOLUMENAME}: Volume latency, total'
              type: CALCULATED
              key: 'netapp.volume.statistics.latency.total[{#VOLUMENAME}]'
              value_type: FLOAT
              units: '!ms'
              params: |
                (last(//netapp.volume.statistics.latency_raw.total[{#VOLUMENAME}]) - last(//netapp.volume.statistics.latency_raw.total[{#VOLUMENAME}],#2)) /
                (last(//netapp.volume.statistics.iops_raw.total[{#VOLUMENAME}]) - last(//netapp.volume.statistics.iops_raw.total[{#VOLUMENAME}],#2) +
                (last(//netapp.volume.statistics.iops_raw.total[{#VOLUMENAME}]) - last(//netapp.volume.statistics.iops_raw.total[{#VOLUMENAME}],#2) = 0) ) * 0.001
              description: 'The average latency per I/O operation in milliseconds observed at the storage object. Performance metric aggregated over all types of I/O operations.'
              tags:
                - tag: component
                  value: latency
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#VOLUMENAME}'
            - uuid: eb2b3a3c4807415a8a88d11b19ae7fe6
              name: '{#VOLUMENAME}: Volume latency, write'
              type: CALCULATED
              key: 'netapp.volume.statistics.latency.write[{#VOLUMENAME}]'
              value_type: FLOAT
              units: '!ms'
              params: |
                (last(//netapp.volume.statistics.latency_raw.write[{#VOLUMENAME}]) - last(//netapp.volume.statistics.latency_raw.write[{#VOLUMENAME}],#2)) /
                (last(//netapp.volume.statistics.iops_raw.write[{#VOLUMENAME}]) - last(//netapp.volume.statistics.iops_raw.write[{#VOLUMENAME}],#2) +
                (last(//netapp.volume.statistics.iops_raw.write[{#VOLUMENAME}]) - last(//netapp.volume.statistics.iops_raw.write[{#VOLUMENAME}],#2) = 0) ) * 0.001
              description: 'The average latency per I/O operation in milliseconds observed at the storage object. Performance metric for write I/O operations.'
              tags:
                - tag: component
                  value: latency
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#VOLUMENAME}'
            - uuid: 4fdf1c23cad2453aa00710289fde1460
              name: '{#VOLUMENAME}: Volume latency raw, other'
              type: DEPENDENT
              key: 'netapp.volume.statistics.latency_raw.other[{#VOLUMENAME}]'
              units: '!mcs'
              description: 'The raw latency in microseconds observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.records[?(@.name==''{#VOLUMENAME}'')].statistics.latency_raw.other.first()'
              master_item:
                key: netapp.volumes.get
              tags:
                - tag: component
                  value: latency
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#VOLUMENAME}'
            - uuid: 0923b8b2933e4b309a4b751eea06353a
              name: '{#VOLUMENAME}: Volume latency raw, read'
              type: DEPENDENT
              key: 'netapp.volume.statistics.latency_raw.read[{#VOLUMENAME}]'
              units: '!mcs'
              description: 'The raw latency in microseconds observed at the storage object. Performance metric for read I/O operations.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.records[?(@.name==''{#VOLUMENAME}'')].statistics.latency_raw.read.first()'
              master_item:
                key: netapp.volumes.get
              tags:
                - tag: component
                  value: latency
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#VOLUMENAME}'
            - uuid: 48479110a92b4b3094e72882ec9d4812
              name: '{#VOLUMENAME}: Volume latency raw, total'
              type: DEPENDENT
              key: 'netapp.volume.statistics.latency_raw.total[{#VOLUMENAME}]'
              units: '!mcs'
              description: 'The raw latency in microseconds observed at the storage object. Performance metric aggregated over all types of I/O operations.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.records[?(@.name==''{#VOLUMENAME}'')].statistics.latency_raw.total.first()'
              master_item:
                key: netapp.volumes.get
              tags:
                - tag: component
                  value: latency
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#VOLUMENAME}'
            - uuid: a6c653c4a6164de9971b22e7a28c40d9
              name: '{#VOLUMENAME}: Volume latency raw, write'
              type: DEPENDENT
              key: 'netapp.volume.statistics.latency_raw.write[{#VOLUMENAME}]'
              units: '!mcs'
              description: 'The raw latency in microseconds observed at the storage object. Performance metric for write I/O operations.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.records[?(@.name==''{#VOLUMENAME}'')].statistics.latency_raw.write.first()'
              master_item:
                key: netapp.volumes.get
              tags:
                - tag: component
                  value: latency
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#VOLUMENAME}'
            - uuid: f23b393e033a4285b7f5b8742b0be669
              name: '{#VOLUMENAME}: Volume throughput, other rate'
              type: DEPENDENT
              key: 'netapp.volume.statistics.throughput.other.rate[{#VOLUMENAME}]'
              value_type: FLOAT
              units: Bps
              description: 'Throughput bytes observed at the storage object. Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.records[?(@.name==''{#VOLUMENAME}'')].statistics.throughput_raw.other.first()'
                - type: CHANGE_PER_SECOND
              master_item:
                key: netapp.volumes.get
              tags:
                - tag: component
                  value: throughput
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#VOLUMENAME}'
            - uuid: fcbef2bcc3004ba6b1f122f00419fc2c
              name: '{#VOLUMENAME}: Volume throughput, read rate'
              type: DEPENDENT
              key: 'netapp.volume.statistics.throughput.read.rate[{#VOLUMENAME}]'
              value_type: FLOAT
              units: Bps
              description: 'Throughput bytes observed at the storage object. Performance metric for read I/O operations.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.records[?(@.name==''{#VOLUMENAME}'')].statistics.throughput_raw.read.first()'
                - type: CHANGE_PER_SECOND
              master_item:
                key: netapp.volumes.get
              tags:
                - tag: component
                  value: throughput
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#VOLUMENAME}'
            - uuid: 9218d4e861244353bc779fc2dfd561b9
              name: '{#VOLUMENAME}: Volume throughput, total rate'
              type: DEPENDENT
              key: 'netapp.volume.statistics.throughput.total.rate[{#VOLUMENAME}]'
              value_type: FLOAT
              units: Bps
              description: 'Throughput bytes observed at the storage object. Performance metric aggregated over all types of I/O operations.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.records[?(@.name==''{#VOLUMENAME}'')].statistics.throughput_raw.total.first()'
                - type: CHANGE_PER_SECOND
              master_item:
                key: netapp.volumes.get
              tags:
                - tag: component
                  value: throughput
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#VOLUMENAME}'
            - uuid: 9d1cf308b4de4b88a632eee0b5a90267
              name: '{#VOLUMENAME}: Volume throughput, write rate'
              type: DEPENDENT
              key: 'netapp.volume.statistics.throughput.write.rate[{#VOLUMENAME}]'
              value_type: FLOAT
              units: Bps
              description: 'Throughput bytes observed at the storage object. Performance metric for write I/O operations.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.records[?(@.name==''{#VOLUMENAME}'')].statistics.throughput_raw.write.first()'
                - type: CHANGE_PER_SECOND
              master_item:
                key: netapp.volumes.get
              tags:
                - tag: component
                  value: throughput
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#VOLUMENAME}'
            - uuid: 1b48c3ecd33f4acd88b57f5c76c2892c
              name: '{#VOLUMENAME}: SVM name'
              type: DEPENDENT
              key: 'netapp.volume.svm_name[{#VOLUMENAME}]'
              value_type: CHAR
              description: 'The volume belongs this SVM.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.records[?(@.name==''{#VOLUMENAME}'')].svm.name.first()'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: netapp.volumes.get
              tags:
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#VOLUMENAME}'
            - uuid: 540405e59a93446cbbe71b05206a50be
              name: '{#VOLUMENAME}: Type'
              type: DEPENDENT
              key: 'netapp.volume.type[{#VOLUMENAME}]'
              value_type: CHAR
              description: |
                Type of the volume.
                rw - read-write volume.
                dp - data-protection volume.
                ls - load-sharing dp volume.
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.records[?(@.name==''{#VOLUMENAME}'')].type.first()'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 6h
              master_item:
                key: netapp.volumes.get
              tags:
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#VOLUMENAME}'
          graph_prototypes:
            - uuid: 5f9bc8697c9c4e22ab55781366fbb9c4
              name: '{#VOLUMENAME}: Volume latency'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'NetApp AFF A700 by HTTP'
                    key: 'netapp.volume.statistics.latency.other[{#VOLUMENAME}]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'NetApp AFF A700 by HTTP'
                    key: 'netapp.volume.statistics.latency.read[{#VOLUMENAME}]'
                - sortorder: '2'
                  color: 00611C
                  item:
                    host: 'NetApp AFF A700 by HTTP'
                    key: 'netapp.volume.statistics.latency.write[{#VOLUMENAME}]'
                - sortorder: '3'
                  color: F7941D
                  item:
                    host: 'NetApp AFF A700 by HTTP'
                    key: 'netapp.volume.statistics.latency.total[{#VOLUMENAME}]'
            - uuid: 2d38bfca52f14cd1a16eafef531c2a05
              name: '{#VOLUMENAME}: Volume size'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'NetApp AFF A700 by HTTP'
                    key: 'netapp.volume.space_used[{#VOLUMENAME}]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'NetApp AFF A700 by HTTP'
                    key: 'netapp.volume.space_available[{#VOLUMENAME}]'
          timeout: '{$NETAPP.HTTP.AGENT.TIMEOUT}'
          url: '{$NETAPP.URL}/api/storage/volumes?fields=name'
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  var result = [];
                  
                  JSON.parse(value).records.forEach(function (volume) {
                  	result.push({"{#VOLUMENAME}": volume.name});
                  });
                  
                  return JSON.stringify(result);
      tags:
        - tag: class
          value: network
        - tag: class
          value: storage
        - tag: target
          value: netapp
        - tag: target
          value: netapp-aff-a700
      macros:
        - macro: '{$NETAPP.HTTP.AGENT.TIMEOUT}'
          value: 5s
          description: 'The HTTP agent timeout to wait for a response from AFF700.'
          config:
            type: TEXT
            priority: '4'
            section_name: Other
            label: 'Agent timeout'
            description: 'The HTTP agent timeout to wait for a response from AFF700.'
        - macro: '{$NETAPP.PASSWORD}'
          description: 'AFF700 user password.'
          config:
            type: TEXT
            priority: '3'
            label: Password
            description: 'AFF700 user password.'
            required: 'YES'
        - macro: '{$NETAPP.URL}'
          description: 'AFF700 cluster URL address.'
          config:
            type: TEXT
            priority: '1'
            label: URL
            description: 'AFF700 cluster URL address.'
            required: 'YES'
        - macro: '{$NETAPP.USERNAME}'
          description: 'AFF700 user name.'
          config:
            type: TEXT
            priority: '2'
            label: Username
            description: 'AFF700 user name.'
            required: 'YES'
    - uuid: 32a39c8aca9445df862e9f3e1369c19a
      template: 'Nvidia by Zabbix agent 2'
      name: 'Nvidia by Zabbix agent 2'
      description: |
        This template is designed for Nvidia GPU monitoring and doesn't require any external scripts.
        1. Setup and configure Zabbix agent 2 compiled with the Nvidia monitoring plugin.
        2. Create a host with Zabbix agent interface and attach the template to it.
        All Nvidia GPUs will be discovered. Set filters with macros if you want to override default filter parameters.
        
        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
        
        This template is designed for Nvidia GPU monitoring and doesn't require any external scripts.
        All Nvidia GPUs will be discovered. Set filters with host wizard configuration fields if you want to override default filter parameters.
        
        ## Setup
        
        1. Set up and configure Zabbix agent 2 compiled with the Nvidia monitoring plugin.
        2. Create a host with a Zabbix agent interface and attach the template to it.
        
        Test availability: `zabbix_get -s nvidia-host -k nvml.system.driver.version`
      vendor:
        name: Zabbix
        version: 8.0-1
      groups:
        - name: Templates/Applications
      items:
        - uuid: ac18129f78a54a2e95d1d48630e0eab2
          name: 'Number of devices'
          key: nvml.device.count
          delay: 1h
          description: |
            Retrieves the number of compute devices in the system. A compute device is a single GPU.
            For all Nvidia products.
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          tags:
            - tag: component
              value: nvidia
          triggers:
            - uuid: 92b64a9d2e87418a99cd2ca814a2deac
              expression: 'change(/Nvidia by Zabbix agent 2/nvml.device.count) <> 0'
              name: 'Nvidia: Number of devices has changed'
              event_name: 'Nvidia: Number of devices on {HOST.HOST} has changed.'
              opdata: 'current value: {ITEM.LASTVALUE1}'
              priority: WARNING
              description: 'Number of devices has changed. Check if this was intentional.'
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: notice
        - uuid: afe2ea47c42f4992851f02b31efd8225
          name: 'Get devices'
          key: nvml.device.get
          delay: 1h
          history: '0'
          value_type: TEXT
          description: 'Retrieves a list of Nvidia devices in the system.'
          tags:
            - tag: component
              value: nvidia
            - tag: component
              value: raw
        - uuid: 824a7555809f4e23b2f7fa72aff28a0c
          name: 'Driver version'
          key: nvml.system.driver.version
          delay: 1h
          value_type: CHAR
          description: |
            Retrieves the version of the system's graphics driver.
            For all Nvidia products.
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          tags:
            - tag: component
              value: nvidia
          triggers:
            - uuid: da8538e357a044ee8ebea1d6d4077ffd
              expression: 'change(/Nvidia by Zabbix agent 2/nvml.system.driver.version) <> 0'
              name: 'Nvidia: Driver version has changed'
              event_name: 'Nvidia: Driver version on {HOST.HOST} has changed.'
              opdata: 'current value: {ITEM.LASTVALUE1}'
              priority: INFO
              description: |
                Driver version has changed.
                Check the Nvidia website for the specific driver version: https://www.nvidia.com/en-us/drivers/
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: notice
        - uuid: 8e54cc700a9147baa5f18aa286c47205
          name: 'NVML library version'
          key: nvml.version
          delay: 1h
          value_type: CHAR
          description: |
            Retrieves the version of the NVML library.
            For all Nvidia products.
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          tags:
            - tag: component
              value: nvidia
          triggers:
            - uuid: 1f04a31c99954172a69f2c8529b429ff
              expression: 'change(/Nvidia by Zabbix agent 2/nvml.version) <> 0'
              name: 'Nvidia: NVML library has changed'
              event_name: 'Nvidia: NVML library on {HOST.HOST} has changed.'
              opdata: 'current value: {ITEM.LASTVALUE1}'
              priority: INFO
              description: |
                NVML library version has changed.
                Check the changelog for details: https://docs.nvidia.com/deploy/nvml-api/change-log.html
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: notice
      discovery_rules:
        - uuid: bb7ede7d50f0427aaa043c59ee706c09
          name: 'GPU Discovery'
          type: DEPENDENT
          key: nvml.device.discovery
          filter:
            evaltype: AND
            conditions:
              - macro: '{#NAME}'
                value: '{$NVIDIA.NAME.MATCHES}'
              - macro: '{#NAME}'
                value: '{$NVIDIA.NAME.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#UUID}'
                value: '{$NVIDIA.UUID.MATCHES}'
              - macro: '{#UUID}'
                value: '{$NVIDIA.UUID.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
          description: 'Nvidia GPU discovery in the system.'
          item_prototypes:
            - uuid: cf631ee2b8d9494e81eef3e9e0bddf80
              name: '[{#UUID}]: Decoder utilization'
              key: 'nvml.device.decoder.utilization["{#UUID}"]'
              units: '%'
              description: |
                Retrieves the current utilization for the Decoder.
                For Nvidia Kepler or newer fully supported devices.
              tags:
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
              trigger_prototypes:
                - uuid: 6b41ac763eab4e83b69e1e28ec01db3d
                  expression: 'min(/Nvidia by Zabbix agent 2/nvml.device.decoder.utilization["{#UUID}"],3m) > {$NVIDIA.DECODER.UTIL.CRIT}'
                  name: 'Nvidia: [{#UUID}]: Decoder utilization exceeded critical threshold'
                  event_name: 'Nvidia: [{#UUID}]: Decoder utilization ({ITEM.VALUE1}) exceeded critical threshold ({$NVIDIA.DECODER.UTIL.CRIT} %)'
                  opdata: 'current value: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: '[{#UUID}]: Decoder utilization is very high. It may indicate abnormal behavior/activity. Change corresponding macro in case of false-positive.'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: 4cc20329b01543f7b0ef9b3a00dbff07
                  expression: 'min(/Nvidia by Zabbix agent 2/nvml.device.decoder.utilization["{#UUID}"],3m) > {$NVIDIA.DECODER.UTIL.WARN}'
                  name: 'Nvidia: [{#UUID}]: Decoder utilization exceeded warning threshold'
                  event_name: 'Nvidia: [{#UUID}]: Decoder utilization ({ITEM.VALUE1}) exceeded warning threshold ({$NVIDIA.DECODER.UTIL.WARN} %)'
                  opdata: 'current value: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: '[{#UUID}]: Decoder utilization is high. It may indicate abnormal behavior/activity. Change corresponding macro in case of false-positive.'
                  dependencies:
                    - name: 'Nvidia: [{#UUID}]: Decoder utilization exceeded critical threshold'
                      expression: 'min(/Nvidia by Zabbix agent 2/nvml.device.decoder.utilization["{#UUID}"],3m) > {$NVIDIA.DECODER.UTIL.CRIT}'
                  tags:
                    - tag: scope
                      value: performance
            - uuid: 71cabb57ad9b43c39ff05d56f753b2c1
              name: '[{#UUID}]: Encoder average FPS'
              type: DEPENDENT
              key: 'nvml.device.encoder.stats.fps["{#UUID}"]'
              units: '!fps'
              description: |
                Retrieves the trailing average FPS of all active encoder sessions for a given device.
                For Nvidia Maxwell or newer fully supported devices.
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.average_fps
              master_item:
                key: 'nvml.device.encoder.stats.get["{#UUID}"]'
              tags:
                - tag: component
                  value: encoder
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: cc4ff50ff1ed4c6d92ccb24f205b65c5
              name: '[{#UUID}]: Encoder stats'
              key: 'nvml.device.encoder.stats.get["{#UUID}"]'
              history: '0'
              value_type: TEXT
              description: |
                Retrieves the current encoder statistics for a given device.
                For Nvidia Maxwell or newer fully supported devices.
              tags:
                - tag: component
                  value: nvidia
                - tag: component
                  value: raw
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: 727e5f7da5394d4191814d5ccb5b6af0
              name: '[{#UUID}]: Encoder average latency'
              type: DEPENDENT
              key: 'nvml.device.encoder.stats.latency["{#UUID}"]'
              value_type: FLOAT
              units: s
              description: |
                Retrieves the current encode latency for a given device.
                For Nvidia Maxwell or newer fully supported devices.
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.average_latency_ms
                - type: MULTIPLIER
                  parameters:
                    - '0.001'
              master_item:
                key: 'nvml.device.encoder.stats.get["{#UUID}"]'
              tags:
                - tag: component
                  value: encoder
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
              trigger_prototypes:
                - uuid: c6b3813511454b1eafa69d834dfd8d0c
                  expression: 'last(/Nvidia by Zabbix agent 2/nvml.device.encoder.stats.latency["{#UUID}"]) > (2 * avg(/Nvidia by Zabbix agent 2/nvml.device.encoder.stats.latency["{#UUID}"],3m))'
                  name: 'Nvidia: [{#UUID}]: Encoder average latency is high'
                  event_name: 'Nvidia: [{#UUID}]: Encoder average latency is 2x higher than usual.'
                  opdata: 'current value: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  tags:
                    - tag: scope
                      value: performance
            - uuid: 4a39249deb40404386492631ce987b19
              name: '[{#UUID}]: Encoder sessions'
              type: DEPENDENT
              key: 'nvml.device.encoder.stats.sessions["{#UUID}"]'
              description: |
                Retrieves the current count of active encoder sessions for a given device.
                For Nvidia Maxwell or newer fully supported devices.
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.session_count
              master_item:
                key: 'nvml.device.encoder.stats.get["{#UUID}"]'
              tags:
                - tag: component
                  value: encoder
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: 6cf65da338f64f6c9087f8699c2d71dc
              name: '[{#UUID}]: Encoder utilization'
              key: 'nvml.device.encoder.utilization["{#UUID}"]'
              units: '%'
              description: |
                Retrieves the current utilization for the Encoder.
                For Nvidia Kepler or newer fully supported devices.
              tags:
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
              trigger_prototypes:
                - uuid: 0c7f39babddf49469d46aba48114c45e
                  expression: 'min(/Nvidia by Zabbix agent 2/nvml.device.encoder.utilization["{#UUID}"],3m) > {$NVIDIA.ENCODER.UTIL.CRIT}'
                  name: 'Nvidia: [{#UUID}]: Encoder utilization exceeded critical threshold'
                  event_name: 'Nvidia: [{#UUID}]: Encoder utilization ({ITEM.VALUE1}) exceeded critical threshold ({$NVIDIA.ENCODER.UTIL.CRIT} %)'
                  opdata: 'current value: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: '[{#UUID}]: Encoder utilization is very high. It may indicate abnormal behavior/activity. Change corresponding macro in case of false-positive.'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: e2cb63b538514aa49c163c74b4471a39
                  expression: 'min(/Nvidia by Zabbix agent 2/nvml.device.encoder.utilization["{#UUID}"],3m) > {$NVIDIA.ENCODER.UTIL.WARN}'
                  name: 'Nvidia: [{#UUID}]: Encoder utilization exceeded warning threshold'
                  event_name: 'Nvidia: [{#UUID}]: Encoder utilization ({ITEM.VALUE1}) exceeded warning threshold ({$NVIDIA.ENCODER.UTIL.WARN} %)'
                  opdata: 'current value: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: '[{#UUID}]: Encoder utilization is high. It may indicate abnormal behavior/activity. Change corresponding macro in case of false-positive.'
                  dependencies:
                    - name: 'Nvidia: [{#UUID}]: Encoder utilization exceeded critical threshold'
                      expression: 'min(/Nvidia by Zabbix agent 2/nvml.device.encoder.utilization["{#UUID}"],3m) > {$NVIDIA.ENCODER.UTIL.CRIT}'
                  tags:
                    - tag: scope
                      value: performance
            - uuid: 8f992f3cffcc42d5a0f4cac878781457
              name: '[{#UUID}]: Energy consumption'
              key: 'nvml.device.energy.consumption["{#UUID}"]'
              value_type: FLOAT
              units: J
              description: |
                Retrieves the total energy consumption of this GPU in joules since the last driver reload.
                For Nvidia Volta or newer fully supported devices.
              preprocessing:
                - type: MULTIPLIER
                  parameters:
                    - '0.001'
              tags:
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: c558f53c06b346b8a77b941211797cb2
              name: '[{#UUID}]: Memory ECC errors, corrected'
              type: DEPENDENT
              key: 'nvml.device.errors.memory.corrected["{#UUID}"]'
              description: |
                Retrieves the count of GPU device memory errors that were corrected. For ECC errors, these are single-bit errors, for Texture memory, these are errors fixed by resend.
                For Nvidia Fermi or newer fully supported devices.
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.corrected
              master_item:
                key: 'nvml.device.errors.memory["{#UUID}"]'
              tags:
                - tag: component
                  value: memory
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
              trigger_prototypes:
                - uuid: 4e42cbee73874ca0a8a054a922128cf7
                  expression: 'change(/Nvidia by Zabbix agent 2/nvml.device.errors.memory.corrected["{#UUID}"]) <> 0'
                  name: 'Nvidia: [{#UUID}]: Number of corrected memory ECC errors has changed'
                  event_name: 'Nvidia: Number of corrected memory ECC errors on {HOST.HOST} has changed.'
                  opdata: 'current value: {ITEM.LASTVALUE1}'
                  priority: INFO
                  description: 'An increasing number of corrected ECC errors can indicate (but not necessary mean) aging or degrading of memory.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: 4daf87d77c5c4950b0e2d51e24afd1a5
              name: '[{#UUID}]: Memory ECC errors, uncorrected'
              type: DEPENDENT
              key: 'nvml.device.errors.memory.uncorrected["{#UUID}"]'
              description: |
                Retrieves the count of GPU device memory errors that were not corrected. For ECC errors, these are double-bit errors, for Texture memory, these are errors where the resend fails.
                For Nvidia Fermi or newer fully supported devices.
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.uncorrected
              master_item:
                key: 'nvml.device.errors.memory["{#UUID}"]'
              tags:
                - tag: component
                  value: memory
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
              trigger_prototypes:
                - uuid: c5b2ca940c824f0d98e9aff5a5561a2b
                  expression: 'change(/Nvidia by Zabbix agent 2/nvml.device.errors.memory.uncorrected["{#UUID}"]) <> 0'
                  name: 'Nvidia: [{#UUID}]: Number of uncorrected memory ECC errors has changed'
                  event_name: 'Nvidia: Number uncorrected of memory ECC errors on {HOST.HOST} has changed.'
                  opdata: 'current value: {ITEM.LASTVALUE1}'
                  priority: INFO
                  description: 'An increasing number of uncorrected ECC errors can indicate potential issues such as: data corruption, system instability, hardware issues'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: e97eacb1bef64fdaa7b55883fc37a4a9
              name: '[{#UUID}]: Memory ECC errors, get'
              key: 'nvml.device.errors.memory["{#UUID}"]'
              history: '0'
              value_type: TEXT
              description: |
                Retrieves the GPU device memory error counters for the device.
                For Nvidia Fermi or newer fully supported devices.
                Requires NVML_INFOROM_ECC version 2.0 or higher to report aggregate location-based memory error counts. Requires NVML_INFOROM_ECC version 1.0 or higher to report all other memory error counts.
                Only applicable to devices with ECC.
                Requires ECC Mode to be enabled.
              preprocessing:
                - type: CHECK_NOT_SUPPORTED
                  parameters:
                    - '0'
                    - 'The requested operation is not available on target device'
                  error_handler: CUSTOM_ERROR
                  error_handler_params: 'No ECC on the device or ECC mode is turned off.'
              tags:
                - tag: component
                  value: nvidia
                - tag: component
                  value: raw
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: 9a7c0d865ff9423b861913b276c2b3f5
              name: '[{#UUID}]: Register file errors, corrected'
              type: DEPENDENT
              key: 'nvml.device.errors.register.corrected["{#UUID}"]'
              description: |
                Retrieves the count of GPU register file errors that were corrected. For ECC errors, these are single-bit errors, for Texture memory, these are errors fixed by resend.
                For Nvidia Fermi or newer fully supported devices.
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.corrected
              master_item:
                key: 'nvml.device.errors.register["{#UUID}"]'
              tags:
                - tag: component
                  value: memory
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
              trigger_prototypes:
                - uuid: 979bd4cc64294b9aa5d0c452f84cf74a
                  expression: 'change(/Nvidia by Zabbix agent 2/nvml.device.errors.register.corrected["{#UUID}"]) <> 0'
                  name: 'Nvidia: [{#UUID}]: Number of corrected register file errors has changed'
                  event_name: 'Nvidia: Number corrected of register file errors on {HOST.HOST} has changed.'
                  opdata: 'current value: {ITEM.LASTVALUE1}'
                  priority: INFO
                  description: 'An increasing number of corrected register file errors can indicate (but not necessary mean) wearing, aging or degrading of memory.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: e7a077d0610e407fb49f1ca8d782c81f
              name: '[{#UUID}]: Register file errors, uncorrected'
              type: DEPENDENT
              key: 'nvml.device.errors.register.uncorrected["{#UUID}"]'
              description: |
                Retrieves the count of GPU register file errors that were not corrected. For ECC errors, these are double-bit errors, for Texture memory, these are errors where the resend fails.
                For Nvidia Fermi or newer fully supported devices.
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.uncorrected
              master_item:
                key: 'nvml.device.errors.register["{#UUID}"]'
              tags:
                - tag: component
                  value: memory
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
              trigger_prototypes:
                - uuid: 7fc8da6cd0624880b9838c23386df758
                  expression: 'change(/Nvidia by Zabbix agent 2/nvml.device.errors.register.uncorrected["{#UUID}"]) <> 0'
                  name: 'Nvidia: [{#UUID}]: Number of uncorrected register file errors has changed'
                  event_name: 'Nvidia: Number uncorrected of register file errors on {HOST.HOST} has changed.'
                  opdata: 'current value: {ITEM.LASTVALUE1}'
                  priority: INFO
                  description: 'An increasing number of uncorrected register file errors can indicate potential issues such as: data corruption, system instability, hardware degradation.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: 07ea4aec260f4850b0c2a59610f703de
              name: '[{#UUID}]: Register file errors, get'
              key: 'nvml.device.errors.register["{#UUID}"]'
              history: '0'
              value_type: TEXT
              description: |
                Retrieves the GPU register file error counters for the device.
                For Nvidia Fermi or newer fully supported devices.
                Requires NVML_INFOROM_ECC version 2.0 or higher to report aggregate location-based memory error counts. Requires NVML_INFOROM_ECC version 1.0 or higher to report all other memory error counts.
                Only applicable to devices with ECC.
                Requires ECC Mode to be enabled.
              preprocessing:
                - type: CHECK_NOT_SUPPORTED
                  parameters:
                    - '0'
                    - 'The requested operation is not available on target device'
                  error_handler: CUSTOM_ERROR
                  error_handler_params: 'No ECC on the device or ECC mode is turned off.'
              tags:
                - tag: component
                  value: nvidia
                - tag: component
                  value: raw
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: 49283334edaa4aeb9d63d8f2794c23d7
              name: '[{#UUID}]: Fan speed'
              key: 'nvml.device.fan.speed.avg["{#UUID}"]'
              units: '%'
              description: |
                Retrieves the intended operating speed of the specified device fan.
                Note: The reported speed is the intended fan speed. If the fan is physically blocked and unable to spin, the output will not match the actual fan speed.
                For all Nvidia discrete products with dedicated fans.
                The fan speed is expressed as a percentage of the product's maximum noise tolerance fan speed. In certain cases, this value may exceed 100%.
              tags:
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
              trigger_prototypes:
                - uuid: 3311b17ca4aa4b81a6dd10af744166df
                  expression: 'min(/Nvidia by Zabbix agent 2/nvml.device.fan.speed.avg["{#UUID}"],3m) > {$NVIDIA.FAN.SPEED.CRIT}'
                  name: 'Nvidia: [{#UUID}]: Fan speed exceeded critical threshold'
                  event_name: 'Nvidia: [{#UUID}]: Fan speed ({ITEM.VALUE1}) exceeded critical threshold ({$NVIDIA.FAN.SPEED.CRIT} %)'
                  opdata: 'current value: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: '[{#UUID}]: Fan speed is very high. It may indicate abnormal behavior/activity. Change corresponding macro in case of false-positive.'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: 9aed50cb1a4c4cd4b0d6dce570bb33da
                  expression: 'min(/Nvidia by Zabbix agent 2/nvml.device.fan.speed.avg["{#UUID}"],3m) > {$NVIDIA.FAN.SPEED.WARN}'
                  name: 'Nvidia: [{#UUID}]: Fan speed exceeded warning threshold'
                  event_name: 'Nvidia: [{#UUID}]: Fan speed ({ITEM.VALUE1}) exceeded warning threshold ({$NVIDIA.FAN.SPEED.WARN} %)'
                  opdata: 'current value: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: '[{#UUID}]: Fan speed is high. It may indicate abnormal behavior/activity. Change corresponding macro in case of false-positive.'
                  dependencies:
                    - name: 'Nvidia: [{#UUID}]: Fan speed exceeded critical threshold'
                      expression: 'min(/Nvidia by Zabbix agent 2/nvml.device.fan.speed.avg["{#UUID}"],3m) > {$NVIDIA.FAN.SPEED.CRIT}'
                  tags:
                    - tag: scope
                      value: performance
            - uuid: 77bce39e010f4d4ab5fc347aebd7e61b
              name: '[{#UUID}]: Graphics frequency'
              key: 'nvml.device.graphics.frequency["{#UUID}"]'
              units: Hz
              description: |
                Retrieves the current graphics clock speed for the device.
                For Nvidia Fermi or newer fully supported devices.
              preprocessing:
                - type: MULTIPLIER
                  parameters:
                    - '1000000'
              tags:
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: 141fe268d32941f19b79472a7e041ff9
              name: '[{#UUID}]: BAR1 memory, free'
              type: DEPENDENT
              key: 'nvml.device.memory.bar1.free["{#UUID}"]'
              units: B
              description: |
                Unallocated BAR1 memory on the device.
                For Nvidia Kepler or newer fully supported devices
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.free_memory_bytes
              master_item:
                key: 'nvml.device.memory.bar1.get["{#UUID}"]'
              tags:
                - tag: component
                  value: memory
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: da9f4e0ce0af45af9cb414b34932df70
              name: '[{#UUID}]: BAR1 memory, get'
              key: 'nvml.device.memory.bar1.get["{#UUID}"]'
              history: '0'
              value_type: TEXT
              description: |
                Gets Total, Available, and Used size of BAR1 memory.
                BAR1 is used to map the FB (device memory) so that it can be directly accessed by the CPU or 3rd party devices (peer-to-peer on the PCIE bus).
                For Nvidia Kepler or newer fully supported devices
              tags:
                - tag: component
                  value: nvidia
                - tag: component
                  value: raw
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: 301e573a311d48de876efc3dfe718222
              name: '[{#UUID}]: BAR1 memory, total'
              type: DEPENDENT
              key: 'nvml.device.memory.bar1.total["{#UUID}"]'
              units: B
              description: |
                Total BAR1 memory on the device.
                For Nvidia Kepler or newer fully supported devices
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.total_memory_bytes
              master_item:
                key: 'nvml.device.memory.bar1.get["{#UUID}"]'
              tags:
                - tag: component
                  value: memory
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
              trigger_prototypes:
                - uuid: da69286b1c4f428d8a9da0d77d5a9057
                  expression: 'change(/Nvidia by Zabbix agent 2/nvml.device.memory.bar1.total["{#UUID}"]) <> 0'
                  name: 'Nvidia: [{#UUID}]: Total BAR1 memory has changed'
                  event_name: 'Nvidia: Total BAR1 memory on {HOST.HOST} has changed.'
                  opdata: 'current value: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'Total BAR1 memory has changed. This could mean possible memory degradation, hardware configuration changes, or memory reservation by system or software.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: afd6bbb5c6584e328cf37a6584970c2d
              name: '[{#UUID}]: BAR1 memory, used'
              type: DEPENDENT
              key: 'nvml.device.memory.bar1.used["{#UUID}"]'
              units: B
              description: |
                Allocated used BAR1 memory on the device.
                For Nvidia Kepler or newer fully supported devices
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.used_memory_bytes
              master_item:
                key: 'nvml.device.memory.bar1.get["{#UUID}"]'
              tags:
                - tag: component
                  value: memory
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: fbef18bb0f4d466bbdcd859e7198f144
              name: '[{#UUID}]: FB memory, free'
              type: DEPENDENT
              key: 'nvml.device.memory.fb.free["{#UUID}"]'
              units: B
              description: |
                Unallocated memory on the device.
                For all Nvidia products.
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.free_memory_bytes
              master_item:
                key: 'nvml.device.memory.fb.get["{#UUID}"]'
              tags:
                - tag: component
                  value: memory
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: cad7ac51204847e2a00a8a594a7ffecc
              name: '[{#UUID}]: FB memory, get'
              key: 'nvml.device.memory.fb.get["{#UUID}"]'
              history: '0'
              value_type: TEXT
              description: |
                Retrieves the amount of used, free, reserved, and total memory available on the device.
                For all Nvidia products.
                Enabling ECC reduces the amount of total available memory due to the extra required parity bits. Under WDDM, most of the device memory is allocated and managed on startup by Windows.
                Under Linux and Windows TCC, the reported amount of used memory is equal to the sum of memory allocated by all active channels on the device.
              tags:
                - tag: component
                  value: nvidia
                - tag: component
                  value: raw
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: d30fba06739c4353bf8b39014da65b21
              name: '[{#UUID}]: FB memory, reserved'
              type: DEPENDENT
              key: 'nvml.device.memory.fb.reserved["{#UUID}"]'
              units: B
              description: |
                Memory reserved for system use (driver or firmware) on the device.
                For all Nvidia products.
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.reserved_memory_bytes
                  error_handler: CUSTOM_ERROR
                  error_handler_params: 'NVML library too old to support this metric.'
              master_item:
                key: 'nvml.device.memory.fb.get["{#UUID}"]'
              tags:
                - tag: component
                  value: memory
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: c67a14cb463e40289500c88d7f9e0997
              name: '[{#UUID}]: FB memory, total'
              type: DEPENDENT
              key: 'nvml.device.memory.fb.total["{#UUID}"]'
              units: B
              description: |
                Total physical memory on the device.
                For all Nvidia products.
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.total_memory_bytes
              master_item:
                key: 'nvml.device.memory.fb.get["{#UUID}"]'
              tags:
                - tag: component
                  value: memory
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
              trigger_prototypes:
                - uuid: 945579a20b8e4983a07719f1b7ace8e2
                  expression: 'change(/Nvidia by Zabbix agent 2/nvml.device.memory.fb.total["{#UUID}"]) <> 0'
                  name: 'Nvidia: [{#UUID}]: Total FB memory has changed'
                  event_name: 'Nvidia: Total FB memory on {HOST.HOST} has changed.'
                  opdata: 'current value: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'Total FB memory has changed. This could mean possible memory degradation, hardware configuration changes, or memory reservation by system or software.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: c4b9a7593e6d4433b9021c9e3656ed41
              name: '[{#UUID}]: FB memory, used'
              type: DEPENDENT
              key: 'nvml.device.memory.fb.used["{#UUID}"]'
              units: B
              description: |
                Allocated memory on the device.
                For all Nvidia products.
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.used_memory_bytes
              master_item:
                key: 'nvml.device.memory.fb.get["{#UUID}"]'
              tags:
                - tag: component
                  value: memory
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: 78918ce1cbae45bdb3a0773f3bf9bd14
              name: '[{#UUID}]: Memory frequency'
              key: 'nvml.device.memory.frequency["{#UUID}"]'
              units: Hz
              description: |
                Retrieves the current memory clock speed for the device.
                For Nvidia Fermi or newer fully supported devices.
              preprocessing:
                - type: MULTIPLIER
                  parameters:
                    - '1000000'
              tags:
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: 88f5cf58ce5043b8b3f71e57eff67340
              name: '[{#UUID}]: PCIe utilization, Rx'
              type: DEPENDENT
              key: 'nvml.device.pci.utilization.rx.rate["{#UUID}"]'
              units: bps
              description: |
                The PCIe Rx (receive) throughput over a 20ms interval on the device.
                For Nvidia Maxwell or newer fully supported devices.
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.rx_rate_kb_s
                - type: MULTIPLIER
                  parameters:
                    - '1024'
              master_item:
                key: 'nvml.device.pci.utilization["{#UUID}"]'
              tags:
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: 256d8cd75fb14382ae79a32ab8cc0b13
              name: '[{#UUID}]: PCIe utilization, Tx'
              type: DEPENDENT
              key: 'nvml.device.pci.utilization.tx.rate["{#UUID}"]'
              units: bps
              description: |
                The PCIe Tx (transmit) throughput over a 20ms interval on the device.
                For Nvidia Maxwell or newer fully supported devices.
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.tx_rate_kb_s
                - type: MULTIPLIER
                  parameters:
                    - '1024'
              master_item:
                key: 'nvml.device.pci.utilization["{#UUID}"]'
              tags:
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: 35d9d7075294487f9bd2f47f4be66dea
              name: '[{#UUID}]: PCIe utilization, get'
              key: 'nvml.device.pci.utilization["{#UUID}"]'
              history: '0'
              value_type: TEXT
              description: |
                Retrieves PCIe utilization information.
                For Nvidia Maxwell or newer fully supported devices.
              tags:
                - tag: component
                  value: nvidia
                - tag: component
                  value: raw
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: 5a97162894064078ad8913d647dbf76e
              name: '[{#UUID}]: Performance state'
              key: 'nvml.device.performance.state["{#UUID}"]'
              description: |
                Retrieves the current performance state for the device.
                For Nvidia Fermi or newer fully supported devices.
              valuemap:
                name: 'Performance state'
              tags:
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: 6b99a9e1c5b841059f0e62b04001c82d
              name: '[{#UUID}]: Power limit'
              key: 'nvml.device.power.limit["{#UUID}"]'
              delay: 1h
              value_type: FLOAT
              units: watts
              description: |
                Retrieves the power management limit associated with this device.
                For Nvidia Fermi or newer fully supported devices.
                The power limit defines the upper boundary for the card's power draw. If the card's total power draw reaches this limit, the power management algorithm kicks in.
                This reading is only available if power management mode is supported.
              preprocessing:
                - type: MULTIPLIER
                  parameters:
                    - '0.001'
              tags:
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
              trigger_prototypes:
                - uuid: 4c821a8812c444eca5e03cc0d223b697
                  expression: 'change(/Nvidia by Zabbix agent 2/nvml.device.power.limit["{#UUID}"]) <> 0'
                  name: 'Nvidia: [{#UUID}]: Power limit has changed'
                  event_name: 'Nvidia: [{#UUID}]Power limit on {HOST.HOST} has changed.'
                  opdata: 'current value: {ITEM.LASTVALUE1}'
                  priority: INFO
                  description: 'Power limit for the device has changed. Check if this was intentional.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: bb1c7aee478f4ba4b108491532ccd737
              name: '[{#UUID}]: Power usage'
              key: 'nvml.device.power.usage["{#UUID}"]'
              value_type: FLOAT
              units: watts
              description: |
                Retrieves power usage for this GPU (in watts) and its associated circuitry (e.g. memory).
                For Nvidia Fermi or newer fully supported devices.
                On Fermi and Kepler GPUs, the reading is accurate to within +/- 5% of current power draw. On Ampere (except GA100) or newer GPUs, the API returns power averaged over a 1 second interval. On GA100 and older architectures, instantaneous power is returned.
              preprocessing:
                - type: MULTIPLIER
                  parameters:
                    - '0.001'
              tags:
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: 94c121b6588d424f9573f6e1352b5cd4
              name: '[{#UUID}]: Serial number'
              key: 'nvml.device.serial["{#UUID}"]'
              delay: 1h
              value_type: CHAR
              description: |
                Retrieves the globally unique board serial number associated with this device's board.
                For all products with an inforom.
                This number matches the serial number tag that is physically attached to the board.
              preprocessing:
                - type: CHECK_NOT_SUPPORTED
                  parameters:
                    - '0'
                    - 'The requested operation is not available on target device'
                  error_handler: CUSTOM_ERROR
                  error_handler_params: 'The device does not support operation to retrieve serial number.'
              tags:
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: 6e149695990a46f294361c047f288b80
              name: '[{#UUID}]: SM frequency'
              key: 'nvml.device.sm.frequency["{#UUID}"]'
              units: Hz
              description: |
                Retrieves the current SM clock speed for the device.
                For Nvidia Fermi or newer fully supported devices.
              preprocessing:
                - type: MULTIPLIER
                  parameters:
                    - '1000000'
              tags:
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: f47e1eed64354c7cb010dea8570c067b
              name: '[{#UUID}]: Temperature'
              key: 'nvml.device.temperature["{#UUID}"]'
              units: C
              description: |
                Retrieves the current temperature readings for the device, in degrees C.
                For Nvidia all products.
              tags:
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
              trigger_prototypes:
                - uuid: 563fdb237ef84d51b53d6ce70e9c67ad
                  expression: 'min(/Nvidia by Zabbix agent 2/nvml.device.temperature["{#UUID}"],3m) > {$NVIDIA.TEMPERATURE.CRIT}'
                  name: 'Nvidia: [{#UUID}]: Temperature exceeded critical threshold'
                  event_name: 'Nvidia: [{#UUID}]: Temperature ({ITEM.VALUE1}) exceeded critical threshold ({$NVIDIA.TEMPERATURE.CRIT} C)'
                  opdata: 'current value: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: '[{#UUID}]: Temperature is very high. It may indicate abnormal behavior/activity. Change corresponding macro in case of false-positive.'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: a5d5a632695c415eab61d427f221db93
                  expression: 'min(/Nvidia by Zabbix agent 2/nvml.device.temperature["{#UUID}"],3m) > {$NVIDIA.TEMPERATURE.WARN}'
                  name: 'Nvidia: [{#UUID}]: Temperature exceeded warning threshold'
                  event_name: 'Nvidia: [{#UUID}]: Temperature ({ITEM.VALUE1}) exceeded warning threshold ({$NVIDIA.TEMPERATURE.WARN} C)'
                  opdata: 'current value: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: '[{#UUID}]: Temperature is high. It may indicate abnormal behavior/activity. Change corresponding macro in case of false-positive.'
                  dependencies:
                    - name: 'Nvidia: [{#UUID}]: Temperature exceeded critical threshold'
                      expression: 'min(/Nvidia by Zabbix agent 2/nvml.device.temperature["{#UUID}"],3m) > {$NVIDIA.TEMPERATURE.CRIT}'
                  tags:
                    - tag: scope
                      value: performance
            - uuid: 0dce87608aeb4b77b0e0df8baf1b9027
              name: '[{#UUID}]: GPU utilization'
              type: DEPENDENT
              key: 'nvml.device.utilization.gpu["{#UUID}"]'
              units: '%'
              description: |
                Percentage of time over the past sampling period during which one or more kernels were running on the GPU.
                For Nvidia Fermi or newer fully supported devices.
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.device
              master_item:
                key: 'nvml.device.utilization["{#UUID}"]'
              tags:
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
              trigger_prototypes:
                - uuid: fcc330882ac34f59b2277dd4533d66f8
                  expression: 'min(/Nvidia by Zabbix agent 2/nvml.device.utilization.gpu["{#UUID}"],3m) > {$NVIDIA.GPU.UTIL.CRIT}'
                  name: 'Nvidia: [{#UUID}]: GPU utilization exceeded critical threshold'
                  event_name: 'Nvidia: [{#UUID}]: GPU utilization ({ITEM.VALUE1}) exceeded critical threshold ({$NVIDIA.GPU.UTIL.CRIT} %)'
                  opdata: 'current value: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: '[{#UUID}]: GPU utilization is very high. It may indicate abnormal behavior/activity. Change corresponding macro in case of false-positive.'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: ffa0dd66c71e4c8991244e80d8c4c53a
                  expression: 'min(/Nvidia by Zabbix agent 2/nvml.device.utilization.gpu["{#UUID}"],3m) > {$NVIDIA.GPU.UTIL.WARN}'
                  name: 'Nvidia: [{#UUID}]: GPU utilization exceeded warning threshold'
                  event_name: 'Nvidia: [{#UUID}]: GPU utilization ({ITEM.VALUE1}) exceeded warning threshold ({$NVIDIA.GPU.UTIL.WARN} %)'
                  opdata: 'current value: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: '[{#UUID}]: GPU utilization is high. It may indicate abnormal behavior/activity. Change corresponding macro in case of false-positive.'
                  dependencies:
                    - name: 'Nvidia: [{#UUID}]: GPU utilization exceeded critical threshold'
                      expression: 'min(/Nvidia by Zabbix agent 2/nvml.device.utilization.gpu["{#UUID}"],3m) > {$NVIDIA.GPU.UTIL.CRIT}'
                  tags:
                    - tag: scope
                      value: performance
            - uuid: c545a78d63644cefac8de7c1c2cbea9a
              name: '[{#UUID}]: Memory utilization'
              type: DEPENDENT
              key: 'nvml.device.utilization.memory["{#UUID}"]'
              units: '%'
              description: |
                Percentage of time over the past sampling period during which global (device) memory was being read or written.
                For Nvidia Fermi or newer fully supported devices.
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.memory
              master_item:
                key: 'nvml.device.utilization["{#UUID}"]'
              tags:
                - tag: component
                  value: memory
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
              trigger_prototypes:
                - uuid: 6e296d7736a2484d8b971e51b306927d
                  expression: 'min(/Nvidia by Zabbix agent 2/nvml.device.utilization.memory["{#UUID}"],3m) > {$NVIDIA.MEMORY.UTIL.CRIT}'
                  name: 'Nvidia: [{#UUID}]: Memory utilization exceeded critical threshold'
                  event_name: 'Nvidia: [{#UUID}]: Memory utilization ({ITEM.VALUE1}) exceeded critical threshold ({$NVIDIA.MEMORY.UTIL.CRIT} %)'
                  opdata: 'current value: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: '[{#UUID}]: Memory utilization is very high. It may indicate abnormal behavior/activity. Change corresponding macro in case of false-positive.'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: 722ff2b5a1d94d5f83f2946b04c989ad
                  expression: 'min(/Nvidia by Zabbix agent 2/nvml.device.utilization.memory["{#UUID}"],3m) > {$NVIDIA.MEMORY.UTIL.WARN}'
                  name: 'Nvidia: [{#UUID}]: Memory utilization exceeded warning threshold'
                  event_name: 'Nvidia: [{#UUID}]: Memory utilization ({ITEM.VALUE1}) exceeded warning threshold ({$NVIDIA.MEMORY.UTIL.WARN} %)'
                  opdata: 'current value: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: '[{#UUID}]: Memory utilization is high. It may indicate abnormal behavior/activity. Change corresponding macro in case of false-positive.'
                  dependencies:
                    - name: 'Nvidia: [{#UUID}]: Memory utilization exceeded critical threshold'
                      expression: 'min(/Nvidia by Zabbix agent 2/nvml.device.utilization.memory["{#UUID}"],3m) > {$NVIDIA.MEMORY.UTIL.CRIT}'
                  tags:
                    - tag: scope
                      value: performance
            - uuid: 9a3e4972de4d4149bf14512be108179f
              name: '[{#UUID}]: Device utilization, get'
              key: 'nvml.device.utilization["{#UUID}"]'
              history: '0'
              value_type: TEXT
              description: |
                Retrieves the current utilization rates for the device's major subsystems.
                For Nvidia Fermi or newer fully supported devices.
              tags:
                - tag: component
                  value: nvidia
                - tag: component
                  value: raw
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: 91fc19e1784846b7afb982f7ae87439e
              name: '[{#UUID}]: Video frequency'
              key: 'nvml.device.video.frequency["{#UUID}"]'
              units: Hz
              description: |
                Retrieves the current video encoder/decoder clock speed for the device.
                For Nvidia Fermi or newer fully supported devices.
              preprocessing:
                - type: MULTIPLIER
                  parameters:
                    - '1000000'
              tags:
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
          trigger_prototypes:
            - uuid: 655ad43bd4744909aea3f843db89fe36
              expression: '(min(/Nvidia by Zabbix agent 2/nvml.device.power.usage["{#UUID}"],3m) * 100 / last(/Nvidia by Zabbix agent 2/nvml.device.power.limit["{#UUID}"])) > {$NVIDIA.POWER.UTIL.CRIT}'
              name: 'Nvidia: [{#UUID}]: Power usage exceeded critical threshold'
              event_name: 'Nvidia: [{#UUID}]: Power usage ({ITEM.VALUE1}) exceeded critical threshold ({$NVIDIA.POWER.UTIL.CRIT} %)'
              opdata: 'current value: {ITEM.LASTVALUE1}'
              priority: AVERAGE
              description: '[{#UUID}]: Power usage is very high. It may indicate abnormal behavior/activity. Change corresponding macro in case of false-positive.'
              tags:
                - tag: scope
                  value: performance
            - uuid: 5ffa7d5f130b4e46936a6f17f7773efe
              expression: '(min(/Nvidia by Zabbix agent 2/nvml.device.power.usage["{#UUID}"],3m) * 100 / last(/Nvidia by Zabbix agent 2/nvml.device.power.limit["{#UUID}"])) > {$NVIDIA.POWER.UTIL.WARN}'
              name: 'Nvidia: [{#UUID}]: Power usage exceeded warning threshold'
              event_name: 'Nvidia: [{#UUID}]: Power usage ({ITEM.VALUE1}) exceeded warning threshold ({$NVIDIA.POWER.UTIL.WARN} %)'
              opdata: 'current value: {ITEM.LASTVALUE1}'
              priority: WARNING
              description: '[{#UUID}]: Power usage is high. It may indicate abnormal behavior/activity. Change corresponding macro in case of false-positive.'
              dependencies:
                - name: 'Nvidia: [{#UUID}]: Power usage exceeded critical threshold'
                  expression: '(min(/Nvidia by Zabbix agent 2/nvml.device.power.usage["{#UUID}"],3m) * 100 / last(/Nvidia by Zabbix agent 2/nvml.device.power.limit["{#UUID}"])) > {$NVIDIA.POWER.UTIL.CRIT}'
              tags:
                - tag: scope
                  value: performance
          graph_prototypes:
            - uuid: 5d68d70d11454cb5942b251e6d1c2eb3
              name: 'Nvidia: [{#UUID}]: BAR1 memory'
              type: STACKED
              ymax_type_1: ITEM
              ymax_item_1:
                host: 'Nvidia by Zabbix agent 2'
                key: 'nvml.device.memory.bar1.total["{#UUID}"]'
              graph_items:
                - color: FF0000
                  item:
                    host: 'Nvidia by Zabbix agent 2'
                    key: 'nvml.device.memory.bar1.used["{#UUID}"]'
                - sortorder: '1'
                  color: 76B900
                  item:
                    host: 'Nvidia by Zabbix agent 2'
                    key: 'nvml.device.memory.bar1.free["{#UUID}"]'
            - uuid: 9e977f8c9d5c4568b2ec57a6aeb03361
              name: 'Nvidia: [{#UUID}]: Fan speed'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'Nvidia by Zabbix agent 2'
                    key: 'nvml.device.fan.speed.avg["{#UUID}"]'
            - uuid: 62d7606507774eee96f0d56fd6d74a6f
              name: 'Nvidia: [{#UUID}]: FB memory'
              type: STACKED
              ymax_type_1: ITEM
              ymax_item_1:
                host: 'Nvidia by Zabbix agent 2'
                key: 'nvml.device.memory.fb.total["{#UUID}"]'
              graph_items:
                - color: FF0000
                  item:
                    host: 'Nvidia by Zabbix agent 2'
                    key: 'nvml.device.memory.fb.used["{#UUID}"]'
                - sortorder: '1'
                  color: FF8000
                  item:
                    host: 'Nvidia by Zabbix agent 2'
                    key: 'nvml.device.memory.fb.reserved["{#UUID}"]'
                - sortorder: '2'
                  color: 76B900
                  item:
                    host: 'Nvidia by Zabbix agent 2'
                    key: 'nvml.device.memory.fb.free["{#UUID}"]'
            - uuid: 93509c440ee446d7b96c407207bcd726
              name: 'Nvidia: [{#UUID}]: Memory ECC errors'
              graph_items:
                - color: 76B900
                  item:
                    host: 'Nvidia by Zabbix agent 2'
                    key: 'nvml.device.errors.memory.corrected["{#UUID}"]'
                - sortorder: '1'
                  color: FF0000
                  item:
                    host: 'Nvidia by Zabbix agent 2'
                    key: 'nvml.device.errors.memory.uncorrected["{#UUID}"]'
            - uuid: 9acad578a5ee4ce6aeef509d5d08f824
              name: 'Nvidia: [{#UUID}]: PCIe utilization'
              graph_items:
                - color: FF0000
                  item:
                    host: 'Nvidia by Zabbix agent 2'
                    key: 'nvml.device.pci.utilization.rx.rate["{#UUID}"]'
                - sortorder: '1'
                  color: 0040FF
                  item:
                    host: 'Nvidia by Zabbix agent 2'
                    key: 'nvml.device.pci.utilization.tx.rate["{#UUID}"]'
            - uuid: 7a36984b772d4c3292ca0a8eafbd2c3d
              name: 'Nvidia: [{#UUID}]: Performance state'
              yaxismax: '15'
              ymin_type_1: FIXED
              ymax_type_1: FIXED
              graph_items:
                - color: 199C0D
                  item:
                    host: 'Nvidia by Zabbix agent 2'
                    key: 'nvml.device.performance.state["{#UUID}"]'
            - uuid: 08956a3887d14562b2c12a78c7519a23
              name: 'Nvidia: [{#UUID}]: Power usage'
              ymax_type_1: ITEM
              ymax_item_1:
                host: 'Nvidia by Zabbix agent 2'
                key: 'nvml.device.power.limit["{#UUID}"]'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'Nvidia by Zabbix agent 2'
                    key: 'nvml.device.power.usage["{#UUID}"]'
            - uuid: 30a5a91d874847619938568ffa0a7341
              name: 'Nvidia: [{#UUID}]: Register file errors'
              graph_items:
                - color: 76B900
                  item:
                    host: 'Nvidia by Zabbix agent 2'
                    key: 'nvml.device.errors.register.corrected["{#UUID}"]'
                - sortorder: '1'
                  color: FF0000
                  item:
                    host: 'Nvidia by Zabbix agent 2'
                    key: 'nvml.device.errors.register.uncorrected["{#UUID}"]'
          master_item:
            key: nvml.device.get
          lld_macro_paths:
            - lld_macro: '{#NAME}'
              path: $.device_name
            - lld_macro: '{#UUID}'
              path: $.device_uuid
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
      tags:
        - tag: class
          value: hardware
        - tag: target
          value: nvidia
      macros:
        - macro: '{$NVIDIA.DECODER.UTIL.CRIT}'
          value: '90'
          description: 'Critical threshold for decoder utilization, in %.'
          config:
            type: TEXT
            priority: '6'
            section_name: Thresholds
            label: 'Decoder utilization critical threshold (%)'
            description: 'Critical threshold for decoder utilization, in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$NVIDIA.DECODER.UTIL.WARN}'
          value: '80'
          description: 'Warning threshold for decoder utilization, in %.'
          config:
            type: TEXT
            priority: '5'
            section_name: Thresholds
            label: 'Decoder utilization warning threshold (%)'
            description: 'Warning threshold for decoder utilization, in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$NVIDIA.ENCODER.UTIL.CRIT}'
          value: '90'
          description: 'Critical threshold for encoder utilization, in %.'
          config:
            type: TEXT
            priority: '4'
            section_name: Thresholds
            label: 'Encoder utilization critical threshold (%)'
            description: 'Critical threshold for encoder utilization, in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$NVIDIA.ENCODER.UTIL.WARN}'
          value: '80'
          description: 'Warning threshold for encoder utilization, in %.'
          config:
            type: TEXT
            priority: '3'
            section_name: Thresholds
            label: 'Encoder utilization warning threshold (%)'
            description: 'Warning threshold for encoder utilization, in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$NVIDIA.FAN.SPEED.CRIT}'
          value: '90'
          description: 'Critical threshold for fan speed, in %.'
          config:
            type: TEXT
            priority: '10'
            section_name: Thresholds
            label: 'Fan speed critical threshold (%)'
            description: 'Critical threshold for fan speed, in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$NVIDIA.FAN.SPEED.WARN}'
          value: '80'
          description: 'Warning threshold for fan speed, in %.'
          config:
            type: TEXT
            priority: '9'
            section_name: Thresholds
            label: 'Fan speed warning threshold (%)'
            description: 'Warning threshold for fan speed, in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$NVIDIA.GPU.UTIL.CRIT}'
          value: '90'
          description: 'Critical threshold for overall GPU utilization, in %.'
          config:
            type: TEXT
            priority: '2'
            section_name: Thresholds
            label: 'GPU overall utilization critical threshold (%)'
            description: 'Critical threshold for overall GPU utilization, in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$NVIDIA.GPU.UTIL.WARN}'
          value: '80'
          description: 'Warning threshold for overall GPU utilization, in %.'
          config:
            type: TEXT
            priority: '1'
            section_name: Thresholds
            label: 'GPU overall utilization warning threshold (%)'
            description: 'Warning threshold for overall GPU utilization, in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$NVIDIA.MEMORY.UTIL.CRIT}'
          value: '90'
          description: 'Critical threshold for memory utilization, in %.'
          config:
            type: TEXT
            priority: '8'
            section_name: Thresholds
            label: 'Memory utilization critical threshold (%)'
            description: 'Critical threshold for memory utilization, in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$NVIDIA.MEMORY.UTIL.WARN}'
          value: '80'
          description: 'Warning threshold for memory utilization, in %.'
          config:
            type: TEXT
            priority: '7'
            section_name: Thresholds
            label: 'Memory utilization warning threshold (%)'
            description: 'Warning threshold for memory utilization, in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$NVIDIA.NAME.MATCHES}'
          value: '.*'
          description: 'Filter to include GPUs by name in discovery.'
          config:
            type: TEXT
            priority: '15'
            section_name: Filters
            label: 'GPU name filter (include)'
            description: 'Filter to include GPUs by name in discovery.'
        - macro: '{$NVIDIA.NAME.NOT_MATCHES}'
          value: 'CHANGE IF NEEDED'
          description: 'Filter to exclude GPUs by name in discovery.'
          config:
            type: TEXT
            priority: '16'
            section_name: Filters
            label: 'GPU name filter (exclude)'
            description: 'Filter to exclude GPUs by name in discovery.'
        - macro: '{$NVIDIA.POWER.UTIL.CRIT}'
          value: '90'
          description: 'Critical threshold for power usage, in %.'
          config:
            type: TEXT
            priority: '14'
            section_name: Thresholds
            label: 'Power usage critical threshold (%)'
            description: 'Critical threshold for power usage, in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$NVIDIA.POWER.UTIL.WARN}'
          value: '80'
          description: 'Warning threshold for power usage, in %.'
          config:
            type: TEXT
            priority: '13'
            section_name: Thresholds
            label: 'Power usage warning threshold (%)'
            description: 'Warning threshold for power usage, in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$NVIDIA.TEMPERATURE.CRIT}'
          value: '90'
          description: 'Critical threshold for temperature, in %.'
          config:
            type: TEXT
            priority: '12'
            section_name: Thresholds
            label: 'Temperature critical threshold (%)'
            description: 'Critical threshold for temperature, in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$NVIDIA.TEMPERATURE.WARN}'
          value: '80'
          description: 'Warning threshold for temperature, in %.'
          config:
            type: TEXT
            priority: '11'
            section_name: Thresholds
            label: 'Temperature warning threshold (%)'
            description: 'Warning threshold for temperature, in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$NVIDIA.UUID.MATCHES}'
          value: '.*'
          description: 'Filter to include GPUs by UUID in discovery.'
          config:
            type: TEXT
            priority: '17'
            section_name: Filters
            label: 'GPU UUID filter (include)'
            description: 'Filter to include GPUs by UUID in discovery.'
        - macro: '{$NVIDIA.UUID.NOT_MATCHES}'
          value: 'CHANGE IF NEEDED'
          description: 'Filter to exclude GPUs by UUID in discovery.'
          config:
            type: TEXT
            priority: '18'
            section_name: Filters
            label: 'GPU UUID filter (exclude)'
            description: 'Filter to exclude GPUs by UUID in discovery.'
      dashboards:
        - uuid: bc2dc6cc58984a20829499823a3c84fa
          name: 'Nvidia: Overview'
          pages:
            - name: Summary
              widgets:
                - type: svggraph
                  name: 'GPU utilization'
                  width: '36'
                  height: '6'
                  fields:
                    - type: INTEGER
                      name: ds.0.fill
                      value: '0'
                    - type: STRING
                      name: ds.0.items.0
                      value: '*GPU utilization*'
                    - type: INTEGER
                      name: ds.0.missingdatafunc
                      value: '1'
                    - type: INTEGER
                      name: ds.0.transparency
                      value: '1'
                    - type: INTEGER
                      name: ds.0.width
                      value: '3'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: EBEFB
                - type: svggraph
                  name: Temperature
                  'y': '6'
                  width: '36'
                  height: '6'
                  fields:
                    - type: INTEGER
                      name: ds.0.fill
                      value: '0'
                    - type: STRING
                      name: ds.0.items.0
                      value: '*Temperature*'
                    - type: INTEGER
                      name: ds.0.missingdatafunc
                      value: '1'
                    - type: INTEGER
                      name: ds.0.transparency
                      value: '1'
                    - type: INTEGER
                      name: ds.0.width
                      value: '3'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: ECEEB
                - type: svggraph
                  name: 'Memory utilization'
                  x: '36'
                  width: '36'
                  height: '6'
                  fields:
                    - type: INTEGER
                      name: ds.0.fill
                      value: '0'
                    - type: STRING
                      name: ds.0.items.0
                      value: '*Memory utilization*'
                    - type: INTEGER
                      name: ds.0.missingdatafunc
                      value: '1'
                    - type: INTEGER
                      name: ds.0.transparency
                      value: '1'
                    - type: INTEGER
                      name: ds.0.width
                      value: '3'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: EBEEB
                - type: svggraph
                  name: 'Power usage'
                  x: '36'
                  'y': '6'
                  width: '36'
                  height: '6'
                  fields:
                    - type: INTEGER
                      name: ds.0.fill
                      value: '0'
                    - type: STRING
                      name: ds.0.items.0
                      value: '*Power usage*'
                    - type: INTEGER
                      name: ds.0.missingdatafunc
                      value: '1'
                    - type: INTEGER
                      name: ds.0.transparency
                      value: '1'
                    - type: INTEGER
                      name: ds.0.width
                      value: '3'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: ECEDB
            - name: Frequencies
              widgets:
                - type: svggraph
                  name: 'SM frequency'
                  width: '36'
                  height: '6'
                  fields:
                    - type: INTEGER
                      name: ds.0.fill
                      value: '0'
                    - type: STRING
                      name: ds.0.items.0
                      value: '*SM frequency*'
                    - type: INTEGER
                      name: ds.0.missingdatafunc
                      value: '1'
                    - type: INTEGER
                      name: ds.0.transparency
                      value: '1'
                    - type: INTEGER
                      name: ds.0.width
                      value: '3'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: DCBFA
                - type: svggraph
                  name: 'Video frequency'
                  'y': '6'
                  width: '36'
                  height: '6'
                  fields:
                    - type: INTEGER
                      name: ds.0.fill
                      value: '0'
                    - type: STRING
                      name: ds.0.items.0
                      value: '*Video frequency*'
                    - type: INTEGER
                      name: ds.0.missingdatafunc
                      value: '1'
                    - type: INTEGER
                      name: ds.0.transparency
                      value: '1'
                    - type: INTEGER
                      name: ds.0.width
                      value: '3'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: FCACC
                - type: svggraph
                  name: 'Graphics frequency'
                  x: '36'
                  width: '36'
                  height: '6'
                  fields:
                    - type: INTEGER
                      name: ds.0.fill
                      value: '0'
                    - type: STRING
                      name: ds.0.items.0
                      value: '*Graphics frequency*'
                    - type: INTEGER
                      name: ds.0.missingdatafunc
                      value: '1'
                    - type: INTEGER
                      name: ds.0.transparency
                      value: '1'
                    - type: INTEGER
                      name: ds.0.width
                      value: '3'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: ADAEE
                - type: svggraph
                  name: 'Memory frequency'
                  x: '36'
                  'y': '6'
                  width: '36'
                  height: '6'
                  fields:
                    - type: INTEGER
                      name: ds.0.fill
                      value: '0'
                    - type: STRING
                      name: ds.0.items.0
                      value: '*Memory frequency*'
                    - type: INTEGER
                      name: ds.0.missingdatafunc
                      value: '1'
                    - type: INTEGER
                      name: ds.0.transparency
                      value: '1'
                    - type: INTEGER
                      name: ds.0.width
                      value: '3'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: DAEBE
            - name: 'Memory errors'
              widgets:
                - type: svggraph
                  name: 'Memory ECC errors, corrected'
                  width: '36'
                  height: '6'
                  fields:
                    - type: INTEGER
                      name: ds.0.fill
                      value: '0'
                    - type: STRING
                      name: ds.0.items.0
                      value: '*Memory ECC errors, corrected*'
                    - type: INTEGER
                      name: ds.0.transparency
                      value: '1'
                    - type: INTEGER
                      name: ds.0.width
                      value: '3'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: ECBFB
                - type: svggraph
                  name: 'Register file Errors, corrected'
                  'y': '6'
                  width: '36'
                  height: '6'
                  fields:
                    - type: INTEGER
                      name: ds.0.fill
                      value: '0'
                    - type: STRING
                      name: ds.0.items.0
                      value: '*Register file errors, corrected*'
                    - type: INTEGER
                      name: ds.0.transparency
                      value: '1'
                    - type: INTEGER
                      name: ds.0.width
                      value: '3'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: ECBFF
                - type: svggraph
                  name: 'Memory ECC errors, uncorrected'
                  x: '36'
                  width: '36'
                  height: '6'
                  fields:
                    - type: INTEGER
                      name: ds.0.fill
                      value: '0'
                    - type: STRING
                      name: ds.0.items.0
                      value: '*Memory ECC errors, uncorrected*'
                    - type: INTEGER
                      name: ds.0.transparency
                      value: '1'
                    - type: INTEGER
                      name: ds.0.width
                      value: '3'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: EABFF
                - type: svggraph
                  name: 'Register file Errors, uncorrected'
                  x: '36'
                  'y': '6'
                  width: '36'
                  height: '6'
                  fields:
                    - type: INTEGER
                      name: ds.0.fill
                      value: '0'
                    - type: STRING
                      name: ds.0.items.0
                      value: '*Register file errors, uncorrected*'
                    - type: INTEGER
                      name: ds.0.transparency
                      value: '1'
                    - type: INTEGER
                      name: ds.0.width
                      value: '3'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: ECBFA
            - name: 'Memory, PCI, fan'
              widgets:
                - type: graphprototype
                  name: 'BAR1 memory'
                  width: '36'
                  height: '6'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'Nvidia by Zabbix agent 2'
                        name: 'Nvidia: [{#UUID}]: BAR1 memory'
                    - type: STRING
                      name: reference
                      value: DCBFB
                - type: graphprototype
                  name: 'PCIe utilization'
                  'y': '6'
                  width: '36'
                  height: '6'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'Nvidia by Zabbix agent 2'
                        name: 'Nvidia: [{#UUID}]: PCIe utilization'
                    - type: STRING
                      name: reference
                      value: ACECA
                - type: graphprototype
                  name: 'FB memory'
                  x: '36'
                  width: '36'
                  height: '6'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'Nvidia by Zabbix agent 2'
                        name: 'Nvidia: [{#UUID}]: FB memory'
                    - type: STRING
                      name: reference
                      value: ACDCA
                - type: graphprototype
                  name: 'Fan speed'
                  x: '36'
                  'y': '6'
                  width: '36'
                  height: '6'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'Nvidia by Zabbix agent 2'
                        name: 'Nvidia: [{#UUID}]: Fan speed'
                    - type: STRING
                      name: reference
                      value: ACFCA
            - name: Encoders
              widgets:
                - type: svggraph
                  name: 'Encoder utilization'
                  width: '36'
                  height: '6'
                  fields:
                    - type: INTEGER
                      name: ds.0.fill
                      value: '0'
                    - type: STRING
                      name: ds.0.items.0
                      value: '*Encoder utilization*'
                    - type: INTEGER
                      name: ds.0.transparency
                      value: '1'
                    - type: INTEGER
                      name: ds.0.width
                      value: '3'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: ECAFB
                - type: svggraph
                  name: 'Encoder average FPS'
                  'y': '6'
                  width: '36'
                  height: '6'
                  fields:
                    - type: INTEGER
                      name: ds.0.fill
                      value: '0'
                    - type: STRING
                      name: ds.0.items.0
                      value: '*Encoder average FPS*'
                    - type: INTEGER
                      name: ds.0.transparency
                      value: '1'
                    - type: INTEGER
                      name: ds.0.width
                      value: '3'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: ECFFF
                - type: svggraph
                  name: 'Encoder sessions'
                  x: '36'
                  width: '36'
                  height: '6'
                  fields:
                    - type: INTEGER
                      name: ds.0.fill
                      value: '0'
                    - type: STRING
                      name: ds.0.items.0
                      value: '*Encoder sessions*'
                    - type: INTEGER
                      name: ds.0.transparency
                      value: '1'
                    - type: INTEGER
                      name: ds.0.width
                      value: '3'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: ECAFF
                - type: svggraph
                  name: 'Encoder average latency'
                  x: '36'
                  'y': '6'
                  width: '36'
                  height: '6'
                  fields:
                    - type: INTEGER
                      name: ds.0.fill
                      value: '0'
                    - type: STRING
                      name: ds.0.items.0
                      value: '*Encoder average latency*'
                    - type: INTEGER
                      name: ds.0.transparency
                      value: '1'
                    - type: INTEGER
                      name: ds.0.width
                      value: '3'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: ECFFA
      valuemaps:
        - uuid: 9c9e6145dc87474ba03f16ea73c355d4
          name: 'Performance state'
          mappings:
            - value: '0'
              newvalue: Maximum
            - type: IN_RANGE
              value: 1-4
              newvalue: High
            - type: IN_RANGE
              value: 5-10
              newvalue: Average
            - type: IN_RANGE
              value: 11-14
              newvalue: Low
            - value: '15'
              newvalue: Minimum
            - value: '32'
              newvalue: Unknown
    - uuid: 7297d66e419543c6b83dd8cfe5eb4fb7
      template: 'Nvidia by Zabbix agent 2 active'
      name: 'Nvidia by Zabbix agent 2 active'
      description: |
        This template is designed for Nvidia GPU monitoring and doesn't require any external scripts.
        1. Setup and configure Zabbix agent 2 compiled with the Nvidia monitoring plugin.
        2. Create a host and attach the template to it.
        All Nvidia GPUs will be discovered. Set filters with macros if you want to override default filter parameters.
        
        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
        
        This template is designed for Nvidia GPU monitoring and doesn't require any external scripts.
        All Nvidia GPUs will be discovered. Set filters with host wizard configuration fields if you want to override default filter parameters.
        
        ## Setup
        
        1. Set up and configure Zabbix agent 2 compiled with the Nvidia monitoring plugin.
        2. Create a host and attach the template to it.
        
        Test availability: `zabbix_get -s nvidia-host -k nvml.system.driver.version`
      vendor:
        name: Zabbix
        version: 8.0-1
      groups:
        - name: Templates/Applications
      items:
        - uuid: efdffab0b401430388a5cb21a789978d
          name: 'Number of devices'
          type: ZABBIX_ACTIVE
          key: nvml.device.count
          delay: 1h
          description: |
            Retrieves the number of compute devices in the system. A compute device is a single GPU.
            For all Nvidia products.
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          tags:
            - tag: component
              value: nvidia
          triggers:
            - uuid: adf85e5ea2404ef4841208a41ca3bb45
              expression: 'change(/Nvidia by Zabbix agent 2 active/nvml.device.count) <> 0'
              name: 'Nvidia: Number of devices has changed'
              event_name: 'Nvidia: Number of devices on {HOST.HOST} has changed.'
              opdata: 'current value: {ITEM.LASTVALUE1}'
              priority: WARNING
              description: 'Number of devices has changed. Check if this was intentional.'
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: notice
        - uuid: 6ea9f80195af4c7b89c1f7220fc71df7
          name: 'Get devices'
          type: ZABBIX_ACTIVE
          key: nvml.device.get
          delay: 1h
          history: '0'
          value_type: TEXT
          description: 'Retrieves a list of Nvidia devices in the system.'
          tags:
            - tag: component
              value: nvidia
            - tag: component
              value: raw
        - uuid: 424bce7a262144d0a2bc33bc0b5ee98a
          name: 'Driver version'
          type: ZABBIX_ACTIVE
          key: nvml.system.driver.version
          delay: 1h
          value_type: CHAR
          description: |
            Retrieves the version of the system's graphics driver.
            For all Nvidia products.
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          tags:
            - tag: component
              value: nvidia
          triggers:
            - uuid: bd2e26231d1a4ae29538c573e69fce34
              expression: 'change(/Nvidia by Zabbix agent 2 active/nvml.system.driver.version) <> 0'
              name: 'Nvidia: Driver version has changed'
              event_name: 'Nvidia: Driver version on {HOST.HOST} has changed.'
              opdata: 'current value: {ITEM.LASTVALUE1}'
              priority: INFO
              description: |
                Driver version has changed.
                Check the Nvidia website for the specific driver version: https://www.nvidia.com/en-us/drivers/
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: notice
        - uuid: 1566ad71d26a474a858c12ff1cf438fb
          name: 'NVML library version'
          type: ZABBIX_ACTIVE
          key: nvml.version
          delay: 1h
          value_type: CHAR
          description: |
            Retrieves the version of the NVML library.
            For all Nvidia products.
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          tags:
            - tag: component
              value: nvidia
          triggers:
            - uuid: 8db25f54f23f48c4ae2ead4ca3e52c34
              expression: 'change(/Nvidia by Zabbix agent 2 active/nvml.version) <> 0'
              name: 'Nvidia: NVML library has changed'
              event_name: 'Nvidia: NVML library on {HOST.HOST} has changed.'
              opdata: 'current value: {ITEM.LASTVALUE1}'
              priority: INFO
              description: |
                NVML library version has changed.
                Check the changelog for details: https://docs.nvidia.com/deploy/nvml-api/change-log.html
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: notice
      discovery_rules:
        - uuid: d3d6ca6d489b436f8aecef9e2f64bd33
          name: 'GPU Discovery'
          type: DEPENDENT
          key: nvml.device.discovery
          filter:
            evaltype: AND
            conditions:
              - macro: '{#NAME}'
                value: '{$NVIDIA.NAME.MATCHES}'
              - macro: '{#NAME}'
                value: '{$NVIDIA.NAME.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#UUID}'
                value: '{$NVIDIA.UUID.MATCHES}'
              - macro: '{#UUID}'
                value: '{$NVIDIA.UUID.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
          description: 'Nvidia GPU discovery in the system.'
          item_prototypes:
            - uuid: 0355d8799fb44e6b8ad144b389641d01
              name: '[{#UUID}]: Decoder utilization'
              type: ZABBIX_ACTIVE
              key: 'nvml.device.decoder.utilization["{#UUID}"]'
              units: '%'
              description: |
                Retrieves the current utilization for the Decoder.
                For Nvidia Kepler or newer fully supported devices.
              tags:
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
              trigger_prototypes:
                - uuid: 2ca21d91b7e94f0fa2328dd35846769b
                  expression: 'min(/Nvidia by Zabbix agent 2 active/nvml.device.decoder.utilization["{#UUID}"],3m) > {$NVIDIA.DECODER.UTIL.CRIT}'
                  name: 'Nvidia: [{#UUID}]: Decoder utilization exceeded critical threshold'
                  event_name: 'Nvidia: [{#UUID}]: Decoder utilization ({ITEM.VALUE1}) exceeded critical threshold ({$NVIDIA.DECODER.UTIL.CRIT} %)'
                  opdata: 'current value: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: '[{#UUID}]: Decoder utilization is very high. It may indicate abnormal behavior/activity. Change corresponding macro in case of false-positive.'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: 13f4fd62bdac46118781e3090df30a6e
                  expression: 'min(/Nvidia by Zabbix agent 2 active/nvml.device.decoder.utilization["{#UUID}"],3m) > {$NVIDIA.DECODER.UTIL.WARN}'
                  name: 'Nvidia: [{#UUID}]: Decoder utilization exceeded warning threshold'
                  event_name: 'Nvidia: [{#UUID}]: Decoder utilization ({ITEM.VALUE1}) exceeded warning threshold ({$NVIDIA.DECODER.UTIL.WARN} %)'
                  opdata: 'current value: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: '[{#UUID}]: Decoder utilization is high. It may indicate abnormal behavior/activity. Change corresponding macro in case of false-positive.'
                  dependencies:
                    - name: 'Nvidia: [{#UUID}]: Decoder utilization exceeded critical threshold'
                      expression: 'min(/Nvidia by Zabbix agent 2 active/nvml.device.decoder.utilization["{#UUID}"],3m) > {$NVIDIA.DECODER.UTIL.CRIT}'
                  tags:
                    - tag: scope
                      value: performance
            - uuid: a6804c8604cd46bcb5b38144171b9209
              name: '[{#UUID}]: Encoder average FPS'
              type: DEPENDENT
              key: 'nvml.device.encoder.stats.fps["{#UUID}"]'
              units: '!fps'
              description: |
                Retrieves the trailing average FPS of all active encoder sessions for a given device.
                For Nvidia Maxwell or newer fully supported devices.
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.average_fps
              master_item:
                key: 'nvml.device.encoder.stats.get["{#UUID}"]'
              tags:
                - tag: component
                  value: encoder
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: 52c3a8fc63fc47e88c976d8d8436a3a5
              name: '[{#UUID}]: Encoder stats'
              type: ZABBIX_ACTIVE
              key: 'nvml.device.encoder.stats.get["{#UUID}"]'
              history: '0'
              value_type: TEXT
              description: |
                Retrieves the current encoder statistics for a given device.
                For Nvidia Maxwell or newer fully supported devices.
              tags:
                - tag: component
                  value: nvidia
                - tag: component
                  value: raw
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: 141a77dc82124d0c99c79cbbf729e88d
              name: '[{#UUID}]: Encoder average latency'
              type: DEPENDENT
              key: 'nvml.device.encoder.stats.latency["{#UUID}"]'
              value_type: FLOAT
              units: s
              description: |
                Retrieves the current encode latency for a given device.
                For Nvidia Maxwell or newer fully supported devices.
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.average_latency_ms
                - type: MULTIPLIER
                  parameters:
                    - '0.001'
              master_item:
                key: 'nvml.device.encoder.stats.get["{#UUID}"]'
              tags:
                - tag: component
                  value: encoder
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
              trigger_prototypes:
                - uuid: 8257801252a14f81af72b7dde279de6e
                  expression: 'last(/Nvidia by Zabbix agent 2 active/nvml.device.encoder.stats.latency["{#UUID}"]) > (2 * avg(/Nvidia by Zabbix agent 2 active/nvml.device.encoder.stats.latency["{#UUID}"],3m))'
                  name: 'Nvidia: [{#UUID}]: Encoder average latency is high'
                  event_name: 'Nvidia: [{#UUID}]: Encoder average latency is 2x higher than usual.'
                  opdata: 'current value: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  tags:
                    - tag: scope
                      value: performance
            - uuid: 0c441debd2e44b7a9efd4347483b660d
              name: '[{#UUID}]: Encoder sessions'
              type: DEPENDENT
              key: 'nvml.device.encoder.stats.sessions["{#UUID}"]'
              description: |
                Retrieves the current count of active encoder sessions for a given device.
                For Nvidia Maxwell or newer fully supported devices.
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.session_count
              master_item:
                key: 'nvml.device.encoder.stats.get["{#UUID}"]'
              tags:
                - tag: component
                  value: encoder
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: ae76d66eed7b42fb95b13cfcc1e633d1
              name: '[{#UUID}]: Encoder utilization'
              type: ZABBIX_ACTIVE
              key: 'nvml.device.encoder.utilization["{#UUID}"]'
              units: '%'
              description: |
                Retrieves the current utilization for the Encoder.
                For Nvidia Kepler or newer fully supported devices.
              tags:
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
              trigger_prototypes:
                - uuid: 86419e03555c4bc38227bc04b1583fba
                  expression: 'min(/Nvidia by Zabbix agent 2 active/nvml.device.encoder.utilization["{#UUID}"],3m) > {$NVIDIA.ENCODER.UTIL.CRIT}'
                  name: 'Nvidia: [{#UUID}]: Encoder utilization exceeded critical threshold'
                  event_name: 'Nvidia: [{#UUID}]: Encoder utilization ({ITEM.VALUE1}) exceeded critical threshold ({$NVIDIA.ENCODER.UTIL.CRIT} %)'
                  opdata: 'current value: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: '[{#UUID}]: Encoder utilization is very high. It may indicate abnormal behavior/activity. Change corresponding macro in case of false-positive.'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: 709342417f4746a6873f5e66601d97ff
                  expression: 'min(/Nvidia by Zabbix agent 2 active/nvml.device.encoder.utilization["{#UUID}"],3m) > {$NVIDIA.ENCODER.UTIL.WARN}'
                  name: 'Nvidia: [{#UUID}]: Encoder utilization exceeded warning threshold'
                  event_name: 'Nvidia: [{#UUID}]: Encoder utilization ({ITEM.VALUE1}) exceeded warning threshold ({$NVIDIA.ENCODER.UTIL.WARN} %)'
                  opdata: 'current value: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: '[{#UUID}]: Encoder utilization is high. It may indicate abnormal behavior/activity. Change corresponding macro in case of false-positive.'
                  dependencies:
                    - name: 'Nvidia: [{#UUID}]: Encoder utilization exceeded critical threshold'
                      expression: 'min(/Nvidia by Zabbix agent 2 active/nvml.device.encoder.utilization["{#UUID}"],3m) > {$NVIDIA.ENCODER.UTIL.CRIT}'
                  tags:
                    - tag: scope
                      value: performance
            - uuid: 79928bb18ccc4a4e9d1ed46aa20d5434
              name: '[{#UUID}]: Energy consumption'
              type: ZABBIX_ACTIVE
              key: 'nvml.device.energy.consumption["{#UUID}"]'
              value_type: FLOAT
              units: J
              description: |
                Retrieves the total energy consumption of this GPU in joules since the last driver reload.
                For Nvidia Volta or newer fully supported devices.
              preprocessing:
                - type: MULTIPLIER
                  parameters:
                    - '0.001'
              tags:
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: 25062054ea774f0caaee6aa342c5e2a2
              name: '[{#UUID}]: Memory ECC errors, corrected'
              type: DEPENDENT
              key: 'nvml.device.errors.memory.corrected["{#UUID}"]'
              description: |
                Retrieves the count of GPU device memory errors that were corrected. For ECC errors, these are single-bit errors, for Texture memory, these are errors fixed by resend.
                For Nvidia Fermi or newer fully supported devices.
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.corrected
              master_item:
                key: 'nvml.device.errors.memory["{#UUID}"]'
              tags:
                - tag: component
                  value: memory
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
              trigger_prototypes:
                - uuid: cbf602d3ed784ec3ae3072899fa91f56
                  expression: 'change(/Nvidia by Zabbix agent 2 active/nvml.device.errors.memory.corrected["{#UUID}"]) <> 0'
                  name: 'Nvidia: [{#UUID}]: Number of corrected memory ECC errors has changed'
                  event_name: 'Nvidia: Number of corrected memory ECC errors on {HOST.HOST} has changed.'
                  opdata: 'current value: {ITEM.LASTVALUE1}'
                  priority: INFO
                  description: 'An increasing number of corrected ECC errors can indicate (but not necessary mean) aging or degrading of memory.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: 8bc12acbbe7c41c882429ec09bc3d86d
              name: '[{#UUID}]: Memory ECC errors, uncorrected'
              type: DEPENDENT
              key: 'nvml.device.errors.memory.uncorrected["{#UUID}"]'
              description: |
                Retrieves the count of GPU device memory errors that were not corrected. For ECC errors, these are double-bit errors, for Texture memory, these are errors where the resend fails.
                For Nvidia Fermi or newer fully supported devices.
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.uncorrected
              master_item:
                key: 'nvml.device.errors.memory["{#UUID}"]'
              tags:
                - tag: component
                  value: memory
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
              trigger_prototypes:
                - uuid: 3a93f82adbed4330b54296beaed17848
                  expression: 'change(/Nvidia by Zabbix agent 2 active/nvml.device.errors.memory.uncorrected["{#UUID}"]) <> 0'
                  name: 'Nvidia: [{#UUID}]: Number of uncorrected memory ECC errors has changed'
                  event_name: 'Nvidia: Number uncorrected of memory ECC errors on {HOST.HOST} has changed.'
                  opdata: 'current value: {ITEM.LASTVALUE1}'
                  priority: INFO
                  description: 'An increasing number of uncorrected ECC errors can indicate potential issues such as: data corruption, system instability, hardware issues'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: e79e45b1625742fea796f14d26c52e6f
              name: '[{#UUID}]: Memory ECC errors, get'
              type: ZABBIX_ACTIVE
              key: 'nvml.device.errors.memory["{#UUID}"]'
              history: '0'
              value_type: TEXT
              description: |
                Retrieves the GPU device memory error counters for the device.
                For Nvidia Fermi or newer fully supported devices.
                Requires NVML_INFOROM_ECC version 2.0 or higher to report aggregate location-based memory error counts. Requires NVML_INFOROM_ECC version 1.0 or higher to report all other memory error counts.
                Only applicable to devices with ECC.
                Requires ECC Mode to be enabled.
              preprocessing:
                - type: CHECK_NOT_SUPPORTED
                  parameters:
                    - '0'
                    - 'The requested operation is not available on target device'
                  error_handler: CUSTOM_ERROR
                  error_handler_params: 'No ECC on the device or ECC mode is turned off.'
              tags:
                - tag: component
                  value: nvidia
                - tag: component
                  value: raw
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: b472e7b463244d30b79291cd411f160e
              name: '[{#UUID}]: Register file errors, corrected'
              type: DEPENDENT
              key: 'nvml.device.errors.register.corrected["{#UUID}"]'
              description: |
                Retrieves the count of GPU register file errors that were corrected. For ECC errors, these are single-bit errors, for Texture memory, these are errors fixed by resend.
                For Nvidia Fermi or newer fully supported devices.
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.corrected
              master_item:
                key: 'nvml.device.errors.register["{#UUID}"]'
              tags:
                - tag: component
                  value: memory
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
              trigger_prototypes:
                - uuid: 4aa09321d7214173a0b1656d18455b78
                  expression: 'change(/Nvidia by Zabbix agent 2 active/nvml.device.errors.register.corrected["{#UUID}"]) <> 0'
                  name: 'Nvidia: [{#UUID}]: Number of corrected register file errors has changed'
                  event_name: 'Nvidia: Number corrected of register file errors on {HOST.HOST} has changed.'
                  opdata: 'current value: {ITEM.LASTVALUE1}'
                  priority: INFO
                  description: 'An increasing number of corrected register file errors can indicate (but not necessary mean) wearing, aging or degrading of memory.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: 5e66f8e5378d4b1fb4c9959333d0baf5
              name: '[{#UUID}]: Register file errors, uncorrected'
              type: DEPENDENT
              key: 'nvml.device.errors.register.uncorrected["{#UUID}"]'
              description: |
                Retrieves the count of GPU register file errors that were not corrected. For ECC errors, these are double-bit errors, for Texture memory, these are errors where the resend fails.
                For Nvidia Fermi or newer fully supported devices.
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.uncorrected
              master_item:
                key: 'nvml.device.errors.register["{#UUID}"]'
              tags:
                - tag: component
                  value: memory
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
              trigger_prototypes:
                - uuid: 951c54e2edcc43d29ac466a35802cfc9
                  expression: 'change(/Nvidia by Zabbix agent 2 active/nvml.device.errors.register.uncorrected["{#UUID}"]) <> 0'
                  name: 'Nvidia: [{#UUID}]: Number of uncorrected register file errors has changed'
                  event_name: 'Nvidia: Number uncorrected of register file errors on {HOST.HOST} has changed.'
                  opdata: 'current value: {ITEM.LASTVALUE1}'
                  priority: INFO
                  description: 'An increasing number of uncorrected register file errors can indicate potential issues such as: data corruption, system instability, hardware degradation.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: 3b19ff5ab2ae48049aed8403ab18ebf3
              name: '[{#UUID}]: Register file errors, get'
              type: ZABBIX_ACTIVE
              key: 'nvml.device.errors.register["{#UUID}"]'
              history: '0'
              value_type: TEXT
              description: |
                Retrieves the GPU register file error counters for the device.
                For Nvidia Fermi or newer fully supported devices.
                Requires NVML_INFOROM_ECC version 2.0 or higher to report aggregate location-based memory error counts. Requires NVML_INFOROM_ECC version 1.0 or higher to report all other memory error counts.
                Only applicable to devices with ECC.
                Requires ECC Mode to be enabled.
              preprocessing:
                - type: CHECK_NOT_SUPPORTED
                  parameters:
                    - '0'
                    - 'The requested operation is not available on target device'
                  error_handler: CUSTOM_ERROR
                  error_handler_params: 'No ECC on the device or ECC mode is turned off.'
              tags:
                - tag: component
                  value: nvidia
                - tag: component
                  value: raw
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: ece478c8ff5f40dcb3bcb7a4b6d65124
              name: '[{#UUID}]: Fan speed'
              type: ZABBIX_ACTIVE
              key: 'nvml.device.fan.speed.avg["{#UUID}"]'
              units: '%'
              description: |
                Retrieves the intended operating speed of the specified device fan.
                Note: The reported speed is the intended fan speed. If the fan is physically blocked and unable to spin, the output will not match the actual fan speed.
                For all Nvidia discrete products with dedicated fans.
                The fan speed is expressed as a percentage of the product's maximum noise tolerance fan speed. In certain cases, this value may exceed 100%.
              tags:
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
              trigger_prototypes:
                - uuid: dbc03d55d87946f2a9c279b8c6cbfbbc
                  expression: 'min(/Nvidia by Zabbix agent 2 active/nvml.device.fan.speed.avg["{#UUID}"],3m) > {$NVIDIA.FAN.SPEED.CRIT}'
                  name: 'Nvidia: [{#UUID}]: Fan speed exceeded critical threshold'
                  event_name: 'Nvidia: [{#UUID}]: Fan speed ({ITEM.VALUE1}) exceeded critical threshold ({$NVIDIA.FAN.SPEED.CRIT} %)'
                  opdata: 'current value: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: '[{#UUID}]: Fan speed is very high. It may indicate abnormal behavior/activity. Change corresponding macro in case of false-positive.'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: 636e31ac7a2c48ecbd65b0c4ec4c8fb0
                  expression: 'min(/Nvidia by Zabbix agent 2 active/nvml.device.fan.speed.avg["{#UUID}"],3m) > {$NVIDIA.FAN.SPEED.WARN}'
                  name: 'Nvidia: [{#UUID}]: Fan speed exceeded warning threshold'
                  event_name: 'Nvidia: [{#UUID}]: Fan speed ({ITEM.VALUE1}) exceeded warning threshold ({$NVIDIA.FAN.SPEED.WARN} %)'
                  opdata: 'current value: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: '[{#UUID}]: Fan speed is high. It may indicate abnormal behavior/activity. Change corresponding macro in case of false-positive.'
                  dependencies:
                    - name: 'Nvidia: [{#UUID}]: Fan speed exceeded critical threshold'
                      expression: 'min(/Nvidia by Zabbix agent 2 active/nvml.device.fan.speed.avg["{#UUID}"],3m) > {$NVIDIA.FAN.SPEED.CRIT}'
                  tags:
                    - tag: scope
                      value: performance
            - uuid: c9609ab9041a4f7584bed04b436315c0
              name: '[{#UUID}]: Graphics frequency'
              type: ZABBIX_ACTIVE
              key: 'nvml.device.graphics.frequency["{#UUID}"]'
              units: Hz
              description: |
                Retrieves the current graphics clock speed for the device.
                For Nvidia Fermi or newer fully supported devices.
              preprocessing:
                - type: MULTIPLIER
                  parameters:
                    - '1000000'
              tags:
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: 7556176cdf1943e5aedb7fa3c5ded934
              name: '[{#UUID}]: BAR1 memory, free'
              type: DEPENDENT
              key: 'nvml.device.memory.bar1.free["{#UUID}"]'
              units: B
              description: |
                Unallocated BAR1 memory on the device.
                For Nvidia Kepler or newer fully supported devices
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.free_memory_bytes
              master_item:
                key: 'nvml.device.memory.bar1.get["{#UUID}"]'
              tags:
                - tag: component
                  value: memory
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: 8836f8d00eb44a5180c8ced82494c1ba
              name: '[{#UUID}]: BAR1 memory, get'
              type: ZABBIX_ACTIVE
              key: 'nvml.device.memory.bar1.get["{#UUID}"]'
              history: '0'
              value_type: TEXT
              description: |
                Gets Total, Available, and Used size of BAR1 memory.
                BAR1 is used to map the FB (device memory) so that it can be directly accessed by the CPU or 3rd party devices (peer-to-peer on the PCIE bus).
                For Nvidia Kepler or newer fully supported devices
              tags:
                - tag: component
                  value: nvidia
                - tag: component
                  value: raw
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: af9070de2bc9454283a32a847b163478
              name: '[{#UUID}]: BAR1 memory, total'
              type: DEPENDENT
              key: 'nvml.device.memory.bar1.total["{#UUID}"]'
              units: B
              description: |
                Total BAR1 memory on the device.
                For Nvidia Kepler or newer fully supported devices
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.total_memory_bytes
              master_item:
                key: 'nvml.device.memory.bar1.get["{#UUID}"]'
              tags:
                - tag: component
                  value: memory
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
              trigger_prototypes:
                - uuid: 794d204946f04b71b451129294b6065c
                  expression: 'change(/Nvidia by Zabbix agent 2 active/nvml.device.memory.bar1.total["{#UUID}"]) <> 0'
                  name: 'Nvidia: [{#UUID}]: Total BAR1 memory has changed'
                  event_name: 'Nvidia: Total BAR1 memory on {HOST.HOST} has changed.'
                  opdata: 'current value: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'Total BAR1 memory has changed. This could mean possible memory degradation, hardware configuration changes, or memory reservation by system or software.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: 5d76f768d3c644a7a185bb07d109e221
              name: '[{#UUID}]: BAR1 memory, used'
              type: DEPENDENT
              key: 'nvml.device.memory.bar1.used["{#UUID}"]'
              units: B
              description: |
                Allocated used BAR1 memory on the device.
                For Nvidia Kepler or newer fully supported devices
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.used_memory_bytes
              master_item:
                key: 'nvml.device.memory.bar1.get["{#UUID}"]'
              tags:
                - tag: component
                  value: memory
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: 20c11439c02d49969bbe13f41e23a31b
              name: '[{#UUID}]: FB memory, free'
              type: DEPENDENT
              key: 'nvml.device.memory.fb.free["{#UUID}"]'
              units: B
              description: |
                Unallocated memory on the device.
                For all Nvidia products.
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.free_memory_bytes
              master_item:
                key: 'nvml.device.memory.fb.get["{#UUID}"]'
              tags:
                - tag: component
                  value: memory
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: 1f48f586a4ec49ffbe8080bac5df66f8
              name: '[{#UUID}]: FB memory, get'
              type: ZABBIX_ACTIVE
              key: 'nvml.device.memory.fb.get["{#UUID}"]'
              history: '0'
              value_type: TEXT
              description: |
                Retrieves the amount of used, free, reserved, and total memory available on the device.
                For all Nvidia products.
                Enabling ECC reduces the amount of total available memory due to the extra required parity bits. Under WDDM, most of the device memory is allocated and managed on startup by Windows.
                Under Linux and Windows TCC, the reported amount of used memory is equal to the sum of memory allocated by all active channels on the device.
              tags:
                - tag: component
                  value: nvidia
                - tag: component
                  value: raw
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: 806601ebae81441fbc90523d63470044
              name: '[{#UUID}]: FB memory, reserved'
              type: DEPENDENT
              key: 'nvml.device.memory.fb.reserved["{#UUID}"]'
              units: B
              description: |
                Memory reserved for system use (driver or firmware) on the device.
                For all Nvidia products.
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.reserved_memory_bytes
                  error_handler: CUSTOM_ERROR
                  error_handler_params: 'NVML library too old to support this metric.'
              master_item:
                key: 'nvml.device.memory.fb.get["{#UUID}"]'
              tags:
                - tag: component
                  value: memory
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: 6a78780f41314641a3478efd0cb9882b
              name: '[{#UUID}]: FB memory, total'
              type: DEPENDENT
              key: 'nvml.device.memory.fb.total["{#UUID}"]'
              units: B
              description: |
                Total physical memory on the device.
                For all Nvidia products.
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.total_memory_bytes
              master_item:
                key: 'nvml.device.memory.fb.get["{#UUID}"]'
              tags:
                - tag: component
                  value: memory
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
              trigger_prototypes:
                - uuid: 7f1308d09489457db3ce7d6e1afe469b
                  expression: 'change(/Nvidia by Zabbix agent 2 active/nvml.device.memory.fb.total["{#UUID}"]) <> 0'
                  name: 'Nvidia: [{#UUID}]: Total FB memory has changed'
                  event_name: 'Nvidia: Total FB memory on {HOST.HOST} has changed.'
                  opdata: 'current value: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'Total FB memory has changed. This could mean possible memory degradation, hardware configuration changes, or memory reservation by system or software.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: 4267777a1117490db3c90097aae56d98
              name: '[{#UUID}]: FB memory, used'
              type: DEPENDENT
              key: 'nvml.device.memory.fb.used["{#UUID}"]'
              units: B
              description: |
                Allocated memory on the device.
                For all Nvidia products.
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.used_memory_bytes
              master_item:
                key: 'nvml.device.memory.fb.get["{#UUID}"]'
              tags:
                - tag: component
                  value: memory
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: b3ec856b4b7f42d9ba76c2ff47752bd7
              name: '[{#UUID}]: Memory frequency'
              type: ZABBIX_ACTIVE
              key: 'nvml.device.memory.frequency["{#UUID}"]'
              units: Hz
              description: |
                Retrieves the current memory clock speed for the device.
                For Nvidia Fermi or newer fully supported devices.
              preprocessing:
                - type: MULTIPLIER
                  parameters:
                    - '1000000'
              tags:
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: 74a8c52b818540418046a1475c063da1
              name: '[{#UUID}]: PCIe utilization, Rx'
              type: DEPENDENT
              key: 'nvml.device.pci.utilization.rx.rate["{#UUID}"]'
              units: bps
              description: |
                The PCIe Rx (receive) throughput over a 20ms interval on the device.
                For Nvidia Maxwell or newer fully supported devices.
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.rx_rate_kb_s
                - type: MULTIPLIER
                  parameters:
                    - '1024'
              master_item:
                key: 'nvml.device.pci.utilization["{#UUID}"]'
              tags:
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: 4cb72592564348c6af99f95e592c2591
              name: '[{#UUID}]: PCIe utilization, Tx'
              type: DEPENDENT
              key: 'nvml.device.pci.utilization.tx.rate["{#UUID}"]'
              units: bps
              description: |
                The PCIe Tx (transmit) throughput over a 20ms interval on the device.
                For Nvidia Maxwell or newer fully supported devices.
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.tx_rate_kb_s
                - type: MULTIPLIER
                  parameters:
                    - '1024'
              master_item:
                key: 'nvml.device.pci.utilization["{#UUID}"]'
              tags:
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: 3270b9cf246b4b0abf60bb73f2c64c39
              name: '[{#UUID}]: PCIe utilization, get'
              type: ZABBIX_ACTIVE
              key: 'nvml.device.pci.utilization["{#UUID}"]'
              history: '0'
              value_type: TEXT
              description: |
                Retrieves PCIe utilization information.
                For Nvidia Maxwell or newer fully supported devices.
              tags:
                - tag: component
                  value: nvidia
                - tag: component
                  value: raw
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: 1ac19949ec11456896562f63525dcb8c
              name: '[{#UUID}]: Performance state'
              type: ZABBIX_ACTIVE
              key: 'nvml.device.performance.state["{#UUID}"]'
              description: |
                Retrieves the current performance state for the device.
                For Nvidia Fermi or newer fully supported devices.
              valuemap:
                name: 'Performance state'
              tags:
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: 7f4e87102f8042a8802088f842356522
              name: '[{#UUID}]: Power limit'
              type: ZABBIX_ACTIVE
              key: 'nvml.device.power.limit["{#UUID}"]'
              delay: 1h
              value_type: FLOAT
              units: watts
              description: |
                Retrieves the power management limit associated with this device.
                For Nvidia Fermi or newer fully supported devices.
                The power limit defines the upper boundary for the card's power draw. If the card's total power draw reaches this limit, the power management algorithm kicks in.
                This reading is only available if power management mode is supported.
              preprocessing:
                - type: MULTIPLIER
                  parameters:
                    - '0.001'
              tags:
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
              trigger_prototypes:
                - uuid: c7ba8c60f3de4c87a528db11d39ee2ec
                  expression: 'change(/Nvidia by Zabbix agent 2 active/nvml.device.power.limit["{#UUID}"]) <> 0'
                  name: 'Nvidia: [{#UUID}]: Power limit has changed'
                  event_name: 'Nvidia: [{#UUID}]Power limit on {HOST.HOST} has changed.'
                  opdata: 'current value: {ITEM.LASTVALUE1}'
                  priority: INFO
                  description: 'Power limit for the device has changed. Check if this was intentional.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: 601901906c634f64a94831a9b44ad59e
              name: '[{#UUID}]: Power usage'
              type: ZABBIX_ACTIVE
              key: 'nvml.device.power.usage["{#UUID}"]'
              value_type: FLOAT
              units: watts
              description: |
                Retrieves power usage for this GPU (in watts) and its associated circuitry (e.g. memory).
                For Nvidia Fermi or newer fully supported devices.
                On Fermi and Kepler GPUs, the reading is accurate to within +/- 5% of current power draw. On Ampere (except GA100) or newer GPUs, the API returns power averaged over a 1 second interval. On GA100 and older architectures, instantaneous power is returned.
              preprocessing:
                - type: MULTIPLIER
                  parameters:
                    - '0.001'
              tags:
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: 707c859524164a348d142f193fb464d6
              name: '[{#UUID}]: Serial number'
              type: ZABBIX_ACTIVE
              key: 'nvml.device.serial["{#UUID}"]'
              delay: 1h
              value_type: CHAR
              description: |
                Retrieves the globally unique board serial number associated with this device's board.
                For all products with an inforom.
                This number matches the serial number tag that is physically attached to the board.
              preprocessing:
                - type: CHECK_NOT_SUPPORTED
                  parameters:
                    - '0'
                    - 'The requested operation is not available on target device'
                  error_handler: CUSTOM_ERROR
                  error_handler_params: 'The device does not support operation to retrieve serial number.'
              tags:
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: c64fafdc18654ad8adb984673142b614
              name: '[{#UUID}]: SM frequency'
              type: ZABBIX_ACTIVE
              key: 'nvml.device.sm.frequency["{#UUID}"]'
              units: Hz
              description: |
                Retrieves the current SM clock speed for the device.
                For Nvidia Fermi or newer fully supported devices.
              preprocessing:
                - type: MULTIPLIER
                  parameters:
                    - '1000000'
              tags:
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: 513cab732c7648ccb71a7401ebcaebc5
              name: '[{#UUID}]: Temperature'
              type: ZABBIX_ACTIVE
              key: 'nvml.device.temperature["{#UUID}"]'
              units: C
              description: |
                Retrieves the current temperature readings for the device, in degrees C.
                For Nvidia all products.
              tags:
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
              trigger_prototypes:
                - uuid: d325cc30ed2c4b539ce26844360077d0
                  expression: 'min(/Nvidia by Zabbix agent 2 active/nvml.device.temperature["{#UUID}"],3m) > {$NVIDIA.TEMPERATURE.CRIT}'
                  name: 'Nvidia: [{#UUID}]: Temperature exceeded critical threshold'
                  event_name: 'Nvidia: [{#UUID}]: Temperature ({ITEM.VALUE1}) exceeded critical threshold ({$NVIDIA.TEMPERATURE.CRIT} C)'
                  opdata: 'current value: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: '[{#UUID}]: Temperature is very high. It may indicate abnormal behavior/activity. Change corresponding macro in case of false-positive.'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: ac0086ae1f4f4dc4bef1dc84f56487f8
                  expression: 'min(/Nvidia by Zabbix agent 2 active/nvml.device.temperature["{#UUID}"],3m) > {$NVIDIA.TEMPERATURE.WARN}'
                  name: 'Nvidia: [{#UUID}]: Temperature exceeded warning threshold'
                  event_name: 'Nvidia: [{#UUID}]: Temperature ({ITEM.VALUE1}) exceeded warning threshold ({$NVIDIA.TEMPERATURE.WARN} C)'
                  opdata: 'current value: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: '[{#UUID}]: Temperature is high. It may indicate abnormal behavior/activity. Change corresponding macro in case of false-positive.'
                  dependencies:
                    - name: 'Nvidia: [{#UUID}]: Temperature exceeded critical threshold'
                      expression: 'min(/Nvidia by Zabbix agent 2 active/nvml.device.temperature["{#UUID}"],3m) > {$NVIDIA.TEMPERATURE.CRIT}'
                  tags:
                    - tag: scope
                      value: performance
            - uuid: 300507f6bcf8468387df8f8c25b37b49
              name: '[{#UUID}]: GPU utilization'
              type: DEPENDENT
              key: 'nvml.device.utilization.gpu["{#UUID}"]'
              units: '%'
              description: |
                Percentage of time over the past sampling period during which one or more kernels were running on the GPU.
                For Nvidia Fermi or newer fully supported devices.
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.device
              master_item:
                key: 'nvml.device.utilization["{#UUID}"]'
              tags:
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
              trigger_prototypes:
                - uuid: 57b043a2966647bea3aa39fe54a7eabf
                  expression: 'min(/Nvidia by Zabbix agent 2 active/nvml.device.utilization.gpu["{#UUID}"],3m) > {$NVIDIA.GPU.UTIL.CRIT}'
                  name: 'Nvidia: [{#UUID}]: GPU utilization exceeded critical threshold'
                  event_name: 'Nvidia: [{#UUID}]: GPU utilization ({ITEM.VALUE1}) exceeded critical threshold ({$NVIDIA.GPU.UTIL.CRIT} %)'
                  opdata: 'current value: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: '[{#UUID}]: GPU utilization is very high. It may indicate abnormal behavior/activity. Change corresponding macro in case of false-positive.'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: 26b8dfb41d2b4f11bdff7addca9eb166
                  expression: 'min(/Nvidia by Zabbix agent 2 active/nvml.device.utilization.gpu["{#UUID}"],3m) > {$NVIDIA.GPU.UTIL.WARN}'
                  name: 'Nvidia: [{#UUID}]: GPU utilization exceeded warning threshold'
                  event_name: 'Nvidia: [{#UUID}]: GPU utilization ({ITEM.VALUE1}) exceeded warning threshold ({$NVIDIA.GPU.UTIL.WARN} %)'
                  opdata: 'current value: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: '[{#UUID}]: GPU utilization is high. It may indicate abnormal behavior/activity. Change corresponding macro in case of false-positive.'
                  dependencies:
                    - name: 'Nvidia: [{#UUID}]: GPU utilization exceeded critical threshold'
                      expression: 'min(/Nvidia by Zabbix agent 2 active/nvml.device.utilization.gpu["{#UUID}"],3m) > {$NVIDIA.GPU.UTIL.CRIT}'
                  tags:
                    - tag: scope
                      value: performance
            - uuid: 7a629aeab4dd4f96995aa92882128eaa
              name: '[{#UUID}]: Memory utilization'
              type: DEPENDENT
              key: 'nvml.device.utilization.memory["{#UUID}"]'
              units: '%'
              description: |
                Percentage of time over the past sampling period during which global (device) memory was being read or written.
                For Nvidia Fermi or newer fully supported devices.
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.memory
              master_item:
                key: 'nvml.device.utilization["{#UUID}"]'
              tags:
                - tag: component
                  value: memory
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
              trigger_prototypes:
                - uuid: eae9828d46f94eb1afb70c924dbf160f
                  expression: 'min(/Nvidia by Zabbix agent 2 active/nvml.device.utilization.memory["{#UUID}"],3m) > {$NVIDIA.MEMORY.UTIL.CRIT}'
                  name: 'Nvidia: [{#UUID}]: Memory utilization exceeded critical threshold'
                  event_name: 'Nvidia: [{#UUID}]: Memory utilization ({ITEM.VALUE1}) exceeded critical threshold ({$NVIDIA.MEMORY.UTIL.CRIT} %)'
                  opdata: 'current value: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: '[{#UUID}]: Memory utilization is very high. It may indicate abnormal behavior/activity. Change corresponding macro in case of false-positive.'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: d099782589ec42e99219cce11b424515
                  expression: 'min(/Nvidia by Zabbix agent 2 active/nvml.device.utilization.memory["{#UUID}"],3m) > {$NVIDIA.MEMORY.UTIL.WARN}'
                  name: 'Nvidia: [{#UUID}]: Memory utilization exceeded warning threshold'
                  event_name: 'Nvidia: [{#UUID}]: Memory utilization ({ITEM.VALUE1}) exceeded warning threshold ({$NVIDIA.MEMORY.UTIL.WARN} %)'
                  opdata: 'current value: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: '[{#UUID}]: Memory utilization is high. It may indicate abnormal behavior/activity. Change corresponding macro in case of false-positive.'
                  dependencies:
                    - name: 'Nvidia: [{#UUID}]: Memory utilization exceeded critical threshold'
                      expression: 'min(/Nvidia by Zabbix agent 2 active/nvml.device.utilization.memory["{#UUID}"],3m) > {$NVIDIA.MEMORY.UTIL.CRIT}'
                  tags:
                    - tag: scope
                      value: performance
            - uuid: a573c6926e2b438ba124c824268bacc4
              name: '[{#UUID}]: Device utilization, get'
              type: ZABBIX_ACTIVE
              key: 'nvml.device.utilization["{#UUID}"]'
              history: '0'
              value_type: TEXT
              description: |
                Retrieves the current utilization rates for the device's major subsystems.
                For Nvidia Fermi or newer fully supported devices.
              tags:
                - tag: component
                  value: nvidia
                - tag: component
                  value: raw
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
            - uuid: 2cdebc61528440e58cd0df9a43851988
              name: '[{#UUID}]: Video frequency'
              type: ZABBIX_ACTIVE
              key: 'nvml.device.video.frequency["{#UUID}"]'
              units: Hz
              description: |
                Retrieves the current video encoder/decoder clock speed for the device.
                For Nvidia Fermi or newer fully supported devices.
              preprocessing:
                - type: MULTIPLIER
                  parameters:
                    - '1000000'
              tags:
                - tag: component
                  value: nvidia
                - tag: device
                  value: '{#NAME}'
                - tag: device
                  value: '{#UUID}'
          trigger_prototypes:
            - uuid: c7ab007be36f4766a1ee5973132e95c6
              expression: '(min(/Nvidia by Zabbix agent 2 active/nvml.device.power.usage["{#UUID}"],3m) * 100 / last(/Nvidia by Zabbix agent 2 active/nvml.device.power.limit["{#UUID}"])) > {$NVIDIA.POWER.UTIL.CRIT}'
              name: 'Nvidia: [{#UUID}]: Power usage exceeded critical threshold'
              event_name: 'Nvidia: [{#UUID}]: Power usage ({ITEM.VALUE1}) exceeded critical threshold ({$NVIDIA.POWER.UTIL.CRIT} %)'
              opdata: 'current value: {ITEM.LASTVALUE1}'
              priority: AVERAGE
              description: '[{#UUID}]: Power usage is very high. It may indicate abnormal behavior/activity. Change corresponding macro in case of false-positive.'
              tags:
                - tag: scope
                  value: performance
            - uuid: fe4707cde95c4075af78ad456c3b794e
              expression: '(min(/Nvidia by Zabbix agent 2 active/nvml.device.power.usage["{#UUID}"],3m) * 100 / last(/Nvidia by Zabbix agent 2 active/nvml.device.power.limit["{#UUID}"])) > {$NVIDIA.POWER.UTIL.WARN}'
              name: 'Nvidia: [{#UUID}]: Power usage exceeded warning threshold'
              event_name: 'Nvidia: [{#UUID}]: Power usage ({ITEM.VALUE1}) exceeded warning threshold ({$NVIDIA.POWER.UTIL.WARN} %)'
              opdata: 'current value: {ITEM.LASTVALUE1}'
              priority: WARNING
              description: '[{#UUID}]: Power usage is high. It may indicate abnormal behavior/activity. Change corresponding macro in case of false-positive.'
              dependencies:
                - name: 'Nvidia: [{#UUID}]: Power usage exceeded critical threshold'
                  expression: '(min(/Nvidia by Zabbix agent 2 active/nvml.device.power.usage["{#UUID}"],3m) * 100 / last(/Nvidia by Zabbix agent 2 active/nvml.device.power.limit["{#UUID}"])) > {$NVIDIA.POWER.UTIL.CRIT}'
              tags:
                - tag: scope
                  value: performance
          graph_prototypes:
            - uuid: a575db91d5e34a039b6b0550773d029c
              name: 'Nvidia: [{#UUID}]: BAR1 memory'
              type: STACKED
              ymax_type_1: ITEM
              ymax_item_1:
                host: 'Nvidia by Zabbix agent 2 active'
                key: 'nvml.device.memory.bar1.total["{#UUID}"]'
              graph_items:
                - color: FF0000
                  item:
                    host: 'Nvidia by Zabbix agent 2 active'
                    key: 'nvml.device.memory.bar1.used["{#UUID}"]'
                - sortorder: '1'
                  color: 76B900
                  item:
                    host: 'Nvidia by Zabbix agent 2 active'
                    key: 'nvml.device.memory.bar1.free["{#UUID}"]'
            - uuid: 5d1a493fa02d47e8b69a254d032d984d
              name: 'Nvidia: [{#UUID}]: Fan speed'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'Nvidia by Zabbix agent 2 active'
                    key: 'nvml.device.fan.speed.avg["{#UUID}"]'
            - uuid: 6e7b1aeee2cd4995a4c12eba47b7a489
              name: 'Nvidia: [{#UUID}]: FB memory'
              type: STACKED
              ymax_type_1: ITEM
              ymax_item_1:
                host: 'Nvidia by Zabbix agent 2 active'
                key: 'nvml.device.memory.fb.total["{#UUID}"]'
              graph_items:
                - color: FF0000
                  item:
                    host: 'Nvidia by Zabbix agent 2 active'
                    key: 'nvml.device.memory.fb.used["{#UUID}"]'
                - sortorder: '1'
                  color: FF8000
                  item:
                    host: 'Nvidia by Zabbix agent 2 active'
                    key: 'nvml.device.memory.fb.reserved["{#UUID}"]'
                - sortorder: '2'
                  color: 76B900
                  item:
                    host: 'Nvidia by Zabbix agent 2 active'
                    key: 'nvml.device.memory.fb.free["{#UUID}"]'
            - uuid: 360af5210fe14e408ed174bd50ef96b8
              name: 'Nvidia: [{#UUID}]: Memory ECC errors'
              graph_items:
                - color: 76B900
                  item:
                    host: 'Nvidia by Zabbix agent 2 active'
                    key: 'nvml.device.errors.memory.corrected["{#UUID}"]'
                - sortorder: '1'
                  color: FF0000
                  item:
                    host: 'Nvidia by Zabbix agent 2 active'
                    key: 'nvml.device.errors.memory.uncorrected["{#UUID}"]'
            - uuid: fbf7220f6e1a4cc2b4409dff7ba183b3
              name: 'Nvidia: [{#UUID}]: PCIe utilization'
              graph_items:
                - color: FF0000
                  item:
                    host: 'Nvidia by Zabbix agent 2 active'
                    key: 'nvml.device.pci.utilization.rx.rate["{#UUID}"]'
                - sortorder: '1'
                  color: 0040FF
                  item:
                    host: 'Nvidia by Zabbix agent 2 active'
                    key: 'nvml.device.pci.utilization.tx.rate["{#UUID}"]'
            - uuid: 237635b29c6a4a9d919b15879c78e34c
              name: 'Nvidia: [{#UUID}]: Performance state'
              yaxismax: '15'
              ymin_type_1: FIXED
              ymax_type_1: FIXED
              graph_items:
                - color: 199C0D
                  item:
                    host: 'Nvidia by Zabbix agent 2 active'
                    key: 'nvml.device.performance.state["{#UUID}"]'
            - uuid: 9511ce8b654748fea58c3494c2658121
              name: 'Nvidia: [{#UUID}]: Power usage'
              ymax_type_1: ITEM
              ymax_item_1:
                host: 'Nvidia by Zabbix agent 2 active'
                key: 'nvml.device.power.limit["{#UUID}"]'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'Nvidia by Zabbix agent 2 active'
                    key: 'nvml.device.power.usage["{#UUID}"]'
            - uuid: f42dcd4d79e54db09055bf2e0d8995cf
              name: 'Nvidia: [{#UUID}]: Register file errors'
              graph_items:
                - color: 76B900
                  item:
                    host: 'Nvidia by Zabbix agent 2 active'
                    key: 'nvml.device.errors.register.corrected["{#UUID}"]'
                - sortorder: '1'
                  color: FF0000
                  item:
                    host: 'Nvidia by Zabbix agent 2 active'
                    key: 'nvml.device.errors.register.uncorrected["{#UUID}"]'
          master_item:
            key: nvml.device.get
          lld_macro_paths:
            - lld_macro: '{#NAME}'
              path: $.device_name
            - lld_macro: '{#UUID}'
              path: $.device_uuid
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
      tags:
        - tag: class
          value: hardware
        - tag: target
          value: nvidia
      macros:
        - macro: '{$NVIDIA.DECODER.UTIL.CRIT}'
          value: '90'
          description: 'Critical threshold for decoder utilization, in %.'
          config:
            type: TEXT
            priority: '6'
            section_name: Thresholds
            label: 'Decoder utilization critical threshold (%)'
            description: 'Critical threshold for decoder utilization, in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$NVIDIA.DECODER.UTIL.WARN}'
          value: '80'
          description: 'Warning threshold for decoder utilization, in %.'
          config:
            type: TEXT
            priority: '5'
            section_name: Thresholds
            label: 'Decoder utilization warning threshold (%)'
            description: 'Warning threshold for decoder utilization, in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$NVIDIA.ENCODER.UTIL.CRIT}'
          value: '90'
          description: 'Critical threshold for encoder utilization, in %.'
          config:
            type: TEXT
            priority: '4'
            section_name: Thresholds
            label: 'Encoder utilization critical threshold (%)'
            description: 'Critical threshold for encoder utilization, in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$NVIDIA.ENCODER.UTIL.WARN}'
          value: '80'
          description: 'Warning threshold for encoder utilization, in %.'
          config:
            type: TEXT
            priority: '3'
            section_name: Thresholds
            label: 'Encoder utilization warning threshold (%)'
            description: 'Warning threshold for encoder utilization, in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$NVIDIA.FAN.SPEED.CRIT}'
          value: '90'
          description: 'Critical threshold for fan speed, in %.'
          config:
            type: TEXT
            priority: '10'
            section_name: Thresholds
            label: 'Fan speed critical threshold (%)'
            description: 'Critical threshold for fan speed, in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$NVIDIA.FAN.SPEED.WARN}'
          value: '80'
          description: 'Warning threshold for fan speed, in %.'
          config:
            type: TEXT
            priority: '9'
            section_name: Thresholds
            label: 'Fan speed warning threshold (%)'
            description: 'Warning threshold for fan speed, in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$NVIDIA.GPU.UTIL.CRIT}'
          value: '90'
          description: 'Critical threshold for overall GPU utilization, in %.'
          config:
            type: TEXT
            priority: '2'
            section_name: Thresholds
            label: 'GPU overall utilization critical threshold (%)'
            description: 'Critical threshold for overall GPU utilization, in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$NVIDIA.GPU.UTIL.WARN}'
          value: '80'
          description: 'Warning threshold for overall GPU utilization, in %.'
          config:
            type: TEXT
            priority: '1'
            section_name: Thresholds
            label: 'GPU overall utilization warning threshold (%)'
            description: 'Warning threshold for overall GPU utilization, in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$NVIDIA.MEMORY.UTIL.CRIT}'
          value: '90'
          description: 'Critical threshold for memory utilization, in %.'
          config:
            type: TEXT
            priority: '8'
            section_name: Thresholds
            label: 'Memory utilization critical threshold (%)'
            description: 'Critical threshold for memory utilization, in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$NVIDIA.MEMORY.UTIL.WARN}'
          value: '80'
          description: 'Warning threshold for memory utilization, in %.'
          config:
            type: TEXT
            priority: '7'
            section_name: Thresholds
            label: 'Memory utilization warning threshold (%)'
            description: 'Warning threshold for memory utilization, in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$NVIDIA.NAME.MATCHES}'
          value: '.*'
          description: 'Filter to include GPUs by name in discovery.'
          config:
            type: TEXT
            priority: '15'
            section_name: Filters
            label: 'GPU name filter (include)'
            description: 'Filter to include GPUs by name in discovery.'
        - macro: '{$NVIDIA.NAME.NOT_MATCHES}'
          value: 'CHANGE IF NEEDED'
          description: 'Filter to exclude GPUs by name in discovery.'
          config:
            type: TEXT
            priority: '16'
            section_name: Filters
            label: 'GPU name filter (exclude)'
            description: 'Filter to exclude GPUs by name in discovery.'
        - macro: '{$NVIDIA.POWER.UTIL.CRIT}'
          value: '90'
          description: 'Critical threshold for power usage, in %.'
          config:
            type: TEXT
            priority: '14'
            section_name: Thresholds
            label: 'Power usage critical threshold (%)'
            description: 'Critical threshold for power usage, in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$NVIDIA.POWER.UTIL.WARN}'
          value: '80'
          description: 'Warning threshold for power usage, in %.'
          config:
            type: TEXT
            priority: '13'
            section_name: Thresholds
            label: 'Power usage warning threshold (%)'
            description: 'Warning threshold for power usage, in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$NVIDIA.TEMPERATURE.CRIT}'
          value: '90'
          description: 'Critical threshold for temperature, in %.'
          config:
            type: TEXT
            priority: '12'
            section_name: Thresholds
            label: 'Temperature critical threshold (%)'
            description: 'Critical threshold for temperature, in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$NVIDIA.TEMPERATURE.WARN}'
          value: '80'
          description: 'Warning threshold for temperature, in %.'
          config:
            type: TEXT
            priority: '11'
            section_name: Thresholds
            label: 'Temperature warning threshold (%)'
            description: 'Warning threshold for temperature, in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$NVIDIA.UUID.MATCHES}'
          value: '.*'
          description: 'Filter to include GPUs by UUID in discovery.'
          config:
            type: TEXT
            priority: '17'
            section_name: Filters
            label: 'GPU UUID filter (include)'
            description: 'Filter to include GPUs by UUID in discovery.'
        - macro: '{$NVIDIA.UUID.NOT_MATCHES}'
          value: 'CHANGE IF NEEDED'
          description: 'Filter to exclude GPUs by UUID in discovery.'
          config:
            type: TEXT
            priority: '18'
            section_name: Filters
            label: 'GPU UUID filter (exclude)'
            description: 'Filter to exclude GPUs by UUID in discovery.'
      dashboards:
        - uuid: 1ef8fd9fdd364f4bae8c57a1d309a4c8
          name: 'Nvidia: Overview'
          pages:
            - name: Summary
              widgets:
                - type: svggraph
                  name: 'GPU utilization'
                  width: '36'
                  height: '6'
                  fields:
                    - type: INTEGER
                      name: ds.0.fill
                      value: '0'
                    - type: STRING
                      name: ds.0.items.0
                      value: '*GPU utilization*'
                    - type: INTEGER
                      name: ds.0.missingdatafunc
                      value: '1'
                    - type: INTEGER
                      name: ds.0.transparency
                      value: '1'
                    - type: INTEGER
                      name: ds.0.width
                      value: '3'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: EBEFB
                - type: svggraph
                  name: Temperature
                  'y': '6'
                  width: '36'
                  height: '6'
                  fields:
                    - type: INTEGER
                      name: ds.0.fill
                      value: '0'
                    - type: STRING
                      name: ds.0.items.0
                      value: '*Temperature*'
                    - type: INTEGER
                      name: ds.0.missingdatafunc
                      value: '1'
                    - type: INTEGER
                      name: ds.0.transparency
                      value: '1'
                    - type: INTEGER
                      name: ds.0.width
                      value: '3'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: ECEEB
                - type: svggraph
                  name: 'Memory utilization'
                  x: '36'
                  width: '36'
                  height: '6'
                  fields:
                    - type: INTEGER
                      name: ds.0.fill
                      value: '0'
                    - type: STRING
                      name: ds.0.items.0
                      value: '*Memory utilization*'
                    - type: INTEGER
                      name: ds.0.missingdatafunc
                      value: '1'
                    - type: INTEGER
                      name: ds.0.transparency
                      value: '1'
                    - type: INTEGER
                      name: ds.0.width
                      value: '3'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: EBEEB
                - type: svggraph
                  name: 'Power usage'
                  x: '36'
                  'y': '6'
                  width: '36'
                  height: '6'
                  fields:
                    - type: INTEGER
                      name: ds.0.fill
                      value: '0'
                    - type: STRING
                      name: ds.0.items.0
                      value: '*Power usage*'
                    - type: INTEGER
                      name: ds.0.missingdatafunc
                      value: '1'
                    - type: INTEGER
                      name: ds.0.transparency
                      value: '1'
                    - type: INTEGER
                      name: ds.0.width
                      value: '3'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: ECEDB
            - name: Frequencies
              widgets:
                - type: svggraph
                  name: 'SM frequency'
                  width: '36'
                  height: '6'
                  fields:
                    - type: INTEGER
                      name: ds.0.fill
                      value: '0'
                    - type: STRING
                      name: ds.0.items.0
                      value: '*SM frequency*'
                    - type: INTEGER
                      name: ds.0.missingdatafunc
                      value: '1'
                    - type: INTEGER
                      name: ds.0.transparency
                      value: '1'
                    - type: INTEGER
                      name: ds.0.width
                      value: '3'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: DCBFA
                - type: svggraph
                  name: 'Video frequency'
                  'y': '6'
                  width: '36'
                  height: '6'
                  fields:
                    - type: INTEGER
                      name: ds.0.fill
                      value: '0'
                    - type: STRING
                      name: ds.0.items.0
                      value: '*Video frequency*'
                    - type: INTEGER
                      name: ds.0.missingdatafunc
                      value: '1'
                    - type: INTEGER
                      name: ds.0.transparency
                      value: '1'
                    - type: INTEGER
                      name: ds.0.width
                      value: '3'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: FCACC
                - type: svggraph
                  name: 'Graphics frequency'
                  x: '36'
                  width: '36'
                  height: '6'
                  fields:
                    - type: INTEGER
                      name: ds.0.fill
                      value: '0'
                    - type: STRING
                      name: ds.0.items.0
                      value: '*Graphics frequency*'
                    - type: INTEGER
                      name: ds.0.missingdatafunc
                      value: '1'
                    - type: INTEGER
                      name: ds.0.transparency
                      value: '1'
                    - type: INTEGER
                      name: ds.0.width
                      value: '3'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: ADAEE
                - type: svggraph
                  name: 'Memory frequency'
                  x: '36'
                  'y': '6'
                  width: '36'
                  height: '6'
                  fields:
                    - type: INTEGER
                      name: ds.0.fill
                      value: '0'
                    - type: STRING
                      name: ds.0.items.0
                      value: '*Memory frequency*'
                    - type: INTEGER
                      name: ds.0.missingdatafunc
                      value: '1'
                    - type: INTEGER
                      name: ds.0.transparency
                      value: '1'
                    - type: INTEGER
                      name: ds.0.width
                      value: '3'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: DAEBE
            - name: 'Memory errors'
              widgets:
                - type: svggraph
                  name: 'Memory ECC errors, corrected'
                  width: '36'
                  height: '6'
                  fields:
                    - type: INTEGER
                      name: ds.0.fill
                      value: '0'
                    - type: STRING
                      name: ds.0.items.0
                      value: '*Memory ECC errors, corrected*'
                    - type: INTEGER
                      name: ds.0.transparency
                      value: '1'
                    - type: INTEGER
                      name: ds.0.width
                      value: '3'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: ECBFB
                - type: svggraph
                  name: 'Register file Errors, corrected'
                  'y': '6'
                  width: '36'
                  height: '6'
                  fields:
                    - type: INTEGER
                      name: ds.0.fill
                      value: '0'
                    - type: STRING
                      name: ds.0.items.0
                      value: '*Register file errors, corrected*'
                    - type: INTEGER
                      name: ds.0.transparency
                      value: '1'
                    - type: INTEGER
                      name: ds.0.width
                      value: '3'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: ECBFF
                - type: svggraph
                  name: 'Memory ECC errors, uncorrected'
                  x: '36'
                  width: '36'
                  height: '6'
                  fields:
                    - type: INTEGER
                      name: ds.0.fill
                      value: '0'
                    - type: STRING
                      name: ds.0.items.0
                      value: '*Memory ECC errors, uncorrected*'
                    - type: INTEGER
                      name: ds.0.transparency
                      value: '1'
                    - type: INTEGER
                      name: ds.0.width
                      value: '3'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: EABFF
                - type: svggraph
                  name: 'Register file Errors, uncorrected'
                  x: '36'
                  'y': '6'
                  width: '36'
                  height: '6'
                  fields:
                    - type: INTEGER
                      name: ds.0.fill
                      value: '0'
                    - type: STRING
                      name: ds.0.items.0
                      value: '*Register file errors, uncorrected*'
                    - type: INTEGER
                      name: ds.0.transparency
                      value: '1'
                    - type: INTEGER
                      name: ds.0.width
                      value: '3'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: ECBFA
            - name: 'Memory, PCI, fan'
              widgets:
                - type: graphprototype
                  name: 'BAR1 memory'
                  width: '36'
                  height: '6'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'Nvidia by Zabbix agent 2 active'
                        name: 'Nvidia: [{#UUID}]: BAR1 memory'
                    - type: STRING
                      name: reference
                      value: DCBFB
                - type: graphprototype
                  name: 'PCIe utilization'
                  'y': '6'
                  width: '36'
                  height: '6'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'Nvidia by Zabbix agent 2 active'
                        name: 'Nvidia: [{#UUID}]: PCIe utilization'
                    - type: STRING
                      name: reference
                      value: ACECA
                - type: graphprototype
                  name: 'FB memory'
                  x: '36'
                  width: '36'
                  height: '6'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'Nvidia by Zabbix agent 2 active'
                        name: 'Nvidia: [{#UUID}]: FB memory'
                    - type: STRING
                      name: reference
                      value: ACDCA
                - type: graphprototype
                  name: 'Fan speed'
                  x: '36'
                  'y': '6'
                  width: '36'
                  height: '6'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'Nvidia by Zabbix agent 2 active'
                        name: 'Nvidia: [{#UUID}]: Fan speed'
                    - type: STRING
                      name: reference
                      value: ACFCA
            - name: Encoders
              widgets:
                - type: svggraph
                  name: 'Encoder utilization'
                  width: '36'
                  height: '6'
                  fields:
                    - type: INTEGER
                      name: ds.0.fill
                      value: '0'
                    - type: STRING
                      name: ds.0.items.0
                      value: '*Encoder utilization*'
                    - type: INTEGER
                      name: ds.0.transparency
                      value: '1'
                    - type: INTEGER
                      name: ds.0.width
                      value: '3'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: ECAFB
                - type: svggraph
                  name: 'Encoder average FPS'
                  'y': '6'
                  width: '36'
                  height: '6'
                  fields:
                    - type: INTEGER
                      name: ds.0.fill
                      value: '0'
                    - type: STRING
                      name: ds.0.items.0
                      value: '*Encoder average FPS*'
                    - type: INTEGER
                      name: ds.0.transparency
                      value: '1'
                    - type: INTEGER
                      name: ds.0.width
                      value: '3'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: ECFFF
                - type: svggraph
                  name: 'Encoder sessions'
                  x: '36'
                  width: '36'
                  height: '6'
                  fields:
                    - type: INTEGER
                      name: ds.0.fill
                      value: '0'
                    - type: STRING
                      name: ds.0.items.0
                      value: '*Encoder sessions*'
                    - type: INTEGER
                      name: ds.0.transparency
                      value: '1'
                    - type: INTEGER
                      name: ds.0.width
                      value: '3'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: ECAFF
                - type: svggraph
                  name: 'Encoder average latency'
                  x: '36'
                  'y': '6'
                  width: '36'
                  height: '6'
                  fields:
                    - type: INTEGER
                      name: ds.0.fill
                      value: '0'
                    - type: STRING
                      name: ds.0.items.0
                      value: '*Encoder average latency*'
                    - type: INTEGER
                      name: ds.0.transparency
                      value: '1'
                    - type: INTEGER
                      name: ds.0.width
                      value: '3'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: ECFFA
      valuemaps:
        - uuid: 6893a941192a4513ab24b20b0885b27e
          name: 'Performance state'
          mappings:
            - value: '0'
              newvalue: Maximum
            - type: IN_RANGE
              value: 1-4
              newvalue: High
            - type: IN_RANGE
              value: 5-10
              newvalue: Average
            - type: IN_RANGE
              value: 11-14
              newvalue: Low
            - value: '15'
              newvalue: Minimum
            - value: '32'
              newvalue: Unknown
    - uuid: 0f6889282f6048e2b1370e569e578985
      template: 'OS processes by Zabbix agent'
      name: 'OS processes by Zabbix agent'
      description: |
        Get processes metrics using item proc.get by Zabbix agent.
        
        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
        
        This template is designed to monitor processes by Zabbix that work without any external scripts.
        Most of the metrics are collected in one go, thanks to Zabbix bulk data collection.
        For example, by specifying "zabbix" as host wizard configuration field value, you can monitor all zabbix processes.
        
        ## Setup
        
        Install and setup [Zabbix agent](https://www.zabbix.com/documentation/8.0/manual/installation/install_from_packages).
        
        Custom processes set in host wizard configuration fields:
        
        - Processes name filter (include)
        - Processes name filter (exclude)
      vendor:
        name: Zabbix
        version: 8.0-1
      groups:
        - name: Templates/Applications
      items:
        - uuid: 803390429cf949d3b8439dd5dd71c706
          name: 'Get process summary'
          key: 'proc.get[,,,summary]'
          history: '0'
          value_type: TEXT
          description: 'The summary of data metrics for all processes.'
          tags:
            - tag: component
              value: raw
      discovery_rules:
        - uuid: 7c0e8b719d0e464f92ee42a3da75b682
          name: 'Processes discovery'
          type: DEPENDENT
          key: custom.proc.discovery
          filter:
            evaltype: AND
            conditions:
              - macro: '{#NAME}'
                value: '{$PROC.NAME.MATCHES}'
              - macro: '{#NAME}'
                value: '{$PROC.NAME.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#VMEM}'
                value: '-1'
                operator: NOT_MATCHES_REGEX
          description: 'Discovery of OS summary processes.'
          item_prototypes:
            - uuid: 2e9b31e2b47741f4b35c5d15f33378ea
              name: 'Process [{#NAME}]: Get data'
              type: DEPENDENT
              key: 'custom.proc.get[{#NAME}]'
              history: '0'
              value_type: TEXT
              description: 'Summary metrics collected during the process {#NAME}.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[?(@["name"]=="{#NAME}")].first()'
                  error_handler: CUSTOM_VALUE
                  error_handler_params: 'Failed to retrieve process {#NAME} data'
              master_item:
                key: 'proc.get[,,,summary]'
              tags:
                - tag: component
                  value: raw
                - tag: process
                  value: '{#NAME}'
            - uuid: 822ffda22eb042b89fc50b212aab133f
              name: 'Process [{#NAME}]: Size of locked memory'
              type: DEPENDENT
              key: 'custom.proc.mem.locked[{#NAME}]'
              value_type: FLOAT
              units: B
              description: 'The size of locked memory {#NAME}.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.lck
                  error_handler: DISCARD_VALUE
              master_item:
                key: 'custom.proc.get[{#NAME}]'
              tags:
                - tag: component
                  value: memory
                - tag: process
                  value: '{#NAME}'
            - uuid: 0bb7d924b8814c42a494d8a3baf48a59
              name: 'Process [{#NAME}]: Number of running processes'
              type: DEPENDENT
              key: 'custom.proc.num[{#NAME}]'
              description: 'The number of running processes {#NAME}.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.processes
                  error_handler: CUSTOM_VALUE
                  error_handler_params: '0'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: 'custom.proc.get[{#NAME}]'
              tags:
                - tag: component
                  value: system
                - tag: process
                  value: '{#NAME}'
              trigger_prototypes:
                - uuid: 66294f983a134a1e81165878f30d3ebc
                  expression: 'last(/OS processes by Zabbix agent/custom.proc.num[{#NAME}])=0'
                  name: 'OS: Process [{#NAME}]: Process is not running'
                  priority: HIGH
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: availability
            - uuid: abccdac17c7e4b549fcfe70ceeedeb9b
              name: 'Process [{#NAME}]: Number of page faults'
              type: DEPENDENT
              key: 'custom.proc.page[{#NAME}]'
              description: 'The number of page faults {#NAME}.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.page_faults
                  error_handler: DISCARD_VALUE
              master_item:
                key: 'custom.proc.get[{#NAME}]'
              tags:
                - tag: component
                  value: system
                - tag: process
                  value: '{#NAME}'
            - uuid: 4ffd202fb6044b819f6f28dc866ca8f1
              name: 'Process [{#NAME}]: Memory usage, %'
              type: DEPENDENT
              key: 'custom.proc.pmem[{#NAME}]'
              value_type: FLOAT
              units: '%'
              description: 'The percentage of real memory used by the process {#NAME}.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.pmem
                  error_handler: DISCARD_VALUE
              master_item:
                key: 'custom.proc.get[{#NAME}]'
              tags:
                - tag: component
                  value: memory
                - tag: process
                  value: '{#NAME}'
            - uuid: 7e573e38bce04167bc37712c0a3e2194
              name: 'Process [{#NAME}]: Memory usage (rss)'
              type: DEPENDENT
              key: 'custom.proc.rss[{#NAME}]'
              value_type: FLOAT
              units: B
              description: 'The summary of Resident Set Size (RSS) memory used by the process {#NAME} in bytes.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.rss
                  error_handler: DISCARD_VALUE
              master_item:
                key: 'custom.proc.get[{#NAME}]'
              tags:
                - tag: component
                  value: memory
                - tag: process
                  value: '{#NAME}'
            - uuid: 12370d3b25024d2189cddba8d3b23938
              name: 'Process [{#NAME}]: Swap space used'
              type: DEPENDENT
              key: 'custom.proc.swap[{#NAME}]'
              value_type: FLOAT
              units: B
              description: 'The swap space used by {#NAME}.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.swap
                  error_handler: DISCARD_VALUE
              master_item:
                key: 'custom.proc.get[{#NAME}]'
              tags:
                - tag: component
                  value: memory
                - tag: process
                  value: '{#NAME}'
            - uuid: a7265ca1b1d2463294e26d80fe075639
              name: 'Process [{#NAME}]: Number of threads'
              type: DEPENDENT
              key: 'custom.proc.thread[{#NAME}]'
              description: 'The number of threads {#NAME}.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.threads
                  error_handler: DISCARD_VALUE
              master_item:
                key: 'custom.proc.get[{#NAME}]'
              tags:
                - tag: component
                  value: system
                - tag: process
                  value: '{#NAME}'
            - uuid: c1b9b1d8f28947589e46041690899100
              name: 'Process [{#NAME}]: Memory usage (vsize)'
              type: DEPENDENT
              key: 'custom.proc.vmem[{#NAME}]'
              value_type: FLOAT
              units: B
              description: 'The summary of virtual memory used by process {#NAME} in bytes.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.vsize
                  error_handler: DISCARD_VALUE
              master_item:
                key: 'custom.proc.get[{#NAME}]'
              tags:
                - tag: component
                  value: memory
                - tag: process
                  value: '{#NAME}'
          graph_prototypes:
            - uuid: b8f5b539152445fdbadbfba92adad1bf
              name: 'Process [{#NAME}]: Memory usage'
              graph_items:
                - drawtype: BOLD_LINE
                  color: 199C0D
                  item:
                    host: 'OS processes by Zabbix agent'
                    key: 'custom.proc.vmem[{#NAME}]'
                - sortorder: '1'
                  drawtype: BOLD_LINE
                  color: F63100
                  item:
                    host: 'OS processes by Zabbix agent'
                    key: 'custom.proc.rss[{#NAME}]'
          master_item:
            key: 'proc.get[,,,summary]'
          lld_macro_paths:
            - lld_macro: '{#NAME}'
              path: $.name
            - lld_macro: '{#VMEM}'
              path: $.vsize
      tags:
        - tag: class
          value: software
        - tag: target
          value: process
      macros:
        - macro: '{$PROC.NAME.MATCHES}'
          value: '<CHANGE VALUE>'
          description: 'This macro is used in the discovery of processes. It can be overridden on a host-level or on a linked template-level.'
          config:
            type: TEXT
            priority: '1'
            section_name: Filters
            label: 'Processes name filter (include)'
            description: 'This macro is used in the discovery of processes. It can be overridden on a host-level or on a linked template-level.'
        - macro: '{$PROC.NAME.NOT_MATCHES}'
          value: '<CHANGE VALUE>'
          description: 'This macro is used in the discovery of processes. It can be overridden on a host-level or on a linked template-level.'
          config:
            type: TEXT
            priority: '2'
            section_name: Filters
            label: 'Processes name filter (exclude)'
            description: 'This macro is used in the discovery of processes. It can be overridden on a host-level or on a linked template-level.'
    - uuid: 399bd1ee587245ecac6f39beaa99886f
      template: 'PostgreSQL by Zabbix agent'
      name: 'PostgreSQL by Zabbix agent'
      description: |
        This template is designed for the deployment of PostgreSQL monitoring by Zabbix via Zabbix agent and uses user parameters to run SQL queries with the `psql` command-line tool.
        
        Note:
        - The template requires `pg_isready` and `psql` utilities to be installed on the same host with Zabbix agent.
        - The template requires files with SQL queries and user parameters that can be found in the Zabbix official repository:
        https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/db/postgresql?at=refs%2Fheads%2Frelease%2F6.0
        
        Setup:
        
        1. Deploy Zabbix agent and create the PostgreSQL user for monitoring (`<password>` at your discretion) with proper access rights to your PostgreSQL instance.
        
        For PostgreSQL version 10 and above:
        CREATE USER zbx_monitor WITH PASSWORD '<PASSWORD>' INHERIT;
        GRANT pg_monitor TO zbx_monitor;
        
        For PostgreSQL version 9.6 and below:
        CREATE USER zbx_monitor WITH PASSWORD '<PASSWORD>';
        GRANT SELECT ON pg_stat_database TO zbx_monitor;
        ALTER USER zbx_monitor WITH SUPERUSER;
        
        2. Copy the `postgresql/` directory to the `zabbix` user home directory - `/var/lib/zabbix/`. The `postgresql/` directory contains the files with SQL queries needed to obtain metrics from PostgreSQL instance.
        
        If the home directory of the `zabbix` user doesn't exist, create it first:
        mkdir -m u=rwx,g=rwx,o= -p /var/lib/zabbix
        chown zabbix:zabbix /var/lib/zabbix
        
        3. Copy the `template_db_postgresql.conf` file, containing user parameters, to the Zabbix agent configuration directory `/etc/zabbix/zabbix_agentd.d/` and restart Zabbix agent service.
        
        If you want to use SSL/TLS encryption to protect communications with the remote PostgreSQL instance, you can modify the connection string in user parameters. For example, to enable required encryption in transport mode without identity checks you could append `?sslmode=required` to the end of the connection string for all keys that use `psql`:
        UserParameter=pgsql.bgwriter[*], psql -qtAX postgresql://"$3":"$4"@"$1":"$2"/"$5"?sslmode=required -f "/var/lib/zabbix/postgresql/pgsql.bgwriter.sql"
        
        Consult the PostgreSQL documentation about protection modes (https://www.postgresql.org/docs/current/libpq-ssl.html#LIBPQ-SSL-PROTECTION) and client connection parameters (https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNECT-SSLMODE).
        
        Also, it is assumed that you set up the PostgreSQL instance to work in the desired encryption mode. Check the PostgreSQL documentation (https://www.postgresql.org/docs/current/ssl-tcp.html) for details.
        
        4. Edit the `pg_hba.conf` configuration file to allow connections for the user `zbx_monitor`. You can check the PostgreSQL documentation for examples (https://www.postgresql.org/docs/current/auth-pg-hba-conf.html).
        
        5. Specify the host name or IP address in the `{$PG.HOST}` macro. Adjust the port number with `{$PG.PORT}` macro if needed.
        
        6. Set the password that you specified in step 1 in the macro `{$PG.PASSWORD}`.
        
        You can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/384190-%C2%A0discussion-thread-for-official-zabbix-template-db-postgresql
        
        Generated by official Zabbix template tool "Templator"
      wizard_ready: 'YES'
      readme: |
        ## Overview
        
        This template is designed for the deployment of PostgreSQL monitoring by Zabbix via Zabbix agent and uses user parameters to run SQL queries with the `psql` command-line tool.
        
        ## Setup
        
        **Note:**
        - The template requires `pg_isready` and `psql` utilities to be installed on the same host with Zabbix agent.
        
        1. Create the PostgreSQL user for monitoring (`<password>` at your discretion) with proper access rights to your PostgreSQL instance.
        
        For PostgreSQL version 10 and above:
        
        ```sql
        CREATE USER zbx_monitor WITH PASSWORD '<PASSWORD>' INHERIT;
        GRANT pg_monitor TO zbx_monitor;
        ```
        
        For PostgreSQL version 9.6 and below:
        
        ```sql
        CREATE USER zbx_monitor WITH PASSWORD '<PASSWORD>';
        GRANT SELECT ON pg_stat_database TO zbx_monitor;
        
        -- To collect WAL metrics, the user must have a `superuser` role.
        ALTER USER zbx_monitor WITH SUPERUSER;
        ```
        
        2. Copy the `postgresql/` directory to the `zabbix` user home directory - `/var/lib/zabbix/`. The `postgresql/` directory contains the files with SQL queries needed to obtain metrics from PostgreSQL instance.
        
        If the home directory of the `zabbix` user doesn't exist, create it first:
        
        ```bash
        mkdir -m u=rwx,g=rwx,o= -p /var/lib/zabbix
        chown zabbix:zabbix /var/lib/zabbix
        ```
        
        3. Copy the `template_db_postgresql.conf` file, containing user parameters, to the Zabbix agent configuration directory `/etc/zabbix/zabbix_agentd.d/` and restart Zabbix agent service.
        
        **Note:** if you want to use SSL/TLS encryption to protect communications with the remote PostgreSQL instance, you can modify the connection string in user parameters. For example, to enable required encryption in transport mode without identity checks you could append `?sslmode=required` to the end of the connection string for all keys that use `psql`:
        
        ```bash
        UserParameter=pgsql.bgwriter[*], psql -qtAX postgresql://"$3":"$4"@"$1":"$2"/"$5"?sslmode=required -f "/var/lib/zabbix/postgresql/pgsql.bgwriter.sql"
        ```
        
        Consult the PostgreSQL documentation about [`protection modes`](https://www.postgresql.org/docs/current/libpq-ssl.html#LIBPQ-SSL-PROTECTION) and [`client connection parameters`](https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNECT-SSLMODE).
        
        Also, it is assumed that you set up the PostgreSQL instance to work in the desired encryption mode. Check the [`PostgreSQL documentation`](https://www.postgresql.org/docs/current/ssl-tcp.html) for details.
        
        4. Edit the `pg_hba.conf` configuration file to allow connections for the user `zbx_monitor`. For example, you could add one of the following rows to allow local TCP connections from the same host:
        
        ```bash
        # TYPE  DATABASE        USER            ADDRESS                 METHOD
          host       all        zbx_monitor     localhost               trust
          host       all        zbx_monitor     127.0.0.1/32            md5
          host       all        zbx_monitor     ::1/128                 scram-sha-256
        ```
        
        For more information please read the PostgreSQL documentation `https://www.postgresql.org/docs/current/auth-pg-hba-conf.html`.
        
        5. Specify the host name or IP address in the `PostgreSQL host` host wizard configuration field. Adjust the port number in the `PostgreSQL port` field if needed.
        
        6. Set the password that you specified in step 1 in the `PostgreSQL user password` field.
      vendor:
        name: Zabbix
        version: 8.0-0
      groups:
        - name: Templates/Databases
      items:
        - uuid: d17c6c15154d40d1afa5b1eafb2ed93e
          name: 'Bgwriter: Buffers allocated per second'
          type: DEPENDENT
          key: pgsql.bgwriter.buffers_alloc.rate
          value_type: FLOAT
          description: 'Number of buffers allocated per second.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.buffers_alloc
            - type: CHANGE_PER_SECOND
          master_item:
            key: 'pgsql.bgwriter["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
          tags:
            - tag: component
              value: bgwriter
        - uuid: 2c3ee691d4a54fb6b566739a3a648df4
          name: 'Bgwriter: Buffers written directly by a backend per second'
          type: DEPENDENT
          key: pgsql.bgwriter.buffers_backend.rate
          value_type: FLOAT
          description: 'Number of buffers written directly by a backend per second. Available in PostgreSQL versions prior to 17.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.buffers_backend
              error_handler: DISCARD_VALUE
            - type: CHANGE_PER_SECOND
          master_item:
            key: 'pgsql.bgwriter["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
          tags:
            - tag: component
              value: bgwriter
        - uuid: 77e1eb202a6346ce9df0f1bb2c078688
          name: 'Bgwriter: Times a backend executed its own fsync per second'
          type: DEPENDENT
          key: pgsql.bgwriter.buffers_backend_fsync.rate
          value_type: FLOAT
          description: 'Number of times a backend had to execute its own fsync call per second (normally the background writer handles those even when the backend does its own write). Available in PostgreSQL versions prior to 17.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.buffers_backend_fsync
              error_handler: DISCARD_VALUE
            - type: CHANGE_PER_SECOND
          master_item:
            key: 'pgsql.bgwriter["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
          tags:
            - tag: component
              value: bgwriter
        - uuid: e29d26a48d0143579bf3acc6655cd659
          name: 'Checkpoint: Buffers written during checkpoints per second'
          type: DEPENDENT
          key: pgsql.bgwriter.buffers_checkpoint.rate
          value_type: FLOAT
          description: 'Number of buffers written during checkpoints per second.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.buffers_checkpoint
            - type: CHANGE_PER_SECOND
          master_item:
            key: 'pgsql.bgwriter["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
          tags:
            - tag: component
              value: bgwriter
        - uuid: 5151183461a54d2bbfaad04b8cab3798
          name: 'Checkpoint: Buffers written by the background writer per second'
          type: DEPENDENT
          key: pgsql.bgwriter.buffers_clean.rate
          value_type: FLOAT
          description: 'Number of buffers written by the background writer per second.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.buffers_clean
            - type: CHANGE_PER_SECOND
          master_item:
            key: 'pgsql.bgwriter["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
          tags:
            - tag: component
              value: bgwriter
        - uuid: ff290c0602b9447e87240c1ecf467050
          name: 'Checkpoint: Requested per second'
          type: DEPENDENT
          key: pgsql.bgwriter.checkpoints_req.rate
          value_type: FLOAT
          description: 'Number of requested checkpoints that have been performed per second.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.checkpoints_req
            - type: CHANGE_PER_SECOND
          master_item:
            key: 'pgsql.bgwriter["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
          tags:
            - tag: component
              value: bgwriter
          triggers:
            - uuid: 65e7954489854ad3ad1698dead7c4c02
              expression: 'last(/PostgreSQL by Zabbix agent/pgsql.bgwriter.checkpoints_req.rate) > {$PG.CHECKPOINTS_REQ.MAX.WARN}'
              name: 'PostgreSQL: Required checkpoints occur too frequently'
              event_name: 'PostgreSQL: Required checkpoints occur too frequently (over {$PG.CHECKPOINTS_REQ.MAX.WARN})'
              priority: AVERAGE
              description: |
                Checkpoints are points in the sequence of transactions at which it is guaranteed that the heap and index data files have been updated with all information written before that checkpoint. At checkpoint time, all dirty data pages are flushed to disk and a special checkpoint record is written to the log file.
                https://www.postgresql.org/docs/current/wal-configuration.html
              tags:
                - tag: scope
                  value: performance
        - uuid: a5271230be8b431cb96580180e099b98
          name: 'Checkpoint: Scheduled per second'
          type: DEPENDENT
          key: pgsql.bgwriter.checkpoints_timed.rate
          value_type: FLOAT
          description: 'Number of scheduled checkpoints that have been performed per second.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.checkpoints_timed
            - type: CHANGE_PER_SECOND
          master_item:
            key: 'pgsql.bgwriter["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
          tags:
            - tag: component
              value: bgwriter
        - uuid: 782d2368763b48ad8663aa9fb75c3326
          name: 'Checkpoint: Checkpoint sync time per second'
          type: DEPENDENT
          key: pgsql.bgwriter.checkpoint_sync_time.rate
          value_type: FLOAT
          units: s
          description: 'Total amount of time per second that has been spent in the portion of checkpoint processing where files are synchronized to disk.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.checkpoint_sync_time
            - type: MULTIPLIER
              parameters:
                - '0.001'
            - type: CHANGE_PER_SECOND
          master_item:
            key: 'pgsql.bgwriter["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
          tags:
            - tag: component
              value: bgwriter
        - uuid: b5e5f463978c46dd9401963f48ea72eb
          name: 'Checkpoint: Checkpoint write time per second'
          type: DEPENDENT
          key: pgsql.bgwriter.checkpoint_write_time.rate
          value_type: FLOAT
          units: s
          description: 'Total amount of time per second that has been spent in the portion of checkpoint processing where files are written to disk.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.checkpoint_write_time
            - type: MULTIPLIER
              parameters:
                - '0.001'
            - type: CHANGE_PER_SECOND
          master_item:
            key: 'pgsql.bgwriter["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
          tags:
            - tag: component
              value: bgwriter
        - uuid: f273c71f92bf4ac0b6ec5a0a88d1239c
          name: 'Bgwriter: Number of bgwriter cleaning scan stopped per second'
          type: DEPENDENT
          key: pgsql.bgwriter.maxwritten_clean.rate
          value_type: FLOAT
          description: 'Number of times the background writer stopped a cleaning scan because it had written too many buffers per second.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.maxwritten_clean
            - type: CHANGE_PER_SECOND
          master_item:
            key: 'pgsql.bgwriter["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
          tags:
            - tag: component
              value: bgwriter
        - uuid: 1fc5ba48a0974bd7bf965b5f130deded
          name: 'Get bgwriter'
          key: 'pgsql.bgwriter["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
          history: 1h
          value_type: TEXT
          description: |
            Collect all metrics from pg_stat_bgwriter:
            https://www.postgresql.org/docs/current/monitoring-stats.html#PG-STAT-BGWRITER-VIEW
          tags:
            - tag: component
              value: raw
          triggers:
            - uuid: 768d28b9360b46cda3065f5082ba97ac
              expression: 'nodata(/PostgreSQL by Zabbix agent/pgsql.bgwriter["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"],30m) = 1'
              name: 'PostgreSQL: Failed to get items'
              event_name: 'PostgreSQL: Failed to get items (no data for 30m)'
              priority: WARNING
              description: 'Zabbix has not received any data for items for the last 30 minutes.'
              dependencies:
                - name: 'PostgreSQL: Service is down'
                  expression: 'last(/PostgreSQL by Zabbix agent/pgsql.ping["{$PG.HOST}","{$PG.PORT}"]) = 0'
              tags:
                - tag: scope
                  value: availability
        - uuid: 70a7581fabd14e05bda762b79811187c
          name: 'Cache hit ratio, %'
          key: 'pgsql.cache.hit["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
          value_type: FLOAT
          units: '%'
          description: 'Cache hit ratio.'
          tags:
            - tag: component
              value: cache
          triggers:
            - uuid: 4d87cc71b40f4b59ad27f30f33b15a69
              expression: 'max(/PostgreSQL by Zabbix agent/pgsql.cache.hit["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"],5m) < {$PG.CACHE_HITRATIO.MIN.WARN}'
              name: 'PostgreSQL: Cache hit ratio too low'
              event_name: 'PostgreSQL: Cache hit ratio too low (under {$PG.CACHE_HITRATIO.MIN.WARN} in 5m)'
              priority: WARNING
              description: 'Cache hit ratio is lower than {$PG.CACHE_HITRATIO.MIN.WARN} for 5m.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 248cbe5067324b9ca435f2aced5e2a5f
          name: 'Config hash'
          key: 'pgsql.config.hash["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
          delay: 15m
          value_type: TEXT
          description: 'PostgreSQL configuration hash.'
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
          tags:
            - tag: component
              value: application
          triggers:
            - uuid: b727cfa6d3de4063b6a2dcb6cc84e27b
              expression: 'last(/PostgreSQL by Zabbix agent/pgsql.config.hash["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"],#1)<>last(/PostgreSQL by Zabbix agent/pgsql.config.hash["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"],#2) and length(last(/PostgreSQL by Zabbix agent/pgsql.config.hash["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]))>0'
              name: 'PostgreSQL: Configuration has changed'
              priority: INFO
              description: 'PostgreSQL configuration has changed.'
              tags:
                - tag: scope
                  value: notice
        - uuid: c78116d3acf24e6990ed27ba8008728c
          name: 'Connections sum: Active'
          type: DEPENDENT
          key: pgsql.connections.sum.active
          description: 'Total number of connections executing a query.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.active
          master_item:
            key: 'pgsql.connections.sum["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
          tags:
            - tag: component
              value: connections
        - uuid: be6eb6ecbfad420b889c58d1f1550b23
          name: 'Connections sum: Idle'
          type: DEPENDENT
          key: pgsql.connections.sum.idle
          description: 'Total number of connections waiting for a new client command.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.idle
          master_item:
            key: 'pgsql.connections.sum["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
          tags:
            - tag: component
              value: connections
        - uuid: 6471d014722c4072ae045df4c69578e3
          name: 'Connections sum: Idle in transaction'
          type: DEPENDENT
          key: pgsql.connections.sum.idle_in_transaction
          description: 'Total number of connections in a transaction state but not executing a query.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.idle_in_transaction
          master_item:
            key: 'pgsql.connections.sum["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
          tags:
            - tag: component
              value: connections
        - uuid: 197cc14f55db485b891614c7b7ee2a51
          name: 'Connections sum: Prepared'
          type: DEPENDENT
          key: pgsql.connections.sum.prepared
          description: |
            Total number of prepared transactions:
            https://www.postgresql.org/docs/current/sql-prepare-transaction.html
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.prepared
          master_item:
            key: 'pgsql.connections.sum["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
          tags:
            - tag: component
              value: connections
        - uuid: 24d23377c7cd4cc5b63f98a261c2501c
          name: 'Connections sum: Total'
          type: DEPENDENT
          key: pgsql.connections.sum.total
          description: 'Total number of connections.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.total
          master_item:
            key: 'pgsql.connections.sum["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
          tags:
            - tag: component
              value: connections
        - uuid: 488050d9aa8e4c2ea5b3e991ec5ddacc
          name: 'Connections sum: Total, %'
          type: DEPENDENT
          key: pgsql.connections.sum.total_pct
          units: '%'
          description: 'Total number of connections, in percentage.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.total_pct
          master_item:
            key: 'pgsql.connections.sum["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
          tags:
            - tag: component
              value: connections
          triggers:
            - uuid: 54ef12b8ff1e4383a3097c71478ceefa
              expression: 'min(/PostgreSQL by Zabbix agent/pgsql.connections.sum.total_pct,5m) > {$PG.CONN_TOTAL_PCT.MAX.WARN}'
              name: 'PostgreSQL: Total number of connections is too high'
              event_name: 'PostgreSQL: Total number of connections is too high (over {$PG.CONN_TOTAL_PCT.MAX.WARN} in 5m)'
              priority: AVERAGE
              description: 'Total number of current connections exceeds the limit of {$PG.CONN_TOTAL_PCT.MAX.WARN}% out of the maximum number of concurrent connections to the database server (the "max_connections" setting).'
              tags:
                - tag: scope
                  value: performance
        - uuid: fadd1333189c4ed29db57cf2acd158d0
          name: 'Connections sum: Waiting'
          type: DEPENDENT
          key: pgsql.connections.sum.waiting
          description: |
            Total number of waiting connections:
            https://www.postgresql.org/docs/current/monitoring-stats.html#WAIT-EVENT-TABLE
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.waiting
          master_item:
            key: 'pgsql.connections.sum["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
          tags:
            - tag: component
              value: connections
        - uuid: b0da0c4856a645ca8ef03405d2d8d4a5
          name: 'Get connections sum'
          key: 'pgsql.connections.sum["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
          history: '0'
          value_type: TEXT
          description: |
            Collect all metrics from pg_stat_activity:
            https://www.postgresql.org/docs/current/monitoring-stats.html#PG-STAT-ACTIVITY-VIEW
          tags:
            - tag: component
              value: raw
        - uuid: b44f263fb33e461e8c3d700fb7688c7b
          name: 'Get dbstat'
          key: 'pgsql.dbstat["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
          history: '0'
          value_type: TEXT
          description: |
            Collect all metrics from pg_stat_database per database:
            https://www.postgresql.org/docs/current/monitoring-stats.html#PG-STAT-DATABASE-VIEW
          tags:
            - tag: component
              value: raw
        - uuid: 7cee21f6225340ef80e9cdef7ce20b10
          name: 'Get locks'
          key: 'pgsql.locks["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
          history: '0'
          value_type: TEXT
          description: |
            Collect all metrics from pg_locks per database:
            https://www.postgresql.org/docs/current/explicit-locking.html#LOCKING-TABLES
          tags:
            - tag: component
              value: raw
        - uuid: f42bd73b3af6451b8a3a6113dcc1b675
          name: 'Ping time'
          key: 'pgsql.ping.time["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
          value_type: FLOAT
          units: s
          description: 'Used to get the `SELECT 1` query execution time.'
          preprocessing:
            - type: REGEX
              parameters:
                - 'Time:\s+(\d+\.\d+)\s+ms'
                - \1
            - type: MULTIPLIER
              parameters:
                - '0.001'
          tags:
            - tag: component
              value: application
            - tag: component
              value: health
          triggers:
            - uuid: e19b5630737b4c63886b5df77a3c748c
              expression: 'min(/PostgreSQL by Zabbix agent/pgsql.ping.time["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"],5m) > {$PG.PING_TIME.MAX.WARN}'
              name: 'PostgreSQL: Response too long'
              event_name: 'PostgreSQL: Response too long (over {$PG.PING_TIME.MAX.WARN})'
              priority: AVERAGE
              description: 'Response is taking too long (over {$PG.PING_TIME.MAX.WARN} for 5m).'
              dependencies:
                - name: 'PostgreSQL: Service is down'
                  expression: 'last(/PostgreSQL by Zabbix agent/pgsql.ping["{$PG.HOST}","{$PG.PORT}"]) = 0'
              tags:
                - tag: scope
                  value: availability
                - tag: scope
                  value: performance
        - uuid: f5bd615243b344cb88dac1e83436cc85
          name: Ping
          key: 'pgsql.ping["{$PG.HOST}","{$PG.PORT}"]'
          description: 'Used to test a connection to see if it is alive. It is set to 0 if the instance doesn''t accept the connections.'
          valuemap:
            name: 'Service state'
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - 'return value.search(/accepting connections/)>0 ? 1 : 0'
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
          tags:
            - tag: component
              value: application
            - tag: component
              value: health
          triggers:
            - uuid: 6d9c2b5353ce4f6baeeb0f254fb7d1e2
              expression: 'last(/PostgreSQL by Zabbix agent/pgsql.ping["{$PG.HOST}","{$PG.PORT}"]) = 0'
              name: 'PostgreSQL: Service is down'
              priority: HIGH
              description: 'Last test of a connection was unsuccessful.'
              tags:
                - tag: scope
                  value: availability
        - uuid: 47bf580e1e4e48cf9c0e94fcf90288ac
          name: 'Get queries'
          key: 'pgsql.queries["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}","{$PG.QUERY_ETIME.MAX.WARN}"]'
          history: '0'
          value_type: TEXT
          description: 'Collect all metrics by query execution time.'
          tags:
            - tag: component
              value: raw
        - uuid: d8a509bd011a4ecda5d439295e257e9d
          name: 'Replication: Standby count'
          key: 'pgsql.replication.count["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
          description: 'Number of standby servers.'
          tags:
            - tag: component
              value: replication
        - uuid: 21f8bea1141249c7a4dfafad5bc3ef41
          name: 'Replication: Lag in seconds'
          key: 'pgsql.replication.lag.sec["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
          units: s
          description: 'Replication lag with master, in seconds.'
          tags:
            - tag: component
              value: replication
          triggers:
            - uuid: 11831c52e86445498eed42de6a629b65
              expression: 'min(/PostgreSQL by Zabbix agent/pgsql.replication.lag.sec["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"],5m) > {$PG.REPL_LAG.MAX.WARN}'
              name: 'PostgreSQL: Streaming lag with master is too high'
              event_name: 'PostgreSQL: Streaming lag with master is too high (over {$PG.REPL_LAG.MAX.WARN} in 5m)'
              priority: AVERAGE
              description: 'Replication lag with master is higher than {$PG.REPL_LAG.MAX.WARN} for 5m.'
              tags:
                - tag: scope
                  value: availability
                - tag: scope
                  value: performance
        - uuid: 09f696124fca4c5b844bf66c9c912b87
          name: 'Replication: Recovery role'
          key: 'pgsql.replication.recovery_role["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
          description: 'Replication role: 1 — recovery is still in progress (standby mode), 0 — master mode.'
          valuemap:
            name: 'PostgreSQL recovery role'
          tags:
            - tag: component
              value: replication
        - uuid: d449017462704508a4aad51a6b45fb30
          name: 'Replication: Status'
          key: 'pgsql.replication.status["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
          description: 'Replication status: 0 — streaming is down, 1 — streaming is up, 2 — master mode.'
          valuemap:
            name: 'PostgreSQL replication status'
          tags:
            - tag: component
              value: replication
          triggers:
            - uuid: aef1e1d2bab540f8ab738b4a3fad863c
              expression: 'max(/PostgreSQL by Zabbix agent/pgsql.replication.status["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"],5m)=0'
              name: 'PostgreSQL: Replication is down'
              priority: AVERAGE
              description: 'Replication is enabled and data streaming was down for 5m.'
              tags:
                - tag: scope
                  value: availability
        - uuid: 4883717865c84c19b48d46f009317de2
          name: 'Transactions: Max active transaction time'
          type: DEPENDENT
          key: pgsql.transactions.active
          value_type: FLOAT
          units: s
          description: 'Current max active transaction time.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.active
          master_item:
            key: 'pgsql.transactions["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
          tags:
            - tag: component
              value: transactions
        - uuid: 4c89121d71a14c15b6169417ea69d0a3
          name: 'Transactions: Max idle transaction time'
          type: DEPENDENT
          key: pgsql.transactions.idle
          value_type: FLOAT
          units: s
          description: 'Current max idle transaction time.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.idle
          master_item:
            key: 'pgsql.transactions["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
          tags:
            - tag: component
              value: transactions
        - uuid: 0ee43ddd9da246d19097107b45e4c8e8
          name: 'Transactions: Max prepared transaction time'
          type: DEPENDENT
          key: pgsql.transactions.prepared
          value_type: FLOAT
          units: s
          description: 'Current max prepared transaction time.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.prepared
          master_item:
            key: 'pgsql.transactions["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
          tags:
            - tag: component
              value: transactions
        - uuid: da341b2011714a1f994ecbe96bd52155
          name: 'Transactions: Max waiting transaction time'
          type: DEPENDENT
          key: pgsql.transactions.waiting
          value_type: FLOAT
          units: s
          description: 'Current max waiting transaction time.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.waiting
          master_item:
            key: 'pgsql.transactions["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
          tags:
            - tag: component
              value: transactions
        - uuid: ff26a1c256bd40978f49a7a025538aa1
          name: 'Get transactions'
          key: 'pgsql.transactions["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
          history: '0'
          value_type: TEXT
          description: 'Collect metrics by transaction execution time.'
          tags:
            - tag: component
              value: raw
        - uuid: 6418a2f286e64ecabf2295fca063f8af
          name: Uptime
          key: 'pgsql.uptime["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
          units: uptime
          description: 'Time since the server started.'
          tags:
            - tag: component
              value: application
          triggers:
            - uuid: 85565aba402740868a16c0e4639a98fc
              expression: 'last(/PostgreSQL by Zabbix agent/pgsql.uptime["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]) < 10m'
              name: 'PostgreSQL: Service has been restarted'
              event_name: 'PostgreSQL: Service has been restarted (uptime < 10m)'
              priority: AVERAGE
              description: 'PostgreSQL uptime is less than 10 minutes.'
              tags:
                - tag: scope
                  value: notice
        - uuid: 321525ebcea44396922e96deec2e8ad1
          name: Version
          key: 'pgsql.version["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
          delay: 15m
          value_type: CHAR
          description: 'PostgreSQL version.'
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          tags:
            - tag: component
              value: application
          triggers:
            - uuid: 8111eb42b0e74fffb43da474677ebc2f
              expression: 'last(/PostgreSQL by Zabbix agent/pgsql.version["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"],#1)<>last(/PostgreSQL by Zabbix agent/pgsql.version["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"],#2) and length(last(/PostgreSQL by Zabbix agent/pgsql.version["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]))>0'
              name: 'PostgreSQL: Version has changed'
              event_name: 'PostgreSQL: Version has changed (new version value received: {ITEM.VALUE})'
              priority: INFO
              tags:
                - tag: scope
                  value: notice
        - uuid: 5385ec7d39514039a641d18cba335ddc
          name: 'WAL: Segments count'
          type: DEPENDENT
          key: pgsql.wal.count
          description: 'Number of WAL segments.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.count
          master_item:
            key: 'pgsql.wal.stat["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
          tags:
            - tag: component
              value: wal
        - uuid: 7cd6c524ecab41f9a22489866d503361
          name: 'Get WAL'
          key: 'pgsql.wal.stat["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
          delay: 5m
          history: '0'
          value_type: TEXT
          description: 'Collect write-ahead log (WAL) metrics.'
          tags:
            - tag: component
              value: raw
        - uuid: 5cc9c67621cc46e0a42b1eb79bda83b3
          name: 'WAL: Bytes written'
          type: DEPENDENT
          key: pgsql.wal.write
          units: B
          description: 'WAL write, in bytes.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.write
            - type: CHANGE_PER_SECOND
          master_item:
            key: 'pgsql.wal.stat["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
          tags:
            - tag: component
              value: wal
      discovery_rules:
        - uuid: 5c4c658507394f5bb362e601f7c59d63
          name: 'Database discovery'
          key: 'pgsql.discovery.db["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
          delay: 1h
          filter:
            conditions:
              - macro: '{#DBNAME}'
                value: '{$PG.LLD.FILTER.DBNAME}'
          description: |
            Discovers databases (DB) in the database management system (DBMS), except:
            - templates;
            - default "postgres" DB;
            - DBs that do not allow connections.
          item_prototypes:
            - uuid: 69575e9785184ef5be2502e3cc282220
              name: 'DB [{#DBNAME}]: Database size'
              key: 'pgsql.db.size["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}","{#DBNAME}"]'
              delay: 15m
              units: B
              description: 'Database size.'
              tags:
                - tag: component
                  value: storage
                - tag: database
                  value: '{#DBNAME}'
            - uuid: 615e6567a85e421bb06ab8cac0eaba69
              name: 'DB [{#DBNAME}]: Blocks hit per second'
              type: DEPENDENT
              key: 'pgsql.dbstat.blks_hit.rate["{#DBNAME}"]'
              value_type: FLOAT
              description: 'Total number of times per second disk blocks were found already in the buffer cache, so that a read was not necessary.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.blks_hit
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'pgsql.dbstat.get_metrics["{#DBNAME}"]'
              tags:
                - tag: component
                  value: cache
                - tag: database
                  value: '{#DBNAME}'
            - uuid: 9136517d08b447869e5b8f5fd684c3b9
              name: 'DB [{#DBNAME}]: Disk blocks read per second'
              type: DEPENDENT
              key: 'pgsql.dbstat.blks_read.rate["{#DBNAME}"]'
              value_type: FLOAT
              description: 'Total number of disk blocks read per second in this database.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.blks_read
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'pgsql.dbstat.get_metrics["{#DBNAME}"]'
              tags:
                - tag: component
                  value: storage
                - tag: database
                  value: '{#DBNAME}'
            - uuid: a76f6d28995441ff9fe28bbc09445e64
              name: 'DB [{#DBNAME}]: Detected conflicts per second'
              type: DEPENDENT
              key: 'pgsql.dbstat.conflicts.rate["{#DBNAME}"]'
              value_type: FLOAT
              description: 'Total number of queries canceled due to conflicts with recovery in this database per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.conflicts
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'pgsql.dbstat.get_metrics["{#DBNAME}"]'
              tags:
                - tag: component
                  value: queries
                - tag: database
                  value: '{#DBNAME}'
              trigger_prototypes:
                - uuid: 3b51f02258bd4e02829f04ca016dd01d
                  expression: 'min(/PostgreSQL by Zabbix agent/pgsql.dbstat.conflicts.rate["{#DBNAME}"],5m) > {$PG.CONFLICTS.MAX.WARN:"{#DBNAME}"}'
                  name: 'PostgreSQL: DB [{#DBNAME}]: Too many recovery conflicts'
                  event_name: 'PostgreSQL: DB [{#DBNAME}]: Too many recovery conflicts (over {$PG.CONFLICTS.MAX.WARN:"{#DBNAME}"} in 5m)'
                  priority: AVERAGE
                  description: |
                    The primary and standby servers are in many ways loosely connected. Actions on the primary will have an effect on the standby. As a result, there is potential for negative interactions or conflicts between them.
                    https://www.postgresql.org/docs/current/hot-standby.html#HOT-STANDBY-CONFLICT
                  tags:
                    - tag: scope
                      value: performance
            - uuid: b874cc2dd80643208c2479ad25fae0ac
              name: 'DB [{#DBNAME}]: Detected deadlocks per second'
              type: DEPENDENT
              key: 'pgsql.dbstat.deadlocks.rate["{#DBNAME}"]'
              value_type: FLOAT
              description: 'Total number of detected deadlocks in this database per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.deadlocks
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'pgsql.dbstat.get_metrics["{#DBNAME}"]'
              tags:
                - tag: component
                  value: deadlocks
                - tag: database
                  value: '{#DBNAME}'
              trigger_prototypes:
                - uuid: 3bee63fa04d94586937e22aafab9bdd8
                  expression: 'min(/PostgreSQL by Zabbix agent/pgsql.dbstat.deadlocks.rate["{#DBNAME}"],5m) > {$PG.DEADLOCKS.MAX.WARN:"{#DBNAME}"}'
                  name: 'PostgreSQL: DB [{#DBNAME}]: Deadlock occurred'
                  event_name: 'PostgreSQL: DB [{#DBNAME}]: Deadlock occurred (over {$PG.DEADLOCKS.MAX.WARN:"{#DBNAME}"} in 5m)'
                  priority: HIGH
                  description: 'Number of deadlocks detected per second exceeds {$PG.DEADLOCKS.MAX.WARN:"{#DBNAME}"} for 5m.'
                  tags:
                    - tag: scope
                      value: availability
            - uuid: 52c20fc8faad42ae8d255990ce14d3cd
              name: 'DB [{#DBNAME}]: Get dbstat'
              type: DEPENDENT
              key: 'pgsql.dbstat.get_metrics["{#DBNAME}"]'
              history: '0'
              value_type: TEXT
              description: 'Get dbstat metrics for database "{#DBNAME}".'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$[''{#DBNAME}'']'
                  error_handler: DISCARD_VALUE
              master_item:
                key: 'pgsql.dbstat["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
              tags:
                - tag: component
                  value: raw
                - tag: database
                  value: '{#DBNAME}'
            - uuid: d235ead54c8b41f9a91398c75383e5d7
              name: 'DB [{#DBNAME}]: Temp_bytes written per second'
              type: DEPENDENT
              key: 'pgsql.dbstat.temp_bytes.rate["{#DBNAME}"]'
              units: B
              description: 'Total amount of data written to temporary files by queries in this database.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.temp_bytes
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'pgsql.dbstat.get_metrics["{#DBNAME}"]'
              tags:
                - tag: component
                  value: storage
                - tag: database
                  value: '{#DBNAME}'
            - uuid: af4e35eee1764d3f97d9c1218867f885
              name: 'DB [{#DBNAME}]: Temp_files created per second'
              type: DEPENDENT
              key: 'pgsql.dbstat.temp_files.rate["{#DBNAME}"]'
              description: 'Total number of temporary files created by queries in this database.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.temp_files
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'pgsql.dbstat.get_metrics["{#DBNAME}"]'
              tags:
                - tag: component
                  value: storage
                - tag: database
                  value: '{#DBNAME}'
            - uuid: 35c6f93aefe4439bbc36f2f358440b16
              name: 'DB [{#DBNAME}]: Tuples deleted per second'
              type: DEPENDENT
              key: 'pgsql.dbstat.tup_deleted.rate["{#DBNAME}"]'
              value_type: FLOAT
              description: 'Total number of rows deleted by queries in this database per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.tup_deleted
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'pgsql.dbstat.get_metrics["{#DBNAME}"]'
              tags:
                - tag: component
                  value: queries
                - tag: database
                  value: '{#DBNAME}'
            - uuid: 92f33d96f8a348088cdba593c0e66929
              name: 'DB [{#DBNAME}]: Tuples fetched per second'
              type: DEPENDENT
              key: 'pgsql.dbstat.tup_fetched.rate["{#DBNAME}"]'
              value_type: FLOAT
              description: 'Total number of rows fetched by queries in this database per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.tup_fetched
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'pgsql.dbstat.get_metrics["{#DBNAME}"]'
              tags:
                - tag: component
                  value: queries
                - tag: database
                  value: '{#DBNAME}'
            - uuid: 8c03c87a44fe43928c32087ca7561e88
              name: 'DB [{#DBNAME}]: Tuples inserted per second'
              type: DEPENDENT
              key: 'pgsql.dbstat.tup_inserted.rate["{#DBNAME}"]'
              value_type: FLOAT
              description: 'Total number of rows inserted by queries in this database per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.tup_inserted
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'pgsql.dbstat.get_metrics["{#DBNAME}"]'
              tags:
                - tag: component
                  value: queries
                - tag: database
                  value: '{#DBNAME}'
            - uuid: f6d378f4e38e455fa5a12467fe977657
              name: 'DB [{#DBNAME}]: Tuples returned per second'
              type: DEPENDENT
              key: 'pgsql.dbstat.tup_returned.rate["{#DBNAME}"]'
              value_type: FLOAT
              description: 'Number of rows returned by queries in this database per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.tup_returned
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'pgsql.dbstat.get_metrics["{#DBNAME}"]'
              tags:
                - tag: component
                  value: queries
                - tag: database
                  value: '{#DBNAME}'
            - uuid: 4c8de8c1064d43ffa18c4f37fead37f7
              name: 'DB [{#DBNAME}]: Tuples updated per second'
              type: DEPENDENT
              key: 'pgsql.dbstat.tup_updated.rate["{#DBNAME}"]'
              value_type: FLOAT
              description: 'Total number of rows updated by queries in this database per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.tup_updated
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'pgsql.dbstat.get_metrics["{#DBNAME}"]'
              tags:
                - tag: component
                  value: queries
                - tag: database
                  value: '{#DBNAME}'
            - uuid: 81c33f5b3c31475fa5f28f4ad149a328
              name: 'DB [{#DBNAME}]: Commits per second'
              type: DEPENDENT
              key: 'pgsql.dbstat.xact_commit.rate["{#DBNAME}"]'
              value_type: FLOAT
              description: 'Number of transactions in this database that have been committed per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.xact_commit
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'pgsql.dbstat.get_metrics["{#DBNAME}"]'
              tags:
                - tag: component
                  value: transactions
                - tag: database
                  value: '{#DBNAME}'
            - uuid: 8e5080186d034323be21473099b0b0ce
              name: 'DB [{#DBNAME}]: Rollbacks per second'
              type: DEPENDENT
              key: 'pgsql.dbstat.xact_rollback.rate["{#DBNAME}"]'
              value_type: FLOAT
              description: 'Total number of transactions in this database that have been rolled back.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.xact_rollback
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'pgsql.dbstat.get_metrics["{#DBNAME}"]'
              tags:
                - tag: component
                  value: transactions
                - tag: database
                  value: '{#DBNAME}'
            - uuid: df9dd9bac2a54f1085b29fb22b394a1f
              name: 'DB [{#DBNAME}]: Frozen XID before autovacuum, %'
              type: DEPENDENT
              key: 'pgsql.frozenxid.prc_before_av["{#DBNAME}"]'
              value_type: FLOAT
              units: '%'
              description: |
                Preventing Transaction ID Wraparound Failures:
                https://www.postgresql.org/docs/current/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.prc_before_av
              master_item:
                key: 'pgsql.frozenxid["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{#DBNAME}"]'
              tags:
                - tag: component
                  value: transactions
                - tag: database
                  value: '{#DBNAME}'
            - uuid: 44ddd66ea37449cb8fab6979b98dfd3c
              name: 'DB [{#DBNAME}]: Frozen XID before stop, %'
              type: DEPENDENT
              key: 'pgsql.frozenxid.prc_before_stop["{#DBNAME}"]'
              value_type: FLOAT
              units: '%'
              description: |
                Preventing Transaction ID Wraparound Failures:
                https://www.postgresql.org/docs/current/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.prc_before_stop
              master_item:
                key: 'pgsql.frozenxid["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{#DBNAME}"]'
              tags:
                - tag: component
                  value: transactions
                - tag: database
                  value: '{#DBNAME}'
              trigger_prototypes:
                - uuid: 709df9c1e29a4ff68a3de9423ff7ae58
                  expression: 'last(/PostgreSQL by Zabbix agent/pgsql.frozenxid.prc_before_stop["{#DBNAME}"])<{$PG.FROZENXID_PCT_STOP.MIN.HIGH:"{#DBNAME}"}'
                  name: 'PostgreSQL: DB [{#DBNAME}]: VACUUM FREEZE is required to prevent wraparound'
                  event_name: 'PostgreSQL: DB [{#DBNAME}]: VACUUM FREEZE is required to prevent wraparound (frozen XID less than {$PG.FROZENXID_PCT_STOP.MIN.HIGH:"{#DBNAME}"} %)'
                  priority: AVERAGE
                  description: |
                    Preventing Transaction ID Wraparound Failures:
                    https://www.postgresql.org/docs/current/routine-vacuuming.html#VACUUM-FOR-WRAPAROUND
                  tags:
                    - tag: scope
                      value: availability
            - uuid: ddf6d0b7b5fe4cbbb540687051b8e5f5
              name: 'DB [{#DBNAME}]: Get frozen XID'
              key: 'pgsql.frozenxid["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{#DBNAME}"]'
              history: '0'
              value_type: TEXT
              tags:
                - tag: component
                  value: raw
                - tag: database
                  value: '{#DBNAME}'
            - uuid: 3d0acf4b45fc4a72bb2a214222f93f2a
              name: 'DB [{#DBNAME}]: Num of locks total'
              type: DEPENDENT
              key: 'pgsql.locks.total["{#DBNAME}"]'
              description: 'Total number of locks in this database.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$[''{#DBNAME}''].total'
              master_item:
                key: 'pgsql.locks["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
              tags:
                - tag: component
                  value: locks
                - tag: database
                  value: '{#DBNAME}'
              trigger_prototypes:
                - uuid: ef7d3c9866df44aa9b378e7f125a34de
                  expression: 'min(/PostgreSQL by Zabbix agent/pgsql.locks.total["{#DBNAME}"],5m)>{$PG.LOCKS.MAX.WARN:"{#DBNAME}"}'
                  name: 'PostgreSQL: DB [{#DBNAME}]: Number of locks is too high'
                  event_name: 'PostgreSQL: DB [{#DBNAME}]: Number of locks is too high (over {$PG.LOCKS.MAX.WARN:"{#DBNAME}"} in 5m)'
                  priority: WARNING
                  tags:
                    - tag: scope
                      value: availability
            - uuid: ac226e85268c463786e297944339ccf5
              name: 'DB [{#DBNAME}]: Get queries'
              type: DEPENDENT
              key: 'pgsql.queries.get_metrics["{#DBNAME}"]'
              history: '0'
              value_type: TEXT
              description: 'Get queries metrics for database "{#DBNAME}".'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$[''{#DBNAME}'']'
                  error_handler: DISCARD_VALUE
              master_item:
                key: 'pgsql.queries["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}","{$PG.QUERY_ETIME.MAX.WARN}"]'
              tags:
                - tag: component
                  value: raw
                - tag: database
                  value: '{#DBNAME}'
            - uuid: 939ab05c71ed4be9979662203ebba980
              name: 'DB [{#DBNAME}]: Queries slow maintenance count'
              type: DEPENDENT
              key: 'pgsql.queries.mro.slow_count["{#DBNAME}"]'
              description: 'Slow maintenance query count for this database.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.mro_slow_count
              master_item:
                key: 'pgsql.queries.get_metrics["{#DBNAME}"]'
              tags:
                - tag: component
                  value: queries
                - tag: database
                  value: '{#DBNAME}'
            - uuid: bbc8f9bf86394cf28e0c2db44ee4711d
              name: 'DB [{#DBNAME}]: Queries max maintenance time'
              type: DEPENDENT
              key: 'pgsql.queries.mro.time_max["{#DBNAME}"]'
              units: s
              description: 'Max maintenance query time for this database.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.mro_time_max
              master_item:
                key: 'pgsql.queries.get_metrics["{#DBNAME}"]'
              tags:
                - tag: component
                  value: queries
                - tag: database
                  value: '{#DBNAME}'
            - uuid: f1427228bfa14ad3b7bb9d63bcfaec59
              name: 'DB [{#DBNAME}]: Queries sum maintenance time'
              type: DEPENDENT
              key: 'pgsql.queries.mro.time_sum["{#DBNAME}"]'
              units: s
              description: 'Sum maintenance query time for this database.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.mro_time_sum
              master_item:
                key: 'pgsql.queries.get_metrics["{#DBNAME}"]'
              tags:
                - tag: component
                  value: queries
                - tag: database
                  value: '{#DBNAME}'
            - uuid: 5d937f46f4684f1e8253ec62e0f75379
              name: 'DB [{#DBNAME}]: Queries slow query count'
              type: DEPENDENT
              key: 'pgsql.queries.query.slow_count["{#DBNAME}"]'
              description: 'Slow query count for this database.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.query_slow_count
              master_item:
                key: 'pgsql.queries.get_metrics["{#DBNAME}"]'
              tags:
                - tag: component
                  value: queries
                - tag: database
                  value: '{#DBNAME}'
              trigger_prototypes:
                - uuid: facc8f6976664da4ad5567d270f0f311
                  expression: 'min(/PostgreSQL by Zabbix agent/pgsql.queries.query.slow_count["{#DBNAME}"],5m)>{$PG.SLOW_QUERIES.MAX.WARN:"{#DBNAME}"}'
                  name: 'PostgreSQL: DB [{#DBNAME}]: Too many slow queries'
                  event_name: 'PostgreSQL: DB [{#DBNAME}]: Too many slow queries (over {$PG.SLOW_QUERIES.MAX.WARN:"{#DBNAME}"} in 5m)'
                  priority: WARNING
                  description: 'The number of detected slow queries exceeds the limit of {$PG.SLOW_QUERIES.MAX.WARN:"{#DBNAME}"}.'
                  tags:
                    - tag: scope
                      value: performance
            - uuid: 044cc16d0a2f46b28d88eff86c33b30b
              name: 'DB [{#DBNAME}]: Queries max query time'
              type: DEPENDENT
              key: 'pgsql.queries.query.time_max["{#DBNAME}"]'
              units: s
              description: 'Max query time for this database.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.query_time_max
              master_item:
                key: 'pgsql.queries.get_metrics["{#DBNAME}"]'
              tags:
                - tag: component
                  value: queries
                - tag: database
                  value: '{#DBNAME}'
            - uuid: c6232400b39c4564a30a403859ffb4ee
              name: 'DB [{#DBNAME}]: Queries sum query time'
              type: DEPENDENT
              key: 'pgsql.queries.query.time_sum["{#DBNAME}"]'
              units: s
              description: 'Sum query time for this database.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.query_time_sum
              master_item:
                key: 'pgsql.queries.get_metrics["{#DBNAME}"]'
              tags:
                - tag: component
                  value: queries
                - tag: database
                  value: '{#DBNAME}'
            - uuid: f7099043ea6345f0a5531f70f9573a3e
              name: 'DB [{#DBNAME}]: Queries slow transaction count'
              type: DEPENDENT
              key: 'pgsql.queries.tx.slow_count["{#DBNAME}"]'
              description: 'Slow transaction query count for this database.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.tx_slow_count
              master_item:
                key: 'pgsql.queries.get_metrics["{#DBNAME}"]'
              tags:
                - tag: component
                  value: queries
                - tag: database
                  value: '{#DBNAME}'
            - uuid: c6800ca30a564766ba745e875cb4e929
              name: 'DB [{#DBNAME}]: Queries max transaction time'
              type: DEPENDENT
              key: 'pgsql.queries.tx.time_max["{#DBNAME}"]'
              units: s
              description: 'Max transaction query time for this database.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.tx_time_max
              master_item:
                key: 'pgsql.queries.get_metrics["{#DBNAME}"]'
              tags:
                - tag: component
                  value: queries
                - tag: database
                  value: '{#DBNAME}'
            - uuid: 0eda974576794768ac9ddc592ff27e19
              name: 'DB [{#DBNAME}]: Queries sum transaction time'
              type: DEPENDENT
              key: 'pgsql.queries.tx.time_sum["{#DBNAME}"]'
              units: s
              description: 'Sum transaction query time for this database.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.tx_time_sum
              master_item:
                key: 'pgsql.queries.get_metrics["{#DBNAME}"]'
              tags:
                - tag: component
                  value: queries
                - tag: database
                  value: '{#DBNAME}'
            - uuid: cafcc00cce824c33a321da0e9ecc7f6e
              name: 'DB [{#DBNAME}]: Index scans per second'
              type: DEPENDENT
              key: 'pgsql.scans.idx.rate["{#DBNAME}"]'
              description: 'Number of index scans in the database per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.idx
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'pgsql.scans["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{#DBNAME}"]'
              tags:
                - tag: component
                  value: scans
                - tag: database
                  value: '{#DBNAME}'
            - uuid: f07396ca9d224e1b819f22efe6c4259d
              name: 'DB [{#DBNAME}]: Sequential scans per second'
              type: DEPENDENT
              key: 'pgsql.scans.seq.rate["{#DBNAME}"]'
              value_type: FLOAT
              description: 'Number of sequential scans in this database per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.seq
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'pgsql.scans["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{#DBNAME}"]'
              tags:
                - tag: component
                  value: scans
                - tag: database
                  value: '{#DBNAME}'
            - uuid: 4bf92e4b0fed4d32b808b299d9e1fb0c
              name: 'DB [{#DBNAME}]: Get scans'
              key: 'pgsql.scans["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{#DBNAME}"]'
              history: '0'
              value_type: TEXT
              description: 'Number of scans done for table/index in this database.'
              tags:
                - tag: component
                  value: raw
                - tag: database
                  value: '{#DBNAME}'
          graph_prototypes:
            - uuid: 3f8124b817f2437096c620d62ec2e055
              name: 'DB [{#DBNAME}]: Block hit/read'
              ymin_type_1: FIXED
              graph_items:
                - color: 199C0D
                  item:
                    host: 'PostgreSQL by Zabbix agent'
                    key: 'pgsql.dbstat.blks_hit.rate["{#DBNAME}"]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'PostgreSQL by Zabbix agent'
                    key: 'pgsql.dbstat.blks_read.rate["{#DBNAME}"]'
            - uuid: 6bd0a0d65b8d43ad946b145cf8a8b533
              name: 'DB [{#DBNAME}]: Database size'
              ymin_type_1: FIXED
              graph_items:
                - color: 199C0D
                  item:
                    host: 'PostgreSQL by Zabbix agent'
                    key: 'pgsql.db.size["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}","{#DBNAME}"]'
            - uuid: 41e765d906324595a396d8985b204ff5
              name: 'DB [{#DBNAME}]: Events'
              ymin_type_1: FIXED
              graph_items:
                - drawtype: GRADIENT_LINE
                  color: 199C0D
                  item:
                    host: 'PostgreSQL by Zabbix agent'
                    key: 'pgsql.dbstat.xact_commit.rate["{#DBNAME}"]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'PostgreSQL by Zabbix agent'
                    key: 'pgsql.dbstat.conflicts.rate["{#DBNAME}"]'
                - sortorder: '2'
                  color: 00611C
                  item:
                    host: 'PostgreSQL by Zabbix agent'
                    key: 'pgsql.dbstat.deadlocks.rate["{#DBNAME}"]'
                - sortorder: '3'
                  color: F7941D
                  item:
                    host: 'PostgreSQL by Zabbix agent'
                    key: 'pgsql.dbstat.xact_rollback.rate["{#DBNAME}"]'
            - uuid: 2b260fdf7623476095429434b5c79041
              name: 'DB [{#DBNAME}]: Locks'
              ymin_type_1: FIXED
              graph_items:
                - color: 199C0D
                  item:
                    host: 'PostgreSQL by Zabbix agent'
                    key: 'pgsql.locks.total["{#DBNAME}"]'
            - uuid: 8a60a92b41b146f49145b86bab559b2e
              name: 'DB [{#DBNAME}]: Queries'
              ymin_type_1: FIXED
              graph_items:
                - color: 199C0D
                  yaxisside: RIGHT
                  item:
                    host: 'PostgreSQL by Zabbix agent'
                    key: 'pgsql.queries.mro.time_max["{#DBNAME}"]'
                - sortorder: '1'
                  color: F63100
                  yaxisside: RIGHT
                  item:
                    host: 'PostgreSQL by Zabbix agent'
                    key: 'pgsql.queries.query.time_max["{#DBNAME}"]'
                - sortorder: '2'
                  color: 00611C
                  yaxisside: RIGHT
                  item:
                    host: 'PostgreSQL by Zabbix agent'
                    key: 'pgsql.queries.tx.time_max["{#DBNAME}"]'
                - sortorder: '3'
                  drawtype: GRADIENT_LINE
                  color: F7941D
                  item:
                    host: 'PostgreSQL by Zabbix agent'
                    key: 'pgsql.queries.mro.time_sum["{#DBNAME}"]'
                - sortorder: '4'
                  drawtype: GRADIENT_LINE
                  color: FC6EA3
                  item:
                    host: 'PostgreSQL by Zabbix agent'
                    key: 'pgsql.queries.query.time_sum["{#DBNAME}"]'
                - sortorder: '5'
                  drawtype: GRADIENT_LINE
                  color: 6C59DC
                  item:
                    host: 'PostgreSQL by Zabbix agent'
                    key: 'pgsql.queries.tx.time_sum["{#DBNAME}"]'
            - uuid: 93518b06f71e46ada3dabefa1726b867
              name: 'DB [{#DBNAME}]: Slow queries'
              ymin_type_1: FIXED
              graph_items:
                - color: 199C0D
                  item:
                    host: 'PostgreSQL by Zabbix agent'
                    key: 'pgsql.queries.mro.slow_count["{#DBNAME}"]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'PostgreSQL by Zabbix agent'
                    key: 'pgsql.queries.query.slow_count["{#DBNAME}"]'
                - sortorder: '2'
                  color: 00611C
                  item:
                    host: 'PostgreSQL by Zabbix agent'
                    key: 'pgsql.queries.tx.slow_count["{#DBNAME}"]'
            - uuid: 779b872280ad46c7a6cdf95c2df7c646
              name: 'DB [{#DBNAME}]: Temp files'
              graph_items:
                - drawtype: GRADIENT_LINE
                  color: 199C0D
                  item:
                    host: 'PostgreSQL by Zabbix agent'
                    key: 'pgsql.dbstat.temp_bytes.rate["{#DBNAME}"]'
                - sortorder: '1'
                  color: F63100
                  yaxisside: RIGHT
                  item:
                    host: 'PostgreSQL by Zabbix agent'
                    key: 'pgsql.dbstat.temp_files.rate["{#DBNAME}"]'
            - uuid: f10be22e3bac4d66936c34ec99446c64
              name: 'DB [{#DBNAME}]: Tuples'
              ymin_type_1: FIXED
              graph_items:
                - color: 199C0D
                  item:
                    host: 'PostgreSQL by Zabbix agent'
                    key: 'pgsql.dbstat.tup_deleted.rate["{#DBNAME}"]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'PostgreSQL by Zabbix agent'
                    key: 'pgsql.dbstat.tup_fetched.rate["{#DBNAME}"]'
                - sortorder: '2'
                  color: 00611C
                  item:
                    host: 'PostgreSQL by Zabbix agent'
                    key: 'pgsql.dbstat.tup_inserted.rate["{#DBNAME}"]'
                - sortorder: '3'
                  color: F7941D
                  item:
                    host: 'PostgreSQL by Zabbix agent'
                    key: 'pgsql.dbstat.tup_returned.rate["{#DBNAME}"]'
                - sortorder: '4'
                  color: FC6EA3
                  item:
                    host: 'PostgreSQL by Zabbix agent'
                    key: 'pgsql.dbstat.tup_updated.rate["{#DBNAME}"]'
      tags:
        - tag: class
          value: database
        - tag: subclass
          value: sql
        - tag: target
          value: postgresql
      macros:
        - macro: '{$PG.CACHE_HITRATIO.MIN.WARN}'
          value: '90'
          description: 'Minimum cache hit ratio percentage for trigger expression.'
          config:
            type: TEXT
            priority: '12'
            section_name: Thresholds
            label: 'Minimum cache hit ratio percentage'
            description: 'Minimum cache hit ratio percentage for trigger expression. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$PG.CHECKPOINTS_REQ.MAX.WARN}'
          value: '5'
          description: 'Maximum required checkpoint occurrences for trigger expression.'
          config:
            type: TEXT
            priority: '13'
            section_name: Thresholds
            label: 'Maximum required checkpoint occurrences'
            description: 'Maximum required checkpoint occurrences for trigger expression. No less than 0.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$PG.CONFLICTS.MAX.WARN}'
          value: '0'
          description: 'Maximum number of recovery conflicts for trigger expression.'
          config:
            type: TEXT
            priority: '17'
            section_name: Thresholds
            label: 'Maximum number of recovery conflicts'
            description: 'Maximum number of recovery conflicts for trigger expression. No less than 0.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$PG.CONN_TOTAL_PCT.MAX.WARN}'
          value: '90'
          description: 'Maximum percentage of current connections for trigger expression.'
          config:
            type: TEXT
            priority: '14'
            section_name: Thresholds
            label: 'Maximum percentage of current connections'
            description: 'Maximum percentage of current connections for trigger expression. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$PG.DATABASE}'
          value: postgres
          description: 'Default PostgreSQL database for the connection.'
          config:
            type: TEXT
            priority: '5'
            label: 'Default PostgreSQL database for the connection'
            required: 'YES'
        - macro: '{$PG.DEADLOCKS.MAX.WARN}'
          value: '0'
          description: 'Maximum number of detected deadlocks for trigger expression.'
          config:
            type: TEXT
            priority: '15'
            section_name: Thresholds
            label: 'Maximum number of detected deadlocks'
            description: 'Maximum number of detected deadlocks for trigger expression. No less than 0.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$PG.FROZENXID_PCT_STOP.MIN.HIGH}'
          value: '75'
          description: 'Minimum frozen XID before stop percentage for trigger expression.'
          config:
            type: TEXT
            priority: '16'
            section_name: Thresholds
            label: 'Minimum frozen XID before stop percentage'
            description: 'Minimum frozen XID before stop percentage for trigger expression. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$PG.HOST}'
          value: localhost
          description: 'Hostname or IP of PostgreSQL host.'
          config:
            type: TEXT
            priority: '1'
            label: 'PostgreSQL host'
            description: 'Hostname or IP of PostgreSQL host.'
            required: 'YES'
        - macro: '{$PG.LLD.FILTER.DBNAME}'
          value: .+
          description: 'Filter of discoverable databases.'
          config:
            type: TEXT
            priority: '6'
            section_name: Filters
            label: 'Database name LLD filter'
            description: 'Filter of discoverable databases.'
        - macro: '{$PG.LOCKS.MAX.WARN}'
          value: '100'
          description: 'Maximum number of locks for trigger expression.'
          config:
            type: TEXT
            priority: '7'
            section_name: Thresholds
            label: 'Maximum number of locks'
            description: 'Maximum number of locks for trigger expression. No less than 0.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$PG.PASSWORD}'
          type: SECRET_TEXT
          description: 'PostgreSQL user password.'
          config:
            type: TEXT
            priority: '4'
            label: 'PostgreSQL user password'
            required: 'YES'
        - macro: '{$PG.PING_TIME.MAX.WARN}'
          value: 1s
          description: 'Maximum time of connection response for trigger expression.'
          config:
            type: TEXT
            priority: '8'
            section_name: Thresholds
            label: 'Maximum time of connection response'
            description: 'Maximum time of connection response for trigger expression.'
        - macro: '{$PG.PORT}'
          value: '5432'
          description: 'PostgreSQL service port.'
          config:
            type: TEXT
            priority: '2'
            label: 'PostgreSQL port'
            description: 'PostgreSQL service port. In the range from 1 to 65535 inclusive.'
            required: 'YES'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$PG.QUERY_ETIME.MAX.WARN}'
          value: '30'
          description: 'Execution time limit for count of slow queries.'
          config:
            type: TEXT
            priority: '9'
            section_name: Thresholds
            label: 'Slow queries execution time threshold'
            description: 'Execution time threshold for queries to be considered slow. No less than 0.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$PG.REPL_LAG.MAX.WARN}'
          value: 10m
          description: 'Maximum replication lag time for trigger expression.'
          config:
            type: TEXT
            priority: '10'
            section_name: Thresholds
            label: 'Maximum replication lag time'
            description: 'Maximum replication lag time for trigger expression.'
        - macro: '{$PG.SLOW_QUERIES.MAX.WARN}'
          value: '5'
          description: 'Slow queries count threshold for a trigger.'
          config:
            type: TEXT
            priority: '11'
            section_name: Thresholds
            label: 'Slow queries count threshold'
            description: 'Slow queries count threshold for a trigger. No less than 0.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$PG.USER}'
          value: zbx_monitor
          description: 'PostgreSQL username.'
          config:
            type: TEXT
            priority: '3'
            label: 'PostgreSQL username'
            required: 'YES'
      dashboards:
        - uuid: d95f29826778497a9ed265e0c335fd0f
          name: 'PostgreSQL databases'
          pages:
            - widgets:
                - type: graphprototype
                  width: '36'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'PostgreSQL by Zabbix agent'
                        name: 'DB [{#DBNAME}]: Tuples'
                    - type: STRING
                      name: reference
                      value: AAAAA
                - type: graphprototype
                  'y': '5'
                  width: '36'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'PostgreSQL by Zabbix agent'
                        name: 'DB [{#DBNAME}]: Block hit/read'
                    - type: STRING
                      name: reference
                      value: AAAAC
                - type: graphprototype
                  'y': '10'
                  width: '36'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'PostgreSQL by Zabbix agent'
                        name: 'DB [{#DBNAME}]: Locks'
                    - type: STRING
                      name: reference
                      value: AAAAE
                - type: graphprototype
                  'y': '15'
                  width: '36'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'PostgreSQL by Zabbix agent'
                        name: 'DB [{#DBNAME}]: Queries'
                    - type: STRING
                      name: reference
                      value: AAAAG
                - type: graphprototype
                  x: '36'
                  width: '36'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'PostgreSQL by Zabbix agent'
                        name: 'DB [{#DBNAME}]: Events'
                    - type: STRING
                      name: reference
                      value: AAAAB
                - type: graphprototype
                  x: '36'
                  'y': '5'
                  width: '36'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'PostgreSQL by Zabbix agent'
                        name: 'DB [{#DBNAME}]: Temp files'
                    - type: STRING
                      name: reference
                      value: AAAAD
                - type: graphprototype
                  x: '36'
                  'y': '10'
                  width: '36'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'PostgreSQL by Zabbix agent'
                        name: 'DB [{#DBNAME}]: Database size'
                    - type: STRING
                      name: reference
                      value: AAAAF
                - type: graphprototype
                  x: '36'
                  'y': '15'
                  width: '36'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'PostgreSQL by Zabbix agent'
                        name: 'DB [{#DBNAME}]: Slow queries'
                    - type: STRING
                      name: reference
                      value: AAAAH
        - uuid: f2ceabf59fd64ca9828ea55e9b9668bd
          name: 'PostgreSQL stat'
          pages:
            - widgets:
                - type: graph
                  width: '36'
                  height: '5'
                  fields:
                    - type: GRAPH
                      name: graphid.0
                      value:
                        host: 'PostgreSQL by Zabbix agent'
                        name: 'PostgreSQL connections'
                    - type: STRING
                      name: reference
                      value: AAAAI
                - type: graph
                  'y': '5'
                  width: '36'
                  height: '5'
                  fields:
                    - type: GRAPH
                      name: graphid.0
                      value:
                        host: 'PostgreSQL by Zabbix agent'
                        name: 'PostgreSQL ping'
                    - type: STRING
                      name: reference
                      value: AAAAK
                - type: graph
                  'y': '10'
                  width: '36'
                  height: '5'
                  fields:
                    - type: GRAPH
                      name: graphid.0
                      value:
                        host: 'PostgreSQL by Zabbix agent'
                        name: 'PostgreSQL replication lag'
                    - type: STRING
                      name: reference
                      value: AAAAM
                - type: graph
                  'y': '15'
                  width: '36'
                  height: '5'
                  fields:
                    - type: GRAPH
                      name: graphid.0
                      value:
                        host: 'PostgreSQL by Zabbix agent'
                        name: 'PostgreSQL bgwriter'
                    - type: STRING
                      name: reference
                      value: AAAAO
                - type: graph
                  x: '36'
                  width: '36'
                  height: '5'
                  fields:
                    - type: GRAPH
                      name: graphid.0
                      value:
                        host: 'PostgreSQL by Zabbix agent'
                        name: 'PostgreSQL transactions'
                    - type: STRING
                      name: reference
                      value: AAAAJ
                - type: graph
                  x: '36'
                  'y': '5'
                  width: '36'
                  height: '5'
                  fields:
                    - type: GRAPH
                      name: graphid.0
                      value:
                        host: 'PostgreSQL by Zabbix agent'
                        name: 'PostgreSQL uptime'
                    - type: STRING
                      name: reference
                      value: AAAAL
                - type: graph
                  x: '36'
                  'y': '10'
                  width: '36'
                  height: '5'
                  fields:
                    - type: GRAPH
                      name: graphid.0
                      value:
                        host: 'PostgreSQL by Zabbix agent'
                        name: 'PostgreSQL WAL'
                    - type: STRING
                      name: reference
                      value: AAAAN
                - type: graph
                  x: '36'
                  'y': '15'
                  width: '36'
                  height: '5'
                  fields:
                    - type: GRAPH
                      name: graphid.0
                      value:
                        host: 'PostgreSQL by Zabbix agent'
                        name: 'PostgreSQL checkpoints'
                    - type: STRING
                      name: reference
                      value: AAAAP
      valuemaps:
        - uuid: 2e376ee568d04e7bbe98cbae4181f313
          name: 'PostgreSQL recovery role'
          mappings:
            - value: '0'
              newvalue: Master
            - value: '1'
              newvalue: Standby
        - uuid: 7f553f18ef6544ceaa4b50c4ebf0e583
          name: 'PostgreSQL replication status'
          mappings:
            - value: '0'
              newvalue: Down
            - value: '1'
              newvalue: Up
            - value: '2'
              newvalue: Master
        - uuid: 372bc939f3924aafa13c4821b83a9276
          name: 'Service state'
          mappings:
            - value: '0'
              newvalue: Down
            - value: '1'
              newvalue: Up
    - uuid: f9a59315c8944853bb91c0a9ec3056d7
      template: 'Windows by SNMP'
      name: 'Windows by SNMP'
      description: |
        This is an official Windows template. It requires an SNMP client.
        
        MIBs used:
        HOST-RESOURCES-MIB
        SNMPv2-MIB
        IF-MIB
        
        Known Issues:
        
          Description:
            64-bit I/O is not supported even though `IfxTable` is present.
            Currently, Windows gets its interface status from MIB-2. Since these 64-bit SNMP counters (`ifHCInOctets`, `ifHCOutOctets`, etc.) are defined as an extension to IF-MIB, Microsoft has not implemented it.
          Version: Win2008, Win2012R2.
        
          Description: MIB is not supported
          Version: WindowsXP
        
          Description: EtherLike MIB is not supported
          Version: any
        
          Description:
            HOST-RESOURCES-MIB::hrStorageSize is limited to number 2147483647.
            Storage size is calculated using: `hrStorageSize` and `hrStorageAllocationUnits`.
            Allocation size of 512 bytes, sets the limit of monitored device to 1TB.
          Version: any
        
        Generated by official Zabbix template tool "Templator"
      wizard_ready: 'YES'
      readme: |
        ## Overview
        
        This is an official Windows template. It requires an SNMP client.
        
        MIBs used:
        - HOST-RESOURCES-MIB
        - SNMPv2-MIB
        - IF-MIB
        
        ### Known Issues
        
        - 64-bit I/O is not supported even though `IfxTable` is present.
          Currently, Windows gets its interface status from MIB-2. Since these 64-bit SNMP counters (`ifHCInOctets`, `ifHCOutOctets`, etc.) are defined as an extension to IF-MIB, Microsoft has not implemented it.
          - Version: Win2008, Win2012R2.
        - `ifXTable` is not supported.
          - Version: WindowsXP
        - EtherLike MIB is not supported
          - Version: any
        - HOST-RESOURCES-MIB::hrStorageSize is limited to number 2147483647.
          Storage size is calculated using: `hrStorageSize` and `hrStorageAllocationUnits`.
          An allocation size of 512 bytes, sets the limit of monitored device to 1TB.
        
          | **hrStorageAllocationUnits**&nbsp;&nbsp; | &nbsp;&nbsp;**Max size (TB)**  |
          |:-----------------------------|-------------------:|
          | 512 bytes                    | 1                  |
          | 1024 bytes                   | 2                  |
          | 2048 bytes                   | 4                  |
          | 64 KB                        | 128                |
          - Version: any
      vendor:
        name: Zabbix
        version: 8.0-2
      groups:
        - name: 'Templates/Operating systems'
      items:
        - uuid: d751b3ead8cd4509a3f87c9bb4c89f00
          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: 08e22bd77606469d9e03183ec70dc89d
              expression: 'max(/Windows by SNMP/icmpping,#3)=0'
              name: 'Windows: Unavailable by ICMP ping'
              priority: HIGH
              description: 'Last three attempts returned timeout. Please check device connectivity.'
              tags:
                - tag: scope
                  value: availability
        - uuid: 9e311b1e5e8841da85c5ec6145d9c75f
          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: fa81e50132464ec486ea72929d18d778
              expression: 'min(/Windows by SNMP/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/Windows by SNMP/icmppingloss,5m)<100'
              name: 'Windows: High ICMP ping loss'
              opdata: 'Loss: {ITEM.LASTVALUE1}'
              priority: WARNING
              description: 'ICMP packets loss detected.'
              dependencies:
                - name: 'Windows: Unavailable by ICMP ping'
                  expression: 'max(/Windows by SNMP/icmpping,#3)=0'
              tags:
                - tag: scope
                  value: availability
                - tag: scope
                  value: performance
        - uuid: fba6328e6e6240f28c1b901a9c2fc376
          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: fba819f734de4b469fb7851501e55b21
              expression: 'avg(/Windows by SNMP/icmppingsec,5m)>{$ICMP_RESPONSE_TIME_WARN}'
              name: 'Windows: High ICMP ping response time'
              opdata: 'Value: {ITEM.LASTVALUE1}'
              priority: WARNING
              description: 'Average ICMP response time is too high.'
              dependencies:
                - name: 'Windows: High ICMP ping loss'
                  expression: 'min(/Windows by SNMP/icmppingloss,5m)>{$ICMP_LOSS_WARN} and min(/Windows by SNMP/icmppingloss,5m)<100'
                - name: 'Windows: Unavailable by ICMP ping'
                  expression: 'max(/Windows by SNMP/icmpping,#3)=0'
              tags:
                - tag: scope
                  value: availability
                - tag: scope
                  value: performance
        - uuid: 649fb89829c04fe9bec44e942aeb2b42
          name: 'Windows: 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.13,1.3.6.1.2.1.2.2.1.19,1.3.6.1.2.1.31.1.1.1.15,1.3.6.1.2.1.2.2.1.14,1.3.6.1.2.1.2.2.1.20]'
          key: net.if.walk
          history: '0'
          value_type: TEXT
          description: 'Discovering interfaces from IF-MIB.'
          tags:
            - tag: component
              value: raw
        - uuid: b75c480b7ec648a5b2762b20fc5c2ed8
          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: dd26c7a0a46240279bb907b8a1253029
          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: 16a592f6b9f64403999f92d677f1cd2e
          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: ad2261f1ab77449cb1279725e8cf02f9
              expression: 'min(/Windows by SNMP/system.cpu.util,5m)>{$CPU.UTIL.CRIT}'
              name: 'Windows: High CPU utilization'
              event_name: 'Windows: 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: e95e030765e84abfa5a51194e81ac719
          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: 422d9e4a985347959d5ef07278a6a12c
          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: d19b9bfdfe7344a28eaf69a1b7961adb
          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: 9feb2f561b3d4356bc6ef2cac955a495
          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: e257b5cf5d9949028c690722e4153612
              expression: 'last(/Windows by SNMP/system.name,#1)<>last(/Windows by SNMP/system.name,#2) and length(last(/Windows by SNMP/system.name))>0'
              name: 'Windows: System name has changed'
              event_name: 'Windows: 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: af7f47f4cf884282bbd9d296ba61b1c2
          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: c9e67b57c15747e8ab4f67e24837ce49
          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: bab2a178a60c4dddae8f11f8be344339
          name: 'Windows: SNMP walk mounted filesystems'
          type: SNMP_AGENT
          snmp_oid: 'walk[1.3.6.1.2.1.25.2.3.1.3,1.3.6.1.2.1.25.2.3.1.2,1.3.6.1.2.1.25.2.3.1.4,1.3.6.1.2.1.25.2.3.1.6,1.3.6.1.2.1.25.2.3.1.5]'
          key: vfs.fs.walk
          history: '0'
          value_type: TEXT
          description: 'HOST-RESOURCES-MIB::hrStorage discovery.'
          preprocessing:
            - type: SNMP_WALK_TO_JSON
              parameters:
                - hrStorageType
                - 1.3.6.1.2.1.25.2.3.1.2
                - '0'
                - hrStorageDescr
                - 1.3.6.1.2.1.25.2.3.1.3
                - '0'
                - hrStorageAllocationUnits
                - 1.3.6.1.2.1.25.2.3.1.4
                - '0'
                - hrStorageSize
                - 1.3.6.1.2.1.25.2.3.1.5
                - '0'
                - hrStorageUsed
                - 1.3.6.1.2.1.25.2.3.1.6
                - '0'
          tags:
            - tag: component
              value: raw
        - uuid: 4863042ade2143a0b34e1fc9403742b0
          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: a20254c09f7a4d4d9793da7b075121f3
              expression: 'max(/Windows by SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0'
              name: 'Windows: 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: 'Windows: Unavailable by ICMP ping'
                  expression: 'max(/Windows by SNMP/icmpping,#3)=0'
              tags:
                - tag: scope
                  value: availability
      discovery_rules:
        - uuid: 3c6bc0ce8a4c4452a3bd0c0c67a6995c
          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: 9208bd833e4044f395ac14c8213885de
              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: 758aca2642c146ddad89ed9934077533
              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: 713b5c5067174b90b686737606616664
              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: 2d76edd04b2c4d35a15fc04749edfedc
              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: 40fe302325ff452997f34cb05d517c59
              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: 48652cf9a87142d39df11617f354df36
              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: 389b55d85fcc49219a055d0db005c715
              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: 71e55a8fd22c443e8a39a44c4c22433b
              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: 101b888ea92348689bbc499bbe15b212
                  expression: '{$IFCONTROL:"{#IFNAME}"}=1 and last(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))'
                  recovery_mode: RECOVERY_EXPRESSION
                  recovery_expression: 'last(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0'
                  name: 'Windows: 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: ad62c98e35b24d0082c07ea4543963ad
              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: fe3e2d20c6eb475ba9f0e8f0c5766720
              expression: |
                change(/Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])<0 and last(/Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0
                and (
                last(/Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=6 or
                last(/Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=7 or
                last(/Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=11 or
                last(/Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=62 or
                last(/Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=69 or
                last(/Windows by SNMP/net.if.type[ifType.{#SNMPINDEX}])=117
                )
                and
                (last(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2)
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: |
                (change(/Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 and last(/Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}],#2)>0) or
                (last(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2)
              name: 'Windows: 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: 'Windows: Interface {#IFNAME}({#IFALIAS}): Link down'
                  expression: '{$IFCONTROL:"{#IFNAME}"}=1 and last(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))'
                  recovery_expression: 'last(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0'
              tags:
                - tag: scope
                  value: performance
            - uuid: 5ab179badc3747438cf988c437b7b735
              expression: |
                (avg(/Windows by SNMP/net.if.in[ifInOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) or
                avg(/Windows by SNMP/net.if.out[ifOutOctets.{#SNMPINDEX}],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])) and
                last(/Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: |
                avg(/Windows by SNMP/net.if.in[ifInOctets.{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}]) and
                avg(/Windows by SNMP/net.if.out[ifOutOctets.{#SNMPINDEX}],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Windows by SNMP/net.if.speed[ifHighSpeed.{#SNMPINDEX}])
              name: 'Windows: Interface {#IFNAME}({#IFALIAS}): High bandwidth usage'
              event_name: 'Windows: 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: 'Windows: Interface {#IFNAME}({#IFALIAS}): Link down'
                  expression: '{$IFCONTROL:"{#IFNAME}"}=1 and last(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))'
                  recovery_expression: 'last(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0'
              tags:
                - tag: scope
                  value: performance
            - uuid: 8acdf247d86b4b2785c92266291682ac
              expression: |
                min(/Windows by SNMP/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"}
                or min(/Windows by SNMP/net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"}
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: |
                max(/Windows by SNMP/net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8
                and max(/Windows by SNMP/net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8
              name: 'Windows: Interface {#IFNAME}({#IFALIAS}): High error rate'
              event_name: 'Windows: 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: 'Windows: Interface {#IFNAME}({#IFALIAS}): Link down'
                  expression: '{$IFCONTROL:"{#IFNAME}"}=1 and last(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}],#2))'
                  recovery_expression: 'last(/Windows by SNMP/net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$IFCONTROL:"{#IFNAME}"}=0'
              tags:
                - tag: scope
                  value: performance
          graph_prototypes:
            - uuid: 616105fbea704079b1257feb370367a5
              name: 'Interface {#IFNAME}({#IFALIAS}): Network traffic'
              graph_items:
                - drawtype: GRADIENT_LINE
                  color: 199C0D
                  item:
                    host: 'Windows by SNMP'
                    key: 'net.if.in[ifInOctets.{#SNMPINDEX}]'
                - sortorder: '1'
                  drawtype: BOLD_LINE
                  color: F63100
                  item:
                    host: 'Windows by SNMP'
                    key: 'net.if.out[ifOutOctets.{#SNMPINDEX}]'
                - sortorder: '2'
                  color: 00611C
                  yaxisside: RIGHT
                  item:
                    host: 'Windows by SNMP'
                    key: 'net.if.out.errors[ifOutErrors.{#SNMPINDEX}]'
                - sortorder: '3'
                  color: F7941D
                  yaxisside: RIGHT
                  item:
                    host: 'Windows by SNMP'
                    key: 'net.if.in.errors[ifInErrors.{#SNMPINDEX}]'
                - sortorder: '4'
                  color: FC6EA3
                  yaxisside: RIGHT
                  item:
                    host: 'Windows by SNMP'
                    key: 'net.if.out.discards[ifOutDiscards.{#SNMPINDEX}]'
                - sortorder: '5'
                  color: 6C59DC
                  yaxisside: RIGHT
                  item:
                    host: 'Windows 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: b2c0a897e22d438f8b1bbff44e493b13
          name: 'Mounted filesystem discovery'
          type: DEPENDENT
          key: 'vfs.fs.discovery[snmp]'
          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: 1524fab7760340b1a6eb8f5368d11edd
              name: 'FS [{#FSNAME}]: Space: Used, in %'
              type: DEPENDENT
              key: 'vfs.fs.pused[{#SNMPINDEX}]'
              value_type: FLOAT
              units: '%'
              description: 'The space utilization expressed in % for {#FSNAME}.'
              preprocessing:
                - type: JAVASCRIPT
                  parameters:
                    - |
                      var obj = JSON.parse(value);
                      
                      var total = obj["hrStorageSize"];
                      var used  = obj["hrStorageUsed"];
                      
                      if (total <= 0) {
                      	return 0;
                      } else {
                      	return (100 * used / total);
                      }
              master_item:
                key: 'vfs.fs.walk.data[hrStorage.{#SNMPINDEX}]'
              tags:
                - tag: component
                  value: storage
                - tag: filesystem
                  value: '{#FSNAME}'
              trigger_prototypes:
                - uuid: 597ea2f6059746c0b2e5b7312f764224
                  expression: 'min(/Windows by SNMP/vfs.fs.pused[{#SNMPINDEX}],5m)>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}'
                  name: 'Windows: FS [{#FSNAME}]: Space is critically low'
                  event_name: 'Windows: FS [{#FSNAME}]: Space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%, total {{?last(//vfs.fs.total[hrStorageSize.{#SNMPINDEX}])/1024/1024/1024}.fmtnum(1)}GB)'
                  opdata: 'Space used: {{ITEM.LASTVALUE1}.fmtnum(1)}%'
                  priority: AVERAGE
                  description: 'The storage space usage exceeds the ''{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%'' limit.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: availability
                    - tag: scope
                      value: capacity
                - uuid: 028b24edaf9c4640a2316845f50a4a7e
                  expression: 'min(/Windows by SNMP/vfs.fs.pused[{#SNMPINDEX}],5m)>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}'
                  name: 'Windows: FS [{#FSNAME}]: Space is low'
                  event_name: 'Windows: FS [{#FSNAME}]: Space is low (used > {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%, total {{?last(//vfs.fs.total[hrStorageSize.{#SNMPINDEX}])/1024/1024/1024}.fmtnum(1)}GB)'
                  opdata: 'Space used: {{ITEM.LASTVALUE1}.fmtnum(1)}%'
                  priority: WARNING
                  description: 'The storage space usage exceeds the ''{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%'' limit.'
                  manual_close: 'YES'
                  dependencies:
                    - name: 'Windows: FS [{#FSNAME}]: Space is critically low'
                      expression: 'min(/Windows by SNMP/vfs.fs.pused[{#SNMPINDEX}],5m)>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}'
                  tags:
                    - tag: scope
                      value: availability
                    - tag: scope
                      value: capacity
            - uuid: 19d244950a414faa86cbcaf0d2859cbd
              name: 'FS [{#FSNAME}]: Space: Total'
              type: DEPENDENT
              key: 'vfs.fs.total[hrStorageSize.{#SNMPINDEX}]'
              value_type: FLOAT
              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: JSONPATH
                  parameters:
                    - $.hrStorageSize
                - type: MULTIPLIER
                  parameters:
                    - '{#ALLOC_UNITS}'
              master_item:
                key: 'vfs.fs.walk.data[hrStorage.{#SNMPINDEX}]'
              tags:
                - tag: component
                  value: storage
                - tag: filesystem
                  value: '{#FSNAME}'
            - uuid: 2d00ecfcea564fef8b94d293d023b709
              name: 'FS [{#FSNAME}]: Space: Used'
              type: DEPENDENT
              key: 'vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]'
              value_type: FLOAT
              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: JSONPATH
                  parameters:
                    - $.hrStorageUsed
                - type: MULTIPLIER
                  parameters:
                    - '{#ALLOC_UNITS}'
              master_item:
                key: 'vfs.fs.walk.data[hrStorage.{#SNMPINDEX}]'
              tags:
                - tag: component
                  value: storage
                - tag: filesystem
                  value: '{#FSNAME}'
            - uuid: 0dbd5de181fe44e1970e2f9622ad76b1
              name: 'FS [{#FSNAME}]: Get data'
              type: DEPENDENT
              key: 'vfs.fs.walk.data[hrStorage.{#SNMPINDEX}]'
              history: 1h
              value_type: TEXT
              description: |
                HOST-RESOURCES-MIB::hrStorage.
                Intermediate data for subsequent processing.
              preprocessing:
                - type: JAVASCRIPT
                  parameters:
                    - |
                      var data = JSON.parse(value);
                      
                      result = data.filter(function(obj) {
                      	return obj["{\#SNMPINDEX}"] === "{#SNMPINDEX}";
                      })[0];
                      
                      return JSON.stringify(result);
              master_item:
                key: vfs.fs.walk
              tags:
                - tag: component
                  value: raw
                - tag: component
                  value: storage
                - tag: filesystem
                  value: '{#FSNAME}'
          graph_prototypes:
            - uuid: 323304e5268b4430984706d38ac77a96
              name: 'FS [{#FSNAME}]: Space usage graph, in %'
              width: '600'
              height: '340'
              ymin_type_1: FIXED
              ymax_type_1: FIXED
              graph_items:
                - drawtype: FILLED_REGION
                  color: F63100
                  calc_fnc: ALL
                  item:
                    host: 'Windows by SNMP'
                    key: 'vfs.fs.pused[{#SNMPINDEX}]'
            - uuid: 2c1a1d995f8646dd82739a56e411ccf4
              name: 'FS [{#FSNAME}]: Space utilization chart'
              width: '600'
              height: '340'
              type: PIE
              show_3d: 'YES'
              graph_items:
                - color: '969696'
                  calc_fnc: LAST
                  type: GRAPH_SUM
                  item:
                    host: 'Windows by SNMP'
                    key: 'vfs.fs.total[hrStorageSize.{#SNMPINDEX}]'
                - sortorder: '1'
                  color: C80000
                  calc_fnc: LAST
                  item:
                    host: 'Windows by SNMP'
                    key: 'vfs.fs.used[hrStorageUsed.{#SNMPINDEX}]'
          master_item:
            key: vfs.fs.walk
          lld_macro_paths:
            - lld_macro: '{#ALLOC_UNITS}'
              path: $.hrStorageAllocationUnits
            - lld_macro: '{#FSNAME}'
              path: $.hrStorageDescr
            - lld_macro: '{#FSTYPE}'
              path: $.hrStorageType
            - lld_macro: '{#SNMPINDEX}'
              path: $.index
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  var filesystems = JSON.parse(value);
                  
                  result = filesystems.map(function (filesystem) {
                  	return {
                  		'hrStorageDescr': filesystem.hrStorageDescr,
                  		'hrStorageType': filesystem.hrStorageType,
                  		'hrStorageAllocationUnits': filesystem.hrStorageAllocationUnits,
                  		'index': filesystem['{#SNMPINDEX}']
                  	};
                  });
                  
                  return JSON.stringify(result);
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
        - uuid: 23bb0567e4194546a09da96ded5182dd
          name: 'Memory discovery'
          type: DEPENDENT
          key: vm.memory.discovery
          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: ef95155004f64f9f95a794c1e5fe9131
              name: '{#MEMNAME}: Get data'
              type: DEPENDENT
              key: 'vm.memory.data[{#SNMPINDEX}]'
              history: 1h
              value_type: TEXT
              description: |
                MIB: HOST-RESOURCES-MIB
                The amount of the storage represented by this entry that is allocated, in units of hrStorageAllocationUnits.
              preprocessing:
                - type: JAVASCRIPT
                  parameters:
                    - |
                      var data = JSON.parse(value);
                      
                      result = data.filter(function(obj) {
                      	return obj["{\#SNMPINDEX}"] === "{#SNMPINDEX}";
                      })[0];
                      
                      return JSON.stringify(result);
              master_item:
                key: vfs.fs.walk
              tags:
                - tag: component
                  value: memory
                - tag: component
                  value: raw
            - uuid: 71453175f6f54027a8e428b7438af99a
              name: '{#MEMNAME}: Used'
              type: DEPENDENT
              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: JSONPATH
                  parameters:
                    - $.hrStorageUsed
                - type: MULTIPLIER
                  parameters:
                    - '{#ALLOC_UNITS}'
              master_item:
                key: 'vm.memory.data[{#SNMPINDEX}]'
              tags:
                - tag: component
                  value: memory
            - uuid: 5ccc66d7a78f4501b794bd46759c738b
              name: '{#MEMNAME}: Utilization'
              type: DEPENDENT
              key: 'vm.memory.util[{#SNMPINDEX}]'
              value_type: FLOAT
              units: '%'
              description: 'Memory utilization in %.'
              preprocessing:
                - type: JAVASCRIPT
                  parameters:
                    - |
                      var obj = JSON.parse(value);
                      
                      var total = obj["hrStorageSize"];
                      var used  = obj["hrStorageUsed"];
                      
                      if (total <= 0) {
                      	return 0;
                      } else {
                      	return (100 * used / total);
                      }
              master_item:
                key: 'vm.memory.data[{#SNMPINDEX}]'
              tags:
                - tag: component
                  value: memory
              trigger_prototypes:
                - uuid: ab4b4ad08664454096f5e2cf3b7da1e9
                  expression: 'min(/Windows by SNMP/vm.memory.util[{#SNMPINDEX}],5m)>{$MEMORY.UTIL.MAX}'
                  name: 'Windows: {#MEMNAME}: High memory utilization'
                  event_name: 'Windows: {#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
            - uuid: ea1c8d22d38042f7ac824d59b9d6a720
              name: '{#MEMNAME}: Total'
              type: DEPENDENT
              key: 'vm.memory.walk.data.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: JSONPATH
                  parameters:
                    - $.hrStorageSize
                - type: MULTIPLIER
                  parameters:
                    - '{#ALLOC_UNITS}'
              master_item:
                key: 'vm.memory.data[{#SNMPINDEX}]'
              tags:
                - tag: component
                  value: memory
          graph_prototypes:
            - uuid: 864bc9c487984f68b4da443b8af6c448
              name: '{#MEMNAME}: Memory utilization'
              ymin_type_1: FIXED
              ymax_type_1: FIXED
              graph_items:
                - drawtype: GRADIENT_LINE
                  color: F63100
                  item:
                    host: 'Windows by SNMP'
                    key: 'vm.memory.util[{#SNMPINDEX}]'
          master_item:
            key: vfs.fs.walk
          lld_macro_paths:
            - lld_macro: '{#ALLOC_UNITS}'
              path: $.hrStorageAllocationUnits
            - lld_macro: '{#MEMNAME}'
              path: $.hrStorageDescr
            - lld_macro: '{#MEMTYPE}'
              path: $.hrStorageType
            - lld_macro: '{#SNMPINDEX}'
              path: $.index
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  var filesystems = JSON.parse(value);
                  
                  result = filesystems.map(function (filesystem) {
                  	return {
                  		'hrStorageDescr': filesystem.hrStorageDescr,
                  		'hrStorageType': filesystem.hrStorageType,
                  		'hrStorageAllocationUnits': filesystem.hrStorageAllocationUnits,
                  		'index': filesystem['{#SNMPINDEX}']
                  	};
                  });
                  
                  return JSON.stringify(result);
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
      tags:
        - tag: class
          value: os
        - tag: target
          value: windows
      macros:
        - macro: '{$CPU.UTIL.CRIT}'
          value: '90'
          description: 'Critical threshold of CPU utilization expressed in %.'
          config:
            type: TEXT
            priority: '15'
            section_name: Thresholds
            label: 'Threshold for CPU utilization (critical)'
            description: 'Critical threshold of CPU utilization expressed 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: '2'
            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: '3'
            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: '18'
            section_name: Thresholds
            label: 'Threshold of error packet rate'
            description: 'Warning threshold of error packet rate. In the range from 0 to 100 inclusive.'
            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: '17'
            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: '16'
            label: 'Interfaces control'
            description: 'Fire a trigger when the interface operational status changes to "Link down".'
            options:
              - checked: '1'
                unchecked: '0'
        - macro: '{$MEMORY.NAME.MATCHES}'
          value: '.*'
          description: 'Used in memory discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '13'
            section_name: Filters
            label: 'Filter memory by name'
            description: 'Memory discovery.'
        - macro: '{$MEMORY.NAME.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          description: '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: '14'
            section_name: Filters
            label: 'Filter memory by name (exclude)'
            description: 'Memory discovery.'
        - macro: '{$MEMORY.TYPE.MATCHES}'
          value: '.*(\.2|hrStorageRam)$'
          description: 'Used in memory discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '11'
            section_name: Filters
            label: 'Filter memory by type'
            description: 'Memory discovery.'
        - macro: '{$MEMORY.TYPE.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          description: '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: '12'
            section_name: Filters
            label: 'Filter memory by type (exclude)'
            description: 'Memory discovery.'
        - macro: '{$MEMORY.UTIL.MAX}'
          value: '90'
          description: 'The warning threshold of the "Physical memory: Memory utilization" item.'
          config:
            type: TEXT
            priority: '10'
            section_name: Thresholds
            label: 'Threshold for memory utilization'
            description: '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: '^.*$'
          description: 'Used in network interface discovery rule filters.'
          config:
            type: TEXT
            priority: '23'
            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: '24'
            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: '27'
            section_name: Filters
            label: 'Filter for network interfaces 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: '28'
            section_name: Filters
            label: 'Filter for network interfaces 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: '25'
            section_name: Filters
            label: 'Filter for network interfaces by description'
            description: 'Regex string to include discovered interface by description.'
        - macro: '{$NET.IF.IFDESCR.NOT_MATCHES}'
          value: Miniport|Virtual|Teredo|Kernel|Loopback|Bluetooth|HTTPS|6to4|QoS|Layer|isatap|ISATAP
          description: 'Used in network interface discovery rule filters.'
          config:
            type: TEXT
            priority: '26'
            section_name: Filters
            label: 'Filter for network interfaces 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: '19'
            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: '20'
            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: '21'
            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: '22'
            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: '29'
            section_name: Filters
            label: 'Filter for network interfaces 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: '30'
            section_name: Filters
            label: 'Filter for network interfaces 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: '1'
            section_name: Other
            label: 'Time interval'
            description: 'Time interval for the SNMP availability trigger.'
        - 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: '6'
            section_name: Filters
            label: 'Filter for filesystems by name'
            description: 'Filesystem discovery.'
        - 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: '7'
            section_name: Filters
            label: 'Filter for filesystems by name (exclude)'
            description: 'Filesystem discovery.'
        - 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: '8'
            section_name: Filters
            label: 'Filter for filesystems by type'
            description: 'Filesystem discovery.'
        - 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: '9'
            section_name: Filters
            label: 'Filter for filesystems by type (exclude)'
            description: 'Filesystem discovery.'
        - macro: '{$VFS.FS.PUSED.MAX.CRIT}'
          value: '90'
          description: 'The critical threshold of the filesystem utilization.'
          config:
            type: TEXT
            priority: '5'
            section_name: Thresholds
            label: 'Threshold for filesystem utilization (critical)'
            description: 'Critical threshold of the filesystem utilization. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$VFS.FS.PUSED.MAX.WARN}'
          value: '80'
          description: 'The warning threshold of the filesystem utilization.'
          config:
            type: TEXT
            priority: '4'
            section_name: Thresholds
            label: 'Threshold for filesystem utilization (warning)'
            description: 'Warning threshold of the filesystem utilization. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
      dashboards:
        - uuid: e032b55da5994e3abebba924fede59ec
          name: Filesystems
          pages:
            - name: Overview
              widgets:
                - type: graphprototype
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '3'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'Windows by SNMP'
                        name: 'FS [{#FSNAME}]: Space utilization chart'
                    - type: STRING
                      name: reference
                      value: AAAEB
                - type: graphprototype
                  'y': '5'
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'Windows by SNMP'
                        name: 'FS [{#FSNAME}]: Space usage graph, in %'
                    - type: STRING
                      name: reference
                      value: AAAEC
        - uuid: 8aeb65d3f8b645d28994cdc680c0f0fd
          name: 'Network interfaces'
          pages:
            - widgets:
                - type: graphprototype
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'Windows by SNMP'
                        name: 'Interface {#IFNAME}({#IFALIAS}): Network traffic'
                    - type: STRING
                      name: reference
                      value: AAAAA
        - uuid: 3b28bdbfdb6d4cf1a69c7466a4f059f3
          name: 'System performance'
          pages:
            - widgets:
                - type: graphprototype
                  width: '36'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'Windows by SNMP'
                        name: '{#MEMNAME}: Memory utilization'
                    - type: STRING
                      name: reference
                      value: AAAAC
                - type: graphprototype
                  'y': '5'
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '3'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'Windows by SNMP'
                        name: 'FS [{#FSNAME}]: Space utilization chart'
                    - type: STRING
                      name: reference
                      value: AAAEA
                - type: graph
                  x: '36'
                  width: '36'
                  height: '5'
                  fields:
                    - type: GRAPH
                      name: graphid.0
                      value:
                        host: 'Windows by SNMP'
                        name: 'Windows: CPU utilization'
                    - type: STRING
                      name: reference
                      value: AAAAB
      valuemaps:
        - uuid: 2357d81186e34d5b91db98c2350e0bdf
          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: b3f64ce647bc4647a692f2e3bafa3760
          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: 43b61695bdf347cb8ec9bd23e7cdbc88
          name: 'Service state'
          mappings:
            - value: '0'
              newvalue: Down
            - value: '1'
              newvalue: Up
        - uuid: a979f49c325344e0b6c064b829a21f62
          name: zabbix.host.available
          mappings:
            - value: '0'
              newvalue: 'not available'
            - value: '1'
              newvalue: available
            - value: '2'
              newvalue: unknown
    - uuid: dd114bf0fb2f46bc84840f1bb24e2b23
      template: 'Zabbix proxy health'
      name: 'Zabbix proxy health'
      description: |
        This template is designed to monitor internal Zabbix metrics on the local Zabbix proxy.
        
        Link this template to the local Zabbix proxy host.
        
        Generated by official Zabbix template tool "Templator"
      wizard_ready: 'YES'
      readme: |
        ## Overview
        
        This template is designed to monitor internal Zabbix metrics on the local Zabbix proxy.
        
        ## Setup
        
        Link this template to the local Zabbix proxy host.
      vendor:
        name: Zabbix
        version: 8.0-1
      groups:
        - name: Templates/Applications
      items:
        - uuid: ca8a1cafec6e44a4b31f9ec5a6ed00cb
          name: 'Discovery queue'
          type: INTERNAL
          key: 'zabbix[discovery_queue]'
          description: 'The count of values enqueued in the discovery queue.'
          tags:
            - tag: component
              value: system
        - uuid: 04c6d40c682d49c996f0ec986fb6b73d
          name: 'Zabbix preprocessing'
          type: INTERNAL
          key: 'zabbix[preprocessing]'
          history: '0'
          value_type: TEXT
          description: 'The master item of Zabbix server''s preprocessing statistics.'
          tags:
            - tag: component
              value: raw
        - uuid: 0230306272c24858b49243ef1c61e2ec
          name: 'Preprocessing queue'
          type: DEPENDENT
          key: 'zabbix[preprocessing_queue]'
          description: 'The number of values enqueued in the preprocessing queue.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.queue
          master_item:
            key: 'zabbix[preprocessing]'
          tags:
            - tag: component
              value: system
        - uuid: 2383d1301bda41fcaff369972b75f244
          name: 'Preprocessing direct throughput'
          type: DEPENDENT
          key: 'zabbix[preprocessing_throughput_direct]'
          value_type: FLOAT
          units: Bps
          description: 'Reflects the direct throughput of the preprocessing.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.direct.size
            - type: CHANGE_PER_SECOND
          master_item:
            key: 'zabbix[preprocessing]'
          tags:
            - tag: component
              value: system
        - uuid: c0a8e2338288411f88078afe0874a296
          name: 'Preprocessing queued throughput'
          type: DEPENDENT
          key: 'zabbix[preprocessing_throughput_queued]'
          value_type: FLOAT
          units: Bps
          description: 'Reflects the queued throughput of the preprocessing.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.queued.size
            - type: CHANGE_PER_SECOND
          master_item:
            key: 'zabbix[preprocessing]'
          tags:
            - tag: component
              value: system
        - uuid: 7f96b7f3a93b48f086568331860b7705
          name: 'Preprocessing direct VPS'
          type: DEPENDENT
          key: 'zabbix[preprocessing_vps_direct]'
          value_type: FLOAT
          units: '!vps'
          description: 'Reflects the count of direct preprocessing values per second.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.direct.count
            - type: CHANGE_PER_SECOND
          master_item:
            key: 'zabbix[preprocessing]'
          tags:
            - tag: component
              value: system
        - uuid: 415eebc4407b4c83935b2ec6d0d9b4a3
          name: 'Preprocessing queued VPS'
          type: DEPENDENT
          key: 'zabbix[preprocessing_vps_queued]'
          value_type: FLOAT
          units: '!vps'
          description: 'Reflects the count of queued preprocessing values per second.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.queued.count
            - type: CHANGE_PER_SECOND
          master_item:
            key: 'zabbix[preprocessing]'
          tags:
            - tag: component
              value: system
        - uuid: 998df832cf58436ea7707331338d5f3b
          name: 'Utilization of agent poller data collector processes, in %'
          type: INTERNAL
          key: 'zabbix[process,agent poller,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the agent poller processes have been busy for the last minute.'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: 5abbe55bf614492d982e4af0f11b01e2
              expression: 'avg(/Zabbix proxy health/zabbix[process,agent poller,avg,busy],10m)>{$ZABBIX.PROXY.UTIL.MAX:"agent poller"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix proxy health/zabbix[process,agent poller,avg,busy],10m)<{$ZABBIX.PROXY.UTIL.MIN:"agent poller"}'
              name: 'Zabbix proxy: Utilization of agent poller processes is high'
              event_name: 'Zabbix proxy: Utilization of agent poller processes over {$ZABBIX.PROXY.UTIL.MAX:"agent poller"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the agent poller, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 5131f979c17a4346a95f8ba77e7133a4
          name: 'Utilization of availability manager internal processes, in %'
          type: INTERNAL
          key: 'zabbix[process,availability manager,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the availability manager processes have been busy for the last minute.'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: 5a8375a8eee642f2940ed813ee062336
              expression: 'avg(/Zabbix proxy health/zabbix[process,availability manager,avg,busy],10m)>{$ZABBIX.PROXY.UTIL.MAX:"availability manager"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix proxy health/zabbix[process,availability manager,avg,busy],10m)<{$ZABBIX.PROXY.UTIL.MIN:"availability manager"}'
              name: 'Zabbix proxy: Utilization of availability manager processes is high'
              event_name: 'Zabbix proxy: Utilization of availability manager processes over {$ZABBIX.PROXY.UTIL.MAX:"availability manager"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the availability manager, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 3ec67d79691b432c8a357fedfec77e6d
          name: 'Utilization of browser poller data collector processes, in %'
          type: INTERNAL
          key: 'zabbix[process,browser poller,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the browser poller processes have been busy for the last minute.'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: 5cdced4b0c064f62802c360fa84408db
              expression: 'avg(/Zabbix proxy health/zabbix[process,browser poller,avg,busy],10m)>{$ZABBIX.PROXY.UTIL.MAX:"browser poller"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix proxy health/zabbix[process,browser poller,avg,busy],10m)<{$ZABBIX.PROXY.UTIL.MIN:"browser poller"}'
              name: 'Zabbix proxy: Utilization of browser poller processes is high'
              event_name: 'Zabbix proxy: Utilization of browser poller processes over {$ZABBIX.PROXY.UTIL.MAX:"browser poller"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the browser poller, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 3d1bfa64a447427da0b463c3617b212e
          name: 'Utilization of configuration syncer internal processes, in %'
          type: INTERNAL
          key: 'zabbix[process,configuration syncer,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the configuration syncer processes have been busy for the last minute.'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: 27eb861e2e6f43f69f17b8ba65bfedcc
              expression: 'avg(/Zabbix proxy health/zabbix[process,configuration syncer,avg,busy],10m)>{$ZABBIX.PROXY.UTIL.MAX:"configuration syncer"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix proxy health/zabbix[process,configuration syncer,avg,busy],10m)<{$ZABBIX.PROXY.UTIL.MIN:"configuration syncer"}'
              name: 'Zabbix proxy: Utilization of configuration syncer processes is high'
              event_name: 'Zabbix proxy: Utilization of configuration syncer processes over {$ZABBIX.PROXY.UTIL.MAX:"configuration syncer"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the configuration syncer, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 69eefd6aba164d71b0a2b8d2df06e9a3
          name: 'Utilization of data sender internal processes, in %'
          type: INTERNAL
          key: 'zabbix[process,data sender,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the data sender processes have been busy for the last minute.'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: e8fd57784b9e4289aa4515cfa7c6c4ad
              expression: 'avg(/Zabbix proxy health/zabbix[process,data sender,avg,busy],10m)>{$ZABBIX.PROXY.UTIL.MAX:"data sender"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix proxy health/zabbix[process,data sender,avg,busy],10m)<{$ZABBIX.PROXY.UTIL.MIN:"data sender"}'
              name: 'Zabbix proxy: Utilization of data sender processes is high'
              event_name: 'Zabbix proxy: Utilization of data sender processes over {$ZABBIX.PROXY.UTIL.MAX:"data sender"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the data sender, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 930bf9db6c754a17ab5026961d6369ba
          name: 'Utilization of discovery manager internal processes, in %'
          type: INTERNAL
          key: 'zabbix[process,discovery manager,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the discovery manager processes have been busy for the last minute.'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: e1dd2821756d489cb5443c924e57c356
              expression: 'avg(/Zabbix proxy health/zabbix[process,discovery manager,avg,busy],10m)>{$ZABBIX.PROXY.UTIL.MAX:"discovery manager"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix proxy health/zabbix[process,discovery manager,avg,busy],10m)<{$ZABBIX.PROXY.UTIL.MIN:"discovery manager"}'
              name: 'Zabbix proxy: Utilization of discovery manager processes is high'
              event_name: 'Zabbix proxy: Utilization of discovery manager processes over {$ZABBIX.PROXY.UTIL.MAX:"discovery manager"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the discovery manager, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: eeee7e927a854b61b166a13b8eb98f28
          name: 'Utilization of discovery worker internal processes, in %'
          type: INTERNAL
          key: 'zabbix[process,discovery worker,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the discovery worker processes have been busy for the last minute.'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: ff023c3fce664dff9fdcb3f8724f4832
              expression: 'avg(/Zabbix proxy health/zabbix[process,discovery worker,avg,busy],10m)>{$ZABBIX.PROXY.UTIL.MAX:"discovery worker"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix proxy health/zabbix[process,discovery worker,avg,busy],10m)<{$ZABBIX.PROXY.UTIL.MIN:"discovery worker"}'
              name: 'Zabbix proxy: Utilization of discovery worker processes is high'
              event_name: 'Zabbix proxy: Utilization of discovery worker processes over {$ZABBIX.PROXY.UTIL.MAX:"discovery worker"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the discovery worker, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 7dde8cd03e5043a2bd484f7213a5f112
          name: 'Utilization of history syncer internal processes, in %'
          type: INTERNAL
          key: 'zabbix[process,history syncer,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the history syncer processes have been busy for the last minute.'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: 52fb303ec9164aa28821117f3a559fe3
              expression: 'avg(/Zabbix proxy health/zabbix[process,history syncer,avg,busy],10m)>{$ZABBIX.PROXY.UTIL.MAX:"history syncer"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix proxy health/zabbix[process,history syncer,avg,busy],10m)<{$ZABBIX.PROXY.UTIL.MIN:"history syncer"}'
              name: 'Zabbix proxy: Utilization of history syncer processes is high'
              event_name: 'Zabbix proxy: Utilization of history syncer processes over {$ZABBIX.PROXY.UTIL.MAX:"history syncer"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the history syncer, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 31f0355f4d7c4de6b0d6f206d1ca9fa3
          name: 'Utilization of housekeeper internal processes, in %'
          type: INTERNAL
          key: 'zabbix[process,housekeeper,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the housekeeper processes have been busy for the last minute.'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: b6cbede80a4847ed94a0ba818b7ca261
              expression: 'avg(/Zabbix proxy health/zabbix[process,housekeeper,avg,busy],10m)>{$ZABBIX.PROXY.UTIL.MAX:"housekeeper"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix proxy health/zabbix[process,housekeeper,avg,busy],10m)<{$ZABBIX.PROXY.UTIL.MIN:"housekeeper"}'
              name: 'Zabbix proxy: Utilization of housekeeper processes is high'
              event_name: 'Zabbix proxy: Utilization of housekeeper processes over {$ZABBIX.PROXY.UTIL.MAX:"housekeeper"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the housekeeper, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 584c5ee90cff40e2befc38061ce8e7e7
          name: 'Utilization of http agent poller data collector processes, in %'
          type: INTERNAL
          key: 'zabbix[process,http agent poller,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the http agent poller processes have been busy for the last minute.'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: a5d7a54efea843c495795d14bbff166b
              expression: 'avg(/Zabbix proxy health/zabbix[process,http agent poller,avg,busy],10m)>{$ZABBIX.PROXY.UTIL.MAX:"http agent poller"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix proxy health/zabbix[process,http agent poller,avg,busy],10m)<{$ZABBIX.PROXY.UTIL.MIN:"http agent poller"}'
              name: 'Zabbix proxy: Utilization of http agent poller processes is high'
              event_name: 'Zabbix proxy: Utilization of http agent poller processes over {$ZABBIX.PROXY.UTIL.MAX:"http agent poller"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the http agent poller, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 782b11dbe3ce47e3b9098c43d83057ad
          name: 'Utilization of http poller data collector processes, in %'
          type: INTERNAL
          key: 'zabbix[process,http poller,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the http poller processes have been busy for the last minute.'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: e93e5a3dd27f4d378bbfe2c8e5b009e7
              expression: 'avg(/Zabbix proxy health/zabbix[process,http poller,avg,busy],10m)>{$ZABBIX.PROXY.UTIL.MAX:"http poller"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix proxy health/zabbix[process,http poller,avg,busy],10m)<{$ZABBIX.PROXY.UTIL.MIN:"http poller"}'
              name: 'Zabbix proxy: Utilization of http poller processes is high'
              event_name: 'Zabbix proxy: Utilization of http poller processes over {$ZABBIX.PROXY.UTIL.MAX:"http poller"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the http poller, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 9b899ab317b447d1a82d1136e0a2ff6f
          name: 'Utilization of icmp pinger data collector processes, in %'
          type: INTERNAL
          key: 'zabbix[process,icmp pinger,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the icmp pinger processes have been busy for the last minute.'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: d514f4a08bcd4fe2b696015a74ffafcf
              expression: 'avg(/Zabbix proxy health/zabbix[process,icmp pinger,avg,busy],10m)>{$ZABBIX.PROXY.UTIL.MAX:"icmp pinger"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix proxy health/zabbix[process,icmp pinger,avg,busy],10m)<{$ZABBIX.PROXY.UTIL.MIN:"icmp pinger"}'
              name: 'Zabbix proxy: Utilization of icmp pinger processes is high'
              event_name: 'Zabbix proxy: Utilization of icmp pinger processes over {$ZABBIX.PROXY.UTIL.MAX:"icmp pinger"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the icmp pinger, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: a1278ad64af9401a834cd09b0c2f5766
          name: 'Utilization of internal poller data collector processes, in %'
          type: INTERNAL
          key: 'zabbix[process,internal poller,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the internal poller processes have been busy for the last minute.'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: 3bc0e6ab1a9e470682d049840df4ce5a
              expression: 'avg(/Zabbix proxy health/zabbix[process,internal poller,avg,busy],10m)>{$ZABBIX.PROXY.UTIL.MAX:"internal poller"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix proxy health/zabbix[process,internal poller,avg,busy],10m)<{$ZABBIX.PROXY.UTIL.MIN:"internal poller"}'
              name: 'Zabbix proxy: Utilization of internal poller processes is high'
              event_name: 'Zabbix proxy: Utilization of internal poller processes over {$ZABBIX.PROXY.UTIL.MAX:"internal poller"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the internal poller, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 52b3123dfef94d8bba1b1a13314a9d4f
          name: 'Utilization of ipmi manager internal processes, in %'
          type: INTERNAL
          key: 'zabbix[process,ipmi manager,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the ipmi manager processes have been busy for the last minute.'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: 751e3000367f42d9af0d4418f3472a91
              expression: 'avg(/Zabbix proxy health/zabbix[process,ipmi manager,avg,busy],10m)>{$ZABBIX.PROXY.UTIL.MAX:"ipmi manager"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix proxy health/zabbix[process,ipmi manager,avg,busy],10m)<{$ZABBIX.PROXY.UTIL.MIN:"ipmi manager"}'
              name: 'Zabbix proxy: Utilization of ipmi manager processes is high'
              event_name: 'Zabbix proxy: Utilization of ipmi manager processes over {$ZABBIX.PROXY.UTIL.MAX:"ipmi manager"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the ipmi manager, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 7cfb2f1504dd4b0aaac804b132d49bc5
          name: 'Utilization of ipmi poller data collector processes, in %'
          type: INTERNAL
          key: 'zabbix[process,ipmi poller,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the ipmi poller processes have been busy for the last minute.'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: 99ce9f0ed6204860b7b943e9e3a5fbc0
              expression: 'avg(/Zabbix proxy health/zabbix[process,ipmi poller,avg,busy],10m)>{$ZABBIX.PROXY.UTIL.MAX:"ipmi poller"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix proxy health/zabbix[process,ipmi poller,avg,busy],10m)<{$ZABBIX.PROXY.UTIL.MIN:"ipmi poller"}'
              name: 'Zabbix proxy: Utilization of ipmi poller processes is high'
              event_name: 'Zabbix proxy: Utilization of ipmi poller processes over {$ZABBIX.PROXY.UTIL.MAX:"ipmi poller"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the ipmi poller, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 02214c0c38394bef8d648369584ae30b
          name: 'Utilization of java poller data collector processes, in %'
          type: INTERNAL
          key: 'zabbix[process,java poller,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the java poller processes have been busy for the last minute.'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: 5b8cc59c21b145739e346479124c48f5
              expression: 'avg(/Zabbix proxy health/zabbix[process,java poller,avg,busy],10m)>{$ZABBIX.PROXY.UTIL.MAX:"java poller"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix proxy health/zabbix[process,java poller,avg,busy],10m)<{$ZABBIX.PROXY.UTIL.MIN:"java poller"}'
              name: 'Zabbix proxy: Utilization of java poller processes is high'
              event_name: 'Zabbix proxy: Utilization of java poller processes over {$ZABBIX.PROXY.UTIL.MAX:"java poller"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the java poller, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 06bdbdcfdbc04c24ad387b256e430801
          name: 'Utilization of ODBC poller data collector processes, in %'
          type: INTERNAL
          key: 'zabbix[process,odbc poller,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the ODBC poller processes have been busy for the last minute.'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: 3177430235ac4eeaa23b8c39987989cc
              expression: 'avg(/Zabbix proxy health/zabbix[process,odbc poller,avg,busy],10m)>{$ZABBIX.PROXY.UTIL.MAX:"ODBC poller"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix proxy health/zabbix[process,odbc poller,avg,busy],10m)<{$ZABBIX.PROXY.UTIL.MIN:"ODBC poller"}'
              name: 'Zabbix proxy: Utilization of ODBC poller processes is high'
              event_name: 'Zabbix proxy: Utilization of ODBC poller processes over {$ZABBIX.PROXY.UTIL.MAX:"ODBC poller"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the ODBC poller, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 334398ad893e4146bc1b9370eef9df59
          name: 'Utilization of poller data collector processes, in %'
          type: INTERNAL
          key: 'zabbix[process,poller,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the poller processes have been busy for the last minute.'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: 3f93b378367e48f89abe304ccb624047
              expression: 'avg(/Zabbix proxy health/zabbix[process,poller,avg,busy],10m)>{$ZABBIX.PROXY.UTIL.MAX:"poller"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix proxy health/zabbix[process,poller,avg,busy],10m)<{$ZABBIX.PROXY.UTIL.MIN:"poller"}'
              name: 'Zabbix proxy: Utilization of poller processes is high'
              event_name: 'Zabbix proxy: Utilization of poller processes over {$ZABBIX.PROXY.UTIL.MAX:"poller"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the poller, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 20705fe12d4c40a4a27306b66ec9a69d
          name: 'Utilization of preprocessing manager internal processes, in %'
          type: INTERNAL
          key: 'zabbix[process,preprocessing manager,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the preprocessing manager processes have been busy for the last minute.'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: 1ed29eb53708417a827adbdf4d8f145b
              expression: 'avg(/Zabbix proxy health/zabbix[process,preprocessing manager,avg,busy],10m)>{$ZABBIX.PROXY.UTIL.MAX:"preprocessing manager"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix proxy health/zabbix[process,preprocessing manager,avg,busy],10m)<{$ZABBIX.PROXY.UTIL.MIN:"preprocessing manager"}'
              name: 'Zabbix proxy: Utilization of preprocessing manager processes is high'
              event_name: 'Zabbix proxy: Utilization of preprocessing manager processes over {$ZABBIX.PROXY.UTIL.MAX:"preprocessing manager"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the preprocessing manager, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 9c7916375cf841fb8edaf383b93a0522
          name: 'Utilization of preprocessing worker internal processes, in %'
          type: INTERNAL
          key: 'zabbix[process,preprocessing worker,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the preprocessing worker processes have been busy for the last minute.'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: 22831f081149400a86cb18930de0cc20
              expression: 'avg(/Zabbix proxy health/zabbix[process,preprocessing worker,avg,busy],10m)>{$ZABBIX.PROXY.UTIL.MAX:"preprocessing worker"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix proxy health/zabbix[process,preprocessing worker,avg,busy],10m)<{$ZABBIX.PROXY.UTIL.MIN:"preprocessing worker"}'
              name: 'Zabbix proxy: Utilization of preprocessing worker processes is high'
              event_name: 'Zabbix proxy: Utilization of preprocessing worker processes over {$ZABBIX.PROXY.UTIL.MAX:"preprocessing worker"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the preprocessing worker, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 1fd488bbb4af450cb2b5e8c81b739f29
          name: 'Utilization of self-monitoring internal processes, in %'
          type: INTERNAL
          key: 'zabbix[process,self-monitoring,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the self-monitoring processes have been busy for the last minute.'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: cc9569f75bd44b5cbce4a4c556cd2949
              expression: 'avg(/Zabbix proxy health/zabbix[process,self-monitoring,avg,busy],10m)>{$ZABBIX.PROXY.UTIL.MAX:"self-monitoring"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix proxy health/zabbix[process,self-monitoring,avg,busy],10m)<{$ZABBIX.PROXY.UTIL.MIN:"self-monitoring"}'
              name: 'Zabbix proxy: Utilization of self-monitoring processes is high'
              event_name: 'Zabbix proxy: Utilization of self-monitoring processes over {$ZABBIX.PROXY.UTIL.MAX:"self-monitoring"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the self-monitoring, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 96b04e9605e04b26a280bc62da92879b
          name: 'Utilization of snmp poller data collector processes, in %'
          type: INTERNAL
          key: 'zabbix[process,snmp poller,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the snmp poller processes have been busy for the last minute.'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: 811e08cb2382482db4054a4665e328d7
              expression: 'avg(/Zabbix proxy health/zabbix[process,snmp poller,avg,busy],10m)>{$ZABBIX.PROXY.UTIL.MAX:"snmp poller"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix proxy health/zabbix[process,snmp poller,avg,busy],10m)<{$ZABBIX.PROXY.UTIL.MIN:"snmp poller"}'
              name: 'Zabbix proxy: Utilization of snmp poller processes is high'
              event_name: 'Zabbix proxy: Utilization of snmp poller processes over {$ZABBIX.PROXY.UTIL.MAX:"snmp poller"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the snmp poller, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 77ab21500d734deea86938a1a90035e0
          name: 'Utilization of snmp trapper data collector processes, in %'
          type: INTERNAL
          key: 'zabbix[process,snmp trapper,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the snmp trapper processes have been busy for the last minute.'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: bb0a46beffbc457faea9362d4325c676
              expression: 'avg(/Zabbix proxy health/zabbix[process,snmp trapper,avg,busy],10m)>{$ZABBIX.PROXY.UTIL.MAX:"snmp trapper"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix proxy health/zabbix[process,snmp trapper,avg,busy],10m)<{$ZABBIX.PROXY.UTIL.MIN:"snmp trapper"}'
              name: 'Zabbix proxy: Utilization of snmp trapper processes is high'
              event_name: 'Zabbix proxy: Utilization of snmp trapper processes over {$ZABBIX.PROXY.UTIL.MAX:"snmp trapper"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the snmp trapper, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 94d1aa1bff2d499f9e29dd9cafd04b9e
          name: 'Utilization of task manager internal processes, in %'
          type: INTERNAL
          key: 'zabbix[process,task manager,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the task manager processes have been busy for the last minute.'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: 9a42dad8cef04138944f3a1b8c797f4e
              expression: 'avg(/Zabbix proxy health/zabbix[process,task manager,avg,busy],10m)>{$ZABBIX.PROXY.UTIL.MAX:"task manager"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix proxy health/zabbix[process,task manager,avg,busy],10m)<{$ZABBIX.PROXY.UTIL.MIN:"task manager"}'
              name: 'Zabbix proxy: Utilization of task manager processes is high'
              event_name: 'Zabbix proxy: Utilization of task manager processes over {$ZABBIX.PROXY.UTIL.MAX:"task manager"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the task manager, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 8d99635291d14ae8a5ba7d794540bde2
          name: 'Utilization of trapper data collector processes, in %'
          type: INTERNAL
          key: 'zabbix[process,trapper,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the trapper processes have been busy for the last minute.'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: 95ad6d80dc9c4f46a4e255d13f1b01a3
              expression: 'avg(/Zabbix proxy health/zabbix[process,trapper,avg,busy],10m)>{$ZABBIX.PROXY.UTIL.MAX:"trapper"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix proxy health/zabbix[process,trapper,avg,busy],10m)<{$ZABBIX.PROXY.UTIL.MIN:"trapper"}'
              name: 'Zabbix proxy: Utilization of trapper processes is high'
              event_name: 'Zabbix proxy: Utilization of trapper processes over {$ZABBIX.PROXY.UTIL.MAX:"trapper"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the trapper, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 7b0f5b75d4854b84a7e1f51975732e25
          name: 'Utilization of unreachable poller data collector processes, in %'
          type: INTERNAL
          key: 'zabbix[process,unreachable poller,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the unreachable poller processes have been busy for the last minute.'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: a28abd3f43f843af9646a1f8b1ca056a
              expression: 'avg(/Zabbix proxy health/zabbix[process,unreachable poller,avg,busy],10m)>{$ZABBIX.PROXY.UTIL.MAX:"unreachable poller"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix proxy health/zabbix[process,unreachable poller,avg,busy],10m)<{$ZABBIX.PROXY.UTIL.MIN:"unreachable poller"}'
              name: 'Zabbix proxy: Utilization of unreachable poller processes is high'
              event_name: 'Zabbix proxy: Utilization of unreachable poller processes over {$ZABBIX.PROXY.UTIL.MAX:"unreachable poller"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the unreachable poller, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: a5a7076a175c400f866a4d873d12e1e4
          name: 'Utilization of vmware collector data collector processes, in %'
          type: INTERNAL
          key: 'zabbix[process,vmware collector,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the vmware collector processes have been busy for the last minute.'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: a1051b5ac8334125a40cb36a95605284
              expression: 'avg(/Zabbix proxy health/zabbix[process,vmware collector,avg,busy],10m)>{$ZABBIX.PROXY.UTIL.MAX:"vmware collector"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix proxy health/zabbix[process,vmware collector,avg,busy],10m)<{$ZABBIX.PROXY.UTIL.MIN:"vmware collector"}'
              name: 'Zabbix proxy: Utilization of vmware collector processes is high'
              event_name: 'Zabbix proxy: Utilization of vmware collector processes over {$ZABBIX.PROXY.UTIL.MAX:"vmware collector"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the vmware collector, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: e60cdba498a94c19955696f40d5e1b32
          name: 'Proxy memory buffer, % used'
          type: INTERNAL
          key: 'zabbix[proxy_buffer,buffer,pused]'
          value_type: FLOAT
          units: '%'
          description: |
            Statistics and availability of Zabbix proxy memory buffer usage statistics. Percentage of used proxy memory buffer.
            Proxy memory buffer is used to store the new historical data and upload from it without accessing database.
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: 9b6cb370c00f4ebda91cdf247adc4780
              expression: 'max(/Zabbix proxy health/zabbix[proxy_buffer,buffer,pused],10m)>{$ZABBIX.PROXY.UTIL.MAX:"proxy buffer"}'
              name: 'Zabbix proxy: Excessive proxy memory buffer usage'
              event_name: 'Zabbix proxy: More than {$ZABBIX.PROXY.UTIL.MAX:"proxy buffer"}% used in the proxy memory buffer'
              priority: AVERAGE
              description: 'Consider increasing ProxyMemoryBufferSize in the zabbix_proxy.conf configuration file.'
              tags:
                - tag: scope
                  value: capacity
                - tag: scope
                  value: performance
        - uuid: 1f5fbc277a574ce7a418439695f124ca
          name: 'Proxy buffer, state changes'
          type: INTERNAL
          key: 'zabbix[proxy_buffer,state,changes]'
          description: 'The number of state changes between disk/memory buffer modes since proxy start.'
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
          tags:
            - tag: component
              value: system
        - uuid: c970e56eda504a4d89b051439dda9787
          name: 'Proxy buffer, state'
          type: INTERNAL
          key: 'zabbix[proxy_buffer,state,current]'
          description: |
            The current working state of proxy buffer where the new data is being stored. Possible values:
            
              0 - disk (also returned when memory buffer is disabled);
              1 - memory.
          valuemap:
            name: 'Proxy buffer mode'
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
          tags:
            - tag: component
              value: system
        - uuid: 3b66d42ec1fa4dc7a41750aacf6e68f3
          name: 'Values waiting to be sent'
          type: INTERNAL
          key: 'zabbix[proxy_history]'
          description: 'The number of values in the proxy history table waiting to be sent to the server.'
          tags:
            - tag: component
              value: system
        - uuid: 2fa1c8d8fcb94d4c83cf4e291420a690
          name: 'Queue over 10 minutes'
          type: INTERNAL
          key: 'zabbix[queue,10m]'
          description: 'The number of monitored items in the queue that are delayed by at least 10 minutes.'
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: f28d8231e0f2486bb68963719359789c
              expression: 'min(/Zabbix proxy health/zabbix[queue,10m],10m)>100'
              name: 'Zabbix proxy: More than 100 items have been missing data for over 10 minutes'
              priority: WARNING
              description: 'Indicates potential issues with network connectivity, agent failures, or unresponsive monitored resources that require attention.'
              tags:
                - tag: scope
                  value: performance
        - uuid: cfbb623cca754fd49d4f606ab52f658d
          name: Queue
          type: INTERNAL
          key: 'zabbix[queue]'
          description: 'The number of monitored items in the queue that are delayed by at least 6 seconds.'
          tags:
            - tag: component
              value: system
        - uuid: 606d1d43812341db8260a233295a4a4e
          name: 'Configuration cache, % used'
          type: INTERNAL
          key: 'zabbix[rcache,buffer,pused]'
          value_type: FLOAT
          units: '%'
          description: 'The availability statistics of Zabbix configuration cache. The percentage of used data buffer.'
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: 98ae52367f69476dbeb9c50e5f28b429
              expression: 'max(/Zabbix proxy health/zabbix[rcache,buffer,pused],10m)>{$ZABBIX.PROXY.UTIL.MAX:"configuration cache"}'
              name: 'Zabbix proxy: Excessive configuration cache usage'
              event_name: 'Zabbix proxy: More than {$ZABBIX.PROXY.UTIL.MAX:"configuration cache"}% used in the configuration cache'
              priority: AVERAGE
              description: 'Consider increasing `CacheSize` in the `zabbix_proxy.conf` configuration file.'
              tags:
                - tag: scope
                  value: capacity
                - tag: scope
                  value: performance
        - uuid: ef820395239d4a108980fe53017a89fc
          name: 'Required VPS'
          type: INTERNAL
          key: 'zabbix[requiredperformance]'
          value_type: FLOAT
          units: '!vps'
          description: 'The required performance of a proxy (the number of values that need to be collected per second).'
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 12h
          tags:
            - tag: component
              value: system
        - uuid: 7a5c163672d1422aa663c2606d1166e5
          name: 'Zabbix proxy check'
          type: INTERNAL
          key: 'zabbix[triggers]'
          trends: '0'
          description: 'Flag indicating whether it is a proxy or not.'
          valuemap:
            name: 'Zabbix proxy check'
          preprocessing:
            - type: CHECK_NOT_SUPPORTED
              parameters:
                - '-1'
              error_handler: CUSTOM_VALUE
              error_handler_params: '0'
            - type: IN_RANGE
              parameters:
                - ''
                - '0'
              error_handler: CUSTOM_VALUE
              error_handler_params: '1'
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: 714e140b408d4b219fbee840e800b841
              expression: 'last(/Zabbix proxy health/zabbix[triggers])=1'
              name: 'Zabbix proxy: Wrong template assigned'
              event_name: 'Zabbix proxy: Zabbix proxy template is assigned to Zabbix server'
              priority: DISASTER
              description: 'Check that the template has been selected correctly.'
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: notice
        - uuid: ef920914bc00432ea4d4007d09e081df
          name: Uptime
          type: INTERNAL
          key: 'zabbix[uptime]'
          units: uptime
          description: 'Uptime of the Zabbix proxy process in seconds.'
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: b505a16c50f64adb8c5528907925f798
              expression: 'last(/Zabbix proxy health/zabbix[uptime])<10m'
              name: 'Zabbix proxy: {HOST.NAME} has been restarted'
              event_name: 'Zabbix proxy: {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: 4d38d6d107714c96ae2ed2af44fddb60
          name: Version
          type: INTERNAL
          key: 'zabbix[version]'
          value_type: CHAR
          description: 'The version of Zabbix proxy.'
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: bf7eef07faf14fc4b2603ae952f001da
              expression: 'last(/Zabbix proxy health/zabbix[version],#1)<>last(/Zabbix proxy health/zabbix[version],#2) and length(last(/Zabbix proxy health/zabbix[version]))>0'
              name: 'Zabbix proxy: Version has changed'
              event_name: 'Zabbix proxy: Version has changed (new version: {ITEM.VALUE})'
              priority: INFO
              description: 'Zabbix proxy version has changed. Acknowledge to close the problem manually.'
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: notice
        - uuid: fc7412c1a02240b7931d3511743a2662
          name: 'VMware cache, % used'
          type: INTERNAL
          key: 'zabbix[vmware,buffer,pused]'
          value_type: FLOAT
          units: '%'
          description: 'The availability statistics of Zabbix vmware cache. The percentage of used data buffer.'
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: 69707cc61b7d408f8683dae435183d4f
              expression: 'max(/Zabbix proxy health/zabbix[vmware,buffer,pused],10m)>{$ZABBIX.PROXY.UTIL.MAX:"vmware cache"}'
              name: 'Zabbix proxy: Excessive vmware cache usage'
              event_name: 'Zabbix proxy: More than {$ZABBIX.PROXY.UTIL.MAX:"vmware cache"}% used in the vmware cache'
              priority: AVERAGE
              description: 'Consider increasing `VMwareCacheSize` in the `zabbix_proxy.conf` configuration file.'
              tags:
                - tag: scope
                  value: capacity
                - tag: scope
                  value: performance
        - uuid: aec73d2a7e444702b352c75998bf636e
          name: 'History write cache, % used'
          type: INTERNAL
          key: 'zabbix[wcache,history,pused]'
          value_type: FLOAT
          units: '%'
          description: |
            The statistics and availability of Zabbix write cache. The percentage of used history buffer.
            The history cache is used to store item values. A high number indicates database performance problems.
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: dc5a87f6c62d47b08ddd4578aa5f293f
              expression: 'max(/Zabbix proxy health/zabbix[wcache,history,pused],10m)>{$ZABBIX.PROXY.UTIL.MAX:"history cache"}'
              name: 'Zabbix proxy: Excessive history cache usage'
              event_name: 'Zabbix proxy: More than {$ZABBIX.PROXY.UTIL.MAX:"history cache"}% used in the history cache'
              priority: AVERAGE
              description: 'Consider increasing `HistoryCacheSize` in the `zabbix_proxy.conf` configuration file.'
              tags:
                - tag: scope
                  value: capacity
                - tag: scope
                  value: performance
        - uuid: 8c4c7802497d4de4988278edc29f8eb1
          name: 'History index cache, % used'
          type: INTERNAL
          key: 'zabbix[wcache,index,pused]'
          value_type: FLOAT
          units: '%'
          description: |
            The statistics and availability of Zabbix write cache. The percentage of used history index buffer.
            The history index cache is used to index values stored in the history cache.
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: 92b94edb126d48af9e5e959357e2107b
              expression: 'max(/Zabbix proxy health/zabbix[wcache,index,pused],10m)>{$ZABBIX.PROXY.UTIL.MAX:"index cache"}'
              name: 'Zabbix proxy: Excessive history index cache usage'
              event_name: 'Zabbix proxy: More than {$ZABBIX.PROXY.UTIL.MAX:"index cache"}% used in the history index cache'
              priority: AVERAGE
              description: 'Consider increasing `HistoryIndexCacheSize` in the `zabbix_proxy.conf` configuration file.'
              tags:
                - tag: scope
                  value: capacity
                - tag: scope
                  value: performance
        - uuid: ba5efd0ed21d4ac39e1375788b7198de
          name: 'Number of processed numeric (float) values per second'
          type: INTERNAL
          key: 'zabbix[wcache,values,float]'
          value_type: FLOAT
          units: '!vps'
          description: |
            The statistics and availability of Zabbix write cache.
            The number of processed numeric (float) values.
          preprocessing:
            - type: CHANGE_PER_SECOND
          tags:
            - tag: component
              value: nvps
            - tag: component
              value: system
        - uuid: 47cdd6ef01734ec1ab15b0ab43d147ca
          name: 'Number of processed log values per second'
          type: INTERNAL
          key: 'zabbix[wcache,values,log]'
          value_type: FLOAT
          units: '!vps'
          description: |
            The statistics and availability of Zabbix write cache.
            The number of processed log values.
          preprocessing:
            - type: CHANGE_PER_SECOND
          tags:
            - tag: component
              value: nvps
            - tag: component
              value: system
        - uuid: 46574db1d70545f6af89e8607d22f5bb
          name: 'Number of processed not supported values per second'
          type: INTERNAL
          key: 'zabbix[wcache,values,not supported]'
          value_type: FLOAT
          units: '!vps'
          description: |
            The statistics and availability of Zabbix write cache.
            The number of times the item processing resulted in an item becoming unsupported or remaining in that state.
          preprocessing:
            - type: CHANGE_PER_SECOND
          tags:
            - tag: component
              value: nvps
            - tag: component
              value: system
        - uuid: 5f0c3ed0998e499aaa1e4a30726928fc
          name: 'Number of processed character values per second'
          type: INTERNAL
          key: 'zabbix[wcache,values,str]'
          value_type: FLOAT
          units: '!vps'
          description: |
            The statistics and availability of Zabbix write cache.
            The number of processed character values.
          preprocessing:
            - type: CHANGE_PER_SECOND
          tags:
            - tag: component
              value: nvps
            - tag: component
              value: system
        - uuid: 1c259b08b3ff445f9b2f24a02c07c5db
          name: 'Number of processed text values per second'
          type: INTERNAL
          key: 'zabbix[wcache,values,text]'
          value_type: FLOAT
          units: '!vps'
          description: |
            The statistics and availability of Zabbix write cache.
            The number of processed text values.
          preprocessing:
            - type: CHANGE_PER_SECOND
          tags:
            - tag: component
              value: nvps
            - tag: component
              value: system
        - uuid: 8e4b9641b173415c8608ee4863bcd547
          name: 'Number of processed numeric (unsigned) values per second'
          type: INTERNAL
          key: 'zabbix[wcache,values,uint]'
          value_type: FLOAT
          units: '!vps'
          description: |
            The statistics and availability of Zabbix write cache.
            The number of processed numeric (unsigned) values.
          preprocessing:
            - type: CHANGE_PER_SECOND
          tags:
            - tag: component
              value: nvps
            - tag: component
              value: system
        - uuid: 5229b786efc84f01bb31f2819c47d9f4
          name: 'Number of processed values per second'
          type: INTERNAL
          key: 'zabbix[wcache,values]'
          value_type: FLOAT
          units: '!vps'
          description: |
            The statistics and availability of Zabbix write cache.
            The total number of values processed by Zabbix server or Zabbix proxy, except unsupported items.
          preprocessing:
            - type: CHANGE_PER_SECOND
          tags:
            - tag: component
              value: nvps
            - tag: component
              value: system
      tags:
        - tag: class
          value: software
        - tag: subclass
          value: logging
        - tag: subclass
          value: monitoring
        - tag: target
          value: proxy
        - tag: target
          value: zabbix
      macros:
        - macro: '{$ZABBIX.PROXY.UTIL.MAX}'
          value: '75'
          description: 'Default maximum threshold for percentage utilization triggers (use macro context for specification).'
          config:
            type: TEXT
            priority: '2'
            section_name: Thresholds
            label: 'Maximum process utilization percentage'
            description: 'Default maximum threshold for process utilization triggers. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$ZABBIX.PROXY.UTIL.MIN}'
          value: '65'
          description: 'Default minimum threshold for percentage utilization triggers (use macro context for specification).'
          config:
            type: TEXT
            priority: '1'
            section_name: Thresholds
            label: 'Minimum process utilization percentage'
            description: 'Default minimum threshold for process utilization triggers. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
      dashboards:
        - uuid: c12bdb602db645a292d0cbba39d58e9f
          name: 'Zabbix proxy health'
          auto_start: 'NO'
          pages:
            - name: Performance
              widgets:
                - type: svggraph
                  name: 'Cache usage, in %'
                  width: '36'
                  height: '6'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: 33a02c
                    - type: STRING
                      name: ds.0.color.1
                      value: e31a1c
                    - type: STRING
                      name: ds.0.color.2
                      value: ff7f00
                    - type: STRING
                      name: ds.0.color.3
                      value: b15928
                    - type: STRING
                      name: ds.0.color.4
                      value: a6cee3
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[rcache,buffer,pused]'
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[wcache,index,pused]'
                    - type: ITEM
                      name: ds.0.itemids.2
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[wcache,history,pused]'
                    - type: ITEM
                      name: ds.0.itemids.3
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[vmware,buffer,pused]'
                    - type: ITEM
                      name: ds.0.itemids.4
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[proxy_buffer,buffer,pused]'
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAACA
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Server performance'
                  'y': '6'
                  width: '72'
                  height: '5'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: 33a02c
                    - type: STRING
                      name: ds.0.color.1
                      value: e31a1c
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[wcache,values]'
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[queue]'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAACC
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Values processed'
                  'y': '11'
                  width: '72'
                  height: '5'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: 1f78b4
                    - type: STRING
                      name: ds.0.color.1
                      value: 33a02c
                    - type: STRING
                      name: ds.0.color.2
                      value: e31a1c
                    - type: STRING
                      name: ds.0.color.3
                      value: ff7f00
                    - type: STRING
                      name: ds.0.color.4
                      value: 6a3d9a
                    - type: STRING
                      name: ds.0.color.5
                      value: b15928
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[wcache,values,uint]'
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[wcache,values,float]'
                    - type: ITEM
                      name: ds.0.itemids.2
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[wcache,values,not supported]'
                    - type: ITEM
                      name: ds.0.itemids.3
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[wcache,values,str]'
                    - type: ITEM
                      name: ds.0.itemids.4
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[wcache,values,log]'
                    - type: ITEM
                      name: ds.0.itemids.5
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[wcache,values,text]'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAACD
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Values to send'
                  'y': '16'
                  width: '72'
                  height: '5'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: b15928
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[proxy_history]'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAACE
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Preprocessing throughput'
                  'y': '21'
                  width: '36'
                  height: '5'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: ff465c
                    - type: STRING
                      name: ds.0.color.1
                      value: ffdf00
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[preprocessing_throughput_queued]'
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[preprocessing_throughput_direct]'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '2'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAABV
                - type: svggraph
                  name: 'Internal queues'
                  x: '36'
                  width: '36'
                  height: '6'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: ffff99
                    - type: STRING
                      name: ds.0.color.1
                      value: 6a3d9a
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[preprocessing_queue]'
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[discovery_queue]'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAACB
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Preprocessing VPS'
                  x: '36'
                  'y': '21'
                  width: '36'
                  height: '5'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: ff465c
                    - type: STRING
                      name: ds.0.color.1
                      value: ffdf00
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[preprocessing_vps_queued]'
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[preprocessing_vps_direct]'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '2'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAABW
            - name: Processes
              widgets:
                - type: svggraph
                  name: 'Utilization: Discovery processes'
                  width: '36'
                  height: '6'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: 7e57c2
                    - type: STRING
                      name: ds.0.color.1
                      value: 1f78b4
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[process,discovery manager,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[process,discovery worker,avg,busy]'
                    - type: INTEGER
                      name: ds.1.axisy
                      value: '1'
                    - type: STRING
                      name: ds.1.color.0
                      value: ff465c
                    - type: INTEGER
                      name: ds.1.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.1.itemids.0
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[discovery_queue]'
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '3'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAABH
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Utilization: Synchronous gathering processes'
                  'y': '6'
                  width: '72'
                  height: '7'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: 1f78b4
                    - type: STRING
                      name: ds.0.color.1
                      value: ff7f00
                    - type: STRING
                      name: ds.0.color.2
                      value: 6a3d9a
                    - type: STRING
                      name: ds.0.color.3
                      value: b15928
                    - type: STRING
                      name: ds.0.color.4
                      value: 17becf
                    - type: STRING
                      name: ds.0.color.5
                      value: a6cee3
                    - type: STRING
                      name: ds.0.color.6
                      value: fb9a99
                    - type: STRING
                      name: ds.0.color.7
                      value: bcbd22
                    - type: STRING
                      name: ds.0.color.8
                      value: fdbf6f
                    - type: STRING
                      name: ds.0.color.9
                      value: e31a1c
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[process,poller,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[process,internal poller,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.2
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[process,ipmi poller,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.3
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[process,ipmi manager,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.4
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[process,http poller,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.5
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[process,java poller,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.6
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[process,vmware collector,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.7
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[process,browser poller,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.8
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[process,odbc poller,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.9
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[process,icmp pinger,avg,busy]'
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAABJ
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Utilization: Asynchronous gathering processes'
                  'y': '13'
                  width: '72'
                  height: '6'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: 1f78b4
                    - type: STRING
                      name: ds.0.color.1
                      value: bcbd22
                    - type: STRING
                      name: ds.0.color.2
                      value: 6a3d9a
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[process,agent poller,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[process,http agent poller,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.2
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[process,snmp poller,avg,busy]'
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '3'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAABK
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Utilization: Internal processes: Core'
                  'y': '19'
                  width: '72'
                  height: '6'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: 1f78b4
                    - type: STRING
                      name: ds.0.color.1
                      value: e31a1c
                    - type: STRING
                      name: ds.0.color.2
                      value: ff7f00
                    - type: STRING
                      name: ds.0.color.3
                      value: b15928
                    - type: STRING
                      name: ds.0.color.4
                      value: a6cee3
                    - type: STRING
                      name: ds.0.color.5
                      value: fdbf6f
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[process,configuration syncer,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[process,history syncer,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.2
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[process,self-monitoring,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.3
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[process,task manager,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.4
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[process,data sender,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.5
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[process,housekeeper,avg,busy]'
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '6'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAABL
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Utilization: Gathering processes: Trappers'
                  'y': '25'
                  width: '36'
                  height: '5'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: cab2d6
                    - type: STRING
                      name: ds.0.color.1
                      value: fdbf6f
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[process,trapper,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[process,snmp trapper,avg,busy]'
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '2'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAABM
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Utilization: Data exchange with server'
                  'y': '30'
                  width: '72'
                  height: '5'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: cab2d6
                    - type: STRING
                      name: ds.0.color.1
                      value: '000080'
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[process,trapper,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[process,data sender,avg,busy]'
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '3'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAABO
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Utilization: Preprocessing processes'
                  x: '36'
                  width: '36'
                  height: '6'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: fdbf6f
                    - type: STRING
                      name: ds.0.color.1
                      value: 7e57c2
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[process,preprocessing manager,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[process,preprocessing worker,avg,busy]'
                    - type: INTEGER
                      name: ds.1.axisy
                      value: '1'
                    - type: STRING
                      name: ds.1.color.0
                      value: ff465c
                    - type: INTEGER
                      name: ds.1.dataset_type
                      value: '0'
                    - type: INTEGER
                      name: ds.1.fill
                      value: '2'
                    - type: ITEM
                      name: ds.1.itemids.0
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[preprocessing_queue]'
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '3'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAABI
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Utilization: Availability processes'
                  x: '36'
                  'y': '25'
                  width: '36'
                  height: '5'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: 6a3d9a
                    - type: STRING
                      name: ds.0.color.1
                      value: b15928
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[process,unreachable poller,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[process,availability manager,avg,busy]'
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '2'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAABN
                    - type: INTEGER
                      name: show_problems
                      value: '1'
            - name: Statuses
              widgets:
                - type: item
                  name: 'Zabbix proxy version'
                  width: '18'
                  height: '3'
                  fields:
                    - type: INTEGER
                      name: decimal_places
                      value: '0'
                    - type: ITEM
                      name: itemid.0
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[version]'
                    - type: INTEGER
                      name: show.0
                      value: '2'
                    - type: INTEGER
                      name: show.1
                      value: '3'
                    - type: INTEGER
                      name: show.2
                      value: '4'
                    - type: INTEGER
                      name: time_h_pos
                      value: '2'
                    - type: INTEGER
                      name: time_size
                      value: '9'
                    - type: INTEGER
                      name: time_v_pos
                      value: '2'
                    - type: INTEGER
                      name: value_size
                      value: '25'
                - type: item
                  name: Uptime
                  x: '18'
                  width: '18'
                  height: '3'
                  fields:
                    - type: INTEGER
                      name: decimal_places
                      value: '0'
                    - type: ITEM
                      name: itemid.0
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[uptime]'
                    - type: INTEGER
                      name: show.0
                      value: '2'
                    - type: INTEGER
                      name: show.1
                      value: '3'
                    - type: INTEGER
                      name: show.2
                      value: '4'
                    - type: INTEGER
                      name: time_h_pos
                      value: '2'
                    - type: INTEGER
                      name: time_size
                      value: '9'
                    - type: INTEGER
                      name: time_v_pos
                      value: '2'
                    - type: INTEGER
                      name: value_size
                      value: '25'
                - type: item
                  name: 'Proxy buffer state'
                  x: '36'
                  width: '18'
                  height: '3'
                  fields:
                    - type: INTEGER
                      name: decimal_places
                      value: '0'
                    - type: ITEM
                      name: itemid.0
                      value:
                        host: 'Zabbix proxy health'
                        key: 'zabbix[proxy_buffer,state,current]'
                    - type: INTEGER
                      name: show.0
                      value: '2'
                    - type: INTEGER
                      name: show.1
                      value: '3'
                    - type: INTEGER
                      name: show.2
                      value: '4'
                    - type: INTEGER
                      name: time_h_pos
                      value: '2'
                    - type: INTEGER
                      name: time_size
                      value: '9'
                    - type: INTEGER
                      name: time_v_pos
                      value: '2'
                    - type: INTEGER
                      name: value_size
                      value: '25'
      valuemaps:
        - uuid: 10388a0c06864ac483377f4ad3a91854
          name: 'Proxy buffer mode'
          mappings:
            - value: '0'
              newvalue: Disk
            - value: '1'
              newvalue: Memory
        - uuid: f9f6987645b341b68ba5449c9b741459
          name: 'Zabbix proxy check'
          mappings:
            - value: '0'
              newvalue: 'True'
            - value: '1'
              newvalue: 'False'
  triggers:
    - uuid: ebe6f65e82ed4f00bd7c5be30841a25c
      expression: 'min(/HashiCorp Vault by HTTP/vault.metrics.process.open.fds,5m)/last(/HashiCorp Vault by HTTP/vault.metrics.process.max.fds)*100>{$VAULT.OPEN.FDS.MAX.WARN}'
      name: 'HashiCorp Vault: Current number of open files is too high'
      event_name: 'HashiCorp Vault: Current number of open files is too high (over {$VAULT.OPEN.FDS.MAX.WARN}% for 5m)'
      priority: WARNING
      tags:
        - tag: scope
          value: capacity
    - uuid: c1372deba2b148f4ac8be6493f0b9868
      expression: '(last(/HP Comware HH3C by SNMP/system.hw.uptime[hrSystemUptime.0])>0 and last(/HP Comware HH3C by SNMP/system.hw.uptime[hrSystemUptime.0])<10m) or (last(/HP Comware HH3C by SNMP/system.hw.uptime[hrSystemUptime.0])=0 and last(/HP Comware HH3C by SNMP/system.net.uptime[sysUpTime.0])<10m)'
      name: 'HP Comware HH3C: Host has been restarted'
      event_name: 'HP Comware HH3C: {HOST.NAME} has been restarted (uptime < 10m)'
      priority: WARNING
      description: 'Uptime is less than 10 minutes.'
      manual_close: 'YES'
      dependencies:
        - name: 'HP Comware HH3C: No SNMP data collection'
          expression: 'max(/HP Comware HH3C by SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0'
      tags:
        - tag: scope
          value: notice
    - uuid: b7a0b390f8844d2aa05ee849d12495f7
      expression: '(last(/Windows by SNMP/system.hw.uptime[hrSystemUptime.0])>0 and last(/Windows by SNMP/system.hw.uptime[hrSystemUptime.0])<10m) or (last(/Windows by SNMP/system.hw.uptime[hrSystemUptime.0])=0 and last(/Windows by SNMP/system.net.uptime[sysUpTime.0])<10m)'
      name: 'Windows: Host has been restarted'
      event_name: 'Windows: {HOST.NAME} has been restarted (uptime < 10m)'
      priority: WARNING
      description: 'Uptime is less than 10 minutes.'
      manual_close: 'YES'
      dependencies:
        - name: 'Windows: No SNMP data collection'
          expression: 'max(/Windows by SNMP/zabbix[host,snmp,available],{$SNMP.TIMEOUT})=0'
      tags:
        - tag: scope
          value: notice
  graphs:
    - uuid: 840b4c30198c48e1b161d1b2deee26c8
      name: 'NetApp AFF A700: Cluster IOPS'
      graph_items:
        - color: 199C0D
          item:
            host: 'NetApp AFF A700 by HTTP'
            key: netapp.cluster.statistics.iops.other.rate
        - sortorder: '1'
          color: F63100
          item:
            host: 'NetApp AFF A700 by HTTP'
            key: netapp.cluster.statistics.iops.read.rate
        - sortorder: '2'
          color: 00611C
          item:
            host: 'NetApp AFF A700 by HTTP'
            key: netapp.cluster.statistics.iops.write.rate
        - sortorder: '3'
          color: F7941D
          item:
            host: 'NetApp AFF A700 by HTTP'
            key: netapp.cluster.statistics.iops.total.rate
    - uuid: 34c781f1f9e944ca8010118483470ad9
      name: 'NetApp AFF A700: Cluster latency'
      graph_items:
        - color: 199C0D
          item:
            host: 'NetApp AFF A700 by HTTP'
            key: netapp.cluster.statistics.latency.other
        - sortorder: '1'
          color: F63100
          item:
            host: 'NetApp AFF A700 by HTTP'
            key: netapp.cluster.statistics.latency.read
        - sortorder: '2'
          color: 00611C
          item:
            host: 'NetApp AFF A700 by HTTP'
            key: netapp.cluster.statistics.latency.write
        - sortorder: '3'
          color: F7941D
          item:
            host: 'NetApp AFF A700 by HTTP'
            key: netapp.cluster.statistics.latency.total
    - uuid: 8754fe099580424b84a4b51031a09fa1
      name: 'NetApp AFF A700: Cluster throughput'
      graph_items:
        - color: 199C0D
          item:
            host: 'NetApp AFF A700 by HTTP'
            key: netapp.cluster.statistics.throughput.other.rate
        - sortorder: '1'
          color: F63100
          item:
            host: 'NetApp AFF A700 by HTTP'
            key: netapp.cluster.statistics.throughput.read.rate
        - sortorder: '2'
          color: 00611C
          item:
            host: 'NetApp AFF A700 by HTTP'
            key: netapp.cluster.statistics.throughput.write.rate
        - sortorder: '3'
          color: F7941D
          item:
            host: 'NetApp AFF A700 by HTTP'
            key: netapp.cluster.statistics.throughput.total.rate
    - uuid: 6b4b92c62cb94e10b11f218ed35f6211
      name: 'PostgreSQL bgwriter'
      ymin_type_1: FIXED
      graph_items:
        - color: 199C0D
          yaxisside: RIGHT
          item:
            host: 'PostgreSQL by Zabbix agent'
            key: pgsql.bgwriter.buffers_alloc.rate
        - sortorder: '1'
          color: F63100
          yaxisside: RIGHT
          item:
            host: 'PostgreSQL by Zabbix agent'
            key: pgsql.bgwriter.buffers_clean.rate
        - sortorder: '2'
          color: 00611C
          yaxisside: RIGHT
          item:
            host: 'PostgreSQL by Zabbix agent'
            key: pgsql.bgwriter.buffers_backend.rate
        - sortorder: '3'
          color: F7941D
          yaxisside: RIGHT
          item:
            host: 'PostgreSQL by Zabbix agent'
            key: pgsql.bgwriter.buffers_checkpoint.rate
        - sortorder: '4'
          color: FC6EA3
          item:
            host: 'PostgreSQL by Zabbix agent'
            key: pgsql.bgwriter.maxwritten_clean.rate
        - sortorder: '5'
          color: 6C59DC
          item:
            host: 'PostgreSQL by Zabbix agent'
            key: pgsql.bgwriter.buffers_backend_fsync.rate
    - uuid: 4a105d193df64be7898ac19a2f07faa4
      name: 'PostgreSQL checkpoints'
      ymin_type_1: FIXED
      graph_items:
        - color: 199C0D
          item:
            host: 'PostgreSQL by Zabbix agent'
            key: pgsql.bgwriter.checkpoints_timed.rate
        - sortorder: '1'
          color: F63100
          item:
            host: 'PostgreSQL by Zabbix agent'
            key: pgsql.bgwriter.checkpoints_req.rate
        - sortorder: '2'
          color: 00611C
          yaxisside: RIGHT
          item:
            host: 'PostgreSQL by Zabbix agent'
            key: pgsql.bgwriter.checkpoint_sync_time.rate
        - sortorder: '3'
          color: F7941D
          yaxisside: RIGHT
          item:
            host: 'PostgreSQL by Zabbix agent'
            key: pgsql.bgwriter.checkpoint_write_time.rate
    - uuid: 8d41d719832049a5a1fcd6f4da67fb6a
      name: 'PostgreSQL connections'
      ymin_type_1: FIXED
      graph_items:
        - drawtype: GRADIENT_LINE
          color: 199C0D
          yaxisside: RIGHT
          item:
            host: 'PostgreSQL by Zabbix agent'
            key: pgsql.connections.sum.total
        - sortorder: '1'
          color: F63100
          item:
            host: 'PostgreSQL by Zabbix agent'
            key: pgsql.connections.sum.total_pct
        - sortorder: '2'
          color: 00611C
          yaxisside: RIGHT
          item:
            host: 'PostgreSQL by Zabbix agent'
            key: pgsql.connections.sum.active
        - sortorder: '3'
          color: F7941D
          yaxisside: RIGHT
          item:
            host: 'PostgreSQL by Zabbix agent'
            key: pgsql.connections.sum.idle
        - sortorder: '4'
          color: FC6EA3
          yaxisside: RIGHT
          item:
            host: 'PostgreSQL by Zabbix agent'
            key: pgsql.connections.sum.idle_in_transaction
        - sortorder: '5'
          color: 6C59DC
          yaxisside: RIGHT
          item:
            host: 'PostgreSQL by Zabbix agent'
            key: pgsql.connections.sum.prepared
        - sortorder: '6'
          color: C7A72D
          yaxisside: RIGHT
          item:
            host: 'PostgreSQL by Zabbix agent'
            key: pgsql.connections.sum.waiting
    - uuid: 1e9a55ee61824779a9f46f42ec21abef
      name: 'PostgreSQL ping'
      ymin_type_1: FIXED
      graph_items:
        - drawtype: GRADIENT_LINE
          color: 199C0D
          item:
            host: 'PostgreSQL by Zabbix agent'
            key: 'pgsql.ping["{$PG.HOST}","{$PG.PORT}"]'
        - sortorder: '1'
          color: F63100
          yaxisside: RIGHT
          item:
            host: 'PostgreSQL by Zabbix agent'
            key: 'pgsql.ping.time["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
    - uuid: d8cf31fc39584a63b9384d9c3ebf40ee
      name: 'PostgreSQL replication lag'
      ymin_type_1: FIXED
      graph_items:
        - color: 199C0D
          item:
            host: 'PostgreSQL by Zabbix agent'
            key: 'pgsql.replication.lag.sec["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
    - uuid: 10d1de74e9d848399ca038055e5cc8ce
      name: 'PostgreSQL transactions'
      ymin_type_1: FIXED
      graph_items:
        - color: 199C0D
          yaxisside: RIGHT
          item:
            host: 'PostgreSQL by Zabbix agent'
            key: pgsql.transactions.active
        - sortorder: '1'
          color: F63100
          yaxisside: RIGHT
          item:
            host: 'PostgreSQL by Zabbix agent'
            key: pgsql.transactions.idle
        - sortorder: '2'
          color: 00611C
          yaxisside: RIGHT
          item:
            host: 'PostgreSQL by Zabbix agent'
            key: pgsql.transactions.prepared
        - sortorder: '3'
          color: F7941D
          yaxisside: RIGHT
          item:
            host: 'PostgreSQL by Zabbix agent'
            key: pgsql.transactions.waiting
    - uuid: 45fe7967596741129b4f2462922636bf
      name: 'PostgreSQL uptime'
      show_triggers: 'NO'
      ymin_type_1: FIXED
      graph_items:
        - color: 199C0D
          item:
            host: 'PostgreSQL by Zabbix agent'
            key: 'pgsql.uptime["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
        - sortorder: '1'
          color: F63100
          yaxisside: RIGHT
          item:
            host: 'PostgreSQL by Zabbix agent'
            key: 'pgsql.cache.hit["{$PG.HOST}","{$PG.PORT}","{$PG.USER}","{$PG.PASSWORD}","{$PG.DATABASE}"]'
    - uuid: 93ca2dc7a3ff4a458c45e2a56390ce72
      name: 'PostgreSQL WAL'
      ymin_type_1: FIXED
      graph_items:
        - color: 199C0D
          item:
            host: 'PostgreSQL by Zabbix agent'
            key: pgsql.wal.write
        - sortorder: '1'
          color: F63100
          yaxisside: RIGHT
          item:
            host: 'PostgreSQL by Zabbix agent'
            key: pgsql.wal.count
    - uuid: b4fc517d099340558fe813c6fb8c6be2
      name: 'Vault: Cache rate'
      graph_items:
        - drawtype: BOLD_LINE
          color: 199C0D
          item:
            host: 'HashiCorp Vault by HTTP'
            key: vault.metrics.cache.hit.rate
        - sortorder: '1'
          drawtype: BOLD_LINE
          color: F63100
          item:
            host: 'HashiCorp Vault by HTTP'
            key: vault.metrics.cache.miss.rate
        - sortorder: '2'
          drawtype: BOLD_LINE
          color: 00611C
          item:
            host: 'HashiCorp Vault by HTTP'
            key: vault.metrics.cache.write.rate
    - uuid: 81fa6888cef7496eb46a15f11e8a238c
      name: 'Vault: Expiring leases'
      graph_items:
        - drawtype: GRADIENT_LINE
          color: 199C0D
          item:
            host: 'HashiCorp Vault by HTTP'
            key: vault.metrics.expire.num_leases
    - uuid: a96e30071bef4da6839e405ae5b183c5
      name: 'Vault: K/V secret engine entries'
      graph_items:
        - drawtype: GRADIENT_LINE
          color: 199C0D
          item:
            host: 'HashiCorp Vault by HTTP'
            key: vault.metrics.secret.kv.count
    - uuid: e7e470ee9e914d4d9fc81b598889f873
      name: 'Vault: Requests rate'
      graph_items:
        - drawtype: GRADIENT_LINE
          color: 34bdeb
          item:
            host: 'HashiCorp Vault by HTTP'
            key: vault.metrics.core.handle.request
    - uuid: 2e4eda3a71b74e14a0c4843a96a53dbc
      name: 'Vault: Runtime memory'
      graph_items:
        - drawtype: GRADIENT_LINE
          color: 199C0D
          item:
            host: 'HashiCorp Vault by HTTP'
            key: vault.metrics.runtime.alloc.bytes
        - sortorder: '1'
          drawtype: GRADIENT_LINE
          color: F63100
          item:
            host: 'HashiCorp Vault by HTTP'
            key: vault.metrics.process.resident_memory.bytes
        - sortorder: '2'
          drawtype: BOLD_LINE
          color: 00611C
          item:
            host: 'HashiCorp Vault by HTTP'
            key: vault.metrics.process.virtual_memory.bytes
    - uuid: db2043aa454a440995a178e342d3eca5
      name: 'Vault: Token checks'
      graph_items:
        - drawtype: GRADIENT_LINE
          color: 199C0D
          item:
            host: 'HashiCorp Vault by HTTP'
            key: vault.metrics.core.check.token.rate
    - uuid: 39770778f73c49b0a333d313b76f4020
      name: 'Vault: Token lookup'
      graph_items:
        - drawtype: GRADIENT_LINE
          color: 199C0D
          item:
            host: 'HashiCorp Vault by HTTP'
            key: vault.metrics.token.lookup.rate
    - uuid: 6b23dff0bd364416b520cca9dab56b47
      name: 'Vault: Tokens count'
      graph_items:
        - drawtype: GRADIENT_LINE
          color: 199C0D
          item:
            host: 'HashiCorp Vault by HTTP'
            key: vault.metrics.token
    - uuid: 1be13ea06a404fc88ced6c6a972290c8
      name: 'Windows: CPU utilization'
      ymin_type_1: FIXED
      ymax_type_1: FIXED
      graph_items:
        - drawtype: GRADIENT_LINE
          color: 199C0D
          item:
            host: 'Windows by SNMP'
            key: system.cpu.util
