zabbix_export:
  version: '6.0'
  date: '2022-04-22T09:54:02Z'
  groups:
    -
      uuid: a571c0d144b14fd4a87a9d9b2aa9fcd6
      name: Templates/Applications
  templates:
    -
      uuid: e6fdc744d3474444b005b6c95868f106
      template: 'RabbitMQ node by HTTP nested'
      name: 'RabbitMQ node by HTTP nested'
      description: |
        Get node metrics from RabbitMQ management plugin provided an HTTP-based API using HTTP agent.
        
        You can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/387226-discussion-thread-for-official-zabbix-template-rabbitmq
        
        Template tooling version used: 0.41
      groups:
        -
          name: Templates/Applications
      items:
        -
          uuid: 28481e382f9148a0a549f3781467a9b3
          name: 'RabbitMQ: Service response time'
          type: SIMPLE
          key: 'net.tcp.service.perf["{$RABBITMQ.API.SCHEME}","{HOST.CONN}","{$RABBITMQ.API.PORT}"]'
          history: 7d
          value_type: FLOAT
          units: s
          tags:
            -
              tag: component
              value: system
          triggers:
            -
              uuid: aa696b7e8b294799af52aa617f5b9774
              expression: 'min(/RabbitMQ node by HTTP nested/net.tcp.service.perf["{$RABBITMQ.API.SCHEME}","{HOST.CONN}","{$RABBITMQ.API.PORT}"],5m)>{$RABBITMQ.RESPONSE_TIME.MAX.WARN}'
              name: 'RabbitMQ: Service response time is too high (over {$RABBITMQ.RESPONSE_TIME.MAX.WARN}s for 5m)'
              priority: WARNING
              manual_close: 'YES'
              dependencies:
                -
                  name: 'RabbitMQ: Service is down'
                  expression: 'last(/RabbitMQ node by HTTP nested/net.tcp.service["{$RABBITMQ.API.SCHEME}","{HOST.CONN}","{$RABBITMQ.API.PORT}"])=0'
              tags:
                -
                  tag: scope
                  value: performance
        -
          uuid: ee828ecf50074730a57e2c5058360578
          name: 'RabbitMQ: Service ping'
          type: SIMPLE
          key: 'net.tcp.service["{$RABBITMQ.API.SCHEME}","{HOST.CONN}","{$RABBITMQ.API.PORT}"]'
          history: 7d
          valuemap:
            name: 'Service state'
          preprocessing:
            -
              type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 10m
          tags:
            -
              tag: component
              value: health
            -
              tag: component
              value: network
          triggers:
            -
              uuid: 8c6dde0c71c246239f8cc9567564f282
              expression: 'last(/RabbitMQ node by HTTP nested/net.tcp.service["{$RABBITMQ.API.SCHEME}","{HOST.CONN}","{$RABBITMQ.API.PORT}"])=0'
              name: 'RabbitMQ: Service is down'
              priority: AVERAGE
              manual_close: 'YES'
              tags:
                -
                  tag: scope
                  value: availability
        -
          uuid: aee2a78a6b0e43e89c2404ef576aa5a5
          name: 'RabbitMQ: Get nodes'
          type: HTTP_AGENT
          key: rabbitmq.get_nodes
          history: 1h
          trends: '0'
          value_type: TEXT
          authtype: BASIC
          username: '{$RABBITMQ.API.USER}'
          password: '{$RABBITMQ.API.PASSWORD}'
          description: 'The HTTP API endpoint that returns nodes metrics'
          url: '{$RABBITMQ.API.SCHEME}://{HOST.CONN}:{$RABBITMQ.API.PORT}/api/nodes/{$RABBITMQ.CLUSTER.NAME}@{HOST.NAME}?memory=true'
          tags:
            -
              tag: component
              value: raw
          triggers:
            -
              uuid: 63562f48e2bc42e4bf31965fb0a21d51
              expression: 'nodata(/RabbitMQ node by HTTP nested/rabbitmq.get_nodes,30m)=1'
              name: 'RabbitMQ: Failed to fetch nodes data (or no data for 30m)'
              priority: WARNING
              description: 'Zabbix has not received data for items for the last 30 minutes.'
              manual_close: 'YES'
              dependencies:
                -
                  name: 'RabbitMQ: Service is down'
                  expression: 'last(/RabbitMQ node by HTTP nested/net.tcp.service["{$RABBITMQ.API.SCHEME}","{HOST.CONN}","{$RABBITMQ.API.PORT}"])=0'
              tags:
                -
                  tag: scope
                  value: availability
        -
          uuid: dc12d3981c904a13a1099fe2c01698b7
          name: 'RabbitMQ: Get node overview'
          type: HTTP_AGENT
          key: rabbitmq.get_node_overview
          history: 1h
          trends: '0'
          value_type: TEXT
          authtype: BASIC
          username: '{$RABBITMQ.API.USER}'
          password: '{$RABBITMQ.API.PASSWORD}'
          description: 'The HTTP API endpoint that returns cluster-wide metrics'
          url: '{$RABBITMQ.API.SCHEME}://{HOST.CONN}:{$RABBITMQ.API.PORT}/api/overview'
          tags:
            -
              tag: component
              value: raw
        -
          uuid: 03e8722949ba4a1485e7a45ad14baea6
          name: 'RabbitMQ: Get queues'
          type: HTTP_AGENT
          key: rabbitmq.get_queues
          history: 1h
          trends: '0'
          value_type: TEXT
          authtype: BASIC
          username: '{$RABBITMQ.API.USER}'
          password: '{$RABBITMQ.API.PASSWORD}'
          description: 'The HTTP API endpoint that returns queues metrics'
          url: '{$RABBITMQ.API.SCHEME}://{HOST.CONN}:{$RABBITMQ.API.PORT}/api/queues'
          tags:
            -
              tag: component
              value: raw
        -
          uuid: 93fb11f369554321ae086e76594b1937
          name: 'RabbitMQ: Free disk space'
          type: DEPENDENT
          key: rabbitmq.node.disk_free
          delay: '0'
          history: 7d
          units: B
          description: 'Current free disk space'
          preprocessing:
            -
              type: JSONPATH
              parameters:
                - $.disk_free
          master_item:
            key: rabbitmq.get_nodes
          tags:
            -
              tag: component
              value: storage
        -
          uuid: d173c64e8b2f4605b92c3792dcecc2b2
          name: 'RabbitMQ: Disk free alarm'
          type: DEPENDENT
          key: rabbitmq.node.disk_free_alarm
          delay: '0'
          history: 7d
          description: 'Does the node have disk alarm'
          valuemap:
            name: 'Alarm state'
          preprocessing:
            -
              type: JSONPATH
              parameters:
                - $.disk_free_alarm
            -
              type: BOOL_TO_DECIMAL
              parameters:
                - ''
          master_item:
            key: rabbitmq.get_nodes
          tags:
            -
              tag: component
              value: storage
          triggers:
            -
              uuid: 1f96fee6b43e4339a0c96813dda9ac75
              expression: 'last(/RabbitMQ node by HTTP nested/rabbitmq.node.disk_free_alarm)=1'
              name: 'RabbitMQ: Free disk space alarm (Free space threshold has been reached)'
              opdata: 'Current state: {ITEM.LASTVALUE1}'
              priority: AVERAGE
              description: 'https://www.rabbitmq.com/disk-alarms.html'
              tags:
                -
                  tag: scope
                  value: performance
        -
          uuid: f995e89601674e2cb2304aeb15c2fd43
          name: 'RabbitMQ: Disk free limit'
          type: DEPENDENT
          key: rabbitmq.node.disk_free_limit
          delay: '0'
          history: 7d
          units: B
          description: 'Disk free space limit in bytes'
          preprocessing:
            -
              type: JSONPATH
              parameters:
                - $.disk_free_limit
          master_item:
            key: rabbitmq.get_nodes
          tags:
            -
              tag: component
              value: storage
        -
          uuid: eca2fe708b7b4a35a7afc727b140ad27
          name: 'RabbitMQ: Used file descriptors'
          type: DEPENDENT
          key: rabbitmq.node.fd_used
          delay: '0'
          history: 7d
          description: 'Used file descriptors'
          preprocessing:
            -
              type: JSONPATH
              parameters:
                - $.fd_used
          master_item:
            key: rabbitmq.get_nodes
          tags:
            -
              tag: component
              value: storage
        -
          uuid: 3dd147e3269445998597c4de9a73580b
          name: 'RabbitMQ: Memory alarm'
          type: DEPENDENT
          key: rabbitmq.node.mem_alarm
          delay: '0'
          history: 7d
          description: 'Does the host has memory alarm'
          valuemap:
            name: 'Alarm state'
          preprocessing:
            -
              type: JSONPATH
              parameters:
                - $.mem_alarm
            -
              type: BOOL_TO_DECIMAL
              parameters:
                - ''
          master_item:
            key: rabbitmq.get_nodes
          tags:
            -
              tag: component
              value: memory
          triggers:
            -
              uuid: 95786949c35a402d8ec33c8b63f46e94
              expression: 'last(/RabbitMQ node by HTTP nested/rabbitmq.node.mem_alarm)=1'
              name: 'RabbitMQ: Memory alarm (Memory usage threshold has been reached)'
              opdata: 'Current state: {ITEM.LASTVALUE1}'
              priority: AVERAGE
              description: 'https://www.rabbitmq.com/memory.html'
              tags:
                -
                  tag: scope
                  value: performance
        -
          uuid: c0f853db0127493081333be24a712bf1
          name: 'RabbitMQ: Memory limit'
          type: DEPENDENT
          key: rabbitmq.node.mem_limit
          delay: '0'
          history: 7d
          units: B
          description: 'Memory usage high watermark in bytes'
          preprocessing:
            -
              type: JSONPATH
              parameters:
                - $.mem_limit
          master_item:
            key: rabbitmq.get_nodes
          tags:
            -
              tag: component
              value: memory
        -
          uuid: 73d666e68a854c709adc3fad2180addf
          name: 'RabbitMQ: Memory used'
          type: DEPENDENT
          key: rabbitmq.node.mem_used
          delay: '0'
          history: 7d
          units: B
          description: 'Memory used in bytes'
          preprocessing:
            -
              type: JSONPATH
              parameters:
                - $.mem_used
          master_item:
            key: rabbitmq.get_nodes
          tags:
            -
              tag: component
              value: memory
        -
          uuid: 79e4ab53d351401c869577fec0cc1b70
          name: 'RabbitMQ: Management plugin version'
          type: DEPENDENT
          key: rabbitmq.node.overview.management_version
          delay: '0'
          history: 7d
          trends: '0'
          value_type: CHAR
          description: 'Version of the management plugin in use'
          preprocessing:
            -
              type: JSONPATH
              parameters:
                - $.management_version
            -
              type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          master_item:
            key: rabbitmq.get_node_overview
          tags:
            -
              tag: component
              value: system
        -
          uuid: ad3b432fe35645bb82953bcb22bcb133
          name: 'RabbitMQ: RabbitMQ version'
          type: DEPENDENT
          key: rabbitmq.node.overview.rabbitmq_version
          delay: '0'
          history: 7d
          trends: '0'
          value_type: CHAR
          description: 'Version of RabbitMQ on the node which processed this request'
          preprocessing:
            -
              type: JSONPATH
              parameters:
                - $.rabbitmq_version
            -
              type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          master_item:
            key: rabbitmq.get_node_overview
          tags:
            -
              tag: component
              value: system
          triggers:
            -
              uuid: 8ae94eed18f648b693a14aa3e953d887
              expression: 'last(/RabbitMQ node by HTTP nested/rabbitmq.node.overview.rabbitmq_version,#1)<>last(/RabbitMQ node by HTTP nested/rabbitmq.node.overview.rabbitmq_version,#2) and length(last(/RabbitMQ node by HTTP nested/rabbitmq.node.overview.rabbitmq_version))>0'
              name: 'RabbitMQ: Version has changed (new version: {ITEM.VALUE})'
              priority: INFO
              description: 'RabbitMQ version has changed. Ack to close.'
              manual_close: 'YES'
              tags:
                -
                  tag: scope
                  value: notice
        -
          uuid: 0bee36d225c94a7aabcb93ad8e4cb558
          name: 'RabbitMQ: Number of network partitions'
          type: DEPENDENT
          key: rabbitmq.node.partitions
          delay: '0'
          history: 7d
          description: 'Number of network partitions this node is seeing'
          preprocessing:
            -
              type: JSONPATH
              parameters:
                - $.partitions
            -
              type: JAVASCRIPT
              parameters:
                - 'return JSON.parse(value).length;'
          master_item:
            key: rabbitmq.get_nodes
          tags:
            -
              tag: component
              value: network
          triggers:
            -
              uuid: 68ae922f7c9e4112ba42e6a74b6bb474
              expression: 'min(/RabbitMQ node by HTTP nested/rabbitmq.node.partitions,5m)>0'
              name: 'RabbitMQ: Number of network partitions is too high (more than 0 for 5m)'
              opdata: 'Current value: {ITEM.LASTVALUE1}'
              priority: WARNING
              description: 'https://www.rabbitmq.com/partitions.html#detecting'
              tags:
                -
                  tag: scope
                  value: performance
        -
          uuid: 78118d2fe08c4bb0b2261f54eafd75a3
          name: 'RabbitMQ: Is running'
          type: DEPENDENT
          key: rabbitmq.node.running
          delay: '0'
          history: 7d
          description: 'Is the node running or not'
          valuemap:
            name: 'Service state'
          preprocessing:
            -
              type: JSONPATH
              parameters:
                - $.running
            -
              type: BOOL_TO_DECIMAL
              parameters:
                - ''
          master_item:
            key: rabbitmq.get_nodes
          tags:
            -
              tag: component
              value: system
          triggers:
            -
              uuid: 39c32d6ea4f24c2781763ef9b76a066f
              expression: 'max(/RabbitMQ node by HTTP nested/rabbitmq.node.running,5m)=0'
              name: 'RabbitMQ: Node is not running'
              opdata: 'Current state: {ITEM.LASTVALUE1}'
              priority: AVERAGE
              description: 'RabbitMQ node is not running'
              dependencies:
                -
                  name: 'RabbitMQ: Service is down'
                  expression: 'last(/RabbitMQ node by HTTP nested/net.tcp.service["{$RABBITMQ.API.SCHEME}","{HOST.CONN}","{$RABBITMQ.API.PORT}"])=0'
              tags:
                -
                  tag: scope
                  value: availability
        -
          uuid: b159476b391b4d35999aab300c6aed7a
          name: 'RabbitMQ: Runtime run queue'
          type: DEPENDENT
          key: rabbitmq.node.run_queue
          delay: '0'
          history: 7d
          description: 'Average number of Erlang processes waiting to run'
          preprocessing:
            -
              type: JSONPATH
              parameters:
                - $.run_queue
          master_item:
            key: rabbitmq.get_nodes
          tags:
            -
              tag: component
              value: system
        -
          uuid: bc10175bce864ea1b45514458b89d9a8
          name: 'RabbitMQ: Sockets available'
          type: DEPENDENT
          key: rabbitmq.node.sockets_total
          delay: '0'
          history: 7d
          description: 'File descriptors available for use as sockets'
          preprocessing:
            -
              type: JSONPATH
              parameters:
                - $.sockets_total
          master_item:
            key: rabbitmq.get_nodes
          tags:
            -
              tag: component
              value: system
        -
          uuid: 520bfb2c4eda4398a76f9228fdc65294
          name: 'RabbitMQ: Sockets used'
          type: DEPENDENT
          key: rabbitmq.node.sockets_used
          delay: '0'
          history: 7d
          description: 'Number of file descriptors used as sockets'
          preprocessing:
            -
              type: JSONPATH
              parameters:
                - $.sockets_used
          master_item:
            key: rabbitmq.get_nodes
          tags:
            -
              tag: component
              value: system
        -
          uuid: 5eddb96a2fbd462fa3790965375014a5
          name: 'RabbitMQ: Uptime'
          type: DEPENDENT
          key: rabbitmq.node.uptime
          delay: '0'
          history: 7d
          value_type: FLOAT
          units: s
          description: 'Uptime in milliseconds'
          preprocessing:
            -
              type: JSONPATH
              parameters:
                - $.uptime
            -
              type: MULTIPLIER
              parameters:
                - '0.001'
          master_item:
            key: rabbitmq.get_nodes
          tags:
            -
              tag: component
              value: system
          triggers:
            -
              uuid: 0254e21d85ee4c59bdebfa45a41cb99d
              expression: 'last(/RabbitMQ node by HTTP nested/rabbitmq.node.uptime)<10m'
              name: 'RabbitMQ: has been restarted (uptime < 10m)'
              priority: INFO
              description: 'Uptime is less than 10 minutes'
              manual_close: 'YES'
              tags:
                -
                  tag: scope
                  value: notice
      discovery_rules:
        -
          uuid: 97be5408bd894740897a4707ddc6d93d
          name: 'Health Check 3.8.9- discovery'
          type: DEPENDENT
          key: rabbitmq.healthcheck.v389.discovery
          delay: '0'
          description: 'Specific metrics up to and including version 3.8.4'
          item_prototypes:
            -
              uuid: a2f2bb9202d2484e9b9ee17c40858e74
              name: 'RabbitMQ: Healthcheck{#SINGLETON}'
              type: HTTP_AGENT
              key: 'rabbitmq.healthcheck[{#SINGLETON}]'
              history: 7h
              authtype: BASIC
              username: '{$RABBITMQ.API.USER}'
              password: '{$RABBITMQ.API.PASSWORD}'
              description: 'Runs basic healthchecks in the current node. Checks that the rabbit application is running, channels and queues can be listed successfully, and that no alarms are in effect.'
              valuemap:
                name: 'RabbitMQ healthcheck'
              preprocessing:
                -
                  type: JSONPATH
                  parameters:
                    - $.status
                -
                  type: BOOL_TO_DECIMAL
                  parameters:
                    - ''
                  error_handler: CUSTOM_VALUE
                  error_handler_params: '0'
              url: '{$RABBITMQ.API.SCHEME}://{HOST.CONN}:{$RABBITMQ.API.PORT}/api/healthchecks/node'
              tags:
                -
                  tag: component
                  value: health
                -
                  tag: component
                  value: system
              trigger_prototypes:
                -
                  uuid: 026b6dd2af344dfa90e194be844eaf3d
                  expression: 'last(/RabbitMQ node by HTTP nested/rabbitmq.healthcheck[{#SINGLETON}])=0'
                  name: 'RabbitMQ: Node healthcheck failed'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'https://www.rabbitmq.com/monitoring.html#health-checks'
                  tags:
                    -
                      tag: scope
                      value: availability
          master_item:
            key: rabbitmq.get_node_overview
          preprocessing:
            -
              type: JSONPATH
              parameters:
                - $.management_version
            -
              type: JAVASCRIPT
              parameters:
                - |
                  var rabbit_version = parseInt(value.split('.')[0]) * 10000 +
                                       parseInt(value.split('.')[1]) * 100 +
                                       parseInt(value.split('.')[2])
                  return JSON.stringify(rabbit_version < 30810 ? [{'{#SINGLETON}': ''}] : []);
        -
          uuid: 3d6031295d5c43e7ba081df71842401a
          name: 'Health Check 3.8.10+ discovery'
          type: DEPENDENT
          key: rabbitmq.healthcheck.v3810.discovery
          delay: '0'
          description: 'Version 3.8.10+ specific metrics'
          item_prototypes:
            -
              uuid: 31944511825e4a1f8ff398b20c3eb69c
              name: 'RabbitMQ: Healthcheck: expiration date on the certificates{#SINGLETON}'
              type: HTTP_AGENT
              key: 'rabbitmq.healthcheck.certificate_expiration[{#SINGLETON}]'
              history: 7d
              authtype: BASIC
              username: '{$RABBITMQ.API.USER}'
              password: '{$RABBITMQ.API.PASSWORD}'
              description: 'Checks the expiration date on the certificates for every listener configured to use TLS. Responds a 200 OK if all certificates are valid (have not expired), otherwise responds with a 503 Service Unavailable.'
              valuemap:
                name: 'RabbitMQ healthcheck'
              preprocessing:
                -
                  type: REGEX
                  parameters:
                    - HTTP\/1\.1\b\s(\d+)
                    - \1
                -
                  type: JAVASCRIPT
                  parameters:
                    - |
                      switch(value){ 
                      case '200': return 1 
                      case '503': return 0 
                      default: 2}
                -
                  type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3h
              url: '{$RABBITMQ.API.SCHEME}://{HOST.CONN}:{$RABBITMQ.API.PORT}/api/health/checks/certificate-expiration/1/months'
              status_codes: '200,503,404'
              retrieve_mode: HEADERS
              tags:
                -
                  tag: component
                  value: certificate
                -
                  tag: component
                  value: health
              trigger_prototypes:
                -
                  uuid: 46c56922049f488faaf97d897504ca03
                  expression: 'last(/RabbitMQ node by HTTP nested/rabbitmq.healthcheck.certificate_expiration[{#SINGLETON}])=0'
                  name: 'RabbitMQ: There are valid TLS certificates expiring in the next month'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'http://{HOST.CONN}:{$RABBITMQ.API.PORT}/api/index.html'
                  tags:
                    -
                      tag: scope
                      value: notice
            -
              uuid: 6e04f3dcde1242ee892a51dc4635f9d1
              name: 'RabbitMQ: Healthcheck: local alarms in effect on this node{#SINGLETON}'
              type: HTTP_AGENT
              key: 'rabbitmq.healthcheck.local_alarms[{#SINGLETON}]'
              history: 7d
              authtype: BASIC
              username: '{$RABBITMQ.API.USER}'
              password: '{$RABBITMQ.API.PASSWORD}'
              description: 'Responds a 200 OK if there are no local alarms in effect on the target node, otherwise responds with a 503 Service Unavailable.'
              valuemap:
                name: 'RabbitMQ healthcheck'
              preprocessing:
                -
                  type: REGEX
                  parameters:
                    - HTTP\/1\.1\b\s(\d+)
                    - \1
                -
                  type: JAVASCRIPT
                  parameters:
                    - |
                      switch(value){ 
                      case '200': return 1 
                      case '503': return 0 
                      default: 2}
                -
                  type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3h
              url: '{$RABBITMQ.API.SCHEME}://{HOST.CONN}:{$RABBITMQ.API.PORT}/api/health/checks/local-alarms'
              status_codes: '200,503,404'
              retrieve_mode: HEADERS
              tags:
                -
                  tag: component
                  value: health
                -
                  tag: component
                  value: system
              trigger_prototypes:
                -
                  uuid: c0925985b22a4e95b1aeb945831f087c
                  expression: 'last(/RabbitMQ node by HTTP nested/rabbitmq.healthcheck.local_alarms[{#SINGLETON}])=0'
                  name: 'RabbitMQ: There are active alarms in the node'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'http://{HOST.CONN}:{$RABBITMQ.API.PORT}/api/index.html'
                  tags:
                    -
                      tag: scope
                      value: notice
            -
              uuid: 4ac801b573e84242a0a38a7b706b1b50
              name: 'RabbitMQ: Healthcheck: classic mirrored queues without synchronized mirrors online{#SINGLETON}'
              type: HTTP_AGENT
              key: 'rabbitmq.healthcheck.mirror_sync[{#SINGLETON}]'
              history: 7d
              authtype: BASIC
              username: '{$RABBITMQ.API.USER}'
              password: '{$RABBITMQ.API.PASSWORD}'
              description: 'Checks if there are classic mirrored queues without synchronized mirrors online (queues that would potentially lose data if the target node is shut down). Responds a 200 OK if there are no such classic mirrored queues, otherwise responds with a 503 Service Unavailable.'
              valuemap:
                name: 'RabbitMQ healthcheck'
              preprocessing:
                -
                  type: REGEX
                  parameters:
                    - HTTP\/1\.1\b\s(\d+)
                    - \1
                -
                  type: JAVASCRIPT
                  parameters:
                    - |
                      switch(value){ 
                      case '200': return 1 
                      case '503': return 0 
                      default: 2}
                -
                  type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3h
              url: '{$RABBITMQ.API.SCHEME}://{HOST.CONN}:{$RABBITMQ.API.PORT}/api/health/checks/node-is-mirror-sync-critical'
              status_codes: '200,503,404'
              retrieve_mode: HEADERS
              tags:
                -
                  tag: component
                  value: health
                -
                  tag: component
                  value: queues
              trigger_prototypes:
                -
                  uuid: 3f4866aa028044da93d9d6f55ca3d8ce
                  expression: 'last(/RabbitMQ node by HTTP nested/rabbitmq.healthcheck.mirror_sync[{#SINGLETON}])=0'
                  name: 'RabbitMQ: There are queues that could potentially lose data if this node goes offline.'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'http://{HOST.CONN}:{$RABBITMQ.API.PORT}/api/index.html'
                  tags:
                    -
                      tag: scope
                      value: notice
            -
              uuid: a2825d9eebd54b3c947215304efd939a
              name: 'RabbitMQ: Healthcheck: queues with minimum online quorum{#SINGLETON}'
              type: HTTP_AGENT
              key: 'rabbitmq.healthcheck.quorum[{#SINGLETON}]'
              history: 7d
              authtype: BASIC
              username: '{$RABBITMQ.API.USER}'
              password: '{$RABBITMQ.API.PASSWORD}'
              description: 'Checks if there are quorum queues with minimum online quorum (queues that would lose their quorum and availability if the target node is shut down). Responds a 200 OK if there are no such quorum queues, otherwise responds with a 503 Service Unavailable.'
              valuemap:
                name: 'RabbitMQ healthcheck'
              preprocessing:
                -
                  type: REGEX
                  parameters:
                    - HTTP\/1\.1\b\s(\d+)
                    - \1
                -
                  type: JAVASCRIPT
                  parameters:
                    - |
                      switch(value){ 
                      case '200': return 1 
                      case '503': return 0 
                      default: 2}
                -
                  type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3h
              url: '{$RABBITMQ.API.SCHEME}://{HOST.CONN}:{$RABBITMQ.API.PORT}/api/health/checks/node-is-quorum-critical'
              status_codes: '200,503,404'
              retrieve_mode: HEADERS
              tags:
                -
                  tag: component
                  value: health
                -
                  tag: component
                  value: queues
              trigger_prototypes:
                -
                  uuid: b02fa23472944972a9fa84340ea9fa6a
                  expression: 'last(/RabbitMQ node by HTTP nested/rabbitmq.healthcheck.quorum[{#SINGLETON}])=0'
                  name: 'RabbitMQ: There are queues that would lose their quorum and availability if this node is shut down.'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'http://{HOST.CONN}:{$RABBITMQ.API.PORT}/api/index.html'
                  tags:
                    -
                      tag: scope
                      value: notice
            -
              uuid: 66643c9f19d0429ea80f444f449b2fcd
              name: 'RabbitMQ: Healthcheck: virtual hosts on this node{#SINGLETON}'
              type: HTTP_AGENT
              key: 'rabbitmq.healthcheck.virtual_hosts[{#SINGLETON}]'
              history: 7d
              authtype: BASIC
              username: '{$RABBITMQ.API.USER}'
              password: '{$RABBITMQ.API.PASSWORD}'
              description: 'Responds a 200 OK if all virtual hosts and running on the target node, otherwise responds with a 503 Service Unavailable.'
              valuemap:
                name: 'RabbitMQ healthcheck'
              preprocessing:
                -
                  type: REGEX
                  parameters:
                    - HTTP\/1\.1\b\s(\d+)
                    - \1
                -
                  type: JAVASCRIPT
                  parameters:
                    - |
                      switch(value){ 
                      case '200': return 1 
                      case '503': return 0 
                      default: 2}
                -
                  type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3h
              url: '{$RABBITMQ.API.SCHEME}://{HOST.CONN}:{$RABBITMQ.API.PORT}/api/health/checks/virtual-hosts'
              status_codes: '200,503,404'
              retrieve_mode: HEADERS
              tags:
                -
                  tag: component
                  value: health
                -
                  tag: component
                  value: system
              trigger_prototypes:
                -
                  uuid: 57649f3f6f92469a88ec50dd4096e5de
                  expression: 'last(/RabbitMQ node by HTTP nested/rabbitmq.healthcheck.virtual_hosts[{#SINGLETON}])=0'
                  name: 'RabbitMQ: There are not running virtual hosts'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'http://{HOST.CONN}:{$RABBITMQ.API.PORT}/api/index.html'
                  tags:
                    -
                      tag: scope
                      value: notice
          master_item:
            key: rabbitmq.get_node_overview
          preprocessing:
            -
              type: JSONPATH
              parameters:
                - $.management_version
            -
              type: JAVASCRIPT
              parameters:
                - |
                  var rabbit_version = parseInt(value.split('.')[0]) * 10000 +
                                       parseInt(value.split('.')[1]) * 100 +
                                       parseInt(value.split('.')[2])
                  return JSON.stringify(rabbit_version >= 30810 ? [{'{#SINGLETON}': ''}] : []);
        -
          uuid: c9b4aff36f624ab4a0daf9f464b4307a
          name: 'Queues discovery'
          type: DEPENDENT
          key: rabbitmq.queues.discovery
          delay: '0'
          filter:
            evaltype: AND
            conditions:
              -
                macro: '{#QUEUE}'
                value: '{$RABBITMQ.LLD.FILTER.QUEUE.MATCHES}'
                formulaid: B
              -
                macro: '{#QUEUE}'
                value: '{$RABBITMQ.LLD.FILTER.QUEUE.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
                formulaid: C
              -
                macro: '{#NODE}'
                value: '{$RABBITMQ.CLUSTER.NAME}@{HOST.NAME}'
                formulaid: A
          description: 'Individual queue metrics'
          item_prototypes:
            -
              uuid: 7e4d86e571a84c6bb55a4aa4ec10bc81
              name: 'RabbitMQ: Queue [{#VHOST}][{#QUEUE}]: Consumers'
              type: DEPENDENT
              key: 'rabbitmq.queue.consumers["{#VHOST}/{#QUEUE}"]'
              delay: '0'
              history: 7d
              description: 'Number of consumers'
              preprocessing:
                -
                  type: JSONPATH
                  parameters:
                    - $.consumers
              master_item:
                key: 'rabbitmq.queue["{#VHOST}/{#QUEUE}"]'
              tags:
                -
                  tag: component
                  value: consumers
                -
                  tag: queue
                  value: '{#QUEUE}'
                -
                  tag: vhost
                  value: '{#VHOST}'
            -
              uuid: 8b4452a6e2644a3880a4166c33300877
              name: 'RabbitMQ: Queue [{#VHOST}][{#QUEUE}]: Memory'
              type: DEPENDENT
              key: 'rabbitmq.queue.memory["{#VHOST}/{#QUEUE}"]'
              delay: '0'
              history: 7d
              units: B
              description: 'Bytes of memory consumed by the Erlang process associated with the queue, including stack, heap and internal structures'
              preprocessing:
                -
                  type: JSONPATH
                  parameters:
                    - $.memory
              master_item:
                key: 'rabbitmq.queue["{#VHOST}/{#QUEUE}"]'
              tags:
                -
                  tag: component
                  value: memory
                -
                  tag: queue
                  value: '{#QUEUE}'
                -
                  tag: vhost
                  value: '{#VHOST}'
            -
              uuid: 90e4d364ea434956b86bc2ed4e8f6159
              name: 'RabbitMQ: Queue [{#VHOST}][{#QUEUE}]: Messages acknowledged per second'
              type: DEPENDENT
              key: 'rabbitmq.queue.messages.ack.rate["{#VHOST}/{#QUEUE}"]'
              delay: '0'
              history: 7d
              value_type: FLOAT
              description: 'Number per second of messages delivered to clients and acknowledged'
              preprocessing:
                -
                  type: JSONPATH
                  parameters:
                    - $.message_stats.ack_details.rate
                  error_handler: CUSTOM_VALUE
                  error_handler_params: '0'
              master_item:
                key: 'rabbitmq.queue["{#VHOST}/{#QUEUE}"]'
              tags:
                -
                  tag: component
                  value: messages
                -
                  tag: queue
                  value: '{#QUEUE}'
                -
                  tag: vhost
                  value: '{#VHOST}'
            -
              uuid: 2dc8a28c223f4313bda1c6778a4a7a46
              name: 'RabbitMQ: Queue [{#VHOST}][{#QUEUE}]: Messages acknowledged'
              type: DEPENDENT
              key: 'rabbitmq.queue.messages.ack["{#VHOST}/{#QUEUE}"]'
              delay: '0'
              history: 7d
              description: 'Number of messages delivered to clients and acknowledged'
              preprocessing:
                -
                  type: JSONPATH
                  parameters:
                    - $.message_stats.ack
                  error_handler: CUSTOM_VALUE
                  error_handler_params: '0'
              master_item:
                key: 'rabbitmq.queue["{#VHOST}/{#QUEUE}"]'
              tags:
                -
                  tag: component
                  value: messages
                -
                  tag: queue
                  value: '{#QUEUE}'
                -
                  tag: vhost
                  value: '{#VHOST}'
            -
              uuid: f5f0d3536a48455198138e3caf3c16d6
              name: 'RabbitMQ: Queue [{#VHOST}][{#QUEUE}]: Messages delivered per second'
              type: DEPENDENT
              key: 'rabbitmq.queue.messages.deliver.rate["{#VHOST}/{#QUEUE}"]'
              delay: '0'
              history: 7d
              value_type: FLOAT
              description: 'Count of messages delivered in acknowledgement mode to consumers'
              preprocessing:
                -
                  type: JSONPATH
                  parameters:
                    - $.message_stats.deliver_details.rate
                  error_handler: CUSTOM_VALUE
                  error_handler_params: '0'
              master_item:
                key: 'rabbitmq.queue["{#VHOST}/{#QUEUE}"]'
              tags:
                -
                  tag: component
                  value: messages
                -
                  tag: queue
                  value: '{#QUEUE}'
                -
                  tag: vhost
                  value: '{#VHOST}'
            -
              uuid: ae1e27f2f3e4454da27624906a550cf2
              name: 'RabbitMQ: Queue [{#VHOST}][{#QUEUE}]: Messages delivered'
              type: DEPENDENT
              key: 'rabbitmq.queue.messages.deliver["{#VHOST}/{#QUEUE}"]'
              delay: '0'
              history: 7d
              description: 'Count of messages delivered in acknowledgement mode to consumers'
              preprocessing:
                -
                  type: JSONPATH
                  parameters:
                    - $.message_stats.deliver
                  error_handler: CUSTOM_VALUE
                  error_handler_params: '0'
              master_item:
                key: 'rabbitmq.queue["{#VHOST}/{#QUEUE}"]'
              tags:
                -
                  tag: component
                  value: messages
                -
                  tag: queue
                  value: '{#QUEUE}'
                -
                  tag: vhost
                  value: '{#VHOST}'
            -
              uuid: b269c1f2d94a4a5d8e189988df191433
              name: 'RabbitMQ: Queue [{#VHOST}][{#QUEUE}]: Sum of messages delivered per second'
              type: DEPENDENT
              key: 'rabbitmq.queue.messages.deliver_get.rate["{#VHOST}/{#QUEUE}"]'
              delay: '0'
              history: 7d
              value_type: FLOAT
              description: 'Rate per second of the sum of messages delivered in acknowledgement mode to consumers, in no-acknowledgement mode to consumers, in acknowledgement mode in response to basic.get, and in no-acknowledgement mode in response to basic.get'
              preprocessing:
                -
                  type: JSONPATH
                  parameters:
                    - $.message_stats.deliver_get_details.rate
                  error_handler: CUSTOM_VALUE
                  error_handler_params: '0'
              master_item:
                key: 'rabbitmq.queue["{#VHOST}/{#QUEUE}"]'
              tags:
                -
                  tag: component
                  value: messages
                -
                  tag: queue
                  value: '{#QUEUE}'
                -
                  tag: vhost
                  value: '{#VHOST}'
            -
              uuid: 0bcf7f44747e46b39d242f7bcca35785
              name: 'RabbitMQ: Queue [{#VHOST}][{#QUEUE}]: Sum of messages delivered'
              type: DEPENDENT
              key: 'rabbitmq.queue.messages.deliver_get["{#VHOST}/{#QUEUE}"]'
              delay: '0'
              history: 7d
              description: 'Sum of messages delivered in acknowledgement mode to consumers, in no-acknowledgement mode to consumers, in acknowledgement mode in response to basic.get, and in no-acknowledgement mode in response to basic.get'
              preprocessing:
                -
                  type: JSONPATH
                  parameters:
                    - $.message_stats.deliver_get
                  error_handler: CUSTOM_VALUE
                  error_handler_params: '0'
              master_item:
                key: 'rabbitmq.queue["{#VHOST}/{#QUEUE}"]'
              tags:
                -
                  tag: component
                  value: messages
                -
                  tag: queue
                  value: '{#QUEUE}'
                -
                  tag: vhost
                  value: '{#VHOST}'
            -
              uuid: 6180f79131834436a829db6d9ccf178c
              name: 'RabbitMQ: Queue [{#VHOST}][{#QUEUE}]: Messages published per second'
              type: DEPENDENT
              key: 'rabbitmq.queue.messages.publish.rate["{#VHOST}/{#QUEUE}"]'
              delay: '0'
              history: 7d
              value_type: FLOAT
              description: 'Rate per second of messages published'
              preprocessing:
                -
                  type: JSONPATH
                  parameters:
                    - $.message_stats.publish_details.rate
                  error_handler: CUSTOM_VALUE
                  error_handler_params: '0'
              master_item:
                key: 'rabbitmq.queue["{#VHOST}/{#QUEUE}"]'
              tags:
                -
                  tag: component
                  value: messages
                -
                  tag: queue
                  value: '{#QUEUE}'
                -
                  tag: vhost
                  value: '{#VHOST}'
            -
              uuid: 2d353bc6914948c59d6cc368ca06a2a1
              name: 'RabbitMQ: Queue [{#VHOST}][{#QUEUE}]: Messages published'
              type: DEPENDENT
              key: 'rabbitmq.queue.messages.publish["{#VHOST}/{#QUEUE}"]'
              delay: '0'
              history: 7d
              description: 'Count of messages published'
              preprocessing:
                -
                  type: JSONPATH
                  parameters:
                    - $.message_stats.publish
                  error_handler: CUSTOM_VALUE
                  error_handler_params: '0'
              master_item:
                key: 'rabbitmq.queue["{#VHOST}/{#QUEUE}"]'
              tags:
                -
                  tag: component
                  value: messages
                -
                  tag: queue
                  value: '{#QUEUE}'
                -
                  tag: vhost
                  value: '{#VHOST}'
            -
              uuid: 06d4290cc21b48caaf574618c97c75a4
              name: 'RabbitMQ: Queue [{#VHOST}][{#QUEUE}]: Messages per second'
              type: DEPENDENT
              key: 'rabbitmq.queue.messages.rate["{#VHOST}/{#QUEUE}"]'
              delay: '0'
              history: 7d
              value_type: FLOAT
              description: 'Count per second of the total messages in the queue'
              preprocessing:
                -
                  type: JSONPATH
                  parameters:
                    - $.messages_details.rate
              master_item:
                key: 'rabbitmq.queue["{#VHOST}/{#QUEUE}"]'
              tags:
                -
                  tag: component
                  value: messages
                -
                  tag: queue
                  value: '{#QUEUE}'
                -
                  tag: vhost
                  value: '{#VHOST}'
            -
              uuid: cceccf1923594544b85f85d3b918fc48
              name: 'RabbitMQ: Queue [{#VHOST}][{#QUEUE}]: Messages redelivered per second'
              type: DEPENDENT
              key: 'rabbitmq.queue.messages.redeliver.rate["{#VHOST}/{#QUEUE}"]'
              delay: '0'
              history: 7d
              value_type: FLOAT
              description: 'Rate per second of subset of messages in deliver_get which had the redelivered flag set'
              preprocessing:
                -
                  type: JSONPATH
                  parameters:
                    - $.message_stats.redeliver_details.rate
                  error_handler: CUSTOM_VALUE
                  error_handler_params: '0'
              master_item:
                key: 'rabbitmq.queue["{#VHOST}/{#QUEUE}"]'
              tags:
                -
                  tag: component
                  value: messages
                -
                  tag: queue
                  value: '{#QUEUE}'
                -
                  tag: vhost
                  value: '{#VHOST}'
            -
              uuid: 6a6d118223cf419a9d1d64fa0c25227a
              name: 'RabbitMQ: Queue [{#VHOST}][{#QUEUE}]: Messages redelivered'
              type: DEPENDENT
              key: 'rabbitmq.queue.messages.redeliver["{#VHOST}/{#QUEUE}"]'
              delay: '0'
              history: 7d
              description: 'Count of subset of messages in deliver_get which had the redelivered flag set'
              preprocessing:
                -
                  type: JSONPATH
                  parameters:
                    - $.message_stats.redeliver
                  error_handler: CUSTOM_VALUE
                  error_handler_params: '0'
              master_item:
                key: 'rabbitmq.queue["{#VHOST}/{#QUEUE}"]'
              tags:
                -
                  tag: component
                  value: messages
                -
                  tag: queue
                  value: '{#QUEUE}'
                -
                  tag: vhost
                  value: '{#VHOST}'
            -
              uuid: 00a5274382c34db9a78c349731bc76c9
              name: 'RabbitMQ: Queue [{#VHOST}][{#QUEUE}]: Messages'
              type: DEPENDENT
              key: 'rabbitmq.queue.messages["{#VHOST}/{#QUEUE}"]'
              delay: '0'
              history: 7d
              description: 'Count of the total messages in the queue'
              preprocessing:
                -
                  type: JSONPATH
                  parameters:
                    - $.messages
              master_item:
                key: 'rabbitmq.queue["{#VHOST}/{#QUEUE}"]'
              tags:
                -
                  tag: component
                  value: messages
                -
                  tag: queue
                  value: '{#QUEUE}'
                -
                  tag: vhost
                  value: '{#VHOST}'
              trigger_prototypes:
                -
                  uuid: 5a34eee5e0d64094b147e7b6d7b93923
                  expression: 'min(/RabbitMQ node by HTTP nested/rabbitmq.queue.messages["{#VHOST}/{#QUEUE}"],5m)>{$RABBITMQ.MESSAGES.MAX.WARN:"{#QUEUE}"}'
                  name: 'RabbitMQ: Too many messages in queue [{#VHOST}][{#QUEUE}] (over {$RABBITMQ.MESSAGES.MAX.WARN:"{#QUEUE}"} for 5m)'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  tags:
                    -
                      tag: scope
                      value: performance
            -
              uuid: 3d4a238b4386469183362f67f15ed243
              name: 'RabbitMQ: Queue [{#VHOST}][{#QUEUE}]: Messages ready per second'
              type: DEPENDENT
              key: 'rabbitmq.queue.messages_ready.rate["{#VHOST}/{#QUEUE}"]'
              delay: '0'
              history: 7d
              value_type: FLOAT
              description: 'Number per second of messages ready to be delivered to clients'
              preprocessing:
                -
                  type: JSONPATH
                  parameters:
                    - $.messages_ready_details.rate
              master_item:
                key: 'rabbitmq.queue["{#VHOST}/{#QUEUE}"]'
              tags:
                -
                  tag: component
                  value: messages
                -
                  tag: queue
                  value: '{#QUEUE}'
                -
                  tag: vhost
                  value: '{#VHOST}'
            -
              uuid: 3ec1373bec004db9927611df3f886d9b
              name: 'RabbitMQ: Queue [{#VHOST}][{#QUEUE}]: Messages ready'
              type: DEPENDENT
              key: 'rabbitmq.queue.messages_ready["{#VHOST}/{#QUEUE}"]'
              delay: '0'
              history: 7d
              description: 'Number of messages ready to be delivered to clients'
              preprocessing:
                -
                  type: JSONPATH
                  parameters:
                    - $.messages_ready
              master_item:
                key: 'rabbitmq.queue["{#VHOST}/{#QUEUE}"]'
              tags:
                -
                  tag: component
                  value: messages
                -
                  tag: queue
                  value: '{#QUEUE}'
                -
                  tag: vhost
                  value: '{#VHOST}'
            -
              uuid: 7d48bb0a786b451f9272e2e93c99ed5c
              name: 'RabbitMQ: Queue [{#VHOST}][{#QUEUE}]: Messages unacknowledged per second'
              type: DEPENDENT
              key: 'rabbitmq.queue.messages_unacknowledged.rate["{#VHOST}/{#QUEUE}"]'
              delay: '0'
              history: 7d
              value_type: FLOAT
              description: 'Number per second of messages delivered to clients but not yet acknowledged'
              preprocessing:
                -
                  type: JSONPATH
                  parameters:
                    - $.messages_unacknowledged_details.rate
              master_item:
                key: 'rabbitmq.queue["{#VHOST}/{#QUEUE}"]'
              tags:
                -
                  tag: component
                  value: messages
                -
                  tag: queue
                  value: '{#QUEUE}'
                -
                  tag: vhost
                  value: '{#VHOST}'
            -
              uuid: a88b9e78b11e4a99b3ae7ea1bf0d9762
              name: 'RabbitMQ: Queue [{#VHOST}][{#QUEUE}]: Messages unacknowledged'
              type: DEPENDENT
              key: 'rabbitmq.queue.messages_unacknowledged["{#VHOST}/{#QUEUE}"]'
              delay: '0'
              history: 7d
              description: 'Number of messages delivered to clients but not yet acknowledged'
              preprocessing:
                -
                  type: JSONPATH
                  parameters:
                    - $.messages_unacknowledged
              master_item:
                key: 'rabbitmq.queue["{#VHOST}/{#QUEUE}"]'
              tags:
                -
                  tag: component
                  value: messages
                -
                  tag: queue
                  value: '{#QUEUE}'
                -
                  tag: vhost
                  value: '{#VHOST}'
            -
              uuid: 9f4a06b63b7b46e3a5db86763ae86ae9
              name: 'RabbitMQ: Queue [{#VHOST}][{#QUEUE}] data'
              type: DEPENDENT
              key: 'rabbitmq.queue["{#VHOST}/{#QUEUE}"]'
              delay: '0'
              history: 1h
              trends: '0'
              value_type: TEXT
              description: 'Queue data'
              preprocessing:
                -
                  type: JSONPATH
                  parameters:
                    - '$[?(@.name == "{#QUEUE}" && @.vhost == "{#VHOST}")].first()'
              master_item:
                key: rabbitmq.get_queues
              tags:
                -
                  tag: component
                  value: consumers
                -
                  tag: queue
                  value: '{#QUEUE}'
                -
                  tag: vhost
                  value: '{#VHOST}'
          graph_prototypes:
            -
              uuid: 9996cf9449de45118ff7620bedb4a12c
              name: 'RabbitMQ: Queue [{#VHOST}][{#QUEUE}]: Messages per second'
              graph_items:
                -
                  color: 1A7C11
                  item:
                    host: 'RabbitMQ node by HTTP nested'
                    key: 'rabbitmq.queue.messages.rate["{#VHOST}/{#QUEUE}"]'
                -
                  sortorder: '1'
                  color: 2774A4
                  item:
                    host: 'RabbitMQ node by HTTP nested'
                    key: 'rabbitmq.queue.messages.ack.rate["{#VHOST}/{#QUEUE}"]'
                -
                  sortorder: '2'
                  color: F63100
                  item:
                    host: 'RabbitMQ node by HTTP nested'
                    key: 'rabbitmq.queue.messages.deliver.rate["{#VHOST}/{#QUEUE}"]'
                -
                  sortorder: '3'
                  color: A54F10
                  item:
                    host: 'RabbitMQ node by HTTP nested'
                    key: 'rabbitmq.queue.messages.deliver_get.rate["{#VHOST}/{#QUEUE}"]'
                -
                  sortorder: '4'
                  color: FC6EA3
                  item:
                    host: 'RabbitMQ node by HTTP nested'
                    key: 'rabbitmq.queue.messages.publish.rate["{#VHOST}/{#QUEUE}"]'
                -
                  sortorder: '5'
                  color: 6C59DC
                  item:
                    host: 'RabbitMQ node by HTTP nested'
                    key: 'rabbitmq.queue.messages_ready.rate["{#VHOST}/{#QUEUE}"]'
                -
                  sortorder: '6'
                  color: AC8C14
                  item:
                    host: 'RabbitMQ node by HTTP nested'
                    key: 'rabbitmq.queue.messages.redeliver.rate["{#VHOST}/{#QUEUE}"]'
                -
                  sortorder: '7'
                  color: 611F27
                  item:
                    host: 'RabbitMQ node by HTTP nested'
                    key: 'rabbitmq.queue.messages_unacknowledged.rate["{#VHOST}/{#QUEUE}"]'
            -
              uuid: 1d5d723de7064ca481c7d528893708b9
              name: 'RabbitMQ: Queue [{#VHOST}][{#QUEUE}]: Messages status'
              graph_items:
                -
                  color: 1A7C11
                  item:
                    host: 'RabbitMQ node by HTTP nested'
                    key: 'rabbitmq.queue.messages["{#VHOST}/{#QUEUE}"]'
                -
                  sortorder: '1'
                  color: 2774A4
                  item:
                    host: 'RabbitMQ node by HTTP nested'
                    key: 'rabbitmq.queue.messages.ack["{#VHOST}/{#QUEUE}"]'
                -
                  sortorder: '2'
                  color: F63100
                  item:
                    host: 'RabbitMQ node by HTTP nested'
                    key: 'rabbitmq.queue.messages.deliver["{#VHOST}/{#QUEUE}"]'
                -
                  sortorder: '3'
                  color: A54F10
                  item:
                    host: 'RabbitMQ node by HTTP nested'
                    key: 'rabbitmq.queue.messages.deliver_get["{#VHOST}/{#QUEUE}"]'
                -
                  sortorder: '4'
                  color: FC6EA3
                  item:
                    host: 'RabbitMQ node by HTTP nested'
                    key: 'rabbitmq.queue.messages.publish["{#VHOST}/{#QUEUE}"]'
                -
                  sortorder: '5'
                  color: 6C59DC
                  item:
                    host: 'RabbitMQ node by HTTP nested'
                    key: 'rabbitmq.queue.messages_ready["{#VHOST}/{#QUEUE}"]'
                -
                  sortorder: '6'
                  color: AC8C14
                  item:
                    host: 'RabbitMQ node by HTTP nested'
                    key: 'rabbitmq.queue.messages.redeliver["{#VHOST}/{#QUEUE}"]'
                -
                  sortorder: '7'
                  color: 611F27
                  item:
                    host: 'RabbitMQ node by HTTP nested'
                    key: 'rabbitmq.queue.messages_unacknowledged["{#VHOST}/{#QUEUE}"]'
          master_item:
            key: rabbitmq.get_queues
          lld_macro_paths:
            -
              lld_macro: '{#NODE}'
              path: $.node
            -
              lld_macro: '{#QUEUE}'
              path: $.name
            -
              lld_macro: '{#VHOST}'
              path: $.vhost
      tags:
        -
          tag: class
          value: software
        -
          tag: target
          value: rabbitmq
      macros:
        -
          macro: '{$RABBITMQ.API.PASSWORD}'
          value: zabbix
        -
          macro: '{$RABBITMQ.API.PORT}'
          value: '15672'
          description: 'The port of RabbitMQ API endpoint'
        -
          macro: '{$RABBITMQ.API.SCHEME}'
          value: http
          description: 'Request scheme which may be http or https'
        -
          macro: '{$RABBITMQ.API.USER}'
          value: zbx_monitor
        -
          macro: '{$RABBITMQ.CLUSTER.NAME}'
          value: rabbit
          description: 'The name of RabbitMQ cluster'
        -
          macro: '{$RABBITMQ.LLD.FILTER.QUEUE.MATCHES}'
          value: '.*'
          description: 'Filter of discoverable queues'
        -
          macro: '{$RABBITMQ.LLD.FILTER.QUEUE.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          description: 'Filter to exclude discovered queues'
        -
          macro: '{$RABBITMQ.MESSAGES.MAX.WARN}'
          value: '1000'
          description: 'Maximum number of messages in the queue for trigger expression'
        -
          macro: '{$RABBITMQ.RESPONSE_TIME.MAX.WARN}'
          value: '10'
          description: 'Maximum RabbitMQ response time in seconds for trigger expression'
      dashboards:
        -
          uuid: ec33872b86064a47a8df5070e8cd2f6f
          name: 'RabbitMQ node status'
          pages:
            -
              widgets:
                -
                  type: GRAPH_CLASSIC
                  width: '12'
                  height: '5'
                  fields:
                    -
                      type: INTEGER
                      name: source_type
                      value: '0'
                    -
                      type: GRAPH
                      name: graphid
                      value:
                        name: 'RabbitMQ: Node status'
                        host: 'RabbitMQ node by HTTP nested'
                -
                  type: GRAPH_CLASSIC
                  x: '12'
                  width: '12'
                  height: '5'
                  fields:
                    -
                      type: INTEGER
                      name: source_type
                      value: '0'
                    -
                      type: GRAPH
                      name: graphid
                      value:
                        name: 'RabbitMQ: Uptime'
                        host: 'RabbitMQ node by HTTP nested'
                -
                  type: GRAPH_CLASSIC
                  'y': '5'
                  width: '12'
                  height: '5'
                  fields:
                    -
                      type: INTEGER
                      name: source_type
                      value: '0'
                    -
                      type: GRAPH
                      name: graphid
                      value:
                        name: 'RabbitMQ: Disk free'
                        host: 'RabbitMQ node by HTTP nested'
                -
                  type: GRAPH_CLASSIC
                  x: '12'
                  'y': '5'
                  width: '12'
                  height: '5'
                  fields:
                    -
                      type: INTEGER
                      name: source_type
                      value: '0'
                    -
                      type: GRAPH
                      name: graphid
                      value:
                        name: 'RabbitMQ: Memory used'
                        host: 'RabbitMQ node by HTTP nested'
                -
                  type: GRAPH_CLASSIC
                  'y': '10'
                  width: '12'
                  height: '5'
                  fields:
                    -
                      type: INTEGER
                      name: source_type
                      value: '0'
                    -
                      type: GRAPH
                      name: graphid
                      value:
                        name: 'RabbitMQ: File descriptors'
                        host: 'RabbitMQ node by HTTP nested'
                -
                  type: GRAPH_CLASSIC
                  x: '12'
                  'y': '10'
                  width: '12'
                  height: '5'
                  fields:
                    -
                      type: INTEGER
                      name: source_type
                      value: '0'
                    -
                      type: GRAPH
                      name: graphid
                      value:
                        name: 'RabbitMQ: Sockets'
                        host: 'RabbitMQ node by HTTP nested'
      valuemaps:
        -
          uuid: b9d94b75dc7542ea88a5374d2926d199
          name: 'Alarm state'
          mappings:
            -
              value: '0'
              newvalue: Ok
            -
              value: '1'
              newvalue: Alarm
        -
          uuid: 7be69c8c080e4fd08339c5373b33314f
          name: 'RabbitMQ healthcheck'
          mappings:
            -
              value: '0'
              newvalue: Failed
            -
              value: '1'
              newvalue: Ok
            -
              value: '2'
              newvalue: Error
        -
          uuid: 6595bd73e2094b96854d45fe98c83c92
          name: 'Service state'
          mappings:
            -
              value: '0'
              newvalue: Down
            -
              value: '1'
              newvalue: Up
  graphs:
    -
      uuid: 9646e8a7c2b847779a5d7f57022ca194
      name: 'RabbitMQ: Disk free'
      graph_items:
        -
          drawtype: GRADIENT_LINE
          color: 1A7C11
          item:
            host: 'RabbitMQ node by HTTP nested'
            key: rabbitmq.node.disk_free
        -
          sortorder: '1'
          drawtype: BOLD_LINE
          color: FF0000
          item:
            host: 'RabbitMQ node by HTTP nested'
            key: rabbitmq.node.disk_free_limit
    -
      uuid: ddb1ff1467a84577b2826b150425ab05
      name: 'RabbitMQ: File descriptors'
      graph_items:
        -
          color: 1A7C11
          item:
            host: 'RabbitMQ node by HTTP nested'
            key: rabbitmq.node.fd_used
    -
      uuid: 896a5624417344debe655ecfca9de671
      name: 'RabbitMQ: Memory used'
      graph_items:
        -
          drawtype: GRADIENT_LINE
          color: 1A7C11
          item:
            host: 'RabbitMQ node by HTTP nested'
            key: rabbitmq.node.mem_used
        -
          sortorder: '1'
          drawtype: BOLD_LINE
          color: FF0000
          item:
            host: 'RabbitMQ node by HTTP nested'
            key: rabbitmq.node.mem_limit
    -
      uuid: 1105a0d34ebc4ea3bf19ea7d47b2e531
      name: 'RabbitMQ: Node status'
      graph_items:
        -
          drawtype: BOLD_LINE
          color: 1A7C11
          item:
            host: 'RabbitMQ node by HTTP nested'
            key: rabbitmq.node.running
    -
      uuid: e4fb02c655d64af1b7ab681ae2fd81bc
      name: 'RabbitMQ: Sockets'
      graph_items:
        -
          drawtype: GRADIENT_LINE
          color: 1A7C11
          item:
            host: 'RabbitMQ node by HTTP nested'
            key: rabbitmq.node.sockets_used
        -
          sortorder: '1'
          color: 2774A4
          item:
            host: 'RabbitMQ node by HTTP nested'
            key: rabbitmq.node.sockets_total
    -
      uuid: 72b6a0b7a7014b2ba8649da3dc87c173
      name: 'RabbitMQ: Uptime'
      graph_items:
        -
          color: 1A7C11
          item:
            host: 'RabbitMQ node by HTTP nested'
            key: rabbitmq.node.uptime
