zabbix_export:
  version: '7.0'
  template_groups:
    - uuid: 748ad4d098d447d492bb935c907f652f
      name: Templates/Databases
  templates:
    - uuid: e111446745a1425b862f8727ae63bce4
      template: 'Redis by Zabbix agent 2'
      name: 'Redis by Zabbix agent 2'
      description: |
        Get Redis metrics from plugin for the New Zabbix Agent (zabbix-agent2).
        
        You can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/389050-discussion-thread-for-official-zabbix-template-redis
        
        Generated by official Zabbix template tool "Templator"
      vendor:
        name: Zabbix
        version: 7.0-2
      groups:
        - name: Templates/Databases
      items:
        - uuid: bc4989f098954259924cbee6717519a7
          name: 'Blocked clients'
          type: DEPENDENT
          key: redis.clients.blocked
          delay: '0'
          description: 'The number of connections waiting on a blocking call'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.blocked_clients
          master_item:
            key: redis.clients.info_raw
          tags:
            - tag: component
              value: connections
        - uuid: 6140e8ff18fe41c6b65165b0f5346c7b
          name: 'Connected clients'
          type: DEPENDENT
          key: redis.clients.connected
          delay: '0'
          description: 'The number of connected clients'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.connected_clients
          master_item:
            key: redis.clients.info_raw
          tags:
            - tag: component
              value: connections
        - uuid: daff9d68e5c6439082842959224ff709
          name: 'Get Clients info'
          type: DEPENDENT
          key: redis.clients.info_raw
          delay: '0'
          history: '0'
          value_type: TEXT
          trends: '0'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.Clients
              error_handler: DISCARD_VALUE
          master_item:
            key: 'redis.info["{$REDIS.CONN.URI}"]'
          tags:
            - tag: component
              value: raw
        - uuid: 3f5d6532f403436c823e1461e49e54c2
          name: 'Max input buffer'
          type: DEPENDENT
          key: redis.clients.max_input_buffer
          delay: '0'
          description: 'The biggest input buffer among current client connections'
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  var clients = JSON.parse(value)
                  return clients.client_recent_max_input_buffer || clients.client_biggest_input_buf
          master_item:
            key: redis.clients.info_raw
          tags:
            - tag: component
              value: connections
        - uuid: 44788aa774e64fe685fe6496a9bea97d
          name: 'Max output buffer'
          type: DEPENDENT
          key: redis.clients.max_output_buffer
          delay: '0'
          description: 'The biggest output buffer among current client connections'
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  var clients = JSON.parse(value)
                  return clients.client_recent_max_output_buffer || clients.client_longest_output_list
          master_item:
            key: redis.clients.info_raw
          tags:
            - tag: component
              value: connections
        - uuid: 74f9fe26bdaf4a7bb86214bd7d500363
          name: 'Cluster enabled'
          type: DEPENDENT
          key: redis.cluster.enabled
          delay: '0'
          description: 'Indicate Redis cluster is enabled'
          valuemap:
            name: 'Redis flag'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.Cluster.cluster_enabled
          master_item:
            key: 'redis.info["{$REDIS.CONN.URI}"]'
          tags:
            - tag: component
              value: system
        - uuid: 066486e3be25406185e624611eeb167a
          name: 'Max clients'
          type: DEPENDENT
          key: redis.config.maxclients
          delay: '0'
          description: |
            Max number of connected clients at the same time.
            Once the limit is reached Redis will close all the new connections sending an error "max number of clients reached".
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.maxclients
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 30m
          master_item:
            key: 'redis.config["{$REDIS.CONN.URI}"]'
          tags:
            - tag: component
              value: connections
        - uuid: bf68f3ecc3544ef0af00889139caf313
          name: 'Get config'
          key: 'redis.config["{$REDIS.CONN.URI}"]'
          history: 1h
          value_type: TEXT
          trends: '0'
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
          tags:
            - tag: component
              value: raw
          triggers:
            - uuid: 819b379b51c34616820f86d21c703b27
              expression: 'last(/Redis by Zabbix agent 2/redis.config["{$REDIS.CONN.URI}"],#1)<>last(/Redis by Zabbix agent 2/redis.config["{$REDIS.CONN.URI}"],#2) and length(last(/Redis by Zabbix agent 2/redis.config["{$REDIS.CONN.URI}"]))>0'
              name: 'Redis: Configuration has changed'
              priority: INFO
              description: 'Redis configuration has changed. Acknowledge to close the problem manually.'
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: notice
        - uuid: 3aa0abb0b391474a9bd40d0b3e1cd4da
          name: 'Get CPU info'
          type: DEPENDENT
          key: redis.cpu.info_raw
          delay: '0'
          history: '0'
          value_type: TEXT
          trends: '0'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.CPU
              error_handler: DISCARD_VALUE
          master_item:
            key: 'redis.info["{$REDIS.CONN.URI}"]'
          tags:
            - tag: component
              value: raw
        - uuid: 99d427f1f76a468c9878225abb8cebbd
          name: 'CPU sys'
          type: DEPENDENT
          key: redis.cpu.sys
          delay: '0'
          value_type: FLOAT
          units: s
          description: 'System CPU consumed by the Redis server'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.used_cpu_sys
          master_item:
            key: redis.cpu.info_raw
          tags:
            - tag: component
              value: cpu
        - uuid: 1bfce9a62c924510a9cac3b04320d838
          name: 'CPU sys children'
          type: DEPENDENT
          key: redis.cpu.sys_children
          delay: '0'
          value_type: FLOAT
          units: s
          description: 'System CPU consumed by the background processes'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.used_cpu_sys_children
          master_item:
            key: redis.cpu.info_raw
          tags:
            - tag: component
              value: cpu
        - uuid: 83e7c9f5b8a24c949d72125671d6d39a
          name: 'CPU user'
          type: DEPENDENT
          key: redis.cpu.user
          delay: '0'
          value_type: FLOAT
          units: s
          description: 'User CPU consumed by the Redis server'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.used_cpu_user
          master_item:
            key: redis.cpu.info_raw
          tags:
            - tag: component
              value: cpu
        - uuid: 8bc18ca0c79d4a81811b600cf3fe8ddd
          name: 'CPU user children'
          type: DEPENDENT
          key: redis.cpu.user_children
          delay: '0'
          value_type: FLOAT
          units: s
          description: 'User CPU consumed by the background processes'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.used_cpu_user_children
          master_item:
            key: redis.cpu.info_raw
          tags:
            - tag: component
              value: cpu
        - uuid: 720f146ffe7e481482e11db4b99634c8
          name: 'Get info'
          key: 'redis.info["{$REDIS.CONN.URI}"]'
          history: 1h
          value_type: TEXT
          trends: '0'
          tags:
            - tag: component
              value: raw
          triggers:
            - uuid: 0a5176877ba24df8b5d38c8cc544f0a8
              expression: 'nodata(/Redis by Zabbix agent 2/redis.info["{$REDIS.CONN.URI}"],30m)=1'
              name: 'Redis: Failed to fetch info data'
              event_name: 'Redis: Failed to fetch info data (or no data for 30m)'
              priority: WARNING
              description: 'Zabbix has not received any data for items for the last 30 minutes.'
              manual_close: 'YES'
              dependencies:
                - name: 'Redis: Service is down'
                  expression: 'last(/Redis by Zabbix agent 2/redis.ping["{$REDIS.CONN.URI}"])=0'
              tags:
                - tag: scope
                  value: availability
        - uuid: 52a4cad66c3c47ffab8762050f48e4af
          name: 'Get Keyspace info'
          type: DEPENDENT
          key: redis.keyspace.info_raw
          delay: '0'
          history: '0'
          value_type: TEXT
          trends: '0'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.Keyspace
              error_handler: DISCARD_VALUE
          master_item:
            key: 'redis.info["{$REDIS.CONN.URI}"]'
          tags:
            - tag: component
              value: raw
        - uuid: 5fe2afa1c8ff434a876822ea0b290659
          name: 'Memory fragmentation ratio'
          type: DEPENDENT
          key: redis.memory.fragmentation_ratio
          delay: '0'
          value_type: FLOAT
          description: |
            This ratio is an indication of memory mapping efficiency:
              - Value over 1.0 indicate that memory fragmentation is very likely. Consider restarting the Redis server so the operating system can recover fragmented memory, especially with a ratio over 1.5.
              - Value under 1.0 indicate that Redis likely has insufficient memory available. Consider optimizing memory usage or adding more RAM.
            
            Note: If your peak memory usage is much higher than your current memory usage, the memory fragmentation ratio may be unreliable.
            
            https://redis.io/topics/memory-optimization
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.mem_fragmentation_ratio
          master_item:
            key: redis.memory.info_raw
          tags:
            - tag: component
              value: memory
          triggers:
            - uuid: 629531ff1ebc4bdbb1f277848c436230
              expression: 'min(/Redis by Zabbix agent 2/redis.memory.fragmentation_ratio,15m)>{$REDIS.MEM.FRAG_RATIO.MAX.WARN}'
              name: 'Redis: Memory fragmentation ratio is too high'
              event_name: 'Redis: Memory fragmentation ratio is too high (over {$REDIS.MEM.FRAG_RATIO.MAX.WARN} in 15m)'
              priority: WARNING
              description: |
                This ratio is an indication of memory mapping efficiency:
                  - Value over 1.0 indicate that memory fragmentation is very likely. Consider restarting the Redis server so the operating system can recover fragmented memory, especially with a ratio over 1.5.
                  - Value under 1.0 indicate that Redis likely has insufficient memory available. Consider optimizing memory usage or adding more RAM.
                
                Note: If your peak memory usage is much higher than your current memory usage, the memory fragmentation ratio may be unreliable.
                
                https://redis.io/topics/memory-optimization
              tags:
                - tag: scope
                  value: performance
        - uuid: b4f76d36ac5b45f7b58b6f9b0d2a669d
          name: 'Get Memory info'
          type: DEPENDENT
          key: redis.memory.info_raw
          delay: '0'
          history: '0'
          value_type: TEXT
          trends: '0'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.Memory
              error_handler: DISCARD_VALUE
          master_item:
            key: 'redis.info["{$REDIS.CONN.URI}"]'
          tags:
            - tag: component
              value: raw
        - uuid: 5fef1d341a974cc5aa164e550aff1537
          name: 'Memory used'
          type: DEPENDENT
          key: redis.memory.used_memory
          delay: '0'
          units: B
          description: 'Total number of bytes allocated by Redis using its allocator'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.used_memory
          master_item:
            key: redis.memory.info_raw
          tags:
            - tag: component
              value: memory
        - uuid: de026d98fd9146b78f9a0be2c0b9de10
          name: 'Memory used Lua'
          type: DEPENDENT
          key: redis.memory.used_memory_lua
          delay: '0'
          units: B
          description: 'Amount of memory used by the Lua engine'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.used_memory_lua
          master_item:
            key: redis.memory.info_raw
          tags:
            - tag: component
              value: memory
        - uuid: d3f05ab1c0404f01875afb964d9820e2
          name: 'Memory used peak'
          type: DEPENDENT
          key: redis.memory.used_memory_peak
          delay: '0'
          units: B
          description: 'Peak memory consumed by Redis (in bytes)'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.used_memory_peak
          master_item:
            key: redis.memory.info_raw
          tags:
            - tag: component
              value: memory
        - uuid: ef06ae3dd4784702ad0d281da94c294d
          name: 'Memory used RSS'
          type: DEPENDENT
          key: redis.memory.used_memory_rss
          delay: '0'
          units: B
          description: 'Number of bytes that Redis allocated as seen by the operating system'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.used_memory_rss
          master_item:
            key: redis.memory.info_raw
          tags:
            - tag: component
              value: memory
        - uuid: 86501872c68c4e9fa4b55aaacebb3c3c
          name: 'AOF current rewrite time sec'
          type: DEPENDENT
          key: redis.persistence.aof_current_rewrite_time_sec
          delay: '0'
          value_type: FLOAT
          units: s
          description: 'Duration of the on-going AOF rewrite operation if any'
          valuemap:
            name: 'Redis bgsave time'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.aof_current_rewrite_time_sec
          master_item:
            key: redis.persistence.info_raw
          tags:
            - tag: component
              value: persistence
        - uuid: d298e1ce9aa1481391a48754e2a648b0
          name: 'AOF enabled'
          type: DEPENDENT
          key: redis.persistence.aof_enabled
          delay: '0'
          description: 'Flag indicating AOF logging is activated'
          valuemap:
            name: 'Redis flag'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.aof_enabled
          master_item:
            key: redis.persistence.info_raw
          tags:
            - tag: component
              value: persistence
        - uuid: e2e62cc728c04169afeb051000042e28
          name: 'AOF last bgrewrite status'
          type: DEPENDENT
          key: redis.persistence.aof_last_bgrewrite_status
          delay: '0'
          description: 'Status of the last AOF rewrite operation'
          valuemap:
            name: 'Redis bgwrite status'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.aof_last_bgrewrite_status
            - type: BOOL_TO_DECIMAL
              parameters:
                - ''
          master_item:
            key: redis.persistence.info_raw
          tags:
            - tag: component
              value: persistence
        - uuid: 5a14501541c44699b81e3a89cc93d628
          name: 'AOF last rewrite time sec'
          type: DEPENDENT
          key: redis.persistence.aof_last_rewrite_time_sec
          delay: '0'
          value_type: FLOAT
          units: s
          description: 'Duration of the last AOF rewrite'
          valuemap:
            name: 'Redis bgsave time'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.aof_last_rewrite_time_sec
          master_item:
            key: redis.persistence.info_raw
          tags:
            - tag: component
              value: persistence
        - uuid: 2cfd96e347d341219238bdaf65f1846d
          name: 'AOF last write status'
          type: DEPENDENT
          key: redis.persistence.aof_last_write_status
          delay: '0'
          description: 'Status of the last write operation to the AOF'
          valuemap:
            name: 'Redis bgwrite status'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.aof_last_write_status
            - type: BOOL_TO_DECIMAL
              parameters:
                - ''
          master_item:
            key: redis.persistence.info_raw
          tags:
            - tag: component
              value: persistence
          triggers:
            - uuid: 324e0e8fac514ba99d67aea7eb0ddf7c
              expression: 'last(/Redis by Zabbix agent 2/redis.persistence.aof_last_write_status)=0'
              name: 'Redis: Last AOF write operation failed'
              priority: WARNING
              description: 'Detailed information about persistence: https://redis.io/topics/persistence'
              tags:
                - tag: scope
                  value: notice
        - uuid: 3f4866909425447a828600e9b44ace5b
          name: 'AOF rewrite in progress'
          type: DEPENDENT
          key: redis.persistence.aof_rewrite_in_progress
          delay: '0'
          description: 'Flag indicating an AOF rewrite operation is on-going'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.aof_rewrite_in_progress
          master_item:
            key: redis.persistence.info_raw
          tags:
            - tag: component
              value: persistence
        - uuid: 83d243cc46304694954e08c0b03a3527
          name: 'AOF rewrite scheduled'
          type: DEPENDENT
          key: redis.persistence.aof_rewrite_scheduled
          delay: '0'
          description: 'Flag indicating an AOF rewrite operation will be scheduled once the on-going RDB save is complete'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.aof_rewrite_scheduled
          master_item:
            key: redis.persistence.info_raw
          tags:
            - tag: component
              value: persistence
        - uuid: ce5f961bbf7247e2b210aa026694b256
          name: 'Get Persistence info'
          type: DEPENDENT
          key: redis.persistence.info_raw
          delay: '0'
          history: '0'
          value_type: TEXT
          trends: '0'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.Persistence
              error_handler: DISCARD_VALUE
          master_item:
            key: 'redis.info["{$REDIS.CONN.URI}"]'
          tags:
            - tag: component
              value: raw
        - uuid: 90df2d442dc049d690044b92e0888c31
          name: 'Dump loading'
          type: DEPENDENT
          key: redis.persistence.loading
          delay: '0'
          description: 'Flag indicating if the load of a dump file is on-going'
          valuemap:
            name: 'Redis flag'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.loading
          master_item:
            key: redis.persistence.info_raw
          tags:
            - tag: component
              value: persistence
        - uuid: 5b1ecad187764429a22cbeb69afa3a28
          name: 'RDB bgsave in progress'
          type: DEPENDENT
          key: redis.persistence.rdb_bgsave_in_progress
          delay: '0'
          description: '"1" if bgsave is in progress and "0" otherwise'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.rdb_bgsave_in_progress
          master_item:
            key: redis.persistence.info_raw
          tags:
            - tag: component
              value: persistence
        - uuid: ea673953a3014dc091ec62a20ee53945
          name: 'RDB changes since last save'
          type: DEPENDENT
          key: redis.persistence.rdb_changes_since_last_save
          delay: '0'
          description: 'Number of changes since the last background save'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.rdb_changes_since_last_save
          master_item:
            key: redis.persistence.info_raw
          tags:
            - tag: component
              value: persistence
        - uuid: d8c4d8fceeb5482a951999eedd350f73
          name: 'RDB current bgsave time sec'
          type: DEPENDENT
          key: redis.persistence.rdb_current_bgsave_time_sec
          delay: '0'
          value_type: FLOAT
          units: s
          description: 'Duration of the on-going RDB save operation if any'
          valuemap:
            name: 'Redis bgsave time'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.rdb_current_bgsave_time_sec
          master_item:
            key: redis.persistence.info_raw
          tags:
            - tag: component
              value: persistence
        - uuid: e25772b422314949a564f219d6f725bc
          name: 'RDB last bgsave status'
          type: DEPENDENT
          key: redis.persistence.rdb_last_bgsave_status
          delay: '0'
          description: 'Status of the last RDB save operation'
          valuemap:
            name: 'Redis bgwrite status'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.rdb_last_bgsave_status
            - type: BOOL_TO_DECIMAL
              parameters:
                - ''
          master_item:
            key: redis.persistence.info_raw
          tags:
            - tag: component
              value: persistence
          triggers:
            - uuid: 44e427ae3ce7419dbac3059be11e31ef
              expression: 'last(/Redis by Zabbix agent 2/redis.persistence.rdb_last_bgsave_status)=0'
              name: 'Redis: Last RDB save operation failed'
              priority: WARNING
              description: 'Detailed information about persistence: https://redis.io/topics/persistence'
              tags:
                - tag: scope
                  value: notice
        - uuid: f506941104e34db08c0d8f5a6d9d9710
          name: 'RDB last bgsave time sec'
          type: DEPENDENT
          key: redis.persistence.rdb_last_bgsave_time_sec
          delay: '0'
          value_type: FLOAT
          units: s
          description: 'Duration of the last bg_save operation'
          valuemap:
            name: 'Redis bgsave time'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.rdb_last_bgsave_time_sec
          master_item:
            key: redis.persistence.info_raw
          tags:
            - tag: component
              value: persistence
        - uuid: 04e1c21ca49246d7aba062cd001a8c00
          name: 'RDB last save time'
          type: DEPENDENT
          key: redis.persistence.rdb_last_save_time
          delay: '0'
          description: 'Epoch-based timestamp of last successful RDB save'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.rdb_last_save_time
          master_item:
            key: redis.persistence.info_raw
          tags:
            - tag: component
              value: persistence
        - uuid: 5949fadcbe2b405baff0668e81627278
          name: Ping
          key: 'redis.ping["{$REDIS.CONN.URI}"]'
          valuemap:
            name: 'Service state'
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 10m
          tags:
            - tag: component
              value: application
            - tag: component
              value: health
          triggers:
            - uuid: 62353f9ed6204b70ba270827c3922244
              expression: 'last(/Redis by Zabbix agent 2/redis.ping["{$REDIS.CONN.URI}"])=0'
              name: 'Redis: Service is down'
              priority: AVERAGE
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: availability
        - uuid: 6680a01fb98c4504bed6458ba6cde146
          name: 'Connected slaves'
          type: DEPENDENT
          key: redis.replication.connected_slaves
          delay: '0'
          description: 'Number of connected slaves'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.connected_slaves
          master_item:
            key: redis.replication.info_raw
          tags:
            - tag: component
              value: replication
          triggers:
            - uuid: 6d213088211a4bb38ff97b59113dccd9
              expression: 'last(/Redis by Zabbix agent 2/redis.replication.connected_slaves,#1)<>last(/Redis by Zabbix agent 2/redis.replication.connected_slaves,#2)'
              recovery_mode: NONE
              name: 'Redis: Number of slaves has changed'
              priority: INFO
              description: 'Redis number of slaves has changed. Acknowledge to close the problem manually.'
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: notice
        - uuid: 57d121578bc848d787419221ac8dcabe
          name: 'Get Replication info'
          type: DEPENDENT
          key: redis.replication.info_raw
          delay: '0'
          history: '0'
          value_type: TEXT
          trends: '0'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.Replication
              error_handler: DISCARD_VALUE
          master_item:
            key: 'redis.info["{$REDIS.CONN.URI}"]'
          tags:
            - tag: component
              value: raw
        - uuid: 37fa1595299c4a3ea091039f4db47cf3
          name: 'Master replication offset'
          type: DEPENDENT
          key: redis.replication.master_repl_offset
          delay: '0'
          units: B
          description: 'Replication offset reported by the master'
          valuemap:
            name: 'Redis repl offset'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.master_repl_offset
          master_item:
            key: redis.replication.info_raw
          tags:
            - tag: component
              value: replication
        - uuid: cf067374339e44e5a4ba2cd70d4fec3a
          name: 'Replication backlog active'
          type: DEPENDENT
          key: redis.replication.repl_backlog_active
          delay: '0'
          description: 'Flag indicating replication backlog is active'
          valuemap:
            name: 'Redis flag'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.repl_backlog_active
          master_item:
            key: redis.replication.info_raw
          tags:
            - tag: component
              value: replication
        - uuid: b4ea8df4d73144f99ffd4f5f6e6359ef
          name: 'Replication backlog first byte offset'
          type: DEPENDENT
          key: redis.replication.repl_backlog_first_byte_offset
          delay: '0'
          units: B
          description: 'The master offset of the replication backlog buffer'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.repl_backlog_first_byte_offset
          master_item:
            key: redis.replication.info_raw
          tags:
            - tag: component
              value: replication
        - uuid: 081cd9df926d48cea7e5c68f7761ddb1
          name: 'Replication backlog history length'
          type: DEPENDENT
          key: redis.replication.repl_backlog_histlen
          delay: '0'
          description: 'Amount of data in the backlog sync buffer'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.repl_backlog_histlen
          master_item:
            key: redis.replication.info_raw
          tags:
            - tag: component
              value: replication
        - uuid: a437a46aafe3413884975fc480091bb5
          name: 'Replication backlog size'
          type: DEPENDENT
          key: redis.replication.repl_backlog_size
          delay: '0'
          units: B
          description: 'Total size in bytes of the replication backlog buffer'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.repl_backlog_size
          master_item:
            key: redis.replication.info_raw
          tags:
            - tag: component
              value: replication
        - uuid: d8371457697744159aabc3bdece4af2e
          name: 'Replication role'
          type: DEPENDENT
          key: redis.replication.role
          delay: '0'
          value_type: CHAR
          trends: '0'
          description: 'Value is "master" if the instance is replica of no one, or "slave" if the instance is a replica of some master instance. Note that a replica can be master of another replica (chained replication).'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.role
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          master_item:
            key: redis.replication.info_raw
          tags:
            - tag: component
              value: replication
          triggers:
            - uuid: d24f7aabefb345e791b3bb276f30ac8c
              expression: 'last(/Redis by Zabbix agent 2/redis.replication.role,#1)<>last(/Redis by Zabbix agent 2/redis.replication.role,#2) and length(last(/Redis by Zabbix agent 2/redis.replication.role))>0'
              recovery_mode: NONE
              name: 'Redis: Replication role has changed'
              event_name: 'Redis: Replication role has changed (new role: {ITEM.VALUE})'
              priority: WARNING
              description: 'Redis replication role has changed. Acknowledge to close the problem manually.'
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: notice
        - uuid: 6ac72e70dc98478aa5c7730f59440c19
          name: 'Get Server info'
          type: DEPENDENT
          key: redis.server.info_raw
          delay: '0'
          history: '0'
          value_type: TEXT
          trends: '0'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.Server
              error_handler: DISCARD_VALUE
          master_item:
            key: 'redis.info["{$REDIS.CONN.URI}"]'
          tags:
            - tag: component
              value: raw
        - uuid: 8a08d4f30b78448986b9fd94cafd398c
          name: 'Process id'
          type: DEPENDENT
          key: redis.server.process_id
          delay: '0'
          description: 'PID of the server process'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.process_id
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          master_item:
            key: redis.server.info_raw
          tags:
            - tag: component
              value: os
        - uuid: b2deab550d984b3e93741c53019e7f89
          name: 'Redis mode'
          type: DEPENDENT
          key: redis.server.redis_mode
          delay: '0'
          value_type: CHAR
          trends: '0'
          description: 'The server''s mode ("standalone", "sentinel" or "cluster")'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.redis_mode
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          master_item:
            key: redis.server.info_raw
          tags:
            - tag: component
              value: system
        - uuid: 9699d6a6563b498ea73f88a4c1dd9cf1
          name: 'Redis version'
          type: DEPENDENT
          key: redis.server.redis_version
          delay: '0'
          value_type: CHAR
          trends: '0'
          description: 'Version of the Redis server'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.redis_version
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          master_item:
            key: redis.server.info_raw
          tags:
            - tag: component
              value: application
          triggers:
            - uuid: 6e307546b26344deb83f2295c90e9a33
              expression: 'last(/Redis by Zabbix agent 2/redis.server.redis_version,#1)<>last(/Redis by Zabbix agent 2/redis.server.redis_version,#2) and length(last(/Redis by Zabbix agent 2/redis.server.redis_version))>0'
              name: 'Redis: Version has changed'
              event_name: 'Redis: Version has changed (new version: {ITEM.VALUE})'
              priority: INFO
              description: 'The Redis version has changed. Acknowledge to close the problem manually.'
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: notice
        - uuid: 8c28e54f9e5d40d6b69c1f5b39b85054
          name: 'TCP port'
          type: DEPENDENT
          key: redis.server.tcp_port
          delay: '0'
          description: 'TCP/IP listen port'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.tcp_port
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          master_item:
            key: redis.server.info_raw
          tags:
            - tag: component
              value: network
        - uuid: af225edd976146f2920bc05afb703f14
          name: Uptime
          type: DEPENDENT
          key: redis.server.uptime
          delay: '0'
          units: s
          description: 'Number of seconds since Redis server start'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.uptime_in_seconds
          master_item:
            key: redis.server.info_raw
          tags:
            - tag: component
              value: application
          triggers:
            - uuid: 4961e91eed2a4e83899d135315748b0e
              expression: 'last(/Redis by Zabbix agent 2/redis.server.uptime)<10m'
              name: 'Redis: Host has been restarted'
              event_name: 'Redis: {HOST.NAME} has been restarted (uptime < 10m)'
              priority: INFO
              description: 'The host uptime is less than 10 minutes.'
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: notice
        - uuid: 51a65fa1d27e4fcd915c5019687e7bc9
          name: 'Slowlog entries per second'
          key: 'redis.slowlog.count["{$REDIS.CONN.URI}"]'
          preprocessing:
            - type: CHANGE_PER_SECOND
              parameters:
                - ''
          tags:
            - tag: component
              value: application
          triggers:
            - uuid: 37fb0255e49c42c8913e56fe4aaa1d14
              expression: 'min(/Redis by Zabbix agent 2/redis.slowlog.count["{$REDIS.CONN.URI}"],5m)>{$REDIS.SLOWLOG.COUNT.MAX.WARN}'
              name: 'Redis: Too many entries in the slowlog'
              event_name: 'Redis: Too many entries in the slowlog (over {$REDIS.SLOWLOG.COUNT.MAX.WARN} per second in 5m)'
              priority: INFO
              tags:
                - tag: scope
                  value: performance
        - uuid: eca69284ac8e4ae3a7e965b6549e9343
          name: 'Evicted keys'
          type: DEPENDENT
          key: redis.stats.evicted_keys
          delay: '0'
          description: 'Number of evicted keys due to maxmemory limit'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.evicted_keys
          master_item:
            key: redis.stats.info_raw
          tags:
            - tag: component
              value: keys
        - uuid: 0a77355cfba348bb8884d2405892ed5d
          name: 'Expired keys'
          type: DEPENDENT
          key: redis.stats.expired_keys
          delay: '0'
          description: 'Total number of key expiration events'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.expired_keys
          master_item:
            key: redis.stats.info_raw
          tags:
            - tag: component
              value: keys
        - uuid: edcd97d79c2a4213b2bbefa36f37881d
          name: 'Get Stats info'
          type: DEPENDENT
          key: redis.stats.info_raw
          delay: '0'
          history: '0'
          value_type: TEXT
          trends: '0'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.Stats
              error_handler: DISCARD_VALUE
          master_item:
            key: 'redis.info["{$REDIS.CONN.URI}"]'
          tags:
            - tag: component
              value: raw
        - uuid: 5841b6f2a76b432080029367e7008cd1
          name: 'Instantaneous input bytes per second'
          type: DEPENDENT
          key: redis.stats.instantaneous_input.rate
          delay: '0'
          value_type: FLOAT
          units: Bps
          description: 'The network''s read rate per second in KB/sec'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.instantaneous_input_kbps
            - type: MULTIPLIER
              parameters:
                - '1024'
          master_item:
            key: redis.stats.info_raw
          tags:
            - tag: component
              value: network
        - uuid: 3552b285d7ca41f796c1838e268a92c1
          name: 'Instantaneous operations per sec'
          type: DEPENDENT
          key: redis.stats.instantaneous_ops.rate
          delay: '0'
          description: 'Number of commands processed per second'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.instantaneous_ops_per_sec
          master_item:
            key: redis.stats.info_raw
          tags:
            - tag: component
              value: operations
        - uuid: 86c05ed58e8448e9b7307a3c82e182af
          name: 'Instantaneous output bytes per second'
          type: DEPENDENT
          key: redis.stats.instantaneous_output.rate
          delay: '0'
          value_type: FLOAT
          units: Bps
          description: 'The network''s write rate per second in KB/sec'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.instantaneous_output_kbps
            - type: MULTIPLIER
              parameters:
                - '1024'
          master_item:
            key: redis.stats.info_raw
          tags:
            - tag: component
              value: network
        - uuid: 66d30a422e704174ae7700e1dd006aa1
          name: 'Keyspace hits'
          type: DEPENDENT
          key: redis.stats.keyspace_hits
          delay: '0'
          description: 'Number of successful lookup of keys in the main dictionary'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.keyspace_hits
          master_item:
            key: redis.stats.info_raw
          tags:
            - tag: component
              value: keys
        - uuid: e24da63a83dc4223bed35cf80fc22300
          name: 'Keyspace misses'
          type: DEPENDENT
          key: redis.stats.keyspace_misses
          delay: '0'
          description: 'Number of failed lookup of keys in the main dictionary'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.keyspace_misses
          master_item:
            key: redis.stats.info_raw
          tags:
            - tag: component
              value: keys
        - uuid: 1f11810f06d44e498a895c516f902f95
          name: 'Latest fork usec'
          type: DEPENDENT
          key: redis.stats.latest_fork_usec
          delay: '0'
          units: s
          description: 'Duration of the latest fork operation in microseconds'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.latest_fork_usec
            - type: MULTIPLIER
              parameters:
                - '1.0E-5'
          master_item:
            key: redis.stats.info_raw
          tags:
            - tag: component
              value: operations
        - uuid: 2662dfd3524749998306f1d7afe33019
          name: 'Migrate cached sockets'
          type: DEPENDENT
          key: redis.stats.migrate_cached_sockets
          delay: '0'
          description: 'The number of sockets open for MIGRATE purposes'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.migrate_cached_sockets
          master_item:
            key: redis.stats.info_raw
          tags:
            - tag: component
              value: connections
        - uuid: 186e6bda0a0e463bb8218a58f227ff2b
          name: 'Pubsub channels'
          type: DEPENDENT
          key: redis.stats.pubsub_channels
          delay: '0'
          description: 'Global number of pub/sub channels with client subscriptions'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.pubsub_channels
          master_item:
            key: redis.stats.info_raw
          tags:
            - tag: component
              value: subscribes
        - uuid: 1e0711a2b40e4fea88c0c57a1f6d2b30
          name: 'Pubsub patterns'
          type: DEPENDENT
          key: redis.stats.pubsub_patterns
          delay: '0'
          description: 'Global number of pub/sub pattern with client subscriptions'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.pubsub_patterns
          master_item:
            key: redis.stats.info_raw
          tags:
            - tag: component
              value: subscribes
        - uuid: 65135267c836435d872325a7129e5857
          name: 'Rejected connections'
          type: DEPENDENT
          key: redis.stats.rejected_connections
          delay: '0'
          description: 'Number of connections rejected because of maxclients limit'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.rejected_connections
          master_item:
            key: redis.stats.info_raw
          tags:
            - tag: component
              value: connections
          triggers:
            - uuid: 5bf0680529ce496b8fe419e2732c69d1
              expression: 'last(/Redis by Zabbix agent 2/redis.stats.rejected_connections)>0'
              name: 'Redis: Connections are rejected'
              priority: HIGH
              description: |
                The number of connections has reached the value of "maxclients".
                
                https://redis.io/topics/clients
              tags:
                - tag: scope
                  value: availability
        - uuid: 37135fd8b7e94c41bc21e802f21baeb4
          name: 'Sync full'
          type: DEPENDENT
          key: redis.stats.sync_full
          delay: '0'
          description: 'The number of full resyncs with replicas'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.sync_full
          master_item:
            key: redis.stats.info_raw
          tags:
            - tag: component
              value: replication
        - uuid: cb5b6380b164419280fdcd98077c5d8f
          name: 'Sync partial err'
          type: DEPENDENT
          key: redis.stats.sync_partial_err
          delay: '0'
          description: 'The number of denied partial resync requests'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.sync_partial_err
          master_item:
            key: redis.stats.info_raw
          tags:
            - tag: component
              value: replication
        - uuid: 231560fd350e4b5096b242dddecd7c8b
          name: 'Sync partial ok'
          type: DEPENDENT
          key: redis.stats.sync_partial_ok
          delay: '0'
          description: 'The number of accepted partial resync requests'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.sync_partial_ok
          master_item:
            key: redis.stats.info_raw
          tags:
            - tag: component
              value: replication
        - uuid: 278ff045f367443380fcd594dba77d53
          name: 'Total commands processed'
          type: DEPENDENT
          key: redis.stats.total_commands_processed
          delay: '0'
          description: 'Total number of commands processed by the server'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.total_commands_processed
          master_item:
            key: redis.stats.info_raw
          tags:
            - tag: component
              value: commands
        - uuid: c9afbbbec8a44926887389a590f1df91
          name: 'Total connections received'
          type: DEPENDENT
          key: redis.stats.total_connections_received
          delay: '0'
          description: 'Total number of connections accepted by the server'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.total_connections_received
          master_item:
            key: redis.stats.info_raw
          tags:
            - tag: component
              value: connections
        - uuid: 838cb6cbfd8a42e1b9cfa4a60670324a
          name: 'Total net input bytes'
          type: DEPENDENT
          key: redis.stats.total_net_input_bytes
          delay: '0'
          units: B
          description: 'The total number of bytes read from the network'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.total_net_input_bytes
          master_item:
            key: redis.stats.info_raw
          tags:
            - tag: component
              value: network
        - uuid: 762f6b06eb094de896d265fcf3f9a603
          name: 'Total net output bytes'
          type: DEPENDENT
          key: redis.stats.total_net_output_bytes
          delay: '0'
          units: B
          description: 'The total number of bytes written to the network'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.total_net_output_bytes
          master_item:
            key: redis.stats.info_raw
          tags:
            - tag: component
              value: network
      discovery_rules:
        - uuid: 527a3526b0e64225bb3dcf2dbbfbda5b
          name: 'Process metrics discovery'
          key: 'proc.num["{$REDIS.LLD.PROCESS_NAME}"]'
          delay: 1h
          description: 'Collect metrics by Zabbix agent if it exists'
          item_prototypes:
            - uuid: 376a8861723c45c3bde08573c7ab2ed9
              name: 'CPU utilization'
              key: 'proc.cpu.util["{$REDIS.PROCESS_NAME}{#SINGLETON}"]'
              value_type: FLOAT
              units: '%'
              description: 'Process CPU utilization percentage.'
              tags:
                - tag: component
                  value: cpu
            - uuid: 9d68e00f913a4faea5a334d361f324b0
              name: 'Memory usage (rss)'
              key: 'proc.mem["{$REDIS.PROCESS_NAME}{#SINGLETON}",,,,rss]'
              units: B
              description: 'Resident set size memory used by process in bytes.'
              tags:
                - tag: component
                  value: memory
            - uuid: 325cabaa95994a58bf30992586ba7544
              name: 'Memory usage (vsize)'
              key: 'proc.mem["{$REDIS.PROCESS_NAME}{#SINGLETON}",,,,vsize]'
              units: B
              description: 'Virtual memory size used by process in bytes.'
              tags:
                - tag: component
                  value: memory
            - uuid: d9ccc25e5d1b4f05b22354a7672b518c
              name: 'Number of running processes'
              key: 'proc.num["{$REDIS.PROCESS_NAME}{#SINGLETON}"]'
              tags:
                - tag: component
                  value: system
              trigger_prototypes:
                - uuid: 590bd23c52b74dd7951dcf74903ac2ed
                  expression: 'last(/Redis by Zabbix agent 2/proc.num["{$REDIS.PROCESS_NAME}{#SINGLETON}"])=0'
                  name: 'Redis: Process is not running'
                  priority: HIGH
                  tags:
                    - tag: scope
                      value: availability
          graph_prototypes:
            - uuid: e26f8c31c3654febbeda2ffb97438c36
              name: 'Redis: Memory usage{#SINGLETON}'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'Redis by Zabbix agent 2'
                    key: 'proc.mem["{$REDIS.PROCESS_NAME}{#SINGLETON}",,,,vsize]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'Redis by Zabbix agent 2'
                    key: 'proc.mem["{$REDIS.PROCESS_NAME}{#SINGLETON}",,,,rss]'
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - 'return JSON.stringify(value > 0 ? [{''{#SINGLETON}'': ''''}] : []);'
        - uuid: 0f7966f47fda4b41856163ffb438bf27
          name: 'Keyspace discovery'
          type: DEPENDENT
          key: redis.keyspace.discovery
          delay: '0'
          filter:
            evaltype: AND
            conditions:
              - macro: '{#DB}'
                value: '{$REDIS.LLD.FILTER.DB.MATCHES}'
                formulaid: A
              - macro: '{#DB}'
                value: '{$REDIS.LLD.FILTER.DB.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
                formulaid: B
          description: 'Individual keyspace metrics'
          item_prototypes:
            - uuid: 38fcb8524f1b4f50a4945333fc6c7536
              name: 'DB {#DB}: Average TTL'
              type: DEPENDENT
              key: 'redis.db.avg_ttl["{#DB}"]'
              delay: '0'
              units: s
              description: 'Average TTL'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.avg_ttl
                - type: MULTIPLIER
                  parameters:
                    - '0.001'
              master_item:
                key: 'redis.db.info_raw["{#DB}"]'
              tags:
                - tag: component
                  value: keys
                - tag: database
                  value: '{#DB}'
            - uuid: bde12d459b7b4e23a22ed6188b57bb25
              name: 'DB {#DB}: Expires'
              type: DEPENDENT
              key: 'redis.db.expires["{#DB}"]'
              delay: '0'
              description: 'Number of keys with an expiration'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.expires
              master_item:
                key: 'redis.db.info_raw["{#DB}"]'
              tags:
                - tag: component
                  value: keys
                - tag: database
                  value: '{#DB}'
            - uuid: 983d5c7da67d42399105d5477c54c1e6
              name: 'DB {#DB}: Get Keyspace info'
              type: DEPENDENT
              key: 'redis.db.info_raw["{#DB}"]'
              delay: '0'
              history: '0'
              value_type: TEXT
              trends: '0'
              description: 'The item gets information about keyspace of {#DB} database.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$[''{#DB}'']'
                  error_handler: DISCARD_VALUE
              master_item:
                key: redis.keyspace.info_raw
              tags:
                - tag: component
                  value: raw
                - tag: database
                  value: '{#DB}'
            - uuid: 2bae0d2f8b8348bcad207b61ef6286c3
              name: 'DB {#DB}: Keys'
              type: DEPENDENT
              key: 'redis.db.keys["{#DB}"]'
              delay: '0'
              description: 'Total number of keys'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.keys
              master_item:
                key: 'redis.db.info_raw["{#DB}"]'
              tags:
                - tag: component
                  value: keys
                - tag: database
                  value: '{#DB}'
          graph_prototypes:
            - uuid: 3271f3a143dc43f38a674b6cbae8cd0d
              name: 'DB {#DB}: Keys'
              graph_items:
                - drawtype: GRADIENT_LINE
                  color: 199C0D
                  item:
                    host: 'Redis by Zabbix agent 2'
                    key: 'redis.db.keys["{#DB}"]'
                - sortorder: '1'
                  drawtype: GRADIENT_LINE
                  color: F63100
                  item:
                    host: 'Redis by Zabbix agent 2'
                    key: 'redis.db.expires["{#DB}"]'
          master_item:
            key: redis.keyspace.info_raw
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  return JSON.stringify(Object.keys(JSON.parse(value))
                    .map(function (v){return {"{#DB}": v}}));
        - uuid: a3fb00d4bbc24779b6c7223b867f4d2c
          name: 'Version 4+ metrics discovery'
          type: DEPENDENT
          key: redis.metrics.v4.discovery
          delay: '0'
          description: 'Additional metrics for versions 4+'
          item_prototypes:
            - uuid: b7e8d996335f41158b3c6a8961319db0
              name: 'Active defrag running{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.memory.active_defrag_running[{#SINGLETON}]'
              delay: '0'
              description: 'Flag indicating if active defragmentation is active'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.active_defrag_running
              master_item:
                key: redis.memory.info_raw
              tags:
                - tag: component
                  value: memory
            - uuid: 2065e38cd7e5417abfd0b80116b0d77b
              name: 'Lazyfree pending objects{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.memory.lazyfree_pending_objects[{#SINGLETON}]'
              delay: '0'
              description: 'The number of objects waiting to be freed (as a result of calling UNLINK, or FLUSHDB and FLUSHALL with the ASYNC option)'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.lazyfree_pending_objects
              master_item:
                key: redis.memory.info_raw
              tags:
                - tag: component
                  value: memory
            - uuid: 2c5c700b53374dac86d805384b6bc9b0
              name: 'Max memory{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.memory.maxmemory[{#SINGLETON}]'
              delay: '0'
              units: B
              description: 'Maximum amount of memory allocated to the Redisdb system'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.maxmemory
              master_item:
                key: redis.memory.info_raw
              tags:
                - tag: component
                  value: memory
            - uuid: 0f094be6d0fa4afda3aa7916fac4d3a3
              name: 'Max memory policy{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.memory.maxmemory_policy[{#SINGLETON}]'
              delay: '0'
              value_type: CHAR
              trends: '0'
              description: 'The value of the maxmemory-policy configuration directive'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.maxmemory_policy
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: redis.memory.info_raw
              tags:
                - tag: component
                  value: memory
            - uuid: bf804c6ee44640168e15ca62803b7f10
              name: 'Total system memory{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.memory.total_system_memory[{#SINGLETON}]'
              delay: '0'
              units: B
              description: 'The total amount of memory that the Redis host has'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.total_system_memory
              master_item:
                key: redis.memory.info_raw
              tags:
                - tag: component
                  value: memory
            - uuid: 1c0e0355d5cd429f9a914fb67f29e366
              name: 'Memory used dataset{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.memory.used_memory_dataset[{#SINGLETON}]'
              delay: '0'
              units: B
              description: 'The size in bytes of the dataset'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.used_memory_dataset
              master_item:
                key: redis.memory.info_raw
              tags:
                - tag: component
                  value: memory
            - uuid: 4e5937420b3843568d9f36b40c0a3c28
              name: 'Memory used dataset %{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.memory.used_memory_dataset_perc[{#SINGLETON}]'
              delay: '0'
              value_type: FLOAT
              units: '%'
              description: 'The percentage of used_memory_dataset out of the net memory usage (used_memory minus used_memory_startup)'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.used_memory_dataset_perc
                - type: REGEX
                  parameters:
                    - (.+)%
                    - \1
              master_item:
                key: redis.memory.info_raw
              tags:
                - tag: component
                  value: memory
            - uuid: e085382c18f3473f9d2271024cd61e93
              name: 'Memory used overhead{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.memory.used_memory_overhead[{#SINGLETON}]'
              delay: '0'
              units: B
              description: 'The sum in bytes of all overheads that the server allocated for managing its internal data structures'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.used_memory_overhead
              master_item:
                key: redis.memory.info_raw
              tags:
                - tag: component
                  value: memory
            - uuid: 5da63141e8b145a38954736806602b4a
              name: 'Memory used peak %{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.memory.used_memory_peak_perc[{#SINGLETON}]'
              delay: '0'
              value_type: FLOAT
              units: '%'
              description: 'The percentage of used_memory_peak out of used_memory'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.used_memory_peak_perc
                - type: REGEX
                  parameters:
                    - (.+)%
                    - \1
              master_item:
                key: redis.memory.info_raw
              tags:
                - tag: component
                  value: memory
            - uuid: dabd2918056b4b999f4b30bd8e64e8a1
              name: 'Memory used startup{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.memory.used_memory_startup[{#SINGLETON}]'
              delay: '0'
              units: B
              description: 'Initial amount of memory consumed by Redis at startup in bytes'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.used_memory_startup
              master_item:
                key: redis.memory.info_raw
              tags:
                - tag: component
                  value: memory
            - uuid: 9da41967290742cb8daa2f69ac1d6966
              name: 'AOF last CoW size{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.persistence.aof_last_cow_size[{#SINGLETON}]'
              delay: '0'
              units: B
              description: 'The size in bytes of copy-on-write allocations during the last AOF rewrite operation'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.aof_last_cow_size
              master_item:
                key: redis.persistence.info_raw
              tags:
                - tag: component
                  value: persistence
            - uuid: 768839c72e3f4be89e30dd0d140c9d03
              name: 'RDB last CoW size{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.persistence.rdb_last_cow_size[{#SINGLETON}]'
              delay: '0'
              units: B
              description: 'The size in bytes of copy-on-write allocations during the last RDB save operation'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.rdb_last_cow_size
              master_item:
                key: redis.persistence.info_raw
              tags:
                - tag: component
                  value: persistence
            - uuid: bead155d26054d0487622f29b86dcd2b
              name: 'Replication second offset{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.replication.second_repl_offset[{#SINGLETON}]'
              delay: '0'
              value_type: FLOAT
              units: B
              description: 'Offset up to which replication IDs are accepted'
              valuemap:
                name: 'Redis repl offset'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.second_repl_offset
              master_item:
                key: redis.replication.info_raw
              tags:
                - tag: component
                  value: replication
            - uuid: 14d062351a114e8eafa2b2b889317903
              name: 'Executable path{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.server.executable[{#SINGLETON}]'
              delay: '0'
              value_type: CHAR
              trends: '0'
              description: 'The path to the server''s executable'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.executable
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: redis.server.info_raw
              tags:
                - tag: component
                  value: system
            - uuid: 5458542148954618a6d22df1effffe57
              name: 'Active defrag hits{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.stats.active_defrag_hits[{#SINGLETON}]'
              delay: '0'
              description: 'Number of value reallocations performed by active the defragmentation process'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.active_defrag_hits
              master_item:
                key: redis.stats.info_raw
              tags:
                - tag: component
                  value: memory
            - uuid: f8b424743dd24691be2bd07d5538b16a
              name: 'Active defrag key hits{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.stats.active_defrag_key_hits[{#SINGLETON}]'
              delay: '0'
              description: 'Number of keys that were actively defragmented'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.active_defrag_key_hits
              master_item:
                key: redis.stats.info_raw
              tags:
                - tag: component
                  value: keys
            - uuid: 8aba0ad8d7314b6b8cf1e80cb0afb618
              name: 'Active defrag key misses{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.stats.active_defrag_key_misses[{#SINGLETON}]'
              delay: '0'
              description: 'Number of keys that were skipped by the active defragmentation process'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.active_defrag_key_misses
              master_item:
                key: redis.stats.info_raw
              tags:
                - tag: component
                  value: keys
            - uuid: 3c20cca8b4a84c619d90d64a34386dfa
              name: 'Active defrag misses{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.stats.active_defrag_misses[{#SINGLETON}]'
              delay: '0'
              description: 'Number of aborted value reallocations started by the active defragmentation process'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.active_defrag_misses
              master_item:
                key: redis.stats.info_raw
              tags:
                - tag: component
                  value: memory
            - uuid: a34f4e33a0cb4381b5c3b7a507e90bee
              name: 'Expired stale %{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.stats.expired_stale_perc[{#SINGLETON}]'
              delay: '0'
              value_type: FLOAT
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.expired_stale_perc
              master_item:
                key: redis.stats.info_raw
              tags:
                - tag: component
                  value: keys
            - uuid: 81667ae170b04ac0980e122566c5ed8e
              name: 'Expired time cap reached count{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.stats.expired_time_cap_reached_count[{#SINGLETON}]'
              delay: '0'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.expired_time_cap_reached_count
              master_item:
                key: redis.stats.info_raw
              tags:
                - tag: component
                  value: cycles
            - uuid: 93bf8753d6b242f1b8d2288fb926e01b
              name: 'Slave expires tracked keys{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.stats.slave_expires_tracked_keys[{#SINGLETON}]'
              delay: '0'
              description: 'The number of keys tracked for expiry purposes (applicable only to writable replicas)'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.slave_expires_tracked_keys
              master_item:
                key: redis.stats.info_raw
              tags:
                - tag: component
                  value: keys
          trigger_prototypes:
            - uuid: 0c3560588d2d421c843c006ef5fa4645
              expression: 'last(/Redis by Zabbix agent 2/redis.memory.used_memory)/min(/Redis by Zabbix agent 2/redis.memory.maxmemory[{#SINGLETON}],5m)*100>{$REDIS.MEM.PUSED.MAX.WARN}'
              name: 'Redis: Memory usage is too high'
              event_name: 'Redis: Memory usage is too high (over {$REDIS.MEM.PUSED.MAX.WARN}% in 5m)'
              priority: WARNING
              tags:
                - tag: scope
                  value: capacity
                - tag: scope
                  value: performance
          master_item:
            key: redis.server.info_raw
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.redis_version
            - type: JAVASCRIPT
              parameters:
                - 'return JSON.stringify(parseInt(value.split(''.'')[0]) >= 4 ? [{''{#SINGLETON}'': ''''}] : []);'
        - uuid: f7a9f1e26bb54cb6adf74ee9f30d88cd
          name: 'Version 5+ metrics discovery'
          type: DEPENDENT
          key: redis.metrics.v5.discovery
          delay: '0'
          description: 'Additional metrics for versions 5+'
          item_prototypes:
            - uuid: adc25c08108e4fcaa3b41d2897d0a0c6
              name: 'Allocator active{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.memory.allocator_active[{#SINGLETON}]'
              delay: '0'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.allocator_active
              master_item:
                key: redis.memory.info_raw
              tags:
                - tag: component
                  value: memory
            - uuid: 81ef89fc751746ac8254a55a2b2e4ea7
              name: 'Allocator allocated{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.memory.allocator_allocated[{#SINGLETON}]'
              delay: '0'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.allocator_allocated
              master_item:
                key: redis.memory.info_raw
              tags:
                - tag: component
                  value: memory
            - uuid: 23e034630d7246f7ba993d5c6db2d6bb
              name: 'Allocator fragmentation bytes{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.memory.allocator_frag_bytes[{#SINGLETON}]'
              delay: '0'
              units: B
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.allocator_frag_bytes
              master_item:
                key: redis.memory.info_raw
              tags:
                - tag: component
                  value: memory
            - uuid: 690a13b13d134f648b4b8381f6a185f0
              name: 'Allocator fragmentation ratio{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.memory.allocator_frag_ratio[{#SINGLETON}]'
              delay: '0'
              value_type: FLOAT
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.allocator_frag_ratio
              master_item:
                key: redis.memory.info_raw
              tags:
                - tag: component
                  value: memory
            - uuid: 0abd6a9adb034536b3a389e0af2af732
              name: 'Allocator resident{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.memory.allocator_resident[{#SINGLETON}]'
              delay: '0'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.allocator_resident
              master_item:
                key: redis.memory.info_raw
              tags:
                - tag: component
                  value: memory
            - uuid: b5ecad496c554ccaad495d2f112b5e2f
              name: 'Allocator RSS bytes{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.memory.allocator_rss_bytes[{#SINGLETON}]'
              delay: '0'
              units: B
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.allocator_rss_bytes
              master_item:
                key: redis.memory.info_raw
              tags:
                - tag: component
                  value: memory
            - uuid: 643fe70e1a7f488196b053722a2df9c2
              name: 'Allocator RSS ratio{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.memory.allocator_rss_ratio[{#SINGLETON}]'
              delay: '0'
              value_type: FLOAT
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.allocator_rss_ratio
              master_item:
                key: redis.memory.info_raw
              tags:
                - tag: component
                  value: memory
            - uuid: 40a639acab5a415a8fb48b7520b7d198
              name: 'Memory fragmentation bytes{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.memory.fragmentation_bytes[{#SINGLETON}]'
              delay: '0'
              units: B
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.mem_fragmentation_bytes
              master_item:
                key: redis.memory.info_raw
              tags:
                - tag: component
                  value: memory
            - uuid: 70c53f60d020440c8f7cba83b32f58c9
              name: 'Memory AOF buffer{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.memory.mem_aof_buffer[{#SINGLETON}]'
              delay: '0'
              description: 'Size of the AOF buffer'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.mem_aof_buffer
              master_item:
                key: redis.memory.info_raw
              tags:
                - tag: component
                  value: memory
                - tag: component
                  value: persistence
            - uuid: d64718269f20470e9661ff7c479dc300
              name: 'Memory clients normal{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.memory.mem_clients_normal[{#SINGLETON}]'
              delay: '0'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.mem_clients_normal
              master_item:
                key: redis.memory.info_raw
              tags:
                - tag: component
                  value: memory
            - uuid: e685ab11ab534f8abd1a7e2ee35839e8
              name: 'Memory clients slaves{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.memory.mem_clients_slaves[{#SINGLETON}]'
              delay: '0'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.mem_clients_slaves
              master_item:
                key: redis.memory.info_raw
              tags:
                - tag: component
                  value: memory
            - uuid: f6c9bfda015d47d0b34f466e95356a5d
              name: 'Memory not counted for evict{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.memory.not_counted_for_evict[{#SINGLETON}]'
              delay: '0'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.mem_not_counted_for_evict
              master_item:
                key: redis.memory.info_raw
              tags:
                - tag: component
                  value: memory
            - uuid: eaac8b142fc540ad9c7563e145819643
              name: 'Memory number of cached scripts{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.memory.number_of_cached_scripts[{#SINGLETON}]'
              delay: '0'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.number_of_cached_scripts
              master_item:
                key: redis.memory.info_raw
              tags:
                - tag: component
                  value: memory
            - uuid: a221fd161be641c1a8091d0bfd1d2157
              name: 'Memory replication backlog{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.memory.replication_backlog[{#SINGLETON}]'
              delay: '0'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.mem_replication_backlog
              master_item:
                key: redis.memory.info_raw
              tags:
                - tag: component
                  value: memory
                - tag: component
                  value: replication
            - uuid: e699ad3b29ca486f91688684ffde6b73
              name: 'Memory RSS overhead bytes{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.memory.rss_overhead_bytes[{#SINGLETON}]'
              delay: '0'
              value_type: FLOAT
              units: B
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.rss_overhead_bytes
              master_item:
                key: redis.memory.info_raw
              tags:
                - tag: component
                  value: memory
            - uuid: d4d51ae4ce214699ba760fcb62289a51
              name: 'Memory RSS overhead ratio{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.memory.rss_overhead_ratio[{#SINGLETON}]'
              delay: '0'
              value_type: FLOAT
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.rss_overhead_ratio
              master_item:
                key: redis.memory.info_raw
              tags:
                - tag: component
                  value: memory
            - uuid: e3733b2993cb4199bfac8b0711d4bb72
              name: 'Memory used scripts{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.memory.used_memory_scripts[{#SINGLETON}]'
              delay: '0'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.used_memory_scripts
              master_item:
                key: redis.memory.info_raw
              tags:
                - tag: component
                  value: memory
          master_item:
            key: redis.server.info_raw
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.redis_version
            - type: JAVASCRIPT
              parameters:
                - 'return JSON.stringify(parseInt(value.split(''.'')[0]) >= 5 ? [{''{#SINGLETON}'': ''''}] : []);'
        - uuid: ac3a22522a2c4fa1a256794dd2292480
          name: 'AOF metrics discovery'
          type: DEPENDENT
          key: redis.persistence.aof.discovery
          delay: '0'
          description: 'If AOF is activated, additional metrics will be added'
          item_prototypes:
            - uuid: e68a7b6931324bd79268a5151717505e
              name: 'AOF base size{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.persistence.aof_base_size[{#SINGLETON}]'
              delay: '0'
              units: B
              description: 'AOF file size on latest startup or rewrite'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.aof_base_size
              master_item:
                key: redis.persistence.info_raw
              tags:
                - tag: component
                  value: persistence
            - uuid: 875ace20e5c94044ae63f36d98ac6256
              name: 'AOF buffer length{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.persistence.aof_buffer_length[{#SINGLETON}]'
              delay: '0'
              units: B
              description: 'Size of the AOF buffer'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.aof_buffer_length
              master_item:
                key: redis.persistence.info_raw
              tags:
                - tag: component
                  value: persistence
            - uuid: 679bd919383a4106916a84fae5be47bb
              name: 'AOF current size{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.persistence.aof_current_size[{#SINGLETON}]'
              delay: '0'
              units: B
              description: 'AOF current file size'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.aof_current_size
              master_item:
                key: redis.persistence.info_raw
              tags:
                - tag: component
                  value: persistence
            - uuid: ff9955c770aa4e0883cc72bf1d762be7
              name: 'AOF delayed fsync{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.persistence.aof_delayed_fsync[{#SINGLETON}]'
              delay: '0'
              description: 'Delayed fsync counter'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.aof_delayed_fsync
              master_item:
                key: redis.persistence.info_raw
              tags:
                - tag: component
                  value: persistence
            - uuid: 0606ef5762b04d91abba95269eb77ae2
              name: 'AOF pending background I/O fsync{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.persistence.aof_pending_bio_fsync[{#SINGLETON}]'
              delay: '0'
              description: 'Number of fsync pending jobs in background I/O queue'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.aof_pending_bio_fsync
              master_item:
                key: redis.persistence.info_raw
              tags:
                - tag: component
                  value: persistence
            - uuid: 194061b8ad6c484ca8c732d69eeb0f1e
              name: 'AOF pending rewrite{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.persistence.aof_pending_rewrite[{#SINGLETON}]'
              delay: '0'
              description: 'Flag indicating an AOF rewrite operation will'
              valuemap:
                name: 'Redis flag'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.aof_pending_rewrite
              master_item:
                key: redis.persistence.info_raw
              tags:
                - tag: component
                  value: persistence
            - uuid: 1a39f5854ae948759deadac0ae57e9f7
              name: 'AOF rewrite buffer length{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.persistence.aof_rewrite_buffer_length[{#SINGLETON}]'
              delay: '0'
              units: B
              description: 'Size of the AOF rewrite buffer'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.aof_rewrite_buffer_length
                  error_handler: DISCARD_VALUE
              master_item:
                key: redis.persistence.info_raw
              tags:
                - tag: component
                  value: persistence
          master_item:
            key: redis.persistence.info_raw
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  return JSON.stringify(JSON.parse(value).aof_enabled === '1'
                    ? [{'{#SINGLETON}': ''}]
                    : []);
        - uuid: 4379bad5624a4a5db0c86c5332cf5cc9
          name: 'Replication metrics discovery'
          type: DEPENDENT
          key: redis.replication.master.discovery
          delay: '0'
          description: 'If the instance is the master and the slaves are connected, additional metrics are provided'
          item_prototypes:
            - uuid: 2d26ebb0a5024378b59b3f0ee8e7fff4
              name: 'Redis slave {#SLAVE_IP}:{#SLAVE_PORT}: Replication lag in bytes'
              type: DEPENDENT
              key: 'redis.replication.lag_bytes["{#SLAVE_IP}:{#SLAVE_PORT}"]'
              delay: '0'
              units: B
              description: 'Replication lag in bytes'
              preprocessing:
                - type: JAVASCRIPT
                  parameters:
                    - |
                      var repl = JSON.parse(value);
                      var res = Object.keys(repl)
                      	.filter(function (v) {return v.match(/slave\d+/)})
                      	.filter(function (v) {return (repl[v].ip === "{#SLAVE_IP}" && repl[v].port === "{#SLAVE_PORT}")})
                      	.map(function (v) {return repl[v].offset})[0];
                      
                      if (res === undefined) {
                      	throw 'Slave {#SLAVE_IP}:{#SLAVE_PORT} is no longer available.';
                      }
                      
                      return res;
              master_item:
                key: redis.replication.info_raw
              tags:
                - tag: component
                  value: replication
          graph_prototypes:
            - uuid: 0bce553a5a1240e2b097754dba8f6939
              name: 'Redis slave {#SLAVE_IP}:{#SLAVE_PORT}: Replication lag bytes'
              graph_items:
                - drawtype: BOLD_LINE
                  color: 199C0D
                  item:
                    host: 'Redis by Zabbix agent 2'
                    key: 'redis.replication.lag_bytes["{#SLAVE_IP}:{#SLAVE_PORT}"]'
          master_item:
            key: redis.replication.info_raw
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  var repl = JSON.parse(value);
                  return JSON.stringify(Object.keys(repl)
                    .filter(function (v) {return v.match(/slave\d+/)})
                    .map(function (v){
                  	return {"{#SLAVE_IP}": repl[v].ip, "{#SLAVE_PORT}": repl[v].port}
                    }));
        - uuid: ca9296a7acb548789865ac716a54ce10
          name: 'Slave metrics discovery'
          type: DEPENDENT
          key: redis.replication.slave.discovery
          delay: '0'
          description: 'If the instance is a replica, additional metrics are provided'
          item_prototypes:
            - uuid: 92e4b2133a6a4ec28e739bbef94ab992
              name: 'Master host{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.replication.master_host[{#SINGLETON}]'
              delay: '0'
              value_type: CHAR
              trends: '0'
              description: 'Host or IP address of the master'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.master_host
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: redis.replication.info_raw
              tags:
                - tag: component
                  value: replication
            - uuid: 0acbeb8633da41be9bfb56627a946fd9
              name: 'Master last I/O seconds ago{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.replication.master_last_io_seconds_ago[{#SINGLETON}]'
              delay: '0'
              value_type: FLOAT
              units: s
              description: 'Number of seconds since the last interaction with master'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.master_last_io_seconds_ago
              master_item:
                key: redis.replication.info_raw
              tags:
                - tag: component
                  value: replication
              trigger_prototypes:
                - uuid: 292f477d970d4a138d2d1b2c45d965dd
                  expression: 'min(/Redis by Zabbix agent 2/redis.replication.master_last_io_seconds_ago[{#SINGLETON}],5m)>{$REDIS.REPL.LAG.MAX.WARN}'
                  name: 'Redis: Replication lag with master is too high'
                  event_name: 'Redis: Replication lag with master is too high (over {$REDIS.REPL.LAG.MAX.WARN} in 5m)'
                  priority: WARNING
                  tags:
                    - tag: scope
                      value: availability
            - uuid: 8024463a9f644e6e91def5a0e88abd4b
              name: 'Master link status{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.replication.master_link_status[{#SINGLETON}]'
              delay: '0'
              value_type: CHAR
              trends: '0'
              description: 'Status of the link (up/down)'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.master_link_status
                - type: BOOL_TO_DECIMAL
                  parameters:
                    - ''
              master_item:
                key: redis.replication.info_raw
              tags:
                - tag: component
                  value: replication
            - uuid: da63a0b31bed47edaba3f802738fa4fd
              name: 'Master port{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.replication.master_port[{#SINGLETON}]'
              delay: '0'
              description: 'Master listening TCP port'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.master_port
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: redis.replication.info_raw
              tags:
                - tag: component
                  value: replication
            - uuid: 6835a260e66741159ee10046265a1ea4
              name: 'Master sync in progress{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.replication.master_sync_in_progress[{#SINGLETON}]'
              delay: '0'
              description: 'Indicate the master is syncing to the replica'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.master_sync_in_progress
              master_item:
                key: redis.replication.info_raw
              tags:
                - tag: component
                  value: replication
            - uuid: 3f92dfa07237495ca7696bb4b078eb93
              name: 'Slave priority{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.replication.slave_priority[{#SINGLETON}]'
              delay: '0'
              description: 'The priority of the instance as a candidate for failover'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.slave_priority
              master_item:
                key: redis.replication.info_raw
              tags:
                - tag: component
                  value: replication
            - uuid: f38492a49f214ec8b71fdc51d243281e
              name: 'Slave priority{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.replication.slave_read_only[{#SINGLETON}]'
              delay: '0'
              description: 'Flag indicating if the replica is read-only'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.slave_read_only
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: redis.replication.info_raw
              tags:
                - tag: component
                  value: replication
            - uuid: 7eb23d1d96ea489c9e0b39b7839147bd
              name: 'Slave replication offset{#SINGLETON}'
              type: DEPENDENT
              key: 'redis.replication.slave_repl_offset[{#SINGLETON}]'
              delay: '0'
              units: B
              description: 'The replication offset of the replica instance'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.slave_repl_offset
              master_item:
                key: redis.replication.info_raw
              tags:
                - tag: component
                  value: replication
          graph_prototypes:
            - uuid: bbc5fb3021be4c3381e48fe623b611f0
              name: 'Redis: Replication lag time{#SINGLETON}'
              graph_items:
                - drawtype: BOLD_LINE
                  color: 199C0D
                  item:
                    host: 'Redis by Zabbix agent 2'
                    key: 'redis.replication.master_last_io_seconds_ago[{#SINGLETON}]'
          master_item:
            key: redis.replication.info_raw
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  return JSON.stringify(JSON.parse(value).role === 'slave'
                    ? [{'{#SINGLETON}': ''}]
                    : []);
      tags:
        - tag: class
          value: database
        - tag: target
          value: redis
      macros:
        - macro: '{$REDIS.CLIENTS.PRC.MAX.WARN}'
          value: '80'
          description: 'Maximum percentage of connected clients'
        - macro: '{$REDIS.CONN.URI}'
          value: 'tcp://localhost:6379'
          description: 'Connection string in the URI format (password is not used). This param overwrites a value configured in the "Server" option of the configuration file (if it''s set), otherwise, the plugin''s default value is used: "tcp://localhost:6379"'
        - macro: '{$REDIS.LLD.FILTER.DB.MATCHES}'
          value: '.*'
          description: 'Filter of discoverable databases'
        - macro: '{$REDIS.LLD.FILTER.DB.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          description: 'Filter to exclude discovered databases'
        - macro: '{$REDIS.LLD.PROCESS_NAME}'
          value: redis-server
          description: 'Redis server process name for LLD'
        - macro: '{$REDIS.MEM.FRAG_RATIO.MAX.WARN}'
          value: '1.5'
          description: 'Maximum memory fragmentation ratio'
        - macro: '{$REDIS.MEM.PUSED.MAX.WARN}'
          value: '90'
          description: 'Maximum percentage of memory used'
        - macro: '{$REDIS.PROCESS_NAME}'
          value: redis-server
          description: 'Redis server process name'
        - macro: '{$REDIS.REPL.LAG.MAX.WARN}'
          value: 30s
          description: 'Maximum replication lag in seconds'
        - macro: '{$REDIS.SLOWLOG.COUNT.MAX.WARN}'
          value: '1'
          description: 'Maximum number of slowlog entries per second'
      dashboards:
        - uuid: 7c5bdd7bc74648c4891abc6649d105d0
          name: 'Redis overview'
          pages:
            - widgets:
                - type: graph
                  width: '36'
                  height: '5'
                  fields:
                    - type: GRAPH
                      name: graphid.0
                      value:
                        host: 'Redis by Zabbix agent 2'
                        name: 'Redis: Clients'
                    - type: STRING
                      name: reference
                      value: AAAAA
                - type: graph
                  'y': '5'
                  width: '36'
                  height: '5'
                  fields:
                    - type: GRAPH
                      name: graphid.0
                      value:
                        host: 'Redis by Zabbix agent 2'
                        name: 'Redis: Commands'
                    - type: STRING
                      name: reference
                      value: AAAAC
                - type: graph
                  'y': '10'
                  width: '36'
                  height: '5'
                  fields:
                    - type: GRAPH
                      name: graphid.0
                      value:
                        host: 'Redis by Zabbix agent 2'
                        name: 'Redis: Persistence'
                    - type: STRING
                      name: reference
                      value: AAAAE
                - type: graph
                  'y': '15'
                  width: '36'
                  height: '5'
                  fields:
                    - type: GRAPH
                      name: graphid.0
                      value:
                        host: 'Redis by Zabbix agent 2'
                        name: 'Redis: Slowlog'
                    - type: STRING
                      name: reference
                      value: AAAAG
                - type: graphprototype
                  'y': '20'
                  width: '36'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'Redis by Zabbix agent 2'
                        name: 'Redis: Replication lag time{#SINGLETON}'
                    - type: STRING
                      name: reference
                      value: AAAAI
                - type: graph
                  x: '36'
                  width: '36'
                  height: '5'
                  fields:
                    - type: GRAPH
                      name: graphid.0
                      value:
                        host: 'Redis by Zabbix agent 2'
                        name: 'Redis: Keyspace'
                    - type: STRING
                      name: reference
                      value: AAAAB
                - type: graph
                  x: '36'
                  'y': '5'
                  width: '36'
                  height: '5'
                  fields:
                    - type: GRAPH
                      name: graphid.0
                      value:
                        host: 'Redis by Zabbix agent 2'
                        name: 'Redis: Expired keys'
                    - type: STRING
                      name: reference
                      value: AAAAD
                - type: graph
                  x: '36'
                  'y': '10'
                  width: '36'
                  height: '5'
                  fields:
                    - type: GRAPH
                      name: graphid.0
                      value:
                        host: 'Redis by Zabbix agent 2'
                        name: 'Redis: Slaves'
                    - type: STRING
                      name: reference
                      value: AAAAF
                - type: graph
                  x: '36'
                  'y': '15'
                  width: '36'
                  height: '5'
                  fields:
                    - type: GRAPH
                      name: graphid.0
                      value:
                        host: 'Redis by Zabbix agent 2'
                        name: 'Redis: Uptime'
                    - type: STRING
                      name: reference
                      value: AAAAH
        - uuid: ee4c29eb7a0f443fafb7e7d3b9df7b24
          name: 'Redis performance'
          pages:
            - widgets:
                - type: graph
                  width: '36'
                  height: '5'
                  fields:
                    - type: GRAPH
                      name: graphid.0
                      value:
                        host: 'Redis by Zabbix agent 2'
                        name: 'Redis: CPU'
                    - type: STRING
                      name: reference
                      value: AAAAJ
                - type: graph
                  'y': '5'
                  width: '36'
                  height: '5'
                  fields:
                    - type: GRAPH
                      name: graphid.0
                      value:
                        host: 'Redis by Zabbix agent 2'
                        name: 'Redis: Memory'
                    - type: STRING
                      name: reference
                      value: AAAAL
                - type: graph
                  x: '36'
                  width: '36'
                  height: '5'
                  fields:
                    - type: GRAPH
                      name: graphid.0
                      value:
                        host: 'Redis by Zabbix agent 2'
                        name: 'Redis: Network'
                    - type: STRING
                      name: reference
                      value: AAAAK
                - type: graph
                  x: '36'
                  'y': '5'
                  width: '36'
                  height: '5'
                  fields:
                    - type: GRAPH
                      name: graphid.0
                      value:
                        host: 'Redis by Zabbix agent 2'
                        name: 'Redis: Memory fragmentation'
                    - type: STRING
                      name: reference
                      value: AAAAM
      valuemaps:
        - uuid: 82f4dc4ef0c9471d82dbe3605f4f31d0
          name: 'Redis bgsave time'
          mappings:
            - value: '-1'
              newvalue: Inactive
        - uuid: 098c2240a8e947fc9f6f0a677ffcbc0e
          name: 'Redis bgwrite status'
          mappings:
            - value: '0'
              newvalue: Error
            - value: '1'
              newvalue: Ok
        - uuid: 3b6cd97c65d14e10bdabf5c42d767ad9
          name: 'Redis flag'
          mappings:
            - value: '0'
              newvalue: 'No'
            - value: '1'
              newvalue: 'Yes'
        - uuid: 47c80efdf46745f1959eee76f68014e7
          name: 'Redis repl offset'
          mappings:
            - value: '-1'
              newvalue: Undefined
        - uuid: ae3eec95cd1c440ba6c67ed5d7b7b915
          name: 'Service state'
          mappings:
            - value: '0'
              newvalue: Down
            - value: '1'
              newvalue: Up
  triggers:
    - uuid: 65e4652dbebe47c4b46e47bb8a17aac6
      expression: 'min(/Redis by Zabbix agent 2/redis.clients.connected,5m)/last(/Redis by Zabbix agent 2/redis.config.maxclients)*100>{$REDIS.CLIENTS.PRC.MAX.WARN}'
      name: 'Redis: Total number of connected clients is too high'
      event_name: 'Redis: Total number of connected clients is too high (over {$REDIS.CLIENTS.PRC.MAX.WARN}% in 5m)'
      priority: WARNING
      description: |
        When the number of clients reaches the value of the "maxclients" parameter, new connections will be rejected.
        
        https://redis.io/topics/clients#maximum-number-of-clients
      tags:
        - tag: scope
          value: performance
  graphs:
    - uuid: c04e813d482a4709b13aa2a98911e11d
      name: 'Redis: Clients'
      graph_items:
        - drawtype: GRADIENT_LINE
          color: 199C0D
          item:
            host: 'Redis by Zabbix agent 2'
            key: redis.clients.connected
        - sortorder: '1'
          drawtype: GRADIENT_LINE
          color: F63100
          item:
            host: 'Redis by Zabbix agent 2'
            key: redis.clients.blocked
    - uuid: 8643a1b690dc456b8daacc4b2b0810d4
      name: 'Redis: Commands'
      graph_items:
        - color: 199C0D
          item:
            host: 'Redis by Zabbix agent 2'
            key: redis.stats.instantaneous_ops.rate
    - uuid: 765c0125e8d549dc88279f65f38b6ed9
      name: 'Redis: CPU'
      graph_items:
        - drawtype: GRADIENT_LINE
          color: 199C0D
          item:
            host: 'Redis by Zabbix agent 2'
            key: redis.cpu.sys
        - sortorder: '1'
          color: F63100
          item:
            host: 'Redis by Zabbix agent 2'
            key: redis.cpu.sys_children
        - sortorder: '2'
          drawtype: GRADIENT_LINE
          color: 00611C
          item:
            host: 'Redis by Zabbix agent 2'
            key: redis.cpu.user
        - sortorder: '3'
          color: F7941D
          item:
            host: 'Redis by Zabbix agent 2'
            key: redis.cpu.user_children
    - uuid: fd25ac6239064cd29dc1939cd15005de
      name: 'Redis: Expired keys'
      graph_items:
        - drawtype: BOLD_LINE
          color: 199C0D
          item:
            host: 'Redis by Zabbix agent 2'
            key: redis.stats.expired_keys
        - sortorder: '1'
          drawtype: BOLD_LINE
          color: F63100
          item:
            host: 'Redis by Zabbix agent 2'
            key: redis.stats.evicted_keys
    - uuid: 24cff7af388e41a8899e2916f12224d1
      name: 'Redis: Keyspace'
      graph_items:
        - color: 199C0D
          item:
            host: 'Redis by Zabbix agent 2'
            key: redis.stats.keyspace_hits
        - sortorder: '1'
          color: F63100
          item:
            host: 'Redis by Zabbix agent 2'
            key: redis.stats.keyspace_misses
    - uuid: a3ea32878f25481998e0fde7ba00a11b
      name: 'Redis: Memory'
      graph_items:
        - drawtype: GRADIENT_LINE
          color: 199C0D
          item:
            host: 'Redis by Zabbix agent 2'
            key: redis.memory.used_memory
        - sortorder: '1'
          drawtype: BOLD_LINE
          color: F63100
          item:
            host: 'Redis by Zabbix agent 2'
            key: redis.memory.used_memory_rss
        - sortorder: '2'
          drawtype: BOLD_LINE
          color: 00611C
          item:
            host: 'Redis by Zabbix agent 2'
            key: redis.memory.used_memory_peak
    - uuid: ff8d6320a8e246a39d35ccb93220eb3a
      name: 'Redis: Memory fragmentation'
      graph_items:
        - drawtype: BOLD_LINE
          color: 199C0D
          item:
            host: 'Redis by Zabbix agent 2'
            key: redis.memory.fragmentation_ratio
    - uuid: b3db4cc8247647faae0d3c2389f37d80
      name: 'Redis: Network'
      graph_items:
        - drawtype: GRADIENT_LINE
          color: 199C0D
          item:
            host: 'Redis by Zabbix agent 2'
            key: redis.stats.instantaneous_input.rate
        - sortorder: '1'
          drawtype: GRADIENT_LINE
          color: F63100
          item:
            host: 'Redis by Zabbix agent 2'
            key: redis.stats.instantaneous_output.rate
    - uuid: 81fde2046d2340119b2002da2b75df16
      name: 'Redis: Persistence'
      graph_items:
        - drawtype: BOLD_LINE
          color: 199C0D
          item:
            host: 'Redis by Zabbix agent 2'
            key: redis.persistence.rdb_last_bgsave_time_sec
        - sortorder: '1'
          drawtype: BOLD_LINE
          color: F63100
          item:
            host: 'Redis by Zabbix agent 2'
            key: redis.persistence.aof_last_rewrite_time_sec
    - uuid: 1ace370516b74875977788d44ab478e5
      name: 'Redis: Slaves'
      graph_items:
        - drawtype: GRADIENT_LINE
          color: 199C0D
          item:
            host: 'Redis by Zabbix agent 2'
            key: redis.replication.connected_slaves
    - uuid: 8dd9935cb7a24004b9783c3f1a445f1b
      name: 'Redis: Slowlog'
      graph_items:
        - drawtype: GRADIENT_LINE
          color: 199C0D
          item:
            host: 'Redis by Zabbix agent 2'
            key: 'redis.slowlog.count["{$REDIS.CONN.URI}"]'
    - uuid: 32d954e849e64fe99bd8846b54aadede
      name: 'Redis: Uptime'
      graph_items:
        - color: 199C0D
          item:
            host: 'Redis by Zabbix agent 2'
            key: redis.server.uptime