zabbix_export:
  version: '8.0'
  template_groups:
    - uuid: a571c0d144b14fd4a87a9d9b2aa9fcd6
      name: Templates/Applications
    - uuid: 36bff6c29af64692839d077febfc7079
      name: 'Templates/Network devices'
    - uuid: 846977d1dfed4968bc5f8bdb363285bc
      name: 'Templates/Operating systems'
    - uuid: 7c2cb727f85b492d88cd56e17127c64d
      name: Templates/SAN
  host_groups:
    - uuid: a571c0d144b14fd4a87a9d9b2aa9fcd6
      name: Applications
  templates:
    - uuid: 2fca6b60914b4fa98132b1a7885ab014
      template: 'Cisco Meraki dashboard by HTTP'
      name: 'Cisco Meraki dashboard by HTTP'
      description: |
        Template for monitoring Cisco Meraki dashboard https://meraki.cisco.com/products/meraki-dashboard/
        
        You can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/
        
        Generated by official Zabbix template tool "Templator"
      wizard_ready: 'YES'
      readme: |
        ## Setup
        
        You must set `Meraki API token` and `Meraki API URL` host wizard configuration fields.
        
        Create the token in the Meraki dashboard (see Meraki [documentation](https://developer.cisco.com/meraki/api-latest/#!authorization/authorization) for instructions). Set this token as `Meraki API token` host wizard configuration field value in Zabbix.
        
        Set your Meraki dashboard URL as `Meraki API URL` host wizard configuration field value in Zabbix (e.g., api.meraki.com/api/v1).
        
        Set filters with host wizard configuration fields if you want to override default filter parameters.
      vendor:
        name: Zabbix
        version: 8.0-2
      groups:
        - name: Templates/Applications
        - name: 'Templates/Network devices'
      items:
        - uuid: d1a5f3c79a604bae98c314d2aed64ff4
          name: 'Get data'
          type: SCRIPT
          key: meraki.get.data
          delay: 1h
          history: '0'
          value_type: TEXT
          params: |
            var params = JSON.parse(value);
            
            var r_match = '{$MERAKI.ORGANIZATION.NAME.MATCHES}';
            var r_not_match = '{$MERAKI.ORGANIZATION.NAME.NOT_MATCHES}';
            
            var request = new HttpRequest();
            
            request.addHeader('X-Cisco-Meraki-API-Key:' + params.token);
            request.addHeader('User-Agent: ZabbixServer/1.2 Zabbix');
            
            var response,
            	error_msg = '',
            	organizations = [],
            	devices = [];
            
            function getHttpData(url) {
            	var startTime = new Date().getTime();
            	var maxWait = 1 * 60 * 60 * 1000;
            	var waitFor = 1000;
            	
            	while (true) {
            		response = request.get(url);
            		Zabbix.log(4, '[ Meraki API ] [ ' + url + ' ] Received response with status code ' + request.getStatus() + ': ' + response);
            	
            		var status = request.getStatus();
            	
            		if (response !== null) {
            			try {
            				response = JSON.parse(response);
            			}
            			catch (error) {
            				throw 'Failed to parse response received from Meraki API. Check debug log for more information.';
            			}
            		}
            	
            		if (status === 429 && response && response.errors && Array.isArray(response.errors) &&
            			response.errors.indexOf("API rate limit exceeded for organization") !== -1) {
            			var now = new Date().getTime();
            			var headers = request.getHeaders(false);
            
            			if ('Retry-After' in headers) {
            				var retryAfter = headers['Retry-After'];
            				Zabbix.log(4, '[ Meraki API ] API rate limit exceeded. Retrying after ' + retryAfter + ' seconds.');				 
            				waitFor = parseInt(retryAfter) * 1000;
            			}
            			else {
            				Zabbix.log(4, '[ Meraki API ] API rate limit exceeded. No Retry-After header. Retrying after 1 second.');
            			}
            			if (now - startTime + waitFor > maxWait) {
            				throw 'Failed to receive data: API rate limit exceeded and retry timeout reached.';
            			}
            			Zabbix.sleep(waitFor);
            			continue;
            		}
            	
            		if (status !== 200) {
            			if (response.errors) {
            				throw response.errors.join(', ');
            			}
            			else {
            				throw 'Failed to receive data: invalid response status code.';
            			}
            		}
            	
            		if (typeof (response) !== 'object' || response === null) {
            			throw 'Cannot process response data: received data is not an object.';
            		}
            	
            		return response;
            	}
            };
            
            try {
            	if (params.token === '{' + '$MERAKI.TOKEN}') {
            		throw 'Please change {' + '$MERAKI.TOKEN} macro to the proper value.';
            	}
            
            	if (params.url.indexOf('http://') === -1 && params.url.indexOf('https://') === -1) {
            		params.url = 'https://' + params.url;
            	}
            
            	if (!params.url.endsWith('/')) {
            		params.url += '/';
            	}
            
            	if (typeof params.httpproxy !== 'undefined' && params.httpproxy !== '') {
            		request.setProxy(params.httpproxy);
            	}
            
            	organizations = getHttpData(params.url + 'organizations');
            
            	organizations = organizations.filter(function (x) {
            		return new RegExp(r_match).test(x.name) & !new RegExp(r_not_match).test(x.name);
            	});
            
            	if (Array.isArray(organizations) && organizations.length > 0) {
            		for (i in organizations) {
            			if ('id' in organizations[i] && 'name' in organizations[i]) {
            				try {
            					organization_devices = getHttpData(params.url + 'organizations/' + encodeURIComponent(organizations[i].id) + '/devices/availabilities');
            
            					if (Array.isArray(organization_devices) && organization_devices.length > 0) {
            						for (j in organization_devices) {
            							organization_devices[j].organizationId = organizations[i].id;
            							organization_devices[j].organizationName = organizations[i].name;
            							if (!organization_devices[j].name) {
            								organization_devices[j].name = organization_devices[j].serial;
            							}
            							devices.push(organization_devices[j]);
            						}
            					}
            				} catch (error) {
            					error_msg += organizations[i].name + " organization's devices retrieval error: " + error + '\n';
            				}
            			} else {
            				error_msg += 'There is no ID or organization name in the API response.';
            			}
            		}
            	}
            } catch (error) {
            	error_msg += 'Organizations data retrieval error: ' + error;
            }
            
            return JSON.stringify({
            	organizations: organizations,
            	devices: devices,
            	error: error_msg.toString()
            });
          description: 'Item for gathering all the organizations and devices from Meraki API.'
          timeout: '{$MERAKI.DATA.TIMEOUT}'
          parameters:
            - name: httpproxy
              value: '{$MERAKI.HTTP_PROXY}'
            - name: token
              value: '{$MERAKI.TOKEN}'
            - name: url
              value: '{$MERAKI.API.URL}'
          tags:
            - tag: component
              value: raw
        - uuid: 6fdd764d820341e7bd2a24f42802c58a
          name: 'Data item errors'
          type: DEPENDENT
          key: meraki.get.data.errors
          value_type: TEXT
          description: 'Item for gathering all the data item errors.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.error
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
          master_item:
            key: meraki.get.data
          tags:
            - tag: component
              value: error
          triggers:
            - uuid: 2bf9355f548e4e9b9b8581fb43f175fe
              expression: 'length(last(/Cisco Meraki dashboard by HTTP/meraki.get.data.errors))>0'
              name: 'Meraki: There are errors in ''Get data'' metric'
              priority: WARNING
              tags:
                - tag: scope
                  value: availability
      discovery_rules:
        - uuid: 6488b49e692e4fe8b6a1c57f56b6ba7d
          name: 'Devices discovery'
          type: DEPENDENT
          key: meraki.devices.discovery
          filter:
            evaltype: AND
            conditions:
              - macro: '{#NAME}'
                value: '{$MERAKI.DEVICE.NAME.MATCHES}'
              - macro: '{#NAME}'
                value: '{$MERAKI.DEVICE.NAME.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#STATUS}'
                value: '{$MERAKI.DEVICE.STATUS.MATCHES}'
              - macro: '{#STATUS}'
                value: '{$MERAKI.DEVICE.STATUS.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
          host_prototypes:
            - uuid: 86d599f384d94b368508a170911213ec
              host: '{#SERIAL}'
              name: '[{#SERIAL}] [{#PRODUCT_TYPE}] {#NAME}'
              group_links:
                - group:
                    name: Applications
              templates:
                - name: 'Cisco Meraki device by HTTP'
              macros:
                - macro: '{$MAC}'
                  value: '{#MAC}'
                  description: 'MAC address of the device.'
                - macro: '{$NETWORK.ID}'
                  value: '{#NETWORK.ID}'
                  description: 'Network ID of the device.'
                - macro: '{$ORGANIZATION_ID}'
                  value: '{#ORGANIZATION_ID}'
                  description: 'Organization ID of the device.'
                - macro: '{$SERIAL}'
                  value: '{#SERIAL}'
                  description: 'Serial number of the device.'
              tags:
                - tag: organization
                  value: '{#ORGANIZATION_NAME}'
                - tag: serial-number
                  value: '{#SERIAL}'
                - tag: type
                  value: '{#PRODUCT_TYPE}'
          master_item:
            key: meraki.get.data
          lld_macro_paths:
            - lld_macro: '{#MAC}'
              path: $.mac
            - lld_macro: '{#NAME}'
              path: $.name
            - lld_macro: '{#NETWORK.ID}'
              path: $.network.id
            - lld_macro: '{#ORGANIZATION_ID}'
              path: $.organizationId
            - lld_macro: '{#ORGANIZATION_NAME}'
              path: $.organizationName
            - lld_macro: '{#PRODUCT_TYPE}'
              path: $.productType
            - lld_macro: '{#SERIAL}'
              path: $.serial
            - lld_macro: '{#STATUS}'
              path: $.status
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.devices
        - uuid: 30f38d19659646009ca436d48f9598b0
          name: 'Organizations discovery'
          type: DEPENDENT
          key: meraki.organization.discovery
          filter:
            evaltype: AND
            conditions:
              - macro: '{#NAME}'
                value: '{$MERAKI.ORGANIZATION.NAME.MATCHES}'
              - macro: '{#NAME}'
                value: '{$MERAKI.ORGANIZATION.NAME.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
          host_prototypes:
            - uuid: 59cd2e995b814d7e9f8411dbc7420c76
              host: 'meraki-organization-{#ID}'
              name: '[{#REGION}] {#NAME}'
              group_links:
                - group:
                    name: Applications
              group_prototypes:
                - name: '{#REGION}'
              templates:
                - name: 'Cisco Meraki organization by HTTP'
              macros:
                - macro: '{$ID}'
                  value: '{#ID}'
                  description: 'ID of the organization.'
          master_item:
            key: meraki.get.data
          lld_macro_paths:
            - lld_macro: '{#ID}'
              path: $.id
            - lld_macro: '{#NAME}'
              path: $.name
            - lld_macro: '{#REGION}'
              path: $.cloud.region.name
            - lld_macro: '{#URL}'
              path: $.url
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.organizations
      tags:
        - tag: class
          value: cloud
        - tag: class
          value: network
        - tag: subclass
          value: camera
        - tag: subclass
          value: firewall
        - tag: subclass
          value: modem
        - tag: subclass
          value: security
        - tag: target
          value: cisco-meraki-dashboard
      macros:
        - macro: '{$MERAKI.API.URL}'
          value: api.meraki.com/api/v1
          description: 'Cisco Meraki dashboard API URL, e.g., api.meraki.com/api/v1'
          config:
            type: TEXT
            priority: '2'
            label: URL
            description: 'Cisco Meraki dashboard API URL, e.g., api.meraki.com/api/v1'
            required: 'YES'
        - macro: '{$MERAKI.DATA.TIMEOUT}'
          value: '60'
          description: 'Response timeout for an API.'
          config:
            type: TEXT
            priority: '3'
            section_name: Other
            label: Timeout
            description: 'Response timeout for an API.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$MERAKI.DEVICE.NAME.MATCHES}'
          value: .+
          description: 'This macro is used in devices discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '6'
            section_name: Filters
            label: 'Filter for device by name'
            description: 'This macro is used in devices discovery. Can be overridden on the host or linked template level.'
        - macro: '{$MERAKI.DEVICE.NAME.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          description: 'This macro is used in devices discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '7'
            section_name: Filters
            label: 'Filter for device  by name (exclude)'
            description: 'This macro is used in devices discovery. Can be overridden on the host or linked template level.'
        - macro: '{$MERAKI.DEVICE.STATUS.MATCHES}'
          value: '.*'
          description: 'This macro is used in devices discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '8'
            section_name: Filters
            label: 'Filter for device by status'
            description: 'This macro is used in devices discovery. Can be overridden on the host or linked template level.'
        - macro: '{$MERAKI.DEVICE.STATUS.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          description: 'This macro is used in devices discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '9'
            section_name: Filters
            label: 'Filter for device by status (exclude)'
            description: 'This macro is used in devices discovery. Can be overridden on the host or linked template level.'
        - macro: '{$MERAKI.HTTP_PROXY}'
          description: 'HTTP proxy for API requests. You can specify it using the format [protocol://][username[:password]@]proxy.example.com[:port]. See documentation at https://www.zabbix.com/documentation/8.0/manual/config/items/itemtypes/http'
          config:
            type: TEXT
            priority: '10'
            section_name: Other
            label: 'HTTP proxy'
            description: 'HTTP proxy for API requests. You can specify it using the format [protocol://][username[:password]@]proxy.example.com[:port]. See documentation at https://www.zabbix.com/documentation/8.0/manual/config/items/itemtypes/http'
        - macro: '{$MERAKI.ORGANIZATION.NAME.MATCHES}'
          value: .+
          description: 'This macro is used in organizations discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '4'
            section_name: Filters
            label: 'Filter for organization'
            description: 'This macro is used in organizations discovery. Can be overridden on the host or linked template level.'
        - macro: '{$MERAKI.ORGANIZATION.NAME.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          description: 'This macro is used in organizations discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '5'
            section_name: Filters
            label: 'Filter for organization (exclude)'
            description: 'This macro is used in organizations discovery. Can be overridden on the host or linked template level.'
        - macro: '{$MERAKI.TOKEN}'
          type: SECRET_TEXT
          description: 'Cisco Meraki dashboard API token.'
          config:
            type: TEXT
            priority: '1'
            label: Token
            description: 'Cisco Meraki dashboard API token.'
            required: 'YES'
    - uuid: 2cae7d2eeca04e6fa7419759ac9ad814
      template: 'Cisco Meraki device by HTTP'
      name: 'Cisco Meraki device by HTTP'
      description: 'Generated by official Zabbix template tool "Templator"'
      wizard_ready: 'YES'
      readme: |
        ## Setup
        
        This template is used in low-level discovery and will be auto-assigned to host prototypes. Additional configuration is not required.
      vendor:
        name: Zabbix
        version: 8.0-4
      groups:
        - name: Templates/Applications
        - name: 'Templates/Network devices'
      items:
        - uuid: a45187d4bd154072bc75d76df09708d9
          name: 'Device address'
          type: DEPENDENT
          key: meraki.device.address
          value_type: TEXT
          description: |
            Device location address
            Network: {$NETWORK.ID}
          inventory_link: LOCATION
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.deviceInfo.address
          master_item:
            key: meraki.get.inventory
          tags:
            - tag: component
              value: system
        - uuid: 92b275569cff4013b545b5c251a318ab
          name: Firmware
          type: DEPENDENT
          key: meraki.device.firmware
          value_type: CHAR
          description: |
            Device firmware
            Network: {$NETWORK.ID}
          inventory_link: SOFTWARE
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.deviceInfo.firmware
          master_item:
            key: meraki.get.inventory
          tags:
            - tag: component
              value: system
        - uuid: 0c97a8fcad764133b4e7c35d0134665c
          name: 'Get status'
          type: SCRIPT
          key: meraki.device.get.status
          delay: '{$MERAKI.GET.STATUS.INTERVAL}'
          history: '0'
          value_type: TEXT
          params: |
            var params = JSON.parse(value);
            
            var request = new HttpRequest();
            
            request.addHeader('X-Cisco-Meraki-API-Key:' + params.token);
            request.addHeader('User-Agent: ZabbixServer/1.2 Zabbix');
            
            function parseTime(timeString) {
            	var match = timeString.match(/^(\d+)([h|m|s])$/);
            	if (match) {
            		var value = parseInt(match[1], 10);
            		var unit = match[2];
            
            		switch (unit) {
            			case 'h':
            				return value * 3600;
            			case 'm':
            				return value * 60;
            			case 's':
            				return value;
            			default:
            				return 0;
            		}
            	}
            
            	return 0;
            };
            
            var response,
            	error_msg = '',
            	response = [],
            	timespan;
            
            	function getHttpData(url) {
            		var startTime = new Date().getTime();
            		var maxWait = parseInt(timespan, 10) * 1000;
            		var waitFor = 1000;
            	
            		while (true) {
            			response = request.get(url);
            			Zabbix.log(4, '[ Meraki API ] [ ' + url + ' ] Received response with status code ' + request.getStatus() + ': ' + response);
            	
            			var status = request.getStatus();
            	
            			if (response !== null) {
            				try {
            					response = JSON.parse(response);
            				}
            				catch (error) {
            					throw 'Failed to parse response received from Meraki API. Check debug log for more information.';
            				}
            			}
            	
            			if (status === 429 && response && response.errors && Array.isArray(response.errors) &&
            				response.errors.indexOf("API rate limit exceeded for organization") !== -1) {
            				var now = new Date().getTime();
            				var headers = request.getHeaders(false);
            	
            				if ('Retry-After' in headers) {
            					var retryAfter = headers['Retry-After'];
            					Zabbix.log(4, '[ Meraki API ] API rate limit exceeded. Retrying after ' + retryAfter + ' seconds.');				 
            					waitFor = parseInt(retryAfter) * 1000;
            				}
            				else {
            					Zabbix.log(4, '[ Meraki API ] API rate limit exceeded. No Retry-After header. Retrying after 1 second.');
            				}
            				if (now - startTime + waitFor > maxWait) {
            					throw 'Failed to receive data: API rate limit exceeded and retry timeout reached.';
            				}
            				Zabbix.sleep(waitFor);
            				continue;
            			}
            	
            			if (status !== 200) {
            				if (response.errors) {
            					throw response.errors.join(', ');
            				}
            				else {
            					throw 'Failed to receive data: invalid response status code.';
            				}
            			}
            	
            			if (typeof (response) !== 'object' || response === null) {
            				throw 'Cannot process response data: received data is not an object.';
            			}
            	
            			return response;
            		}
            	};
            
            try {
            
            	if (params.token === '{' + '$MERAKI.TOKEN}') {
            		throw 'Please change {' + '$MERAKI.TOKEN} macro to the proper value.';
            	}
            
            	if (params.url.indexOf('http://') === -1 && params.url.indexOf('https://') === -1) {
            		params.url = 'https://' + params.url;
            	}
            
            	if (!params.url.endsWith('/')) {
            		params.url += '/';
            	}
            
            	if (typeof params.httpproxy !== 'undefined' && params.httpproxy !== '') {
            		request.setProxy(params.httpproxy);
            	}
            
            	timespan = parseTime('{$MERAKI.GET.STATUS.INTERVAL}');
            
            	response = getHttpData(params.url + 'organizations/' + encodeURIComponent(params.organizationId) + '/devices/availabilities?serials[]=' + encodeURIComponent(params.serial));
            	if (Array.isArray(response) & response.length > 0) {
            		response = response[0]
            	}
            
            } catch (error) {
            	error_msg = error;
            };
            
            return JSON.stringify({
            	'data': response,
            	'error': error_msg.toString()
            });
          description: 'Item for gathering device status from Meraki API.'
          timeout: '{$MERAKI.DATA.TIMEOUT}'
          parameters:
            - name: httpproxy
              value: '{$MERAKI.HTTP_PROXY}'
            - name: organizationId
              value: '{$ORGANIZATION_ID}'
            - name: serial
              value: '{$SERIAL}'
            - name: token
              value: '{$MERAKI.TOKEN}'
            - name: url
              value: '{$MERAKI.API.URL}'
          tags:
            - tag: component
              value: raw
        - uuid: b1873bc0a185452dbede07373e0e4a93
          name: 'Device status item errors'
          type: DEPENDENT
          key: meraki.device.get.status.errors
          value_type: TEXT
          description: 'Item for gathering errors of the device status item.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.error
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
          master_item:
            key: meraki.device.get.status
          tags:
            - tag: component
              value: error
          triggers:
            - uuid: 0f629d0aef6b456fb3d5b1a20ece54ac
              expression: 'length(last(/Cisco Meraki device by HTTP/meraki.device.get.status.errors))>0'
              name: 'Meraki: There are errors in ''Get status'' metric'
              priority: WARNING
              tags:
                - tag: scope
                  value: availability
        - uuid: 878cbc22039b4fab9949c1997041b1a8
          name: 'Device latitude'
          type: DEPENDENT
          key: meraki.device.latitude
          value_type: CHAR
          description: |
            Latitude of the device location
            Network: {$NETWORK.ID}
          inventory_link: LOCATION_LAT
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.deviceInfo.lat
          master_item:
            key: meraki.get.inventory
          tags:
            - tag: component
              value: system
        - uuid: de69a544bf9047da9f47b0b8f6c61bf2
          name: 'Device longitude'
          type: DEPENDENT
          key: meraki.device.longitude
          value_type: CHAR
          description: |
            Longitude of the device location
            Network: {$NETWORK.ID}
          inventory_link: LOCATION_LON
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.deviceInfo.lng
          master_item:
            key: meraki.get.inventory
          tags:
            - tag: component
              value: system
        - uuid: 3867fdab6af941ab9958b05b197419df
          name: 'MAC address'
          type: DEPENDENT
          key: meraki.device.mac.address
          value_type: CHAR
          description: |
            Device MAC address
            Network: {$NETWORK.ID}
          inventory_link: MACADDRESS_A
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.deviceInfo.mac
          master_item:
            key: meraki.get.inventory
          tags:
            - tag: component
              value: network
        - uuid: e66780872dba46dc9265c4dad022a799
          name: 'Device model'
          type: DEPENDENT
          key: meraki.device.model
          value_type: CHAR
          description: |
            Device model
            Network: {$NETWORK.ID}
          inventory_link: MODEL
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.deviceInfo.model
          master_item:
            key: meraki.get.inventory
          tags:
            - tag: component
              value: system
        - uuid: 514db363389741619b3103fd57ec0675
          name: 'Device notes'
          type: DEPENDENT
          key: meraki.device.notes
          value_type: TEXT
          description: |
            Notes about the device
            Network: {$NETWORK.ID}
          inventory_link: NOTES
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.deviceInfo.notes
              error_handler: DISCARD_VALUE
          master_item:
            key: meraki.get.inventory
          tags:
            - tag: component
              value: system
        - uuid: 9c36f19a2d72418dbef579142722372f
          name: 'Device OS'
          type: DEPENDENT
          key: meraki.device.os
          value_type: CHAR
          description: |
            Device operation system
            Network: {$NETWORK.ID}
          inventory_link: OS
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.deviceInfo.details[0].value'
              error_handler: DISCARD_VALUE
          master_item:
            key: meraki.get.inventory
          tags:
            - tag: component
              value: system
        - uuid: 2280b9212c474d99835ec1334ff780eb
          name: 'Public IP'
          type: DEPENDENT
          key: meraki.device.public.ip
          value_type: CHAR
          description: |
            Device public IP
            Network: {$NETWORK.ID}
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.deviceInfo.ip
            - type: NOT_MATCHES_REGEX
              parameters:
                - ^null$
              error_handler: DISCARD_VALUE
          master_item:
            key: meraki.get.inventory
          tags:
            - tag: component
              value: network
        - uuid: fa98beea4eca47859cc53a7d6bcf2008
          name: 'Serial number'
          type: DEPENDENT
          key: meraki.device.serialnumber
          value_type: CHAR
          description: |
            Device serial number
            Network: {$NETWORK.ID}
          inventory_link: SERIALNO_A
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.deviceInfo.serial
          master_item:
            key: meraki.get.inventory
          tags:
            - tag: component
              value: system
        - uuid: 324b748bfe2e4383927176046e246acb
          name: Status
          type: DEPENDENT
          key: meraki.device.status
          description: |
            Device operational status
            Network: {$NETWORK.ID}
          valuemap:
            name: 'Device status'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.status
              error_handler: DISCARD_VALUE
            - type: JAVASCRIPT
              parameters:
                - |
                  switch (value) {
                  	case 'offline':
                  		return 0
                  	case 'online':
                  		return 1
                  	case 'dormant':
                  		return 2
                  	default:
                  		return 10
                  }
          master_item:
            key: meraki.device.get.status
          tags:
            - tag: component
              value: health
          triggers:
            - uuid: 00583ac9e9824f7db22a1685421f0be9
              expression: 'last(/Cisco Meraki device by HTTP/meraki.device.status)<>1'
              name: 'Meraki: Status is not online'
              priority: WARNING
              tags:
                - tag: scope
                  value: availability
        - uuid: e4963b68cdde453f91767ff9e3a31d16
          name: 'Get device data'
          type: SCRIPT
          key: meraki.get.device
          delay: '{$MERAKI.UPLINK.LL.TIMESPAN}'
          history: '0'
          value_type: TEXT
          params: |
            var params = JSON.parse(value);
            
            var request = new HttpRequest();
            
            request.addHeader('X-Cisco-Meraki-API-Key:' + params.token);
            request.addHeader('User-Agent: ZabbixServer/1.2 Zabbix');
            
            var response,
            	error_msg = '',
            	device = [],
            	uplinksLL = [],
            	timespan;
            
            function isFloat(n) {
            	n = parseFloat(n);
            	return Number(n) === n && n % 1 !== 0;
            };
            
            function checkNumber(string) {
            	if (typeof string !== "string" || isNaN(string) || isFloat(string)) {
            		throw 'Incorrect "timespan" parameter given: ' + string + ' Must be an unsigned number';
            	}
            	return string;
            };
            
            function getHttpData(url) {
            	var startTime = new Date().getTime();
            	var maxWait = (parseInt(timespan, 10) - 10) * 1000;
            	var waitFor = 1000;
            
            	while (true) {
            		response = request.get(url);
            		Zabbix.log(4, '[ Meraki API ] [ ' + url + ' ] Received response with status code ' + request.getStatus() + ': ' + response);
            
            		var status = request.getStatus();
            
            		if (response !== null) {
            			try {
            				response = JSON.parse(response);
            			}
            			catch (error) {
            				throw 'Failed to parse response received from Meraki API. Check debug log for more information.';
            			}
            		}
            
            		if (status === 429 && response && response.errors && Array.isArray(response.errors) &&
            			response.errors.indexOf("API rate limit exceeded for organization") !== -1) {
            			var now = new Date().getTime();
            			var headers = request.getHeaders(false);
            
            			if ('Retry-After' in headers) {
            				var retryAfter = headers['Retry-After'];
            				Zabbix.log(4, '[ Meraki API ] API rate limit exceeded. Retrying after ' + retryAfter + ' seconds.');				 
            				waitFor = parseInt(retryAfter) * 1000;
            			}
            			else {
            				Zabbix.log(4, '[ Meraki API ] API rate limit exceeded. No Retry-After header. Retrying after 1 second.');
            			}
            			if (now - startTime + waitFor > maxWait) {
            				throw 'Failed to receive data: API rate limit exceeded and retry timeout reached.';
            			}
            			Zabbix.sleep(waitFor);
            			continue;
            		}
            
            		if (status !== 200) {
            			if (response.errors) {
            				throw response.errors.join(', ');
            			}
            			else {
            				throw 'Failed to receive data: invalid response status code.';
            			}
            		}
            
            		if (typeof (response) !== 'object' || response === null) {
            			throw 'Cannot process response data: received data is not an object.';
            		}
            
            		return response;
            	}
            };
            
            try {
            
            	if (params.token === '{' + '$MERAKI.TOKEN}') {
            		throw 'Please change {' + '$MERAKI.TOKEN} macro to the proper value.';
            	}
            
            	if (params.url.indexOf('http://') === -1 && params.url.indexOf('https://') === -1) {
            		params.url = 'https://' + params.url;
            	}
            
            	if (!params.url.endsWith('/')) {
            		params.url += '/';
            	}
            
            	if (typeof params.httpproxy !== 'undefined' && params.httpproxy !== '') {
            		request.setProxy(params.httpproxy);
            	}
            
            	timespan = checkNumber('{$MERAKI.UPLINK.LL.TIMESPAN}');
            
            	if (timespan > 86400 || timespan < 1) {
            		throw 'Incorrect "timespan" parameter given: ' + timespan + ' Must be between 1 and 86400 seconds.';
            	}
            
            	uplinksLL = getHttpData(params.url + 'organizations/' + encodeURIComponent(params.organizationId) + '/devices/uplinksLossAndLatency?timespan=' + timespan);
            
            	if (uplinksLL.length > 0) {
            		uplinksLL = uplinksLL.filter(function (device) {
            			return device.serial == params.serial;
            		});
            	}
            
            } catch (error) {
            	error_msg = error;
            };
            
            return JSON.stringify({
            	'uplinksLL': uplinksLL,
            	'error': error_msg.toString()
            });
          description: 'Item for gathering device data from Meraki API.'
          timeout: '{$MERAKI.DATA.TIMEOUT}'
          parameters:
            - name: httpproxy
              value: '{$MERAKI.HTTP_PROXY}'
            - name: organizationId
              value: '{$ORGANIZATION_ID}'
            - name: serial
              value: '{$SERIAL}'
            - name: token
              value: '{$MERAKI.TOKEN}'
            - name: url
              value: '{$MERAKI.API.URL}'
          tags:
            - tag: component
              value: raw
        - uuid: b673516073354c9aaaf60cf3ce2e2fa6
          name: 'Device data item errors'
          type: DEPENDENT
          key: meraki.get.device.errors
          value_type: TEXT
          description: 'Item for gathering errors of the device item.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.error
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
          master_item:
            key: meraki.get.device
          tags:
            - tag: component
              value: error
          triggers:
            - uuid: c8f8af6c92f14dc0bcdf426b124c7344
              expression: 'length(last(/Cisco Meraki device by HTTP/meraki.get.device.errors))>0'
              name: 'Meraki: There are errors in ''Get device data'' metric'
              priority: WARNING
              tags:
                - tag: scope
                  value: availability
        - uuid: ae461bc520a840d9b0f0847011f52bce
          name: 'Get inventory data'
          type: SCRIPT
          key: meraki.get.inventory
          delay: '{$MERAKI.GET.INVENTORY.INTERVAL}'
          history: '0'
          value_type: TEXT
          params: |
            var params = JSON.parse(value);
            
            var request = new HttpRequest();
            
            request.addHeader('X-Cisco-Meraki-API-Key:' + params.token);
            request.addHeader('User-Agent: ZabbixServer/1.2 Zabbix');
            
            function parseTime(timeString) {
            	var match = timeString.match(/^(\d+)([h|m|s])$/);
            	if (match) {
            		var value = parseInt(match[1], 10);
            		var unit = match[2];
            
            		switch (unit) {
            			case 'h':
            				return value * 3600;
            			case 'm':
            				return value * 60;
            			case 's':
            				return value;
            			default:
            				return 0;
            		}
            	}
            
            	return 0;
            };
            
            var response,
            	error_msg = '',
            	deviceInfo = [],
            	timespan;
            
            	function getHttpData(url) {
            		var startTime = new Date().getTime();
            		var maxWait = parseInt(timespan, 10) * 1000;
            		var waitFor = 1000;
            	
            		while (true) {
            			response = request.get(url);
            			Zabbix.log(4, '[ Meraki API ] [ ' + url + ' ] Received response with status code ' + request.getStatus() + ': ' + response);
            	
            			var status = request.getStatus();
            	
            			if (response !== null) {
            				try {
            					response = JSON.parse(response);
            				}
            				catch (error) {
            					throw 'Failed to parse response received from Meraki API. Check debug log for more information.';
            				}
            			}
            	
            			if (status === 429 && response && response.errors && Array.isArray(response.errors) &&
            				response.errors.indexOf("API rate limit exceeded for organization") !== -1) {
            				var now = new Date().getTime();
            				var headers = request.getHeaders(false);
            	
            				if ('Retry-After' in headers) {
            					var retryAfter = headers['Retry-After'];
            					Zabbix.log(4, '[ Meraki API ] API rate limit exceeded. Retrying after ' + retryAfter + ' seconds.');				 
            					waitFor = parseInt(retryAfter) * 1000;
            				}
            				else {
            					Zabbix.log(4, '[ Meraki API ] API rate limit exceeded. No Retry-After header. Retrying after 1 second.');
            				}
            				if (now - startTime + waitFor > maxWait) {
            					throw 'Failed to receive data: API rate limit exceeded and retry timeout reached.';
            				}
            				Zabbix.sleep(waitFor);
            				continue;
            			}
            	
            			if (status !== 200) {
            				if (response.errors) {
            					throw response.errors.join(', ');
            				}
            				else {
            					throw 'Failed to receive data: invalid response status code.';
            				}
            			}
            	
            			if (typeof (response) !== 'object' || response === null) {
            				throw 'Cannot process response data: received data is not an object.';
            			}
            	
            			return response;
            		}
            	};
            
            try {
            
            	if (params.token === '{' + '$MERAKI.TOKEN}') {
            		throw 'Please change {' + '$MERAKI.TOKEN} macro to the proper value.';
            	}
            
            	if (params.url.indexOf('http://') === -1 && params.url.indexOf('https://') === -1) {
            		params.url = 'https://' + params.url;
            	}
            
            	if (!params.url.endsWith('/')) {
            		params.url += '/';
            	}
            
            	if (typeof params.httpproxy !== 'undefined' && params.httpproxy !== '') {
            		request.setProxy(params.httpproxy);
            	}
            
            	timespan = parseTime('{$MERAKI.GET.INVENTORY.INTERVAL}');
            
            	deviceInfo = getHttpData(params.url + 'organizations/' + encodeURIComponent(params.organizationId) + '/devices?serial=' + encodeURIComponent(params.serial));
            	deviceInfo = (deviceInfo && Array.isArray(deviceInfo) && deviceInfo.length > 0) ? deviceInfo[0] : [];
            	deviceInfo['ip'] = (typeof deviceInfo.lanIp !== 'undefined') ? deviceInfo['lanIp'] : deviceInfo['wan1Ip'];
            
            } catch (error) {
            	error_msg = error;
            };
            
            return JSON.stringify({
            	'deviceInfo': deviceInfo,
            	'error': error_msg.toString()
            });
          description: 'Item for gathering device inventory data from Meraki API.'
          timeout: '{$MERAKI.DATA.TIMEOUT}'
          parameters:
            - name: httpproxy
              value: '{$MERAKI.HTTP_PROXY}'
            - name: organizationId
              value: '{$ORGANIZATION_ID}'
            - name: serial
              value: '{$SERIAL}'
            - name: token
              value: '{$MERAKI.TOKEN}'
            - name: url
              value: '{$MERAKI.API.URL}'
          tags:
            - tag: component
              value: raw
        - uuid: eb8c1772e6b940998b5eaa9fc95f92a5
          name: 'Device inventory data item errors'
          type: DEPENDENT
          key: meraki.get.inventory.errors
          value_type: TEXT
          description: 'Item for gathering errors of the inventory data item.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.error
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
          master_item:
            key: meraki.get.inventory
          tags:
            - tag: component
              value: error
          triggers:
            - uuid: af0fa91e3e03415683c3fa2761ad7328
              expression: 'length(last(/Cisco Meraki device by HTTP/meraki.get.inventory.errors))>0'
              name: 'Meraki: There are errors in ''Get inventory data'' metric'
              priority: WARNING
              tags:
                - tag: scope
                  value: availability
      discovery_rules:
        - uuid: 9c7e5d2ccad7416b8d58237be4218154
          name: 'Uplinks loss and quality discovery'
          type: DEPENDENT
          key: meraki.device.uplinks.discovery
          filter:
            evaltype: AND
            conditions:
              - macro: '{#IP}'
                value: '{$MERAKI.DEVICE.LOSS.LATENCY.IP.MATCHES}'
              - macro: '{#IP}'
                value: '{$MERAKI.DEVICE.LOSS.LATENCY.IP.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#UPLINK}'
                value: '{$MERAKI.DEVICE.UPLINK.MATCHES}'
              - macro: '{#UPLINK}'
                value: '{$MERAKI.DEVICE.UPLINK.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
          item_prototypes:
            - uuid: abf642b1bb944d16bebf90dcf58dbd86
              name: 'Uplink [{#IP}]: [{#UPLINK}]: Latency'
              type: DEPENDENT
              key: 'meraki.device.latency[{#IP},{#UPLINK}]'
              value_type: FLOAT
              units: s
              description: |
                Latency of the device uplink. 
                Network: {#NETWORK.ID}. 
                Device serial: {#SERIAL}.
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.uplinksLL[?(@.ip == ''{#IP}'' && @.uplink== ''{#UPLINK}'')].timeSeries.[0].latencyMs.first()'
                  error_handler: CUSTOM_VALUE
                  error_handler_params: '-1000'
                - type: MULTIPLIER
                  parameters:
                    - '0.001'
              master_item:
                key: meraki.get.device
              tags:
                - tag: component
                  value: network
                - tag: ip
                  value: '{#IP}'
                - tag: network
                  value: '{#NETWORK.ID}'
                - tag: serial-number
                  value: '{#SERIAL}'
                - tag: uplink
                  value: '{#UPLINK}'
              trigger_prototypes:
                - uuid: b559ad94b15848089d89e85e4d9db7ff
                  expression: 'min(/Cisco Meraki device by HTTP/meraki.device.latency[{#IP},{#UPLINK}],#3)>{$MERAKI.DEVICE.LATENCY}'
                  name: 'Meraki: Uplink [{#IP}]: [{#UPLINK}]: latency > {$MERAKI.DEVICE.LATENCY}'
                  priority: WARNING
                  tags:
                    - tag: scope
                      value: performance
            - uuid: bded34f64113486ab0672210e5a8eb1d
              name: 'Uplink [{#IP}]: [{#UPLINK}]: Loss, %'
              type: DEPENDENT
              key: 'meraki.device.loss.pct[{#IP},{#UPLINK}]'
              value_type: FLOAT
              units: '%'
              description: |
                Loss percent of the device uplink. 
                Network: {#NETWORK.ID}. 
                Device serial: {#SERIAL}.
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.uplinksLL[?(@.ip == ''{#IP}'' && @.uplink== ''{#UPLINK}'')].timeSeries.[0].lossPercent.first()'
                  error_handler: CUSTOM_VALUE
                  error_handler_params: '-1'
              master_item:
                key: meraki.get.device
              tags:
                - tag: component
                  value: network
                - tag: ip
                  value: '{#IP}'
                - tag: network
                  value: '{#NETWORK.ID}'
                - tag: serial-number
                  value: '{#SERIAL}'
                - tag: uplink
                  value: '{#UPLINK}'
              trigger_prototypes:
                - uuid: 1309e71025614ce4bb4242e6e291ae48
                  expression: 'min(/Cisco Meraki device by HTTP/meraki.device.loss.pct[{#IP},{#UPLINK}],#3)>{$MERAKI.DEVICE.LOSS}'
                  name: 'Meraki: Uplink [{#IP}]: [{#UPLINK}]: loss > {$MERAKI.DEVICE.LOSS}%'
                  priority: WARNING
                  tags:
                    - tag: scope
                      value: performance
          graph_prototypes:
            - uuid: 4e9d84e08b32489c8c3a2cbbd4c6119a
              name: 'Uplink [{#IP}]: [{#UPLINK}]: Latency'
              ymin_type_1: FIXED
              graph_items:
                - color: 199C0D
                  item:
                    host: 'Cisco Meraki device by HTTP'
                    key: 'meraki.device.latency[{#IP},{#UPLINK}]'
            - uuid: ebf262afc6d94d29b9831d418fb07edb
              name: 'Uplink [{#IP}]: [{#UPLINK}]: Loss'
              ymin_type_1: FIXED
              graph_items:
                - color: 199C0D
                  item:
                    host: 'Cisco Meraki device by HTTP'
                    key: 'meraki.device.loss.pct[{#IP},{#UPLINK}]'
          master_item:
            key: meraki.get.device
          lld_macro_paths:
            - lld_macro: '{#IP}'
              path: $.ip
            - lld_macro: '{#NETWORK.ID}'
              path: $.networkId
            - lld_macro: '{#SERIAL}'
              path: $.serial
            - lld_macro: '{#UPLINK}'
              path: $.uplink
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.uplinksLL
      tags:
        - tag: class
          value: cloud
        - tag: class
          value: network
        - tag: subclass
          value: camera
        - tag: subclass
          value: firewall
        - tag: subclass
          value: modem
        - tag: subclass
          value: security
        - tag: target
          value: cisco-meraki-dashboard
      macros:
        - macro: '{$MERAKI.API.URL}'
          value: api.meraki.com/api/v1
          description: 'Cisco Meraki dashboard API URL, e.g., api.meraki.com/api/v1'
        - macro: '{$MERAKI.DATA.TIMEOUT}'
          value: '60'
          description: 'Response timeout for an API.'
        - macro: '{$MERAKI.DEVICE.LATENCY}'
          value: '0.15'
          description: 'Devices uplink latency threshold, in seconds.'
        - macro: '{$MERAKI.DEVICE.LOSS}'
          value: '15'
          description: 'Devices uplink loss threshold, in percent.'
        - macro: '{$MERAKI.DEVICE.LOSS.LATENCY.IP.MATCHES}'
          value: '^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)\.?\b){4}$'
          description: 'This macro is used in loss and latency checks discovery. Can be overridden on the host or linked template level.'
        - macro: '{$MERAKI.DEVICE.LOSS.LATENCY.IP.NOT_MATCHES}'
          value: ^null$
          description: 'This macro is used in loss and latency checks discovery. Can be overridden on the host or linked template level.'
        - macro: '{$MERAKI.DEVICE.UPLINK.MATCHES}'
          value: '.*'
          description: 'This macro is used in loss and latency checks discovery. Can be overridden on the host or linked template level.'
        - macro: '{$MERAKI.DEVICE.UPLINK.NOT_MATCHES}'
          value: ^null$
          description: 'This macro is used in loss and latency checks discovery. Can be overridden on the host or linked template level.'
        - macro: '{$MERAKI.GET.INVENTORY.INTERVAL}'
          value: 12h
          description: 'The update interval for the script item that retrieves inventory data from API.'
        - macro: '{$MERAKI.GET.STATUS.INTERVAL}'
          value: '300'
          description: 'Update interval for get status item.'
        - macro: '{$MERAKI.HTTP_PROXY}'
          description: 'HTTP proxy for API requests. You can specify it using the format [protocol://][username[:password]@]proxy.example.com[:port]. See documentation at https://www.zabbix.com/documentation/8.0/manual/config/items/itemtypes/http'
        - macro: '{$MERAKI.TOKEN}'
          type: SECRET_TEXT
          description: 'Cisco Meraki dashboard API token.'
        - macro: '{$MERAKI.UPLINK.LL.TIMESPAN}'
          value: '180'
          description: 'Timespan in seconds for getting device uplinks loss and quality stats. Used in the metric configuration and in the JavaScript API query. Must be between 1 and 86400 seconds.'
      dashboards:
        - uuid: 76c4525eacc64f268572fefd76accc2f
          name: 'Meraki: General'
          pages:
            - name: 'Meraki: Uplinks'
              widgets:
                - type: graphprototype
                  name: Loss
                  width: '36'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'Cisco Meraki device by HTTP'
                        name: 'Uplink [{#IP}]: [{#UPLINK}]: Loss'
                    - type: STRING
                      name: reference
                      value: AAAAA
                - type: graphprototype
                  name: Latency
                  x: '36'
                  width: '36'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'Cisco Meraki device by HTTP'
                        name: 'Uplink [{#IP}]: [{#UPLINK}]: Latency'
                    - type: STRING
                      name: reference
                      value: AAAAB
      valuemaps:
        - uuid: 24967dff65a048578eae18b2485907cb
          name: 'Device status'
          mappings:
            - value: '0'
              newvalue: offline
            - value: '1'
              newvalue: online
            - value: '2'
              newvalue: dormant
            - value: '10'
              newvalue: unknown
    - uuid: 39e2f742d0b24ea489b7f61d27a5df1c
      template: 'Cisco Meraki organization by HTTP'
      name: 'Cisco Meraki organization by HTTP'
      description: 'Generated by official Zabbix template tool "Templator"'
      wizard_ready: 'YES'
      readme: |
        ## Setup
        
        This template is used in low-level discovery and will be auto-assigned to host prototypes. Additional configuration is not required.
      vendor:
        name: Zabbix
        version: 8.0-3
      groups:
        - name: Templates/Applications
        - name: 'Templates/Network devices'
      items:
        - uuid: 495f3a6047644dadadbbc676ba6900f9
          name: 'Account lockout attempts'
          type: DEPENDENT
          key: meraki.account.lockout.attempts
          description: 'Number of consecutive failed login attempts after which users'' accounts will be locked.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.loginSecurity.accountLockoutAttempts
            - type: NOT_MATCHES_REGEX
              parameters:
                - ^null$
              error_handler: DISCARD_VALUE
          master_item:
            key: meraki.get.data
          tags:
            - tag: component
              value: security
        - uuid: 25f8f61ddf964f39b39cc38b23b017b9
          name: 'Get list of adaptive policy aggregate statistics'
          type: SCRIPT
          key: meraki.get.adaptive.policy
          delay: 20m
          history: '0'
          value_type: TEXT
          params: |
            var params = JSON.parse(value);
            
            var request = new HttpRequest();
            
            request.addHeader('X-Cisco-Meraki-API-Key:' + params.token);
            request.addHeader('User-Agent: ZabbixServer/1.2 Zabbix');
            
            var response,
            	error_msg = '',
            	result = [];
            
            function getHttpData(url) {
            	var startTime = new Date().getTime();
            	var maxWait = 10 * 60 * 1000;
            	
            	while (true) {
            		response = request.get(url);
            		Zabbix.log(4, '[ Meraki API ] [ ' + url + ' ] Received response with status code ' + request.getStatus() + ': ' + response);
            	
            		var status = request.getStatus();
            	
            		if (response !== null) {
            			try {
            				response = JSON.parse(response);
            			}
            			catch (error) {
            				throw 'Failed to parse response received from Meraki API. Check debug log for more information.';
            			}
            		}
            	
            		if (status === 429 && response && response.errors && Array.isArray(response.errors) &&
            			response.errors.indexOf("API rate limit exceeded for organization") !== -1) {
            			var now = new Date().getTime();
            			if (now - startTime + 1000 > maxWait) {
            				throw 'Failed to receive data: API rate limit exceeded and retry timeout reached.';
            			}
            			Zabbix.sleep(1000);
            			continue;
            		}
            	
            		if (status !== 200) {
            			if (response.errors) {
            				throw response.errors.join(', ');
            			} else {
            				throw 'Failed to receive data: invalid response status code.';
            			}
            		}
            	
            		if (typeof (response) !== 'object' || response === null) {
            			throw 'Cannot process response data: received data is not an object.';
            		}
            	
            		return response;
            	}
            };
            
            try {
            
            	if (params.token === '{' + '$MERAKI.TOKEN}') {
            		throw 'Please change {' + '$MERAKI.TOKEN} macro to the proper value.';
            	}
            
            	if (params.url.indexOf('http://') === -1 && params.url.indexOf('https://') === -1) {
            		params.url = 'https://' + params.url;
            	}
            
            	if (!params.url.endsWith('/')) {
            		params.url += '/';
            	}
            
            	if (typeof params.httpproxy !== 'undefined' && params.httpproxy !== '') {
            		request.setProxy(params.httpproxy);
            	}
            
            	result = getHttpData(params.url + 'organizations/' + encodeURIComponent(params.organizationId) + '/adaptivePolicy/overview');
            
            } catch (error) {
            	error_msg = error;
            };
            
            return JSON.stringify({
            	'data': result,
            	'error': error_msg.toString()
            });
          description: 'Item for gathering adaptive policy aggregate statistics for the organization.'
          timeout: '{$MERAKI.DATA.TIMEOUT}'
          parameters:
            - name: httpproxy
              value: '{$MERAKI.HTTP_PROXY}'
            - name: organizationId
              value: '{$ID}'
            - name: token
              value: '{$MERAKI.TOKEN}'
            - name: url
              value: '{$MERAKI.API.URL}'
          tags:
            - tag: component
              value: raw
        - uuid: fb9d953ca0d7446d9a8056ce9e716d92
          name: 'Adaptive policy item errors'
          type: DEPENDENT
          key: meraki.get.adaptive.policy.errors
          value_type: TEXT
          description: 'Item for gathering all the adaptive policy item errors.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.error
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
          master_item:
            key: meraki.get.adaptive.policy
          tags:
            - tag: component
              value: error
          triggers:
            - uuid: 8312e99efbca4a4bbbba8858076186a9
              expression: 'length(last(/Cisco Meraki organization by HTTP/meraki.get.adaptive.policy.errors))>0'
              name: 'Meraki: There are errors in ''Get adaptive policy'' metric'
              priority: WARNING
              tags:
                - tag: scope
                  value: availability
        - uuid: cf5733581c00445b9598ad23e48d34d8
          name: 'Configuration change log'
          type: DEPENDENT
          key: meraki.get.configuration.changelog
          value_type: TEXT
          description: 'Item for viewing the change log for your organization.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 2h
          master_item:
            key: meraki.get.configuration.changes
          tags:
            - tag: component
              value: log
          triggers:
            - uuid: 2fc56ad4baef4796a3ad7d097cad918f
              expression: 'length(last(/Cisco Meraki organization by HTTP/meraki.get.configuration.changelog))>3'
              name: 'Meraki: Configuration has been changed'
              priority: WARNING
              tags:
                - tag: scope
                  value: security
        - uuid: f2a65bce3adf4511a3f37ed4caa66b3d
          name: 'Get list of configuration changes'
          type: SCRIPT
          key: meraki.get.configuration.changes
          delay: '{$MERAKI.CONFIG.CHANGE.TIMESPAN}'
          history: '0'
          value_type: TEXT
          params: |
            var params = JSON.parse(value);
            
            var request = new HttpRequest();
            
            request.addHeader('X-Cisco-Meraki-API-Key:' + params.token);
            request.addHeader('User-Agent: ZabbixServer/1.2 Zabbix');
            
            var response,
            	error_msg = '',
            	result = [],
            	timespan;
            
            function isFloat(n) {
            	n = parseFloat(n);
            	return Number(n) === n && n % 1 !== 0;
            };
            
            function checkNumber(string) {
            	if (typeof string !== "string" || isNaN(string) || isFloat(string)) {
            		throw 'Incorrect "timespan" parameter given: ' + string + ' Must be an unsigned number';
            	}
            	return string;
            };
            
            function getHttpData(url) {
            	var startTime = new Date().getTime();
            	var maxWait = parseInt(timespan, 10) * 1000;
            	var waitFor = 1000;
            
            	while (true) {
            		response = request.get(url);
            		Zabbix.log(4, '[ Meraki API ] [ ' + url + ' ] Received response with status code ' + request.getStatus() + ': ' + response);
            
            		var status = request.getStatus();
            
            		if (response !== null) {
            			try {
            				response = JSON.parse(response);
            			}
            			catch (error) {
            				throw 'Failed to parse response received from Meraki API. Check debug log for more information.';
            			}
            		}
            
            		if (status === 429 && response && response.errors && Array.isArray(response.errors) &&
            			response.errors.indexOf("API rate limit exceeded for organization") !== -1) {
            			var now = new Date().getTime();
            			var headers = request.getHeaders(false);
            
            			if ('Retry-After' in headers) {
            				var retryAfter = headers['Retry-After'];
            				Zabbix.log(4, '[ Meraki API ] API rate limit exceeded. Retrying after ' + retryAfter + ' seconds.');				 
            				waitFor = parseInt(retryAfter) * 1000;
            			}
            			else {
            				Zabbix.log(4, '[ Meraki API ] API rate limit exceeded. No Retry-After header. Retrying after 1 second.');
            			}
            			if (now - startTime + waitFor > maxWait) {
            				throw 'Failed to receive data: API rate limit exceeded and retry timeout reached.';
            			}
            			Zabbix.sleep(waitFor);
            			continue;
            		}
            
            		if (status !== 200) {
            			if (response.errors) {
            				throw response.errors.join(', ');
            			}
            			else {
            				throw 'Failed to receive data: invalid response status code.';
            			}
            		}
            
            		if (typeof (response) !== 'object' || response === null) {
            			throw 'Cannot process response data: received data is not an object.';
            		}
            
            		return response;
            	}
            };
            
            try {
            
            	if (params.token === '{' + '$MERAKI.TOKEN}') {
            		throw 'Please change {' + '$MERAKI.TOKEN} macro to the proper value.';
            	}
            
            	if (params.url.indexOf('http://') === -1 && params.url.indexOf('https://') === -1) {
            		params.url = 'https://' + params.url;
            	}
            
            	if (!params.url.endsWith('/')) {
            		params.url += '/';
            	}
            
            	if (typeof params.httpproxy !== 'undefined' && params.httpproxy !== '') {
            		request.setProxy(params.httpproxy);
            	}
            
            	timespan = checkNumber('{$MERAKI.CONFIG.CHANGE.TIMESPAN}');
            
            	if (timespan > 86400 || timespan < 1) {
            		throw 'Incorrect "timespan" parameter given: ' + timespan + ' Must be between 1 and 86400 seconds.';
            	}
            
            	result = getHttpData(params.url + 'organizations/' + encodeURIComponent(params.organizationId) + '/configurationChanges?timespan=' + timespan);
            
            } catch (error) {
            	error_msg = error;
            };
            
            return JSON.stringify({
            	'data': result,
            	'error': error_msg.toString()
            });
          description: 'Item for gathering all the configuration changes for the organization. Gathering once per 20m by default.'
          timeout: '{$MERAKI.DATA.TIMEOUT}'
          parameters:
            - name: httpproxy
              value: '{$MERAKI.HTTP_PROXY}'
            - name: organizationId
              value: '{$ID}'
            - name: token
              value: '{$MERAKI.TOKEN}'
            - name: url
              value: '{$MERAKI.API.URL}'
          tags:
            - tag: component
              value: raw
        - uuid: 05038571b3c04743bb808da343f335b6
          name: 'Configuration changes item errors'
          type: DEPENDENT
          key: meraki.get.configuration.changes.errors
          value_type: TEXT
          description: 'Item for gathering all the configuration changes item errors.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.error
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
          master_item:
            key: meraki.get.configuration.changes
          tags:
            - tag: component
              value: error
          triggers:
            - uuid: ce83cc3e1a8a44168df7809d239743c3
              expression: 'length(last(/Cisco Meraki organization by HTTP/meraki.get.configuration.changes.errors))>0'
              name: 'Meraki: There are errors in ''Get configuration changes'' metric'
              priority: WARNING
              tags:
                - tag: scope
                  value: availability
        - uuid: 3306da0ec0d749829db2f5f42e4e7876
          name: 'Get data'
          type: SCRIPT
          key: meraki.get.data
          delay: 12h
          history: '0'
          value_type: TEXT
          params: |
            var params = JSON.parse(value);
            
            var request = new HttpRequest();
            
            request.addHeader('X-Cisco-Meraki-API-Key:' + params.token);
            request.addHeader('User-Agent: ZabbixServer/1.2 Zabbix');
            
            var response,
            	error_msg = '',
            	licenseStates = [],
            	samlSSO = [],
            	samlRoles = [],
            	adminAccount = [],
            	loginSecurity = [];
            
            function getHttpData(url) {
            	var startTime = new Date().getTime();
            	var maxWait = 1 * 60 * 60 * 1000;
            	var waitFor = 1000;
            	
            	while (true) {
            		response = request.get(url);
            		Zabbix.log(4, '[ Meraki API ] [ ' + url + ' ] Received response with status code ' + request.getStatus() + ': ' + response);
            	
            		var status = request.getStatus();
            	
            		if (response !== null) {
            			try {
            				response = JSON.parse(response);
            			}
            			catch (error) {
            				throw 'Failed to parse response received from Meraki API. Check debug log for more information.';
            			}
            		}
            	
            		if (status === 429 && response && response.errors && Array.isArray(response.errors) &&
            			response.errors.indexOf("API rate limit exceeded for organization") !== -1) {
            			var now = new Date().getTime();
            			var headers = request.getHeaders(false);
            
            			if ('Retry-After' in headers) {
            				var retryAfter = headers['Retry-After'];
            				Zabbix.log(4, '[ Meraki API ] API rate limit exceeded. Retrying after ' + retryAfter + ' seconds.');				 
            				waitFor = parseInt(retryAfter) * 1000;
            			}
            			else {
            				Zabbix.log(4, '[ Meraki API ] API rate limit exceeded. No Retry-After header. Retrying after 1 second.');
            			}
            			if (now - startTime + waitFor > maxWait) {
            				throw 'Failed to receive data: API rate limit exceeded and retry timeout reached.';
            			}
            			Zabbix.sleep(waitFor);
            			continue;
            		}
            	
            		if (status !== 200) {
            			if (response.errors) {
            				throw response.errors.join(', ');
            			}
            			else {
            				throw 'Failed to receive data: invalid response status code.';
            			}
            		}
            	
            		if (typeof (response) !== 'object' || response === null) {
            			throw 'Cannot process response data: received data is not an object.';
            		}
            	
            		return response;
            	}
            };
            
            try {
            
            	if (params.token === '{' + '$MERAKI.TOKEN}') {
            		throw 'Please change {' + '$MERAKI.TOKEN} macro to the proper value.';
            	}
            
            	if (params.url.indexOf('http://') === -1 && params.url.indexOf('https://') === -1) {
            		params.url = 'https://' + params.url;
            	}
            
            	if (!params.url.endsWith('/')) {
            		params.url += '/';
            	}
            
            	if (typeof params.httpproxy !== 'undefined' && params.httpproxy !== '') {
            		request.setProxy(params.httpproxy);
            	}
            
            	licenseStates = getHttpData(params.url + 'organizations/' + encodeURIComponent(params.organizationId) + '/licenses/overview');
            	samlSSO = getHttpData(params.url + 'organizations/' + encodeURIComponent(params.organizationId) + '/saml');
            	samlRoles = getHttpData(params.url + 'organizations/' + encodeURIComponent(params.organizationId) + '/samlRoles');
            	adminAccount = getHttpData(params.url + 'organizations/' + encodeURIComponent(params.organizationId) + '/admins');
            	loginSecurity = getHttpData(params.url + 'organizations/' + encodeURIComponent(params.organizationId) + '/loginSecurity');
            
            } catch (error) {
            	error_msg = error;
            };
            
            return JSON.stringify({
            	'licenseStates': licenseStates,
            	'samlSSO': samlSSO,
            	'samlRoles': samlRoles,
            	'adminAccount': adminAccount,
            	'loginSecurity': loginSecurity,
            	'error': error_msg.toString()
            });
          description: 'Item for gathering data for the organization.'
          timeout: '{$MERAKI.DATA.TIMEOUT}'
          parameters:
            - name: httpproxy
              value: '{$MERAKI.HTTP_PROXY}'
            - name: organizationId
              value: '{$ID}'
            - name: token
              value: '{$MERAKI.TOKEN}'
            - name: url
              value: '{$MERAKI.API.URL}'
          tags:
            - tag: component
              value: raw
        - uuid: 8ce70f6703cd49e594a723040d17ee3b
          name: 'Get data item errors'
          type: DEPENDENT
          key: meraki.get.data.errors
          value_type: TEXT
          description: 'Item for gathering all the ''Get data'' item errors.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.error
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
          master_item:
            key: meraki.get.data
          tags:
            - tag: component
              value: error
          triggers:
            - uuid: adef482dadf240fbb211fe4c9b638fbc
              expression: 'length(last(/Cisco Meraki organization by HTTP/meraki.get.data.errors))>0'
              name: 'Meraki: There are errors in ''Get data'' metric'
              priority: WARNING
              tags:
                - tag: scope
                  value: availability
        - uuid: 8ea56a7338f040fcbb9016da892dec90
          name: 'Get list licenses'
          type: SCRIPT
          key: meraki.get.list.licenses
          delay: 12h
          history: '0'
          value_type: TEXT
          params: |
            var params = JSON.parse(value);
            
            var request = new HttpRequest();
            
            request.addHeader('X-Cisco-Meraki-API-Key:' + params.token);
            request.addHeader('User-Agent: ZabbixServer/1.2 Zabbix');
            
            var response,
            	error_msg = '',
            	organization_devices = [],
            	licenses = [];
            
            function getField(data, path) {
            	var steps = path.split('.');
            	for (var i = 0; i < steps.length; i++) {
            		var step = steps[i];
            		if (typeof data !== 'object' || typeof data[step] === 'undefined') {
            			throw 'Required field was not found: ' + path;
            		}
            		data = data[step];
            	}
            
            	return data;
            
            };
            
            function getHttpData(url) {
            	var startTime = new Date().getTime();
            	var maxWait = 1 * 60 * 60 * 1000;
            	var waitFor = 1000;
            	
            	while (true) {
            		response = request.get(url);
            		Zabbix.log(4, '[ Meraki API ] [ ' + url + ' ] Received response with status code ' + request.getStatus() + ': ' + response);
            	
            		var status = request.getStatus();
            	
            		if (response !== null) {
            			try {
            				response = JSON.parse(response);
            			}
            			catch (error) {
            				throw 'Failed to parse response received from Meraki API. Check debug log for more information.';
            			}
            		}
            	
            		if (status === 429 && response && response.errors && Array.isArray(response.errors) &&
            			response.errors.indexOf("API rate limit exceeded for organization") !== -1) {
            			var now = new Date().getTime();
            			var headers = request.getHeaders(false);
            
            			if ('Retry-After' in headers) {
            				var retryAfter = headers['Retry-After'];
            				Zabbix.log(4, '[ Meraki API ] API rate limit exceeded. Retrying after ' + retryAfter + ' seconds.');				 
            				waitFor = parseInt(retryAfter) * 1000;
            			}
            			else {
            				Zabbix.log(4, '[ Meraki API ] API rate limit exceeded. No Retry-After header. Retrying after 1 second.');
            			}
            			if (now - startTime + waitFor > maxWait) {
            				throw 'Failed to receive data: API rate limit exceeded and retry timeout reached.';
            			}
            			Zabbix.sleep(waitFor);
            			continue;
            		}
            	
            		if (status !== 200) {
            			if (response.errors) {
            				throw response.errors.join(', ');
            			}
            			else {
            				throw 'Failed to receive data: invalid response status code.';
            			}
            		}
            	
            		if (typeof (response) !== 'object' || response === null) {
            			throw 'Cannot process response data: received data is not an object.';
            		}
            	
            		return response;
            	}
            };
            
            try {
            
            	if (params.token === '{' + '$MERAKI.TOKEN}') {
            		throw 'Please change {' + '$MERAKI.TOKEN} macro to the proper value.';
            	}
            
            	if (params.url.indexOf('http://') === -1 && params.url.indexOf('https://') === -1) {
            		params.url = 'https://' + params.url;
            	}
            
            	if (!params.url.endsWith('/')) {
            		params.url += '/';
            	}
            
            	if (typeof params.httpproxy !== 'undefined' && params.httpproxy !== '') {
            		request.setProxy(params.httpproxy);
            	}
            
            	licenses = getHttpData(params.url + 'organizations/' + encodeURIComponent(params.organizationId) + '/licenses');
            
            	organization_devices = getHttpData(params.url + 'organizations/' + encodeURIComponent(params.organizationId) + '/devices/statuses');
            
            	licenses.forEach(function (license) {
            
            		license.deviceName = getField(license, 'deviceSerial');
            
            		for (i in organization_devices) {
            
            			if (getField(license, 'deviceSerial') === getField(organization_devices[i], 'serial')) {
            
            				device_name = getField(organization_devices[i], 'name');
            
            				if (!device_name) {
            					device_name = getField(organization_devices[i], 'serial');
            				}
            				license.deviceName = device_name;
            			}
            		}
            	});
            
            
            } catch (error) {
            	error_msg = error;
            };
            
            return JSON.stringify({
            	'licenses': licenses,
            	'error': error_msg.toString()
            });
          description: 'Return list of the licenses for the organization.'
          timeout: '{$MERAKI.DATA.TIMEOUT}'
          parameters:
            - name: httpproxy
              value: '{$MERAKI.HTTP_PROXY}'
            - name: organizationId
              value: '{$ID}'
            - name: token
              value: '{$MERAKI.TOKEN}'
            - name: url
              value: '{$MERAKI.API.URL}'
          tags:
            - tag: component
              value: raw
        - uuid: efe8853443d44eed8daeecee5ab9e481
          name: 'Get list of the networks'
          type: SCRIPT
          key: meraki.get.networks
          delay: 3m
          history: '0'
          value_type: TEXT
          params: |
            var params = JSON.parse(value);
            
            var request = new HttpRequest();
            
            request.addHeader('X-Cisco-Meraki-API-Key:' + params.token);
            request.addHeader('User-Agent: ZabbixServer/1.2 Zabbix');
            
            var response,
            	error_msg = '',
            	networks = [],
            	uplinks = [];
            
            function getHttpData(url) {
            	var startTime = new Date().getTime();
            	var maxWait = 1 * 60 * 1000;
            	var waitFor = 1000;
            		
            	while (true) {
            		response = request.get(url);
            		Zabbix.log(4, '[ Meraki API ] [ ' + url + ' ] Received response with status code ' + request.getStatus() + ': ' + response);
            		
            		var status = request.getStatus();
            		
            		if (response !== null) {
            			try {
            				response = JSON.parse(response);
            			}
            			catch (error) {
            				throw 'Failed to parse response received from Meraki API. Check debug log for more information.';
            			}
            		}
            		
            		if (status === 429 && response && response.errors && Array.isArray(response.errors) &&
            			response.errors.indexOf("API rate limit exceeded for organization") !== -1) {
            			var now = new Date().getTime();
            			var headers = request.getHeaders(false);
            
            			if ('Retry-After' in headers) {
            				var retryAfter = headers['Retry-After'];
            				Zabbix.log(4, '[ Meraki API ] API rate limit exceeded. Retrying after ' + retryAfter + ' seconds.');				 
            				waitFor = parseInt(retryAfter) * 1000;
            			}
            			else {
            				Zabbix.log(4, '[ Meraki API ] API rate limit exceeded. No Retry-After header. Retrying after 1 second.');
            			}
            			if (now - startTime + waitFor > maxWait) {
            				throw 'Failed to receive data: API rate limit exceeded and retry timeout reached.';
            			}
            			Zabbix.sleep(waitFor);
            			continue;
            		}
            		
            		if (status !== 200) {
            			if (response.errors) {
            				throw response.errors.join(', ');
            			}
            			else {
            				throw 'Failed to receive data: invalid response status code.';
            			}
            		}
            		
            		if (typeof (response) !== 'object' || response === null) {
            			throw 'Cannot process response data: received data is not an object.';
            		}
            		
            		return response;
            	}
            };
            
            try {
            
            	if (params.token === '{' + '$MERAKI.TOKEN}') {
            		throw 'Please change {' + '$MERAKI.TOKEN} macro to the proper value.';
            	}
            
            	if (params.url.indexOf('http://') === -1 && params.url.indexOf('https://') === -1) {
            		params.url = 'https://' + params.url;
            	}
            
            	if (!params.url.endsWith('/')) {
            		params.url += '/';
            	}
            
            	if (typeof params.httpproxy !==  'undefined' && params.httpproxy !== '') {
            		request.setProxy(params.httpproxy);
            	}
            
            	networks = getHttpData(params.url + 'organizations/' + encodeURIComponent(params.organizationId) + '/networks');
            
            	responseUplinks = getHttpData(params.url + 'organizations/' + encodeURIComponent(params.organizationId) + '/appliance/uplink/statuses');
            
            	if (typeof responseUplinks !== 'undefined' && Array.isArray(responseUplinks)) {
            		for (var i in responseUplinks) {
            			if ('networkId' in responseUplinks[i] && typeof networks !== 'undefined' && Array.isArray(networks)) {
            				network = networks.filter(function (x) { return x.id == responseUplinks[i].networkId; });
            			}
            
            			if (typeof responseUplinks[i].uplinks !== 'undefined' && Array.isArray(responseUplinks[i].uplinks)) {
            				for (var p in responseUplinks[i].uplinks) {
            					if (typeof network[0].name !== 'undefined') {
            						responseUplinks[i].uplinks[p].networkName = network[0].name;
            					}
            					if (typeof network[0].timeZone !== 'undefined') {
            						responseUplinks[i].uplinks[p].timeZone = network[0].timeZone;
            					}
            					if ('highAvailability' in responseUplinks[i] && 'role' in responseUplinks[i].highAvailability) {
            						responseUplinks[i].uplinks[p].role = responseUplinks[i].highAvailability.role;
            					}
            					if ('serial' in responseUplinks[i]) {
            						responseUplinks[i].uplinks[p].serial = responseUplinks[i].serial;
            					}
            
            					uplinks.push(responseUplinks[i].uplinks[p]);
            				}
            			}
            		}
            	}
            
            
            } catch (error) {
            	error_msg = error;
            };
            
            return JSON.stringify({
            	'uplinks': uplinks,
            	'networks': networks,
            	'error': error_msg.toString()
            });
          description: 'Item for gathering all the networks of organization from Meraki API.'
          timeout: '{$MERAKI.DATA.TIMEOUT}'
          parameters:
            - name: httpproxy
              value: '{$MERAKI.HTTP_PROXY}'
            - name: organizationId
              value: '{$ID}'
            - name: token
              value: '{$MERAKI.TOKEN}'
            - name: url
              value: '{$MERAKI.API.URL}'
          tags:
            - tag: component
              value: raw
        - uuid: b2bb422b7d794a03a93c8d46209cd3fb
          name: 'Networks item errors'
          type: DEPENDENT
          key: meraki.get.networks.errors
          value_type: TEXT
          description: 'Item for gathering all the networks item errors.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.error
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
          master_item:
            key: meraki.get.networks
          tags:
            - tag: component
              value: error
          triggers:
            - uuid: c149d21e19f3453b8e569c549ed2c78a
              expression: 'length(last(/Cisco Meraki organization by HTTP/meraki.get.networks.errors))>0'
              name: 'Meraki: There are errors in ''Get networks'' metric'
              priority: WARNING
              tags:
                - tag: scope
                  value: availability
        - uuid: b33608b4c24d4c7bbf1f76f639890715
          name: 'SAML SSO Settings'
          type: DEPENDENT
          key: meraki.get.saml
          description: 'Return the enabled SAML SSO settings for the organization.'
          valuemap:
            name: 'Boolean format'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.samlSSO.enabled
              error_handler: DISCARD_VALUE
            - type: BOOL_TO_DECIMAL
          master_item:
            key: meraki.get.data
          tags:
            - tag: component
              value: saml
        - uuid: bb653e6dba3f489494a7143b74fe8f4f
          name: 'Get list of the VPN stats'
          type: SCRIPT
          key: meraki.get.vpn.stats
          delay: '{$MERAKI.VPN.STATS.TIMESPAN}'
          history: '0'
          value_type: TEXT
          params: |
            var params = JSON.parse(value);
            
            var request = new HttpRequest();
            
            request.addHeader('X-Cisco-Meraki-API-Key:' + params.token);
            request.addHeader('User-Agent: ZabbixServer/1.2 Zabbix');
            
            var response,
            	error_msg = '',
            	vpnStats = [],
            	vpnStatuses = [],
            	result = [];
            
            function isFloat(n) {
            	n = parseFloat(n);
            	return Number(n) === n && n % 1 !== 0;
            };
            
            function checkNumber(string) {
            	if (typeof string !== "string" || isNaN(string) || isFloat(string)) {
            		throw 'Incorrect "timespan" parameter given: ' + string + ' Must be an unsigned number';
            	}
            	return string;
            };
            
            function getHttpData(url) {
            	var startTime = new Date().getTime();
            	var maxWait = parseInt(timespan, 10) * 1000;
            	var waitFor = 1000;
            
            	while (true) {
            		response = request.get(url);
            		Zabbix.log(4, '[ Meraki API ] [ ' + url + ' ] Received response with status code ' + request.getStatus() + ': ' + response);
            
            		var status = request.getStatus();
            
            		if (response !== null) {
            			try {
            				response = JSON.parse(response);
            			}
            			catch (error) {
            				throw 'Failed to parse response received from Meraki API. Check debug log for more information.';
            			}
            		}
            
            		if (status === 429 && response && response.errors && Array.isArray(response.errors) &&
            			response.errors.indexOf("API rate limit exceeded for organization") !== -1) {
            			var now = new Date().getTime();
            			var headers = request.getHeaders(false);
            
            			if ('Retry-After' in headers) {
            				var retryAfter = headers['Retry-After'];
            				Zabbix.log(4, '[ Meraki API ] API rate limit exceeded. Retrying after ' + retryAfter + ' seconds.');				 
            				waitFor = parseInt(retryAfter) * 1000;
            			}
            			else {
            				Zabbix.log(4, '[ Meraki API ] API rate limit exceeded. No Retry-After header. Retrying after 1 second.');
            			}
            			if (now - startTime + waitFor > maxWait) {
            				throw 'Failed to receive data: API rate limit exceeded and retry timeout reached.';
            			}
            			Zabbix.sleep(waitFor);
            			continue;
            		}
            
            		if (status !== 200) {
            			if (response.errors) {
            				throw response.errors.join(', ');
            			}
            			else {
            				throw 'Failed to receive data: invalid response status code.';
            			}
            		}
            
            		if (typeof (response) !== 'object' || response === null) {
            			throw 'Cannot process response data: received data is not an object.';
            		}
            
            		return response;
            	}
            };
            
            try {
            
            	if (params.token === '{' + '$MERAKI.TOKEN}') {
            		throw 'Please change {' + '$MERAKI.TOKEN} macro to the proper value.';
            	}
            
            	if (params.url.indexOf('http://') === -1 && params.url.indexOf('https://') === -1) {
            		params.url = 'https://' + params.url;
            	}
            
            	if (!params.url.endsWith('/')) {
            		params.url += '/';
            	}
            
            	if (typeof params.httpproxy !== 'undefined' && params.httpproxy !== '') {
            		request.setProxy(params.httpproxy);
            	}
            
            	timespan = checkNumber('{$MERAKI.VPN.STATS.TIMESPAN}');
            
            	if (timespan > 86400 || timespan < 1) {
            		throw 'Incorrect "timespan" parameter given: ' + timespan + ' Must be between 1 and 86400 seconds.';
            	}
            
            	vpnStats = getHttpData(params.url + 'organizations/' + encodeURIComponent(params.organizationId) + '/appliance/vpn/stats?timespan=' + timespan);
            
            	for (i in vpnStats) {
            		if (typeof vpnStats[i].merakiVpnPeers !== 'undefined' && Array.isArray(vpnStats[i].merakiVpnPeers)) {
            			for (u in vpnStats[i].merakiVpnPeers) {
            				if (typeof vpnStats[i].merakiVpnPeers[u].latencySummaries !== 'undefined' && Array.isArray(vpnStats[i].merakiVpnPeers[u].latencySummaries)) {
            					vpn_stats = vpnStats[i].merakiVpnPeers[u].latencySummaries.map(function (x) {
            
            						lps = vpnStats[i].merakiVpnPeers[u].lossPercentageSummaries.filter(function (y) { return y.senderUplink == x.senderUplink && y.receiverUplink == x.receiverUplink; });
            						js = vpnStats[i].merakiVpnPeers[u].jitterSummaries.filter(function (y) { return y.senderUplink == x.senderUplink && y.receiverUplink == x.receiverUplink; });
            						ms = vpnStats[i].merakiVpnPeers[u].mosSummaries.filter(function (y) { return y.senderUplink == x.senderUplink && y.receiverUplink == x.receiverUplink; });
            						Object.assign(x, lps[0], js[0], ms[0]);
            
            						if ('networkId' in vpnStats[i]) {
            							x.networkId = vpnStats[i].networkId;
            						}
            						if ('networkName' in vpnStats[i]) {
            							x.networkName = vpnStats[i].networkName;
            						}
            
            						if ('networkId' in vpnStats[i].merakiVpnPeers[u]) {
            							x.peerNetworkId = vpnStats[i].merakiVpnPeers[u].networkId;
            						}
            						if ('networkName' in vpnStats[i].merakiVpnPeers[u]) {
            							x.peerNetworkName = vpnStats[i].merakiVpnPeers[u].networkName;
            						}
            
            						return x;
            					});
            					result = result.concat(vpn_stats);
            				}
            			}
            		}
            	}
            
            	vpnStatuses = getHttpData(params.url + 'organizations/' + encodeURIComponent(params.organizationId) + '/appliance/vpn/statuses');
            
            } catch (error) {
            	error_msg = error;
            };
            
            return JSON.stringify({
            	'vpnStats': result,
            	'vpnStatuses': vpnStatuses,
            	'error': error_msg.toString()
            });
          description: 'Item for gathering all the VPN stats of the organization.'
          timeout: '{$MERAKI.DATA.TIMEOUT}'
          parameters:
            - name: httpproxy
              value: '{$MERAKI.HTTP_PROXY}'
            - name: organizationId
              value: '{$ID}'
            - name: token
              value: '{$MERAKI.TOKEN}'
            - name: url
              value: '{$MERAKI.API.URL}'
          tags:
            - tag: component
              value: raw
        - uuid: a5106f644c4e46fc963cc953dafaeb4e
          name: 'VPN item errors'
          type: DEPENDENT
          key: meraki.get.vpn.stats.errors
          value_type: TEXT
          description: 'Item for gathering all the VPN item errors.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.error
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
          master_item:
            key: meraki.get.vpn.stats
          tags:
            - tag: component
              value: error
          triggers:
            - uuid: f65ff582e1a84f5a9e9d6a9c0501b013
              expression: 'length(last(/Cisco Meraki organization by HTTP/meraki.get.vpn.stats.errors))>0'
              name: 'Meraki: There are errors in ''Get VPNs'' metric'
              priority: WARNING
              tags:
                - tag: scope
                  value: availability
        - uuid: 3e79a9319f0146c5b5aefeba13ec722c
          name: 'Idle timeout minutes'
          type: DEPENDENT
          key: meraki.idle.timeout.minutes
          description: 'Number of minutes users can remain idle before being logged out of their accounts.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.loginSecurity.idleTimeoutMinutes
              error_handler: DISCARD_VALUE
            - type: NOT_MATCHES_REGEX
              parameters:
                - ^null$
              error_handler: DISCARD_VALUE
          master_item:
            key: meraki.get.data
          tags:
            - tag: component
              value: security
        - uuid: bd6eca7b707a4bee8e2302765afa6074
          name: 'License expire'
          type: DEPENDENT
          key: meraki.license.expire
          value_type: FLOAT
          units: s
          description: 'Meraki license expire time, in seconds left.'
          valuemap:
            name: 'License status'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.licenseStates.expirationDate
              error_handler: DISCARD_VALUE
            - type: JAVASCRIPT
              parameters:
                - |
                  function parseDate(date) {
                  	months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
                  	date = date.split(',');
                  	date[1] = date[1].match(/[0-9]{4}/)[0];
                  	date = date.concat(date[0].split(' '));
                  	month = 1 + months.indexOf(date[2]);
                  	return Date.parse(date[1] + "-" + month + "-" + date[3]);
                  }
                  
                  if (value === "N/A") {
                  	return -1;
                  } else {
                  	value = parseDate(value);
                  	now = Date.now();
                  	return Math.floor((value - now) / 1000);
                  }
          master_item:
            key: meraki.get.data
          tags:
            - tag: component
              value: license
          triggers:
            - uuid: 8694c7fc18904004978a3ce46f06a67e
              expression: 'last(/Cisco Meraki organization by HTTP/meraki.license.expire)<{$MERAKI.LICENSE.EXPIRE} and last(/Cisco Meraki organization by HTTP/meraki.license.expire)>=0'
              name: 'Meraki: License expires in less than {$MERAKI.LICENSE.EXPIRE} seconds'
              priority: WARNING
              tags:
                - tag: scope
                  value: availability
        - uuid: 2b8e2c4093074dbaa88db3df57eb2cd1
          name: 'License status'
          type: DEPENDENT
          key: meraki.license.status
          description: 'Meraki license status.'
          valuemap:
            name: 'License status'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.licenseStates.status
              error_handler: DISCARD_VALUE
            - type: JAVASCRIPT
              parameters:
                - |
                  switch (value) {
                  	case 'License Required':
                  		return 0
                  	case 'OK':
                  		return 1
                  	default:
                  		return 10
                  }
          master_item:
            key: meraki.get.data
          tags:
            - tag: component
              value: license
          triggers:
            - uuid: d4f71dd53bf8495789b53e063db3555b
              expression: 'last(/Cisco Meraki organization by HTTP/meraki.license.status)<>1'
              name: 'Meraki: License status is not OK'
              priority: WARNING
              tags:
                - tag: scope
                  value: availability
        - uuid: c313fa31777a42d29d874f46f00ac82f
          name: 'Enforce account lockout'
          type: DEPENDENT
          key: meraki.login.enforce.account.lockout
          description: 'Boolean indicating whether users'' dashboard accounts will be locked out after a specified number of consecutive failed login attempts.'
          valuemap:
            name: 'Boolean format'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.loginSecurity.enforceAccountLockout
              error_handler: DISCARD_VALUE
            - type: BOOL_TO_DECIMAL
          master_item:
            key: meraki.get.data
          tags:
            - tag: component
              value: security
        - uuid: d71eb53c76e84ce1ad65959e381c358f
          name: 'Enforce different passwords'
          type: DEPENDENT
          key: meraki.login.enforce.different.passwords
          description: 'Boolean indicating whether users, when setting a new password, are forced to choose a new password that is different from any past passwords.'
          valuemap:
            name: 'Boolean format'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.loginSecurity.enforceDifferentPasswords
              error_handler: DISCARD_VALUE
            - type: BOOL_TO_DECIMAL
          master_item:
            key: meraki.get.data
          tags:
            - tag: component
              value: security
        - uuid: bd9423ea744f4855926e0edf677ef2a6
          name: 'Enforce idle timeout'
          type: DEPENDENT
          key: meraki.login.enforce.idle.timeout
          description: 'Boolean indicating whether users will be logged out after being idle for the specified number of minutes.'
          valuemap:
            name: 'Boolean format'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.loginSecurity.enforceIdleTimeout
              error_handler: DISCARD_VALUE
            - type: BOOL_TO_DECIMAL
          master_item:
            key: meraki.get.data
          tags:
            - tag: component
              value: security
        - uuid: f7b88a64223c4b2992f15d0b6807f55f
          name: 'Enforce login IP ranges'
          type: DEPENDENT
          key: meraki.login.enforce.login.ip.ranges
          description: 'Boolean indicating whether organization will restrict access to the dashboard (including the API) from certain IP addresses.'
          valuemap:
            name: 'Boolean format'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.loginSecurity.enforceLoginIpRanges
              error_handler: DISCARD_VALUE
            - type: BOOL_TO_DECIMAL
          master_item:
            key: meraki.get.data
          tags:
            - tag: component
              value: security
        - uuid: 09dc6f6619ea4a1dba1b17d9803bbe7a
          name: 'Enforce password expiration'
          type: DEPENDENT
          key: meraki.login.enforce.password.expiration
          description: 'Boolean indicating whether users are forced to change their password every X days.'
          valuemap:
            name: 'Boolean format'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.loginSecurity.enforcePasswordExpiration
              error_handler: DISCARD_VALUE
            - type: BOOL_TO_DECIMAL
          master_item:
            key: meraki.get.data
          tags:
            - tag: component
              value: security
        - uuid: cae90669ec7b4b2d9743b2f60fe6f99e
          name: 'Enforce 2FA'
          type: DEPENDENT
          key: meraki.login.enforce.two.factor.auth
          description: 'Boolean indicating whether users in this organization will be required to use an extra verification code when logging in to the dashboard. This code will be sent to their mobile phones via SMS or can be generated by the authenticator application.'
          valuemap:
            name: 'Boolean format'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.loginSecurity.enforceTwoFactorAuth
              error_handler: DISCARD_VALUE
            - type: BOOL_TO_DECIMAL
          master_item:
            key: meraki.get.data
          tags:
            - tag: component
              value: security
        - uuid: 903cca42650f489f80ae5ace3adecb69
          name: 'Number of different passwords'
          type: DEPENDENT
          key: meraki.login.num.different.passwords
          description: 'Number of recent passwords that new password must be distinct from.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.loginSecurity.numDifferentPasswords
              error_handler: DISCARD_VALUE
            - type: NOT_MATCHES_REGEX
              parameters:
                - ^null$
              error_handler: DISCARD_VALUE
          master_item:
            key: meraki.get.data
          tags:
            - tag: component
              value: security
        - uuid: 8e882c747c7047f99127346adc7e0a5a
          name: 'Password expiration days'
          type: DEPENDENT
          key: meraki.login.password.expiration.days
          description: 'Number of days after which users will be forced to change their password.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.loginSecurity.passwordExpirationDays
              error_handler: DISCARD_VALUE
            - type: NOT_MATCHES_REGEX
              parameters:
                - ^null$
              error_handler: DISCARD_VALUE
          master_item:
            key: meraki.get.data
          tags:
            - tag: component
              value: security
        - uuid: e18f69d27fcb4b949d5744aebef97ffb
          name: Policies
          type: DEPENDENT
          key: meraki.policies
          description: 'Meraki adaptive policies count.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.counts.policies
              error_handler: DISCARD_VALUE
          master_item:
            key: meraki.get.adaptive.policy
          tags:
            - tag: component
              value: policy
        - uuid: 8a8369134eff4153aba32d9c435786f3
          name: 'Allow policies'
          type: DEPENDENT
          key: meraki.policies.allow
          description: 'Meraki adaptive allow policies count.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.counts.allowPolicies
              error_handler: DISCARD_VALUE
          master_item:
            key: meraki.get.adaptive.policy
          tags:
            - tag: component
              value: policy
        - uuid: f85b33412a2a41b39c33d64f3c641232
          name: 'Custom ACLs'
          type: DEPENDENT
          key: meraki.policies.custom.acls
          description: 'Meraki adaptive policy custom ACLs count.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.counts.customAcls
              error_handler: DISCARD_VALUE
          master_item:
            key: meraki.get.adaptive.policy
          tags:
            - tag: component
              value: policy
        - uuid: 8b9e13124628460584668dbe5cd1b92b
          name: 'Deny policies'
          type: DEPENDENT
          key: meraki.policies.deny
          description: 'Meraki adaptive deny policies count.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.counts.denyPolicies
              error_handler: DISCARD_VALUE
          master_item:
            key: meraki.get.adaptive.policy
          tags:
            - tag: component
              value: policy
        - uuid: a4918ea4d6954b5f829e5533117c109a
          name: Groups
          type: DEPENDENT
          key: meraki.policies.groups
          description: 'Meraki adaptive policy groups count.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.counts.groups
              error_handler: DISCARD_VALUE
          master_item:
            key: meraki.get.adaptive.policy
          tags:
            - tag: component
              value: policy
      discovery_rules:
        - uuid: 596c6122c6244dee83e3b55e30e4fda0
          name: 'Administrators discovery'
          type: DEPENDENT
          key: meraki.admins.discovery
          filter:
            evaltype: AND
            conditions:
              - macro: '{#ADMIN.NAME}'
                value: '{$MERAKI.ADMIN.NAME.MATCHES}'
              - macro: '{#ADMIN.NAME}'
                value: '{$MERAKI.ADMIN.NAME.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#ADMIN.ORG.ACCESS}'
                value: '{$MERAKI.ADMIN.ORG.ACCESS.MATCHES}'
              - macro: '{#ADMIN.ORG.ACCESS}'
                value: '{$MERAKI.ADMIN.ORG.ACCESS.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
          item_prototypes:
            - uuid: d4d450d2788c4e83af247b647951314b
              name: 'Admin [{#ADMIN.NAME}]: authentication method'
              type: DEPENDENT
              key: 'meraki.admin.account.auth.method[{#ADMIN.ID}]'
              value_type: TEXT
              description: 'Admin''s authentication method.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.authenticationMethod
              master_item:
                key: 'meraki.admin.get[{#ADMIN.ID}]'
              tags:
                - tag: admin
                  value: '{#ADMIN.NAME}'
                - tag: component
                  value: security
            - uuid: 7efd859bb84e47bd84a099686f42ee8b
              name: 'Admin [{#ADMIN.NAME}]: organization access'
              type: DEPENDENT
              key: 'meraki.admin.account.org.access[{#ADMIN.ID}]'
              value_type: TEXT
              description: 'Admin''s level of access to the organization.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.orgAccess
              master_item:
                key: 'meraki.admin.get[{#ADMIN.ID}]'
              tags:
                - tag: admin
                  value: '{#ADMIN.NAME}'
                - tag: component
                  value: security
            - uuid: 58a07f56495943dc9cb58352d919de61
              name: 'Admin [{#ADMIN.NAME}]: account status'
              type: DEPENDENT
              key: 'meraki.admin.account.status[{#ADMIN.ID}]'
              value_type: TEXT
              description: 'Status of the admin''s account.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.accountStatus
              master_item:
                key: 'meraki.admin.get[{#ADMIN.ID}]'
              tags:
                - tag: admin
                  value: '{#ADMIN.NAME}'
                - tag: component
                  value: security
            - uuid: edfa03da4a694111920146d2744884bb
              name: 'Admin [{#ADMIN.NAME}]: 2FA enabled'
              type: DEPENDENT
              key: 'meraki.admin.account.two.factor.auth[{#ADMIN.ID}]'
              description: 'Indicates whether two-factor authentication is enabled.'
              valuemap:
                name: 'Boolean format'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.twoFactorAuthEnabled
                - type: BOOL_TO_DECIMAL
              master_item:
                key: 'meraki.admin.get[{#ADMIN.ID}]'
              tags:
                - tag: admin
                  value: '{#ADMIN.NAME}'
                - tag: component
                  value: security
            - uuid: 6d075eb822f94d8285e358fa330b67fc
              name: 'Admin [{#ADMIN.NAME}]: get data'
              type: DEPENDENT
              key: 'meraki.admin.get[{#ADMIN.ID}]'
              history: '0'
              value_type: TEXT
              description: 'Raw data for admin in this organization.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.adminAccount.[?(@.id == "{#ADMIN.ID}")].first()'
              master_item:
                key: meraki.get.data
              tags:
                - tag: admin
                  value: '{#ADMIN.NAME}'
                - tag: component
                  value: raw
                - tag: component
                  value: security
          master_item:
            key: meraki.get.data
          lld_macro_paths:
            - lld_macro: '{#ADMIN.ID}'
              path: $.id
            - lld_macro: '{#ADMIN.NAME}'
              path: $.name
            - lld_macro: '{#ADMIN.ORG.ACCESS}'
              path: $.orgAccess
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.adminAccount
        - uuid: 961ecce14f274858a6d632ec906c849f
          name: 'License discovery'
          type: DEPENDENT
          key: meraki.license.discovery
          filter:
            evaltype: AND
            conditions:
              - macro: '{#LICENSE.STATE}'
                value: '{$MERAKI.LICENSE.STATE.MATCHES}'
              - macro: '{#LICENSE.STATE}'
                value: '{$MERAKI.LICENSE.STATE.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#LICENSE.TYPE}'
                value: '{$MERAKI.LICENSE.TYPE.MATCHES}'
              - macro: '{#LICENSE.TYPE}'
                value: '{$MERAKI.LICENSE.TYPE.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
          item_prototypes:
            - uuid: 87672962b9e14e69ad63f4d790fd11ad
              name: 'License [{#LICENSE.ID}]: activation date'
              type: DEPENDENT
              key: 'meraki.license.activation.date[{#LICENSE.ID}]'
              value_type: FLOAT
              units: unixtime
              description: 'The date the license started burning.'
              valuemap:
                name: 'License statuses'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.activationDate
                - type: JAVASCRIPT
                  parameters:
                    - 'return truncatedTimestamp = Math.floor(Date.parse(value) / 1000) || -1;'
              master_item:
                key: 'meraki.license.get[{#LICENSE.ID}]'
              tags:
                - tag: component
                  value: license
                - tag: license-type
                  value: '{#LICENSE.TYPE}'
            - uuid: dd9c1d50a4cc448e82affb7de442af8e
              name: 'License [{#LICENSE.ID}]: device name'
              type: DEPENDENT
              key: 'meraki.license.device.name[{#LICENSE.ID}]'
              value_type: CHAR
              description: 'Name of the device the license is assigned to.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.deviceName
              master_item:
                key: 'meraki.license.get[{#LICENSE.ID}]'
              tags:
                - tag: component
                  value: license
                - tag: license-type
                  value: '{#LICENSE.TYPE}'
            - uuid: dc550872241f49ab930aa9bc34614308
              name: 'License [{#LICENSE.ID}]: device serial'
              type: DEPENDENT
              key: 'meraki.license.device.serial[{#LICENSE.ID}]'
              value_type: CHAR
              description: 'Serial number of the device the license is assigned to.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.deviceSerial
              master_item:
                key: 'meraki.license.get[{#LICENSE.ID}]'
              tags:
                - tag: component
                  value: license
                - tag: license-type
                  value: '{#LICENSE.TYPE}'
            - uuid: d8504a68e79344228c612b6afc362cde
              name: 'License [{#LICENSE.ID}]: expiration date'
              type: DEPENDENT
              key: 'meraki.license.expiration.date[{#LICENSE.ID}]'
              value_type: FLOAT
              units: unixtime
              description: 'The date the license will expire.'
              valuemap:
                name: 'License statuses'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.expirationDate
                - type: JAVASCRIPT
                  parameters:
                    - 'return truncatedTimestamp = Math.floor(Date.parse(value) / 1000) || -1;'
              master_item:
                key: 'meraki.license.get[{#LICENSE.ID}]'
              tags:
                - tag: component
                  value: license
                - tag: license-type
                  value: '{#LICENSE.TYPE}'
            - uuid: 544eb99d23134448afd1ea4ff267ef13
              name: 'License [{#LICENSE.ID}]: get data'
              type: DEPENDENT
              key: 'meraki.license.get[{#LICENSE.ID}]'
              history: '0'
              value_type: TEXT
              description: 'Raw data for a license.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.licenses.[?(@.id == "{#LICENSE.ID}")].first()'
              master_item:
                key: meraki.get.list.licenses
              tags:
                - tag: component
                  value: license
                - tag: component
                  value: raw
            - uuid: dde68e22656c4e9e88f89a97984704a8
              name: 'License [{#LICENSE.ID}]: key'
              type: DEPENDENT
              key: 'meraki.license.key[{#LICENSE.ID}]'
              value_type: CHAR
              description: 'License key.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.licenseKey
              master_item:
                key: 'meraki.license.get[{#LICENSE.ID}]'
              tags:
                - tag: component
                  value: license
                - tag: license-type
                  value: '{#LICENSE.TYPE}'
            - uuid: b616fcfc6cd740ec8ec52578d7bc2f8c
              name: 'License [{#LICENSE.ID}]: state'
              type: DEPENDENT
              key: 'meraki.license.state[{#LICENSE.ID}]'
              value_type: CHAR
              description: 'The state of the license. All queued licenses have a status of ''recently queued''.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.state
              master_item:
                key: 'meraki.license.get[{#LICENSE.ID}]'
              tags:
                - tag: component
                  value: license
                - tag: license-type
                  value: '{#LICENSE.TYPE}'
            - uuid: cb07d887e5dc407e91208323394e61a7
              name: 'License [{#LICENSE.ID}]: total duration in days'
              type: DEPENDENT
              key: 'meraki.license.total.duration[{#LICENSE.ID}]'
              value_type: FLOAT
              description: 'The duration of the license plus all permanently queued licenses associated with it.'
              valuemap:
                name: 'License statuses'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.totalDurationInDays
                - type: JAVASCRIPT
                  parameters:
                    - 'return days = Math.floor(value) || -1;'
              master_item:
                key: 'meraki.license.get[{#LICENSE.ID}]'
              tags:
                - tag: component
                  value: license
                - tag: license-type
                  value: '{#LICENSE.TYPE}'
          graph_prototypes:
            - uuid: 302613b208c24c8191d4fccb2d941cbb
              name: 'Meraki: license [{#LICENSE.ID}] date'
              ymin_type_1: FIXED
              graph_items:
                - color: 199C0D
                  item:
                    host: 'Cisco Meraki organization by HTTP'
                    key: 'meraki.license.activation.date[{#LICENSE.ID}]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'Cisco Meraki organization by HTTP'
                    key: 'meraki.license.expiration.date[{#LICENSE.ID}]'
          master_item:
            key: meraki.get.list.licenses
          lld_macro_paths:
            - lld_macro: '{#LICENSE.DEVICE.NAME}'
              path: $.deviceName
            - lld_macro: '{#LICENSE.ID}'
              path: $.id
            - lld_macro: '{#LICENSE.STATE}'
              path: $.state
            - lld_macro: '{#LICENSE.TYPE}'
              path: $.licenseType
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.licenses
        - uuid: c885b8978f284ab98007860de6cadb84
          name: 'Networks discovery'
          type: DEPENDENT
          key: meraki.networks.discovery
          item_prototypes:
            - uuid: fca3d0675bdb42158c20db24a8d2d4ee
              name: 'Network [{#NETWORK.NAME}]: Time zone'
              type: DEPENDENT
              key: 'meraki.network.timezone[{#NETWORK.ID}]'
              value_type: CHAR
              description: 'Timezone of the network.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.networks[?(@.name== ''{#NETWORK.NAME}'' && @.id== ''{#NETWORK.ID}'')].timeZone.first()'
              master_item:
                key: meraki.get.networks
              tags:
                - tag: component
                  value: network
                - tag: network
                  value: '{#NETWORK.NAME}'
          master_item:
            key: meraki.get.networks
          lld_macro_paths:
            - lld_macro: '{#NETWORK.ID}'
              path: $.id
            - lld_macro: '{#NETWORK.NAME}'
              path: $.name
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.networks
        - uuid: fa4eb762c1064723b5f708aff74ed12c
          name: 'SAML roles discovery'
          type: DEPENDENT
          key: meraki.saml.roles.discovery
          filter:
            evaltype: AND
            conditions:
              - macro: '{#SAML.ORG.ACCESS}'
                value: '{$MERAKI.SAML.ORG.ACCESS.MATCHES}'
              - macro: '{#SAML.ORG.ACCESS}'
                value: '{$MERAKI.SAML.ORG.ACCESS.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#SAML.ROLE}'
                value: '{$MERAKI.SAML.ROLE.MATCHES}'
              - macro: '{#SAML.ROLE}'
                value: '{$MERAKI.SAML.ROLE.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
          item_prototypes:
            - uuid: d0f48c88f8c64f8ab1fd1d77aed7f08e
              name: 'SAML role [{#SAML.ROLE}]: get data'
              type: DEPENDENT
              key: 'meraki.saml.get[{#SAML.ID}]'
              history: '0'
              value_type: TEXT
              description: 'Raw data for SAML roles.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.samlRoles.[?(@.id == "{#SAML.ID}")].first()'
              master_item:
                key: meraki.get.data
              tags:
                - tag: component
                  value: raw
            - uuid: f4bf93217d10424fb56d3ff8965d2495
              name: 'SAML role [{#SAML.ROLE}]: organization access'
              type: DEPENDENT
              key: 'meraki.saml.org.access[{#SAML.ID}]'
              value_type: TEXT
              description: 'The privilege of the SAML administrator in the organization.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.orgAccess
              master_item:
                key: 'meraki.saml.get[{#SAML.ID}]'
              tags:
                - tag: saml-role
                  value: '{#SAML.ROLE}'
          master_item:
            key: meraki.get.data
          lld_macro_paths:
            - lld_macro: '{#SAML.ID}'
              path: $.id
            - lld_macro: '{#SAML.ORG.ACCESS}'
              path: $.orgAccess
            - lld_macro: '{#SAML.ROLE}'
              path: $.role
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.samlRoles
        - uuid: 03d6aeb2bc3d473b9aab87acd0e08f8c
          name: 'Uplinks discovery'
          type: DEPENDENT
          key: meraki.uplinks.discovery
          filter:
            evaltype: AND
            conditions:
              - macro: '{#NETWORK.NAME}'
                value: '{$MERAKI.LLD.UPLINK.NETWORK.NAME.MATCHES}'
              - macro: '{#NETWORK.NAME}'
                value: '{$MERAKI.LLD.UPLINK.NETWORK.NAME.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#UPLINK.ROLE}'
                value: '{$MERAKI.LLD.UPLINK.ROLE.MATCHES}'
              - macro: '{#UPLINK.ROLE}'
                value: '{$MERAKI.LLD.UPLINK.ROLE.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
          item_prototypes:
            - uuid: 783a083a49e64c2db1d37e44d28f263b
              name: 'Uplink [{#INTERFACE}]: [{#UPLINK.ROLE}]: [{#NETWORK.NAME}]: Interface'
              type: DEPENDENT
              key: 'meraki.uplink.interface[{#NETWORK.NAME}, {#INTERFACE}, {#UPLINK.ROLE}]'
              value_type: CHAR
              description: 'Network uplink interface.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.uplinks[?(@.networkName== ''{#NETWORK.NAME}'' && @.interface== ''{#INTERFACE}'' && @.role== ''{#UPLINK.ROLE}'' )].interface.first()'
              master_item:
                key: meraki.get.networks
              tags:
                - tag: component
                  value: network
                - tag: component
                  value: uplink
                - tag: interface
                  value: '{#INTERFACE}'
                - tag: network
                  value: '{#NETWORK.NAME}'
                - tag: serial-number
                  value: '{#UPLINK.DEVICE.SERIAL}'
            - uuid: a4026ab15ff34c43a23605b27146376d
              name: 'Uplink [{#INTERFACE}]: [{#UPLINK.ROLE}]: [{#NETWORK.NAME}]: Public IP'
              type: DEPENDENT
              key: 'meraki.uplink.public.ip[{#NETWORK.NAME}, {#INTERFACE}, {#UPLINK.ROLE}]'
              value_type: CHAR
              description: 'Network uplink public IP.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.uplinks[?(@.networkName== ''{#NETWORK.NAME}'' && @.interface== ''{#INTERFACE}'' && @.role== ''{#UPLINK.ROLE}'' )].publicIp.first()'
                - type: NOT_MATCHES_REGEX
                  parameters:
                    - ^null$
                  error_handler: DISCARD_VALUE
              master_item:
                key: meraki.get.networks
              tags:
                - tag: component
                  value: network
                - tag: component
                  value: uplink
                - tag: interface
                  value: '{#INTERFACE}'
                - tag: network
                  value: '{#NETWORK.NAME}'
                - tag: serial-number
                  value: '{#UPLINK.DEVICE.SERIAL}'
            - uuid: 7600f662dd044d1f857a6ffd9898277c
              name: 'Uplink [{#INTERFACE}]: [{#UPLINK.ROLE}]: [{#NETWORK.NAME}]: Status'
              type: DEPENDENT
              key: 'meraki.uplink.status[{#NETWORK.NAME}, {#INTERFACE}, {#UPLINK.ROLE}]'
              description: 'Network uplink status.'
              valuemap:
                name: 'Uplink status'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.uplinks[?(@.networkName== ''{#NETWORK.NAME}'' && @.interface== ''{#INTERFACE}'' && @.role== ''{#UPLINK.ROLE}'' )].status.first()'
                - type: JAVASCRIPT
                  parameters:
                    - |
                      switch (value) {
                      	case 'failed':
                      		return 0
                      	case 'active':
                      		return 1
                      	case 'ready':
                      		return 2
                      	case 'not connected':
                      		return 3
                      	default:
                      		return 10
                      }
              master_item:
                key: meraki.get.networks
              tags:
                - tag: component
                  value: network
                - tag: component
                  value: uplink
                - tag: interface
                  value: '{#INTERFACE}'
                - tag: network
                  value: '{#NETWORK.NAME}'
                - tag: serial-number
                  value: '{#UPLINK.DEVICE.SERIAL}'
              trigger_prototypes:
                - uuid: b1f3cbb8f3024c3f8cd6a8eaf7a5df52
                  expression: 'last(/Cisco Meraki organization by HTTP/meraki.uplink.status[{#NETWORK.NAME}, {#INTERFACE}, {#UPLINK.ROLE}])=0'
                  name: 'Meraki: Uplink [{#INTERFACE}]: [{#UPLINK.ROLE}]: [{#NETWORK.NAME}]: Status is failed'
                  priority: WARNING
                  tags:
                    - tag: scope
                      value: availability
          master_item:
            key: meraki.get.networks
          lld_macro_paths:
            - lld_macro: '{#INTERFACE}'
              path: $.interface
            - lld_macro: '{#NETWORK.NAME}'
              path: $.networkName
            - lld_macro: '{#PRIVATE.IP}'
              path: $.ip
            - lld_macro: '{#PUBLIC.IP}'
              path: $.publicIp
            - lld_macro: '{#UPLINK.DEVICE.SERIAL}'
              path: $.serial
            - lld_macro: '{#UPLINK.ROLE}'
              path: $.role
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.uplinks
        - uuid: 34052749bd3c46fd9083d738ddeee216
          name: 'VPN stats discovery'
          type: DEPENDENT
          key: meraki.vpn.stats.discovery
          filter:
            evaltype: AND
            conditions:
              - macro: '{#NETWORK.NAME}'
                value: '{$MERAKI.LLD.VPN.NETWORK.NAME.MATCHES}'
              - macro: '{#NETWORK.NAME}'
                value: '{$MERAKI.LLD.VPN.NETWORK.NAME.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#PEER.NETWORK.NAME}'
                value: '{$MERAKI.LLD.VPN.PEER.NETWORK.NAME.MATCHES}'
              - macro: '{#PEER.NETWORK.NAME}'
                value: '{$MERAKI.LLD.VPN.PEER.NETWORK.NAME.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#RECEIVER.UPLINK}'
                value: '{$MERAKI.LLD.VPN.RECEIVER.UPLINK.MATCHES}'
              - macro: '{#RECEIVER.UPLINK}'
                value: '{$MERAKI.LLD.VPN.RECEIVER.UPLINK.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#SENDER.UPLINK}'
                value: '{$MERAKI.LLD.VPN.SENDER.UPLINK.MATCHES}'
              - macro: '{#SENDER.UPLINK}'
                value: '{$MERAKI.LLD.VPN.SENDER.UPLINK.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
          item_prototypes:
            - uuid: 6e38c9538ad4489ea08b6d21fc8a8bd3
              name: 'VPN [{#NETWORK.NAME}][{#SENDER.UPLINK}]=>[{#PEER.NETWORK.NAME}][{#RECEIVER.UPLINK}]: jitter avg'
              type: DEPENDENT
              key: 'meraki.vpn.stat.jitter.avg[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}]'
              value_type: FLOAT
              description: 'VPN connection jitter avg.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.avgJitter
              master_item:
                key: 'meraki.vpn.stat.raw[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}]'
              tags:
                - tag: component
                  value: vpn
            - uuid: c676fc71415d4e199f257f165fc56163
              name: 'VPN [{#NETWORK.NAME}][{#SENDER.UPLINK}]=>[{#PEER.NETWORK.NAME}][{#RECEIVER.UPLINK}]: jitter max'
              type: DEPENDENT
              key: 'meraki.vpn.stat.jitter.max[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}]'
              value_type: FLOAT
              description: 'VPN connection jitter max.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.maxJitter
              master_item:
                key: 'meraki.vpn.stat.raw[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}]'
              tags:
                - tag: component
                  value: vpn
            - uuid: c0d392d7ca2b42df9a967ffb2dcfa80d
              name: 'VPN [{#NETWORK.NAME}][{#SENDER.UPLINK}]=>[{#PEER.NETWORK.NAME}][{#RECEIVER.UPLINK}]: jitter min'
              type: DEPENDENT
              key: 'meraki.vpn.stat.jitter.min[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}]'
              value_type: FLOAT
              description: 'VPN connection jitter min.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.minJitter
              master_item:
                key: 'meraki.vpn.stat.raw[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}]'
              tags:
                - tag: component
                  value: vpn
            - uuid: 6f56db10935641b0bf416ae3402ddb17
              name: 'VPN [{#NETWORK.NAME}][{#SENDER.UPLINK}]=>[{#PEER.NETWORK.NAME}][{#RECEIVER.UPLINK}]: latency avg'
              type: DEPENDENT
              key: 'meraki.vpn.stat.latency.avg[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}]'
              value_type: FLOAT
              units: ms
              description: 'VPN connection avg latency.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.avgLatencyMs
              master_item:
                key: 'meraki.vpn.stat.raw[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}]'
              tags:
                - tag: component
                  value: vpn
            - uuid: 626ca25322e9413ca0e5bee2c8760c73
              name: 'VPN [{#NETWORK.NAME}][{#SENDER.UPLINK}]=>[{#PEER.NETWORK.NAME}][{#RECEIVER.UPLINK}]: latency max'
              type: DEPENDENT
              key: 'meraki.vpn.stat.latency.max[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}]'
              value_type: FLOAT
              units: ms
              description: 'VPN connection max latency.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.maxLatencyMs
              master_item:
                key: 'meraki.vpn.stat.raw[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}]'
              tags:
                - tag: component
                  value: vpn
            - uuid: 56a0ea96051a4b45af7db3da1af3e4a4
              name: 'VPN [{#NETWORK.NAME}][{#SENDER.UPLINK}]=>[{#PEER.NETWORK.NAME}][{#RECEIVER.UPLINK}]: latency min'
              type: DEPENDENT
              key: 'meraki.vpn.stat.latency.min[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}]'
              value_type: FLOAT
              units: ms
              description: 'VPN connection min latency.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.minLatencyMs
              master_item:
                key: 'meraki.vpn.stat.raw[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}]'
              tags:
                - tag: component
                  value: vpn
            - uuid: a56018615c9540b58b8b074ccc8a05bd
              name: 'VPN [{#NETWORK.NAME}][{#SENDER.UPLINK}]=>[{#PEER.NETWORK.NAME}][{#RECEIVER.UPLINK}]: loss avg, %'
              type: DEPENDENT
              key: 'meraki.vpn.stat.loss.avg[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}]'
              value_type: FLOAT
              units: '%'
              description: 'VPN connection loss avg.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.avgLossPercentage
              master_item:
                key: 'meraki.vpn.stat.raw[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}]'
              tags:
                - tag: component
                  value: vpn
              trigger_prototypes:
                - uuid: 3e3b9cdada9d451ea4be287bafd03cf4
                  expression: 'count(/Cisco Meraki organization by HTTP/meraki.vpn.stat.loss.avg[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}],#3,,"{$MERAKI.VPN.LOSS.PERCENTILE}")>=3'
                  name: 'Meraki: VPN [{#NETWORK.NAME}][{#SENDER.UPLINK}]=>[{#PEER.NETWORK.NAME}][{#RECEIVER.UPLINK}]: High average VPN connection loss (over >= {$MERAKI.VPN.LOSS.PERCENTILE%)'
                  event_name: 'Meraki: VPN [{#NETWORK.NAME}][{#SENDER.UPLINK}]=>[{#PEER.NETWORK.NAME}][{#RECEIVER.UPLINK}]: High average VPN connection loss (over >= {$MERAKI.VPN.LOSS.PERCENTILE%)'
                  opdata: '{ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  tags:
                    - tag: scope
                      value: availability
            - uuid: 7dccf9e43d944c37934a1dded9999756
              name: 'VPN [{#NETWORK.NAME}][{#SENDER.UPLINK}]=>[{#PEER.NETWORK.NAME}][{#RECEIVER.UPLINK}]: loss max, %'
              type: DEPENDENT
              key: 'meraki.vpn.stat.loss.max[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}]'
              value_type: FLOAT
              units: '%'
              description: 'VPN connection loss max.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.maxLossPercentage
              master_item:
                key: 'meraki.vpn.stat.raw[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}]'
              tags:
                - tag: component
                  value: vpn
            - uuid: eb835ef592a24e43bc918c4299b9f6e7
              name: 'VPN [{#NETWORK.NAME}][{#SENDER.UPLINK}]=>[{#PEER.NETWORK.NAME}][{#RECEIVER.UPLINK}]: loss min, %'
              type: DEPENDENT
              key: 'meraki.vpn.stat.loss.min[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}]'
              value_type: FLOAT
              units: '%'
              description: 'VPN connection loss min.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.minLossPercentage
              master_item:
                key: 'meraki.vpn.stat.raw[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}]'
              tags:
                - tag: component
                  value: vpn
            - uuid: 1f26cdd09e5f45da9e8b0e679faa3425
              name: 'VPN [{#NETWORK.NAME}][{#SENDER.UPLINK}]=>[{#PEER.NETWORK.NAME}][{#RECEIVER.UPLINK}]: mos avg'
              type: DEPENDENT
              key: 'meraki.vpn.stat.mos.avg[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}]'
              value_type: FLOAT
              description: 'VPN connection mos avg.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.avgMos
              master_item:
                key: 'meraki.vpn.stat.raw[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}]'
              tags:
                - tag: component
                  value: vpn
            - uuid: bf28a0ead40046c8b08399775836be4e
              name: 'VPN [{#NETWORK.NAME}][{#SENDER.UPLINK}]=>[{#PEER.NETWORK.NAME}][{#RECEIVER.UPLINK}]: mos max'
              type: DEPENDENT
              key: 'meraki.vpn.stat.mos.max[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}]'
              value_type: FLOAT
              description: 'VPN connection mos max.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.maxMos
              master_item:
                key: 'meraki.vpn.stat.raw[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}]'
              tags:
                - tag: component
                  value: vpn
            - uuid: 9fee72321a23448983bd6cac7803600c
              name: 'VPN [{#NETWORK.NAME}][{#SENDER.UPLINK}]=>[{#PEER.NETWORK.NAME}][{#RECEIVER.UPLINK}]: mos min'
              type: DEPENDENT
              key: 'meraki.vpn.stat.mos.min[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}]'
              value_type: FLOAT
              description: 'VPN connection mos min.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.minMos
              master_item:
                key: 'meraki.vpn.stat.raw[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}]'
              tags:
                - tag: component
                  value: vpn
            - uuid: 2c968e21c8a34c73a17ed0fc4e2756b5
              name: 'VPN [{#NETWORK.NAME}]=>[{#PEER.NETWORK.NAME}]: stats raw'
              type: DEPENDENT
              key: 'meraki.vpn.stat.raw[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}]'
              history: '0'
              value_type: TEXT
              description: 'VPN connection stats raw.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.vpnStats[?(@.networkId==''{#NETWORK.ID}'' && @.senderUplink==''{#SENDER.UPLINK}'' && @.peerNetworkId==''{#PEER.NETWORK.ID}'' && @.receiverUplink==''{#RECEIVER.UPLINK}'')].first()'
              master_item:
                key: meraki.get.vpn.stats
              tags:
                - tag: component
                  value: raw
          graph_prototypes:
            - uuid: 0794dc9d06844ee89099322f60382fc7
              name: 'VPN [{#NETWORK.NAME}][{#SENDER.UPLINK}]=>[{#PEER.NETWORK.NAME}][{#RECEIVER.UPLINK}]: jitter'
              ymin_type_1: FIXED
              graph_items:
                - color: 199C0D
                  item:
                    host: 'Cisco Meraki organization by HTTP'
                    key: 'meraki.vpn.stat.jitter.avg[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'Cisco Meraki organization by HTTP'
                    key: 'meraki.vpn.stat.loss.max[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}]'
                - sortorder: '2'
                  color: 00611C
                  item:
                    host: 'Cisco Meraki organization by HTTP'
                    key: 'meraki.vpn.stat.jitter.min[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}]'
            - uuid: dd05787b5e0e4b4b870258b25c1a0503
              name: 'VPN [{#NETWORK.NAME}][{#SENDER.UPLINK}]=>[{#PEER.NETWORK.NAME}][{#RECEIVER.UPLINK}]: latency'
              ymin_type_1: FIXED
              graph_items:
                - color: 199C0D
                  item:
                    host: 'Cisco Meraki organization by HTTP'
                    key: 'meraki.vpn.stat.latency.avg[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'Cisco Meraki organization by HTTP'
                    key: 'meraki.vpn.stat.latency.max[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}]'
                - sortorder: '2'
                  color: 00611C
                  item:
                    host: 'Cisco Meraki organization by HTTP'
                    key: 'meraki.vpn.stat.latency.min[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}]'
            - uuid: c0ff7a5798cd4aa181223763d8962229
              name: 'VPN [{#NETWORK.NAME}][{#SENDER.UPLINK}]=>[{#PEER.NETWORK.NAME}][{#RECEIVER.UPLINK}]: loss'
              ymin_type_1: FIXED
              graph_items:
                - color: 199C0D
                  item:
                    host: 'Cisco Meraki organization by HTTP'
                    key: 'meraki.vpn.stat.loss.avg[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'Cisco Meraki organization by HTTP'
                    key: 'meraki.vpn.stat.loss.max[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}]'
                - sortorder: '2'
                  color: 00611C
                  item:
                    host: 'Cisco Meraki organization by HTTP'
                    key: 'meraki.vpn.stat.loss.min[{#NETWORK.ID}, {#SENDER.UPLINK}, {#PEER.NETWORK.ID}, {#RECEIVER.UPLINK}]'
          master_item:
            key: meraki.get.vpn.stats
          lld_macro_paths:
            - lld_macro: '{#NETWORK.ID}'
              path: $.networkId
            - lld_macro: '{#NETWORK.NAME}'
              path: $.networkName
            - lld_macro: '{#PEER.NETWORK.ID}'
              path: $.peerNetworkId
            - lld_macro: '{#PEER.NETWORK.NAME}'
              path: $.peerNetworkName
            - lld_macro: '{#RECEIVER.UPLINK}'
              path: $.receiverUplink
            - lld_macro: '{#SENDER.UPLINK}'
              path: $.senderUplink
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.vpnStats
        - uuid: 01fd5c5650524c46acb8950c5e934e68
          name: 'VPN statuses discovery'
          type: DEPENDENT
          key: meraki.vpn.statuses.discovery
          item_prototypes:
            - uuid: 33586435a87a4151b089cd3671e278ec
              name: 'VPN [{#NETWORK.NAME}]: device serial'
              type: DEPENDENT
              key: 'meraki.vpn.statuses.device.serial[{#NETWORK.ID}, {#NETWORK.NAME}]'
              value_type: CHAR
              description: 'VPN network device serial.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.deviceSerial
              master_item:
                key: 'meraki.vpn.statuses.raw[{#NETWORK.ID}, {#NETWORK.NAME}]'
              tags:
                - tag: component
                  value: vpn
            - uuid: 795e7163e5ec498fbef00aa6f90b5d13
              name: 'VPN [{#NETWORK.NAME}]: device status'
              type: DEPENDENT
              key: 'meraki.vpn.statuses.device.status[{#NETWORK.ID}, {#NETWORK.NAME}]'
              value_type: CHAR
              description: 'VPN network device status.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.deviceStatus
              master_item:
                key: 'meraki.vpn.statuses.raw[{#NETWORK.ID}, {#NETWORK.NAME}]'
              tags:
                - tag: component
                  value: vpn
            - uuid: 73e90efe0f0b427a909e0a8bef4d5d38
              name: 'VPN [{#NETWORK.NAME}]: mode'
              type: DEPENDENT
              key: 'meraki.vpn.statuses.mode[{#NETWORK.ID}, {#NETWORK.NAME}]'
              value_type: CHAR
              description: 'VPN network mode.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.vpnMode
              master_item:
                key: 'meraki.vpn.statuses.raw[{#NETWORK.ID}, {#NETWORK.NAME}]'
              tags:
                - tag: component
                  value: vpn
            - uuid: baf0b63913564499a81065ea62cc8d53
              name: 'VPN [{#NETWORK.NAME}]: peers network ID'
              type: DEPENDENT
              key: 'meraki.vpn.statuses.peers.network.id[{#NETWORK.ID}, {#NETWORK.NAME}]'
              value_type: CHAR
              description: 'VPN network ID.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.merakiVpnPeers..networkId.first()
                  error_handler: DISCARD_VALUE
              master_item:
                key: 'meraki.vpn.statuses.raw[{#NETWORK.ID}, {#NETWORK.NAME}]'
              tags:
                - tag: component
                  value: vpn
            - uuid: e6c461828bbd4177a755adba16b2b53b
              name: 'VPN [{#NETWORK.NAME}]: peers network name'
              type: DEPENDENT
              key: 'meraki.vpn.statuses.peers.network.name[{#NETWORK.ID}, {#NETWORK.NAME}]'
              value_type: CHAR
              description: 'VPN network name Meraki VPN peers.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.merakiVpnPeers..networkName.first()
                  error_handler: DISCARD_VALUE
              master_item:
                key: 'meraki.vpn.statuses.raw[{#NETWORK.ID}, {#NETWORK.NAME}]'
              tags:
                - tag: component
                  value: vpn
            - uuid: 712082be91af4e84a7300bd680fc7d41
              name: 'VPN [{#NETWORK.NAME}]: peers network reachability'
              type: DEPENDENT
              key: 'meraki.vpn.statuses.peers.reachability[{#NETWORK.ID}, {#NETWORK.NAME}]'
              value_type: CHAR
              description: 'VPN network Meraki VPN peers reachability.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.merakiVpnPeers..reachability.first()
                  error_handler: DISCARD_VALUE
              master_item:
                key: 'meraki.vpn.statuses.raw[{#NETWORK.ID}, {#NETWORK.NAME}]'
              tags:
                - tag: component
                  value: vpn
            - uuid: 0858c3efa5ea404ca94e05ca43671f05
              name: 'VPN [{#NETWORK.NAME}]: statuses raw'
              type: DEPENDENT
              key: 'meraki.vpn.statuses.raw[{#NETWORK.ID}, {#NETWORK.NAME}]'
              history: '0'
              value_type: TEXT
              description: 'VPN statuses raw.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.vpnStatuses[?(@.networkId==''{#NETWORK.ID}'' && @.networkName==''{#NETWORK.NAME}'')].first()'
              master_item:
                key: meraki.get.vpn.stats
              tags:
                - tag: component
                  value: raw
            - uuid: 2efc18211e414114a0301c6e8b8beda9
              name: 'VPN [{#NETWORK.NAME}]: third-party peers network ID'
              type: DEPENDENT
              key: 'meraki.vpn.statuses.third.party.peers.network.id[{#NETWORK.ID}, {#NETWORK.NAME}]'
              value_type: CHAR
              description: 'Return network ID of the third-party VPN peers for the organization.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.thirdPartyVpnPeers..networkId.first()
                  error_handler: DISCARD_VALUE
              master_item:
                key: 'meraki.vpn.statuses.raw[{#NETWORK.ID}, {#NETWORK.NAME}]'
              tags:
                - tag: component
                  value: vpn
            - uuid: 0b5fd0a0419e4a38bb27a0b5b3b73301
              name: 'VPN [{#NETWORK.NAME}]: third-party peers network name'
              type: DEPENDENT
              key: 'meraki.vpn.statuses.third.party.peers.network.name[{#NETWORK.ID},  {#NETWORK.NAME}]'
              value_type: CHAR
              description: 'Return network name of the third-party VPN peers for the organization.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.thirdPartyVpnPeers..networkName.first()
                  error_handler: DISCARD_VALUE
              master_item:
                key: 'meraki.vpn.statuses.raw[{#NETWORK.ID}, {#NETWORK.NAME}]'
              tags:
                - tag: component
                  value: vpn
            - uuid: 45e79c2918094fa5860d425d99e82201
              name: 'VPN [{#NETWORK.NAME}]: third-party peers network reachability'
              type: DEPENDENT
              key: 'meraki.vpn.statuses.third.party.peers.reachability[{#NETWORK.ID}, {#NETWORK.NAME}]'
              value_type: CHAR
              description: 'Return network reachability of the third-party VPN peers for the organization.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.thirdPartyVpnPeers..reachability.first()
                  error_handler: DISCARD_VALUE
              master_item:
                key: 'meraki.vpn.statuses.raw[{#NETWORK.ID}, {#NETWORK.NAME}]'
              tags:
                - tag: component
                  value: vpn
          master_item:
            key: meraki.get.vpn.stats
          lld_macro_paths:
            - lld_macro: '{#NETWORK.ID}'
              path: $.networkId
            - lld_macro: '{#NETWORK.NAME}'
              path: $.networkName
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.vpnStatuses
      tags:
        - tag: class
          value: cloud
        - tag: class
          value: network
        - tag: subclass
          value: camera
        - tag: subclass
          value: firewall
        - tag: subclass
          value: modem
        - tag: subclass
          value: security
        - tag: target
          value: cisco-meraki-dashboard
      macros:
        - macro: '{$MERAKI.ADMIN.NAME.MATCHES}'
          value: '.*'
          description: 'Filter of discoverable admins in organization.'
          config:
            type: TEXT
            priority: '16'
            section_name: Filters
            label: 'Admin name filter (include)'
            description: 'Filter of discoverable admins in organization.'
        - macro: '{$MERAKI.ADMIN.NAME.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          description: 'Filter to exclude discovered admins in organization.'
          config:
            type: TEXT
            priority: '17'
            section_name: Filters
            label: 'Admin name filter (exclude)'
            description: 'Filter to exclude discovered admins in organization.'
        - macro: '{$MERAKI.ADMIN.ORG.ACCESS.MATCHES}'
          value: '.*'
          description: 'Filter of discoverable admins in organization.'
          config:
            type: TEXT
            priority: '18'
            section_name: Filters
            label: 'Admin organization access filter (include)'
            description: 'Filter of discoverable admins in organization.'
        - macro: '{$MERAKI.ADMIN.ORG.ACCESS.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          description: 'Filter to exclude discovered admins in organization.'
          config:
            type: TEXT
            priority: '19'
            section_name: Filters
            label: 'Admin organization access filter (exclude)'
            description: 'Filter to exclude discovered admins in organization.'
        - macro: '{$MERAKI.API.URL}'
          value: api.meraki.com/api/v1
          description: 'Cisco Meraki dashboard API URL, e.g., api.meraki.com/api/v1'
          config:
            type: TEXT
            priority: '2'
            label: 'Meraki API URL'
            description: 'Cisco Meraki dashboard API URL, e.g., api.meraki.com/api/v1'
            required: 'YES'
        - macro: '{$MERAKI.CONFIG.CHANGE.TIMESPAN}'
          value: '1200'
          description: 'Timespan in seconds for gathering configuration change log. Used in the metric configuration and in the URL query.'
          config:
            type: TEXT
            priority: '6'
            section_name: Other
            label: 'Timespan for config change log'
            description: 'Timespan in seconds for gathering configuration change log. Used in the metric configuration and in the URL query.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$MERAKI.DATA.TIMEOUT}'
          value: '60'
          description: 'Response timeout for an API.'
          config:
            type: TEXT
            priority: '3'
            section_name: Other
            label: 'API response timeout'
            description: 'Response timeout for an API.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$MERAKI.HTTP_PROXY}'
          description: 'HTTP proxy for API requests. You can specify it using the format [protocol://][username[:password]@]proxy.example.com[:port]. See documentation at https://www.zabbix.com/documentation/8.0/manual/config/items/itemtypes/http'
          config:
            type: TEXT
            priority: '20'
            section_name: Other
            label: 'HTTP proxy'
            description: 'HTTP proxy for API requests. You can specify it using the format [protocol://][username[:password]@]proxy.example.com[:port]. See documentation at https://www.zabbix.com/documentation/8.0/manual/config/items/itemtypes/http'
        - macro: '{$MERAKI.LICENSE.EXPIRE}'
          value: '86400'
          description: 'Time in seconds for license to expire.'
          config:
            type: TEXT
            priority: '4'
            section_name: Other
            label: 'License expiry time'
            description: 'Time in seconds for license to expire.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$MERAKI.LICENSE.STATE.MATCHES}'
          value: '.*'
          description: 'Filter of discoverable license.'
          config:
            type: TEXT
            priority: '10'
            section_name: Filters
            label: 'License state filter (include)'
            description: 'Filter of discoverable license.'
        - macro: '{$MERAKI.LICENSE.STATE.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          description: 'Filter to exclude discovered license.'
          config:
            type: TEXT
            priority: '11'
            section_name: Filters
            label: 'License state filter (exclude)'
            description: 'Filter to exclude discovered license.'
        - macro: '{$MERAKI.LICENSE.TYPE.MATCHES}'
          value: '.*'
          description: 'Filter of discoverable license.'
          config:
            type: TEXT
            priority: '8'
            section_name: Filters
            label: 'License type filter (include)'
            description: 'Filter of discoverable license.'
        - macro: '{$MERAKI.LICENSE.TYPE.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          description: 'Filter to exclude discovered license.'
          config:
            type: TEXT
            priority: '9'
            section_name: Filters
            label: 'License type filter (exclude)'
            description: 'Filter to exclude discovered license.'
        - macro: '{$MERAKI.LLD.UPLINK.NETWORK.NAME.MATCHES}'
          value: '.*'
          description: 'This macro is used in uplinks discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '21'
            section_name: Filters
            label: 'Uplink network name filter (include)'
            description: 'This macro is used in uplinks discovery. Can be overridden on the host or linked template level.'
        - macro: '{$MERAKI.LLD.UPLINK.NETWORK.NAME.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          description: 'This macro is used in uplinks discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '22'
            section_name: Filters
            label: 'Uplink network name filter (exclude)'
            description: 'This macro is used in uplinks discovery. Can be overridden on the host or linked template level.'
        - macro: '{$MERAKI.LLD.UPLINK.ROLE.MATCHES}'
          value: '.*'
          description: 'This macro is used in uplinks discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '23'
            section_name: Filters
            label: 'Uplink role filter (include)'
            description: 'This macro is used in uplinks discovery. Can be overridden on the host or linked template level.'
        - macro: '{$MERAKI.LLD.UPLINK.ROLE.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          description: 'This macro is used in uplinks discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '24'
            section_name: Filters
            label: 'Uplink role filter (exclude)'
            description: 'This macro is used in uplinks discovery. Can be overridden on the host or linked template level.'
        - macro: '{$MERAKI.LLD.VPN.NETWORK.NAME.MATCHES}'
          value: '.*'
          description: 'This macro is used in VPN stats discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '25'
            section_name: Filters
            label: 'VPN network name filter (include)'
            description: 'This macro is used in VPN stats discovery. Can be overridden on the host or linked template level.'
        - macro: '{$MERAKI.LLD.VPN.NETWORK.NAME.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          description: 'This macro is used in VPN stats discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '26'
            section_name: Filters
            label: 'VPN network name filter (exclude)'
            description: 'This macro is used in VPN stats discovery. Can be overridden on the host or linked template level.'
        - macro: '{$MERAKI.LLD.VPN.PEER.NETWORK.NAME.MATCHES}'
          value: '.*'
          description: 'This macro is used in VPN stats discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '27'
            section_name: Filters
            label: 'VPN peer network name filter (include)'
            description: 'This macro is used in VPN stats discovery. Can be overridden on the host or linked template level.'
        - macro: '{$MERAKI.LLD.VPN.PEER.NETWORK.NAME.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          description: 'This macro is used in VPN stats discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '28'
            section_name: Filters
            label: 'VPN peer network name filter (exclude)'
            description: 'This macro is used in VPN stats discovery. Can be overridden on the host or linked template level.'
        - macro: '{$MERAKI.LLD.VPN.RECEIVER.UPLINK.MATCHES}'
          value: '.*'
          description: 'This macro is used in VPN stats discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '31'
            section_name: Filters
            label: 'VPN receiver uplink filter (include)'
            description: 'This macro is used in VPN stats discovery. Can be overridden on the host or linked template level.'
        - macro: '{$MERAKI.LLD.VPN.RECEIVER.UPLINK.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          description: 'This macro is used in VPN stats discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '32'
            section_name: Filters
            label: 'VPN receiver uplink filter (exclude)'
            description: 'This macro is used in VPN stats discovery. Can be overridden on the host or linked template level.'
        - macro: '{$MERAKI.LLD.VPN.SENDER.UPLINK.MATCHES}'
          value: '.*'
          description: 'This macro is used in VPN stats discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '29'
            section_name: Filters
            label: 'VPN sender uplink filter (include)'
            description: 'This macro is used in VPN stats discovery. Can be overridden on the host or linked template level.'
        - macro: '{$MERAKI.LLD.VPN.SENDER.UPLINK.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          description: 'This macro is used in VPN stats discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '30'
            section_name: Filters
            label: 'VPN sender uplink filter (exclude)'
            description: 'This macro is used in VPN stats discovery. Can be overridden on the host or linked template level.'
        - macro: '{$MERAKI.SAML.ORG.ACCESS.MATCHES}'
          value: '.*'
          description: 'Filter of discoverable SAML role.'
          config:
            type: TEXT
            priority: '12'
            section_name: Filters
            label: 'SAML organization access filter (include)'
            description: 'Filter of discoverable SAML role.'
        - macro: '{$MERAKI.SAML.ORG.ACCESS.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          description: 'Filter to exclude discovered SAML role.'
          config:
            type: TEXT
            priority: '13'
            section_name: Filters
            label: 'SAML organization access filter (exclude)'
            description: 'Filter to exclude discovered SAML role.'
        - macro: '{$MERAKI.SAML.ROLE.MATCHES}'
          value: '.*'
          description: 'Filter of discoverable SAML role.'
          config:
            type: TEXT
            priority: '14'
            section_name: Filters
            label: 'SAML role filter (include)'
            description: 'Filter of discoverable SAML role.'
        - macro: '{$MERAKI.SAML.ROLE.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          description: 'Filter to exclude discovered SAML role.'
          config:
            type: TEXT
            priority: '15'
            section_name: Filters
            label: 'SAML role filter (exclude)'
            description: 'Filter to exclude discovered SAML role.'
        - macro: '{$MERAKI.TOKEN}'
          type: SECRET_TEXT
          description: 'Cisco Meraki dashboard API token.'
          config:
            type: TEXT
            priority: '1'
            label: 'Meraki API token'
            description: 'Cisco Meraki dashboard API token.'
            required: 'YES'
        - macro: '{$MERAKI.VPN.LOSS.PERCENTILE}'
          value: '90'
          description: 'Average VPN connection loss percentage. Used in the trigger expression'
          config:
            type: TEXT
            priority: '5'
            section_name: Thresholds
            label: 'Avg. VPN loss (%)'
            description: 'Average VPN connection loss percentage. Used in the trigger expression In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$MERAKI.VPN.STATS.TIMESPAN}'
          value: '180'
          description: 'Timespan in seconds for getting organization appliance VPN stats. Used in the metric configuration and in the JavaScript API query. Must be between 1 and 86400 seconds.'
          config:
            type: TEXT
            priority: '7'
            section_name: Other
            label: 'Timespan for VPN stats'
            description: 'Timespan in seconds for getting organization appliance VPN stats. Used in the metric configuration and in the JavaScript API query. Must be between 1 and 86400 seconds.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
      dashboards:
        - uuid: 2d10effbfff447f6937877f25d12646a
          name: 'Meraki: General'
          pages:
            - name: 'Meraki: VPN stats'
              widgets:
                - type: graphprototype
                  name: latency
                  width: '36'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'Cisco Meraki organization by HTTP'
                        name: 'VPN [{#NETWORK.NAME}][{#SENDER.UPLINK}]=>[{#PEER.NETWORK.NAME}][{#RECEIVER.UPLINK}]: latency'
                    - type: STRING
                      name: reference
                      value: AAAAA
                - type: graphprototype
                  name: loss
                  'y': '5'
                  width: '36'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'Cisco Meraki organization by HTTP'
                        name: 'VPN [{#NETWORK.NAME}][{#SENDER.UPLINK}]=>[{#PEER.NETWORK.NAME}][{#RECEIVER.UPLINK}]: jitter'
                    - type: STRING
                      name: reference
                      value: AAAAC
                - type: graphprototype
                  name: loss
                  x: '36'
                  width: '36'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'Cisco Meraki organization by HTTP'
                        name: 'VPN [{#NETWORK.NAME}][{#SENDER.UPLINK}]=>[{#PEER.NETWORK.NAME}][{#RECEIVER.UPLINK}]: loss'
                    - type: STRING
                      name: reference
                      value: AAAAB
            - name: 'Meraki: License'
              widgets:
                - type: graphprototype
                  name: latency
                  width: '36'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'Cisco Meraki organization by HTTP'
                        name: 'Meraki: license [{#LICENSE.ID}] date'
                    - type: STRING
                      name: reference
                      value: AAAAD
      valuemaps:
        - uuid: ec79f04ded684421b644b38500fe8b26
          name: 'Boolean format'
          mappings:
            - value: '0'
              newvalue: 'False'
            - value: '1'
              newvalue: 'True'
        - uuid: af92df09c58c4c9287fe294b7b90e193
          name: 'License status'
          mappings:
            - value: '0'
              newvalue: 'License required'
            - value: '1'
              newvalue: OK
            - value: '10'
              newvalue: unknown
        - uuid: ba834580763b481a8800a0323fa61327
          name: 'License statuses'
          mappings:
            - value: '-1'
              newvalue: 'null'
        - uuid: e16992443a614d81a7f4186622709971
          name: 'Uplink status'
          mappings:
            - value: '0'
              newvalue: failed
            - value: '1'
              newvalue: active
            - value: '2'
              newvalue: ready
            - value: '3'
              newvalue: 'not connected'
            - value: '10'
              newvalue: unknown
    - uuid: be10b1140fce4cc08247260b71bcd037
      template: 'HPE MSA 2040 Storage by HTTP'
      name: 'HPE MSA 2040 Storage by HTTP'
      description: |
        The template to monitor HPE MSA 2040 by HTTP.
        It works without any external scripts and uses the script item.
        
        Setup:
        1. Create a user with a monitor role on the storage, for example "zabbix".
        2. Link the template to a host.
        3. Set the hostname or IP address of the host in the {$HPE.MSA.API.HOST} macro and configure the username and password in the {$HPE.MSA.API.USERNAME} and {$HPE.MSA.API.PASSWORD} macros.
        4. Change the {$HPE.MSA.API.SCHEME} and {$HPE.MSA.API.PORT} macros if needed.
        
        You can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback
        
        Generated by official Zabbix template tool "Templator"
      wizard_ready: 'YES'
      readme: |
        ## Overview
        
        The template to monitor HPE MSA 2040 by HTTP.
        It works without any external scripts and uses the script item.
        
        ## Setup
        
        1. Create a user with a monitor role on the storage, for example "zabbix".
        2. Link the template to a host.
        3. Set the hostname or IP address of the host in the `Address` and configure the username and password in the `Username` and `Password` host wizard configuration fields.
        4. Change the `Scheme` and `Port` if needed.
      vendor:
        name: Zabbix
        version: 8.0-1
      groups:
        - name: Templates/SAN
      items:
        - uuid: da724e20acee406b8dce3a1be24945a8
          name: 'Get disk group statistics'
          type: DEPENDENT
          key: hpe.msa.disks.get.groups.statistics
          history: '0'
          value_type: TEXT
          description: 'Disk groups statistics data.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.[''disk-group-statistics'']'
              error_handler: DISCARD_VALUE
          master_item:
            key: hpe.msa.get.data
          tags:
            - tag: component
              value: raw
        - uuid: 4a9a463f471c4c3bba031acab3c4d72e
          name: 'Get controllers'
          type: DEPENDENT
          key: hpe.msa.get.controllers
          history: '0'
          value_type: TEXT
          description: 'Controllers data.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.[''controllers'']'
              error_handler: DISCARD_VALUE
          master_item:
            key: hpe.msa.get.data
          tags:
            - tag: component
              value: raw
        - uuid: 54c0f623616a4f5c9505c0ae0ff6a85b
          name: 'Get controller statistics'
          type: DEPENDENT
          key: hpe.msa.get.controller_statistics
          history: '0'
          value_type: TEXT
          description: 'Controllers statistics data.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.[''controller-statistics'']'
              error_handler: DISCARD_VALUE
          master_item:
            key: hpe.msa.get.data
          tags:
            - tag: component
              value: raw
        - uuid: e07e09dbcdd44f509a06343c9a53a455
          name: 'Get data'
          type: SCRIPT
          key: hpe.msa.get.data
          history: '0'
          value_type: TEXT
          params: |
            var params = JSON.parse(value),
            	fields = ['username', 'password', 'base_url'],
            	methods = [
            		'system',
            		'controllers',
            		'controller-statistics',
            		'frus',
            		'disk-groups',
            		'disk-group-statistics',
            		'disks',
            		'enclosures',
            		'fans',
            		'pools',
            		'ports',
            		'power-supplies',
            		'volumes',
            		'volume-statistics'
            	],
            	data_tmp = {},
            	result_tmp = {},
            	session_key,
            	data = {};
            
            fields.forEach(function (field) {
            	if (typeof params !== 'object' || typeof params[field] === 'undefined' || params[field] === '') {
            		throw 'Required param is not set: "' + field + '".';
            	}
            });
            
            if (!params.base_url.endsWith('/')) {
            	params.base_url += '/';
            }
            
            var response, request = new HttpRequest();
            request.addHeader('datatype: xml');
            
            auth_string = md5(params.username + '_' + params.password);
            response = request.get(params.base_url + 'api/login/' + auth_string);
            
            if (request.getStatus() < 200 || request.getStatus() >= 300) {
            	throw 'Authentication request has failed with status code ' + request.getStatus() + ': ' + response;
            }
            
            if (response !== null) {
            	try {
            		session_key = XML.query(response, '/RESPONSE/OBJECT/PROPERTY[@name="response"]/text()');
            		return_code = XML.query(response, '/RESPONSE/OBJECT/PROPERTY[@name="return-code"]/text()');
            	}
            	catch (error) {
            		throw 'Failed to parse authentication response received from device API.';
            	}
            }
            
            if (return_code != '1') {
            	throw 'Authentication failed.';
            }
            else if (session_key === '') {
            	throw 'Failed to retrieve session key from authentication response.';
            }
            
            request.clearHeader();
            request.addHeader('sessionKey: ' + session_key);
            request.addHeader('datatype: api-embed');
            
            data.errors = [];
            
            methods.forEach(function (method) {
            	response = request.get(params.base_url + 'api/show/' + method);
            	method_error = '';
            
            	if (request.getStatus() < 200 || request.getStatus() >= 300) {
            		method_error = 'Method: ' + method + '. Request has failed with status code ' + request.getStatus() + ': ' + response;
            		data.errors.push(method_error);
            		return;
            	}
            
            	if (response !== null) {
            		try {
            			result_tmp = JSON.parse(XML.toJson(response));
            			data[method] = [];
            
            			result_tmp.RESPONSE.OBJECT.forEach(function (object) {
            				var data_tmp = {};
            
            				if (object['@basetype'] !== 'status' && object['@basetype'] !== 'enclosure-sku') {
            					object.PROPERTY.forEach(function (property) {
            						name = property['@name'];
            						value = property['#text'] || '';
            						data_tmp[name] = value;
            					});
            
            					if (method == 'controller-statistics') {
            						data_tmp['durable-id'] = data_tmp['durable-id'].toLowerCase();
            					}
            
            					data[method].push(data_tmp);
            				}
            			});
            		}
            		catch (error) {
            			method_error = 'Method: ' + method + '. Failed to parse response received from device API.';
            		}
            	}
            	else {
            		method_error = 'Method: ' + method + '. No data received by request.';
            	}
            
            	if (method_error.length > 0) {
            		data.errors.push(method_error);
            	}
            });
            
            if (data.errors.length == 0) {
            	data.errors = '';
            }
            
            response = request.get(params.base_url + 'api/exit');
            
            if (request.getStatus() < 200 || request.getStatus() >= 300) {
            	throw 'Logout request failed with status code ' + request.getStatus() + ': ' + response;
            }
            
            return JSON.stringify(data);
          description: 'The JSON with result of API requests.'
          timeout: '{$HPE.MSA.DATA.TIMEOUT}'
          parameters:
            - name: base_url
              value: '{$HPE.MSA.API.SCHEME}://{$HPE.MSA.API.HOST}:{$HPE.MSA.API.PORT}/'
            - name: password
              value: '{$HPE.MSA.API.PASSWORD}'
            - name: username
              value: '{$HPE.MSA.API.USERNAME}'
          tags:
            - tag: component
              value: raw
        - uuid: d4c534635bb74c2e8db99d68df6f9da2
          name: 'Get disks'
          type: DEPENDENT
          key: hpe.msa.get.disks
          history: '0'
          value_type: TEXT
          description: 'Disks data.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.[''disks'']'
              error_handler: DISCARD_VALUE
          master_item:
            key: hpe.msa.get.data
          tags:
            - tag: component
              value: raw
        - uuid: 3dc7a4c4e70c48f995d7d65c1652198a
          name: 'Get disk groups'
          type: DEPENDENT
          key: hpe.msa.get.disks.groups
          history: '0'
          value_type: TEXT
          description: 'Disk groups data.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.[''disk-groups'']'
              error_handler: DISCARD_VALUE
          master_item:
            key: hpe.msa.get.data
          tags:
            - tag: component
              value: raw
        - uuid: 2e94a9c8fe5f4d6c90458b13cf1f6d64
          name: 'Get enclosures'
          type: DEPENDENT
          key: hpe.msa.get.enclosures
          history: '0'
          value_type: TEXT
          description: 'Enclosures data.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.[''enclosures'']'
              error_handler: DISCARD_VALUE
          master_item:
            key: hpe.msa.get.data
          tags:
            - tag: component
              value: raw
        - uuid: 51d0ae1b4663471d868c27ccd2fb4fed
          name: 'Get method errors'
          type: DEPENDENT
          key: hpe.msa.get.errors
          value_type: TEXT
          description: 'A list of method errors from API requests.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.[''errors'']'
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          master_item:
            key: hpe.msa.get.data
          tags:
            - tag: component
              value: errors
          triggers:
            - uuid: 7f80562a0b4f4329be454c418de3f517
              expression: 'length(last(/HPE MSA 2040 Storage by HTTP/hpe.msa.get.errors))>0'
              name: 'HPE MSA 2040 Storage: There are errors in method requests to API'
              priority: AVERAGE
              description: 'There are errors in method requests to API.'
              dependencies:
                - name: 'HPE MSA 2040 Storage: Service is down or unavailable'
                  expression: 'max(/HPE MSA 2040 Storage by HTTP/net.tcp.service["{$HPE.MSA.API.SCHEME}","{$HPE.MSA.API.HOST}","{$HPE.MSA.API.PORT}"],5m)=0'
              tags:
                - tag: scope
                  value: availability
        - uuid: 2b356e770025451e94e899123a2efc1b
          name: 'Get fans'
          type: DEPENDENT
          key: hpe.msa.get.fans
          history: '0'
          value_type: TEXT
          description: 'Fans data.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.[''fans'']'
              error_handler: DISCARD_VALUE
          master_item:
            key: hpe.msa.get.data
          tags:
            - tag: component
              value: raw
        - uuid: ae00d12bb47e4c25b79a47ca8dc49538
          name: 'Get FRU'
          type: DEPENDENT
          key: hpe.msa.get.fru
          history: '0'
          value_type: TEXT
          description: 'FRU data.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.[''frus'']'
              error_handler: DISCARD_VALUE
          master_item:
            key: hpe.msa.get.data
          tags:
            - tag: component
              value: raw
        - uuid: 3151c9e9e3bf4e6c9305848cfd2c77c5
          name: 'Get pools'
          type: DEPENDENT
          key: hpe.msa.get.pools
          history: '0'
          value_type: TEXT
          description: 'Pools data.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.[''pools'']'
              error_handler: DISCARD_VALUE
          master_item:
            key: hpe.msa.get.data
          tags:
            - tag: component
              value: raw
        - uuid: 2c4012cbf947439f8938b9d432257067
          name: 'Get ports'
          type: DEPENDENT
          key: hpe.msa.get.ports
          history: '0'
          value_type: TEXT
          description: 'Ports data.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.[''ports'']'
              error_handler: DISCARD_VALUE
          master_item:
            key: hpe.msa.get.data
          tags:
            - tag: component
              value: raw
        - uuid: a24264fada444ed68f48d8b2ff17ab15
          name: 'Get power supplies'
          type: DEPENDENT
          key: hpe.msa.get.power_supplies
          history: '0'
          value_type: TEXT
          description: 'Power supplies data.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.[''power-supplies'']'
              error_handler: DISCARD_VALUE
          master_item:
            key: hpe.msa.get.data
          tags:
            - tag: component
              value: raw
        - uuid: f9ec5e52bf22476d997c9ec5c445f11b
          name: 'Get system'
          type: DEPENDENT
          key: hpe.msa.get.system
          history: '0'
          value_type: TEXT
          description: 'The system data.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.system[0]'
              error_handler: DISCARD_VALUE
          master_item:
            key: hpe.msa.get.data
          tags:
            - tag: component
              value: raw
        - uuid: e67d5b42bf1b431ab9b1659377195d82
          name: 'Get volumes'
          type: DEPENDENT
          key: hpe.msa.get.volumes
          history: '0'
          value_type: TEXT
          description: 'Volumes data.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.[''volumes'']'
              error_handler: DISCARD_VALUE
          master_item:
            key: hpe.msa.get.data
          tags:
            - tag: component
              value: raw
        - uuid: d6ef8a24c09a478c817a1a7121bd383f
          name: 'Get volume statistics'
          type: DEPENDENT
          key: hpe.msa.get.volumes.statistics
          history: '0'
          value_type: TEXT
          description: 'Volumes statistics data.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.[''volume-statistics'']'
              error_handler: DISCARD_VALUE
          master_item:
            key: hpe.msa.get.data
          tags:
            - tag: component
              value: raw
        - uuid: 802692ec1429407a8bbb55e338959c0b
          name: 'System contact'
          type: DEPENDENT
          key: hpe.msa.system.contact
          value_type: CHAR
          description: 'The name of the person who administers the system.'
          inventory_link: CONTACT
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.[''system-contact'']'
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          master_item:
            key: hpe.msa.get.system
          tags:
            - tag: component
              value: system
        - uuid: 4516edee03084515bcf139c22abc4c7c
          name: 'System health'
          type: DEPENDENT
          key: hpe.msa.system.health
          description: 'System health status.'
          valuemap:
            name: Health
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.[''health-numeric'']'
              error_handler: CUSTOM_VALUE
              error_handler_params: '4'
          master_item:
            key: hpe.msa.get.system
          tags:
            - tag: component
              value: health
            - tag: component
              value: system
          triggers:
            - uuid: ee37a443b22a4161a88014a0c32dfdfa
              expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.system.health)=1'
              name: 'HPE MSA 2040 Storage: System health is in degraded state'
              priority: WARNING
              description: 'System health is in degraded state.'
              tags:
                - tag: scope
                  value: performance
            - uuid: 54472b6cdf84418baf10b4a7d5e16e5c
              expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.system.health)=2'
              name: 'HPE MSA 2040 Storage: System health is in fault state'
              priority: AVERAGE
              description: 'System health is in fault state.'
              tags:
                - tag: scope
                  value: availability
            - uuid: ccb821dafad1404dbc1873561a69b7cc
              expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.system.health)=3'
              name: 'HPE MSA 2040 Storage: System health is in unknown state'
              priority: INFO
              description: 'System health is in unknown state.'
              tags:
                - tag: scope
                  value: notice
        - uuid: 6b82f7545a334f9cad752bd18f8886bc
          name: 'System information'
          type: DEPENDENT
          key: hpe.msa.system.info
          value_type: CHAR
          description: 'A brief description of what the system is used for or how it is configured.'
          inventory_link: NOTES
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.[''system-information'']'
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          master_item:
            key: hpe.msa.get.system
          tags:
            - tag: component
              value: system
        - uuid: c5f082947e844adbbcf2982ad9c0c76e
          name: 'System location'
          type: DEPENDENT
          key: hpe.msa.system.location
          value_type: CHAR
          description: 'The location of the system.'
          inventory_link: LOCATION
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.[''system-location'']'
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          master_item:
            key: hpe.msa.get.system
          tags:
            - tag: component
              value: system
        - uuid: 419165bfe80f46f7af1c5d6ab46c1f14
          name: 'System name'
          type: DEPENDENT
          key: hpe.msa.system.name
          value_type: CHAR
          description: 'The name of the storage system.'
          inventory_link: NAME
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.[''system-name'']'
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          master_item:
            key: hpe.msa.get.system
          tags:
            - tag: component
              value: system
        - uuid: 79c87a81895f46658f2e902cf7166860
          name: 'Product ID'
          type: DEPENDENT
          key: hpe.msa.system.product_id
          value_type: CHAR
          description: 'The product model identifier.'
          inventory_link: MODEL
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.[''product-id'']'
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          master_item:
            key: hpe.msa.get.system
          tags:
            - tag: component
              value: system
        - uuid: 947bb21483e747c9ad13b995b79289c0
          name: 'Vendor name'
          type: DEPENDENT
          key: hpe.msa.system.vendor_name
          value_type: CHAR
          description: 'The vendor name.'
          inventory_link: VENDOR
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.[''vendor-name'']'
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          master_item:
            key: hpe.msa.get.system
          tags:
            - tag: component
              value: system
        - uuid: d1242f5aede14008ae6896123bb944a5
          name: 'Service ping'
          type: SIMPLE
          key: 'net.tcp.service["{$HPE.MSA.API.SCHEME}","{$HPE.MSA.API.HOST}","{$HPE.MSA.API.PORT}"]'
          description: 'Check if HTTP/HTTPS service accepts TCP connections.'
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
          tags:
            - tag: component
              value: health
            - tag: component
              value: network
          triggers:
            - uuid: b8d07373a0fb4051a0534891b255994a
              expression: 'max(/HPE MSA 2040 Storage by HTTP/net.tcp.service["{$HPE.MSA.API.SCHEME}","{$HPE.MSA.API.HOST}","{$HPE.MSA.API.PORT}"],5m)=0'
              name: 'HPE MSA 2040 Storage: Service is down or unavailable'
              priority: HIGH
              description: 'HTTP/HTTPS service is down or unable to establish TCP connection.'
              tags:
                - tag: scope
                  value: availability
      discovery_rules:
        - uuid: 66eabcbe564644dea3427afcbf76b87c
          name: 'Controllers discovery'
          type: DEPENDENT
          key: hpe.msa.controllers.discovery
          description: 'Discover controllers.'
          item_prototypes:
            - uuid: 53b0ea51add74c629814c881ac824d1b
              name: 'Controller [{#CONTROLLER.ID}]: Cache: Read hits, rate'
              type: DEPENDENT
              key: 'hpe.msa.controllers.cache.read.hits["{#CONTROLLER.ID}",rate]'
              description: 'For the controller that owns the volume, the number of times the block to be read is found in cache per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''read-cache-hits'']'
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]'
              tags:
                - tag: component
                  value: controller
                - tag: controller
                  value: '{#CONTROLLER.ID}'
            - uuid: 23ed270bc823484cb514600bf23b2aa5
              name: 'Controller [{#CONTROLLER.ID}]: Cache: Read misses, rate'
              type: DEPENDENT
              key: 'hpe.msa.controllers.cache.read.misses["{#CONTROLLER.ID}",rate]'
              description: 'For the controller that owns the volume, the number of times the block to be read is not found in cache per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''read-cache-misses'']'
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]'
              tags:
                - tag: component
                  value: controller
                - tag: controller
                  value: '{#CONTROLLER.ID}'
            - uuid: 71a92c76ae7740cd9e58ea337f4a75e3
              name: 'Controller [{#CONTROLLER.ID}]: Cache: Write hits, rate'
              type: DEPENDENT
              key: 'hpe.msa.controllers.cache.write.hits["{#CONTROLLER.ID}",rate]'
              description: 'For the controller that owns the volume, the number of times the block written to is found in cache per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''write-cache-hits'']'
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]'
              tags:
                - tag: component
                  value: controller
                - tag: controller
                  value: '{#CONTROLLER.ID}'
            - uuid: bafcf98cee9c4a8da0aea7b39a5242d4
              name: 'Controller [{#CONTROLLER.ID}]: Cache: Write misses, rate'
              type: DEPENDENT
              key: 'hpe.msa.controllers.cache.write.misses["{#CONTROLLER.ID}",rate]'
              description: 'For the controller that owns the volume, the number of times the block written to is not found in cache per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''write-cache-misses'']'
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]'
              tags:
                - tag: component
                  value: controller
                - tag: controller
                  value: '{#CONTROLLER.ID}'
            - uuid: fa9400f2dcba40f4b57dfcef6f7856a0
              name: 'Controller [{#CONTROLLER.ID}]: Cache: Write utilization'
              type: DEPENDENT
              key: 'hpe.msa.controllers.cache.write["{#CONTROLLER.ID}",util]'
              units: '%'
              description: 'Percentage of write cache in use, from 0 to 100.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''write-cache-used'']'
              master_item:
                key: 'hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]'
              tags:
                - tag: component
                  value: controller
                - tag: controller
                  value: '{#CONTROLLER.ID}'
            - uuid: 38a6ca0447d548c593d08acf377250cb
              name: 'Controller [{#CONTROLLER.ID}]: Cache memory size'
              type: DEPENDENT
              key: 'hpe.msa.controllers.cache["{#CONTROLLER.ID}",total]'
              units: B
              description: 'Controller cache memory size.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''cache-memory-size'']'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
                - type: MULTIPLIER
                  parameters:
                    - '1048576'
              master_item:
                key: 'hpe.msa.get.controllers["{#CONTROLLER.ID}",data]'
              tags:
                - tag: component
                  value: controller
                - tag: controller
                  value: '{#CONTROLLER.ID}'
            - uuid: cfff8c77d99440d18794e1c6dbf738ad
              name: 'Controller [{#CONTROLLER.ID}]: CPU utilization'
              type: DEPENDENT
              key: 'hpe.msa.controllers.cpu["{#CONTROLLER.ID}",util]'
              units: '%'
              description: 'Percentage of time the CPU is busy, from 0 to 100.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''cpu-load'']'
              master_item:
                key: 'hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]'
              tags:
                - tag: component
                  value: controller
                - tag: controller
                  value: '{#CONTROLLER.ID}'
              trigger_prototypes:
                - uuid: b94f1cfd6e6a48f8a18c644532b7a9c8
                  expression: 'min(/HPE MSA 2040 Storage by HTTP/hpe.msa.controllers.cpu["{#CONTROLLER.ID}",util],5m)>{$HPE.MSA.CONTROLLER.CPU.UTIL.CRIT}'
                  name: 'HPE MSA 2040 Storage: Controller [{#CONTROLLER.ID}]: High CPU utilization'
                  event_name: 'HPE MSA 2040 Storage: Controller [{#CONTROLLER.ID}]: High CPU utilization (over {$HPE.MSA.CONTROLLER.CPU.UTIL.CRIT}% for 5m)'
                  priority: WARNING
                  description: 'Controller CPU utilization is too high. The system might be slow to respond.'
                  tags:
                    - tag: scope
                      value: performance
            - uuid: c87dc81f4a3447f3962a69a8b0d79769
              name: 'Controller [{#CONTROLLER.ID}]: Data transfer rate: Reads'
              type: DEPENDENT
              key: 'hpe.msa.controllers.data_transfer.reads["{#CONTROLLER.ID}",rate]'
              value_type: FLOAT
              units: Bps
              description: 'The data read rate, in bytes per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''data-read-numeric'']'
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]'
              tags:
                - tag: component
                  value: controller
                - tag: controller
                  value: '{#CONTROLLER.ID}'
            - uuid: 7c34d1c4fd784fb695d9fc7c5a686329
              name: 'Controller [{#CONTROLLER.ID}]: Data transfer rate: Total'
              type: DEPENDENT
              key: 'hpe.msa.controllers.data_transfer.total["{#CONTROLLER.ID}",rate]'
              units: Bps
              description: 'The data transfer rate, in bytes per second, calculated over the interval since these statistics were last requested or reset. This value will be zero if it has not been requested or reset since a controller restart.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''bytes-per-second-numeric'']'
              master_item:
                key: 'hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]'
              tags:
                - tag: component
                  value: controller
                - tag: controller
                  value: '{#CONTROLLER.ID}'
            - uuid: 93b508f92de04dfbbfe7099bf37796ce
              name: 'Controller [{#CONTROLLER.ID}]: Data transfer rate: Writes'
              type: DEPENDENT
              key: 'hpe.msa.controllers.data_transfer.writes["{#CONTROLLER.ID}",rate]'
              value_type: FLOAT
              units: Bps
              description: 'The data write rate, in bytes per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''data-written-numeric'']'
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]'
              tags:
                - tag: component
                  value: controller
                - tag: controller
                  value: '{#CONTROLLER.ID}'
            - uuid: 3d7f1a97cd8249efbabc2402006c1cc2
              name: 'Controller [{#CONTROLLER.ID}]: IOPS, read rate'
              type: DEPENDENT
              key: 'hpe.msa.controllers.iops.read["{#CONTROLLER.ID}",rate]'
              value_type: FLOAT
              units: '!r/s'
              description: 'Number of read operations per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''number-of-reads'']'
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]'
              tags:
                - tag: component
                  value: controller
                - tag: controller
                  value: '{#CONTROLLER.ID}'
            - uuid: 8bf0601293a64628be08d16391d1e11b
              name: 'Controller [{#CONTROLLER.ID}]: IOPS, total rate'
              type: DEPENDENT
              key: 'hpe.msa.controllers.iops.total["{#CONTROLLER.ID}",rate]'
              units: '!iops'
              description: 'Input/output operations per second, calculated over the interval since these statistics were last requested or reset. This value will be zero if it has not been requested or reset since a controller restart.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''iops'']'
              master_item:
                key: 'hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]'
              tags:
                - tag: component
                  value: controller
                - tag: controller
                  value: '{#CONTROLLER.ID}'
            - uuid: 6444038b72294992ab17c126ccbe7251
              name: 'Controller [{#CONTROLLER.ID}]: IOPS, write rate'
              type: DEPENDENT
              key: 'hpe.msa.controllers.iops.write["{#CONTROLLER.ID}",rate]'
              value_type: FLOAT
              units: '!w/s'
              description: 'Number of write operations per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''number-of-writes'']'
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]'
              tags:
                - tag: component
                  value: controller
                - tag: controller
                  value: '{#CONTROLLER.ID}'
            - uuid: 5940d26205924a13ba351f5d56192fcb
              name: 'Controller [{#CONTROLLER.ID}]: Disks'
              type: DEPENDENT
              key: 'hpe.msa.controllers["{#CONTROLLER.ID}",disks]'
              description: 'Number of disks in the storage system.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''disks'']'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: 'hpe.msa.get.controllers["{#CONTROLLER.ID}",data]'
              tags:
                - tag: component
                  value: controller
                - tag: controller
                  value: '{#CONTROLLER.ID}'
            - uuid: 94c2c9bfd2414875a53fbe94f6230666
              name: 'Controller [{#CONTROLLER.ID}]: Disk groups'
              type: DEPENDENT
              key: 'hpe.msa.controllers["{#CONTROLLER.ID}",disk_groups]'
              description: 'Number of disk groups in the storage system.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''virtual-disks'']'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: 'hpe.msa.get.controllers["{#CONTROLLER.ID}",data]'
              tags:
                - tag: component
                  value: controller
                - tag: controller
                  value: '{#CONTROLLER.ID}'
            - uuid: 5a987843b14c4d25a1fde4429015f773
              name: 'Controller [{#CONTROLLER.ID}]: Firmware version'
              type: DEPENDENT
              key: 'hpe.msa.controllers["{#CONTROLLER.ID}",firmware]'
              value_type: CHAR
              description: 'Storage controller firmware version.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''sc-fw'']'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: 'hpe.msa.get.controllers["{#CONTROLLER.ID}",data]'
              tags:
                - tag: component
                  value: controller
                - tag: controller
                  value: '{#CONTROLLER.ID}'
            - uuid: 6d2a84b6b1804082ab4ef3451a52b552
              name: 'Controller [{#CONTROLLER.ID}]: Health'
              type: DEPENDENT
              key: 'hpe.msa.controllers["{#CONTROLLER.ID}",health]'
              description: 'Controller health status.'
              valuemap:
                name: Health
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''health-numeric'']'
                  error_handler: CUSTOM_VALUE
                  error_handler_params: '4'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: 'hpe.msa.get.controllers["{#CONTROLLER.ID}",data]'
              tags:
                - tag: component
                  value: controller
                - tag: component
                  value: health
                - tag: controller
                  value: '{#CONTROLLER.ID}'
              trigger_prototypes:
                - uuid: 381a5fe2adfd4f4ea15763cdf0a1bd0d
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.controllers["{#CONTROLLER.ID}",health])=1'
                  name: 'HPE MSA 2040 Storage: Controller [{#CONTROLLER.ID}]: Controller health is in degraded state'
                  priority: WARNING
                  description: 'Controller health is in degraded state.'
                  dependencies:
                    - name: 'HPE MSA 2040 Storage: Controller [{#CONTROLLER.ID}]: Controller is down'
                      expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.controllers["{#CONTROLLER.ID}",status])=1'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: 2082d12ff9c54a5ea709dba05c14ae00
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.controllers["{#CONTROLLER.ID}",health])=2'
                  name: 'HPE MSA 2040 Storage: Controller [{#CONTROLLER.ID}]: Controller health is in fault state'
                  priority: AVERAGE
                  description: 'Controller health is in fault state.'
                  dependencies:
                    - name: 'HPE MSA 2040 Storage: Controller [{#CONTROLLER.ID}]: Controller is down'
                      expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.controllers["{#CONTROLLER.ID}",status])=1'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: 0b2ed99c47a64210b198cc0a3a6b84b5
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.controllers["{#CONTROLLER.ID}",health])=3'
                  name: 'HPE MSA 2040 Storage: Controller [{#CONTROLLER.ID}]: Controller health is in unknown state'
                  priority: INFO
                  description: 'Controller health is in unknown state.'
                  dependencies:
                    - name: 'HPE MSA 2040 Storage: Controller [{#CONTROLLER.ID}]: Controller is down'
                      expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.controllers["{#CONTROLLER.ID}",status])=1'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: 5f00490ddd22458b93add06ed24a9f96
              name: 'Controller [{#CONTROLLER.ID}]: IP address'
              type: DEPENDENT
              key: 'hpe.msa.controllers["{#CONTROLLER.ID}",ip_address]'
              value_type: CHAR
              description: 'Controller network port IP address.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''ip-address'']'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: 'hpe.msa.get.controllers["{#CONTROLLER.ID}",data]'
              tags:
                - tag: component
                  value: controller
                - tag: controller
                  value: '{#CONTROLLER.ID}'
            - uuid: 33e754d5acb84b7c86b2e23b122e6eed
              name: 'Controller [{#CONTROLLER.ID}]: Part number'
              type: DEPENDENT
              key: 'hpe.msa.controllers["{#CONTROLLER.ID}",part_number]'
              value_type: CHAR
              description: 'Part number of the controller.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''part-number'']'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: 'hpe.msa.get.controllers["{#CONTROLLER.ID}",data]'
              tags:
                - tag: component
                  value: controller
                - tag: controller
                  value: '{#CONTROLLER.ID}'
            - uuid: e4930566c3844f9487e343c203f3eb96
              name: 'Controller [{#CONTROLLER.ID}]: Pools'
              type: DEPENDENT
              key: 'hpe.msa.controllers["{#CONTROLLER.ID}",pools]'
              description: 'Number of pools in the storage system.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''number-of-storage-pools'']'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: 'hpe.msa.get.controllers["{#CONTROLLER.ID}",data]'
              tags:
                - tag: component
                  value: controller
                - tag: controller
                  value: '{#CONTROLLER.ID}'
            - uuid: c073adb77eb84cf79e1e1693d9378d47
              name: 'Controller [{#CONTROLLER.ID}]: Serial number'
              type: DEPENDENT
              key: 'hpe.msa.controllers["{#CONTROLLER.ID}",serial_number]'
              value_type: CHAR
              description: 'Storage controller serial number.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''serial-number'']'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: 'hpe.msa.get.controllers["{#CONTROLLER.ID}",data]'
              tags:
                - tag: component
                  value: controller
                - tag: controller
                  value: '{#CONTROLLER.ID}'
            - uuid: a2be1b4b814d45b18bb4e313818511d6
              name: 'Controller [{#CONTROLLER.ID}]: Status'
              type: DEPENDENT
              key: 'hpe.msa.controllers["{#CONTROLLER.ID}",status]'
              description: 'Storage controller status.'
              valuemap:
                name: 'Controller status'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''status-numeric'']'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: 'hpe.msa.get.controllers["{#CONTROLLER.ID}",data]'
              tags:
                - tag: component
                  value: controller
                - tag: component
                  value: health
                - tag: controller
                  value: '{#CONTROLLER.ID}'
              trigger_prototypes:
                - uuid: 1524e80a37cb4b64a7360488e132a433
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.controllers["{#CONTROLLER.ID}",status])=1'
                  name: 'HPE MSA 2040 Storage: Controller [{#CONTROLLER.ID}]: Controller is down'
                  priority: HIGH
                  description: 'The controller is down.'
                  tags:
                    - tag: scope
                      value: availability
            - uuid: df2bede9ea85483581a35a45a15d4de4
              name: 'Controller [{#CONTROLLER.ID}]: Uptime'
              type: DEPENDENT
              key: 'hpe.msa.controllers["{#CONTROLLER.ID}",uptime]'
              units: uptime
              description: 'Number of seconds since the controller was restarted.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''power-on-time'']'
              master_item:
                key: 'hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]'
              tags:
                - tag: component
                  value: controller
                - tag: controller
                  value: '{#CONTROLLER.ID}'
              trigger_prototypes:
                - uuid: 136bb1ccd4114a529a99ddbf803fd974
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.controllers["{#CONTROLLER.ID}",uptime])<10m'
                  name: 'HPE MSA 2040 Storage: Controller [{#CONTROLLER.ID}]: Controller has been restarted'
                  event_name: 'HPE MSA 2040 Storage: Controller [{#CONTROLLER.ID}]: Controller has been restarted (uptime < 10m)'
                  priority: WARNING
                  description: 'The controller uptime is less than 10 minutes.'
                  tags:
                    - tag: scope
                      value: availability
            - uuid: 42b163abb92b42a3921364222807843b
              name: 'Controller [{#CONTROLLER.ID}]: Get data'
              type: DEPENDENT
              key: 'hpe.msa.get.controllers["{#CONTROLLER.ID}",data]'
              history: '0'
              value_type: TEXT
              description: 'The discovered controller data.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[?(@[''durable-id''] == "{#DURABLE.ID}")].first()'
              master_item:
                key: hpe.msa.get.controllers
              tags:
                - tag: component
                  value: controller
                - tag: component
                  value: raw
                - tag: controller
                  value: '{#CONTROLLER.ID}'
            - uuid: 682fb8c5a4bd40889dcb76070aaefb06
              name: 'Controller [{#CONTROLLER.ID}]: Get statistics data'
              type: DEPENDENT
              key: 'hpe.msa.get.controller_statistics["{#CONTROLLER.ID}",data]'
              history: '0'
              value_type: TEXT
              description: 'The discovered controller statistics data.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[?(@[''durable-id''] == "{#DURABLE.ID}")].first()'
              master_item:
                key: hpe.msa.get.controller_statistics
              tags:
                - tag: component
                  value: controller
                - tag: component
                  value: raw
                - tag: controller
                  value: '{#CONTROLLER.ID}'
          graph_prototypes:
            - uuid: 93aeac1a193e43d3a93a3892bd26b0ff
              name: 'Controller [{#CONTROLLER.ID}]: Cache: Write utilization'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'HPE MSA 2040 Storage by HTTP'
                    key: 'hpe.msa.controllers.cache.write["{#CONTROLLER.ID}",util]'
            - uuid: a7432b24cd834aa0be9dec3935641dfb
              name: 'Controller [{#CONTROLLER.ID}]: Cache usage'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'HPE MSA 2040 Storage by HTTP'
                    key: 'hpe.msa.controllers.cache.read.hits["{#CONTROLLER.ID}",rate]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'HPE MSA 2040 Storage by HTTP'
                    key: 'hpe.msa.controllers.cache.read.misses["{#CONTROLLER.ID}",rate]'
                - sortorder: '2'
                  color: 00611C
                  item:
                    host: 'HPE MSA 2040 Storage by HTTP'
                    key: 'hpe.msa.controllers.cache.write.hits["{#CONTROLLER.ID}",rate]'
                - sortorder: '3'
                  color: F7941D
                  item:
                    host: 'HPE MSA 2040 Storage by HTTP'
                    key: 'hpe.msa.controllers.cache.write.misses["{#CONTROLLER.ID}",rate]'
            - uuid: fca4007d4dd1491dbceba1644b50e1b5
              name: 'Controller [{#CONTROLLER.ID}]: Controller CPU utilization'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'HPE MSA 2040 Storage by HTTP'
                    key: 'hpe.msa.controllers.cpu["{#CONTROLLER.ID}",util]'
            - uuid: 0b2598db582546308d092c9e7889e698
              name: 'Controller [{#CONTROLLER.ID}]: Data transfer rate'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'HPE MSA 2040 Storage by HTTP'
                    key: 'hpe.msa.controllers.data_transfer.reads["{#CONTROLLER.ID}",rate]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'HPE MSA 2040 Storage by HTTP'
                    key: 'hpe.msa.controllers.data_transfer.writes["{#CONTROLLER.ID}",rate]'
            - uuid: 0793bb861e874a2c8e7e60a4c40bc34e
              name: 'Controller [{#CONTROLLER.ID}]: Disk operations rate'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'HPE MSA 2040 Storage by HTTP'
                    key: 'hpe.msa.controllers.iops.read["{#CONTROLLER.ID}",rate]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'HPE MSA 2040 Storage by HTTP'
                    key: 'hpe.msa.controllers.iops.write["{#CONTROLLER.ID}",rate]'
          master_item:
            key: hpe.msa.get.controllers
          lld_macro_paths:
            - lld_macro: '{#CONTROLLER.ID}'
              path: '$.[''controller-id'']'
            - lld_macro: '{#DURABLE.ID}'
              path: '$.[''durable-id'']'
        - uuid: 16b9a9b6da11463d865cb2b59f77f376
          name: 'Disks discovery'
          type: DEPENDENT
          key: hpe.msa.disks.discovery
          description: 'Discover disks.'
          item_prototypes:
            - uuid: 60418ff95d2b4ac698fe041647656005
              name: 'Disk [{#DURABLE.ID}]: Space total'
              type: DEPENDENT
              key: 'hpe.msa.disks.space["{#DURABLE.ID}",total]'
              units: B
              description: 'Total size of the disk.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''size-numeric'']'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
                - type: MULTIPLIER
                  parameters:
                    - '512'
              master_item:
                key: 'hpe.msa.get.disks["{#DURABLE.ID}",data]'
              tags:
                - tag: component
                  value: disk
                - tag: disk
                  value: '{#DURABLE.ID}'
            - uuid: 579f29536b0740b9887cbb0863bd3e45
              name: 'Disk [{#DURABLE.ID}]: SSD life left'
              type: DEPENDENT
              key: 'hpe.msa.disks.ssd["{#DURABLE.ID}",life_left]'
              discover: NO_DISCOVER
              units: '%'
              description: 'The percentage of disk life remaining.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''ssd-life-left-numeric'']'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: 'hpe.msa.get.disks["{#DURABLE.ID}",data]'
              tags:
                - tag: component
                  value: disk
                - tag: disk
                  value: '{#DURABLE.ID}'
            - uuid: a430bd06d24447649687dc9b9c3dee2c
              name: 'Disk [{#DURABLE.ID}]: Disk group'
              type: DEPENDENT
              key: 'hpe.msa.disks["{#DURABLE.ID}",group]'
              value_type: CHAR
              description: 'If the disk is in a disk group, the disk group name.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''disk-group'']'
                  error_handler: DISCARD_VALUE
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: 'hpe.msa.get.disks["{#DURABLE.ID}",data]'
              tags:
                - tag: component
                  value: disk
                - tag: disk
                  value: '{#DURABLE.ID}'
            - uuid: 17f4069e731b45c7a9d9bfc5786a07fc
              name: 'Disk [{#DURABLE.ID}]: Health'
              type: DEPENDENT
              key: 'hpe.msa.disks["{#DURABLE.ID}",health]'
              description: 'Disk health status.'
              valuemap:
                name: Health
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''health-numeric'']'
                  error_handler: CUSTOM_VALUE
                  error_handler_params: '4'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: 'hpe.msa.get.disks["{#DURABLE.ID}",data]'
              tags:
                - tag: component
                  value: disk
                - tag: component
                  value: health
                - tag: disk
                  value: '{#DURABLE.ID}'
              trigger_prototypes:
                - uuid: 58d2da30bfe74d05ad05e0b286fe0fae
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.disks["{#DURABLE.ID}",health])=1'
                  name: 'HPE MSA 2040 Storage: Disk [{#DURABLE.ID}]: Disk health is in degraded state'
                  priority: WARNING
                  description: 'Disk health is in degraded state.'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: 1f0e81d23e1e423ba885425f33773f5b
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.disks["{#DURABLE.ID}",health])=2'
                  name: 'HPE MSA 2040 Storage: Disk [{#DURABLE.ID}]: Disk health is in fault state'
                  priority: AVERAGE
                  description: 'Disk health is in fault state.'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: dc75dd0456a145b3ab0646c9403caeb6
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.disks["{#DURABLE.ID}",health])=3'
                  name: 'HPE MSA 2040 Storage: Disk [{#DURABLE.ID}]: Disk health is in unknown state'
                  priority: INFO
                  description: 'Disk health is in unknown state.'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: 689e29b31fd0490fb26920c04d094136
              name: 'Disk [{#DURABLE.ID}]: Model'
              type: DEPENDENT
              key: 'hpe.msa.disks["{#DURABLE.ID}",model]'
              value_type: CHAR
              description: 'Disk model.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''model'']'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: 'hpe.msa.get.disks["{#DURABLE.ID}",data]'
              tags:
                - tag: component
                  value: disk
                - tag: disk
                  value: '{#DURABLE.ID}'
            - uuid: 20d37295acce41acac8ba77962130774
              name: 'Disk [{#DURABLE.ID}]: Storage pool'
              type: DEPENDENT
              key: 'hpe.msa.disks["{#DURABLE.ID}",pool]'
              value_type: CHAR
              description: 'If the disk is in a pool, the pool name.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''storage-pool-name'']'
                  error_handler: DISCARD_VALUE
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: 'hpe.msa.get.disks["{#DURABLE.ID}",data]'
              tags:
                - tag: component
                  value: disk
                - tag: disk
                  value: '{#DURABLE.ID}'
            - uuid: 7c4da69f28824444960e6783fe090526
              name: 'Disk [{#DURABLE.ID}]: Serial number'
              type: DEPENDENT
              key: 'hpe.msa.disks["{#DURABLE.ID}",serial_number]'
              value_type: CHAR
              description: 'Disk serial number.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''serial-number'']'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: 'hpe.msa.get.disks["{#DURABLE.ID}",data]'
              tags:
                - tag: component
                  value: disk
                - tag: disk
                  value: '{#DURABLE.ID}'
            - uuid: 770749eafc79429185e7127d95b1ff74
              name: 'Disk [{#DURABLE.ID}]: Temperature'
              type: DEPENDENT
              key: 'hpe.msa.disks["{#DURABLE.ID}",temperature]'
              units: '!°C'
              description: 'Temperature of the disk.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''temperature-numeric'']'
                  error_handler: DISCARD_VALUE
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: 'hpe.msa.get.disks["{#DURABLE.ID}",data]'
              tags:
                - tag: component
                  value: disk
                - tag: disk
                  value: '{#DURABLE.ID}'
            - uuid: 5ba57b2f4d014b2a81c546e8f74a133e
              name: 'Disk [{#DURABLE.ID}]: Temperature status'
              type: DEPENDENT
              key: 'hpe.msa.disks["{#DURABLE.ID}",temperature_status]'
              description: 'Disk temperature status.'
              valuemap:
                name: 'Disk temperature status'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''temperature-status-numeric'']'
                  error_handler: DISCARD_VALUE
                - type: IN_RANGE
                  parameters:
                    - '1'
                    - '3'
                  error_handler: CUSTOM_VALUE
                  error_handler_params: '4'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: 'hpe.msa.get.disks["{#DURABLE.ID}",data]'
              tags:
                - tag: component
                  value: disk
                - tag: component
                  value: health
                - tag: disk
                  value: '{#DURABLE.ID}'
              trigger_prototypes:
                - uuid: b194f7b133274552823b66e44c88bd02
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.disks["{#DURABLE.ID}",temperature_status])=2'
                  name: 'HPE MSA 2040 Storage: Disk [{#DURABLE.ID}]: Disk temperature is critically high'
                  priority: AVERAGE
                  description: 'Disk temperature is critically high.'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: aaabacd5f5194378b6c8388e2ef90abe
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.disks["{#DURABLE.ID}",temperature_status])=3'
                  name: 'HPE MSA 2040 Storage: Disk [{#DURABLE.ID}]: Disk temperature is high'
                  priority: WARNING
                  description: 'Disk temperature is high.'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: 60d0fc661aa140798f937a63fdd6e5f9
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.disks["{#DURABLE.ID}",temperature_status])=4'
                  name: 'HPE MSA 2040 Storage: Disk [{#DURABLE.ID}]: Disk temperature is unknown'
                  priority: INFO
                  description: 'Disk temperature is unknown.'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: d781943c08d24556a083a16cca34ad58
              name: 'Disk [{#DURABLE.ID}]: Type'
              type: DEPENDENT
              key: 'hpe.msa.disks["{#DURABLE.ID}",type]'
              description: |
                Disk type:
                SAS: Enterprise SAS spinning disk.
                SAS MDL: Midline SAS spinning disk.
                SSD SAS: SAS solit-state disk.
              valuemap:
                name: 'Disk type'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''description-numeric'']'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: 'hpe.msa.get.disks["{#DURABLE.ID}",data]'
              tags:
                - tag: component
                  value: disk
                - tag: disk
                  value: '{#DURABLE.ID}'
            - uuid: 86ce9f4d139e46908750d158b004b517
              name: 'Disk [{#DURABLE.ID}]: Vendor'
              type: DEPENDENT
              key: 'hpe.msa.disks["{#DURABLE.ID}",vendor]'
              value_type: CHAR
              description: 'Disk vendor.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''vendor'']'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: 'hpe.msa.get.disks["{#DURABLE.ID}",data]'
              tags:
                - tag: component
                  value: disk
                - tag: disk
                  value: '{#DURABLE.ID}'
            - uuid: e5faef5f8750462b8d676a74fa67b97c
              name: 'Disk [{#DURABLE.ID}]: Get data'
              type: DEPENDENT
              key: 'hpe.msa.get.disks["{#DURABLE.ID}",data]'
              history: '0'
              value_type: TEXT
              description: 'The discovered disk data.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$[?(@[''durable-id''] == "{#DURABLE.ID}")].first()'
              master_item:
                key: hpe.msa.get.disks
              tags:
                - tag: component
                  value: disk
                - tag: component
                  value: raw
                - tag: disk
                  value: '{#DURABLE.ID}'
          master_item:
            key: hpe.msa.get.disks
          lld_macro_paths:
            - lld_macro: '{#DURABLE.ID}'
              path: '$.[''durable-id'']'
            - lld_macro: '{#TYPE}'
              path: '$.[''description-numeric'']'
          overrides:
            - name: 'SSD life left'
              step: '1'
              filter:
                conditions:
                  - macro: '{#TYPE}'
                    value: '8'
              operations:
                - operator: REGEXP
                  value: 'SSD life left'
                  discover: DISCOVER
        - uuid: dd952ff876134376baef061dc260884c
          name: 'Disk groups discovery'
          type: DEPENDENT
          key: hpe.msa.disks.groups.discovery
          description: 'Discover disk groups.'
          item_prototypes:
            - uuid: 5b0b3db4bdff429996111d566b6d0386
              name: 'Disk group [{#NAME}]: Average response time: Read'
              type: DEPENDENT
              key: 'hpe.msa.disks.groups.avg_rsp_time["{#NAME}",read]'
              value_type: FLOAT
              units: s
              description: 'Average response time for all read operations, calculated over the interval since these statistics were last requested or reset.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''avg-read-rsp-time'']'
                - type: MULTIPLIER
                  parameters:
                    - '1.0E-6'
              master_item:
                key: 'hpe.msa.get.disks.groups.statistics["{#NAME}",data]'
              tags:
                - tag: component
                  value: disk-group
                - tag: disk-group
                  value: '{#NAME}'
            - uuid: 4a4fb1ae86df4607882de9c9d40f51f4
              name: 'Disk group [{#NAME}]: Average response time: Total'
              type: DEPENDENT
              key: 'hpe.msa.disks.groups.avg_rsp_time["{#NAME}",total]'
              value_type: FLOAT
              units: s
              description: 'Average response time for read and write operations, calculated over the interval since these statistics were last requested or reset.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''avg-rsp-time'']'
                - type: MULTIPLIER
                  parameters:
                    - '1.0E-6'
              master_item:
                key: 'hpe.msa.get.disks.groups.statistics["{#NAME}",data]'
              tags:
                - tag: component
                  value: disk-group
                - tag: disk-group
                  value: '{#NAME}'
            - uuid: a93c1e1b1eee496d861464128aaefa57
              name: 'Disk group [{#NAME}]: Average response time: Write'
              type: DEPENDENT
              key: 'hpe.msa.disks.groups.avg_rsp_time["{#NAME}",write]'
              value_type: FLOAT
              units: s
              description: 'Average response time for all write operations, calculated over the interval since these statistics were last requested or reset.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''avg-write-rsp-time'']'
                - type: MULTIPLIER
                  parameters:
                    - '1.0E-6'
              master_item:
                key: 'hpe.msa.get.disks.groups.statistics["{#NAME}",data]'
              tags:
                - tag: component
                  value: disk-group
                - tag: disk-group
                  value: '{#NAME}'
            - uuid: 46ba55c8ec2e4811b254441f22ead159
              name: 'Disk group [{#NAME}]: Data transfer rate: Reads'
              type: DEPENDENT
              key: 'hpe.msa.disks.groups.data_transfer.reads["{#NAME}",rate]'
              value_type: FLOAT
              units: Bps
              description: 'The data read rate, in bytes per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''data-read-numeric'']'
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'hpe.msa.get.disks.groups.statistics["{#NAME}",data]'
              tags:
                - tag: component
                  value: disk-group
                - tag: disk-group
                  value: '{#NAME}'
            - uuid: b1e2347ea10b4e84bb227668f5560b14
              name: 'Disk group [{#NAME}]: Data transfer rate: Total'
              type: DEPENDENT
              key: 'hpe.msa.disks.groups.data_transfer.total["{#NAME}",rate]'
              units: Bps
              description: 'The data transfer rate, in bytes per second, calculated over the interval since these statistics were last requested or reset. This value will be zero if it has not been requested or reset since a controller restart.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''bytes-per-second-numeric'']'
              master_item:
                key: 'hpe.msa.get.disks.groups.statistics["{#NAME}",data]'
              tags:
                - tag: component
                  value: disk-group
                - tag: disk-group
                  value: '{#NAME}'
            - uuid: a3df11b895fa425799c34516050000bd
              name: 'Disk group [{#NAME}]: Data transfer rate: Writes'
              type: DEPENDENT
              key: 'hpe.msa.disks.groups.data_transfer.writes["{#NAME}",rate]'
              value_type: FLOAT
              units: Bps
              description: 'The data write rate, in bytes per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''data-written-numeric'']'
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'hpe.msa.get.disks.groups.statistics["{#NAME}",data]'
              tags:
                - tag: component
                  value: disk-group
                - tag: disk-group
                  value: '{#NAME}'
            - uuid: 18cd4383127548b68313184a2b94750f
              name: 'Disk group [{#NAME}]: IOPS, read rate'
              type: DEPENDENT
              key: 'hpe.msa.disks.groups.iops.read["{#NAME}",rate]'
              value_type: FLOAT
              units: '!r/s'
              description: 'Number of read operations per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''number-of-reads'']'
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'hpe.msa.get.disks.groups.statistics["{#NAME}",data]'
              tags:
                - tag: component
                  value: disk-group
                - tag: disk-group
                  value: '{#NAME}'
            - uuid: 044e291ab66d48dcb8b66ee18f638702
              name: 'Disk group [{#NAME}]: IOPS, total rate'
              type: DEPENDENT
              key: 'hpe.msa.disks.groups.iops.total["{#NAME}",rate]'
              units: '!iops'
              description: 'Input/output operations per second, calculated over the interval since these statistics were last requested or reset. This value will be zero if it has not been requested or reset since a controller restart.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''iops'']'
              master_item:
                key: 'hpe.msa.get.disks.groups.statistics["{#NAME}",data]'
              tags:
                - tag: component
                  value: disk-group
                - tag: disk-group
                  value: '{#NAME}'
            - uuid: 66ec5badb1d2491d9e07b5ce45486d72
              name: 'Disk group [{#NAME}]: IOPS, write rate'
              type: DEPENDENT
              key: 'hpe.msa.disks.groups.iops.write["{#NAME}",rate]'
              value_type: FLOAT
              units: '!w/s'
              description: 'Number of write operations per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''number-of-writes'']'
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'hpe.msa.get.disks.groups.statistics["{#NAME}",data]'
              tags:
                - tag: component
                  value: disk-group
                - tag: disk-group
                  value: '{#NAME}'
            - uuid: 5356a1f819a54c59bb3765d99a965537
              name: 'Disk group [{#NAME}]: RAID type'
              type: DEPENDENT
              key: 'hpe.msa.disks.groups.raid["{#NAME}",type]'
              description: 'The RAID level of the disk group.'
              valuemap:
                name: 'RAID type'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''raidtype-numeric'']'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: 'hpe.msa.get.disks.groups["{#NAME}",data]'
              tags:
                - tag: component
                  value: disk-group
                - tag: disk-group
                  value: '{#NAME}'
            - uuid: b1c95904002b4c17a1c007c664fa4ff8
              name: 'Disk group [{#NAME}]: Space free'
              type: DEPENDENT
              key: 'hpe.msa.disks.groups.space["{#NAME}",free]'
              units: B
              description: 'The free space in the disk group.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$[''freespace-numeric'']'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
                - type: MULTIPLIER
                  parameters:
                    - '512'
              master_item:
                key: 'hpe.msa.get.disks.groups["{#NAME}",data]'
              tags:
                - tag: component
                  value: disk-group
                - tag: disk-group
                  value: '{#NAME}'
            - uuid: bfe1a64952754488898798f5f07e24b1
              name: 'Disk group [{#NAME}]: Pool space used'
              type: DEPENDENT
              key: 'hpe.msa.disks.groups.space["{#NAME}",pool_util]'
              units: '%'
              description: 'The percentage of pool capacity that the disk group occupies.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''pool-percentage'']'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: 'hpe.msa.get.disks.groups["{#NAME}",data]'
              tags:
                - tag: component
                  value: disk-group
                - tag: disk-group
                  value: '{#NAME}'
            - uuid: 29eae883b9fc4e2191daa870bd9d58ad
              name: 'Disk group [{#NAME}]: Space total'
              type: DEPENDENT
              key: 'hpe.msa.disks.groups.space["{#NAME}",total]'
              units: B
              description: 'The capacity of the disk group.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''size-numeric'']'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
                - type: MULTIPLIER
                  parameters:
                    - '512'
              master_item:
                key: 'hpe.msa.get.disks.groups["{#NAME}",data]'
              tags:
                - tag: component
                  value: disk-group
                - tag: disk-group
                  value: '{#NAME}'
            - uuid: 760b63c8140544dd8af0de8fd873c8cb
              name: 'Disk group [{#NAME}]: Space utilization'
              type: CALCULATED
              key: 'hpe.msa.disks.groups.space["{#NAME}",util]'
              value_type: FLOAT
              units: '%'
              params: '100-last(//hpe.msa.disks.groups.space["{#NAME}",free])/last(//hpe.msa.disks.groups.space["{#NAME}",total])*100'
              description: 'The space utilization percentage in the disk group.'
              preprocessing:
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              tags:
                - tag: component
                  value: disk-group
                - tag: disk-group
                  value: '{#NAME}'
              trigger_prototypes:
                - uuid: d6494d79dae94aeda2b78169f8960224
                  expression: 'min(/HPE MSA 2040 Storage by HTTP/hpe.msa.disks.groups.space["{#NAME}",util],5m)>{$HPE.MSA.DISKS.GROUP.PUSED.MAX.CRIT:"{#NAME}"}'
                  name: 'HPE MSA 2040 Storage: Disk group [{#NAME}]: Disk group space is critically low'
                  event_name: 'HPE MSA 2040 Storage: Disk group [{#NAME}]: Disk group space is critically low (used > {$HPE.MSA.DISKS.GROUP.PUSED.MAX.CRIT:"{#NAME}"}%)'
                  priority: AVERAGE
                  description: 'Disk group is running low on free space (less than {$HPE.MSA.DISKS.GROUP.PUSED.MAX.CRIT:"{#NAME}"}% available).'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: ea04be93082640709ec6e58ae640575c
                  expression: 'min(/HPE MSA 2040 Storage by HTTP/hpe.msa.disks.groups.space["{#NAME}",util],5m)>{$HPE.MSA.DISKS.GROUP.PUSED.MAX.WARN:"{#NAME}"}'
                  name: 'HPE MSA 2040 Storage: Disk group [{#NAME}]: Disk group space is low'
                  event_name: 'HPE MSA 2040 Storage: Disk group [{#NAME}]: Disk group space is low (used > {$HPE.MSA.DISKS.GROUP.PUSED.MAX.WARN:"{#NAME}"}%)'
                  priority: WARNING
                  description: 'Disk group is running low on free space (less than {$HPE.MSA.DISKS.GROUP.PUSED.MAX.WARN:"{#NAME}"}% available).'
                  dependencies:
                    - name: 'HPE MSA 2040 Storage: Disk group [{#NAME}]: Disk group space is critically low'
                      expression: 'min(/HPE MSA 2040 Storage by HTTP/hpe.msa.disks.groups.space["{#NAME}",util],5m)>{$HPE.MSA.DISKS.GROUP.PUSED.MAX.CRIT:"{#NAME}"}'
                  tags:
                    - tag: scope
                      value: performance
            - uuid: 085fae4f87444b62ae5c52703176a533
              name: 'Disk group [{#NAME}]: Disks count'
              type: DEPENDENT
              key: 'hpe.msa.disks.groups["{#NAME}",disk_count]'
              description: 'Number of disks in the disk group.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''diskcount'']'
                  error_handler: DISCARD_VALUE
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: 'hpe.msa.get.disks.groups["{#NAME}",data]'
              tags:
                - tag: component
                  value: disk-group
                - tag: disk-group
                  value: '{#NAME}'
            - uuid: 1c714d46a3ae4e77b4a2e155c047e630
              name: 'Disk group [{#NAME}]: Health'
              type: DEPENDENT
              key: 'hpe.msa.disks.groups["{#NAME}",health]'
              description: 'Disk group health.'
              valuemap:
                name: Health
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''health-numeric'']'
                  error_handler: CUSTOM_VALUE
                  error_handler_params: '4'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: 'hpe.msa.get.disks.groups["{#NAME}",data]'
              tags:
                - tag: component
                  value: disk-group
                - tag: component
                  value: health
                - tag: disk-group
                  value: '{#NAME}'
              trigger_prototypes:
                - uuid: ad99b0f4a6b14b1d9819ab63376e11e7
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.disks.groups["{#NAME}",health])=1'
                  name: 'HPE MSA 2040 Storage: Disk group [{#NAME}]: Disk group health is in degraded state'
                  priority: WARNING
                  description: 'Disk group health is in degraded state.'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: 28f69da63b024079b8953165da6cbfdc
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.disks.groups["{#NAME}",health])=2'
                  name: 'HPE MSA 2040 Storage: Disk group [{#NAME}]: Disk group health is in fault state'
                  priority: AVERAGE
                  description: 'Disk group health is in fault state.'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: 94695c4222c94bd1b12d9ecb4b21e628
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.disks.groups["{#NAME}",health])=3'
                  name: 'HPE MSA 2040 Storage: Disk group [{#NAME}]: Disk group health is in unknown state'
                  priority: INFO
                  description: 'Disk group health is in unknown state.'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: 27ad0ae81baa43528cf94d3ccc5c3ec3
              name: 'Disk group [{#NAME}]: Status'
              type: DEPENDENT
              key: 'hpe.msa.disks.groups["{#NAME}",status]'
              description: |
                The status of the disk group:
                
                - CRIT: Critical. The disk group is online but isn't fault tolerant because some of it's disks are down.
                - DMGD: Damaged. The disk group is online and fault tolerant, but some of it's disks are damaged.
                - FTDN: Fault tolerant with a down disk.The disk group is online and fault tolerant, but some of it's disks are down.
                - FTOL: Fault tolerant.
                - MSNG: Missing. The disk group is online and fault tolerant, but some of it's disks are missing.
                - OFFL: Offline. Either the disk group is using offline initialization, or it's disks are down and data may be lost.
                - QTCR: Quarantined critical. The disk group is critical with at least one inaccessible disk. For example, two disks are inaccessible in a RAID 6 disk group or one disk is inaccessible for other fault-tolerant RAID levels. If the inaccessible disks come online or if after 60 seconds from being quarantined the disk group is QTCRor QTDN, the disk group is automatically dequarantined.
                - QTDN: Quarantined with a down disk. The RAID6 disk group has one inaccessible disk. The disk group is fault tolerant but degraded. If the inaccessible disks come online or if after 60 seconds from being quarantined the disk group is QTCRor QTDN, the disk group is automatically dequarantined.
                - QTOF: Quarantined offline. The disk group is offline with multiple inaccessible disks causing user data to be incomplete, or is an NRAID or RAID 0 disk group.
                - QTUN: Quarantined unsupported. The disk group contains data in a format that is not supported by this system. For example, this system does not support linear disk groups.
                - STOP: The disk group is stopped.
                - UNKN: Unknown.
                - UP: Up. The disk group is online and does not have fault-tolerant attributes.
              valuemap:
                name: 'Disk group status'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''status-numeric'']'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: 'hpe.msa.get.disks.groups["{#NAME}",data]'
              tags:
                - tag: component
                  value: disk-group
                - tag: component
                  value: health
                - tag: disk-group
                  value: '{#NAME}'
              trigger_prototypes:
                - uuid: 9bbf1f8a67564b769db5921a2023defd
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.disks.groups["{#NAME}",status])=9'
                  name: 'HPE MSA 2040 Storage: Disk group [{#NAME}]: Disk group has damaged disks'
                  priority: AVERAGE
                  description: 'The disk group is online and fault tolerant, but some of it''s disks are damaged.'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: d4d5a63b514d4f1aaff9e8c68db9026e
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.disks.groups["{#NAME}",status])=8'
                  name: 'HPE MSA 2040 Storage: Disk group [{#NAME}]: Disk group has missing disks'
                  priority: AVERAGE
                  description: 'The disk group is online and fault tolerant, but some of it''s disks are missing.'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: 26b5b53b33c940d5a642ea13d670bf55
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.disks.groups["{#NAME}",status])=1'
                  name: 'HPE MSA 2040 Storage: Disk group [{#NAME}]: Disk group is fault tolerant with a down disk'
                  priority: AVERAGE
                  description: 'The disk group is online and fault tolerant, but some of it''s disks are down.'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: b1e7e080f7264ae0be323a500abc211f
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.disks.groups["{#NAME}",status])=3'
                  name: 'HPE MSA 2040 Storage: Disk group [{#NAME}]: Disk group is offline'
                  priority: AVERAGE
                  description: 'Either the disk group is using offline initialization, or it''s disks are down and data may be lost.'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: b8b5b248c275453d91c214c19d01f5d9
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.disks.groups["{#NAME}",status])=4'
                  name: 'HPE MSA 2040 Storage: Disk group [{#NAME}]: Disk group is quarantined critical'
                  priority: AVERAGE
                  description: 'The disk group is critical with at least one inaccessible disk. For example, two disks are inaccessible in a RAID 6 disk group or one disk is inaccessible for other fault-tolerant RAID levels. If the inaccessible disks come online or if after 60 seconds from being quarantined the disk group is QTCRor QTDN, the disk group is automatically dequarantined.'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: bc1c2bbfffd541998099e695f9c98386
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.disks.groups["{#NAME}",status])=5'
                  name: 'HPE MSA 2040 Storage: Disk group [{#NAME}]: Disk group is quarantined offline'
                  priority: AVERAGE
                  description: 'The disk group is offline with multiple inaccessible disks causing user data to be incomplete, or is an NRAID or RAID 0 disk group.'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: 7c4981f0b0fb4a3891b8a410501224d0
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.disks.groups["{#NAME}",status])=5'
                  name: 'HPE MSA 2040 Storage: Disk group [{#NAME}]: Disk group is quarantined unsupported'
                  priority: AVERAGE
                  description: 'The disk group contains data in a format that is not supported by this system. For example, this system does not support linear disk groups.'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: 9e762711ecf54f8691e6be32a3e92738
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.disks.groups["{#NAME}",status])=6'
                  name: 'HPE MSA 2040 Storage: Disk group [{#NAME}]: Disk group is quarantined with an inaccessible disk'
                  priority: AVERAGE
                  description: 'The RAID6 disk group has one inaccessible disk. The disk group is fault tolerant but degraded. If the inaccessible disks come online or if after 60 seconds from being quarantined the disk group is QTCRor QTDN, the disk group is automatically dequarantined.'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: 191dbf4bdd294add8ed0815c21f6eadb
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.disks.groups["{#NAME}",status])=7'
                  name: 'HPE MSA 2040 Storage: Disk group [{#NAME}]: Disk group is stopped'
                  priority: AVERAGE
                  description: 'The disk group is stopped.'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: 05480e1bc3ff4e7a8c5a20286d6f306c
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.disks.groups["{#NAME}",status])=2'
                  name: 'HPE MSA 2040 Storage: Disk group [{#NAME}]: Disk group status is critical'
                  priority: AVERAGE
                  description: 'The disk group is online but isn''t fault tolerant because some of its disks are down.'
                  tags:
                    - tag: scope
                      value: performance
            - uuid: 20c557ea7c4e439c8c8c7fe5f8bb3356
              name: 'Disk group [{#NAME}]: Get statistics data'
              type: DEPENDENT
              key: 'hpe.msa.get.disks.groups.statistics["{#NAME}",data]'
              history: '0'
              value_type: TEXT
              description: 'The discovered disk group statistics data.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[?(@[''name''] == "{#NAME}")].first()'
              master_item:
                key: hpe.msa.disks.get.groups.statistics
              tags:
                - tag: component
                  value: disk-group
                - tag: component
                  value: raw
                - tag: disk-group
                  value: '{#NAME}'
            - uuid: 42666f013abf4441b85d94b89ed6cac1
              name: 'Disk group [{#NAME}]: Get data'
              type: DEPENDENT
              key: 'hpe.msa.get.disks.groups["{#NAME}",data]'
              history: '0'
              value_type: TEXT
              description: 'The discovered disk group data.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[?(@[''name''] == "{#NAME}")].first()'
              master_item:
                key: hpe.msa.get.disks.groups
              tags:
                - tag: component
                  value: disk-group
                - tag: component
                  value: raw
                - tag: disk-group
                  value: '{#NAME}'
          graph_prototypes:
            - uuid: 1d5b8a7246a845678a938da75b7e32cc
              name: 'Disk group [{#NAME}]: Average response time'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'HPE MSA 2040 Storage by HTTP'
                    key: 'hpe.msa.disks.groups.avg_rsp_time["{#NAME}",read]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'HPE MSA 2040 Storage by HTTP'
                    key: 'hpe.msa.disks.groups.avg_rsp_time["{#NAME}",write]'
            - uuid: b718bd4950f64abb892ba3bfe738ad49
              name: 'Disk group [{#NAME}]: Data transfer rate'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'HPE MSA 2040 Storage by HTTP'
                    key: 'hpe.msa.disks.groups.data_transfer.reads["{#NAME}",rate]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'HPE MSA 2040 Storage by HTTP'
                    key: 'hpe.msa.disks.groups.data_transfer.writes["{#NAME}",rate]'
            - uuid: 55d7871c891446b086860f8c861fc3f7
              name: 'Disk group [{#NAME}]: Disk operations rate'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'HPE MSA 2040 Storage by HTTP'
                    key: 'hpe.msa.disks.groups.iops.read["{#NAME}",rate]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'HPE MSA 2040 Storage by HTTP'
                    key: 'hpe.msa.disks.groups.iops.write["{#NAME}",rate]'
            - uuid: 234be7ebf50e42f6a098662f1fffba03
              name: 'Disk group [{#NAME}]: Space utilization'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'HPE MSA 2040 Storage by HTTP'
                    key: 'hpe.msa.disks.groups.space["{#NAME}",free]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'HPE MSA 2040 Storage by HTTP'
                    key: 'hpe.msa.disks.groups.space["{#NAME}",total]'
          master_item:
            key: hpe.msa.get.disks.groups
          lld_macro_paths:
            - lld_macro: '{#NAME}'
              path: '$.[''name'']'
        - uuid: c6713507122242988dc9fae6e77bdff6
          name: 'Enclosures discovery'
          type: DEPENDENT
          key: hpe.msa.enclosures.discovery
          description: 'Discover enclosures.'
          item_prototypes:
            - uuid: 806b44d4f2dd44eea6db7e982c5fea16
              name: 'Enclosure [{#DURABLE.ID}]: Health'
              type: DEPENDENT
              key: 'hpe.msa.enclosures["{#DURABLE.ID}",health]'
              description: 'Enclosure health.'
              valuemap:
                name: Health
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''health-numeric'']'
                  error_handler: CUSTOM_VALUE
                  error_handler_params: '4'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: 'hpe.msa.get.enclosures["{#DURABLE.ID}",data]'
              tags:
                - tag: component
                  value: enclosure
                - tag: component
                  value: health
                - tag: enclosure
                  value: '{#DURABLE.ID}'
              trigger_prototypes:
                - uuid: 934c5f9e2d19499fab1d88ff9a36c9c9
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.enclosures["{#DURABLE.ID}",health])=1'
                  name: 'HPE MSA 2040 Storage: Enclosure [{#DURABLE.ID}]: Enclosure health is in degraded state'
                  priority: WARNING
                  description: 'Enclosure health is in degraded state.'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: 3d06d5ce761c42e983a5eec029bb671e
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.enclosures["{#DURABLE.ID}",health])=2'
                  name: 'HPE MSA 2040 Storage: Enclosure [{#DURABLE.ID}]: Enclosure health is in fault state'
                  priority: AVERAGE
                  description: 'Enclosure health is in fault state.'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: df1275bd16434b1ca77749930e1af3f8
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.enclosures["{#DURABLE.ID}",health])=3'
                  name: 'HPE MSA 2040 Storage: Enclosure [{#DURABLE.ID}]: Enclosure health is in unknown state'
                  priority: INFO
                  description: 'Enclosure health is in unknown state.'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: 42987ecd83d74ffa91a8da7d72aacdb0
              name: 'Enclosure [{#DURABLE.ID}]: Midplane serial number'
              type: DEPENDENT
              key: 'hpe.msa.enclosures["{#DURABLE.ID}",midplane_serial_number]'
              value_type: CHAR
              description: 'Midplane serial number.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''midplane-serial-number'']'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: 'hpe.msa.get.enclosures["{#DURABLE.ID}",data]'
              tags:
                - tag: component
                  value: enclosure
                - tag: enclosure
                  value: '{#DURABLE.ID}'
            - uuid: 10fff6e5bc2143348c3b0c6a3eb87631
              name: 'Enclosure [{#DURABLE.ID}]: Model'
              type: DEPENDENT
              key: 'hpe.msa.enclosures["{#DURABLE.ID}",model]'
              value_type: CHAR
              description: 'Enclosure model.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''model'']'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: 'hpe.msa.get.enclosures["{#DURABLE.ID}",data]'
              tags:
                - tag: component
                  value: enclosure
                - tag: enclosure
                  value: '{#DURABLE.ID}'
            - uuid: f9279641e2cb4c95a07d43ef1f1caba5
              name: 'Enclosure [{#DURABLE.ID}]: Part number'
              type: DEPENDENT
              key: 'hpe.msa.enclosures["{#DURABLE.ID}",part_number]'
              value_type: CHAR
              description: 'Enclosure part number.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''part-number'']'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: 'hpe.msa.get.enclosures["{#DURABLE.ID}",data]'
              tags:
                - tag: component
                  value: enclosure
                - tag: enclosure
                  value: '{#DURABLE.ID}'
            - uuid: cd0ec35c114b41579d0dfcebdc5e7211
              name: 'Enclosure [{#DURABLE.ID}]: Power'
              type: DEPENDENT
              key: 'hpe.msa.enclosures["{#DURABLE.ID}",power]'
              value_type: FLOAT
              units: W
              description: 'Enclosure power in watts.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''enclosure-power'']'
              master_item:
                key: 'hpe.msa.get.enclosures["{#DURABLE.ID}",data]'
              tags:
                - tag: component
                  value: enclosure
                - tag: enclosure
                  value: '{#DURABLE.ID}'
            - uuid: 98205e12a4c44a35a59879da5cc9f39c
              name: 'Enclosure [{#DURABLE.ID}]: Status'
              type: DEPENDENT
              key: 'hpe.msa.enclosures["{#DURABLE.ID}",status]'
              description: 'Enclosure status.'
              valuemap:
                name: 'Enclosure status'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''status-numeric'']'
                  error_handler: CUSTOM_VALUE
                  error_handler_params: '6'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: 'hpe.msa.get.enclosures["{#DURABLE.ID}",data]'
              tags:
                - tag: component
                  value: enclosure
                - tag: component
                  value: health
                - tag: enclosure
                  value: '{#DURABLE.ID}'
              trigger_prototypes:
                - uuid: db8329f956d94e74bb6379b29a000bf0
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.enclosures["{#DURABLE.ID}",status])=2'
                  name: 'HPE MSA 2040 Storage: Enclosure [{#DURABLE.ID}]: Enclosure has critical status'
                  priority: HIGH
                  description: 'Enclosure has critical status.'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: 6a32b4a08bfb49939633b42a16041c7f
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.enclosures["{#DURABLE.ID}",status])=6'
                  name: 'HPE MSA 2040 Storage: Enclosure [{#DURABLE.ID}]: Enclosure has unknown status'
                  priority: INFO
                  description: 'Enclosure has unknown status.'
                  tags:
                    - tag: scope
                      value: notice
                - uuid: 2fd78acd77804a1f8a474c973bf5c93e
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.enclosures["{#DURABLE.ID}",status])=3'
                  name: 'HPE MSA 2040 Storage: Enclosure [{#DURABLE.ID}]: Enclosure has warning status'
                  priority: WARNING
                  description: 'Enclosure has warning status.'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: 8cecd9a3ecf14931b8b3ccffff4a4615
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.enclosures["{#DURABLE.ID}",status])=7'
                  name: 'HPE MSA 2040 Storage: Enclosure [{#DURABLE.ID}]: Enclosure is unavailable'
                  priority: HIGH
                  description: 'Enclosure is unavailable.'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: 458cfb2a9dfb476dae940b66342b12bf
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.enclosures["{#DURABLE.ID}",status])=4'
                  name: 'HPE MSA 2040 Storage: Enclosure [{#DURABLE.ID}]: Enclosure is unrecoverable'
                  priority: HIGH
                  description: 'Enclosure is unrecoverable.'
                  tags:
                    - tag: scope
                      value: availability
            - uuid: db3050d98b0548acbc3cf318ce71e9e3
              name: 'Enclosure [{#DURABLE.ID}]: Get data'
              type: DEPENDENT
              key: 'hpe.msa.get.enclosures["{#DURABLE.ID}",data]'
              history: '0'
              value_type: TEXT
              description: 'The discovered enclosure data.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$[?(@[''durable-id''] == "{#DURABLE.ID}")].first()'
              master_item:
                key: hpe.msa.get.enclosures
              tags:
                - tag: component
                  value: enclosure
                - tag: component
                  value: raw
                - tag: enclosure
                  value: '{#DURABLE.ID}'
          master_item:
            key: hpe.msa.get.enclosures
          lld_macro_paths:
            - lld_macro: '{#DURABLE.ID}'
              path: '$.[''durable-id'']'
        - uuid: 6900c1efa2b3456ead4ae5e5a033700e
          name: 'Fans discovery'
          type: DEPENDENT
          key: hpe.msa.fans.discovery
          description: 'Discover fans.'
          item_prototypes:
            - uuid: b4732ef73f0e4fcc9458797b28e2b829
              name: 'Fan [{#DURABLE.ID}]: Health'
              type: DEPENDENT
              key: 'hpe.msa.fans["{#DURABLE.ID}",health]'
              description: 'Fan health status.'
              valuemap:
                name: Health
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''health-numeric'']'
                  error_handler: CUSTOM_VALUE
                  error_handler_params: '4'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: 'hpe.msa.get.fans["{#DURABLE.ID}",data]'
              tags:
                - tag: component
                  value: fan
                - tag: component
                  value: health
                - tag: fan
                  value: '{#DURABLE.ID}'
              trigger_prototypes:
                - uuid: 377a9c494a5443c0ba694ab78683da17
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.fans["{#DURABLE.ID}",health])=1'
                  name: 'HPE MSA 2040 Storage: Fan [{#DURABLE.ID}]: Fan health is in degraded state'
                  priority: WARNING
                  description: 'Fan health is in degraded state.'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: 4446cef7b06140e3a29018944201ebd7
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.fans["{#DURABLE.ID}",health])=2'
                  name: 'HPE MSA 2040 Storage: Fan [{#DURABLE.ID}]: Fan health is in fault state'
                  priority: AVERAGE
                  description: 'Fan health is in fault state.'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: 3273a1f3595046e69ef6c74ac6f56eeb
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.fans["{#DURABLE.ID}",health])=3'
                  name: 'HPE MSA 2040 Storage: Fan [{#DURABLE.ID}]: Fan health is in unknown state'
                  priority: INFO
                  description: 'Fan health is in unknown state.'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: eb7057d0b65e40138899753b06abfb68
              name: 'Fan [{#DURABLE.ID}]: Speed'
              type: DEPENDENT
              key: 'hpe.msa.fans["{#DURABLE.ID}",speed]'
              units: '!RPM'
              description: 'Fan speed (revolutions per minute).'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''speed'']'
              master_item:
                key: 'hpe.msa.get.fans["{#DURABLE.ID}",data]'
              tags:
                - tag: component
                  value: fan
                - tag: fan
                  value: '{#DURABLE.ID}'
            - uuid: 45f948cb8f484367a7a5735beb796a1b
              name: 'Fan [{#DURABLE.ID}]: Status'
              type: DEPENDENT
              key: 'hpe.msa.fans["{#DURABLE.ID}",status]'
              description: 'Fan status.'
              valuemap:
                name: 'Fan status'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''status-numeric'']'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: 'hpe.msa.get.fans["{#DURABLE.ID}",data]'
              tags:
                - tag: component
                  value: fan
                - tag: component
                  value: health
                - tag: fan
                  value: '{#DURABLE.ID}'
              trigger_prototypes:
                - uuid: f8afe70029aa4cdfb1f68452eea27986
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.fans["{#DURABLE.ID}",status])=1'
                  name: 'HPE MSA 2040 Storage: Fan [{#DURABLE.ID}]: Fan has error status'
                  priority: AVERAGE
                  description: 'Fan has error status.'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: 8ad445006c51474fbee30a70971a97a5
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.fans["{#DURABLE.ID}",status])=3'
                  name: 'HPE MSA 2040 Storage: Fan [{#DURABLE.ID}]: Fan is missing'
                  priority: INFO
                  description: 'Fan is missing.'
                  tags:
                    - tag: scope
                      value: notice
                - uuid: fabe4e0bde194675a089db45125428b6
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.fans["{#DURABLE.ID}",status])=2'
                  name: 'HPE MSA 2040 Storage: Fan [{#DURABLE.ID}]: Fan is off'
                  priority: WARNING
                  description: 'Fan is off.'
                  tags:
                    - tag: scope
                      value: availability
            - uuid: 8fe64d81153d430c8aa862394a384172
              name: 'Fan [{#DURABLE.ID}]: Get data'
              type: DEPENDENT
              key: 'hpe.msa.get.fans["{#DURABLE.ID}",data]'
              history: '0'
              value_type: TEXT
              description: 'The discovered fan data.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$[?(@[''durable-id''] == "{#DURABLE.ID}")].first()'
              master_item:
                key: hpe.msa.get.fans
              tags:
                - tag: component
                  value: fan
                - tag: component
                  value: raw
                - tag: fan
                  value: '{#DURABLE.ID}'
          graph_prototypes:
            - uuid: 44c2c9cdec6247cf8f4d0e2bd7e0e372
              name: 'Fan [{#DURABLE.ID}]: Speed'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'HPE MSA 2040 Storage by HTTP'
                    key: 'hpe.msa.fans["{#DURABLE.ID}",speed]'
          master_item:
            key: hpe.msa.get.fans
          lld_macro_paths:
            - lld_macro: '{#DURABLE.ID}'
              path: '$.[''durable-id'']'
        - uuid: ec7d856fd690401888f93f8d9c135828
          name: 'FRU discovery'
          type: DEPENDENT
          key: hpe.msa.frus.discovery
          filter:
            conditions:
              - macro: '{#TYPE}'
                value: ^(POWER_SUPPLY|RAID_IOM|CHASSIS_MIDPLANE)$
                operator: NOT_MATCHES_REGEX
          description: 'Discover FRU.'
          item_prototypes:
            - uuid: 77df1d8bfba9428e887025a05f02f306
              name: 'FRU [{#ENCLOSURE.ID}: {#LOCATION}]: Part number'
              type: DEPENDENT
              key: 'hpe.msa.frus["{#ENCLOSURE.ID}:{#LOCATION}",part_number]'
              value_type: CHAR
              description: '{#DESCRIPTION}. Part number of the FRU.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''part-number'']'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: 'hpe.msa.get.frus["{#ENCLOSURE.ID}:{#LOCATION}",data]'
              tags:
                - tag: component
                  value: fru
                - tag: fru
                  value: 'Enclosure {#ENCLOSURE.ID}: {#LOCATION}'
            - uuid: 04fc08de0c3947cba0c8f6c633ae3157
              name: 'FRU [{#ENCLOSURE.ID}: {#LOCATION}]: Serial number'
              type: DEPENDENT
              key: 'hpe.msa.frus["{#ENCLOSURE.ID}:{#LOCATION}",serial_number]'
              value_type: CHAR
              description: '{#DESCRIPTION}. FRU serial number.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''serial-number'']'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: 'hpe.msa.get.frus["{#ENCLOSURE.ID}:{#LOCATION}",data]'
              tags:
                - tag: component
                  value: fru
                - tag: fru
                  value: 'Enclosure {#ENCLOSURE.ID}: {#LOCATION}'
            - uuid: ef3acb289f9c4a8e919b136dabf7b5c5
              name: 'FRU [{#ENCLOSURE.ID}: {#LOCATION}]: Status'
              type: DEPENDENT
              key: 'hpe.msa.frus["{#ENCLOSURE.ID}:{#LOCATION}",status]'
              description: |
                {#DESCRIPTION}. FRU status:
                
                Absent: Component is not present.
                Fault: At least one subcomponent has a fault.
                Invalid data: For a power supply module, the EEPROM is improperly programmed.
                OK: All subcomponents are operating normally.
                Not available: Status is not available.
              valuemap:
                name: 'FRU status'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''fru-status'']'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
                - type: JAVASCRIPT
                  parameters:
                    - |
                      if (value == 'Absent') {
                      	return 2;
                      }
                      else if (value == 'Fault') {
                      	return 1;
                      }
                      else if (value == 'Invalid Data') {
                      	return 0;
                      }
                      else if (value == 'OK') {
                      	return 4;
                      }
                      else if (value == 'Not Available') {
                      	return 5;
                      }
                      return 6;
              master_item:
                key: 'hpe.msa.get.frus["{#ENCLOSURE.ID}:{#LOCATION}",data]'
              tags:
                - tag: component
                  value: fru
                - tag: component
                  value: health
                - tag: fru
                  value: 'Enclosure {#ENCLOSURE.ID}: {#LOCATION}'
              trigger_prototypes:
                - uuid: 8182ee0edeb94f4a845c7eda047718c8
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.frus["{#ENCLOSURE.ID}:{#LOCATION}",status])=0'
                  name: 'HPE MSA 2040 Storage: FRU [{#ENCLOSURE.ID}: {#LOCATION}]: FRU ID data is invalid'
                  priority: WARNING
                  description: 'The FRU ID data is invalid. The FRU''s EEPROM is improperly programmed.'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: 8bef225423a548c3a289c67c40ffd906
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.frus["{#ENCLOSURE.ID}:{#LOCATION}",status])=1'
                  name: 'HPE MSA 2040 Storage: FRU [{#ENCLOSURE.ID}: {#LOCATION}]: FRU status is Degraded or Fault'
                  priority: AVERAGE
                  description: 'FRU status is Degraded or Fault.'
                  tags:
                    - tag: scope
                      value: availability
            - uuid: e65d0d09a9244e46b7fd16e89128d50b
              name: 'FRU [{#ENCLOSURE.ID}: {#LOCATION}]: Get data'
              type: DEPENDENT
              key: 'hpe.msa.get.frus["{#ENCLOSURE.ID}:{#LOCATION}",data]'
              history: '0'
              value_type: TEXT
              description: 'The discovered FRU data.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$[?(@[''name''] == "{#TYPE}")].first()'
              master_item:
                key: hpe.msa.get.fru
              tags:
                - tag: component
                  value: fru
                - tag: component
                  value: raw
                - tag: fru
                  value: 'Enclosure {#ENCLOSURE.ID}: {#LOCATION}'
          master_item:
            key: hpe.msa.get.fru
          lld_macro_paths:
            - lld_macro: '{#DESCRIPTION}'
              path: '$.[''description'']'
            - lld_macro: '{#ENCLOSURE.ID}'
              path: '$.[''enclosure-id'']'
            - lld_macro: '{#LOCATION}'
              path: '$.[''fru-location'']'
            - lld_macro: '{#TYPE}'
              path: '$.[''name'']'
        - uuid: 082c1cfb851548928911b9ab69f6f75e
          name: 'Pools discovery'
          type: DEPENDENT
          key: hpe.msa.pools.discovery
          description: 'Discover pools.'
          item_prototypes:
            - uuid: 227c8ed5f3514aa886e27f28b49fe7fd
              name: 'Pool [{#NAME}]: Get data'
              type: DEPENDENT
              key: 'hpe.msa.get.pools["{#NAME}",data]'
              history: '0'
              value_type: TEXT
              description: 'The discovered pool data.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$[?(@[''name''] == "{#NAME}")].first()'
              master_item:
                key: hpe.msa.get.pools
              tags:
                - tag: component
                  value: pool
                - tag: component
                  value: raw
                - tag: pool
                  value: '{#NAME}'
            - uuid: 2a8b8ebd3bbb4e4e851602e1a84bb0da
              name: 'Pool [{#NAME}]: Space free'
              type: DEPENDENT
              key: 'hpe.msa.pools.space["{#NAME}",free]'
              description: 'The free space in the pool.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$[''total-avail-numeric'']'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
                - type: MULTIPLIER
                  parameters:
                    - '512'
              master_item:
                key: 'hpe.msa.get.pools["{#NAME}",data]'
              tags:
                - tag: component
                  value: pool
                - tag: pool
                  value: '{#NAME}'
            - uuid: 0518c9f95bad4208ba33def89432975d
              name: 'Pool [{#NAME}]: Space total'
              type: DEPENDENT
              key: 'hpe.msa.pools.space["{#NAME}",total]'
              units: B
              description: 'The capacity of the pool.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$[''total-size-numeric'']'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
                - type: MULTIPLIER
                  parameters:
                    - '512'
              master_item:
                key: 'hpe.msa.get.pools["{#NAME}",data]'
              tags:
                - tag: component
                  value: pool
                - tag: pool
                  value: '{#NAME}'
            - uuid: cc361d77ac8046fc833db41fbd5d2cd3
              name: 'Pool [{#NAME}]: Space utilization'
              type: CALCULATED
              key: 'hpe.msa.pools.space["{#NAME}",util]'
              value_type: FLOAT
              units: '%'
              params: '100-last(//hpe.msa.pools.space["{#NAME}",free])/last(//hpe.msa.pools.space["{#NAME}",total])*100'
              description: 'The space utilization percentage in the pool.'
              preprocessing:
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              tags:
                - tag: component
                  value: pool
                - tag: pool
                  value: '{#NAME}'
              trigger_prototypes:
                - uuid: 042ac4fedb00485c8c6f48016182b9dd
                  expression: 'min(/HPE MSA 2040 Storage by HTTP/hpe.msa.pools.space["{#NAME}",util],5m)>{$HPE.MSA.POOL.PUSED.MAX.CRIT:"{#NAME}"}'
                  name: 'HPE MSA 2040 Storage: Pool [{#NAME}]: Pool space is critically low'
                  event_name: 'HPE MSA 2040 Storage: Pool [{#NAME}]: Pool space is critically low (used > {$HPE.MSA.POOL.PUSED.MAX.CRIT:"{#NAME}"}%)'
                  priority: AVERAGE
                  description: 'Pool is running low on free space (less than {$HPE.MSA.POOL.PUSED.MAX.CRIT:"{#NAME}"}% available).'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: f4c7a9ed832d4668be64acf9da3c9814
                  expression: 'min(/HPE MSA 2040 Storage by HTTP/hpe.msa.pools.space["{#NAME}",util],5m)>{$HPE.MSA.POOL.PUSED.MAX.WARN:"{#NAME}"}'
                  name: 'HPE MSA 2040 Storage: Pool [{#NAME}]: Pool space is low'
                  event_name: 'HPE MSA 2040 Storage: Pool [{#NAME}]: Pool space is low (used > {$HPE.MSA.POOL.PUSED.MAX.WARN:"{#NAME}"}%)'
                  priority: WARNING
                  description: 'Pool is running low on free space (less than {$HPE.MSA.POOL.PUSED.MAX.WARN:"{#NAME}"}% available).'
                  dependencies:
                    - name: 'HPE MSA 2040 Storage: Pool [{#NAME}]: Pool space is critically low'
                      expression: 'min(/HPE MSA 2040 Storage by HTTP/hpe.msa.pools.space["{#NAME}",util],5m)>{$HPE.MSA.POOL.PUSED.MAX.CRIT:"{#NAME}"}'
                  tags:
                    - tag: scope
                      value: performance
            - uuid: 4b79ed6e64cc484bb69f3677cd7932ef
              name: 'Pool [{#NAME}]: Health'
              type: DEPENDENT
              key: 'hpe.msa.pools["{#NAME}",health]'
              description: 'Pool health.'
              valuemap:
                name: Health
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''health-numeric'']'
                  error_handler: CUSTOM_VALUE
                  error_handler_params: '4'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: 'hpe.msa.get.pools["{#NAME}",data]'
              tags:
                - tag: component
                  value: health
                - tag: component
                  value: pool
                - tag: pool
                  value: '{#NAME}'
              trigger_prototypes:
                - uuid: 7af3ccbf497c44adb907b6d15ecebe33
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.pools["{#NAME}",health])=1'
                  name: 'HPE MSA 2040 Storage: Pool [{#NAME}]: Pool health is in degraded state'
                  priority: WARNING
                  description: 'Pool health is in degraded state.'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: 093fa03c7c3f4ac4adbd3234bf6007a0
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.pools["{#NAME}",health])=2'
                  name: 'HPE MSA 2040 Storage: Pool [{#NAME}]: Pool health is in fault state'
                  priority: AVERAGE
                  description: 'Pool health is in fault state.'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: 2af3a0092d57420c95bf82adc39eae5f
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.pools["{#NAME}",health])=3'
                  name: 'HPE MSA 2040 Storage: Pool [{#NAME}]: Pool health is in unknown state'
                  priority: INFO
                  description: 'Pool [{#NAME}] health is in unknown state.'
                  tags:
                    - tag: scope
                      value: notice
          graph_prototypes:
            - uuid: 001c0a805d3a40bf86632b498883519d
              name: 'Pool [{#NAME}]: Space utilization'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'HPE MSA 2040 Storage by HTTP'
                    key: 'hpe.msa.pools.space["{#NAME}",free]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'HPE MSA 2040 Storage by HTTP'
                    key: 'hpe.msa.pools.space["{#NAME}",total]'
          master_item:
            key: hpe.msa.get.pools
          lld_macro_paths:
            - lld_macro: '{#NAME}'
              path: '$.[''name'']'
        - uuid: 09754bd16c674ff08fad52f060035961
          name: 'Ports discovery'
          type: DEPENDENT
          key: hpe.msa.ports.discovery
          description: 'Discover ports.'
          item_prototypes:
            - uuid: c0643381ec274865826cddd3ce598326
              name: 'Port [{#NAME}]: Get data'
              type: DEPENDENT
              key: 'hpe.msa.get.ports["{#NAME}",,data]'
              history: '0'
              value_type: TEXT
              description: 'The discovered port data.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$[?(@[''port''] == "{#NAME}")].first()'
              master_item:
                key: hpe.msa.get.ports
              tags:
                - tag: component
                  value: port
                - tag: component
                  value: raw
                - tag: port
                  value: '{#NAME}'
            - uuid: 27564169c2b04cba924162a5630bbd4b
              name: 'Port [{#NAME}]: Health'
              type: DEPENDENT
              key: 'hpe.msa.ports["{#NAME}",health]'
              description: 'Port health status.'
              valuemap:
                name: Health
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''health-numeric'']'
                  error_handler: CUSTOM_VALUE
                  error_handler_params: '4'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: 'hpe.msa.get.ports["{#NAME}",,data]'
              tags:
                - tag: component
                  value: health
                - tag: component
                  value: port
                - tag: port
                  value: '{#NAME}'
              trigger_prototypes:
                - uuid: 266d310dc71e4c60977668e330eec8df
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.ports["{#NAME}",health])=1'
                  name: 'HPE MSA 2040 Storage: Port [{#NAME}]: Port health is in degraded state'
                  priority: WARNING
                  description: 'Port health is in degraded state.'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: 19a02ecfb5d242ff85e233961cc4a384
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.ports["{#NAME}",health])=2'
                  name: 'HPE MSA 2040 Storage: Port [{#NAME}]: Port health is in fault state'
                  priority: AVERAGE
                  description: 'Port health is in fault state.'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: 8461e41fdd2944f08d3b95c63df0fa9f
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.ports["{#NAME}",health])=3'
                  name: 'HPE MSA 2040 Storage: Port [{#NAME}]: Port health is in unknown state'
                  priority: INFO
                  description: 'Port health is in unknown state.'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: 57986481099a4bffb5b61816e1ba4110
              name: 'Port [{#NAME}]: Status'
              type: DEPENDENT
              key: 'hpe.msa.ports["{#NAME}",status]'
              description: 'Port status.'
              valuemap:
                name: Status
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''status-numeric'']'
                  error_handler: CUSTOM_VALUE
                  error_handler_params: '4'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: 'hpe.msa.get.ports["{#NAME}",,data]'
              tags:
                - tag: component
                  value: health
                - tag: component
                  value: port
                - tag: port
                  value: '{#NAME}'
              trigger_prototypes:
                - uuid: 7ff86d50c241496d9bfa54359e17222e
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.ports["{#NAME}",status])=2'
                  name: 'HPE MSA 2040 Storage: Port [{#NAME}]: Port has error status'
                  priority: AVERAGE
                  description: 'Port has error status.'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: bdad67d08b92447e9964ea6362c0989c
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.ports["{#NAME}",status])=4'
                  name: 'HPE MSA 2040 Storage: Port [{#NAME}]: Port has unknown status'
                  priority: INFO
                  description: 'Port has unknown status.'
                  tags:
                    - tag: scope
                      value: notice
                - uuid: 95ba19413bca495aba96f32fa91bc54b
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.ports["{#NAME}",status])=1'
                  name: 'HPE MSA 2040 Storage: Port [{#NAME}]: Port has warning status'
                  priority: WARNING
                  description: 'Port has warning status.'
                  tags:
                    - tag: scope
                      value: performance
            - uuid: b1240a5950a3466b9d0725729bef3a03
              name: 'Port [{#NAME}]: Type'
              type: DEPENDENT
              key: 'hpe.msa.ports["{#NAME}",type]'
              description: 'Port type.'
              valuemap:
                name: 'Port type'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''port-type-numeric'']'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: 'hpe.msa.get.ports["{#NAME}",,data]'
              tags:
                - tag: component
                  value: port
                - tag: port
                  value: '{#NAME}'
          master_item:
            key: hpe.msa.get.ports
          lld_macro_paths:
            - lld_macro: '{#NAME}'
              path: '$.[''port'']'
        - uuid: 2cf7945eea95414a88ce572f4c075bb1
          name: 'Power supplies discovery'
          type: DEPENDENT
          key: hpe.msa.power_supplies.discovery
          description: 'Discover power supplies.'
          item_prototypes:
            - uuid: 029b4173b22f4359b5ee6013a524dd4f
              name: 'Power supply [{#DURABLE.ID}]: Get data'
              type: DEPENDENT
              key: 'hpe.msa.get.power_supplies["{#DURABLE.ID}",data]'
              history: '0'
              value_type: TEXT
              description: 'The discovered power supply data.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$[?(@[''durable-id''] == "{#DURABLE.ID}")].first()'
              master_item:
                key: hpe.msa.get.power_supplies
              tags:
                - tag: component
                  value: power-supply
                - tag: component
                  value: raw
                - tag: power-supply
                  value: '{#DURABLE.ID}'
            - uuid: 4e4f593738fb451cbfd1589a3054387e
              name: 'Power supply [{#DURABLE.ID}]: Health'
              type: DEPENDENT
              key: 'hpe.msa.power_supplies["{#DURABLE.ID}",health]'
              description: 'Power supply health status.'
              valuemap:
                name: Health
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''health-numeric'']'
                  error_handler: CUSTOM_VALUE
                  error_handler_params: '4'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: 'hpe.msa.get.power_supplies["{#DURABLE.ID}",data]'
              tags:
                - tag: component
                  value: health
                - tag: component
                  value: power-supply
                - tag: power-supply
                  value: '{#DURABLE.ID}'
              trigger_prototypes:
                - uuid: 2394f69a635a4072bd96494b8df8ae3e
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.power_supplies["{#DURABLE.ID}",health])=1'
                  name: 'HPE MSA 2040 Storage: Power supply [{#DURABLE.ID}]: Power supply health is in degraded state'
                  priority: WARNING
                  description: 'Power supply health is in degraded state.'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: f390553cfe4646e0ab9a4fd9cab20886
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.power_supplies["{#DURABLE.ID}",health])=2'
                  name: 'HPE MSA 2040 Storage: Power supply [{#DURABLE.ID}]: Power supply health is in fault state'
                  priority: AVERAGE
                  description: 'Power supply health is in fault state.'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: 9499fbdcc6a946138fb6cd69d8be9a00
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.power_supplies["{#DURABLE.ID}",health])=3'
                  name: 'HPE MSA 2040 Storage: Power supply [{#DURABLE.ID}]: Power supply health is in unknown state'
                  priority: INFO
                  description: 'Power supply health is in unknown state.'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: 1b72c54bff3a4b129e959db43e895839
              name: 'Power supply [{#DURABLE.ID}]: Part number'
              type: DEPENDENT
              key: 'hpe.msa.power_supplies["{#DURABLE.ID}",part_number]'
              value_type: CHAR
              description: 'Power supply part number.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''part-number'']'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: 'hpe.msa.get.power_supplies["{#DURABLE.ID}",data]'
              tags:
                - tag: component
                  value: power-supply
                - tag: power-supply
                  value: '{#DURABLE.ID}'
            - uuid: bdbf30f2e70d427bb9237b941fed5941
              name: 'Power supply [{#DURABLE.ID}]: Serial number'
              type: DEPENDENT
              key: 'hpe.msa.power_supplies["{#DURABLE.ID}",serial_number]'
              value_type: CHAR
              description: 'Power supply serial number.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''serial-number'']'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: 'hpe.msa.get.power_supplies["{#DURABLE.ID}",data]'
              tags:
                - tag: component
                  value: power-supply
                - tag: power-supply
                  value: '{#DURABLE.ID}'
            - uuid: 110fa50ee1d64ecdb064d3bd7b34dc90
              name: 'Power supply [{#DURABLE.ID}]: Status'
              type: DEPENDENT
              key: 'hpe.msa.power_supplies["{#DURABLE.ID}",status]'
              description: 'Power supply status.'
              valuemap:
                name: Status
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''status-numeric'']'
                  error_handler: CUSTOM_VALUE
                  error_handler_params: '4'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: 'hpe.msa.get.power_supplies["{#DURABLE.ID}",data]'
              tags:
                - tag: component
                  value: health
                - tag: component
                  value: power-supply
                - tag: power-supply
                  value: '{#DURABLE.ID}'
              trigger_prototypes:
                - uuid: 28896e70b14f463aae8c8af4786e52ff
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.power_supplies["{#DURABLE.ID}",status])=2'
                  name: 'HPE MSA 2040 Storage: Power supply [{#DURABLE.ID}]: Power supply has error status'
                  priority: AVERAGE
                  description: 'Power supply has error status.'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: ac6b0d55fbac4f338261f6a90b68e5b0
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.power_supplies["{#DURABLE.ID}",status])=4'
                  name: 'HPE MSA 2040 Storage: Power supply [{#DURABLE.ID}]: Power supply has unknown status'
                  priority: INFO
                  description: 'Power supply has unknown status.'
                  tags:
                    - tag: scope
                      value: notice
                - uuid: c9cddccdeed34aa4a533f0ad07aab5ae
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.power_supplies["{#DURABLE.ID}",status])=1'
                  name: 'HPE MSA 2040 Storage: Power supply [{#DURABLE.ID}]: Power supply has warning status'
                  priority: WARNING
                  description: 'Power supply has warning status.'
                  tags:
                    - tag: scope
                      value: performance
            - uuid: 8b4399f3d9624239be2e6ac15971300b
              name: 'Power supply [{#DURABLE.ID}]: Temperature'
              type: DEPENDENT
              key: 'hpe.msa.power_supplies["{#DURABLE.ID}",temperature]'
              units: '!°C'
              description: 'Power supply temperature.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''dctemp'']'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: 'hpe.msa.get.power_supplies["{#DURABLE.ID}",data]'
              tags:
                - tag: component
                  value: power-supply
                - tag: power-supply
                  value: '{#DURABLE.ID}'
          graph_prototypes:
            - uuid: 538040f8853648058e10830ddc2cba70
              name: 'Power supply [{#DURABLE.ID}]: Temperature'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'HPE MSA 2040 Storage by HTTP'
                    key: 'hpe.msa.power_supplies["{#DURABLE.ID}",temperature]'
          master_item:
            key: hpe.msa.get.power_supplies
          lld_macro_paths:
            - lld_macro: '{#DURABLE.ID}'
              path: '$.[''durable-id'']'
        - uuid: faae0d9be7ea4531a584a52002317cc9
          name: 'Volumes discovery'
          type: DEPENDENT
          key: hpe.msa.volumes.discovery
          description: 'Discover volumes.'
          item_prototypes:
            - uuid: 971c984b8fc44f05b24a30d11a482b3a
              name: 'Volume [{#NAME}]: Get statistics data'
              type: DEPENDENT
              key: 'hpe.msa.get.volumes.statistics["{#NAME}",data]'
              history: '0'
              value_type: TEXT
              description: 'The discovered volume statistics data.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[?(@[''volume-name''] == "{#NAME}")].first()'
              master_item:
                key: hpe.msa.get.volumes.statistics
              tags:
                - tag: component
                  value: raw
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#NAME}'
            - uuid: 2515db4e86d7486481583114c067d522
              name: 'Volume [{#NAME}]: Get data'
              type: DEPENDENT
              key: 'hpe.msa.get.volumes["{#NAME}",data]'
              history: '0'
              value_type: TEXT
              description: 'The discovered volume data.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[?(@[''volume-name''] == "{#NAME}")].first()'
              master_item:
                key: hpe.msa.get.volumes
              tags:
                - tag: component
                  value: raw
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#NAME}'
            - uuid: f9818ae47544417bb270af4f8f014c0a
              name: 'Volume [{#NAME}]: Cache: Read hits, rate'
              type: DEPENDENT
              key: 'hpe.msa.volumes.cache.read.hits["{#NAME}",rate]'
              description: 'For the controller that owns the volume, the number of times the block to be read is found in cache per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''read-cache-hits'']'
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'hpe.msa.get.volumes.statistics["{#NAME}",data]'
              tags:
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#NAME}'
            - uuid: 877afc03787443129373d955067f8c6c
              name: 'Volume [{#NAME}]: Cache: Read misses, rate'
              type: DEPENDENT
              key: 'hpe.msa.volumes.cache.read.misses["{#NAME}",rate]'
              description: 'For the controller that owns the volume, the number of times the block to be read is not found in cache per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''read-cache-misses'']'
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'hpe.msa.get.volumes.statistics["{#NAME}",data]'
              tags:
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#NAME}'
            - uuid: e3a0b52f33e847c980ffe3f4dcda5ab4
              name: 'Volume [{#NAME}]: Cache: Write hits, rate'
              type: DEPENDENT
              key: 'hpe.msa.volumes.cache.write.hits["{#NAME}",rate]'
              description: 'For the controller that owns the volume, the number of times the block written to is found in cache per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''write-cache-hits'']'
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'hpe.msa.get.volumes.statistics["{#NAME}",data]'
              tags:
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#NAME}'
            - uuid: b2b0c3fd7ab74eb3a6013c3f3d65e356
              name: 'Volume [{#NAME}]: Cache: Write misses, rate'
              type: DEPENDENT
              key: 'hpe.msa.volumes.cache.write.misses["{#NAME}",rate]'
              description: 'For the controller that owns the volume, the number of times the block written to is not found in cache per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''write-cache-misses'']'
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'hpe.msa.get.volumes.statistics["{#NAME}",data]'
              tags:
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#NAME}'
            - uuid: 6b12caedf23b4b768dbff01096d72c93
              name: 'Volume [{#NAME}]: Data transfer rate: Reads'
              type: DEPENDENT
              key: 'hpe.msa.volumes.data_transfer.reads["{#NAME}",rate]'
              value_type: FLOAT
              units: Bps
              description: 'The data read rate, in bytes per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''data-read-numeric'']'
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'hpe.msa.get.volumes.statistics["{#NAME}",data]'
              tags:
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#NAME}'
            - uuid: 705428d111dd49d19eb79b6a0de592c1
              name: 'Volume [{#NAME}]: Data transfer rate: Total'
              type: DEPENDENT
              key: 'hpe.msa.volumes.data_transfer.total["{#NAME}",rate]'
              units: Bps
              description: 'The data transfer rate, in bytes per second, calculated over the interval since these statistics were last requested or reset. This value will be zero if it has not been requested or reset since a controller restart.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''bytes-per-second-numeric'']'
              master_item:
                key: 'hpe.msa.get.volumes.statistics["{#NAME}",data]'
              tags:
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#NAME}'
            - uuid: 5f44581f011b46cf96ebd040de635976
              name: 'Volume [{#NAME}]: Data transfer rate: Writes'
              type: DEPENDENT
              key: 'hpe.msa.volumes.data_transfer.writes["{#NAME}",rate]'
              value_type: FLOAT
              units: Bps
              description: 'The data write rate, in bytes per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''data-written-numeric'']'
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'hpe.msa.get.volumes.statistics["{#NAME}",data]'
              tags:
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#NAME}'
            - uuid: 0e2831ed17ec4fe0a56b800086b47901
              name: 'Volume [{#NAME}]: IOPS, read rate'
              type: DEPENDENT
              key: 'hpe.msa.volumes.iops.read["{#NAME}",rate]'
              value_type: FLOAT
              units: '!r/s'
              description: 'Number of read operations per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''number-of-reads'']'
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'hpe.msa.get.volumes.statistics["{#NAME}",data]'
              tags:
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#NAME}'
            - uuid: 9d14e4239f5941a7bfb07b6645b9e698
              name: 'Volume [{#NAME}]: IOPS, total rate'
              type: DEPENDENT
              key: 'hpe.msa.volumes.iops.total["{#NAME}",rate]'
              units: '!iops'
              description: 'Total input/output operations per second, calculated over the interval since these statistics were last requested or reset. This value will be zero if it has not been requested or reset since a controller restart.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''iops'']'
              master_item:
                key: 'hpe.msa.get.volumes.statistics["{#NAME}",data]'
              tags:
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#NAME}'
            - uuid: e1a6b6cc609c4cf789978f01b18af31f
              name: 'Volume [{#NAME}]: IOPS, write rate'
              type: DEPENDENT
              key: 'hpe.msa.volumes.iops.write["{#NAME}",rate]'
              value_type: FLOAT
              units: '!w/s'
              description: 'Number of write operations per second.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''number-of-writes'']'
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'hpe.msa.get.volumes.statistics["{#NAME}",data]'
              tags:
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#NAME}'
            - uuid: b47d7b03e19f4e25803b1d639a0ecf43
              name: 'Volume [{#NAME}]: Space allocated'
              type: DEPENDENT
              key: 'hpe.msa.volumes.space["{#NAME}",allocated]'
              units: B
              description: 'The amount of space currently allocated to the volume.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$[''allocated-size-numeric'']'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
                - type: MULTIPLIER
                  parameters:
                    - '512'
              master_item:
                key: 'hpe.msa.get.volumes["{#NAME}",data]'
              tags:
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#NAME}'
            - uuid: b6aaba39f7c74dcf95947626852855c8
              name: 'Volume [{#NAME}]: Space total'
              type: DEPENDENT
              key: 'hpe.msa.volumes.space["{#NAME}",total]'
              units: B
              description: 'The capacity of the volume.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''size-numeric'']'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
                - type: MULTIPLIER
                  parameters:
                    - '512'
              master_item:
                key: 'hpe.msa.get.volumes["{#NAME}",data]'
              tags:
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#NAME}'
            - uuid: 46ab8b0e5feb439c9085e7eb12a6974d
              name: 'Volume [{#NAME}]: Health'
              type: DEPENDENT
              key: 'hpe.msa.volumes["{#DURABLE.ID}",health]'
              description: 'Volume health status.'
              valuemap:
                name: Health
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[''health-numeric'']'
                  error_handler: CUSTOM_VALUE
                  error_handler_params: '4'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: 'hpe.msa.get.volumes["{#NAME}",data]'
              tags:
                - tag: component
                  value: health
                - tag: component
                  value: volume
                - tag: volume
                  value: '{#NAME}'
              trigger_prototypes:
                - uuid: 50c47bfc2b4f43d6990e7d1b81ecc0bf
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.volumes["{#DURABLE.ID}",health])=1'
                  name: 'HPE MSA 2040 Storage: Volume [{#NAME}]: Volume health is in degraded state'
                  priority: WARNING
                  description: 'Volume health is in degraded state.'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: 2ff830017b814e7ea50313ecbedc9894
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.volumes["{#DURABLE.ID}",health])=2'
                  name: 'HPE MSA 2040 Storage: Volume [{#NAME}]: Volume health is in fault state'
                  priority: AVERAGE
                  description: 'Volume health is in fault state.'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: 2e8c2a0a40b640d4bf6177171c4af48d
                  expression: 'last(/HPE MSA 2040 Storage by HTTP/hpe.msa.volumes["{#DURABLE.ID}",health])=3'
                  name: 'HPE MSA 2040 Storage: Volume [{#NAME}]: Volume health is in unknown state'
                  priority: INFO
                  description: 'Volume health is in unknown state.'
                  tags:
                    - tag: scope
                      value: notice
          graph_prototypes:
            - uuid: 20d2047e3f024e5197362375601415eb
              name: 'Volume [{#NAME}]: Cache usage'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'HPE MSA 2040 Storage by HTTP'
                    key: 'hpe.msa.volumes.cache.read.hits["{#NAME}",rate]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'HPE MSA 2040 Storage by HTTP'
                    key: 'hpe.msa.volumes.cache.read.misses["{#NAME}",rate]'
                - sortorder: '2'
                  color: 00611C
                  item:
                    host: 'HPE MSA 2040 Storage by HTTP'
                    key: 'hpe.msa.volumes.cache.write.hits["{#NAME}",rate]'
                - sortorder: '3'
                  color: F7941D
                  item:
                    host: 'HPE MSA 2040 Storage by HTTP'
                    key: 'hpe.msa.volumes.cache.write.misses["{#NAME}",rate]'
            - uuid: 0b11191f26464e79add18302e245a9cc
              name: 'Volume [{#NAME}]: Data transfer rate'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'HPE MSA 2040 Storage by HTTP'
                    key: 'hpe.msa.volumes.data_transfer.reads["{#NAME}",rate]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'HPE MSA 2040 Storage by HTTP'
                    key: 'hpe.msa.volumes.data_transfer.writes["{#NAME}",rate]'
            - uuid: 133ef12b0cbc49a1a37c594f5c498643
              name: 'Volume [{#NAME}]: Disk operations rate'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'HPE MSA 2040 Storage by HTTP'
                    key: 'hpe.msa.volumes.iops.read["{#NAME}",rate]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'HPE MSA 2040 Storage by HTTP'
                    key: 'hpe.msa.volumes.iops.write["{#NAME}",rate]'
            - uuid: f8c4f07925404bc0b1e3ada45358580a
              name: 'Volume [{#NAME}]: Space utilization'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'HPE MSA 2040 Storage by HTTP'
                    key: 'hpe.msa.volumes.space["{#NAME}",allocated]'
                - sortorder: '1'
                  color: F63100
                  item:
                    host: 'HPE MSA 2040 Storage by HTTP'
                    key: 'hpe.msa.volumes.space["{#NAME}",total]'
          master_item:
            key: hpe.msa.get.volumes
          lld_macro_paths:
            - lld_macro: '{#NAME}'
              path: '$.[''volume-name'']'
      tags:
        - tag: class
          value: hardware
        - tag: class
          value: storage
        - tag: subclass
          value: server
        - tag: target
          value: hpe
        - tag: target
          value: msa-2040
      macros:
        - macro: '{$HPE.MSA.API.HOST}'
          description: 'The hostname or IP address of the API host.'
          config:
            type: TEXT
            priority: '2'
            label: Address
            description: 'The hostname or IP address of the API host.'
            required: 'YES'
        - macro: '{$HPE.MSA.API.PASSWORD}'
          type: SECRET_TEXT
          description: 'Specify password for API.'
          config:
            type: TEXT
            priority: '6'
            label: Password
            description: 'Specify password for API.'
            required: 'YES'
        - macro: '{$HPE.MSA.API.PORT}'
          value: '443'
          description: 'Connection port for API.'
          config:
            type: TEXT
            priority: '3'
            label: Port
            description: 'Connection port for API. In the range from 1 to 65535 inclusive.'
            required: 'YES'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$HPE.MSA.API.SCHEME}'
          value: https
          description: 'Connection scheme for API.'
          config:
            type: LIST
            priority: '1'
            label: Scheme
            description: 'Connection scheme for API.'
            required: 'YES'
            options:
              - value: http
                text: http
              - value: https
                text: https
        - macro: '{$HPE.MSA.API.USERNAME}'
          value: zabbix
          description: 'Specify user name for API.'
          config:
            type: TEXT
            priority: '5'
            label: Username
            description: 'Specify user name for API.'
            required: 'YES'
        - macro: '{$HPE.MSA.CONTROLLER.CPU.UTIL.CRIT}'
          value: '90'
          description: 'The critical threshold of the CPU utilization expressed in %.'
          config:
            type: TEXT
            priority: '11'
            section_name: Thresholds
            label: 'CPU utilization critical threshold (%)'
            description: 'The critical threshold of the CPU utilization expressed in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$HPE.MSA.DATA.TIMEOUT}'
          value: 30s
          description: 'Response timeout for API.'
          config:
            type: TEXT
            priority: '4'
            section_name: Other
            label: 'API response timeout'
            description: 'Response timeout for API.'
        - macro: '{$HPE.MSA.DISKS.GROUP.PUSED.MAX.CRIT}'
          value: '90'
          description: 'The critical threshold of the disk group space utilization in %.'
          config:
            type: TEXT
            priority: '8'
            section_name: Thresholds
            label: 'Disk group space critical threshold (%)'
            description: 'The critical threshold of the disk group space utilization in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$HPE.MSA.DISKS.GROUP.PUSED.MAX.WARN}'
          value: '80'
          description: 'The warning threshold of the disk group space utilization in %.'
          config:
            type: TEXT
            priority: '7'
            section_name: Thresholds
            label: 'Disk group space warning threshold (%)'
            description: 'The warning threshold of the disk group space utilization in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$HPE.MSA.POOL.PUSED.MAX.CRIT}'
          value: '90'
          description: 'The critical threshold of the pool space utilization in %.'
          config:
            type: TEXT
            priority: '10'
            section_name: Thresholds
            label: 'Pool space critical threshold (%)'
            description: 'The critical threshold of the pool space utilization in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$HPE.MSA.POOL.PUSED.MAX.WARN}'
          value: '80'
          description: 'The warning threshold of the pool space utilization in %.'
          config:
            type: TEXT
            priority: '9'
            section_name: Thresholds
            label: 'Pool space warning threshold (%)'
            description: 'The warning threshold of the pool space utilization in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
      dashboards:
        - uuid: 32f1ffd5ec5144fc9073b547cc7cfb01
          name: 'Storage overview'
          auto_start: 'NO'
          pages:
            - name: Controllers
              widgets:
                - type: graphprototype
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'HPE MSA 2040 Storage by HTTP'
                        name: 'Controller [{#CONTROLLER.ID}]: Cache: Write utilization'
                    - type: STRING
                      name: reference
                      value: AAAAA
                - type: graphprototype
                  'y': '5'
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'HPE MSA 2040 Storage by HTTP'
                        name: 'Controller [{#CONTROLLER.ID}]: Cache usage'
                    - type: STRING
                      name: reference
                      value: AAAAB
                - type: graphprototype
                  'y': '10'
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'HPE MSA 2040 Storage by HTTP'
                        name: 'Controller [{#CONTROLLER.ID}]: Controller CPU utilization'
                    - type: STRING
                      name: reference
                      value: AAAAC
                - type: graphprototype
                  'y': '15'
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'HPE MSA 2040 Storage by HTTP'
                        name: 'Controller [{#CONTROLLER.ID}]: Data transfer rate'
                    - type: STRING
                      name: reference
                      value: AAAAD
                - type: graphprototype
                  'y': '20'
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'HPE MSA 2040 Storage by HTTP'
                        name: 'Controller [{#CONTROLLER.ID}]: Disk operations rate'
                    - type: STRING
                      name: reference
                      value: AAAAE
            - name: 'Disk groups'
              widgets:
                - type: graphprototype
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'HPE MSA 2040 Storage by HTTP'
                        name: 'Disk group [{#NAME}]: Average response time'
                    - type: STRING
                      name: reference
                      value: AAAAF
                - type: graphprototype
                  'y': '5'
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'HPE MSA 2040 Storage by HTTP'
                        name: 'Disk group [{#NAME}]: Data transfer rate'
                    - type: STRING
                      name: reference
                      value: AAAAG
                - type: graphprototype
                  'y': '10'
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'HPE MSA 2040 Storage by HTTP'
                        name: 'Disk group [{#NAME}]: Disk operations rate'
                    - type: STRING
                      name: reference
                      value: AAAAH
                - type: graphprototype
                  'y': '15'
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'HPE MSA 2040 Storage by HTTP'
                        name: 'Disk group [{#NAME}]: Space utilization'
                    - type: STRING
                      name: reference
                      value: AAAAI
            - name: Fans
              widgets:
                - type: graphprototype
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'HPE MSA 2040 Storage by HTTP'
                        name: 'Fan [{#DURABLE.ID}]: Speed'
                    - type: STRING
                      name: reference
                      value: AAAAJ
            - name: Pools
              widgets:
                - type: graphprototype
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'HPE MSA 2040 Storage by HTTP'
                        name: 'Pool [{#NAME}]: Space utilization'
                    - type: STRING
                      name: reference
                      value: AAAAK
            - name: 'Power supplies'
              widgets:
                - type: graphprototype
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'HPE MSA 2040 Storage by HTTP'
                        name: 'Power supply [{#DURABLE.ID}]: Temperature'
                    - type: STRING
                      name: reference
                      value: AAAAL
            - name: Volumes
              widgets:
                - type: graphprototype
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'HPE MSA 2040 Storage by HTTP'
                        name: 'Volume [{#NAME}]: Cache usage'
                    - type: STRING
                      name: reference
                      value: AAAAM
                - type: graphprototype
                  'y': '5'
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'HPE MSA 2040 Storage by HTTP'
                        name: 'Volume [{#NAME}]: Data transfer rate'
                    - type: STRING
                      name: reference
                      value: AAAAN
                - type: graphprototype
                  'y': '10'
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'HPE MSA 2040 Storage by HTTP'
                        name: 'Volume [{#NAME}]: Disk operations rate'
                    - type: STRING
                      name: reference
                      value: AAAAO
                - type: graphprototype
                  'y': '15'
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'HPE MSA 2040 Storage by HTTP'
                        name: 'Volume [{#NAME}]: Space utilization'
                    - type: STRING
                      name: reference
                      value: AAAAP
      valuemaps:
        - uuid: 3bb065172c93464c9f5e2e569f523a05
          name: 'Controller status'
          mappings:
            - value: '0'
              newvalue: Operational
            - value: '1'
              newvalue: Down
            - value: '2'
              newvalue: 'Not Installed'
        - uuid: 78f22a3d82a64372abb3e3eeb08cf03e
          name: 'Disk group status'
          mappings:
            - value: '0'
              newvalue: FTOL
            - value: '1'
              newvalue: FTDN
            - value: '2'
              newvalue: CRIT
            - value: '3'
              newvalue: OFFL
            - value: '4'
              newvalue: QTCR
            - value: '5'
              newvalue: QTOF
            - value: '6'
              newvalue: QTDN
            - value: '7'
              newvalue: STOP
            - value: '8'
              newvalue: MSNG
            - value: '9'
              newvalue: DMGD
            - value: '11'
              newvalue: QTDN
            - value: '250'
              newvalue: UP
        - uuid: eb92d7812b8e4d2dbe4908fc3d42ade8
          name: 'Disk temperature status'
          mappings:
            - value: '1'
              newvalue: OK
            - value: '2'
              newvalue: Critical
            - value: '3'
              newvalue: Warning
            - value: '4'
              newvalue: Unknown
        - uuid: e6478ee0a41b49778f2a3dc130649838
          name: 'Disk type'
          mappings:
            - value: '4'
              newvalue: SAS
            - value: '8'
              newvalue: 'SSD SAS'
            - value: '11'
              newvalue: 'SAS MDL'
        - uuid: 243d29502c1c416c85eb2ccc961a159c
          name: 'Enclosure status'
          mappings:
            - value: '0'
              newvalue: Unsupported
            - value: '1'
              newvalue: Up
            - value: '2'
              newvalue: Error
            - value: '3'
              newvalue: Warning
            - value: '4'
              newvalue: Unrecoverable
            - value: '5'
              newvalue: 'Not Present'
            - value: '6'
              newvalue: Unknown
            - value: '7'
              newvalue: Unavailable
            - value: '20'
              newvalue: 'Spun Down'
        - uuid: 40916613dcf24dc2beb8634ec67c04bf
          name: 'Fan status'
          mappings:
            - value: '0'
              newvalue: Up
            - value: '1'
              newvalue: Error
            - value: '2'
              newvalue: 'Off'
            - value: '3'
              newvalue: Missing
        - uuid: f656acc354ab4593a1c1718668c02001
          name: 'FRU status'
          mappings:
            - value: '0'
              newvalue: 'Invalid data'
            - value: '1'
              newvalue: Fault
            - value: '2'
              newvalue: Absent
            - value: '4'
              newvalue: OK
            - value: '5'
              newvalue: 'Not available'
            - value: '6'
              newvalue: Unknown
        - uuid: 448c57be77694badb75dbdabe9b233df
          name: Health
          mappings:
            - value: '0'
              newvalue: OK
            - value: '1'
              newvalue: Degraded
            - value: '2'
              newvalue: Fault
            - value: '3'
              newvalue: Unknown
            - value: '4'
              newvalue: N/A
        - uuid: 66a23d01db744677a1878143ccf102c7
          name: 'Port type'
          mappings:
            - value: '0'
              newvalue: Unknown
            - value: '6'
              newvalue: FC
            - value: '8'
              newvalue: SAS
            - value: '9'
              newvalue: iSCSI
        - uuid: 996bbe1c4e2841d6ac35efd9b5236fef
          name: 'RAID type'
          mappings:
            - value: '0'
              newvalue: RAID0
            - value: '1'
              newvalue: RAID1
            - value: '3'
              newvalue: RAID3
            - value: '5'
              newvalue: RAID5
            - value: '6'
              newvalue: NRAID
            - value: '8'
              newvalue: RAID50
            - value: '10'
              newvalue: RAID10
            - value: '11'
              newvalue: RAID6
        - uuid: 6c5d6649be2347ca83258f0ab1a63137
          name: Status
          mappings:
            - value: '0'
              newvalue: Up
            - value: '1'
              newvalue: Warning
            - value: '2'
              newvalue: Error
            - value: '3'
              newvalue: 'Not present'
            - value: '4'
              newvalue: Unknown
            - value: '6'
              newvalue: Disconnected
    - uuid: fe7eb8b22ce84017b07bcab36e9032dc
      template: 'Juniper MX by SNMP'
      name: 'Juniper MX by SNMP'
      description: |
        The template for monitoring Juniper MX Series by SNMP.
        
        MIBs used:
        SNMPv2-MIB
        EtherLike-MIB
        HOST-RESOURCES-MIB
        IF-MIB
        OSPF-MIB
        JUNIPER-ALARM-MIB
        JUNIPER-DOM-MIB
        JUNIPER-MIB
        BGP4-V2-MIB-JUNIPER
        OSPFV3-MIB-JUNIPER
        
        Generated by official Zabbix template tool "Templator"
      wizard_ready: 'YES'
      readme: |
        The template for monitoring Juniper MX Series by SNMP.
        
            MIBs used:
            SNMPv2-MIB
            EtherLike-MIB
            HOST-RESOURCES-MIB
            IF-MIB
            OSPF-MIB
            JUNIPER-ALARM-MIB
            JUNIPER-DOM-MIB
            JUNIPER-MIB
            BGP4-V2-MIB-JUNIPER
            OSPFV3-MIB-JUNIPER
      vendor:
        name: Zabbix
        version: 8.0-2
      groups:
        - name: 'Templates/Network devices'
      items:
        - uuid: 2af50dac1b3245a9b6c350c1096209b6
          name: 'ICMP ping'
          type: SIMPLE
          key: icmpping
          valuemap:
            name: 'Service state'
          tags:
            - tag: component
              value: health
            - tag: component
              value: network
          triggers:
            - uuid: 07752b9c9851403a9ce753fcd122f808
              expression: 'max(/Juniper MX by SNMP/icmpping,#3)=0'
              name: 'Juniper MX: Unavailable by ICMP ping'
              priority: HIGH
              description: 'Last three attempts returned timeout. Please check device connectivity.'
              tags:
                - tag: scope
                  value: availability
        - uuid: 250e30e7298444df8208e15c6a32a1c5
          name: 'ICMP loss'
          type: SIMPLE
          key: icmppingloss
          value_type: FLOAT
          units: '%'
          tags:
            - tag: component
              value: health
            - tag: component
              value: network
          triggers:
            - uuid: e4cc0c30ff1544d68adfe9f3863e0f19
              expression: 'min(/Juniper MX by SNMP/icmppingloss,5m)>{$JUNIPER.MX.ICMP_LOSS_WARN} and min(/Juniper MX by SNMP/icmppingloss,5m)<100'
              name: 'Juniper MX: High ICMP ping loss'
              event_name: 'Juniper MX: High ICMP ping loss (over {$JUNIPER.MX.ICMP_LOSS_WARN}% for 5m)'
              opdata: 'Loss: {ITEM.LASTVALUE1}'
              priority: WARNING
              description: 'ICMP packet loss detected.'
              dependencies:
                - name: 'Juniper MX: Unavailable by ICMP ping'
                  expression: 'max(/Juniper MX by SNMP/icmpping,#3)=0'
              tags:
                - tag: scope
                  value: availability
                - tag: scope
                  value: performance
        - uuid: 8b40a9b8da8546e2a0b593e7dbb72537
          name: 'ICMP response time'
          type: SIMPLE
          key: icmppingsec
          value_type: FLOAT
          units: s
          tags:
            - tag: component
              value: health
            - tag: component
              value: network
          triggers:
            - uuid: d573e7a77408476e854de2e556480acc
              expression: 'avg(/Juniper MX by SNMP/icmppingsec,5m)>{$JUNIPER.MX.ICMP_RESPONSE_TIME_WARN}'
              name: 'Juniper MX: High ICMP ping response time'
              event_name: 'Juniper MX: High ICMP ping response time (over {$JUNIPER.MX.ICMP_RESPONSE_TIME_WARN}s for 5m)'
              opdata: 'Value: {ITEM.LASTVALUE1}'
              priority: WARNING
              description: 'Average ICMP response time is too high.'
              dependencies:
                - name: 'Juniper MX: High ICMP ping loss'
                  expression: 'min(/Juniper MX by SNMP/icmppingloss,5m)>{$JUNIPER.MX.ICMP_LOSS_WARN} and min(/Juniper MX by SNMP/icmppingloss,5m)<100'
                - name: 'Juniper MX: Unavailable by ICMP ping'
                  expression: 'max(/Juniper MX by SNMP/icmpping,#3)=0'
              tags:
                - tag: scope
                  value: availability
                - tag: scope
                  value: performance
        - uuid: 0335221808684100bd1e062a730a909d
          name: 'SNMP walk BGP Peer'
          type: SNMP_AGENT
          snmp_oid: 'walk[ 1.3.6.1.4.1.2636.5.1.1.2.1.1.1.3, 1.3.6.1.4.1.2636.5.1.1.2.4.1.1.1, 1.3.6.1.4.1.2636.5.1.1.2.6.2.1.2, 1.3.6.1.4.1.2636.5.1.1.2.6.2.1.7, 1.3.6.1.4.1.2636.5.1.1.2.6.2.1.8, 1.3.6.1.4.1.2636.5.1.1.2.6.2.1.10, 1.3.6.1.4.1.2636.5.1.1.2.1.1.1.2, 1.3.6.1.4.1.2636.5.1.1.2.1.1.1.11, 1.3.6.1.4.1.2636.5.1.1.2.1.1.1.14, 1.3.6.1.4.1.2636.5.1.1.2.1.1.1.13]'
          key: juniper.mx.bgp.peer.data.snmp.walk
          history: '0'
          value_type: TEXT
          description: 'Scanning `BGP4-V2-MIB-JUNIPER::jnxBgpM2PeerData` for BGP Peer Data.'
          tags:
            - tag: component
              value: raw
        - uuid: a6bab1f7b7bd45cf9dcfbb309957cf91
          name: 'SNMP walk BGP Prefix Counters'
          type: SNMP_AGENT
          snmp_oid: 'walk[ 1.3.6.1.4.1.2636.5.1.1.2.6.2.1.1, 1.3.6.1.4.1.2636.5.1.1.2.6.2.1.2, 1.3.6.1.4.1.2636.5.1.1.2.6.2.1.7, 1.3.6.1.4.1.2636.5.1.1.2.6.2.1.8, 1.3.6.1.4.1.2636.5.1.1.2.6.2.1.9, 1.3.6.1.4.1.2636.5.1.1.2.6.2.1.10, 1.3.6.1.4.1.2636.5.1.1.2.6.2.1.11]'
          key: juniper.mx.bgp.prefix.counters.snmp.walk
          history: '0'
          value_type: TEXT
          description: 'Scanning `BGP4-V2-MIB-JUNIPER::jnxBgpM2PrefixCountersTable` for Prefix Counters.'
          tags:
            - tag: component
              value: raw
        - uuid: 9d7d94b8c0d046d2a1a6426e89128719
          name: 'SNMP walk Multi-lane digital optical monitoring'
          type: SNMP_AGENT
          snmp_oid: 'walk[1.3.6.1.4.1.2636.3.60.1.2.1.1.1, 1.3.6.1.4.1.2636.3.60.1.2.1.1.2, 1.3.6.1.4.1.2636.3.60.1.2.1.1.4, 1.3.6.1.4.1.2636.3.60.1.2.1.1.6, 1.3.6.1.4.1.2636.3.60.1.2.1.1.8, 1.3.6.1.4.1.2636.3.60.1.2.1.1.9, 1.3.6.1.4.1.2636.3.60.1.1.1.1.8, 1.3.6.1.4.1.2636.3.60.1.1.1.1.30, 1.3.6.1.2.1.2.2.1.8, 1.3.6.1.2.1.2.2.1.7, 1.3.6.1.2.1.31.1.1.1.18, 1.3.6.1.2.1.31.1.1.1.1, 1.3.6.1.2.1.2.2.1.2, 1.3.6.1.2.1.2.2.1.3]'
          key: juniper.mx.dom.snmp.walk
          history: '0'
          value_type: TEXT
          description: 'Scanning `JUNIPER-DOM-MIB::jnxDomModuleLaneTable` for multi-lane digital optical monitoring.'
          tags:
            - tag: component
              value: raw
        - uuid: 7ddc368f670e40d1b5770e0a4428ce45
          name: 'SNMP walk EtherLike-MIB interfaces'
          type: SNMP_AGENT
          snmp_oid: 'walk[1.3.6.1.2.1.10.7.2.1.19,1.3.6.1.2.1.2.2.1.8,1.3.6.1.2.1.31.1.1.1.18,1.3.6.1.2.1.31.1.1.1.1,1.3.6.1.2.1.2.2.1.2]'
          key: juniper.mx.net.if.duplex.snmp.walk
          history: '0'
          value_type: TEXT
          description: 'Discovery of interfaces from IF-MIB and EtherLike-MIB. Interfaces with operational status `up(1)` are discovered.'
          tags:
            - tag: component
              value: raw
        - uuid: b11839f1bddd4781b23111511db1615a
          name: 'SNMP walk Network interfaces'
          type: SNMP_AGENT
          snmp_oid: 'walk[1.3.6.1.2.1.2.2.1.8, 1.3.6.1.2.1.2.2.1.2, 1.3.6.1.2.1.2.2.1.3, 1.3.6.1.2.1.2.2.1.7, 1.3.6.1.2.1.2.2.1.13, 1.3.6.1.2.1.2.2.1.14, 1.3.6.1.2.1.2.2.1.19, 1.3.6.1.2.1.2.2.1.20, 1.3.6.1.2.1.31.1.1.1.1, 1.3.6.1.2.1.31.1.1.1.6, 1.3.6.1.2.1.31.1.1.1.10, 1.3.6.1.2.1.31.1.1.1.15, 1.3.6.1.2.1.31.1.1.1.18]'
          key: juniper.mx.net.if.snmp.walk
          history: '0'
          value_type: TEXT
          description: 'Discovery of interfaces from IF-MIB.'
          tags:
            - tag: component
              value: raw
        - uuid: f42152e7c0504aa4bfa611725f365afc
          name: 'SNMP walk Operating Table'
          type: SNMP_AGENT
          snmp_oid: 'walk[1.3.6.1.4.1.2636.3.1.13.1.5, 1.3.6.1.4.1.2636.3.1.13.1.7, 1.3.6.1.4.1.2636.3.1.13.1.8, 1.3.6.1.4.1.2636.3.1.13.1.5.2, 1.3.6.1.4.1.2636.3.1.13.1.5.4, 1.3.6.1.4.1.2636.3.1.13.1.6.4, 1.3.6.1.4.1.2636.3.1.13.1.6.2, 1.3.6.1.4.1.2636.3.1.13.1.11]'
          key: juniper.mx.operating.snmp.walk
          history: '0'
          value_type: TEXT
          description: 'Scanning `JUNIPER-MIB::jnxOperatingTable` for CPU, Memory, Temperature, and Fans.'
          tags:
            - tag: component
              value: raw
        - uuid: 80f06a9c2725450e9b5a16377b2cf7af
          name: 'SNMP walk OSPF Neighbors'
          type: SNMP_AGENT
          snmp_oid: 'walk[ 1.3.6.1.2.1.14.10.1.1, 1.3.6.1.2.1.14.10.1.3, 1.3.6.1.2.1.14.10.1.5, 1.3.6.1.2.1.14.10.1.6, 1.3.6.1.2.1.14.10.1.7, 1.3.6.1.2.1.14.10.1.11]'
          key: juniper.mx.ospf.nbr.snmp.walk
          history: '0'
          value_type: TEXT
          description: 'Scanning `OSPF-MIB::ospfNbrTable` for OSPF Neighbors.'
          tags:
            - tag: component
              value: raw
        - uuid: 4f3115a33a6a43b6bf0ab2be3eeec995
          name: 'SNMP walk OSPFv3 Neighbors'
          type: SNMP_AGENT
          snmp_oid: 'walk[ 1.3.6.1.4.1.2636.5.4.1.1.9.1.5, 1.3.6.1.4.1.2636.5.4.1.1.9.1.7, 1.3.6.1.4.1.2636.5.4.1.1.9.1.8, 1.3.6.1.4.1.2636.5.4.1.1.9.1.9, 1.3.6.1.4.1.2636.5.4.1.1.9.1.11]'
          key: juniper.mx.ospfv3.nbr.snmp.walk
          history: '0'
          value_type: TEXT
          description: 'Scanning `OSPFV3-MIB-JUNIPER::jnxOspfv3NbrTable` for OSPFv3 Neighbors.'
          tags:
            - tag: component
              value: raw
        - uuid: d72814c5b9c64f4e843a04137b99dad6
          name: 'SNMP walk Redundancy Table'
          type: SNMP_AGENT
          snmp_oid: 'walk[1.3.6.1.4.1.2636.3.1.14.1.5, 1.3.6.1.4.1.2636.3.1.14.1.6, 1.3.6.1.4.1.2636.3.1.14.1.10, 1.3.6.1.4.1.2636.3.1.14.1.16, 1.3.6.1.4.1.2636.3.1.14.1.7]'
          key: juniper.mx.redundancy.table.snmp.walk
          history: '0'
          value_type: TEXT
          description: 'Scanning `JUNIPER-MIB::jnxRedundancyTable` for Router Redundancy.'
          tags:
            - tag: component
              value: raw
        - uuid: b9b7da53c32a4b48958c313ed45870b1
          name: 'System contact details'
          type: SNMP_AGENT
          snmp_oid: 'get[1.3.6.1.2.1.1.4.0]'
          key: 'juniper.mx.system.contact[sysContact.0]'
          delay: 15m
          value_type: CHAR
          description: |
            MIB: SNMPv2-MIB
            Name and contact information of the contact person for the node. If not provided, the value is a zero-length string.
          inventory_link: CONTACT
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 12h
          tags:
            - tag: component
              value: system
        - uuid: 092dbc3c0da648449e69047d3f83b2ba
          name: 'System description'
          type: SNMP_AGENT
          snmp_oid: 'get[1.3.6.1.2.1.1.1.0]'
          key: 'juniper.mx.system.descr[sysDescr.0]'
          delay: 15m
          value_type: CHAR
          description: |
            MIB: SNMPv2-MIB
            A textual description of the entity. This value should include the full name and version identification of the system's hardware type, software operating system, and networking software.
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 12h
          tags:
            - tag: component
              value: system
        - uuid: e101a0bd30ae45f6bff0b2b8c914f95b
          name: 'Hardware model name'
          type: SNMP_AGENT
          snmp_oid: 'get[1.3.6.1.4.1.2636.3.1.2.0]'
          key: juniper.mx.system.hw.model
          delay: 1h
          value_type: CHAR
          description: |
            MIB: JUNIPER-MIB
            The name, model, or detailed description of the device, indicating which product it represents, for example, `M40`.
          inventory_link: MODEL
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          tags:
            - tag: component
              value: system
        - uuid: 7fbc5fa8ef084cf585d5a617812b2d70
          name: 'Hardware serial number'
          type: SNMP_AGENT
          snmp_oid: 'get[1.3.6.1.4.1.2636.3.1.3.0]'
          key: juniper.mx.system.hw.serialnumber
          delay: 1h
          value_type: CHAR
          description: |
            MIB: JUNIPER-MIB
            The serial number of this subject, blank if unknown or unavailable.
          inventory_link: SERIALNO_A
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: 317bc72900e24f4991798775b48bc641
              expression: 'last(/Juniper MX by SNMP/juniper.mx.system.hw.serialnumber,#1)<>last(/Juniper MX by SNMP/juniper.mx.system.hw.serialnumber,#2) and length(last(/Juniper MX by SNMP/juniper.mx.system.hw.serialnumber))>0'
              name: 'Juniper MX: Device has been replaced'
              event_name: 'Juniper MX: Device has been replaced (new serial number received)'
              priority: INFO
              description: 'Device serial number has changed. Acknowledge to close the problem manually.'
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: notice
        - uuid: c2bcb74f5afe4659af6a614ea98dbf51
          name: 'Uptime (hardware)'
          type: SNMP_AGENT
          snmp_oid: 'get[1.3.6.1.2.1.25.1.1.0]'
          key: 'juniper.mx.system.hw.uptime[hrSystemUptime.0]'
          delay: 30s
          trends: '0'
          units: uptime
          description: |
            MIB: HOST-RESOURCES-MIB
            The amount of time since this host was last initialized. Note that this is different from `sysUpTime` in the SNMPv2-MIB [RFC1907] because `sysUpTime` is the uptime of the network management portion of the system.
          preprocessing:
            - type: CHECK_NOT_SUPPORTED
              parameters:
                - '-1'
              error_handler: CUSTOM_VALUE
              error_handler_params: '0'
            - type: MULTIPLIER
              parameters:
                - '0.01'
          tags:
            - tag: component
              value: system
        - uuid: ef6895d078204d17b7f3ba142c2075bf
          name: 'System location'
          type: SNMP_AGENT
          snmp_oid: 'get[1.3.6.1.2.1.1.6.0]'
          key: 'juniper.mx.system.location[sysLocation.0]'
          delay: 15m
          value_type: CHAR
          description: |
            MIB: SNMPv2-MIB
            Physical location of the node (e.g., `equipment room`, `3rd floor`). If not provided, the value is a zero-length string.
          inventory_link: LOCATION
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 12h
          tags:
            - tag: component
              value: system
        - uuid: 1a80dba9043e43edb4c073f397e471c9
          name: 'System name'
          type: SNMP_AGENT
          snmp_oid: 'get[1.3.6.1.2.1.1.5.0]'
          key: juniper.mx.system.name
          delay: 15m
          value_type: CHAR
          description: |
            MIB: SNMPv2-MIB
            An administratively-assigned name for this managed node. By convention, this is the node's fully-qualified domain name. If the name is unknown, the value is a zero-length string.
          inventory_link: NAME
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 12h
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: faec7813bfc14e5da59bfaf7ad639461
              expression: 'last(/Juniper MX by SNMP/juniper.mx.system.name,#1)<>last(/Juniper MX by SNMP/juniper.mx.system.name,#2) and length(last(/Juniper MX by SNMP/juniper.mx.system.name))>0'
              name: 'Juniper MX: System name has changed'
              event_name: 'Juniper MX: System name has changed (new name: {ITEM.VALUE})'
              priority: INFO
              description: 'The name of the system has changed. Acknowledge to close the problem manually.'
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: notice
                - tag: scope
                  value: security
        - uuid: 33b048b47db542d6bc304a0048e4b743
          name: 'Uptime (network)'
          type: SNMP_AGENT
          snmp_oid: 'get[1.3.6.1.2.1.1.3.0]'
          key: 'juniper.mx.system.net.uptime[sysUpTime.0]'
          delay: 30s
          trends: '0'
          units: uptime
          description: |
            MIB: SNMPv2-MIB
            Time (in hundredths of a second) since the network management portion of the system was last re-initialized.
          preprocessing:
            - type: MULTIPLIER
              parameters:
                - '0.01'
          tags:
            - tag: component
              value: system
        - uuid: 832ad6d2465e4c20813c194114d2655b
          name: 'System object ID'
          type: SNMP_AGENT
          snmp_oid: 'get[1.3.6.1.2.1.1.2.0]'
          key: 'juniper.mx.system.objectid[sysObjectID.0]'
          delay: 15m
          value_type: CHAR
          description: |
            MIB: SNMPv2-MIB
            The vendor's authoritative identification of the entity as part of the vendor's SMI enterprises subtree with the prefix 1.3.6.1.4.1 (e.g., a vendor with the identifier 1.3.6.1.4.1.4242 might assign a system object with the OID 1.3.6.1.4.1.4242.1.1).
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 12h
          tags:
            - tag: component
              value: system
        - uuid: 8f743934b3364cadbef2f178cc5aabb1
          name: 'Operating system'
          type: SNMP_AGENT
          snmp_oid: 'get[1.3.6.1.2.1.1.1.0]'
          key: 'juniper.mx.system.sw.os[sysDescr.0]'
          delay: 1h
          value_type: CHAR
          description: 'MIB: SNMPv2-MIB'
          inventory_link: OS
          preprocessing:
            - type: REGEX
              parameters:
                - 'kernel (JUNOS [0-9a-zA-Z\.\-]+)'
                - \1
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          tags:
            - tag: component
              value: os
          triggers:
            - uuid: 007d3cb1343144cc9ee01d24df45082d
              expression: 'last(/Juniper MX by SNMP/juniper.mx.system.sw.os[sysDescr.0],#1)<>last(/Juniper MX by SNMP/juniper.mx.system.sw.os[sysDescr.0],#2) and length(last(/Juniper MX by SNMP/juniper.mx.system.sw.os[sysDescr.0]))>0'
              name: 'Juniper MX: Operating system description has changed'
              priority: INFO
              description: 'Operating system description has changed. Possible reasons - system has been updated or replaced. Acknowledge to close the problem manually.'
              manual_close: 'YES'
              dependencies:
                - name: 'Juniper MX: System name has changed'
                  expression: 'last(/Juniper MX by SNMP/juniper.mx.system.name,#1)<>last(/Juniper MX by SNMP/juniper.mx.system.name,#2) and length(last(/Juniper MX by SNMP/juniper.mx.system.name))>0'
              tags:
                - tag: scope
                  value: notice
        - uuid: d2d0f8b19fc3474880ce2decd2880ce8
          name: 'SNMP traps (fallback)'
          type: SNMP_TRAP
          key: snmptrap.fallback
          value_type: LOG
          description: 'The item is used to collect all SNMP traps unmatched by other `snmptrap` items.'
          logtimefmt: 'hh:mm:sszyyyy/MM/dd'
          tags:
            - tag: component
              value: network
        - uuid: 8223b49a0d1f4467a5f79e423a4bf862
          name: 'SNMP agent availability'
          type: INTERNAL
          key: 'zabbix[host,snmp,available]'
          description: |
            Availability of SNMP checks on the host. The value of this item corresponds to availability icons in the host list.
            Possible values:
            0 - not available
            1 - available
            2 - unknown
          valuemap:
            name: zabbix.host.available
          tags:
            - tag: component
              value: health
            - tag: component
              value: network
          triggers:
            - uuid: a30f49e7b715409abec697f303ccc46c
              expression: 'max(/Juniper MX by SNMP/zabbix[host,snmp,available],{$JUNIPER.MX.SNMP.TIMEOUT})=0'
              name: 'Juniper MX: No SNMP data collection'
              opdata: 'Current state: {ITEM.LASTVALUE1}'
              priority: WARNING
              description: 'SNMP is not available for polling. Please check device connectivity and SNMP settings.'
              dependencies:
                - name: 'Juniper MX: Unavailable by ICMP ping'
                  expression: 'max(/Juniper MX by SNMP/icmpping,#3)=0'
              tags:
                - tag: scope
                  value: availability
      discovery_rules:
        - uuid: 68b0e4b2b82e41db9293dfff16bba68a
          name: 'BGP Peer discovery'
          type: DEPENDENT
          key: juniper.mx.bgp.peer.discovery
          description: 'Scanning `BGP4-V2-MIB-JUNIPER::jnxBgpM2PeerData` for BGP Peer.'
          item_prototypes:
            - uuid: 86a197104cd74bea88d26179e645146e
              name: 'BGP AS [{#BGPM2_PEER_REMOTE_AS}] Peer [{#BGPM2_PEER_REMOTE_ADDR}]: Established time'
              type: DEPENDENT
              key: 'juniper.mx.bgp.established.time[jnxBgpM2PeerFsmEstablishedTime.{#SNMPINDEX}]'
              value_type: FLOAT
              units: s
              description: 'This timer indicates how long (in seconds) this peer has been in the Established state or how long since this peer was last in the Established state. It is set to zero when a new peer is configured or the router is booted.'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.2636.5.1.1.2.4.1.1.1.{#SNMPINDEX}'
                    - '0'
              master_item:
                key: juniper.mx.bgp.peer.data.snmp.walk
              tags:
                - tag: address
                  value: '{#BGPM2_PEER_REMOTE_ADDR}'
                - tag: as
                  value: '{#BGPM2_PEER_REMOTE_AS}'
                - tag: component
                  value: bgp
                - tag: component
                  value: network
            - uuid: 68baa298dd0d44fb823ae291fbe21db3
              name: 'BGP AS [{#BGPM2_PEER_REMOTE_AS}] Peer [{#BGPM2_PEER_REMOTE_ADDR}]: State'
              type: DEPENDENT
              key: 'juniper.mx.bgp.state[jnxBgpM2PeerState.{#SNMPINDEX}]'
              value_type: FLOAT
              description: 'The remote BGP peer''s FSM state.'
              valuemap:
                name: 'BGP4-V2-MIB-JUNIPER::jnxBgpM2PeerState'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.2636.5.1.1.2.1.1.1.2.{#SNMPINDEX}'
                    - '0'
              master_item:
                key: juniper.mx.bgp.peer.data.snmp.walk
              tags:
                - tag: address
                  value: '{#BGPM2_PEER_REMOTE_ADDR}'
                - tag: as
                  value: '{#BGPM2_PEER_REMOTE_AS}'
                - tag: component
                  value: bgp
                - tag: component
                  value: network
            - uuid: 21a9a3b2f07c4b5b844b6e26289f5789
              name: 'BGP AS [{#BGPM2_PEER_REMOTE_AS}] Peer [{#BGPM2_PEER_REMOTE_ADDR}]: Status'
              type: DEPENDENT
              key: 'juniper.mx.bgp.status[jnxBgpM2PeerStatus.{#SNMPINDEX}]'
              value_type: FLOAT
              description: 'Whether or not the BGP FSM for this remote peer is halted or running. The BGP FSM for a remote peer is halted after processing a Stop event. Likewise, it is in the running state after a Start event. The `jnxBgpM2PeerState` will generally be in the idle state when the FSM is halted, although some extensions such as Graceful Restart will leave the peer in the Idle state but with the FSM running.'
              valuemap:
                name: 'BGP4-V2-MIB-JUNIPER::jnxBgpM2PeerStatus'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.2636.5.1.1.2.1.1.1.3.{#SNMPINDEX}'
                    - '0'
              master_item:
                key: juniper.mx.bgp.peer.data.snmp.walk
              tags:
                - tag: address
                  value: '{#BGPM2_PEER_REMOTE_ADDR}'
                - tag: as
                  value: '{#BGPM2_PEER_REMOTE_AS}'
                - tag: component
                  value: bgp
                - tag: component
                  value: network
          trigger_prototypes:
            - uuid: cdbf01b1b5bc4dfd8e53fe43efe8f6c0
              expression: 'last(/Juniper MX by SNMP/juniper.mx.bgp.state[jnxBgpM2PeerState.{#SNMPINDEX}],#3)<>6 and last(/Juniper MX by SNMP/juniper.mx.bgp.status[jnxBgpM2PeerStatus.{#SNMPINDEX}])=2'
              name: 'Juniper MX: BGP AS [{#BGPM2_PEER_REMOTE_AS}] Peer [{#BGPM2_PEER_REMOTE_ADDR}]: is down'
              opdata: 'Current state: {ITEM.LASTVALUE1}, Status: {ITEM.LASTVALUE2}'
              priority: HIGH
              description: 'Session [BGP AS [{#BGPM2_PEER_REMOTE_AS}] Peer [{#BGPM2_PEER_REMOTE_ADDR}]] is down, check the BGP configuration. For information on checking the BGP configuration, see https://www.juniper.net/documentation/us/en/software/junos/bgp/topics/topic-map/troubleshooting-bgp-sessions.html.'
              tags:
                - tag: scope
                  value: notice
          master_item:
            key: juniper.mx.bgp.peer.data.snmp.walk
          preprocessing:
            - type: SNMP_WALK_TO_JSON
              parameters:
                - '{#BGPM2_PEER_INDEX}'
                - 1.3.6.1.4.1.2636.5.1.1.2.1.1.1.14
                - '0'
                - '{#BGPM2_PEER_REMOTE_ADDR}'
                - 1.3.6.1.4.1.2636.5.1.1.2.1.1.1.11
                - '0'
                - '{#BGPM2_PEER_REMOTE_AS}'
                - 1.3.6.1.4.1.2636.5.1.1.2.1.1.1.13
                - '0'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'BGP instance is not running'
            - type: JAVASCRIPT
              parameters:
                - |
                  var bgp = JSON.parse(value);
                  
                  bgp.forEach(function (item, index, array) {
                  	var ip = item["{#BGPM2_PEER_REMOTE_ADDR}"];
                  	var parts = ip.trim().split(' ');
                  
                  	if (parts.length === 4) {
                  		for (var i = 0; i < parts.length; ++i) {
                  			parts[i] = parseInt(parts[i], 16);
                  		}
                  		ip = parts.join('.');
                  	}
                  	else if (parts.length == 16) {
                  		var ipSegments = [];
                  		for (var i = 0; i < parts.length; i += 4) {
                  			var ipv6 = parts.slice(i, i + 4).join('');
                  			ipv6 = parseInt(ipv6, 16).toString(16);
                  			ipSegments.push(ipv6 || '0');
                  		}
                  		ip = ipSegments.join(':').toLowerCase();
                  
                  		var maxZeros = 0, currZeros = 0, startIdx = -1, maxStartIdx = -1;
                  		for (i = 0; i < ipSegments.length; i++) {
                  			if (ipSegments[i] === '0') {
                  				if (currZeros === 0) startIdx = i;
                  				currZeros++;
                  			} else {
                  				if (currZeros > maxZeros) {
                  					maxZeros = currZeros;
                  					maxStartIdx = startIdx;
                  				}
                  				currZeros = 0;
                  			}
                  		}
                  		if (currZeros > maxZeros) {
                  			maxZeros = currZeros;
                  			maxStartIdx = startIdx;
                  		}
                  		if (maxZeros > 1) {
                  			ipSegments.splice(maxStartIdx, maxZeros, '');
                  			ip = ipSegments.join(':').replace(/(^:|:$)/, '');
                  		}
                  	}
                  
                  	array[index]["{#BGPM2_PEER_REMOTE_ADDR}"] = ip;
                  });
                  
                  return JSON.stringify(bgp);
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
        - uuid: cf094cdd507c4de2987638b4eae8c7f2
          name: 'BGP Prefix counter discovery'
          type: DEPENDENT
          key: juniper.mx.bgp.prefix.discovery
          description: 'Scanning `BGP4-V2-MIB-JUNIPER::jnxBgpM2PrefixCountersTable` for Prefix Counters.'
          item_prototypes:
            - uuid: bbb40d9366e2447284f131be0757f771
              name: 'BGP [{#BGPM2_AFI_SAFI}]: Accepted prefixes'
              type: DEPENDENT
              key: 'juniper.mx.bgp.prefix.accepted[jnxBgpM2PrefixInPrefixesAccepted.{#SNMPINDEX}]'
              value_type: FLOAT
              description: 'The number of prefixes for a peer that are installed in the Adj-Ribs-In and are eligible to become active in the Loc-Rib.'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.2636.5.1.1.2.6.2.1.8.{#SNMPINDEX}'
                    - '0'
              master_item:
                key: juniper.mx.bgp.prefix.counters.snmp.walk
              tags:
                - tag: component
                  value: bgp
                - tag: component
                  value: network
            - uuid: 5a4790cb345945518b5fb72ad3d1e600
              name: 'BGP [{#BGPM2_AFI_SAFI}]: Active prefixes'
              type: DEPENDENT
              key: 'juniper.mx.bgp.prefix.active[jnxBgpM2PrefixInPrefixesActive.{#SNMPINDEX}]'
              value_type: FLOAT
              description: 'The number of prefixes for a peer that are installed in the Adj-Ribs-In and are the active route in the Loc-Rib.'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.2636.5.1.1.2.6.2.1.11.{#SNMPINDEX}'
                    - '0'
              master_item:
                key: juniper.mx.bgp.prefix.counters.snmp.walk
              tags:
                - tag: component
                  value: bgp
                - tag: component
                  value: network
            - uuid: d6ed9f3cf0c046e692fe22a1bbb42637
              name: 'BGP [{#BGPM2_AFI_SAFI}]: Advertised prefixes'
              type: DEPENDENT
              key: 'juniper.mx.bgp.prefix.advertised[jnxBgpM2PrefixOutPrefixes.{#SNMPINDEX}]'
              value_type: FLOAT
              description: 'The number of prefixes for a peer that are installed in the peer''s Adj-Ribs-Out.'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.2636.5.1.1.2.6.2.1.10.{#SNMPINDEX}'
                    - '0'
              master_item:
                key: juniper.mx.bgp.prefix.counters.snmp.walk
              tags:
                - tag: component
                  value: bgp
                - tag: component
                  value: network
            - uuid: 573ceb98192c403ab93a7e4df07f982d
              name: 'BGP [{#BGPM2_AFI_SAFI}]: Received prefixes'
              type: DEPENDENT
              key: 'juniper.mx.bgp.prefix.received[jnxBgpM2PrefixInPrefixes.{#SNMPINDEX}]'
              value_type: FLOAT
              description: 'The number of prefixes received from a peer and stored in the Adj-Ribs-In for that peer.'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.2636.5.1.1.2.6.2.1.7.{#SNMPINDEX}'
                    - '0'
              master_item:
                key: juniper.mx.bgp.prefix.counters.snmp.walk
              tags:
                - tag: component
                  value: bgp
                - tag: component
                  value: network
            - uuid: 827208095c444966b85b0ce9e5cf16da
              name: 'BGP [{#BGPM2_AFI_SAFI}]: Rejected prefixes'
              type: DEPENDENT
              key: 'juniper.mx.bgp.prefix.rejected[jnxBgpM2PrefixInPrefixesRejected.{#SNMPINDEX}]'
              value_type: FLOAT
              description: 'The number of prefixes for a peer that are installed in the Adj-Ribs-In and are NOT eligible to become active in the Loc-Rib.'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.2636.5.1.1.2.6.2.1.9.{#SNMPINDEX}'
                    - '0'
              master_item:
                key: juniper.mx.bgp.prefix.counters.snmp.walk
              tags:
                - tag: component
                  value: bgp
                - tag: component
                  value: network
          master_item:
            key: juniper.mx.bgp.prefix.counters.snmp.walk
          preprocessing:
            - type: SNMP_WALK_TO_JSON
              parameters:
                - '{#BGPM2_PREFIX_AFI}'
                - 1.3.6.1.4.1.2636.5.1.1.2.6.2.1.1
                - '0'
                - '{#BGPM2_PREFIX_SAFI}'
                - 1.3.6.1.4.1.2636.5.1.1.2.6.2.1.2
                - '0'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'BGP instance is not running'
            - type: JAVASCRIPT
              parameters:
                - |
                  var inArray = JSON.parse(value);
                  var afiSafiMap = {
                  	'1.1': 'IPv4 unicast',
                  	'1.2': 'IPv4 multicast',
                  	'2.1': 'IPv6 unicast',
                  	'2.2': 'IPv6 multicast',
                  	'25.65': 'BGP-VPLS/BGP-L2VPN',
                  	'1.128': 'L3VPN IPv4 unicast',
                  	'1.129': 'L3VPN IPv4 multicast',
                  	'2.128': 'L3VPN IPv6 unicast',
                  	'2.129': 'L3VPN IPv6 multicast',
                  	'1.132': 'RT-Constrain',
                  	'1.133': 'Flow-spec',
                  	'1.134': 'Flow-spec',
                  	'3.128': 'CLNS VPN',
                  	'1.5': 'NG-MVPN IPv4',
                  	'2.5': 'NG-MVPN IPv6',
                  	'1.66': 'MDT-SAFI',
                  	'1.4': 'labeled IPv4',
                  	'2.4': 'labeled IPv6 (6PE)'
                  };
                  
                  var outArr = [];
                  inArray.forEach(function (item) {
                  	item['{#BGPM2_AFI_SAFI}'] = afiSafiMap[item['{#SNMPINDEX}'].slice(2)] === undefined ? "" : afiSafiMap[item['{#SNMPINDEX}'].slice(2)];
                  	outArr.push(item)
                  });
                  return JSON.stringify(outArr);
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
        - uuid: 68ad7154365b434f90e6461d4352fbfb
          name: 'CPU and Memory discovery'
          type: DEPENDENT
          key: juniper.mx.cpu.mem.discovery
          filter:
            conditions:
              - macro: '{#SNMPVALUE}'
                value: 'FPC.*'
              - macro: '{#SNMPVALUE}'
                value: 'Routing Engine.*'
          description: |
            Scanning `JUNIPER-MIB::jnxOperatingTable` for CPU and Memory.
            http://kb.juniper.net/InfoCenter/index?page=content&id=KB17526&actp=search. Filter limits results to Routing Engines.
          item_prototypes:
            - uuid: fc9c467c5aef496286063eb22150399b
              name: 'System [{#SNMPVALUE}]: CPU utilization'
              type: DEPENDENT
              key: 'juniper.mx.cpu.util[jnxOperatingCPU.{#SNMPINDEX}]'
              value_type: FLOAT
              units: '%'
              description: |
                MIB: JUNIPER-MIB
                The CPU utilization, in percent, of this subject. Zero if unavailable or inapplicable.
                Reference: http://kb.juniper.net/library/CUSTOMERSERVICE/GLOBAL_JTAC/BK26199/SRX%20SNMP%20Monitoring%20Guide_v1.1.pdf
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.2636.3.1.13.1.8.{#SNMPINDEX}'
                    - '0'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3m
              master_item:
                key: juniper.mx.operating.snmp.walk
              tags:
                - tag: component
                  value: cpu
              trigger_prototypes:
                - uuid: 2739dd5737084c40ab83214560b5a750
                  expression: 'min(/Juniper MX by SNMP/juniper.mx.cpu.util[jnxOperatingCPU.{#SNMPINDEX}],5m)>{$JUNIPER.MX.CPU.UTIL.CRIT}'
                  name: 'Juniper MX: System [{#SNMPVALUE}]: High CPU utilization'
                  event_name: 'Juniper MX: System [{#SNMPVALUE}]: High CPU utilization (over {$JUNIPER.MX.CPU.UTIL.CRIT}% for 5m)'
                  opdata: 'Current utilization: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'The CPU utilization is too high. The system might be slow to respond.'
                  tags:
                    - tag: scope
                      value: performance
            - uuid: e6809619fd6e468190ec180e482badb7
              name: 'System [{#SNMPVALUE}]: Memory utilization'
              type: DEPENDENT
              key: 'juniper.mx.memory.util[jnxOperatingBuffer.{#SNMPINDEX}]'
              value_type: FLOAT
              units: '%'
              description: |
                MIB: JUNIPER-MIB
                The buffer pool utilization, in percent, of this subject. Zero if unavailable or inapplicable.
                Reference: http://kb.juniper.net/library/CUSTOMERSERVICE/GLOBAL_JTAC/BK26199/SRX%20SNMP%20Monitoring%20Guide_v1.1.pdf
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.2636.3.1.13.1.11.{#SNMPINDEX}'
                    - '0'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3m
              master_item:
                key: juniper.mx.operating.snmp.walk
              tags:
                - tag: component
                  value: memory
              trigger_prototypes:
                - uuid: b88715979b6e4d56ab60dccdb6ce1089
                  expression: 'min(/Juniper MX by SNMP/juniper.mx.memory.util[jnxOperatingBuffer.{#SNMPINDEX}],5m)>{$JUNIPER.MX.MEMORY.UTIL.MAX}'
                  name: 'Juniper MX: System [{#SNMPVALUE}]: High memory utilization'
                  event_name: 'Juniper MX: System [{#SNMPVALUE}]: High memory utilization (>{$JUNIPER.MX.MEMORY.UTIL.MAX}% for 5m)'
                  opdata: 'Current utilization: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'The system is running out of free memory.'
                  tags:
                    - tag: scope
                      value: capacity
                    - tag: scope
                      value: performance
          graph_prototypes:
            - uuid: 409271fb7c764e94890fdf37dece3135
              name: 'Juniper MX: System [{#SNMPVALUE}]: CPU utilization'
              ymin_type_1: FIXED
              ymax_type_1: FIXED
              graph_items:
                - drawtype: GRADIENT_LINE
                  color: 199C0D
                  item:
                    host: 'Juniper MX by SNMP'
                    key: 'juniper.mx.cpu.util[jnxOperatingCPU.{#SNMPINDEX}]'
            - uuid: fe3ee4ee1f8648de90d1462ba268963a
              name: 'Juniper MX: System [{#SNMPVALUE}]: Memory utilization'
              ymin_type_1: FIXED
              ymax_type_1: FIXED
              graph_items:
                - drawtype: GRADIENT_LINE
                  color: 199C0D
                  item:
                    host: 'Juniper MX by SNMP'
                    key: 'juniper.mx.memory.util[jnxOperatingBuffer.{#SNMPINDEX}]'
          master_item:
            key: juniper.mx.operating.snmp.walk
          preprocessing:
            - type: SNMP_WALK_TO_JSON
              parameters:
                - '{#SNMPVALUE}'
                - 1.3.6.1.4.1.2636.3.1.13.1.5
                - '0'
              error_handler: DISCARD_VALUE
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
        - uuid: 97578fc561dd40ba95a7f8baa331fda4
          name: 'Multi-lane DOM discovery'
          type: DEPENDENT
          key: juniper.mx.dom.lane.discovery
          filter:
            evaltype: AND
            conditions:
              - macro: '{#IFALIAS}'
                value: '{$JUNIPER.MX.NET.IF.IFALIAS.MATCHES}'
              - macro: '{#IFALIAS}'
                value: '{$JUNIPER.MX.NET.IF.IFALIAS.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#IFDESCR}'
                value: '{$JUNIPER.MX.NET.IF.IFDESCR.MATCHES}'
              - macro: '{#IFDESCR}'
                value: '{$JUNIPER.MX.NET.IF.IFDESCR.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#IFNAME}'
                value: '{$JUNIPER.MX.NET.IF.IFNAME.MATCHES}'
              - macro: '{#IFNAME}'
                value: '{$JUNIPER.MX.NET.IF.IFNAME.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#LASERTEMP}'
                value: ^0$
                operator: NOT_MATCHES_REGEX
              - macro: '{#MODULELANECOUNT}'
                operator: EXISTS
              - macro: '{#RXLASER}'
                value: ^0$
                operator: NOT_MATCHES_REGEX
          description: 'Used for information about Digital Optical Monitoring for a Lane of an SFF optical module, as defined in JUNIPER-DOM-MIB.'
          item_prototypes:
            - uuid: 8af21c5d4a5a422da72048b595e4b557
              name: 'SFP [{#IFNAME}][{#IFALIAS}]: Module lane [{#LANEINDEX}] alarms'
              type: DEPENDENT
              key: 'juniper.mx.dom.alarms.lane.laser[jnxDomCurrentLaneAlarms.{#SNMPINDEX}.{#LANEINDEX}]'
              value_type: TEXT
              description: 'This item identifies all the active DOM alarms on a particular Lane of an SFF physical interface.'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.2636.3.60.1.2.1.1.2.{#PORTINDEX}.{#LANEINDEX}'
                    - '0'
                - type: JAVASCRIPT
                  parameters:
                    - |
                      function parseBits(bitString) {
                      	var bitsArray = bitString.split(' ');
                      	var bits = '';
                      	for (var i = 0; i < bitsArray.length; i++) {
                      		var binaryString = parseInt(bitsArray[i], 16).toString(2);
                      
                      		while (binaryString.length < 8) {
                      			binaryString = '0' + binaryString;
                      		}
                      
                      		bits += binaryString;
                      	}
                      
                      	var bitFlags = {
                      		domLaneRxLaserPowerHighAlarm: 0,
                      		domLaneRxLaserPowerLowAlarm: 1,
                      		domLaneTxLaserBiasCurrentHighAlarm: 2,
                      		domLaneTxLaserBiasCurrentLowAlarm: 3,
                      		domLaneTxLaserOutputPowerHighAlarm: 4,
                      		domLaneTxLaserOutputPowerLowAlarm: 5,
                      		domLaneLaserTemperatureHighAlarm: 6,
                      		domLaneLaserTemperatureLowAlarm: 7
                      	};
                      
                      	var result = {};
                      
                      	for (var flag in bitFlags) {
                      		if (bitFlags.hasOwnProperty(flag)) {
                      			var index = bitFlags[flag];
                      			result[flag] = bits[index] === '1';
                      		}
                      	}
                      
                      	return result;
                      }
                      
                      return JSON.stringify(parseBits(value));
              master_item:
                key: juniper.mx.dom.snmp.walk
              tags:
                - tag: alias
                  value: '{#IFALIAS}'
                - tag: component
                  value: dom
                - tag: component
                  value: network
                - tag: sfp
                  value: '{#IFNAME}'
              trigger_prototypes:
                - uuid: 06fa038e24c54f4db6d9ff0394c508b3
                  expression: 'jsonpath(last(/Juniper MX by SNMP/juniper.mx.dom.alarms.lane.laser[jnxDomCurrentLaneAlarms.{#SNMPINDEX}.{#LANEINDEX}]),"$.domLaneRxLaserPowerHighAlarm")="true"'
                  name: 'Juniper MX: SFP [{#IFNAME}][{#IFALIAS}]: Rx power high'
                  event_name: 'Juniper MX: SFP [{#IFNAME}][{#IFALIAS}]: Rx laser power high on [{#LANEINDEX}] lane'
                  opdata: 'Status alarm: "true"'
                  priority: WARNING
                  description: 'Receiver laser power - high alarm threshold.'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: 51f020c7950d4337b88f0006a8895700
                  expression: 'jsonpath(last(/Juniper MX by SNMP/juniper.mx.dom.alarms.lane.laser[jnxDomCurrentLaneAlarms.{#SNMPINDEX}.{#LANEINDEX}]),"$.domLaneRxLaserPowerLowAlarm")="true"'
                  name: 'Juniper MX: SFP [{#IFNAME}][{#IFALIAS}]: Rx power low'
                  event_name: 'Juniper MX: SFP [{#IFNAME}][{#IFALIAS}]: Rx laser power low on [{#LANEINDEX}] lane'
                  opdata: 'Status alarm: "true"'
                  priority: WARNING
                  description: 'Receiver laser power - low alarm threshold.'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: 24dc66bf852a444cb8a5e8190d6c585d
                  expression: 'jsonpath(last(/Juniper MX by SNMP/juniper.mx.dom.alarms.lane.laser[jnxDomCurrentLaneAlarms.{#SNMPINDEX}.{#LANEINDEX}]),"$.domLaneLaserTemperatureHighAlarm")="true"'
                  name: 'Juniper MX: SFP [{#IFNAME}][{#IFALIAS}]: Temperature High'
                  event_name: 'Juniper MX: SFP [{#IFNAME}][{#IFALIAS}]: Laser temperature high on [{#LANEINDEX}] lane'
                  opdata: 'Status alarm: "true"'
                  priority: WARNING
                  description: 'Module temperature - high alarm threshold.'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: 030018ccb02e43af8ff228ca10c6175c
                  expression: 'jsonpath(last(/Juniper MX by SNMP/juniper.mx.dom.alarms.lane.laser[jnxDomCurrentLaneAlarms.{#SNMPINDEX}.{#LANEINDEX}]),"$.domLaneLaserTemperatureLowAlarm")="true"'
                  name: 'Juniper MX: SFP [{#IFNAME}][{#IFALIAS}]: Temperature Low'
                  event_name: 'Juniper MX: SFP [{#IFNAME}][{#IFALIAS}]: Laser temperature low on [{#LANEINDEX}] lane'
                  opdata: 'Status alarm: "true"'
                  priority: WARNING
                  description: 'Module temperature - low alarm threshold.'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: 67575aa6971e4aa6987d61a3cd890a41
                  expression: 'jsonpath(last(/Juniper MX by SNMP/juniper.mx.dom.alarms.lane.laser[jnxDomCurrentLaneAlarms.{#SNMPINDEX}.{#LANEINDEX}]),"$.domLaneTxLaserBiasCurrentHighAlarm")="true"'
                  name: 'Juniper MX: SFP [{#IFNAME}][{#IFALIAS}]: Tx bias high'
                  event_name: 'Juniper MX: SFP [{#IFNAME}][{#IFALIAS}]: Tx laser bias current high on [{#LANEINDEX}] lane'
                  opdata: 'Status alarm: "true"'
                  priority: WARNING
                  description: 'Transmitter laser bias current - high alarm threshold.'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: 27b9d3d1af0c4c65bcf22e6d71c760af
                  expression: 'jsonpath(last(/Juniper MX by SNMP/juniper.mx.dom.alarms.lane.laser[jnxDomCurrentLaneAlarms.{#SNMPINDEX}.{#LANEINDEX}]),"$.domLaneTxLaserBiasCurrentLowAlarm")="true"'
                  name: 'Juniper MX: SFP [{#IFNAME}][{#IFALIAS}]: Tx bias low'
                  event_name: 'Juniper MX: SFP [{#IFNAME}][{#IFALIAS}]: Tx laser bias current low on [{#LANEINDEX}] lane'
                  opdata: 'Status alarm: "true"'
                  priority: WARNING
                  description: 'Transmitter laser bias current - low alarm threshold.'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: c64e77302be84ff7bb7e2b4b2e33b6c7
                  expression: 'jsonpath(last(/Juniper MX by SNMP/juniper.mx.dom.alarms.lane.laser[jnxDomCurrentLaneAlarms.{#SNMPINDEX}.{#LANEINDEX}]),"$.domLaneTxLaserOutputPowerHighAlarm")="true"'
                  name: 'Juniper MX: SFP [{#IFNAME}][{#IFALIAS}]: Tx power high'
                  event_name: 'Juniper MX: SFP [{#IFNAME}][{#IFALIAS}]: Tx laser power high on [{#LANEINDEX}] lane'
                  opdata: 'Status alarm: "true"'
                  priority: WARNING
                  description: 'Transmitter laser power - high alarm threshold.'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: e8ff233746604369b4419ca405990d5b
                  expression: 'jsonpath(last(/Juniper MX by SNMP/juniper.mx.dom.alarms.lane.laser[jnxDomCurrentLaneAlarms.{#SNMPINDEX}.{#LANEINDEX}]),"$.domLaneTxLaserOutputPowerLowAlarm")="true"'
                  name: 'Juniper MX: SFP [{#IFNAME}][{#IFALIAS}]: Tx power low'
                  event_name: 'Juniper MX: SFP [{#IFNAME}][{#IFALIAS}]: Tx laser power low on [{#LANEINDEX}] lane'
                  opdata: 'Status alarm: "true"'
                  priority: WARNING
                  description: 'Transmitter laser power - low alarm threshold.'
                  tags:
                    - tag: scope
                      value: performance
            - uuid: eb00143fd1364120aa02238f60d4c05e
              name: 'SFP [{#IFNAME}][{#IFALIAS}]: Rx optical power lane [{#LANEINDEX}]'
              type: DEPENDENT
              key: 'juniper.mx.dom.rx.lane.laser[jnxDomCurrentLaneRxLaserPower.{#SNMPINDEX}.{#LANEINDEX}]'
              value_type: FLOAT
              units: dbm
              description: 'Receiver laser power on a particular Lane of an SFF physical interface.'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.2636.3.60.1.2.1.1.6.{#PORTINDEX}.{#LANEINDEX}'
                    - '0'
                - type: MULTIPLIER
                  parameters:
                    - '0.01'
              master_item:
                key: juniper.mx.dom.snmp.walk
              tags:
                - tag: alias
                  value: '{#IFALIAS}'
                - tag: component
                  value: dom
                - tag: component
                  value: network
                - tag: sfp
                  value: '{#IFNAME}'
            - uuid: bc1cda13a6fd4041b30c1ac045927cd9
              name: 'SFP [{#IFNAME}][{#IFALIAS}]: Tx optical power lane [{#LANEINDEX}]'
              type: DEPENDENT
              key: 'juniper.mx.dom.tx.lane.laser[jnxDomCurrentLaneTxLaserOutputPower.{#SNMPINDEX}.{#LANEINDEX}]'
              value_type: FLOAT
              units: dbm
              description: 'Transmitter laser power on a particular Lane of an SFF physical interface.'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.2636.3.60.1.2.1.1.8.{#PORTINDEX}.{#LANEINDEX}'
                    - '0'
                - type: MULTIPLIER
                  parameters:
                    - '0.01'
              master_item:
                key: juniper.mx.dom.snmp.walk
              tags:
                - tag: alias
                  value: '{#IFALIAS}'
                - tag: component
                  value: dom
                - tag: component
                  value: network
                - tag: sfp
                  value: '{#IFNAME}'
          master_item:
            key: juniper.mx.dom.snmp.walk
          preprocessing:
            - type: SNMP_WALK_TO_JSON
              parameters:
                - '{#MODULELANECOUNT}'
                - 1.3.6.1.4.1.2636.3.60.1.1.1.1.30
                - '0'
                - '{#LASERTEMP}'
                - 1.3.6.1.4.1.2636.3.60.1.2.1.1.9
                - '0'
                - '{#RXLASER}'
                - 1.3.6.1.4.1.2636.3.60.1.2.1.1.6
                - '0'
                - '{#IFOPERSTATUS}'
                - 1.3.6.1.2.1.2.2.1.8
                - '0'
                - '{#IFADMINSTATUS}'
                - 1.3.6.1.2.1.2.2.1.7
                - '0'
                - '{#IFALIAS}'
                - 1.3.6.1.2.1.31.1.1.1.18
                - '0'
                - '{#IFNAME}'
                - 1.3.6.1.2.1.31.1.1.1.1
                - '0'
                - '{#IFDESCR}'
                - 1.3.6.1.2.1.2.2.1.2
                - '0'
                - '{#IFTYPE}'
                - 1.3.6.1.2.1.2.2.1.3
                - '0'
                - '{#LANEINDEX}'
                - 1.3.6.1.4.1.2636.3.60.1.2.1.1.1
                - '0'
              error_handler: DISCARD_VALUE
            - type: JAVASCRIPT
              parameters:
                - |
                  var inputArray = JSON.parse(value);
                  
                  var transformedArray = inputArray.reduce(function (acc, item) {
                  	var snmpIndex = item["{#SNMPINDEX}"];
                  	var mainIndex = snmpIndex.split('.')[0];
                  
                  	if (item["{#LANEINDEX}"] !== undefined) {
                  		var portData = null;
                  
                  		for (var i = 0; i < inputArray.length; i++) {
                  			if (inputArray[i]["{#SNMPINDEX}"] === mainIndex) {
                  				portData = inputArray[i];
                  				break;
                  			}
                  		}
                  
                  		if (portData) {
                  			acc.push(Object.assign(
                  				{},
                  				item,
                  				{ "{#PORTINDEX}": mainIndex },
                  				portData
                  			));
                  		}
                  	}
                  	return acc;
                  }, []);
                  
                  return JSON.stringify(transformedArray);
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
        - uuid: 9ac8c0a8ae384e6898e89a873e54e1b0
          name: 'FAN discovery'
          type: DEPENDENT
          key: juniper.mx.fans.discovery
          description: 'Scanning `JUNIPER-MIB::jnxOperatingTable` for Fans.'
          item_prototypes:
            - uuid: ebd56d08899842779b2695ad3370c95e
              name: 'Sensor [{#SNMPVALUE}]: Fan status'
              type: DEPENDENT
              key: 'juniper.mx.sensor.fan.status[jnxOperatingState.4.{#SNMPINDEX}]'
              trends: '0'
              description: |
                MIB: JUNIPER-MIB
                Current status of the Fan tray.
              valuemap:
                name: 'JUNIPER-MIB::jnxOperatingState'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.2636.3.1.13.1.6.4.{#SNMPINDEX}'
                    - '0'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3m
              master_item:
                key: juniper.mx.operating.snmp.walk
              tags:
                - tag: component
                  value: fan
              trigger_prototypes:
                - uuid: 6c40d7e7701b4615a29b0e4eafb04aff
                  expression: 'count(/Juniper MX by SNMP/juniper.mx.sensor.fan.status[jnxOperatingState.4.{#SNMPINDEX}],#1,"eq","{$JUNIPER.MX.FAN_CRIT_STATUS}")=1'
                  name: 'Juniper MX: Sensor [{#SNMPVALUE}]: Fan is in critical state'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'Please check the Fan unit.'
                  tags:
                    - tag: scope
                      value: availability
                    - tag: scope
                      value: performance
          master_item:
            key: juniper.mx.operating.snmp.walk
          preprocessing:
            - type: SNMP_WALK_TO_JSON
              parameters:
                - '{#SNMPVALUE}'
                - 1.3.6.1.4.1.2636.3.1.13.1.5.4
                - '0'
              error_handler: DISCARD_VALUE
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
        - uuid: 83627dc5919249198673890c25100b18
          name: 'Network interface discovery'
          type: DEPENDENT
          key: juniper.mx.net.if.discovery
          filter:
            evaltype: AND
            conditions:
              - macro: '{#IFADMINSTATUS}'
                value: '{$JUNIPER.MX.NET.IF.IFADMINSTATUS.MATCHES}'
              - macro: '{#IFADMINSTATUS}'
                value: '{$JUNIPER.MX.NET.IF.IFADMINSTATUS.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#IFALIAS}'
                value: '{$JUNIPER.MX.NET.IF.IFALIAS.MATCHES}'
              - macro: '{#IFALIAS}'
                value: '{$JUNIPER.MX.NET.IF.IFALIAS.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#IFDESCR}'
                value: '{$JUNIPER.MX.NET.IF.IFDESCR.MATCHES}'
              - macro: '{#IFDESCR}'
                value: '{$JUNIPER.MX.NET.IF.IFDESCR.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#IFNAME}'
                value: '{$JUNIPER.MX.NET.IF.IFNAME.MATCHES}'
              - macro: '{#IFNAME}'
                value: '{$JUNIPER.MX.NET.IF.IFNAME.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#IFOPERSTATUS}'
                value: '{$JUNIPER.MX.NET.IF.IFOPERSTATUS.MATCHES}'
              - macro: '{#IFOPERSTATUS}'
                value: '{$JUNIPER.MX.NET.IF.IFOPERSTATUS.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#IFTYPE}'
                value: '{$JUNIPER.MX.NET.IF.IFTYPE.MATCHES}'
              - macro: '{#IFTYPE}'
                value: '{$JUNIPER.MX.NET.IF.IFTYPE.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
          description: 'Discovery of interfaces from IF-MIB.'
          item_prototypes:
            - uuid: 1e464a20cc784884b5287a4c0568a70d
              name: 'Interface [{#IFNAME}][{#IFALIAS}]: Inbound packets discarded'
              type: DEPENDENT
              key: 'juniper.mx.net.if.in.discards[ifInDiscards.{#SNMPINDEX}]'
              description: |
                MIB: IF-MIB
                The number of inbound packets which were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol.
                One possible reason for discarding such a packet could be to free up buffer space.
                Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of `ifCounterDiscontinuityTime`.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.2.2.1.13.{#SNMPINDEX}'
                    - '0'
                - type: CHANGE_PER_SECOND
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3m
              master_item:
                key: juniper.mx.net.if.snmp.walk
              tags:
                - tag: alias
                  value: '{#IFALIAS}'
                - tag: component
                  value: network
                - tag: interface
                  value: '{#IFNAME}'
            - uuid: 9300b7ac45464856ae46f8f6294fcb48
              name: 'Interface [{#IFNAME}][{#IFALIAS}]: Inbound packets with errors'
              type: DEPENDENT
              key: 'juniper.mx.net.if.in.errors[ifInErrors.{#SNMPINDEX}]'
              description: |
                MIB: IF-MIB
                For packet-oriented interfaces, the number of inbound packets that contained errors preventing them from being deliverable to a higher-layer protocol.
                For character-oriented or fixed-length interfaces, the number of inbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of `ifCounterDiscontinuityTime`.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.2.2.1.14.{#SNMPINDEX}'
                    - '0'
                - type: CHANGE_PER_SECOND
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3m
              master_item:
                key: juniper.mx.net.if.snmp.walk
              tags:
                - tag: alias
                  value: '{#IFALIAS}'
                - tag: component
                  value: network
                - tag: interface
                  value: '{#IFNAME}'
            - uuid: d1f4a2d1ab0b4239a5c515f2afa1599d
              name: 'Interface [{#IFNAME}][{#IFALIAS}]: Bits received'
              type: DEPENDENT
              key: 'juniper.mx.net.if.in[ifHCInOctets.{#SNMPINDEX}]'
              units: bps
              description: |
                MIB: IF-MIB
                The total number of octets received on the interface, including framing characters. This object is a 64-bit version of `ifInOctets`. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of `ifCounterDiscontinuityTime`.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.31.1.1.1.6.{#SNMPINDEX}'
                    - '0'
                - type: CHANGE_PER_SECOND
                - type: MULTIPLIER
                  parameters:
                    - '8'
              master_item:
                key: juniper.mx.net.if.snmp.walk
              tags:
                - tag: alias
                  value: '{#IFALIAS}'
                - tag: component
                  value: network
                - tag: interface
                  value: '{#IFNAME}'
            - uuid: 6ec380888ae745ec953c00ae3272dd85
              name: 'Interface [{#IFNAME}][{#IFALIAS}]: Outbound packets discarded'
              type: DEPENDENT
              key: 'juniper.mx.net.if.out.discards[ifOutDiscards.{#SNMPINDEX}]'
              description: |
                MIB: IF-MIB
                The number of outbound packets which were chosen to be discarded even though no errors had been detected to prevent their being deliverable to a higher-layer protocol.
                One possible reason for discarding such a packet could be to free up buffer space.
                Discontinuities in the value of this counter can occur at re-initialization of the management system and at other times as indicated by the value of `ifCounterDiscontinuityTime`.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.2.2.1.19.{#SNMPINDEX}'
                    - '0'
                - type: CHANGE_PER_SECOND
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3m
              master_item:
                key: juniper.mx.net.if.snmp.walk
              tags:
                - tag: alias
                  value: '{#IFALIAS}'
                - tag: component
                  value: network
                - tag: interface
                  value: '{#IFNAME}'
            - uuid: ca31a4568ca64a91acab57c7d4a12171
              name: 'Interface [{#IFNAME}][{#IFALIAS}]: Outbound packets with errors'
              type: DEPENDENT
              key: 'juniper.mx.net.if.out.errors[ifOutErrors.{#SNMPINDEX}]'
              description: |
                MIB: IF-MIB
                For packet-oriented interfaces, the number of outbound packets that contained errors preventing them from being deliverable to a higher-layer protocol.
                For character-oriented or fixed-length interfaces, the number of outbound transmission units that contained errors preventing them from being deliverable to a higher-layer protocol. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of `ifCounterDiscontinuityTime`.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.2.2.1.20.{#SNMPINDEX}'
                    - '0'
                - type: CHANGE_PER_SECOND
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3m
              master_item:
                key: juniper.mx.net.if.snmp.walk
              tags:
                - tag: alias
                  value: '{#IFALIAS}'
                - tag: component
                  value: network
                - tag: interface
                  value: '{#IFNAME}'
            - uuid: 69165e8edad0451f9571eba53d484453
              name: 'Interface [{#IFNAME}][{#IFALIAS}]: Bits sent'
              type: DEPENDENT
              key: 'juniper.mx.net.if.out[ifHCOutOctets.{#SNMPINDEX}]'
              units: bps
              description: |
                MIB: IF-MIB
                The total number of octets transmitted out of the interface, including framing characters. This object is a 64-bit version of `ifOutOctets`. Discontinuities in the value of this counter can occur at re-initialization of the management system, and at other times as indicated by the value of `ifCounterDiscontinuityTime`.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.31.1.1.1.10.{#SNMPINDEX}'
                    - '0'
                - type: CHANGE_PER_SECOND
                - type: MULTIPLIER
                  parameters:
                    - '8'
              master_item:
                key: juniper.mx.net.if.snmp.walk
              tags:
                - tag: alias
                  value: '{#IFALIAS}'
                - tag: component
                  value: network
                - tag: interface
                  value: '{#IFNAME}'
            - uuid: 38d091d8365b44eea6ead60d5b6090e7
              name: 'Interface [{#IFNAME}][{#IFALIAS}]: Speed'
              type: DEPENDENT
              key: 'juniper.mx.net.if.speed[ifHighSpeed.{#SNMPINDEX}]'
              trends: '0'
              units: bps
              description: |
                MIB: IF-MIB
                An estimate of the interface's current bandwidth in units of 1,000,000 bits per second. If this object reports a value of `n`, then the speed of the interface is somewhere in the range of `n-500,000` to `n+499,999`.
                For interfaces which do not vary in bandwidth or for those where no accurate estimation can be made, this object should contain the nominal bandwidth.
                For a sub-layer which has no concept of bandwidth, this object should be zero.
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.31.1.1.1.15.{#SNMPINDEX}'
                    - '0'
                - type: MULTIPLIER
                  parameters:
                    - '1000000'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              master_item:
                key: juniper.mx.net.if.snmp.walk
              tags:
                - tag: alias
                  value: '{#IFALIAS}'
                - tag: component
                  value: network
                - tag: interface
                  value: '{#IFNAME}'
            - uuid: f731f0ad12c94b57aa3e819a9a3f8344
              name: 'Interface [{#IFNAME}][{#IFALIAS}]: Operational status'
              type: DEPENDENT
              key: 'juniper.mx.net.if.status[ifOperStatus.{#SNMPINDEX}]'
              trends: '0'
              description: |
                MIB: IF-MIB
                The current operational state of the interface.
                - The `testing(3)` state indicates that no operational packet scan can be passed.
                - If `ifAdminStatus` is `down(2)`, then `ifOperStatus` should be `down(2)`.
                - If `ifAdminStatus` is changed to `up(1)`, then `ifOperStatus` should change to `up(1)` if the interface is ready to transmit and receive network traffic.
                - It should change to `dormant(5)` if the interface is waiting for external actions (such as a serial line waiting for an incoming connection).
                - It should remain in the `down(2)` state if and only if there is a fault that prevents it from going to the `up(1)` state.
                - It should remain in the `notPresent(6)` state if the interface has missing (typically, hardware) components.
              valuemap:
                name: 'IF-MIB::ifOperStatus'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.2.2.1.8.{#SNMPINDEX}'
                    - '0'
              master_item:
                key: juniper.mx.net.if.snmp.walk
              tags:
                - tag: alias
                  value: '{#IFALIAS}'
                - tag: component
                  value: network
                - tag: interface
                  value: '{#IFNAME}'
              trigger_prototypes:
                - uuid: e6e97882d81242019bbb072a4b3cd9aa
                  expression: '{$JUNIPER.MX.IFCONTROL:"{#IFNAME}"}=1 and last(/Juniper MX by SNMP/juniper.mx.net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Juniper MX by SNMP/juniper.mx.net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Juniper MX by SNMP/juniper.mx.net.if.status[ifOperStatus.{#SNMPINDEX}],#2))'
                  recovery_mode: RECOVERY_EXPRESSION
                  recovery_expression: 'last(/Juniper MX by SNMP/juniper.mx.net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$JUNIPER.MX.IFCONTROL:"{#IFNAME}"}=0'
                  name: 'Juniper MX: Interface [{#IFNAME}][{#IFALIAS}]: Link down'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: |
                    This trigger expression works as follows:
                    1. It can be triggered if the operations status is down.
                    2. `{$JUNIPER.MX.IFCONTROL:"{#IFNAME}"}=1` - a user can redefine the context macro to "0", marking this interface as not important. No new trigger will be fired if this interface is down.
                    3. `last(/TEMPLATE_NAME/METRIC,#1)<>last(/TEMPLATE_NAME/METRIC,#2)` - the trigger fires only if the operational status was up to (1) sometime before (so, does not fire for "eternal off" interfaces.)
                    
                    WARNING: if closed manually - it will not fire again on the next poll, because of `.diff`.
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: availability
            - uuid: a1931245d15a4f0ca792ab62d149ba2c
              name: 'Interface [{#IFNAME}][{#IFALIAS}]: Interface type'
              type: DEPENDENT
              key: 'juniper.mx.net.if.type[ifType.{#SNMPINDEX}]'
              trends: '0'
              description: |
                MIB: IF-MIB
                The type of interface.
                Additional values for `ifType` are assigned by the Internet Assigned Numbers Authority (IANA), through updating the syntax of the IANAifType textual convention.
              valuemap:
                name: 'IF-MIB::ifType'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.2.2.1.3.{#SNMPINDEX}'
                    - '0'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              master_item:
                key: juniper.mx.net.if.snmp.walk
              tags:
                - tag: alias
                  value: '{#IFALIAS}'
                - tag: component
                  value: network
                - tag: interface
                  value: '{#IFNAME}'
          trigger_prototypes:
            - uuid: 140de6180ae64aeab26d898518392c54
              expression: |
                change(/Juniper MX by SNMP/juniper.mx.net.if.speed[ifHighSpeed.{#SNMPINDEX}])<0 and last(/Juniper MX by SNMP/juniper.mx.net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0
                and (
                last(/Juniper MX by SNMP/juniper.mx.net.if.type[ifType.{#SNMPINDEX}])=6 or
                last(/Juniper MX by SNMP/juniper.mx.net.if.type[ifType.{#SNMPINDEX}])=7 or
                last(/Juniper MX by SNMP/juniper.mx.net.if.type[ifType.{#SNMPINDEX}])=11 or
                last(/Juniper MX by SNMP/juniper.mx.net.if.type[ifType.{#SNMPINDEX}])=62 or
                last(/Juniper MX by SNMP/juniper.mx.net.if.type[ifType.{#SNMPINDEX}])=69 or
                last(/Juniper MX by SNMP/juniper.mx.net.if.type[ifType.{#SNMPINDEX}])=117
                )
                and
                (last(/Juniper MX by SNMP/juniper.mx.net.if.status[ifOperStatus.{#SNMPINDEX}])<>2)
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: |
                (change(/Juniper MX by SNMP/juniper.mx.net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0 and last(/Juniper MX by SNMP/juniper.mx.net.if.speed[ifHighSpeed.{#SNMPINDEX}],#2)>0) or
                (last(/Juniper MX by SNMP/juniper.mx.net.if.status[ifOperStatus.{#SNMPINDEX}])=2)
              name: 'Juniper MX: Interface [{#IFNAME}][{#IFALIAS}]: Ethernet has changed to lower speed than it was before'
              opdata: 'Current reported speed: {ITEM.LASTVALUE1}'
              priority: INFO
              description: 'This Ethernet connection has transitioned down from its known maximum speed. This might be a sign of autonegotiation issues. Acknowledge to close the problem manually.'
              manual_close: 'YES'
              dependencies:
                - name: 'Juniper MX: Interface [{#IFNAME}][{#IFALIAS}]: Link down'
                  expression: '{$JUNIPER.MX.IFCONTROL:"{#IFNAME}"}=1 and last(/Juniper MX by SNMP/juniper.mx.net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Juniper MX by SNMP/juniper.mx.net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Juniper MX by SNMP/juniper.mx.net.if.status[ifOperStatus.{#SNMPINDEX}],#2))'
                  recovery_expression: 'last(/Juniper MX by SNMP/juniper.mx.net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$JUNIPER.MX.IFCONTROL:"{#IFNAME}"}=0'
              tags:
                - tag: scope
                  value: performance
            - uuid: 0a9b64496e794daaa3fd126a0f821fec
              expression: |
                (avg(/Juniper MX by SNMP/juniper.mx.net.if.in[ifHCInOctets.{#SNMPINDEX}],15m)>({$JUNIPER.MX.IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Juniper MX by SNMP/juniper.mx.net.if.speed[ifHighSpeed.{#SNMPINDEX}]) or
                avg(/Juniper MX by SNMP/juniper.mx.net.if.out[ifHCOutOctets.{#SNMPINDEX}],15m)>({$JUNIPER.MX.IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Juniper MX by SNMP/juniper.mx.net.if.speed[ifHighSpeed.{#SNMPINDEX}])) and
                last(/Juniper MX by SNMP/juniper.mx.net.if.speed[ifHighSpeed.{#SNMPINDEX}])>0
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: |
                avg(/Juniper MX by SNMP/juniper.mx.net.if.in[ifHCInOctets.{#SNMPINDEX}],15m)<(({$JUNIPER.MX.IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Juniper MX by SNMP/juniper.mx.net.if.speed[ifHighSpeed.{#SNMPINDEX}]) and
                avg(/Juniper MX by SNMP/juniper.mx.net.if.out[ifHCOutOctets.{#SNMPINDEX}],15m)<(({$JUNIPER.MX.IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Juniper MX by SNMP/juniper.mx.net.if.speed[ifHighSpeed.{#SNMPINDEX}])
              name: 'Juniper MX: Interface [{#IFNAME}][{#IFALIAS}]: High bandwidth usage'
              event_name: 'Juniper MX: Interface [{#IFNAME}][{#IFALIAS}]: High bandwidth usage (>{$JUNIPER.MX.IF.UTIL.MAX:"{#IFNAME}"}%)'
              opdata: 'In: {ITEM.LASTVALUE1}, out: {ITEM.LASTVALUE3}, speed: {ITEM.LASTVALUE2}'
              priority: WARNING
              description: 'The utilization of the network interface is close to its estimated maximum bandwidth.'
              manual_close: 'YES'
              dependencies:
                - name: 'Juniper MX: Interface [{#IFNAME}][{#IFALIAS}]: Link down'
                  expression: '{$JUNIPER.MX.IFCONTROL:"{#IFNAME}"}=1 and last(/Juniper MX by SNMP/juniper.mx.net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Juniper MX by SNMP/juniper.mx.net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Juniper MX by SNMP/juniper.mx.net.if.status[ifOperStatus.{#SNMPINDEX}],#2))'
                  recovery_expression: 'last(/Juniper MX by SNMP/juniper.mx.net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$JUNIPER.MX.IFCONTROL:"{#IFNAME}"}=0'
              tags:
                - tag: scope
                  value: performance
            - uuid: 643b17bf71574d77bb06240af9c6fbc5
              expression: |
                min(/Juniper MX by SNMP/juniper.mx.net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)>{$JUNIPER.MX.IF.ERRORS.WARN:"{#IFNAME}"}
                or min(/Juniper MX by SNMP/juniper.mx.net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)>{$JUNIPER.MX.IF.ERRORS.WARN:"{#IFNAME}"}
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: |
                max(/Juniper MX by SNMP/juniper.mx.net.if.in.errors[ifInErrors.{#SNMPINDEX}],5m)<{$JUNIPER.MX.IF.ERRORS.WARN:"{#IFNAME}"}*0.8
                and max(/Juniper MX by SNMP/juniper.mx.net.if.out.errors[ifOutErrors.{#SNMPINDEX}],5m)<{$JUNIPER.MX.IF.ERRORS.WARN:"{#IFNAME}"}*0.8
              name: 'Juniper MX: Interface [{#IFNAME}][{#IFALIAS}]: High error rate'
              event_name: 'Juniper MX: Interface [{#IFNAME}][{#IFALIAS}]: High error rate (>{$JUNIPER.MX.IF.ERRORS.WARN:"{#IFNAME}"} for 5m)'
              opdata: 'errors in: {ITEM.LASTVALUE1}, errors out: {ITEM.LASTVALUE2}'
              priority: WARNING
              description: 'It recovers when it is below 80% of the `{$JUNIPER.MX.IF.ERRORS.WARN:"{#IFNAME}"}` threshold.'
              manual_close: 'YES'
              dependencies:
                - name: 'Juniper MX: Interface [{#IFNAME}][{#IFALIAS}]: Link down'
                  expression: '{$JUNIPER.MX.IFCONTROL:"{#IFNAME}"}=1 and last(/Juniper MX by SNMP/juniper.mx.net.if.status[ifOperStatus.{#SNMPINDEX}])=2 and (last(/Juniper MX by SNMP/juniper.mx.net.if.status[ifOperStatus.{#SNMPINDEX}],#1)<>last(/Juniper MX by SNMP/juniper.mx.net.if.status[ifOperStatus.{#SNMPINDEX}],#2))'
                  recovery_expression: 'last(/Juniper MX by SNMP/juniper.mx.net.if.status[ifOperStatus.{#SNMPINDEX}])<>2 or {$JUNIPER.MX.IFCONTROL:"{#IFNAME}"}=0'
              tags:
                - tag: scope
                  value: availability
                - tag: scope
                  value: performance
          graph_prototypes:
            - uuid: 4200eaa606f94c35a4a9ab787c752761
              name: 'Juniper MX: Interface [{#IFNAME}][{#IFALIAS}]: Network traffic'
              graph_items:
                - drawtype: GRADIENT_LINE
                  color: 199C0D
                  item:
                    host: 'Juniper MX by SNMP'
                    key: 'juniper.mx.net.if.in[ifHCInOctets.{#SNMPINDEX}]'
                - sortorder: '1'
                  drawtype: BOLD_LINE
                  color: F63100
                  item:
                    host: 'Juniper MX by SNMP'
                    key: 'juniper.mx.net.if.out[ifHCOutOctets.{#SNMPINDEX}]'
                - sortorder: '2'
                  color: 00611C
                  yaxisside: RIGHT
                  item:
                    host: 'Juniper MX by SNMP'
                    key: 'juniper.mx.net.if.out.errors[ifOutErrors.{#SNMPINDEX}]'
                - sortorder: '3'
                  color: F7941D
                  yaxisside: RIGHT
                  item:
                    host: 'Juniper MX by SNMP'
                    key: 'juniper.mx.net.if.in.errors[ifInErrors.{#SNMPINDEX}]'
                - sortorder: '4'
                  color: FC6EA3
                  yaxisside: RIGHT
                  item:
                    host: 'Juniper MX by SNMP'
                    key: 'juniper.mx.net.if.out.discards[ifOutDiscards.{#SNMPINDEX}]'
                - sortorder: '5'
                  color: 6C59DC
                  yaxisside: RIGHT
                  item:
                    host: 'Juniper MX by SNMP'
                    key: 'juniper.mx.net.if.in.discards[ifInDiscards.{#SNMPINDEX}]'
          master_item:
            key: juniper.mx.net.if.snmp.walk
          preprocessing:
            - type: SNMP_WALK_TO_JSON
              parameters:
                - '{#IFOPERSTATUS}'
                - 1.3.6.1.2.1.2.2.1.8
                - '0'
                - '{#IFADMINSTATUS}'
                - 1.3.6.1.2.1.2.2.1.7
                - '0'
                - '{#IFALIAS}'
                - 1.3.6.1.2.1.31.1.1.1.18
                - '0'
                - '{#IFNAME}'
                - 1.3.6.1.2.1.31.1.1.1.1
                - '0'
                - '{#IFDESCR}'
                - 1.3.6.1.2.1.2.2.1.2
                - '0'
                - '{#IFTYPE}'
                - 1.3.6.1.2.1.2.2.1.3
                - '0'
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
        - uuid: 3dcf819694834d29aae6a35c4aaa1c18
          name: 'EtherLike-MIB discovery'
          type: DEPENDENT
          key: juniper.mx.net.if.duplex.discovery
          filter:
            evaltype: AND
            conditions:
              - macro: '{#IFOPERSTATUS}'
                value: '1'
              - macro: '{#SNMPVALUE}'
                value: (2|3)
              - macro: '{#SNMPVALUE}'
                operator: EXISTS
          description: 'Discovery of interfaces from IF-MIB and EtherLike-MIB. Interfaces with the `up(1)` operational status are discovered.'
          item_prototypes:
            - uuid: 03c1a0c21ef04f428af38ad963a7c5ec
              name: 'Interface [{#IFNAME}][{#IFALIAS}]: Duplex status'
              type: DEPENDENT
              key: 'juniper.mx.net.if.duplex[dot3StatsDuplexStatus.{#SNMPINDEX}]'
              description: |
                MIB: EtherLike-MIB
                The current mode of operation of the MAC entity. `unknown` indicates that the current duplex mode could not be determined.
                Management control of the duplex mode is accomplished through the MAU MIB. When an interface does not support autonegotiation or when autonegotiation is not enabled, the duplex mode is controlled using `ifMauDefaultType`. When autonegotiation is supported and enabled, duplex mode is controlled using `ifMauAutoNegAdvertisedBits`. In either case, the currently operating duplex mode in reflected both in this object and in `ifMauType`.
                Note that this object provides redundant information with `ifMauType`. Normally, redundant objects are discouraged. However, in this instance, it allows a management application to determine the duplex status of an interface without having to know every possible value of `ifMauType`. This was felt to be sufficiently valuable to justify the redundancy.
                Reference: [IEEE 802.3 Std.], 30.3.1.1.32,aDuplexStatus.
              valuemap:
                name: 'EtherLike-MIB::dot3StatsDuplexStatus'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.10.7.2.1.19.{#SNMPINDEX}'
                    - '0'
              master_item:
                key: juniper.mx.net.if.duplex.snmp.walk
              tags:
                - tag: alias
                  value: '{#IFALIAS}'
                - tag: component
                  value: network
                - tag: interface
                  value: '{#IFNAME}'
              trigger_prototypes:
                - uuid: 0e37a15e7be949d9a2706b298c4d4182
                  expression: 'last(/Juniper MX by SNMP/juniper.mx.net.if.duplex[dot3StatsDuplexStatus.{#SNMPINDEX}])=2'
                  name: 'Juniper MX: Interface [{#IFNAME}][{#IFALIAS}]: In half-duplex mode'
                  priority: WARNING
                  description: 'Please check autonegotiation settings and cabling.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: performance
          master_item:
            key: juniper.mx.net.if.duplex.snmp.walk
          preprocessing:
            - type: SNMP_WALK_TO_JSON
              parameters:
                - '{#SNMPVALUE}'
                - 1.3.6.1.2.1.10.7.2.1.19
                - '0'
                - '{#IFOPERSTATUS}'
                - 1.3.6.1.2.1.2.2.1.8
                - '0'
                - '{#IFALIAS}'
                - 1.3.6.1.2.1.31.1.1.1.18
                - '0'
                - '{#IFNAME}'
                - 1.3.6.1.2.1.31.1.1.1.1
                - '0'
                - '{#IFDESCR}'
                - 1.3.6.1.2.1.2.2.1.2
                - '0'
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
        - uuid: 9e66d89fdca04840b28d11d80de100ad
          name: 'OSPF Neighbor discovery'
          type: DEPENDENT
          key: juniper.mx.ospf.neighbor.discovery
          description: 'Scanning `OSPF-MIB::ospfNbrTable` for OSPF Neighbors.'
          item_prototypes:
            - uuid: d8e5d85898294f2cbfb97e59458fdac5
              name: 'OSPF Neighbor [{#OSPF_IP_ADDR}]: Events'
              type: DEPENDENT
              key: 'juniper.mx.ospf.events[ospfNbrEvents.{#SNMPINDEX}]'
              value_type: FLOAT
              description: 'The number of times this neighbor relationship has changed state, or an error has occurred.'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.14.10.1.7.{#SNMPINDEX}'
                    - '0'
              master_item:
                key: juniper.mx.ospf.nbr.snmp.walk
              tags:
                - tag: address
                  value: '{#OSPF_IP_ADDR}'
                - tag: component
                  value: network
                - tag: component
                  value: ospf
              trigger_prototypes:
                - uuid: 604dcfd4cee146aaa1c74bea48aec3fd
                  expression: 'last(/Juniper MX by SNMP/juniper.mx.ospf.events[ospfNbrEvents.{#SNMPINDEX}],#1)<>last(/Juniper MX by SNMP/juniper.mx.ospf.events[ospfNbrEvents.{#SNMPINDEX}],#2)'
                  name: 'Juniper MX: OSPF Neighbor [{#OSPF_IP_ADDR}]: Number of relationship has changed'
                  opdata: 'Number of relationship changes: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'The number of times the [{#OSPF_IP_ADDR}] neighbor relationship has changed.'
                  tags:
                    - tag: scope
                      value: performance
            - uuid: 9d4b254d98a14c3ca3a34c7a5ccdc4c2
              name: 'OSPF Neighbor [{#OSPF_IP_ADDR}]: Hello suppressed'
              type: DEPENDENT
              key: 'juniper.mx.ospf.hello.suppressed[ospfNbrHelloSuppressed.{#SNMPINDEX}]'
              value_type: FLOAT
              description: 'Indicates whether Hellos are being suppressed to the neighbor.'
              valuemap:
                name: 'OSPF-MIB::ospfNbrHelloSuppressed'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.14.10.1.11.{#SNMPINDEX}'
                    - '0'
              master_item:
                key: juniper.mx.ospf.nbr.snmp.walk
              tags:
                - tag: address
                  value: '{#OSPF_IP_ADDR}'
                - tag: component
                  value: network
                - tag: component
                  value: ospf
            - uuid: 78726e19b6f34285868684ee2b6bfb84
              name: 'OSPF Neighbor [{#OSPF_IP_ADDR}]: Router Id'
              type: DEPENDENT
              key: 'juniper.mx.ospf.rtr.id[ospfNbrRtrId.{#SNMPINDEX}]'
              value_type: CHAR
              description: 'A 32-bit integer (represented as a type `IpAddress`) uniquely identifying the neighboring router in the Autonomous System.'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.14.10.1.3.{#SNMPINDEX}'
                    - '0'
              master_item:
                key: juniper.mx.ospf.nbr.snmp.walk
              tags:
                - tag: address
                  value: '{#OSPF_IP_ADDR}'
                - tag: component
                  value: network
                - tag: component
                  value: ospf
            - uuid: a09f5412c1854cb28ac393e0b8568802
              name: 'OSPF Neighbor [{#OSPF_IP_ADDR}]: State'
              type: DEPENDENT
              key: 'juniper.mx.ospf.state[ospfNbrState.{#SNMPINDEX}]'
              value_type: FLOAT
              description: 'The state of the relationship with this neighbor.'
              valuemap:
                name: 'OSPF-MIB::ospfNbrState'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.2.1.14.10.1.6.{#SNMPINDEX}'
                    - '0'
              master_item:
                key: juniper.mx.ospf.nbr.snmp.walk
              tags:
                - tag: address
                  value: '{#OSPF_IP_ADDR}'
                - tag: component
                  value: network
                - tag: component
                  value: ospf
              trigger_prototypes:
                - uuid: 72fa4c432ac64c16a2eb624750813ff6
                  expression: 'last(/Juniper MX by SNMP/juniper.mx.ospf.state[ospfNbrState.{#SNMPINDEX}]) = 1'
                  name: 'Juniper MX: OSPF Neighbor [{#OSPF_IP_ADDR}]: State down'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'OSPF neighbor [{#OSPF_IP_ADDR}] in operational state `down`.'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: 1b9b5f7074bd4321bfa000d5dfc8d487
                  expression: 'last(/Juniper MX by SNMP/juniper.mx.ospf.state[ospfNbrState.{#SNMPINDEX}]) = 3'
                  name: 'Juniper MX: OSPF Neighbor [{#OSPF_IP_ADDR}]: State init'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'OSPF neighbor [{#OSPF_IP_ADDR}] in operational state `init`.'
                  tags:
                    - tag: scope
                      value: performance
          master_item:
            key: juniper.mx.ospf.nbr.snmp.walk
          preprocessing:
            - type: SNMP_WALK_TO_JSON
              parameters:
                - '{#OSPF_IP_ADDR}'
                - 1.3.6.1.2.1.14.10.1.1
                - '0'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'OSPF instance is not running'
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
        - uuid: 66a0878f65f6420b82a4249a3f7956b0
          name: 'OSPFv3 Neighbor discovery'
          type: DEPENDENT
          key: juniper.mx.ospfv3.neighbor.discovery
          description: 'Scanning `OSPFV3-MIB-JUNIPER::jnxOspfv3NbrTable` for OSPFv3 Neighbors.'
          item_prototypes:
            - uuid: f4c944eaeafb4b3480fc5c5d9d089842
              name: 'OSPFv3 Neighbor [{#OSPFV3_IP_ADDR}]: Events'
              type: DEPENDENT
              key: 'juniper.mx.ospfv3.events[jnxOspfv3NbrEvents.{#SNMPINDEX}]'
              value_type: FLOAT
              description: 'The number of times the [{#OSPFV3_IP_ADDR}] neighbor relationship has changed state, or an error has occurred.'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.2636.5.4.1.1.9.1.9.{#SNMPINDEX}'
                    - '0'
              master_item:
                key: juniper.mx.ospfv3.nbr.snmp.walk
              tags:
                - tag: address
                  value: '{#OSPFV3_IP_ADDR}'
                - tag: component
                  value: network
                - tag: component
                  value: ospfv3
              trigger_prototypes:
                - uuid: 25b9d8bd021646ecb3f0b6293b8c01b3
                  expression: 'last(/Juniper MX by SNMP/juniper.mx.ospfv3.events[jnxOspfv3NbrEvents.{#SNMPINDEX}],#1)<>last(/Juniper MX by SNMP/juniper.mx.ospfv3.events[jnxOspfv3NbrEvents.{#SNMPINDEX}],#2)'
                  name: 'Juniper MX: OSPFv3 Neighbor [{#OSPFV3_IP_ADDR}]: relationship has changed'
                  opdata: 'Number of relationship changes: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'The number of times the [{#OSPFV3_IP_ADDR}] neighbor relationship has changed.'
                  tags:
                    - tag: scope
                      value: performance
            - uuid: b64ebde2fd354302acc3d087aab5a155
              name: 'OSPFv3 Neighbor [{#OSPFV3_IP_ADDR}]: Hello suppressed'
              type: DEPENDENT
              key: 'juniper.mx.ospfv3.hello.suppressed[jnxOspfv3NbrHelloSuppressed.{#SNMPINDEX}]'
              value_type: FLOAT
              description: 'Indicates whether Hellos are being suppressed to the neighbor.'
              valuemap:
                name: 'OSPF-MIB::ospfNbrHelloSuppressed'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.2636.5.4.1.1.9.1.11.{#SNMPINDEX}'
                    - '0'
              master_item:
                key: juniper.mx.ospfv3.nbr.snmp.walk
              tags:
                - tag: address
                  value: '{#OSPFV3_IP_ADDR}'
                - tag: component
                  value: network
                - tag: component
                  value: ospfv3
            - uuid: baed51479df94547a2a089543ed3928c
              name: 'OSPFv3 Neighbor [{#OSPFV3_IP_ADDR}]: Priority'
              type: DEPENDENT
              key: 'juniper.mx.ospfv3.priority[jnxOspfv3NbrPriority.{#SNMPINDEX}]'
              value_type: FLOAT
              description: 'The priority of this neighbor in the designated router election algorithm. The value `0` signifies that the neighbor is not eligible to become the designated router on this particular network.'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.2636.5.4.1.1.9.1.7.{#SNMPINDEX}'
                    - '0'
              master_item:
                key: juniper.mx.ospfv3.nbr.snmp.walk
              tags:
                - tag: address
                  value: '{#OSPFV3_IP_ADDR}'
                - tag: component
                  value: network
                - tag: component
                  value: ospfv3
            - uuid: 4adfe63f7b5042d8bd312dd8285c17e5
              name: 'OSPFv3 Neighbor [{#OSPFV3_IP_ADDR}]: State'
              type: DEPENDENT
              key: 'juniper.mx.ospfv3.state[jnxOspfv3NbrState.{#SNMPINDEX}]'
              value_type: FLOAT
              description: 'The state of the relationship with this neighbor.'
              valuemap:
                name: 'OSPF-MIB::ospfNbrState'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.2636.5.4.1.1.9.1.8.{#SNMPINDEX}'
                    - '0'
              master_item:
                key: juniper.mx.ospfv3.nbr.snmp.walk
              tags:
                - tag: address
                  value: '{#OSPFV3_IP_ADDR}'
                - tag: component
                  value: network
                - tag: component
                  value: ospfv3
              trigger_prototypes:
                - uuid: acfa268322b044cdbdeef1d4c97b8c15
                  expression: 'last(/Juniper MX by SNMP/juniper.mx.ospfv3.state[jnxOspfv3NbrState.{#SNMPINDEX}]) = 1'
                  name: 'Juniper MX: OSPFv3 Neighbor [{#OSPFV3_IP_ADDR}]: State down'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'OSPF neighbor [{#OSPFV3_IP_ADDR}] in operational state `down`.'
                  tags:
                    - tag: scope
                      value: performance
                - uuid: abbab005937b4c488205b70860ffc5a6
                  expression: 'last(/Juniper MX by SNMP/juniper.mx.ospfv3.state[jnxOspfv3NbrState.{#SNMPINDEX}]) = 3'
                  name: 'Juniper MX: OSPFv3 Neighbor [{#OSPFV3_IP_ADDR}]: State init'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'OSPFv3 neighbor [{#OSPFV3_IP_ADDR}] in operational state `init`.'
                  tags:
                    - tag: scope
                      value: performance
          master_item:
            key: juniper.mx.ospfv3.nbr.snmp.walk
          preprocessing:
            - type: SNMP_WALK_TO_JSON
              parameters:
                - '{#OSPFV3_IP_ADDR}'
                - 1.3.6.1.4.1.2636.5.4.1.1.9.1.5
                - '0'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'OSPF instance is not running'
            - type: JAVASCRIPT
              parameters:
                - |
                  var ospf = JSON.parse(value);
                  
                  ospf.forEach(function (item, index, array) {
                  	var ip = item["{#OSPFV3_IP_ADDR}"];
                  	var parts = ip.trim().split(' ');
                  
                  	if (parts.length === 4) {
                  		for (var i = 0; i < parts.length; ++i) {
                  			parts[i] = parseInt(parts[i], 16);
                  		}
                  		ip = parts.join('.');
                  	}
                  	else if (parts.length == 16) {
                  		var ipSegments = [];
                  		for (var i = 0; i < parts.length; i += 4) {
                  			var ipv6 = parts.slice(i, i + 4).join('');
                  			ipv6 = parseInt(ipv6, 16).toString(16);
                  			ipSegments.push(ipv6 || '0');
                  		}
                  		ip = ipSegments.join(':').toLowerCase();
                  
                  		var maxZeros = 0, currZeros = 0, startIdx = -1, maxStartIdx = -1;
                  		for (i = 0; i < ipSegments.length; i++) {
                  			if (ipSegments[i] === '0') {
                  				if (currZeros === 0) startIdx = i;
                  				currZeros++;
                  			} else {
                  				if (currZeros > maxZeros) {
                  					maxZeros = currZeros;
                  					maxStartIdx = startIdx;
                  				}
                  				currZeros = 0;
                  			}
                  		}
                  		if (currZeros > maxZeros) {
                  			maxZeros = currZeros;
                  			maxStartIdx = startIdx;
                  		}
                  		if (maxZeros > 1) {
                  			ipSegments.splice(maxStartIdx, maxZeros, '');
                  			ip = ipSegments.join(':').replace(/(^:|:$)/, '');
                  		}
                  	}
                  
                  	array[index]["{#OSPFV3_IP_ADDR}"] = ip;
                  });
                  
                  return JSON.stringify(ospf);
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
        - uuid: 25dab3bda75b497eb91101d2a687b3d2
          name: 'PSU discovery'
          type: DEPENDENT
          key: juniper.mx.psu.discovery
          description: 'Scanning `JUNIPER-MIB::jnxOperatingTable` for Power Supplies.'
          item_prototypes:
            - uuid: 3526d4374e8d422ab87b92dca0159a8e
              name: 'Sensor [{#SNMPVALUE}]: Power supply status'
              type: DEPENDENT
              key: 'juniper.mx.sensor.psu.status["{#SNMPINDEX}"]'
              trends: '0'
              description: |
                MIB: JUNIPER-MIB
                If are using DC power supplies, there is a known issue on PR 1064039 where the fans do not detect the temperature correctly and fail to cool the power supply causing shutdown to occur.
                This is fixed in Junos 13.3R7 https://forums.juniper.net/t5/Routing/PEM-0-not-OK-MX104/m-p/289644#M14122
              valuemap:
                name: 'JUNIPER-MIB::jnxOperatingState'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.2636.3.1.13.1.6.2.{#SNMPINDEX}'
                    - '0'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3m
              master_item:
                key: juniper.mx.operating.snmp.walk
              tags:
                - tag: component
                  value: power
              trigger_prototypes:
                - uuid: 2e68ce04be164ea5a728639ad0dadd35
                  expression: 'count(/Juniper MX by SNMP/juniper.mx.sensor.psu.status["{#SNMPINDEX}"],#1,"eq","{$JUNIPER.MX.PSU_CRIT_STATUS}")=1'
                  name: 'Juniper MX: Sensor [{#SNMPVALUE}]: Power supply is in critical state'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'Please check the power supply unit for errors.'
                  tags:
                    - tag: scope
                      value: availability
                    - tag: scope
                      value: performance
          master_item:
            key: juniper.mx.operating.snmp.walk
          preprocessing:
            - type: SNMP_WALK_TO_JSON
              parameters:
                - '{#SNMPVALUE}'
                - 1.3.6.1.4.1.2636.3.1.13.1.5.2
                - '0'
              error_handler: DISCARD_VALUE
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
        - uuid: f63fb6e235914131baff69bf7778e082
          name: 'Redundancy discovery'
          type: DEPENDENT
          key: juniper.mx.redundancy.discovery
          description: 'Scanning `JUNIPER-MIB::jnxRedundancyTable`.'
          item_prototypes:
            - uuid: 6fe1d6a3d81240ecb1d9b0d7123b653e
              name: 'Redundancy [{#SNMPVALUE}][{#CHASSISDESCR}]: Current running state'
              type: DEPENDENT
              key: 'juniper.mx.redundancy.state["{#SNMPINDEX}"]'
              trends: '0'
              description: |
                MIB: JUNIPER-MIB
                The current running state for the `Redundancy [{#SNMPVALUE}][{#CHASSISDESCR}]` subject.
              valuemap:
                name: 'JUNIPER-MIB::jnxRedundancyState'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.2636.3.1.14.1.7.{#SNMPINDEX}'
                    - '0'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3m
              master_item:
                key: juniper.mx.redundancy.table.snmp.walk
              tags:
                - tag: component
                  value: redundancy
            - uuid: da3134d4cb084090a7c2c7df9d99c6f8
              name: 'Redundancy [{#SNMPVALUE}][{#CHASSISDESCR}]: Reason of the last switchover'
              type: DEPENDENT
              key: 'juniper.mx.redundancy.switchover.reason["{#SNMPINDEX}"]'
              trends: '0'
              description: |
                MIB: JUNIPER-MIB
                The reason of the last switchover for the `Redundancy [{#SNMPVALUE}][{#CHASSISDESCR}]` subject.
              valuemap:
                name: 'JUNIPER-MIB::jnxRedundancySwitchoverReason'
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.2636.3.1.14.1.10.{#SNMPINDEX}'
                    - '0'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3m
              master_item:
                key: juniper.mx.redundancy.table.snmp.walk
              tags:
                - tag: component
                  value: redundancy
          master_item:
            key: juniper.mx.redundancy.table.snmp.walk
          preprocessing:
            - type: SNMP_WALK_TO_JSON
              parameters:
                - '{#SNMPVALUE}'
                - 1.3.6.1.4.1.2636.3.1.14.1.5
                - '0'
                - '{#CHASSISDESCR}'
                - 1.3.6.1.4.1.2636.3.1.14.1.16
                - '0'
              error_handler: DISCARD_VALUE
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
        - uuid: de9c2e302e6445d0b78235b9cc29444d
          name: 'Temperature discovery'
          type: DEPENDENT
          key: juniper.mx.temperature.discovery
          filter:
            conditions:
              - macro: '{#SNMPVALUE}'
                value: '[^0]+'
          description: 'Scanning `JUNIPER-MIB::jnxOperatingTable` for Temperature.'
          item_prototypes:
            - uuid: e01b55a38ca6441ca87672285ea896d5
              name: 'Sensor [{#SENSOR_INFO}]: Temperature'
              type: DEPENDENT
              key: 'sensor.temp.value[jnxOperatingTemp.{#SNMPINDEX}]'
              value_type: FLOAT
              units: °C
              description: |
                MIB: JUNIPER-MIB
                The temperature in Celsius of [{#SENSOR_INFO}].
              preprocessing:
                - type: SNMP_WALK_VALUE
                  parameters:
                    - '1.3.6.1.4.1.2636.3.1.13.1.7.{#SNMPINDEX}'
                    - '0'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3m
              master_item:
                key: juniper.mx.operating.snmp.walk
              tags:
                - tag: component
                  value: temperature
              trigger_prototypes:
                - uuid: 8ae058e6a8044f52b2f36159a089b5f1
                  expression: 'avg(/Juniper MX by SNMP/sensor.temp.value[jnxOperatingTemp.{#SNMPINDEX}],5m)>{$JUNIPER.MX.TEMP_CRIT:"{#SENSOR_INFO}"}'
                  recovery_mode: RECOVERY_EXPRESSION
                  recovery_expression: 'max(/Juniper MX by SNMP/sensor.temp.value[jnxOperatingTemp.{#SNMPINDEX}],5m)<{$JUNIPER.MX.TEMP_CRIT:"{#SENSOR_INFO}"}-3'
                  name: 'Juniper MX: Sensor [{#SENSOR_INFO}]: Temperature is above critical threshold'
                  event_name: 'Juniper MX: Sensor [{#SENSOR_INFO}]: Temperature is above critical threshold: >{$JUNIPER.MX.TEMP_CRIT:"Juniper MX: Sensor [{#SENSOR_INFO}]"}'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: HIGH
                  description: 'This trigger uses temperature sensor values as well as the temperature sensor status if available.'
                  tags:
                    - tag: scope
                      value: availability
                    - tag: scope
                      value: performance
                - uuid: b48e691a3db64b9481c2b23b8f349dc3
                  expression: 'avg(/Juniper MX by SNMP/sensor.temp.value[jnxOperatingTemp.{#SNMPINDEX}],5m)>{$JUNIPER.MX.TEMP_WARN:"{#SENSOR_INFO}"}'
                  recovery_mode: RECOVERY_EXPRESSION
                  recovery_expression: 'max(/Juniper MX by SNMP/sensor.temp.value[jnxOperatingTemp.{#SNMPINDEX}],5m)<{$JUNIPER.MX.TEMP_WARN:"{#SENSOR_INFO}"}-3'
                  name: 'Juniper MX: Sensor [{#SENSOR_INFO}]: Temperature is above warning threshold'
                  event_name: 'Juniper MX: Sensor [{#SENSOR_INFO}]: Temperature is above warning threshold: >{$JUNIPER.MX.TEMP_WARN:"Juniper MX: Sensor [{#SENSOR_INFO}]"}'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'This trigger uses temperature sensor values as well as the temperature sensor status if available.'
                  dependencies:
                    - name: 'Juniper MX: Sensor [{#SENSOR_INFO}]: Temperature is above critical threshold'
                      expression: 'avg(/Juniper MX by SNMP/sensor.temp.value[jnxOperatingTemp.{#SNMPINDEX}],5m)>{$JUNIPER.MX.TEMP_CRIT:"{#SENSOR_INFO}"}'
                      recovery_expression: 'max(/Juniper MX by SNMP/sensor.temp.value[jnxOperatingTemp.{#SNMPINDEX}],5m)<{$JUNIPER.MX.TEMP_CRIT:"{#SENSOR_INFO}"}-3'
                  tags:
                    - tag: scope
                      value: availability
                    - tag: scope
                      value: performance
                - uuid: eb9e6a9987584dedbae36d636569c03f
                  expression: 'avg(/Juniper MX by SNMP/sensor.temp.value[jnxOperatingTemp.{#SNMPINDEX}],5m)<{$JUNIPER.MX.TEMP_CRIT_LOW:"{#SENSOR_INFO}"}'
                  recovery_mode: RECOVERY_EXPRESSION
                  recovery_expression: 'min(/Juniper MX by SNMP/sensor.temp.value[jnxOperatingTemp.{#SNMPINDEX}],5m)>{$JUNIPER.MX.TEMP_CRIT_LOW:"{#SENSOR_INFO}"}+3'
                  name: 'Juniper MX: Sensor [{#SENSOR_INFO}]: Temperature is too low'
                  event_name: 'Juniper MX: Sensor [{#SENSOR_INFO}]: Temperature is too low: <{$JUNIPER.MX.TEMP_CRIT_LOW:"Juniper MX: Sensor [{#SENSOR_INFO}]"}'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'This trigger uses temperature sensor values as well as the temperature sensor status if available.'
                  tags:
                    - tag: scope
                      value: availability
                    - tag: scope
                      value: performance
          master_item:
            key: juniper.mx.operating.snmp.walk
          preprocessing:
            - type: SNMP_WALK_TO_JSON
              parameters:
                - '{#SNMPVALUE}'
                - 1.3.6.1.4.1.2636.3.1.13.1.7
                - '0'
                - '{#SENSOR_INFO}'
                - 1.3.6.1.4.1.2636.3.1.13.1.5
                - '0'
              error_handler: DISCARD_VALUE
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
      tags:
        - tag: class
          value: network
        - tag: target
          value: juniper
        - tag: target
          value: mx
      macros:
        - macro: '{$JUNIPER.MX.CPU.UTIL.CRIT}'
          value: '90'
          description: 'Threshold of CPU utilization for trigger in %. Can be used with interface name as context.'
          config:
            type: TEXT
            priority: '24'
            section_name: Thresholds
            label: 'CPU utilization critical'
            description: 'Threshold of CPU utilization for trigger in %. Can be used with interface name as context. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$JUNIPER.MX.FAN_CRIT_STATUS}'
          value: '6'
          description: 'Threshold of status sensor for trigger. All statuses defined in valuemap `JUNIPER-MIB::jnxOperatingState`.'
          config:
            type: TEXT
            priority: '21'
            section_name: Thresholds
            label: 'Fan critical status'
            description: 'Threshold of status sensor for trigger. All statuses defined in valuemap `JUNIPER-MIB::jnxOperatingState`.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$JUNIPER.MX.ICMP_LOSS_WARN}'
          value: '20'
          description: 'Warning threshold of ICMP packet loss in %.'
          config:
            type: TEXT
            priority: '26'
            section_name: Thresholds
            label: 'ICMP losses warning'
            description: 'Warning threshold of ICMP packet loss in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$JUNIPER.MX.ICMP_RESPONSE_TIME_WARN}'
          value: '0.15'
          description: 'Warning threshold of the average ICMP response time in seconds.'
          config:
            type: TEXT
            priority: '27'
            section_name: Thresholds
            label: 'ICMP response time warning'
            description: 'Warning threshold of the average ICMP response time in seconds.'
        - macro: '{$JUNIPER.MX.IF.ERRORS.WARN}'
          value: '2'
          description: 'Warning threshold of error packet rate. Can be used with interface name as context.'
          config:
            type: TEXT
            priority: '1'
            section_name: Thresholds
            label: 'Warning threshold for error packet rate'
            description: 'Warning threshold of error packet rate. Can be used with interface name as context.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$JUNIPER.MX.IF.UTIL.MAX}'
          value: '90'
          description: 'Used as a threshold in the interface utilization trigger.'
          config:
            type: TEXT
            priority: '2'
            section_name: Thresholds
            label: 'Interface utilization threshold'
            description: 'Used as a threshold in the interface utilization trigger. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$JUNIPER.MX.IFCONTROL}'
          value: '1'
          description: 'Link status trigger will be fired only for interfaces where the context macro equals "1".'
          config:
            type: TEXT
            priority: '3'
            section_name: Other
            label: 'Link status trigger context flag'
            description: 'Link status trigger will be fired only for interfaces where the context macro equals "1".'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$JUNIPER.MX.MEMORY.UTIL.MAX}'
          value: '90'
          description: 'Threshold of memory utilization for trigger in %. Can be used with interface name as context.'
          config:
            type: TEXT
            priority: '23'
            section_name: Thresholds
            label: 'Memory utilization maximum'
            description: 'Threshold of memory utilization for trigger in %. Can be used with interface name as context. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$JUNIPER.MX.NET.IF.IFADMINSTATUS.MATCHES}'
          value: '^.*'
          description: 'Used in network interface discovery rule filters.'
          config:
            type: TEXT
            priority: '8'
            section_name: Filters
            label: 'Network interface admin status filter (include)'
            description: 'Used in network interface discovery rule filters.'
        - macro: '{$JUNIPER.MX.NET.IF.IFADMINSTATUS.NOT_MATCHES}'
          value: ^2$
          description: 'Ignores `down(2)` administrative status'
          config:
            type: TEXT
            priority: '9'
            section_name: Filters
            label: 'Network interface admin status filter (exclude)'
            description: 'Ignores `down(2)` administrative status'
        - macro: '{$JUNIPER.MX.NET.IF.IFALIAS.MATCHES}'
          value: '.*'
          description: 'Used in network interface discovery rule filters.'
          config:
            type: TEXT
            priority: '12'
            section_name: Filters
            label: 'Network interface alias filter (include)'
            description: 'Used in network interface discovery rule filters.'
        - macro: '{$JUNIPER.MX.NET.IF.IFALIAS.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          description: 'Used in network interface discovery rule filters.'
          config:
            type: TEXT
            priority: '13'
            section_name: Filters
            label: 'Network interface alias filter (exclude)'
            description: 'Used in network interface discovery rule filters.'
        - macro: '{$JUNIPER.MX.NET.IF.IFDESCR.MATCHES}'
          value: '.*'
          description: 'Used in network interface discovery rule filters.'
          config:
            type: TEXT
            priority: '10'
            section_name: Filters
            label: 'Network interface description filter (include)'
            description: 'Used in network interface discovery rule filters.'
        - macro: '{$JUNIPER.MX.NET.IF.IFDESCR.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          description: 'Used in network interface discovery rule filters.'
          config:
            type: TEXT
            priority: '11'
            section_name: Filters
            label: 'Network interface description filter (exclude)'
            description: 'Used in network interface discovery rule filters.'
        - macro: '{$JUNIPER.MX.NET.IF.IFNAME.MATCHES}'
          value: '^.*$'
          description: 'Used for network interface discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '4'
            section_name: Filters
            label: 'Network interface name filter (include)'
            description: 'Used for network interface discovery. Can be overridden on the host or linked template level.'
        - macro: '{$JUNIPER.MX.NET.IF.IFNAME.NOT_MATCHES}'
          value: '(^Software Loopback Interface|^NULL[0-9.]*$|^[Ll]o[0-9.]*$|^[Ss]ystem$|^Nu[0-9.]*$|^veth[0-9a-z]+$|docker[0-9]+|br-[a-z0-9]{12})'
          description: 'Filters out loopbacks, nulls, docker `veth` links, and `docker0 bridge` by default.'
          config:
            type: TEXT
            priority: '5'
            section_name: Filters
            label: 'Network interface name filter (exclude)'
            description: 'Filters out loopbacks, nulls, docker `veth` links, and `docker0 bridge` by default.'
        - macro: '{$JUNIPER.MX.NET.IF.IFOPERSTATUS.MATCHES}'
          value: '^.*$'
          description: 'Used for network interface discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '6'
            section_name: Filters
            label: 'Network interface operational status filter (include)'
            description: 'Used for network interface discovery. Can be overridden on the host or linked template level.'
        - macro: '{$JUNIPER.MX.NET.IF.IFOPERSTATUS.NOT_MATCHES}'
          value: ^6$
          description: 'Ignores `notPresent(6)`'
          config:
            type: TEXT
            priority: '7'
            section_name: Filters
            label: 'Network interface operational status filter (exclude)'
            description: 'Ignores `notPresent(6)`'
        - macro: '{$JUNIPER.MX.NET.IF.IFTYPE.MATCHES}'
          value: '.*'
          description: 'Used in network interface discovery rule filters.'
          config:
            type: TEXT
            priority: '14'
            section_name: Filters
            label: 'Network interface type filter (include)'
            description: 'Used in network interface discovery rule filters.'
        - macro: '{$JUNIPER.MX.NET.IF.IFTYPE.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          description: 'Used in network interface discovery rule filters.'
          config:
            type: TEXT
            priority: '15'
            section_name: Filters
            label: 'Network interface type filter (exclude)'
            description: 'Used in network interface discovery rule filters.'
        - macro: '{$JUNIPER.MX.PSU_CRIT_STATUS}'
          value: '6'
          description: 'Threshold of status sensor for trigger. All statuses defined in valuemap `JUNIPER-MIB::jnxOperatingState`.'
          config:
            type: TEXT
            priority: '22'
            section_name: Thresholds
            label: 'PSU critical status'
            description: 'Threshold of status sensor for trigger. All statuses defined in valuemap `JUNIPER-MIB::jnxOperatingState`.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$JUNIPER.MX.SNMP.TIMEOUT}'
          value: 5m
          description: 'Time interval for the SNMP availability trigger.'
          config:
            type: TEXT
            priority: '25'
            section_name: Other
            label: 'SNMP timeout'
            description: 'Time interval for the SNMP availability trigger.'
        - macro: '{$JUNIPER.MX.TEMP_CRIT}'
          value: '60'
          description: 'Threshold of temperature sensor for trigger. Can be used with interface name as context.'
          config:
            type: TEXT
            priority: '16'
            section_name: Thresholds
            label: 'Critical temperature (default)'
            description: 'Threshold of temperature sensor for trigger. Can be used with interface name as context.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$JUNIPER.MX.TEMP_CRIT:"Routing Engine"}'
          value: '80'
          description: 'Threshold of temperature sensor for trigger. Used for Routing Engine.'
          config:
            type: TEXT
            priority: '19'
            section_name: Thresholds
            label: 'Critical temperature (Routing Engine)'
            description: 'Threshold of temperature sensor for trigger. Used for Routing Engine.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$JUNIPER.MX.TEMP_CRIT_LOW}'
          value: '5'
          description: 'Threshold of temperature sensor for trigger. Can be used with interface name as context.'
          config:
            type: TEXT
            priority: '17'
            section_name: Thresholds
            label: 'Critical low temperature (default)'
            description: 'Threshold of temperature sensor for trigger. Can be used with interface name as context.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$JUNIPER.MX.TEMP_WARN}'
          value: '50'
          description: 'Threshold of temperature sensor for trigger. Can be used with interface name as context.'
          config:
            type: TEXT
            priority: '18'
            section_name: Thresholds
            label: 'Warning temperature (default)'
            description: 'Threshold of temperature sensor for trigger. Can be used with interface name as context.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$JUNIPER.MX.TEMP_WARN:"Routing Engine"}'
          value: '70'
          description: 'Threshold of temperature sensor for trigger. Used for Routing Engine.'
          config:
            type: TEXT
            priority: '20'
            section_name: Thresholds
            label: 'Warning temperature (Routing Engine)'
            description: 'Threshold of temperature sensor for trigger. Used for Routing Engine.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
      dashboards:
        - uuid: 6131b952fe8f42e7b65a8a8538d86016
          name: 'Juniper MX: General'
          pages:
            - name: 'Juniper MX: Overview'
              widgets:
                - type: svggraph
                  name: 'Juniper MX: Memory utilization'
                  width: '36'
                  height: '5'
                  fields:
                    - type: STRING
                      name: ds.0.color
                      value: 3ea900
                    - type: STRING
                      name: ds.0.items.0
                      value: '*Memory utilization'
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_aggregation
                      value: '1'
                    - type: INTEGER
                      name: legend_lines
                      value: '4'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: CCDBA
                    - type: INTEGER
                      name: righty
                      value: '0'
                    - type: INTEGER
                      name: simple_triggers
                      value: '1'
                    - type: INTEGER
                      name: working_time
                      value: '1'
                - type: honeycomb
                  name: 'Juniper MX: Temperature'
                  'y': '5'
                  width: '36'
                  height: '5'
                  fields:
                    - type: STRING
                      name: bg_color
                      value: A5D6A7
                    - type: STRING
                      name: items.0
                      value: '*Temperature'
                    - type: STRING
                      name: primary_label
                      value: '{ITEM.NAME}'
                    - type: INTEGER
                      name: primary_label_bold
                      value: '1'
                    - type: STRING
                      name: reference
                      value: CACFE
                    - type: STRING
                      name: secondary_label_color
                      value: 2334b9
                    - type: INTEGER
                      name: secondary_label_decimal_places
                      value: '0'
                    - type: STRING
                      name: thresholds.0.color
                      value: FF0000
                    - type: STRING
                      name: thresholds.0.threshold
                      value: '80'
                - type: svggraph
                  name: 'Juniper MX: CPU utilization'
                  x: '36'
                  width: '36'
                  height: '5'
                  fields:
                    - type: STRING
                      name: ds.0.color
                      value: 00c3ff
                    - type: STRING
                      name: ds.0.items.0
                      value: '*CPU utilization'
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_aggregation
                      value: '1'
                    - type: INTEGER
                      name: legend_lines
                      value: '4'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: ADFBC
                    - type: INTEGER
                      name: righty
                      value: '0'
                    - type: INTEGER
                      name: simple_triggers
                      value: '1'
                    - type: INTEGER
                      name: working_time
                      value: '1'
                - type: honeycomb
                  name: 'Juniper MX: Current running state'
                  x: '36'
                  'y': '5'
                  width: '12'
                  height: '5'
                  fields:
                    - type: STRING
                      name: bg_color
                      value: A5D6A7
                    - type: STRING
                      name: items.0
                      value: '*Current running state'
                    - type: STRING
                      name: reference
                      value: EFDCB
                    - type: INTEGER
                      name: show.0
                      value: '2'
                - type: honeycomb
                  name: 'Juniper MX: Reason of the last switchover'
                  x: '48'
                  'y': '5'
                  width: '12'
                  height: '5'
                  fields:
                    - type: STRING
                      name: bg_color
                      value: A5D6A7
                    - type: STRING
                      name: items.0
                      value: '*Reason of the last switchover'
                    - type: STRING
                      name: reference
                      value: FCEDA
                    - type: INTEGER
                      name: show.0
                      value: '2'
                - type: item
                  name: 'Juniper MX: OS'
                  x: '60'
                  'y': '5'
                  width: '12'
                  height: '5'
                  fields:
                    - type: ITEM
                      name: itemid.0
                      value:
                        host: 'Juniper MX by SNMP'
                        key: 'juniper.mx.system.sw.os[sysDescr.0]'
                    - type: INTEGER
                      name: show.0
                      value: '2'
                    - type: INTEGER
                      name: units_show
                      value: '0'
                    - type: INTEGER
                      name: value_size
                      value: '10'
            - name: 'Juniper MX: Network'
              widgets:
                - type: svggraph
                  name: 'Juniper MX: Bits received'
                  width: '36'
                  height: '5'
                  fields:
                    - type: STRING
                      name: ds.0.color
                      value: '006274'
                    - type: STRING
                      name: ds.0.items.0
                      value: '*Bits received'
                    - type: INTEGER
                      name: legend_lines
                      value: '3'
                    - type: STRING
                      name: reference
                      value: ABFFD
                    - type: INTEGER
                      name: working_time
                      value: '1'
                - type: svggraph
                  name: 'Juniper MX: Inbound packets discarded'
                  'y': '5'
                  width: '36'
                  height: '5'
                  fields:
                    - type: STRING
                      name: ds.0.color
                      value: 9c640a
                    - type: STRING
                      name: ds.0.items.0
                      value: '*Inbound packets discarded'
                    - type: INTEGER
                      name: legend_lines
                      value: '3'
                    - type: STRING
                      name: reference
                      value: DBEAF
                    - type: INTEGER
                      name: working_time
                      value: '1'
                - type: svggraph
                  name: 'Juniper MX: Inbound packets with errors'
                  'y': '10'
                  width: '36'
                  height: '5'
                  fields:
                    - type: STRING
                      name: ds.0.color
                      value: d73deb
                    - type: STRING
                      name: ds.0.items.0
                      value: '*Inbound packets with errors'
                    - type: INTEGER
                      name: legend_lines
                      value: '3'
                    - type: STRING
                      name: reference
                      value: DBDEA
                    - type: INTEGER
                      name: working_time
                      value: '1'
                - type: svggraph
                  name: 'Juniper MX: Bits sent'
                  x: '36'
                  width: '36'
                  height: '5'
                  fields:
                    - type: STRING
                      name: ds.0.color
                      value: b51b1b
                    - type: STRING
                      name: ds.0.items.0
                      value: '*Bits sent'
                    - type: INTEGER
                      name: legend_lines
                      value: '3'
                    - type: STRING
                      name: reference
                      value: DEDDA
                    - type: INTEGER
                      name: working_time
                      value: '1'
                - type: svggraph
                  name: 'Juniper MX: Outbound packets discarded'
                  x: '36'
                  'y': '5'
                  width: '36'
                  height: '5'
                  fields:
                    - type: STRING
                      name: ds.0.color
                      value: 3d5c25
                    - type: STRING
                      name: ds.0.items.0
                      value: '*Outbound packets discarded'
                    - type: INTEGER
                      name: legend_lines
                      value: '3'
                    - type: STRING
                      name: reference
                      value: FBDDA
                    - type: INTEGER
                      name: working_time
                      value: '1'
                - type: svggraph
                  name: 'Juniper MX: Outbound packets with errors'
                  x: '36'
                  'y': '10'
                  width: '36'
                  height: '5'
                  fields:
                    - type: STRING
                      name: ds.0.color
                      value: 33309a
                    - type: STRING
                      name: ds.0.items.0
                      value: '*Outbound packets with errors'
                    - type: INTEGER
                      name: legend_lines
                      value: '3'
                    - type: STRING
                      name: reference
                      value: EEDCC
                    - type: INTEGER
                      name: working_time
                      value: '1'
            - name: 'Juniper MX: Digital Lane Monitoring'
              widgets:
                - type: svggraph
                  name: 'Juniper MX: Tx optical power lane'
                  width: '36'
                  height: '8'
                  fields:
                    - type: STRING
                      name: ds.0.color
                      value: 29b00b
                    - type: STRING
                      name: ds.0.items.0
                      value: '*Tx optical power lane*'
                    - type: INTEGER
                      name: legend_lines
                      value: '3'
                    - type: STRING
                      name: reference
                      value: BBCBB
                    - type: INTEGER
                      name: working_time
                      value: '1'
                - type: svggraph
                  name: 'Juniper MX: Rx optical power lane'
                  x: '36'
                  width: '36'
                  height: '8'
                  fields:
                    - type: STRING
                      name: ds.0.color
                      value: 0d62c3
                    - type: STRING
                      name: ds.0.items.0
                      value: '*Rx optical power lane*'
                    - type: INTEGER
                      name: legend_lines
                      value: '3'
                    - type: STRING
                      name: reference
                      value: CEACB
                    - type: INTEGER
                      name: working_time
                      value: '1'
            - name: 'Juniper MX: BGP/OSPF'
              widgets:
                - type: honeycomb
                  name: 'Juniper MX: BGP Peer state'
                  width: '18'
                  height: '5'
                  fields:
                    - type: STRING
                      name: bg_color
                      value: A5D6A7
                    - type: STRING
                      name: items.0
                      value: '*peer * State'
                    - type: STRING
                      name: primary_label
                      value: '{ITEM.NAME}'
                    - type: INTEGER
                      name: primary_label_bold
                      value: '1'
                    - type: STRING
                      name: reference
                      value: CEFEB
                    - type: STRING
                      name: secondary_label_color
                      value: 2334b9
                    - type: INTEGER
                      name: secondary_label_decimal_places
                      value: '0'
                - type: svggraph
                  name: 'Juniper MX: BGP Accepted/Rejected prefixes'
                  'y': '5'
                  width: '36'
                  height: '5'
                  fields:
                    - type: STRING
                      name: ds.0.color
                      value: d882f2
                    - type: STRING
                      name: ds.0.items.0
                      value: 'BGP * Accepted prefixes'
                    - type: STRING
                      name: ds.1.color
                      value: 4ba26e
                    - type: STRING
                      name: ds.1.items.0
                      value: 'BGP * Rejected prefixes'
                    - type: INTEGER
                      name: legend_lines
                      value: '2'
                    - type: STRING
                      name: reference
                      value: FEFAD
                    - type: INTEGER
                      name: working_time
                      value: '1'
                - type: svggraph
                  name: 'Juniper MX: BGP Advertised/Received prefixes'
                  'y': '10'
                  width: '36'
                  height: '5'
                  fields:
                    - type: STRING
                      name: ds.0.color
                      value: d882f2
                    - type: STRING
                      name: ds.0.items.0
                      value: 'BGP * Advertised prefixes'
                    - type: STRING
                      name: ds.1.color
                      value: 9bde59
                    - type: STRING
                      name: ds.1.items.0
                      value: 'BGP * Received prefixes'
                    - type: INTEGER
                      name: legend_lines
                      value: '2'
                    - type: STRING
                      name: reference
                      value: EDDBF
                    - type: INTEGER
                      name: working_time
                      value: '1'
                - type: honeycomb
                  name: 'Juniper MX: BGP Peer status'
                  x: '18'
                  width: '18'
                  height: '5'
                  fields:
                    - type: STRING
                      name: bg_color
                      value: A5D6A7
                    - type: STRING
                      name: items.0
                      value: '*peer * Status'
                    - type: STRING
                      name: primary_label
                      value: '{ITEM.NAME}'
                    - type: INTEGER
                      name: primary_label_bold
                      value: '1'
                    - type: STRING
                      name: reference
                      value: DFDBB
                    - type: STRING
                      name: secondary_label_color
                      value: 2334b9
                    - type: INTEGER
                      name: secondary_label_decimal_places
                      value: '0'
                - type: honeycomb
                  name: 'Juniper MX: OSPF Neighbor State'
                  x: '36'
                  width: '18'
                  height: '5'
                  fields:
                    - type: STRING
                      name: bg_color
                      value: A5D6A7
                    - type: STRING
                      name: items.0
                      value: '*OSPF Neighbor * State'
                    - type: STRING
                      name: primary_label
                      value: '{ITEM.NAME}'
                    - type: INTEGER
                      name: primary_label_bold
                      value: '1'
                    - type: STRING
                      name: reference
                      value: EDAAA
                    - type: STRING
                      name: secondary_label_color
                      value: 2334b9
                    - type: INTEGER
                      name: secondary_label_decimal_places
                      value: '0'
                - type: svggraph
                  name: 'Juniper MX: OSPF/OSPFv3 Number of relationship'
                  x: '36'
                  'y': '5'
                  width: '36'
                  height: '5'
                  fields:
                    - type: STRING
                      name: ds.0.color
                      value: 00c3ff
                    - type: STRING
                      name: ds.0.items.0
                      value: 'OSPF Neighbor * Events'
                    - type: INTEGER
                      name: ds.1.axisy
                      value: '1'
                    - type: STRING
                      name: ds.1.color
                      value: 756dbc
                    - type: STRING
                      name: ds.1.items.0
                      value: 'OSPFv3 Neighbor * Events'
                    - type: INTEGER
                      name: legend_aggregation
                      value: '1'
                    - type: INTEGER
                      name: legend_lines
                      value: '2'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: ABDDC
                    - type: INTEGER
                      name: simple_triggers
                      value: '1'
                    - type: INTEGER
                      name: working_time
                      value: '1'
                - type: honeycomb
                  name: 'Juniper MX: OSPFv3 Neighbor State'
                  x: '54'
                  width: '18'
                  height: '5'
                  fields:
                    - type: STRING
                      name: bg_color
                      value: A5D6A7
                    - type: STRING
                      name: items.0
                      value: '*OSPFv3 Neighbor * State'
                    - type: STRING
                      name: primary_label
                      value: '{ITEM.NAME}'
                    - type: INTEGER
                      name: primary_label_bold
                      value: '1'
                    - type: STRING
                      name: reference
                      value: EECBF
                    - type: STRING
                      name: secondary_label_color
                      value: 2334b9
                    - type: INTEGER
                      name: secondary_label_decimal_places
                      value: '0'
      valuemaps:
        - uuid: 3b94e9f3175c4822b93682636e5cf64d
          name: 'BGP4-V2-MIB-JUNIPER::jnxBgpM2PeerState'
          mappings:
            - value: '1'
              newvalue: idle
            - value: '2'
              newvalue: connect
            - value: '3'
              newvalue: active
            - value: '4'
              newvalue: opensent
            - value: '5'
              newvalue: openconfirm
            - value: '6'
              newvalue: established
        - uuid: 6a57534ae79048229a3ed10f9f0a52e4
          name: 'BGP4-V2-MIB-JUNIPER::jnxBgpM2PeerStatus'
          mappings:
            - value: '1'
              newvalue: halted
            - value: '2'
              newvalue: running
        - uuid: aba24883ea0f4a569748153eb554443a
          name: 'EtherLike-MIB::dot3StatsDuplexStatus'
          mappings:
            - value: '1'
              newvalue: unknown
            - value: '2'
              newvalue: halfDuplex
            - value: '3'
              newvalue: fullDuplex
        - uuid: 93ba7232ec5d47db9478d91b6bdfd01b
          name: 'IF-MIB::ifOperStatus'
          mappings:
            - value: '1'
              newvalue: up
            - value: '2'
              newvalue: down
            - value: '4'
              newvalue: unknown
            - value: '5'
              newvalue: dormant
            - value: '6'
              newvalue: notPresent
            - value: '7'
              newvalue: lowerLayerDown
        - uuid: ecb1a90bea804c79aa074876a95397ae
          name: 'IF-MIB::ifType'
          mappings:
            - value: '1'
              newvalue: other
            - value: '2'
              newvalue: regular1822
            - value: '3'
              newvalue: hdh1822
            - value: '4'
              newvalue: ddnX25
            - value: '5'
              newvalue: rfc877x25
            - value: '6'
              newvalue: ethernetCsmacd
            - value: '7'
              newvalue: iso88023Csmacd
            - value: '8'
              newvalue: iso88024TokenBus
            - value: '9'
              newvalue: iso88025TokenRing
            - value: '10'
              newvalue: iso88026Man
            - value: '11'
              newvalue: starLan
            - value: '12'
              newvalue: proteon10Mbit
            - value: '13'
              newvalue: proteon80Mbit
            - value: '14'
              newvalue: hyperchannel
            - value: '15'
              newvalue: fddi
            - value: '16'
              newvalue: lapb
            - value: '17'
              newvalue: sdlc
            - value: '18'
              newvalue: ds1
            - value: '19'
              newvalue: e1
            - value: '20'
              newvalue: basicISDN
            - value: '21'
              newvalue: primaryISDN
            - value: '22'
              newvalue: propPointToPointSerial
            - value: '23'
              newvalue: ppp
            - value: '24'
              newvalue: softwareLoopback
            - value: '25'
              newvalue: eon
            - value: '26'
              newvalue: ethernet3Mbit
            - value: '27'
              newvalue: nsip
            - value: '28'
              newvalue: slip
            - value: '29'
              newvalue: ultra
            - value: '30'
              newvalue: ds3
            - value: '31'
              newvalue: sip
            - value: '32'
              newvalue: frameRelay
            - value: '33'
              newvalue: rs232
            - value: '34'
              newvalue: para
            - value: '35'
              newvalue: arcnet
            - value: '36'
              newvalue: arcnetPlus
            - value: '37'
              newvalue: atm
            - value: '38'
              newvalue: miox25
            - value: '39'
              newvalue: sonet
            - value: '40'
              newvalue: x25ple
            - value: '41'
              newvalue: iso88022llc
            - value: '42'
              newvalue: localTalk
            - value: '43'
              newvalue: smdsDxi
            - value: '44'
              newvalue: frameRelayService
            - value: '45'
              newvalue: v35
            - value: '46'
              newvalue: hssi
            - value: '47'
              newvalue: hippi
            - value: '48'
              newvalue: modem
            - value: '49'
              newvalue: aal5
            - value: '50'
              newvalue: sonetPath
            - value: '51'
              newvalue: sonetVT
            - value: '52'
              newvalue: smdsIcip
            - value: '53'
              newvalue: propVirtual
            - value: '54'
              newvalue: propMultiplexor
            - value: '55'
              newvalue: ieee80212
            - value: '56'
              newvalue: fibreChannel
            - value: '57'
              newvalue: hippiInterface
            - value: '58'
              newvalue: frameRelayInterconnect
            - value: '59'
              newvalue: aflane8023
            - value: '60'
              newvalue: aflane8025
            - value: '61'
              newvalue: cctEmul
            - value: '62'
              newvalue: fastEther
            - value: '63'
              newvalue: isdn
            - value: '64'
              newvalue: v11
            - value: '65'
              newvalue: v36
            - value: '66'
              newvalue: g703at64k
            - value: '67'
              newvalue: g703at2mb
            - value: '68'
              newvalue: qllc
            - value: '69'
              newvalue: fastEtherFX
            - value: '70'
              newvalue: channel
            - value: '71'
              newvalue: ieee80211
            - value: '72'
              newvalue: ibm370parChan
            - value: '73'
              newvalue: escon
            - value: '74'
              newvalue: dlsw
            - value: '75'
              newvalue: isdns
            - value: '76'
              newvalue: isdnu
            - value: '77'
              newvalue: lapd
            - value: '78'
              newvalue: ipSwitch
            - value: '79'
              newvalue: rsrb
            - value: '80'
              newvalue: atmLogical
            - value: '81'
              newvalue: ds0
            - value: '82'
              newvalue: ds0Bundle
            - value: '83'
              newvalue: bsc
            - value: '84'
              newvalue: async
            - value: '85'
              newvalue: cnr
            - value: '86'
              newvalue: iso88025Dtr
            - value: '87'
              newvalue: eplrs
            - value: '88'
              newvalue: arap
            - value: '89'
              newvalue: propCnls
            - value: '90'
              newvalue: hostPad
            - value: '91'
              newvalue: termPad
            - value: '92'
              newvalue: frameRelayMPI
            - value: '93'
              newvalue: x213
            - value: '94'
              newvalue: adsl
            - value: '95'
              newvalue: radsl
            - value: '96'
              newvalue: sdsl
            - value: '97'
              newvalue: vdsl
            - value: '98'
              newvalue: iso88025CRFPInt
            - value: '99'
              newvalue: myrinet
            - value: '100'
              newvalue: voiceEM
            - value: '101'
              newvalue: voiceFXO
            - value: '102'
              newvalue: voiceFXS
            - value: '103'
              newvalue: voiceEncap
            - value: '104'
              newvalue: voiceOverIp
            - value: '105'
              newvalue: atmDxi
            - value: '106'
              newvalue: atmFuni
            - value: '107'
              newvalue: atmIma
            - value: '108'
              newvalue: pppMultilinkBundle
            - value: '109'
              newvalue: ipOverCdlc
            - value: '110'
              newvalue: ipOverClaw
            - value: '111'
              newvalue: stackToStack
            - value: '112'
              newvalue: virtualIpAddress
            - value: '113'
              newvalue: mpc
            - value: '114'
              newvalue: ipOverAtm
            - value: '115'
              newvalue: iso88025Fiber
            - value: '116'
              newvalue: tdlc
            - value: '117'
              newvalue: gigabitEthernet
            - value: '118'
              newvalue: hdlc
            - value: '119'
              newvalue: lapf
            - value: '120'
              newvalue: v37
            - value: '121'
              newvalue: x25mlp
            - value: '122'
              newvalue: x25huntGroup
            - value: '123'
              newvalue: trasnpHdlc
            - value: '124'
              newvalue: interleave
            - value: '125'
              newvalue: fast
            - value: '126'
              newvalue: ip
            - value: '127'
              newvalue: docsCableMaclayer
            - value: '128'
              newvalue: docsCableDownstream
            - value: '129'
              newvalue: docsCableUpstream
            - value: '130'
              newvalue: a12MppSwitch
            - value: '131'
              newvalue: tunnel
            - value: '132'
              newvalue: coffee
            - value: '133'
              newvalue: ces
            - value: '134'
              newvalue: atmSubInterface
            - value: '135'
              newvalue: l2vlan
            - value: '136'
              newvalue: l3ipvlan
            - value: '137'
              newvalue: l3ipxvlan
            - value: '138'
              newvalue: digitalPowerline
            - value: '139'
              newvalue: mediaMailOverIp
            - value: '140'
              newvalue: dtm
            - value: '141'
              newvalue: dcn
            - value: '142'
              newvalue: ipForward
            - value: '143'
              newvalue: msdsl
            - value: '144'
              newvalue: ieee1394
            - value: '145'
              newvalue: if-gsn
            - value: '146'
              newvalue: dvbRccMacLayer
            - value: '147'
              newvalue: dvbRccDownstream
            - value: '148'
              newvalue: dvbRccUpstream
            - value: '149'
              newvalue: atmVirtual
            - value: '150'
              newvalue: mplsTunnel
            - value: '151'
              newvalue: srp
            - value: '152'
              newvalue: voiceOverAtm
            - value: '153'
              newvalue: voiceOverFrameRelay
            - value: '154'
              newvalue: idsl
            - value: '155'
              newvalue: compositeLink
            - value: '156'
              newvalue: ss7SigLink
            - value: '157'
              newvalue: propWirelessP2P
            - value: '158'
              newvalue: frForward
            - value: '159'
              newvalue: rfc1483
            - value: '160'
              newvalue: usb
            - value: '161'
              newvalue: ieee8023adLag
            - value: '162'
              newvalue: bgppolicyaccounting
            - value: '163'
              newvalue: frf16MfrBundle
            - value: '164'
              newvalue: h323Gatekeeper
            - value: '165'
              newvalue: h323Proxy
            - value: '166'
              newvalue: mpls
            - value: '167'
              newvalue: mfSigLink
            - value: '168'
              newvalue: hdsl2
            - value: '169'
              newvalue: shdsl
            - value: '170'
              newvalue: ds1FDL
            - value: '171'
              newvalue: pos
            - value: '172'
              newvalue: dvbAsiIn
            - value: '173'
              newvalue: dvbAsiOut
            - value: '174'
              newvalue: plc
            - value: '175'
              newvalue: nfas
            - value: '176'
              newvalue: tr008
            - value: '177'
              newvalue: gr303RDT
            - value: '178'
              newvalue: gr303IDT
            - value: '179'
              newvalue: isup
            - value: '180'
              newvalue: propDocsWirelessMaclayer
            - value: '181'
              newvalue: propDocsWirelessDownstream
            - value: '182'
              newvalue: propDocsWirelessUpstream
            - value: '183'
              newvalue: hiperlan2
            - value: '184'
              newvalue: propBWAp2Mp
            - value: '185'
              newvalue: sonetOverheadChannel
            - value: '186'
              newvalue: digitalWrapperOverheadChannel
            - value: '187'
              newvalue: aal2
            - value: '188'
              newvalue: radioMAC
            - value: '189'
              newvalue: atmRadio
            - value: '190'
              newvalue: imt
            - value: '191'
              newvalue: mvl
            - value: '192'
              newvalue: reachDSL
            - value: '193'
              newvalue: frDlciEndPt
            - value: '194'
              newvalue: atmVciEndPt
            - value: '195'
              newvalue: opticalChannel
            - value: '196'
              newvalue: opticalTransport
            - value: '197'
              newvalue: propAtm
            - value: '198'
              newvalue: voiceOverCable
            - value: '199'
              newvalue: infiniband
            - value: '200'
              newvalue: teLink
            - value: '201'
              newvalue: q2931
            - value: '202'
              newvalue: virtualTg
            - value: '203'
              newvalue: sipTg
            - value: '204'
              newvalue: sipSig
            - value: '205'
              newvalue: docsCableUpstreamChannel
            - value: '206'
              newvalue: econet
            - value: '207'
              newvalue: pon155
            - value: '208'
              newvalue: pon622
            - value: '209'
              newvalue: bridge
            - value: '210'
              newvalue: linegroup
            - value: '211'
              newvalue: voiceEMFGD
            - value: '212'
              newvalue: voiceFGDEANA
            - value: '213'
              newvalue: voiceDID
            - value: '214'
              newvalue: mpegTransport
            - value: '215'
              newvalue: sixToFour
            - value: '216'
              newvalue: gtp
            - value: '217'
              newvalue: pdnEtherLoop1
            - value: '218'
              newvalue: pdnEtherLoop2
            - value: '219'
              newvalue: opticalChannelGroup
            - value: '220'
              newvalue: homepna
            - value: '221'
              newvalue: gfp
            - value: '222'
              newvalue: ciscoISLvlan
            - value: '223'
              newvalue: actelisMetaLOOP
            - value: '224'
              newvalue: fcipLink
            - value: '225'
              newvalue: rpr
            - value: '226'
              newvalue: qam
            - value: '227'
              newvalue: lmp
            - value: '228'
              newvalue: cblVectaStar
            - value: '229'
              newvalue: docsCableMCmtsDownstream
            - value: '230'
              newvalue: adsl2
            - value: '231'
              newvalue: macSecControlledIF
            - value: '232'
              newvalue: macSecUncontrolledIF
            - value: '233'
              newvalue: aviciOpticalEther
            - value: '234'
              newvalue: atmbond
            - value: '235'
              newvalue: voiceFGDOS
            - value: '236'
              newvalue: mocaVersion1
            - value: '237'
              newvalue: ieee80216WMAN
            - value: '238'
              newvalue: adsl2plus
            - value: '239'
              newvalue: dvbRcsMacLayer
            - value: '240'
              newvalue: dvbTdm
            - value: '241'
              newvalue: dvbRcsTdma
            - value: '242'
              newvalue: x86Laps
            - value: '243'
              newvalue: wwanPP
            - value: '244'
              newvalue: wwanPP2
            - value: '245'
              newvalue: voiceEBS
            - value: '246'
              newvalue: ifPwType
            - value: '247'
              newvalue: ilan
            - value: '248'
              newvalue: pip
            - value: '249'
              newvalue: aluELP
            - value: '250'
              newvalue: gpon
            - value: '251'
              newvalue: vdsl2
            - value: '252'
              newvalue: capwapDot11Profile
            - value: '253'
              newvalue: capwapDot11Bss
            - value: '254'
              newvalue: capwapWtpVirtualRadio
            - value: '255'
              newvalue: bits
            - value: '256'
              newvalue: docsCableUpstreamRfPort
            - value: '257'
              newvalue: cableDownstreamRfPort
            - value: '258'
              newvalue: vmwareVirtualNic
            - value: '259'
              newvalue: ieee802154
            - value: '260'
              newvalue: otnOdu
            - value: '261'
              newvalue: otnOtu
            - value: '262'
              newvalue: ifVfiType
            - value: '263'
              newvalue: g9981
            - value: '264'
              newvalue: g9982
            - value: '265'
              newvalue: g9983
            - value: '266'
              newvalue: aluEpon
            - value: '267'
              newvalue: aluEponOnu
            - value: '268'
              newvalue: aluEponPhysicalUni
            - value: '269'
              newvalue: aluEponLogicalLink
            - value: '270'
              newvalue: aluGponOnu
            - value: '271'
              newvalue: aluGponPhysicalUni
            - value: '272'
              newvalue: vmwareNicTeam
            - value: '277'
              newvalue: docsOfdmDownstream
            - value: '278'
              newvalue: docsOfdmaUpstream
            - value: '279'
              newvalue: gfast
            - value: '280'
              newvalue: sdci
            - value: '281'
              newvalue: xboxWireless
            - value: '282'
              newvalue: fastdsl
            - value: '283'
              newvalue: docsCableScte55d1FwdOob
            - value: '284'
              newvalue: docsCableScte55d1RetOob
            - value: '285'
              newvalue: docsCableScte55d2DsOob
            - value: '286'
              newvalue: docsCableScte55d2UsOob
            - value: '287'
              newvalue: docsCableNdf
            - value: '288'
              newvalue: docsCableNdr
            - value: '289'
              newvalue: ptm
            - value: '290'
              newvalue: ghn
        - uuid: 71aa874db0c647f2ab6b6f6ed741efa3
          name: 'JUNIPER-MIB::jnxOperatingState'
          mappings:
            - value: '1'
              newvalue: unknown
            - value: '2'
              newvalue: running
            - value: '3'
              newvalue: ready
            - value: '4'
              newvalue: reset
            - value: '5'
              newvalue: runningAtFullSpeed
            - value: '6'
              newvalue: 'down or off'
            - value: '7'
              newvalue: standby
        - uuid: 0432e6064cae4a22bdd512d0c8900f35
          name: 'JUNIPER-MIB::jnxRedundancyState'
          mappings:
            - value: '1'
              newvalue: unknown
            - value: '2'
              newvalue: master
            - value: '3'
              newvalue: backup
            - value: '4'
              newvalue: disabled
            - value: '5'
              newvalue: notApplicable
        - uuid: 742e0675e0b84ba685b1b06172334215
          name: 'JUNIPER-MIB::jnxRedundancySwitchoverReason'
          mappings:
            - value: '1'
              newvalue: other
            - value: '2'
              newvalue: neverSwitched
            - value: '3'
              newvalue: userSwitched
            - value: '4'
              newvalue: autoSwitched
        - uuid: 5d007beac7eb4743ab241d6a1c80847a
          name: 'OSPF-MIB::ospfNbrHelloSuppressed'
          mappings:
            - value: '1'
              newvalue: 'true'
            - value: '2'
              newvalue: 'false'
        - uuid: ed5b11312aaf44e0b888c58743e89f81
          name: 'OSPF-MIB::ospfNbrState'
          mappings:
            - value: '1'
              newvalue: down
            - value: '2'
              newvalue: attempt
            - value: '3'
              newvalue: init
            - value: '4'
              newvalue: twoWay
            - value: '5'
              newvalue: exchangeStart
            - value: '6'
              newvalue: exchange
            - value: '7'
              newvalue: loading
            - value: '8'
              newvalue: full
        - uuid: 1373262e914a430abe52ec79d2fc138b
          name: 'Service state'
          mappings:
            - value: '0'
              newvalue: Down
            - value: '1'
              newvalue: Up
        - uuid: bcba269d955b452d87a6f49f7a35ed2a
          name: zabbix.host.available
          mappings:
            - value: '0'
              newvalue: 'not available'
            - value: '1'
              newvalue: available
            - value: '2'
              newvalue: unknown
    - uuid: f397be2340734d24bc666102fbe184a5
      template: 'Kubernetes nodes by HTTP'
      name: 'Kubernetes nodes by HTTP'
      description: |
        Get Kubernetes nodes metrics by HTTP.
        Metrics are collected by requests to Kubernetes API.
        
        Don't forget to read the README.md for the correct setup of the template.
        
        You can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback
        
        Generated by official Zabbix template tool "Templator"
      wizard_ready: 'YES'
      readme: |
        ## Overview
        
        The template to monitor Kubernetes nodes that work without any external scripts.
        It works without external scripts and uses the script item to make HTTP requests to the Kubernetes API.
        
        Change the values according to the environment in the file $HOME/zabbix_values.yaml.
        
        For example:
        
        ## Enables use of **Zabbix proxy**
            enabled: false
        
        Set the field: `Kubernetes API URL` such as `<scheme>://<host>:<port>`.
        
        Get the generated service account token using the command:
        
        `kubectl get secret zabbix-zabbix-helm-chart -n monitoring -o jsonpath={.data.token} | base64 -d`
        
        Then set it to the field: `API Authorization Token`.
        
        Set up the fields to filter the metrics of discovered nodes.
        
        
        ## Setup
        
        Install the [Zabbix Helm Chart](https://git.zabbix.com/projects/ZT/repos/kubernetes-helm/browse?at=refs%2Fheads%2Fmaster) in your Kubernetes cluster.
        
        Set the following fields: `Kubernetes API URL` such as `<scheme>://<host>:<port>`.
        
        Get the generated service account token using the command:
        
        `kubectl get secret zabbix-zabbix-helm-chart -n monitoring -o jsonpath={.data.token} | base64 -d`
        
        Then set it to the field: `API Authorization Token`.
        
        Set `Nodes Endpoint Name` with Zabbix agent's endpoint name. See `kubectl -n monitoring get ep`. Default: `zabbix-zabbix-helm-chrt-agent`.
        
        Set up the fields to filter the metrics of discovered nodes and host creation based on host prototypes:
        
        - `Node Matches Filter`
        - `Node Exclusion Filter`
        - `Node Role Matches Filter`
        - `Node Role Exclusion Filter`
        
        Set up fields to filter pod metrics by namespace:
        
        - `Pod Namespace Matches Filter`
        - `Pod Namespace Exclusion Filter`
        
        **Note:** If you have a large cluster, it is highly recommended to set a filter for discoverable pods.
        
        You can use the `Node Labels Filter`, `Pod Labels Filter`, `Node Annotations Filter` and `Pod Annotations Filter` fields for advanced filtering of nodes and pods by labels and annotations.
        
        Notes about labels and annotations filters:
        
        - Values should be specified separated by commas and must have the key/value form with support for regular expressions in the value (`key1: value, key2: regexp`).
        - ECMAScript syntax is used for regular expressions.
        - Filters are applied if such a label key exists for the entity that is being filtered (it means that if you specify a key in a filter, entities which do not have this key will not be affected by the filter and will still be discovered, and only entities containing that key will be filtered by the value).
        - You can also use the exclamation point symbol (`!`) to invert the filter (`!key: value`).
        
        For example: `kubernetes.io/hostname: kubernetes-node[5-25], !node-role.kubernetes.io/ingress: .*`. As a result, the nodes 5-25 without the "ingress" role will be discovered.
        
        
        See the Kubernetes documentation for details about labels and annotations:
        
        - <https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/>
        - <https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/>
        
        **Note:** the discovered nodes will be created as separate hosts in Zabbix with the Linux template automatically assigned to them.
      vendor:
        name: Zabbix
        version: 8.0-2
      groups:
        - name: Templates/Applications
      items:
        - uuid: 70dab03a327a4dc0ab9fe8031052584d
          name: 'Get nodes'
          type: SCRIPT
          key: kube.nodes
          delay: 0;s00
          history: '0'
          value_type: TEXT
          params: |
            var Kube = {
            	params: {},
            	pods_limit: 1000,
            
            	setParams: function (params) {
            		['api_token', 'api_url'].forEach(function (field) {
            			if (typeof params !== 'object' || typeof params[field] === 'undefined'
            				|| params[field] === '') {
            				throw 'Required param is not set: "' + field + '".';
            			}
            		});
            		['endpoint_name', 'pod_filter_labels', 'pod_filter_annotations', 'node_filter_labels', 'node_filter_annotations'].forEach(function (field) {
            			if (typeof params !== 'object' || typeof params[field] === 'undefined') {
            				throw 'Parameter can be empty but not removed: "' + field + '".';
            			}
            		});
            
            		Kube.params = params;
            		if (typeof Kube.params.api_url === 'string' && !Kube.params.api_url.endsWith('/')) {
            			Kube.params.api_url += '/';
            		}
            	},
            
            	apiRequest: function (query) {
            		var request = new HttpRequest(),
            			response,
            			url = encodeURI(Kube.params.api_url + query);
            		if (typeof Kube.params.http_proxy !== 'undefined' && Kube.params.http_proxy !== '') {
            			request.setProxy(Kube.params.http_proxy);
            		}
            		request.addHeader('Content-Type: application/json');
            		request.addHeader('Authorization: Bearer ' + Kube.params.api_token);
            
            		if (Kube.params.http_proxy) {
            			Zabbix.log(4, '[ Kubernetes ] Using http proxy: ' + Kube.params.http_proxy);
            		}
            		response = request.get(url);
            
            		Zabbix.log(4, '[ Kubernetes ] Received response with status code ' + request.getStatus() + ': ' + response);
            
            		if (request.getStatus() < 200 || request.getStatus() >= 300) {
            			throw 'Request failed with status code ' + request.getStatus() + ': ' + response;
            		}
            
            		try {
            			response = JSON.parse(response);
            		}
            		catch (error) {
            			throw 'Failed to parse response received from Kubernetes API. Check debug log for more information.';
            		}
            		return response;
            	},
            
            	parseFilters: function (csv) {
            		if (!csv)
            			return [];
            
            		var filters = [];
            		const filterCapture = /([!\w\-\.\/]+)\s*:\s*(.*)/;
            		const onComma = /\s*,\s*/;
            
            		csv.split(onComma).forEach(function (kv) {
            			var match = kv.match(filterCapture);
            			if (!match) {
            				Zabbix.log(3, 'Cannot parse filter from: "' + kv + '"');
            				return;
            			}
            
            			filters.push({ key: match[1], expression: match[2] });
            		});
            
            		return filters;
            	},
            
            	filter: function (name, data, filters) {
            		if (typeof data !== 'object') {
            			return true;
            		}
            
            		return filters.every(function (filter) {
            			const filter_key = filter.key.startsWith('!') ? filter.key.substring(1) : filter.key;
            
            			if (!(filter_key in data)) {
            				return true;
            			}
            
            			const isExcludingFilter = filter.key.startsWith('!');
            			const isMatchForFilter = new RegExp(filter.expression).test(data[filter_key]);
            
            			if ((isExcludingFilter && isMatchForFilter) ||
            				(!isExcludingFilter && !isMatchForFilter)) {
            				Zabbix.log(4, '[ Kubernetes ] Discarded "' + name + '" by filter "' + filter.key + ': ' + filter.expression + '"');
            				return false;
            			}
            
            			return true;
            		});
            	},
            
            	getField: function (data, path) {
            		var steps = path.split('.');
            		for (var i = 0; i < steps.length; i++) {
            			var step = steps[i];
            			if (typeof data !== 'object' || typeof data[step] === 'undefined') {
            				throw 'Required field was not found: ' + path;
            			}
            
            			data = data[step];
            		}
            
            		return data;
            	},
            
            	getNodes: function () {
            		var result = Kube.apiRequest('api/v1/nodes'),
            			output = [],
            			filterNodeLabels = Kube.parseFilters(Kube.params.node_filter_labels),
            			filterNodeAnnotations = Kube.parseFilters(Kube.params.node_filter_annotations);
            		if (typeof result !== 'object'
            			|| typeof result.items === 'undefined') {
            			throw 'Cannot get nodes from Kubernetes API. Check debug log for more information.';
            		}
            
            		result.items.forEach(function (filternode) {
            			if (Kube.filter(Kube.getField(filternode, 'metadata.name'), Kube.getField(filternode, 'metadata.labels'), filterNodeLabels)
            				&& Kube.filter(Kube.getField(filternode, 'metadata.name'), Kube.getField(filternode, 'metadata.annotations'), filterNodeAnnotations)) {
            				Zabbix.log(4, '[ Kubernetes ] Filtered node "' + filternode.metadata.name + '"');
            
            				output.push({
            					filternode
            				});
            			}
            		});
            
            		return output;
            	},
            
            	getPods: function () {
            		var result = [],
            			continue_token,
            			Pods = [];
            
            		while (continue_token !== '') {
            			var data = Kube.apiRequest('api/v1/pods?limit=' + Kube.pods_limit
            				+ ((typeof continue_token !== 'undefined') ? '&continue=' + continue_token : ''));
            
            			if (typeof data !== 'object'
            				|| typeof data.items === 'undefined') {
            				throw 'Cannot get pods from Kubernetes API. Check debug log for more information.';
            			};
            
            			result.push.apply(result, data.items);
            			continue_token = data.metadata.continue || '';
            		}
            		result.forEach(function (pod) {
            
            			var containers = {
            				limits: { cpu: 0, memory: 0 },
            				requests: { cpu: 0, memory: 0 },
            				restartCount: 0
            			},
            				containerStatuses = [{ restartCount: 0 }];
            
            			if (typeof pod.status.hostIP === 'object'
            				|| typeof pod.status.hostIP === 'undefined') {
            				pod.status.hostIP = 'none';
            			};
            
            			Kube.getField(pod, 'spec.containers').forEach(function (container) {
            				var limits = container.resources.limits,
            					requests = container.resources.requests;
            
            				if (typeof limits !== 'undefined') {
            					containers.limits.cpu += Fmt.cpuFormat(limits.cpu);
            					containers.limits.memory += Fmt.memoryFormat(limits.memory);
            				}
            
            				if (typeof requests !== 'undefined') {
            					containers.requests.cpu += Fmt.cpuFormat(requests.cpu);
            					containers.requests.memory += Fmt.memoryFormat(requests.memory);
            				}
            			});
            
            			if (typeof pod.status.containerStatuses !== 'object'
            				|| typeof pod.status.containerStatuses === 'undefined') {
            				pod.status.containerStatuses = containerStatuses;
            			};
            			pod.status.containerStatuses.forEach(function (container) {
            				containers.restartCount += container.restartCount;
            
            			});
            
            			Pods.push({
            				'name': pod.metadata.name,
            				'nodeIP': pod.status.hostIP,
            				'namespace': pod.metadata.namespace,
            				'labels': pod.metadata.labels,
            				'annotations': pod.metadata.annotations,
            				'phase': pod.status.phase,
            				'conditions': pod.status.conditions,
            				'startTime': pod.status.startTime,
            				'containers': containers,
            				'hostname': 'none'
            			})
            		});
            		return Pods;
            	},
            
            	getEndpointIPs: function () {
            		var endpoints = Kube.apiRequest('api/v1/endpoints'),
            			endpointIPs = [];
            		if (typeof endpoints !== 'object'
            			|| typeof endpoints.items === 'undefined') {
            			throw 'Cannot get endpoints from Kubernetes API. Check debug log for more information.';
            		};
            
            		endpoints.items.forEach(function (ep) {
            			if (Kube.getField(ep, 'metadata.name') !== Kube.params.endpoint_name) {
            				return;
            			}
            			if (!Array.isArray(ep.subsets)) {
            				return;
            			}
            			endpointIPs = ep.subsets;
            
            		});
            		return endpointIPs;
            	}
            },
            
            	Fmt = {
            		factors: {
            			Ki: 1024, K: 1000,
            			Mi: 1024 ** 2, M: 1000 ** 2,
            			Gi: 1024 ** 3, G: 1000 ** 3,
            			Ti: 1024 ** 4, T: 1000 ** 4,
            		},
            
            		cpuFormat: function (cpu) {
            			if (typeof cpu === 'undefined') {
            				return 0;
            			}
            
            			if (cpu.indexOf('m') > -1) {
            				return parseInt(cpu) / 1000;
            			}
            
            			return parseInt(cpu);
            		},
            
            		memoryFormat: function (mem) {
            			if (typeof mem === 'undefined') {
            				return 0;
            			}
            
            			var pair,
            				factor;
            
            			if (pair = mem.match(/(\d+)(\w*)/)) {
            				if (factor = Fmt.factors[pair[2]]) {
            					return parseInt(pair[1]) * factor;
            				}
            
            				return mem;
            			}
            
            			return parseInt(mem);
            		}
            
            	}
            
            try {
            	Kube.setParams(JSON.parse(value));
            
            	var nodes = Kube.getNodes(),
            		pods = Kube.getPods(),
            		Pods = [],
            		hostname = Kube.params.api_url.match(/https?:\/\/([\w.-]+|\[[a-f0-9:]+\]|[^a-zA-Z:]+)(?::\d+)?/),
            		filterPodLabels = Kube.parseFilters(Kube.params.pod_filter_labels),
            		filterPodAnnotations = Kube.parseFilters(Kube.params.pod_filter_annotations),
            		endpointIPs = Kube.getEndpointIPs();
            	if (typeof hostname[1] === 'undefined') {
            		Zabbix.log(4, '[ Kubernetes ] Received incorrect Kubernetes API url: ' + api_url + '. Expected format: <scheme>://<host>:<port>');
            		throw 'Cannot get hostname from Kubernetes API url. Check debug log for more information.';
            	};
            	for (idx in nodes) {
            		var nodePodsCount = 0,
            			endpointpod = [],
            			roles = [];
            		Object.keys(nodes[idx].filternode.metadata.labels).forEach(function (label) {
            			var splitLabel = label.match(/^node-role.kubernetes.io\/([\w\.-]+)/);
            
            			if (splitLabel) {
            				roles.push(splitLabel[1]);
            			}
            		});
            		var internalIPs = Kube.getField(nodes[idx].filternode, 'status.addresses').filter(function (addr) {
            			return addr.type === 'InternalIP';
            		});
            		var internalIP = internalIPs.length && internalIPs[0].address;
            
            		var Hostname = Kube.getField(nodes[idx].filternode, 'status.addresses').filter(function (addr) {
            			return addr.type === 'Hostname';
            		});
            		var Hostname = Hostname.length && Hostname[0].address;
            
            		pods.forEach(function (pod) {
            			if (pod.nodeIP !== internalIP) {
            				return;
            			}
            			nodePodsCount++;
            			pod.hostname = Hostname;
            			Pods = pods.filter(function (f) {
            				return (f.hostname !== 'none' || f.phase === 'Pending') && (
            					Kube.filter(f.name, f.labels, filterPodLabels)
            					&& Kube.filter(f.name, f.annotations, filterPodAnnotations)
            				);
            			}
            			)
            		});
            
            		endpointIPs.forEach(function (agent) {
            			for (k in Kube.getField(agent, 'addresses')) {
            				if (Kube.getField(agent.addresses[k], 'ip') === internalIP) {
            					endpointpod = Kube.getField(agent.addresses[k], 'targetRef.name')
            				}
            				for (k in agent.notReadyAddresses) {
            					if (agent.notReadyAddresses[k].ip === internalIP) {
            						endpointpod = 'notReadyAddresses'
            					}
            				}
            
            			}
            		});
            
            		delete nodes[idx].filternode.metadata.managedFields;
            		delete nodes[idx].filternode.status.images;
            		nodes[idx].filternode.status.capacity.cpu = Fmt.cpuFormat(nodes[idx].filternode.status.capacity.cpu);
            		nodes[idx].filternode.status.capacity.memory = Fmt.memoryFormat(nodes[idx].filternode.status.capacity.memory);
            		nodes[idx].filternode.status.allocatable.cpu = Fmt.cpuFormat(nodes[idx].filternode.status.allocatable.cpu);
            		nodes[idx].filternode.status.allocatable.memory = Fmt.memoryFormat(nodes[idx].filternode.status.allocatable.memory);
            		nodes[idx].filternode.status.podsCount = nodePodsCount;
            		nodes[idx].filternode.status.roles = roles.join(', ');
            		nodes[idx].filternode.status.agent = endpointpod;
            		nodes[idx].filternode.internalIP = internalIP;
            		nodes[idx].filternode.clusterhostname = hostname[1];
            
            	}
            
            	return JSON.stringify({ nodes, Pods });
            }
            catch (error) {
            	error += (String(error).endsWith('.')) ? '' : '.';
            	Zabbix.log(3, '[ Kubernetes ] ERROR: ' + error);
            	return JSON.stringify({ error: error });
            }
          description: 'Collecting and processing cluster nodes data via Kubernetes API.'
          timeout: 10s
          parameters:
            - name: api_token
              value: '{$KUBE.API.TOKEN}'
            - name: api_url
              value: '{$KUBE.API.URL}'
            - name: endpoint_name
              value: '{$KUBE.NODES.ENDPOINT.NAME}'
            - name: http_proxy
              value: '{$KUBE.HTTP.PROXY}'
            - name: node_filter_annotations
              value: '{$KUBE.NODE.FILTER.ANNOTATIONS}'
            - name: node_filter_labels
              value: '{$KUBE.NODE.FILTER.LABELS}'
            - name: pod_filter_annotations
              value: '{$KUBE.POD.FILTER.ANNOTATIONS}'
            - name: pod_filter_labels
              value: '{$KUBE.POD.FILTER.LABELS}'
          tags:
            - tag: component
              value: raw
        - uuid: f78df5e88780418b894017086f8d9641
          name: 'Get nodes check'
          type: DEPENDENT
          key: kube.nodes.check
          value_type: CHAR
          description: 'Data collection check.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.error
              error_handler: CUSTOM_VALUE
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 3h
          master_item:
            key: kube.nodes
          tags:
            - tag: component
              value: status
          triggers:
            - uuid: 827016cf41254f38aa58ff99e22f9e6f
              expression: 'length(last(/Kubernetes nodes by HTTP/kube.nodes.check))>0'
              name: 'Kubernetes nodes: Failed to get nodes'
              priority: WARNING
              tags:
                - tag: scope
                  value: availability
      discovery_rules:
        - uuid: f408d71f02f645f6a7e24047a57860b6
          name: 'Node discovery'
          type: DEPENDENT
          key: kube.node.discovery
          filter:
            evaltype: AND
            conditions:
              - macro: '{#NAME}'
                value: '{$KUBE.LLD.FILTER.NODE.MATCHES}'
              - macro: '{#NAME}'
                value: '{$KUBE.LLD.FILTER.NODE.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#ROLES}'
                value: '{$KUBE.LLD.FILTER.NODE.ROLE.MATCHES}'
              - macro: '{#ROLES}'
                value: '{$KUBE.LLD.FILTER.NODE.ROLE.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
          item_prototypes:
            - uuid: 6f986c54ff744522abd793347dba5148
              name: 'Node [{#NAME}] Addresses: External IP'
              type: DEPENDENT
              key: 'kube.node.addresses.external_ip[{#NAME}]'
              value_type: CHAR
              description: 'Typically the IP address of the node that is externally routable (available from outside the cluster).'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.status.addresses[?(@.type == "ExternalIP")].address.first()'
                  error_handler: DISCARD_VALUE
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3h
              master_item:
                key: 'kube.node.get[{#NAME}]'
              tags:
                - tag: component
                  value: addresses
                - tag: node
                  value: '{#NAME}'
            - uuid: a6bb3067ed44446e9b4831f5be57661b
              name: 'Node [{#NAME}] Addresses: Internal IP'
              type: DEPENDENT
              key: 'kube.node.addresses.internal_ip[{#NAME}]'
              value_type: CHAR
              description: 'Typically the IP address of the node that is routable only within the cluster.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.status.addresses[?(@.type == "InternalIP")].address.first()'
                  error_handler: DISCARD_VALUE
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3h
              master_item:
                key: 'kube.node.get[{#NAME}]'
              tags:
                - tag: component
                  value: addresses
                - tag: node
                  value: '{#NAME}'
            - uuid: 57eb59ad6e63466f993cd7064788c75d
              name: 'Node [{#NAME}] Allocatable: CPU'
              type: DEPENDENT
              key: 'kube.node.allocatable.cpu[{#NAME}]'
              value_type: FLOAT
              description: |
                Allocatable CPU.
                
                'Allocatable' on a Kubernetes node is defined as the amount of compute resources that are available for pods. The scheduler does not over-subscribe 'Allocatable'. 'CPU', 'memory' and 'ephemeral-storage' are supported as of now.
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.status.allocatable.cpu
              master_item:
                key: 'kube.node.get[{#NAME}]'
              tags:
                - tag: component
                  value: allocatable
                - tag: node
                  value: '{#NAME}'
            - uuid: 843ecf5ca78148caa49f3b4cca26e4d4
              name: 'Node [{#NAME}] Allocatable: Memory'
              type: DEPENDENT
              key: 'kube.node.allocatable.memory[{#NAME}]'
              units: B
              description: |
                Allocatable Memory.
                
                'Allocatable' on a Kubernetes node is defined as the amount of compute resources that are available for pods. The scheduler does not over-subscribe 'Allocatable'. 'CPU', 'memory' and 'ephemeral-storage' are supported as of now.
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.status.allocatable.memory
              master_item:
                key: 'kube.node.get[{#NAME}]'
              tags:
                - tag: component
                  value: allocatable
                - tag: node
                  value: '{#NAME}'
            - uuid: be853c34395643af828e349105e2feba
              name: 'Node [{#NAME}] Allocatable: Pods'
              type: DEPENDENT
              key: 'kube.node.allocatable.pods[{#NAME}]'
              description: 'https://kubernetes.io/docs/tasks/administer-cluster/reserve-compute-resources/'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.status.allocatable.pods
              master_item:
                key: 'kube.node.get[{#NAME}]'
              tags:
                - tag: component
                  value: allocatable
                - tag: node
                  value: '{#NAME}'
            - uuid: 96c25644261446afb70ce874ff1c7b7d
              name: 'Node [{#NAME}] Capacity: CPU'
              type: DEPENDENT
              key: 'kube.node.capacity.cpu[{#NAME}]'
              value_type: FLOAT
              description: |
                CPU resource capacity.
                
                https://kubernetes.io/docs/concepts/architecture/nodes/#capacity
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.status.capacity.cpu
              master_item:
                key: 'kube.node.get[{#NAME}]'
              tags:
                - tag: component
                  value: capacity
                - tag: node
                  value: '{#NAME}'
            - uuid: e890e682c3454d20b7cd3becc950279f
              name: 'Node [{#NAME}] Capacity: Memory'
              type: DEPENDENT
              key: 'kube.node.capacity.memory[{#NAME}]'
              units: B
              description: |
                Memory resource capacity.
                
                https://kubernetes.io/docs/concepts/architecture/nodes/#capacity
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.status.capacity.memory
              master_item:
                key: 'kube.node.get[{#NAME}]'
              tags:
                - tag: component
                  value: capacity
                - tag: node
                  value: '{#NAME}'
            - uuid: f45997b967964ed29c29b64b94544a48
              name: 'Node [{#NAME}] Capacity: Pods'
              type: DEPENDENT
              key: 'kube.node.capacity.pods[{#NAME}]'
              description: 'https://kubernetes.io/docs/tasks/administer-cluster/reserve-compute-resources/'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.status.capacity.pods
              master_item:
                key: 'kube.node.get[{#NAME}]'
              tags:
                - tag: component
                  value: capacity
                - tag: node
                  value: '{#NAME}'
            - uuid: ad5f8baa9ff44ca0ba17fc83e197420e
              name: 'Node [{#NAME}] Conditions: Disk pressure'
              type: DEPENDENT
              key: 'kube.node.conditions.diskpressure[{#NAME}]'
              description: 'True if pressure exists on the disk size - that is, if the disk capacity is low; otherwise False.'
              valuemap:
                name: 'Node conditions'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.status.conditions[?(@.type == "DiskPressure")].status.first()'
                  error_handler: DISCARD_VALUE
                - type: JAVASCRIPT
                  parameters:
                    - 'return [''True'', ''False'', ''Unknown''].indexOf(value) + 1 || ''Problem with status processing in JS'';'
              master_item:
                key: 'kube.node.get[{#NAME}]'
              tags:
                - tag: component
                  value: conditions
                - tag: node
                  value: '{#NAME}'
              trigger_prototypes:
                - uuid: 4e283f3f104a4239a0b1c24f0313ab95
                  expression: 'last(/Kubernetes nodes by HTTP/kube.node.conditions.diskpressure[{#NAME}])=1'
                  name: 'Kubernetes nodes: Node [{#NAME}] Conditions: Pressure exists on the disk size'
                  event_name: 'Kubernetes nodes: Node [{#NAME}] Conditions: Pressure exists on the disk size (state: {ITEM.VALUE})'
                  priority: WARNING
                  description: 'True - pressure exists on the disk size - that is, if the disk capacity is low; otherwise False.'
                  tags:
                    - tag: scope
                      value: performance
            - uuid: 44b60c111e2a4d0bae0de443394d0add
              name: 'Node [{#NAME}] Conditions: Memory pressure'
              type: DEPENDENT
              key: 'kube.node.conditions.memorypressure[{#NAME}]'
              description: 'True if pressure exists on the node memory - that is, if the node memory is low; otherwise False.'
              valuemap:
                name: 'Node conditions'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.status.conditions[?(@.type == "MemoryPressure")].status.first()'
                  error_handler: DISCARD_VALUE
                - type: JAVASCRIPT
                  parameters:
                    - 'return [''True'', ''False'', ''Unknown''].indexOf(value) + 1 || ''Problem with status processing in JS'';'
              master_item:
                key: 'kube.node.get[{#NAME}]'
              tags:
                - tag: component
                  value: conditions
                - tag: node
                  value: '{#NAME}'
              trigger_prototypes:
                - uuid: f580b6534bf54281912515874ca46cdf
                  expression: 'last(/Kubernetes nodes by HTTP/kube.node.conditions.memorypressure[{#NAME}])=1'
                  name: 'Kubernetes nodes: Node [{#NAME}] Conditions: Pressure exists on the node memory'
                  event_name: 'Kubernetes nodes: Node [{#NAME}] Conditions: Pressure exists on the node memory (state: {ITEM.VALUE})'
                  priority: WARNING
                  description: 'True - pressure exists on the node memory - that is, if the node memory is low; otherwise False'
                  tags:
                    - tag: scope
                      value: performance
            - uuid: 8c77db54e90d474a8ff35a98c67772d5
              name: 'Node [{#NAME}] Conditions: Network unavailable'
              type: DEPENDENT
              key: 'kube.node.conditions.networkunavailable[{#NAME}]'
              description: 'True if the network for the node is not correctly configured, otherwise False.'
              valuemap:
                name: 'Node conditions'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.status.conditions[?(@.type == "NetworkUnavailable")].status.first()'
                  error_handler: DISCARD_VALUE
                - type: JAVASCRIPT
                  parameters:
                    - 'return [''True'', ''False'', ''Unknown''].indexOf(value) + 1 || ''Problem with status processing in JS'';'
              master_item:
                key: 'kube.node.get[{#NAME}]'
              tags:
                - tag: component
                  value: conditions
                - tag: node
                  value: '{#NAME}'
              trigger_prototypes:
                - uuid: 0da0db08077a42668efcc886c155bf4e
                  expression: 'last(/Kubernetes nodes by HTTP/kube.node.conditions.networkunavailable[{#NAME}])=1'
                  name: 'Kubernetes nodes: Node [{#NAME}] Conditions: Network is not correctly configured'
                  event_name: 'Kubernetes nodes: Node [{#NAME}] Conditions: Network is not correctly configured (state: {ITEM.VALUE})'
                  priority: WARNING
                  description: 'True - the network for the node is not correctly configured, otherwise False'
                  tags:
                    - tag: scope
                      value: availability
            - uuid: 31f02b4517e24571962fefd61e09e2a5
              name: 'Node [{#NAME}] Conditions: PID pressure'
              type: DEPENDENT
              key: 'kube.node.conditions.pidpressure[{#NAME}]'
              description: 'True if pressure exists on the processes - that is, if there are too many processes on the node; otherwise False.'
              valuemap:
                name: 'Node conditions'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.status.conditions[?(@.type == "PIDPressure")].status.first()'
                  error_handler: DISCARD_VALUE
                - type: JAVASCRIPT
                  parameters:
                    - 'return [''True'', ''False'', ''Unknown''].indexOf(value) + 1 || ''Problem with status processing in JS'';'
              master_item:
                key: 'kube.node.get[{#NAME}]'
              tags:
                - tag: component
                  value: conditions
                - tag: node
                  value: '{#NAME}'
              trigger_prototypes:
                - uuid: 5f6a7fce910e4cf79e9fc778519ad00f
                  expression: 'last(/Kubernetes nodes by HTTP/kube.node.conditions.pidpressure[{#NAME}])=1'
                  name: 'Kubernetes nodes: Node [{#NAME}] Conditions: Pressure exists on the processes'
                  event_name: 'Kubernetes nodes: Node [{#NAME}] Conditions: Pressure exists on the processes (state: {ITEM.VALUE})'
                  priority: WARNING
                  description: 'True - pressure exists on the processes - that is, if there are too many processes on the node; otherwise False'
                  tags:
                    - tag: scope
                      value: performance
            - uuid: 9341a018a45848feae0f61660ca5f849
              name: 'Node [{#NAME}] Conditions: Ready'
              type: DEPENDENT
              key: 'kube.node.conditions.ready[{#NAME}]'
              description: 'True if the node is healthy and ready to accept pods, False if the node is not healthy and is not accepting pods, and Unknown if the node controller has not heard from the node in the last node-monitor-grace-period (default is 40 seconds).'
              valuemap:
                name: 'Node conditions'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.status.conditions[?(@.type == "Ready")].status.first()'
                  error_handler: DISCARD_VALUE
                - type: JAVASCRIPT
                  parameters:
                    - 'return [''True'', ''False'', ''Unknown''].indexOf(value) + 1 || ''Problem with status processing in JS'';'
              master_item:
                key: 'kube.node.get[{#NAME}]'
              tags:
                - tag: component
                  value: conditions
                - tag: node
                  value: '{#NAME}'
              trigger_prototypes:
                - uuid: 02f873ab69fb4df49578cf5e1cbad1b8
                  expression: 'last(/Kubernetes nodes by HTTP/kube.node.conditions.ready[{#NAME}])<>1'
                  name: 'Kubernetes nodes: Node [{#NAME}] Conditions: Is not in Ready state'
                  event_name: 'Kubernetes nodes: Node [{#NAME}] Conditions: Is not in Ready state (state: {ITEM.VALUE})'
                  priority: WARNING
                  description: |
                    False - if the node is not healthy and is not accepting pods.
                    Unknown - if the node controller has not heard from the node in the last node-monitor-grace-period (default is 40 seconds).
                  tags:
                    - tag: scope
                      value: availability
            - uuid: 3d8536659ac44347b36e61f60873fa61
              name: 'Node [{#NAME}]: Get data'
              type: DEPENDENT
              key: 'kube.node.get[{#NAME}]'
              history: '0'
              value_type: CHAR
              description: 'Collecting and processing cluster by node [{#NAME}] data via Kubernetes API.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.nodes..[?(@.metadata.name == "{#NAME}")].first()'
              master_item:
                key: kube.nodes
              tags:
                - tag: component
                  value: raw
                - tag: node
                  value: '{#NAME}'
            - uuid: 8f9152074e2041d7b5cd2c6215e06832
              name: 'Node [{#NAME}] Info: Architecture'
              type: DEPENDENT
              key: 'kube.node.info.architecture[{#NAME}]'
              value_type: CHAR
              description: 'Node architecture.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.status.nodeInfo.architecture
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3h
              master_item:
                key: 'kube.node.get[{#NAME}]'
              tags:
                - tag: component
                  value: info
                - tag: node
                  value: '{#NAME}'
            - uuid: 405fe8cae9be4ea8888f378dadda8946
              name: 'Node [{#NAME}] Info: Container runtime'
              type: DEPENDENT
              key: 'kube.node.info.containerruntime[{#NAME}]'
              value_type: CHAR
              description: |
                Container runtime.
                
                https://kubernetes.io/docs/setup/production-environment/container-runtimes/
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.status.nodeInfo.containerRuntimeVersion
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3h
              master_item:
                key: 'kube.node.get[{#NAME}]'
              tags:
                - tag: component
                  value: info
                - tag: node
                  value: '{#NAME}'
            - uuid: a14e705e142f4c34bfc9175686b18754
              name: 'Node [{#NAME}] Info: Kernel version'
              type: DEPENDENT
              key: 'kube.node.info.kernelversion[{#NAME}]'
              value_type: CHAR
              description: 'Node kernel version.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.status.nodeInfo.kernelVersion
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3h
              master_item:
                key: 'kube.node.get[{#NAME}]'
              tags:
                - tag: component
                  value: info
                - tag: node
                  value: '{#NAME}'
            - uuid: f1a1ea522dfd49d09a69b9b014845f7a
              name: 'Node [{#NAME}] Info: Kubelet version'
              type: DEPENDENT
              key: 'kube.node.info.kubeletversion[{#NAME}]'
              value_type: CHAR
              description: 'Version of Kubelet.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.status.nodeInfo.kubeletVersion
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3h
              master_item:
                key: 'kube.node.get[{#NAME}]'
              tags:
                - tag: component
                  value: info
                - tag: node
                  value: '{#NAME}'
            - uuid: d39865e0754b4280926b89f19dddb740
              name: 'Node [{#NAME}] Info: KubeProxy version'
              type: DEPENDENT
              key: 'kube.node.info.kubeproxyversion[{#NAME}]'
              value_type: CHAR
              description: 'Version of KubeProxy.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.status.nodeInfo.kubeProxyVersion
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3h
              master_item:
                key: 'kube.node.get[{#NAME}]'
              tags:
                - tag: component
                  value: info
                - tag: node
                  value: '{#NAME}'
            - uuid: fe06e13c3aec4efc8f7c9539b6600097
              name: 'Node [{#NAME}] Info: Operating system'
              type: DEPENDENT
              key: 'kube.node.info.operatingsystem[{#NAME}]'
              value_type: CHAR
              description: 'Node operating system.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.status.nodeInfo.operatingSystem
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3h
              master_item:
                key: 'kube.node.get[{#NAME}]'
              tags:
                - tag: component
                  value: info
                - tag: node
                  value: '{#NAME}'
            - uuid: 1b25ffe6190c408996b87622b7b87329
              name: 'Node [{#NAME}] Info: OS image'
              type: DEPENDENT
              key: 'kube.node.info.osversion[{#NAME}]'
              value_type: CHAR
              description: 'Node OS image.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.status.nodeInfo.kernelVersion
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3h
              master_item:
                key: 'kube.node.get[{#NAME}]'
              tags:
                - tag: component
                  value: info
                - tag: node
                  value: '{#NAME}'
            - uuid: bcd18bdb8cd1466fa81bbe2e75ba996c
              name: 'Node [{#NAME}] Info: Roles'
              type: DEPENDENT
              key: 'kube.node.info.roles[{#NAME}]'
              value_type: CHAR
              description: 'Node roles.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.status.roles
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 3h
              master_item:
                key: 'kube.node.get[{#NAME}]'
              tags:
                - tag: component
                  value: info
                - tag: node
                  value: '{#NAME}'
            - uuid: 1fb0ebd40fcb4e6c8a22bb646191adb2
              name: 'Node [{#NAME}] Limits: CPU'
              type: DEPENDENT
              key: 'kube.node.limits.cpu[{#NAME}]'
              value_type: FLOAT
              description: |
                Node CPU limits.
                
                https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.Pods[?(@.hostname == "{#NAME}")].containers.limits.cpu.sum()'
              master_item:
                key: kube.nodes
              tags:
                - tag: component
                  value: limits
                - tag: node
                  value: '{#NAME}'
            - uuid: e3ad703e83724cc7a5b918d9efae6e62
              name: 'Node [{#NAME}] Limits: Memory'
              type: DEPENDENT
              key: 'kube.node.limits.memory[{#NAME}]'
              units: B
              description: |
                Node Memory limits.
                
                https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.Pods[?(@.hostname == "{#NAME}")].containers.limits.memory.sum()'
              master_item:
                key: kube.nodes
              tags:
                - tag: component
                  value: limits
                - tag: node
                  value: '{#NAME}'
            - uuid: 8ea2954c99cc4e22a82c5a333146d936
              name: 'Node [{#NAME}] Requests: CPU'
              type: DEPENDENT
              key: 'kube.node.requests.cpu[{#NAME}]'
              value_type: FLOAT
              description: |
                Node CPU requests.
                
                https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.Pods[?(@.hostname == "{#NAME}")].containers.requests.cpu.sum()'
              master_item:
                key: kube.nodes
              tags:
                - tag: component
                  value: requests
                - tag: node
                  value: '{#NAME}'
            - uuid: 32f2f1d3ad084c6c9bbb96ad2fe9d98d
              name: 'Node [{#NAME}] Requests: Memory'
              type: DEPENDENT
              key: 'kube.node.requests.memory[{#NAME}]'
              units: B
              description: |
                Node Memory requests.
                
                https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.Pods[?(@.hostname == "{#NAME}")].containers.requests.memory.sum()'
              master_item:
                key: kube.nodes
              tags:
                - tag: component
                  value: requests
                - tag: node
                  value: '{#NAME}'
            - uuid: 0e30ed9718a54eb1ac643ac643471ca2
              name: 'Node [{#NAME}] Uptime'
              type: DEPENDENT
              key: 'kube.node.uptime[{#NAME}]'
              units: s
              description: 'Node uptime.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.metadata.creationTimestamp
                  error_handler: DISCARD_VALUE
                - type: JAVASCRIPT
                  parameters:
                    - 'return Math.floor((Date.now() - new Date(value)) / 1000);'
              master_item:
                key: 'kube.node.get[{#NAME}]'
              tags:
                - tag: component
                  value: uptime
                - tag: node
                  value: '{#NAME}'
              trigger_prototypes:
                - uuid: b322a8c9a4404da49c434e78822d6ac5
                  expression: 'last(/Kubernetes nodes by HTTP/kube.node.uptime[{#NAME}])<10'
                  name: 'Kubernetes nodes: Node [{#NAME}] has been restarted'
                  event_name: 'Kubernetes nodes: Node [{#NAME}] has been restarted (uptime < 10m)'
                  priority: INFO
                  description: 'Uptime is less than 10 minutes.'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: 0203ec4fb37a4eb180edcba398bf470d
              name: 'Node [{#NAME}] Used: Pods'
              type: DEPENDENT
              key: 'kube.node.used.pods[{#NAME}]'
              description: 'Current number of pods on the node.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.status.podsCount
              master_item:
                key: 'kube.node.get[{#NAME}]'
              tags:
                - tag: component
                  value: used
                - tag: node
                  value: '{#NAME}'
          trigger_prototypes:
            - uuid: f64efc13be2c4c53a48de40504cf064d
              expression: 'last(/Kubernetes nodes by HTTP/kube.node.limits.cpu[{#NAME}]) / last(/Kubernetes nodes by HTTP/kube.node.allocatable.cpu[{#NAME}]) > 0.9'
              name: 'Kubernetes nodes: Node [{#NAME}] Limits: Total CPU limits are too high'
              event_name: 'Kubernetes nodes: Node [{#NAME}] Limits: Total CPU limits are too high (more than 90% of allocatable)'
              opdata: 'Limits: {ITEM.LASTVALUE1}, Allocatable: {ITEM.LASTVALUE2}'
              priority: WARNING
              dependencies:
                - name: 'Kubernetes nodes: Node [{#NAME}] Limits: Total CPU limits are too high'
                  expression: 'last(/Kubernetes nodes by HTTP/kube.node.limits.cpu[{#NAME}]) / last(/Kubernetes nodes by HTTP/kube.node.allocatable.cpu[{#NAME}]) > 1'
              tags:
                - tag: scope
                  value: performance
            - uuid: 4c035b6c85574141832691e7ad264f40
              expression: 'last(/Kubernetes nodes by HTTP/kube.node.limits.cpu[{#NAME}]) / last(/Kubernetes nodes by HTTP/kube.node.allocatable.cpu[{#NAME}]) > 1'
              name: 'Kubernetes nodes: Node [{#NAME}] Limits: Total CPU limits are too high'
              event_name: 'Kubernetes nodes: Node [{#NAME}] Limits: Total CPU limits are too high (more than 100% of allocatable)'
              opdata: 'Limits: {ITEM.LASTVALUE1}, Allocatable: {ITEM.LASTVALUE2}'
              priority: AVERAGE
              tags:
                - tag: scope
                  value: performance
            - uuid: 5d0d803cfbbe42edb7d32d731ae5f741
              expression: 'last(/Kubernetes nodes by HTTP/kube.node.limits.memory[{#NAME}]) / last(/Kubernetes nodes by HTTP/kube.node.allocatable.memory[{#NAME}]) > 0.9'
              name: 'Kubernetes nodes: Node [{#NAME}] Limits: Total memory limits are too high'
              event_name: 'Kubernetes nodes: Node [{#NAME}] Limits: Total memory limits are too high (more than 90% of allocatable)'
              opdata: 'Limits: {ITEM.LASTVALUE1}, Allocatable: {ITEM.LASTVALUE2}'
              priority: WARNING
              dependencies:
                - name: 'Kubernetes nodes: Node [{#NAME}] Limits: Total memory limits are too high'
                  expression: 'last(/Kubernetes nodes by HTTP/kube.node.limits.memory[{#NAME}]) / last(/Kubernetes nodes by HTTP/kube.node.allocatable.memory[{#NAME}]) > 1'
              tags:
                - tag: scope
                  value: performance
            - uuid: 4fa15174194c476899a96fcf233a5aea
              expression: 'last(/Kubernetes nodes by HTTP/kube.node.limits.memory[{#NAME}]) / last(/Kubernetes nodes by HTTP/kube.node.allocatable.memory[{#NAME}]) > 1'
              name: 'Kubernetes nodes: Node [{#NAME}] Limits: Total memory limits are too high'
              event_name: 'Kubernetes nodes: Node [{#NAME}] Limits: Total memory limits are too high (more than 100% of allocatable)'
              opdata: 'Limits: {ITEM.LASTVALUE1}, Allocatable: {ITEM.LASTVALUE2}'
              priority: AVERAGE
              tags:
                - tag: scope
                  value: performance
            - uuid: 256cf876a4674dd09123bb388c1a9d32
              expression: 'last(/Kubernetes nodes by HTTP/kube.node.requests.cpu[{#NAME}]) / last(/Kubernetes nodes by HTTP/kube.node.allocatable.cpu[{#NAME}]) > 0.5'
              name: 'Kubernetes nodes: Node [{#NAME}] Requests: Total CPU requests are too high'
              event_name: 'Kubernetes nodes: Node [{#NAME}] Requests: Total CPU requests are too high (more than 50% of allocatable)'
              opdata: 'Requests: {ITEM.LASTVALUE1}, Allocatable: {ITEM.LASTVALUE2}'
              priority: WARNING
              dependencies:
                - name: 'Kubernetes nodes: Node [{#NAME}] Requests: Total CPU requests are too high'
                  expression: 'last(/Kubernetes nodes by HTTP/kube.node.requests.cpu[{#NAME}]) / last(/Kubernetes nodes by HTTP/kube.node.allocatable.cpu[{#NAME}]) > 0.8'
              tags:
                - tag: scope
                  value: performance
            - uuid: 7fa6901f620c4b388d550c669089dde2
              expression: 'last(/Kubernetes nodes by HTTP/kube.node.requests.cpu[{#NAME}]) / last(/Kubernetes nodes by HTTP/kube.node.allocatable.cpu[{#NAME}]) > 0.8'
              name: 'Kubernetes nodes: Node [{#NAME}] Requests: Total CPU requests are too high'
              event_name: 'Kubernetes nodes: Node [{#NAME}] Requests: Total CPU requests are too high (more than 80% of allocatable)'
              opdata: 'Requests: {ITEM.LASTVALUE1}, Allocatable: {ITEM.LASTVALUE2}'
              priority: AVERAGE
              tags:
                - tag: scope
                  value: performance
            - uuid: d73aa5aa2a9b424789181033630bb432
              expression: 'last(/Kubernetes nodes by HTTP/kube.node.requests.memory[{#NAME}]) / last(/Kubernetes nodes by HTTP/kube.node.allocatable.memory[{#NAME}]) > 0.5'
              name: 'Kubernetes nodes: Node [{#NAME}] Requests: Total memory requests are too high'
              event_name: 'Kubernetes nodes: Node [{#NAME}] Requests: Total memory requests are too high (more than 50% of allocatable)'
              opdata: 'Requests: {ITEM.LASTVALUE1}, Allocatable: {ITEM.LASTVALUE2}'
              priority: WARNING
              dependencies:
                - name: 'Kubernetes nodes: Node [{#NAME}] Requests: Total memory requests are too high'
                  expression: 'last(/Kubernetes nodes by HTTP/kube.node.requests.memory[{#NAME}]) / last(/Kubernetes nodes by HTTP/kube.node.allocatable.memory[{#NAME}]) > 0.8'
              tags:
                - tag: scope
                  value: performance
            - uuid: ad9a65c4786e48b9a4b77c1214fa2e1f
              expression: 'last(/Kubernetes nodes by HTTP/kube.node.requests.memory[{#NAME}]) / last(/Kubernetes nodes by HTTP/kube.node.allocatable.memory[{#NAME}]) > 0.8'
              name: 'Kubernetes nodes: Node [{#NAME}] Requests: Total memory requests are too high'
              event_name: 'Kubernetes nodes: Node [{#NAME}] Requests: Total memory requests are too high (more than 80% of allocatable)'
              opdata: 'Requests: {ITEM.LASTVALUE1}, Allocatable: {ITEM.LASTVALUE2}'
              priority: AVERAGE
              tags:
                - tag: scope
                  value: performance
            - uuid: 0126dfbfa9d949499e0f7689b714c855
              expression: 'last(/Kubernetes nodes by HTTP/kube.node.used.pods[{#NAME}])/ last(/Kubernetes nodes by HTTP/kube.node.capacity.pods[{#NAME}]) > 0.9'
              name: 'Kubernetes nodes: Node [{#NAME}] Used: Kubelet too many pods'
              event_name: 'Kubernetes nodes: Node [{#NAME}] Used: Kubelet too many pods (more than 95% of capacity)'
              opdata: 'Used: {ITEM.LASTVALUE1}, Capacity: {ITEM.LASTVALUE2}'
              priority: WARNING
              description: 'Kubelet is running at capacity.'
              tags:
                - tag: scope
                  value: performance
          graph_prototypes:
            - uuid: 646efb7b19f5408dba2f3fe2d6a92213
              name: 'Node [{#NAME}] Allocatable: Pod limits'
              graph_items:
                - sortorder: '1'
                  drawtype: BOLD_LINE
                  color: 4CAF50
                  item:
                    host: 'Kubernetes nodes by HTTP'
                    key: 'kube.node.allocatable.pods[{#NAME}]'
                - sortorder: '2'
                  drawtype: BOLD_LINE
                  color: AB47BC
                  item:
                    host: 'Kubernetes nodes by HTTP'
                    key: 'kube.node.capacity.pods[{#NAME}]'
                - sortorder: '3'
                  drawtype: GRADIENT_LINE
                  color: 1E88E5
                  calc_fnc: MAX
                  item:
                    host: 'Kubernetes nodes by HTTP'
                    key: 'kube.node.used.pods[{#NAME}]'
          host_prototypes:
            - uuid: bfcbf26edd704bdfaa65e244a987839e
              host: '{#NAME}'
              name: '{#NAME}'
              status: DISABLED
              discover: NO_DISCOVER
              group_links:
                - group:
                    name: Applications
              group_prototypes:
                - name: '{#CLUSTER_HOSTNAME}: Kubernetes/Nodes/Role: {#ROLES}'
              templates:
                - name: 'Linux by Zabbix agent'
              macros:
                - macro: '{$VFS.FS.FSNAME.NOT_MATCHES}'
                  value: ^/(dev|sys|run|proc|etc/.+|.+/shm|hostfs/root/var/lib/docker/.+)$
                  description: 'This macro is used in filesystems discovery. Can be overridden on the host or linked template level'
                - macro: '{$VFS.FS.FSTYPE.NOT_MATCHES}'
                  value: ^(autofs|binfmt_misc|cgroup|configfs|debugfs|devpts|devtmpfs|fusectl|hugetlbfs|mqueue|overlay|proc|procfs|pstore|rpc_pipefs|securityfs|sysfs|tracefs)$
                  description: 'This macro is used in filesystems discovery. Can be overridden on the host or linked template level'
              tags:
                - tag: addr
                  value: '{#IP}'
                - tag: arch
                  value: '{#ARCH}'
                - tag: os
                  value: '{#OS}'
                - tag: roles
                  value: '{#ROLES}'
              custom_interfaces: 'YES'
              interfaces:
                - ip: '{#IP}'
          master_item:
            key: kube.nodes
          lld_macro_paths:
            - lld_macro: '{#ARCH}'
              path: '$.metadata.labels[''kubernetes.io/arch'']'
            - lld_macro: '{#CLUSTER_HOSTNAME}'
              path: $.clusterhostname
            - lld_macro: '{#ENDPOINT}'
              path: $.status.agent
            - lld_macro: '{#IP}'
              path: $.internalIP
            - lld_macro: '{#NAME}'
              path: $.metadata.name
            - lld_macro: '{#OS}'
              path: '$.metadata.labels[''kubernetes.io/os'']'
            - lld_macro: '{#ROLES}'
              path: $.status.roles
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.nodes..filternode
          overrides:
            - name: 'Endpoints host'
              step: '1'
              filter:
                conditions:
                  - macro: '{#ENDPOINT}'
                    value: 'zabbix-helm-chart-agent.*'
              operations:
                - operationobject: HOST_PROTOTYPE
                  operator: REGEXP
                  discover: DISCOVER
                  status: ENABLED
        - uuid: b9dd5b50208e415da509f61ec73451c1
          name: 'Pod discovery'
          type: DEPENDENT
          key: kube.pod.discovery
          filter:
            evaltype: AND
            conditions:
              - macro: '{#NAMESPACE}'
                value: '{$KUBE.LLD.FILTER.POD.NAMESPACE.MATCHES}'
              - macro: '{#NAMESPACE}'
                value: '{$KUBE.LLD.FILTER.POD.NAMESPACE.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#NODE}'
                value: '{$KUBE.LLD.FILTER.NODE.MATCHES}'
              - macro: '{#NODE}'
                value: '{$KUBE.LLD.FILTER.NODE.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
          lifetime: '0'
          item_prototypes:
            - uuid: ed4ea3dbbce74404a5039aa9918b8e2b
              name: 'Node [{#NODE}] Namespace [{#NAMESPACE}] Pod [{#POD}] Conditions: Containers ready'
              type: DEPENDENT
              key: 'kube.pod.conditions.containers_ready[{#NAMESPACE}/{#POD}]'
              description: |
                All containers in the Pod are ready.
                
                https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-conditions
              valuemap:
                name: 'Pod conditions'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.conditions[?(@.type == "ContainersReady")].status.first()'
                  error_handler: DISCARD_VALUE
                - type: JAVASCRIPT
                  parameters:
                    - 'return [''True'', ''False'', ''Unknown''].indexOf(value) + 1 || ''Problem with status processing in JS'';'
              master_item:
                key: 'kube.pod.get[{#NAMESPACE}/{#POD}]'
              tags:
                - tag: component
                  value: conditions
                - tag: namespace
                  value: '{#NAMESPACE}'
                - tag: node
                  value: '{#NODE}'
                - tag: pod
                  value: '{#POD}'
            - uuid: 647ca68c325742d083e37c05e2826205
              name: 'Node [{#NODE}] Namespace [{#NAMESPACE}] Pod [{#POD}] Conditions: Initialized'
              type: DEPENDENT
              key: 'kube.pod.conditions.initialized[{#NAMESPACE}/{#POD}]'
              description: |
                All init containers have started successfully.
                
                https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-conditions
              valuemap:
                name: 'Pod conditions'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.conditions[?(@.type == "Initialized")].status.first()'
                  error_handler: DISCARD_VALUE
                - type: JAVASCRIPT
                  parameters:
                    - 'return [''True'', ''False'', ''Unknown''].indexOf(value) + 1 || ''Problem with status processing in JS'';'
              master_item:
                key: 'kube.pod.get[{#NAMESPACE}/{#POD}]'
              tags:
                - tag: component
                  value: conditions
                - tag: namespace
                  value: '{#NAMESPACE}'
                - tag: node
                  value: '{#NODE}'
                - tag: pod
                  value: '{#POD}'
            - uuid: b73a5c5d3b614815be157eb53c6afb1f
              name: 'Node [{#NODE}] Namespace [{#NAMESPACE}] Pod [{#POD}] Conditions: Ready'
              type: DEPENDENT
              key: 'kube.pod.conditions.ready[{#NAMESPACE}/{#POD}]'
              description: |
                The Pod is able to serve requests and should be added to the load balancing pools of all matching Services.
                
                https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-conditions
              valuemap:
                name: 'Pod conditions'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.conditions[?(@.type == "Ready")].status.first()'
                  error_handler: DISCARD_VALUE
                - type: JAVASCRIPT
                  parameters:
                    - 'return [''True'', ''False'', ''Unknown''].indexOf(value) + 1 || ''Problem with status processing in JS'';'
              master_item:
                key: 'kube.pod.get[{#NAMESPACE}/{#POD}]'
              tags:
                - tag: component
                  value: conditions
                - tag: namespace
                  value: '{#NAMESPACE}'
                - tag: node
                  value: '{#NODE}'
                - tag: pod
                  value: '{#POD}'
            - uuid: 5956cd1780604f0793efd7bbce2559b6
              name: 'Node [{#NODE}] Namespace [{#NAMESPACE}] Pod [{#POD}] Conditions: Scheduled'
              type: DEPENDENT
              key: 'kube.pod.conditions.scheduled[{#NAMESPACE}/{#POD}]'
              description: |
                The Pod has been scheduled to a node.
                
                https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-conditions
              valuemap:
                name: 'Pod conditions'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.conditions[?(@.type == "PodScheduled")].status.first()'
                  error_handler: DISCARD_VALUE
                - type: JAVASCRIPT
                  parameters:
                    - 'return [''True'', ''False'', ''Unknown''].indexOf(value) + 1 || ''Problem with status processing in JS'';'
              master_item:
                key: 'kube.pod.get[{#NAMESPACE}/{#POD}]'
              tags:
                - tag: component
                  value: conditions
                - tag: namespace
                  value: '{#NAMESPACE}'
                - tag: node
                  value: '{#NODE}'
                - tag: pod
                  value: '{#POD}'
            - uuid: 5fd018faebb84462bf8111861795b04e
              name: 'Node [{#NODE}] Namespace [{#NAMESPACE}] Pod [{#POD}] Containers: Restarts'
              type: DEPENDENT
              key: 'kube.pod.containers.restartcount[{#NAMESPACE}/{#POD}]'
              description: 'The number of times the container has been restarted, currently based on the number of dead containers that have not yet been removed. Note that this is calculated from dead containers. But those containers are subject to garbage collection.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.containers.restartCount
                  error_handler: DISCARD_VALUE
              master_item:
                key: 'kube.pod.get[{#NAMESPACE}/{#POD}]'
              tags:
                - tag: component
                  value: container
                - tag: namespace
                  value: '{#NAMESPACE}'
                - tag: node
                  value: '{#NODE}'
                - tag: pod
                  value: '{#POD}'
              trigger_prototypes:
                - uuid: 8f1808cd67614cda959ec70e92a59235
                  expression: '(last(/Kubernetes nodes by HTTP/kube.pod.containers.restartcount[{#NAMESPACE}/{#POD}])-min(/Kubernetes nodes by HTTP/kube.pod.containers.restartcount[{#NAMESPACE}/{#POD}],15m))>1'
                  name: 'Kubernetes nodes: Node [{#NODE}] Namespace [{#NAMESPACE}] Pod [{#POD}]: Pod is crash looping'
                  priority: WARNING
                  description: 'Containers of the pod keep restarting. This most likely indicates that the pod is in the CrashLoopBackOff state.'
                  tags:
                    - tag: scope
                      value: availability
            - uuid: 34a542538cf449f287a99052870988be
              name: 'Node [{#NODE}] Namespace [{#NAMESPACE}] Pod [{#POD}]: Get data'
              type: DEPENDENT
              key: 'kube.pod.get[{#NAMESPACE}/{#POD}]'
              history: '0'
              value_type: CHAR
              description: 'Collecting and processing cluster by node [{#NODE}] data via Kubernetes API.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.Pods[?(@.name == "{#POD}" && @.namespace == "{#NAMESPACE}")].first()'
              master_item:
                key: kube.nodes
              tags:
                - tag: component
                  value: raw
                - tag: namespace
                  value: '{#NAMESPACE}'
                - tag: node
                  value: '{#NODE}'
                - tag: pod
                  value: '{#POD}'
            - uuid: 6862be81e52b4abcb319a8847b022634
              name: 'Node [{#NODE}] Namespace [{#NAMESPACE}] Pod [{#POD}] Status: Phase'
              type: DEPENDENT
              key: 'kube.pod.status.phase[{#NAMESPACE}/{#POD}]'
              description: |
                The phase of a Pod is a simple, high-level summary of where the Pod is in its lifecycle.
                
                https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-phase
              valuemap:
                name: 'Pod phase'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.phase
                  error_handler: DISCARD_VALUE
                - type: JAVASCRIPT
                  parameters:
                    - 'return [''Pending'', ''Running'', ''Succeeded'', ''Failed'', ''Unknown''].indexOf(value) + 1 || ''Problem with status processing in JS'';'
              master_item:
                key: 'kube.pod.get[{#NAMESPACE}/{#POD}]'
              tags:
                - tag: component
                  value: pod
                - tag: namespace
                  value: '{#NAMESPACE}'
                - tag: node
                  value: '{#NODE}'
                - tag: pod
                  value: '{#POD}'
              trigger_prototypes:
                - uuid: e565d243bef84007b09addb22ea3d759
                  expression: 'count(/Kubernetes nodes by HTTP/kube.pod.status.phase[{#NAMESPACE}/{#POD}],10m, "regexp","^(1|4|5)$")>=9'
                  name: 'Kubernetes nodes: Node [{#NODE}] Namespace [{#NAMESPACE}] Pod [{#POD}] Status: Kubernetes Pod not healthy'
                  priority: HIGH
                  description: 'Pod has been in a non-ready state for longer than 10 minutes.'
                  tags:
                    - tag: scope
                      value: availability
            - uuid: abb0b84204164301bb9fc6ab14284631
              name: 'Node [{#NODE}] Namespace [{#NAMESPACE}] Pod [{#POD}]: Uptime'
              type: DEPENDENT
              key: 'kube.pod.uptime[{#NAMESPACE}/{#POD}]'
              units: s
              description: 'Pod uptime.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.startTime
                  error_handler: DISCARD_VALUE
                - type: JAVASCRIPT
                  parameters:
                    - 'return Math.floor((Date.now() - new Date(value)) / 1000);'
              master_item:
                key: 'kube.pod.get[{#NAMESPACE}/{#POD}]'
              tags:
                - tag: component
                  value: uptime
                - tag: namespace
                  value: '{#NAMESPACE}'
                - tag: node
                  value: '{#NODE}'
                - tag: pod
                  value: '{#POD}'
          master_item:
            key: kube.nodes
          lld_macro_paths:
            - lld_macro: '{#NAMESPACE}'
              path: $.namespace
            - lld_macro: '{#NODE}'
              path: $.hostname
            - lld_macro: '{#POD}'
              path: $.name
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.Pods
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 3h
      tags:
        - tag: class
          value: software
        - tag: subclass
          value: automation
        - tag: subclass
          value: containers
        - tag: subclass
          value: deploy
        - tag: subclass
          value: development
        - tag: subclass
          value: virtualization
        - tag: target
          value: kubernetes
        - tag: target
          value: nodes
      macros:
        - macro: '{$KUBE.API.TOKEN}'
          type: SECRET_TEXT
          description: 'Service account bearer token.'
          config:
            type: TEXT
            priority: '1'
            label: 'API Authorization Token'
            description: 'Service account bearer token for authentication.'
            required: 'YES'
        - macro: '{$KUBE.API.URL}'
          value: 'https://kubernetes.default.svc.cluster.local:443'
          description: 'Kubernetes API endpoint URL in the format <scheme>://<host>:<port>'
          config:
            type: TEXT
            priority: '2'
            label: 'Kubernetes API URL'
            description: 'The Kubernetes API endpoint URL.'
            required: 'YES'
        - macro: '{$KUBE.HTTP.PROXY}'
          description: 'Sets the HTTP proxy to `http_proxy` value. If this parameter is empty, then no proxy is used.'
          config:
            type: TEXT
            priority: '3'
            label: 'HTTP Proxy'
            description: 'HTTP proxy to use for requests.'
        - macro: '{$KUBE.LLD.FILTER.NODE.MATCHES}'
          value: '.*'
          description: 'Filter of discoverable nodes.'
          config:
            type: TEXT
            priority: '5'
            section_name: Filters
            label: 'Node Matches Filter'
            description: 'A regex to filter discoverable nodes.'
        - macro: '{$KUBE.LLD.FILTER.NODE.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          description: 'Filter to exclude discovered nodes.'
          config:
            type: TEXT
            priority: '6'
            section_name: Filters
            label: 'Node Exclusion Filter'
            description: 'A regex to exclude discovered nodes.'
        - macro: '{$KUBE.LLD.FILTER.NODE.ROLE.MATCHES}'
          value: '.*'
          description: 'Filter of discoverable nodes by role.'
          config:
            type: TEXT
            priority: '7'
            section_name: Filters
            label: 'Node Role Matches Filter'
            description: 'A regex to filter discoverable nodes by role.'
        - macro: '{$KUBE.LLD.FILTER.NODE.ROLE.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          description: 'Filter to exclude discovered node by role.'
          config:
            type: TEXT
            priority: '8'
            section_name: Filters
            label: 'Node Role Exclusion Filter'
            description: 'A regex to exclude discovered nodes by role.'
        - macro: '{$KUBE.LLD.FILTER.POD.NAMESPACE.MATCHES}'
          value: '.*'
          description: 'Filter of discoverable pods by namespace.'
          config:
            type: TEXT
            priority: '13'
            section_name: Filters
            label: 'Pod Namespace Matches Filter'
            description: 'A regex to filter discoverable pods by namespace.'
        - macro: '{$KUBE.LLD.FILTER.POD.NAMESPACE.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          description: 'Filter to exclude discovered pods by namespace.'
          config:
            type: TEXT
            priority: '14'
            section_name: Filters
            label: 'Pod Namespace Exclusion Filter'
            description: 'A regex to exclude discovered pods by namespace.'
        - macro: '{$KUBE.NODE.FILTER.ANNOTATIONS}'
          description: 'Annotations to filter nodes (regex in values are supported). See the template''s README.md for details.'
          config:
            type: TEXT
            priority: '9'
            section_name: Filters
            label: 'Node Annotations Filter'
            description: 'Annotations to filter nodes.'
        - macro: '{$KUBE.NODE.FILTER.LABELS}'
          description: 'Labels to filter nodes (regex in values are supported). See the template''s README.md for details.'
          config:
            type: TEXT
            priority: '10'
            section_name: Filters
            label: 'Node Labels Filter'
            description: 'Labels to filter nodes.'
        - macro: '{$KUBE.NODES.ENDPOINT.NAME}'
          value: zabbix-zabbix-helm-chart-agent
          description: 'Kubernetes nodes endpoint name. See "kubectl -n monitoring get ep".'
          config:
            type: TEXT
            priority: '4'
            label: 'Nodes Endpoint Name'
            description: 'The Kubernetes nodes endpoint name.'
        - macro: '{$KUBE.POD.FILTER.ANNOTATIONS}'
          description: 'Annotations to filter pods (regex in values are supported). See the template''s README.md for details.'
          config:
            type: TEXT
            priority: '11'
            section_name: Filters
            label: 'Pod Annotations Filter'
            description: 'Annotations to filter pods.'
        - macro: '{$KUBE.POD.FILTER.LABELS}'
          description: 'Labels to filter Pods (regex in values are supported). See the template''s README.md for details.'
          config:
            type: TEXT
            priority: '12'
            section_name: Filters
            label: 'Pod Labels Filter'
            description: 'Labels to filter pods.'
      valuemaps:
        - uuid: 785b20f8979341c4b470870ec8f50414
          name: 'Node conditions'
          mappings:
            - value: '1'
              newvalue: 'True'
            - value: '2'
              newvalue: 'False'
            - value: '3'
              newvalue: Unknown
        - uuid: f93e30e125de4909b52e7c38bc3f2c97
          name: 'Pod conditions'
          mappings:
            - value: '1'
              newvalue: 'True'
            - value: '2'
              newvalue: 'False'
            - value: '3'
              newvalue: Unknown
        - uuid: 21ff77dde5964dcfb4bb2ae202a5f33c
          name: 'Pod phase'
          mappings:
            - value: '1'
              newvalue: Pending
            - value: '2'
              newvalue: Running
            - value: '3'
              newvalue: Succeeded
            - value: '4'
              newvalue: Failed
            - value: '5'
              newvalue: Unknown
    - uuid: f8f7908280354f2abeed07dc788c3747
      template: 'Linux by Zabbix agent'
      name: 'Linux by Zabbix agent'
      description: |
        This is an official Linux template. It requires Zabbix agent 8.0 or newer.
        
        Notes on filesystem (FS) discovery:
        - The ext4/3/2 filesystem reserves space for privileged usage, typically set at 5% by default.
        - BTRFS allocates a default of 10% of the volume for its own needs.
        - To mitigate potential disasters, FS usage triggers are based on the maximum available space.
          - Utilization formula: 'pused = 100 - 100 * (available / total - free + available)'
        - The FS utilization chart, derived from graph prototypes, reflects FS reserved space as the difference between used and available space from the total volume.
        
        You can discuss this template or leave feedback on our forum https://www.zabbix.com/forum/zabbix-suggestions-and-feedback/387225-discussion-thread-for-official-zabbix-template-for-linux
        
        Generated by official Zabbix template tool "Templator"
      wizard_ready: 'YES'
      readme: |
        ## Overview
        
        This is an official Linux template. It requires Zabbix agent 8.0 or newer.
        
        #### Notes on filesystem (FS) discovery:
        - The ext4/3/2 FS reserves space for privileged usage, typically set at 5% by default.
        - BTRFS allocates a default of 10% of the volume for its own needs.
        - To mitigate potential disasters, FS usage triggers are based on the maximum available space.
          - Utilization formula: `pused = 100 - 100 * (available / total - free + available)`
        - The FS utilization chart, derived from graph prototypes, reflects FS reserved space as the difference between used and available space from the total volume.
      vendor:
        name: Zabbix
        version: 8.0-0
      groups:
        - name: 'Templates/Operating systems'
      items:
        - uuid: df561a0cece94760a78704edf7da7326
          name: 'Host name of Zabbix agent running'
          key: agent.hostname
          delay: 1h
          value_type: CHAR
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          tags:
            - tag: component
              value: system
        - uuid: f94f9f4699e94c369e6c98b2a2f485ce
          name: 'Zabbix agent ping'
          key: agent.ping
          description: 'The agent always returns "1" for this item. May be used in combination with `nodata()` for the availability check.'
          valuemap:
            name: 'Zabbix agent ping status'
          tags:
            - tag: component
              value: system
        - uuid: 27c42cf180b44632b5d9b8b5788165b3
          name: 'Version of Zabbix agent running'
          key: agent.version
          delay: 1h
          value_type: CHAR
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          tags:
            - tag: component
              value: application
        - uuid: ef386d03ff2c42ffa236acd5215ad547
          name: 'Maximum number of open file descriptors'
          key: kernel.maxfiles
          delay: 1h
          description: 'May be increased by using the `sysctl` utility or modifying the file `/etc/sysctl.conf`.'
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: b9bdcf42f54a409a9a9a616dbd0eaed2
              expression: 'last(/Linux by Zabbix agent/kernel.maxfiles)<{$KERNEL.MAXFILES.MIN}'
              name: 'Linux: Configured max number of open filedescriptors is too low'
              event_name: 'Linux: Configured max number of open filedescriptors is too low (< {$KERNEL.MAXFILES.MIN})'
              priority: INFO
              tags:
                - tag: scope
                  value: performance
        - uuid: 678d70c041954ac8982fb5118b49f6e7
          name: 'Maximum number of processes'
          key: kernel.maxproc
          delay: 1h
          description: 'May be increased by using the `sysctl` utility or modifying the file `/etc/sysctl.conf`.'
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: 8cf253ca3eea4109a90443f9cb76fc5c
              expression: 'last(/Linux by Zabbix agent/kernel.maxproc)<{$KERNEL.MAXPROC.MIN}'
              name: 'Linux: Configured max number of processes is too low'
              event_name: 'Linux: Configured max number of processes is too low (< {$KERNEL.MAXPROC.MIN})'
              priority: INFO
              dependencies:
                - name: 'Linux: Getting closer to process limit'
                  expression: 'last(/Linux by Zabbix agent/proc.num)/last(/Linux by Zabbix agent/kernel.maxproc)*100>80'
              tags:
                - tag: scope
                  value: performance
        - uuid: ab7d0471092544a6a950184d1bac906d
          name: 'Number of processes'
          key: proc.num
          tags:
            - tag: component
              value: system
        - uuid: b2637293884d40108f41b11767dd5be0
          name: 'Number of running processes'
          key: 'proc.num[,,run]'
          tags:
            - tag: component
              value: system
        - uuid: 27cb0f66bb624146acfdd81b58f108a3
          name: 'System boot time'
          key: system.boottime
          delay: 15m
          units: unixtime
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
          tags:
            - tag: component
              value: system
        - uuid: 5d186a46867b4eaaafd6396d3239dd3b
          name: 'Interrupts per second'
          key: system.cpu.intr
          value_type: FLOAT
          description: 'Number of interrupts processed.'
          preprocessing:
            - type: CHANGE_PER_SECOND
          tags:
            - tag: component
              value: cpu
        - uuid: 48528aa936a04c8189375a6eae4033da
          name: 'Load average (1m avg)'
          key: 'system.cpu.load[all,avg1]'
          value_type: FLOAT
          description: 'Calculated as the system CPU load divided by the number of CPU cores.'
          tags:
            - tag: component
              value: cpu
        - uuid: 953beb580df8418cb88b667b9dd37259
          name: 'Load average (5m avg)'
          key: 'system.cpu.load[all,avg5]'
          value_type: FLOAT
          description: 'Calculated as the system CPU load divided by the number of CPU cores.'
          tags:
            - tag: component
              value: cpu
        - uuid: 5716000e38e24dae8ead4ed98ede024b
          name: 'Load average (15m avg)'
          key: 'system.cpu.load[all,avg15]'
          value_type: FLOAT
          description: 'Calculated as the system CPU load divided by the number of CPU cores.'
          tags:
            - tag: component
              value: cpu
        - uuid: f72e115544eb4079b09fec8c3539241c
          name: 'Number of CPUs'
          key: system.cpu.num
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          tags:
            - tag: component
              value: cpu
        - uuid: 73e85aa10a704fc7950d2d077f0c54ee
          name: 'Context switches per second'
          key: system.cpu.switches
          value_type: FLOAT
          description: 'The combined rate at which all processors on the computer are switched from one thread to another.'
          preprocessing:
            - type: CHANGE_PER_SECOND
          tags:
            - tag: component
              value: cpu
        - uuid: ca4235ec7607469cb0124a6253d3c489
          name: 'CPU utilization'
          type: DEPENDENT
          key: system.cpu.util
          value_type: FLOAT
          units: '%'
          description: 'CPU utilization expressed in %.'
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - 'return (100 - value)'
          master_item:
            key: 'system.cpu.util[,idle]'
          tags:
            - tag: component
              value: cpu
          triggers:
            - uuid: b4e904559b694df0ad45bcce7930c3a6
              expression: 'min(/Linux by Zabbix agent/system.cpu.util,5m)>{$CPU.UTIL.CRIT}'
              name: 'Linux: High CPU utilization'
              event_name: 'Linux: High CPU utilization (over {$CPU.UTIL.CRIT}% for 5m)'
              opdata: 'Current utilization: {ITEM.LASTVALUE1}'
              priority: WARNING
              description: 'CPU utilization is too high. The system might be slow to respond.'
              dependencies:
                - name: 'Linux: Load average is too high'
                  expression: |
                    min(/Linux by Zabbix agent/system.cpu.load[all,avg1],5m)/last(/Linux by Zabbix agent/system.cpu.num)>{$LOAD_AVG_PER_CPU.MAX.WARN}
                    and last(/Linux by Zabbix agent/system.cpu.load[all,avg5])>0
                    and last(/Linux by Zabbix agent/system.cpu.load[all,avg15])>0
              tags:
                - tag: scope
                  value: performance
        - uuid: 69b187838fb74f319e47c2ff4f99ef54
          name: 'CPU guest time'
          key: 'system.cpu.util[,guest]'
          value_type: FLOAT
          units: '%'
          description: 'Time spent on running a virtual CPU for a guest operating system.'
          tags:
            - tag: component
              value: cpu
        - uuid: a2b07497f2f343a99d26ad77e65bb54f
          name: 'CPU guest nice time'
          key: 'system.cpu.util[,guest_nice]'
          value_type: FLOAT
          units: '%'
          description: 'Time spent on running a niced guest (a virtual CPU for guest operating systems under the control of the Linux kernel).'
          tags:
            - tag: component
              value: cpu
        - uuid: 7aad6d159baa4a24901847144f0d231b
          name: 'CPU idle time'
          key: 'system.cpu.util[,idle]'
          value_type: FLOAT
          units: '%'
          description: 'Time the CPU has spent doing nothing.'
          tags:
            - tag: component
              value: cpu
        - uuid: cc4bc7693ae84f9bb18cee38d0814195
          name: 'CPU interrupt time'
          key: 'system.cpu.util[,interrupt]'
          value_type: FLOAT
          units: '%'
          description: 'Time the CPU has spent servicing hardware interrupts.'
          tags:
            - tag: component
              value: cpu
        - uuid: 5df67d9162cc437585990cc8708be894
          name: 'CPU iowait time'
          key: 'system.cpu.util[,iowait]'
          value_type: FLOAT
          units: '%'
          description: 'Time the CPU has been waiting for I/O to complete.'
          tags:
            - tag: component
              value: cpu
        - uuid: 8ee6e54c86ba44ab88bb9e83c632c1ed
          name: 'CPU nice time'
          key: 'system.cpu.util[,nice]'
          value_type: FLOAT
          units: '%'
          description: 'Time the CPU has spent running users'' processes that have been niced.'
          tags:
            - tag: component
              value: cpu
        - uuid: a949a36004a449c58bef0cdc9d3fafd6
          name: 'CPU softirq time'
          key: 'system.cpu.util[,softirq]'
          value_type: FLOAT
          units: '%'
          description: 'Time the CPU has been servicing software interrupts.'
          tags:
            - tag: component
              value: cpu
        - uuid: 3161dbd18e874e69b729c8e903cf7390
          name: 'CPU steal time'
          key: 'system.cpu.util[,steal]'
          value_type: FLOAT
          units: '%'
          description: 'The amount of "stolen" CPU from this virtual machine by the hypervisor for other tasks, such as running another virtual machine.'
          tags:
            - tag: component
              value: cpu
        - uuid: d93097ed5ce74d35b6041ef2b5ba18e8
          name: 'CPU system time'
          key: 'system.cpu.util[,system]'
          value_type: FLOAT
          units: '%'
          description: 'Time the CPU has spent running the kernel and its processes.'
          tags:
            - tag: component
              value: cpu
        - uuid: 57f9e2e34fab41e18e2bc93e786c92c6
          name: 'CPU user time'
          key: 'system.cpu.util[,user]'
          value_type: FLOAT
          units: '%'
          description: 'Time the CPU has spent running users'' processes that are not niced.'
          tags:
            - tag: component
              value: cpu
        - uuid: 207341f390134e37ad431e2823666eb9
          name: 'System name'
          key: system.hostname
          delay: 1h
          value_type: CHAR
          description: 'The host name of the system.'
          inventory_link: NAME
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 12h
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: 371a12f95a26438d8da659c84364631b
              expression: 'change(/Linux by Zabbix agent/system.hostname) and length(last(/Linux by Zabbix agent/system.hostname))>0'
              name: 'Linux: System name has changed'
              event_name: 'Linux: System name has changed (new name: {ITEM.VALUE})'
              priority: INFO
              description: 'The name of the system has changed. Acknowledge to close the problem manually.'
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: notice
                - tag: scope
                  value: security
        - uuid: 6072902361404672a444841c786875e6
          name: 'System local time'
          key: system.localtime
          units: unixtime
          description: 'The local system time of the host.'
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: fb77b6ac381c4b5289584bd91e7da7d5
              expression: 'fuzzytime(/Linux by Zabbix agent/system.localtime,{$SYSTEM.FUZZYTIME.MAX})=0'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'fuzzytime(/Linux by Zabbix agent/system.localtime,{$SYSTEM.FUZZYTIME.MIN})=1'
              name: 'Linux: System time is out of sync'
              event_name: 'Linux: System time is out of sync (diff with Zabbix server > {$SYSTEM.FUZZYTIME.MAX})'
              priority: WARNING
              description: 'The host''s system time is different from Zabbix server time.'
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: availability
                - tag: scope
                  value: performance
        - uuid: fd21580a151246b0a340bf924c326aa8
          name: 'Operating system architecture'
          key: system.sw.arch
          delay: 1h
          value_type: CHAR
          description: 'The architecture of the operating system.'
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          tags:
            - tag: component
              value: os
        - uuid: 5e4c3d14634843e9b7b182e8fc08efbe
          name: 'Operating system'
          key: system.sw.os
          delay: 1h
          value_type: CHAR
          inventory_link: OS
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          tags:
            - tag: component
              value: os
          triggers:
            - uuid: b1998f98c06b49dd8d71e1c6df409371
              expression: 'change(/Linux by Zabbix agent/system.sw.os) and length(last(/Linux by Zabbix agent/system.sw.os))>0'
              name: 'Linux: Operating system description has changed'
              priority: INFO
              description: 'The description of the operating system has changed. Possible reasons are that the system has been updated or replaced. Acknowledge to close the problem manually.'
              manual_close: 'YES'
              dependencies:
                - name: 'Linux: System name has changed'
                  expression: 'change(/Linux by Zabbix agent/system.hostname) and length(last(/Linux by Zabbix agent/system.hostname))>0'
              tags:
                - tag: scope
                  value: notice
        - uuid: 58818005e76d46dda14d6592f601ab00
          name: 'Number of installed packages'
          key: system.sw.packages.get
          delay: 1h
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.length()
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 12h
          tags:
            - tag: component
              value: os
          triggers:
            - uuid: b950c306394f4b3c902060a8273cbcde
              expression: 'change(/Linux by Zabbix agent/system.sw.packages.get)<>0'
              name: 'Linux: Number of installed packages has been changed'
              priority: WARNING
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: notice
        - uuid: 160b82c121b147cbbf18c34dbb01d3ce
          name: 'Free swap space'
          key: 'system.swap.size[,free]'
          units: B
          description: 'The free space of the swap volume/file expressed in bytes.'
          tags:
            - tag: component
              value: memory
            - tag: component
              value: storage
        - uuid: ca423242172f4b20ba47c26f4a61aee7
          name: 'Free swap space in %'
          key: 'system.swap.size[,pfree]'
          value_type: FLOAT
          units: '%'
          description: 'The free space of the swap volume/file expressed in %.'
          tags:
            - tag: component
              value: memory
            - tag: component
              value: storage
        - uuid: 102c81b5523c4be0b4beae3cb88ebde1
          name: 'Total swap space'
          key: 'system.swap.size[,total]'
          units: B
          description: 'The total space of the swap volume/file expressed in bytes.'
          tags:
            - tag: component
              value: memory
            - tag: component
              value: storage
        - uuid: fc6898682f904c57ba28bcb3748b237f
          name: 'System description'
          key: system.uname
          delay: 15m
          value_type: CHAR
          description: 'The information as normally returned by `uname -a`.'
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 12h
          tags:
            - tag: component
              value: system
        - uuid: 8537f6c6ac6b438c80caf227946df891
          name: 'System uptime'
          key: system.uptime
          delay: 30s
          trends: '0'
          units: uptime
          description: 'The system uptime expressed in the following format: "N days, hh:mm:ss".'
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: 1dbab80d7b6847e5b5a676cffba0fd1d
              expression: 'last(/Linux by Zabbix agent/system.uptime)<10m'
              name: 'Linux: {HOST.NAME} has been restarted'
              event_name: 'Linux: {HOST.NAME} has been restarted (uptime < 10m)'
              priority: WARNING
              description: 'The host uptime is less than 10 minutes.'
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: notice
        - uuid: 88056b3d2e424d5aba7cabcd4b043c9e
          name: 'Number of logged in users'
          key: system.users.num
          description: 'The number of users who are currently logged in.'
          tags:
            - tag: component
              value: environment
        - uuid: 3b93d3590df24a46b29f6eb06f5e2446
          name: 'Checksum of /etc/passwd'
          key: 'vfs.file.cksum[/etc/passwd,sha256]'
          delay: 15m
          value_type: CHAR
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
          tags:
            - tag: component
              value: security
          triggers:
            - uuid: 3a764881727b4e7eb01e137ccfc968a2
              expression: 'last(/Linux by Zabbix agent/vfs.file.cksum[/etc/passwd,sha256],#1)<>last(/Linux by Zabbix agent/vfs.file.cksum[/etc/passwd,sha256],#2)'
              name: 'Linux: /etc/passwd has been changed'
              priority: INFO
              manual_close: 'YES'
              dependencies:
                - name: 'Linux: Operating system description has changed'
                  expression: 'change(/Linux by Zabbix agent/system.sw.os) and length(last(/Linux by Zabbix agent/system.sw.os))>0'
                - name: 'Linux: System name has changed'
                  expression: 'change(/Linux by Zabbix agent/system.hostname) and length(last(/Linux by Zabbix agent/system.hostname))>0'
              tags:
                - tag: scope
                  value: security
        - uuid: 868440292732425c8f9df52882822c82
          name: 'Get filesystems'
          key: vfs.fs.get
          history: '0'
          value_type: TEXT
          description: 'The `vfs.fs.get` key acquires raw information set about the filesystems. Later to be extracted by preprocessing in dependent items.'
          tags:
            - tag: component
              value: raw
        - uuid: e811e6e2ae84461294e121f12e767b40
          name: 'Available memory'
          key: 'vm.memory.size[available]'
          units: B
          description: |
            The available memory:
            - in Linux = free + buffers + cache;
            - on other platforms calculation may vary.
            
            See also Appendixes in Zabbix Documentation about parameters of the `vm.memory.size` item.
          tags:
            - tag: component
              value: memory
        - uuid: 20779a4c43374e5f9bea2584e93b85ef
          name: 'Available memory in %'
          key: 'vm.memory.size[pavailable]'
          value_type: FLOAT
          units: '%'
          description: 'The available memory as percentage of the total. See also Appendixes in Zabbix Documentation about parameters of the `vm.memory.size` item.'
          tags:
            - tag: component
              value: memory
        - uuid: d5c3541a7c0949ce812df1beb0732941
          name: 'Total memory'
          key: 'vm.memory.size[total]'
          units: B
          description: 'Total memory expressed in bytes.'
          tags:
            - tag: component
              value: memory
        - uuid: 403cebed115441369e94d35d070ca7b8
          name: 'Memory utilization'
          type: DEPENDENT
          key: vm.memory.utilization
          value_type: FLOAT
          units: '%'
          description: 'The percentage of used memory is calculated as `100-pavailable`.'
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - 'return (100-value);'
          master_item:
            key: 'vm.memory.size[pavailable]'
          tags:
            - tag: component
              value: memory
          triggers:
            - uuid: cfd395b1cde74ef18a5e5f840bd5142a
              expression: 'min(/Linux by Zabbix agent/vm.memory.utilization,5m)>{$MEMORY.UTIL.MAX}'
              name: 'Linux: High memory utilization'
              event_name: 'Linux: High memory utilization (>{$MEMORY.UTIL.MAX}% for 5m)'
              priority: AVERAGE
              description: 'The system is running out of free memory.'
              dependencies:
                - name: 'Linux: Lack of available memory'
                  expression: 'max(/Linux by Zabbix agent/vm.memory.size[available],5m)<{$MEMORY.AVAILABLE.MIN} and last(/Linux by Zabbix agent/vm.memory.size[total])>0'
              tags:
                - tag: scope
                  value: capacity
                - tag: scope
                  value: performance
        - uuid: ca48c53be1bf46ae9dd2707158a55139
          name: 'Zabbix agent availability'
          type: INTERNAL
          key: 'zabbix[host,agent,available]'
          description: 'Used for monitoring the availability status of the agent.'
          valuemap:
            name: zabbix.host.available
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: 93594214371b4dc88b41663cad8537f0
              expression: 'max(/Linux by Zabbix agent/zabbix[host,agent,available],{$AGENT.TIMEOUT})=0'
              name: 'Linux: Zabbix agent is not available'
              event_name: 'Linux: Zabbix agent is not available (for {$AGENT.TIMEOUT})'
              priority: AVERAGE
              description: 'For passive agents only, host availability is used with `{$AGENT.TIMEOUT}` as a time threshold.'
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: availability
      discovery_rules:
        - uuid: acfdea9c46ef48c68e6636f43b8f96a2
          name: 'Network interface discovery'
          key: net.if.discovery
          delay: 1h
          filter:
            evaltype: AND
            conditions:
              - macro: '{#IFNAME}'
                value: '{$NET.IF.IFNAME.MATCHES}'
              - macro: '{#IFNAME}'
                value: '{$NET.IF.IFNAME.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
          description: 'The discovery of network interfaces.'
          item_prototypes:
            - uuid: 4d66608e190e4be7a438ea5d0d26e353
              name: 'Interface {#IFNAME}: Inbound packets discarded'
              key: 'net.if.in["{#IFNAME}",dropped]'
              delay: 3m
              preprocessing:
                - type: CHANGE_PER_SECOND
              tags:
                - tag: component
                  value: network
                - tag: interface
                  value: '{#IFNAME}'
            - uuid: ed79960ca91f4e2ca45fed014a02c50b
              name: 'Interface {#IFNAME}: Inbound packets with errors'
              key: 'net.if.in["{#IFNAME}",errors]'
              delay: 3m
              preprocessing:
                - type: CHANGE_PER_SECOND
              tags:
                - tag: component
                  value: network
                - tag: interface
                  value: '{#IFNAME}'
            - uuid: c9941a1f8d904309b581cae5ccc1660c
              name: 'Interface {#IFNAME}: Bits received'
              key: 'net.if.in["{#IFNAME}"]'
              delay: 3m
              units: bps
              preprocessing:
                - type: CHANGE_PER_SECOND
                - type: MULTIPLIER
                  parameters:
                    - '8'
              tags:
                - tag: component
                  value: network
                - tag: interface
                  value: '{#IFNAME}'
            - uuid: 0795a375a41d46a2b5c89547061cec8e
              name: 'Interface {#IFNAME}: Outbound packets discarded'
              key: 'net.if.out["{#IFNAME}",dropped]'
              delay: 3m
              preprocessing:
                - type: CHANGE_PER_SECOND
              tags:
                - tag: component
                  value: network
                - tag: interface
                  value: '{#IFNAME}'
            - uuid: f8e8bbc069414e928a5da9817f4599a5
              name: 'Interface {#IFNAME}: Outbound packets with errors'
              key: 'net.if.out["{#IFNAME}",errors]'
              delay: 3m
              preprocessing:
                - type: CHANGE_PER_SECOND
              tags:
                - tag: component
                  value: network
                - tag: interface
                  value: '{#IFNAME}'
            - uuid: 82897d99b0114c67b0f5b449c768c8e7
              name: 'Interface {#IFNAME}: Bits sent'
              key: 'net.if.out["{#IFNAME}"]'
              delay: 3m
              units: bps
              preprocessing:
                - type: CHANGE_PER_SECOND
                - type: MULTIPLIER
                  parameters:
                    - '8'
              tags:
                - tag: component
                  value: network
                - tag: interface
                  value: '{#IFNAME}'
            - uuid: 3efd24ad36b04eb995cfeab82721c2fe
              name: 'Interface {#IFNAME}: Operational status'
              key: 'vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"]'
              trends: '0'
              description: 'Reference: https://www.kernel.org/doc/Documentation/networking/operstates.txt'
              valuemap:
                name: ifOperStatus
              preprocessing:
                - type: JAVASCRIPT
                  parameters:
                    - |
                      var newvalue;
                      switch(value) {
                        case "unknown":
                      	newvalue = 0;
                      	break;
                        case "notpresent":
                      	newvalue = 1;
                      	break;
                        case "down":
                      	newvalue = 2;
                      	break;
                        case "lowerlayerdown":
                      	newvalue = 3;
                      	break;
                        case "testing":
                      	newvalue = 4;
                      	break;
                        case "dormant":
                      	newvalue = 5;
                      	break;
                        case "up":
                      	newvalue = 6;
                      	break;  default:
                      	newvalue = "Problem parsing interface operstate in JS";
                      }
                      return newvalue;
              tags:
                - tag: component
                  value: network
                - tag: interface
                  value: '{#IFNAME}'
              trigger_prototypes:
                - uuid: 4d7f18ca132340b885c0692464dc429f
                  expression: '{$IFCONTROL:"{#IFNAME}"}=1 and last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])=2 and (last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#1)<>last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#2))'
                  recovery_mode: RECOVERY_EXPRESSION
                  recovery_expression: 'last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])<>2 or {$IFCONTROL:"{#IFNAME}"}=0'
                  name: 'Linux: Interface {#IFNAME}: Link down'
                  opdata: 'Current state: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: |
                    This trigger expression works as follows:
                    1. It can be triggered if the operations status is down.
                    2. `{$IFCONTROL:"{#IFNAME}"}=1` - a user can redefine the context macro to "0", marking this interface as not important. No new trigger will be fired if this interface is down.
                    3. `last(/TEMPLATE_NAME/METRIC,#1)<>last(/TEMPLATE_NAME/METRIC,#2)` - the trigger fires only if the operational status was up to (1) sometime before (so, does not fire for "eternal off" interfaces.)
                    
                    WARNING: if closed manually - it will not fire again on the next poll, because of .diff.
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: availability
            - uuid: f4c456e1f9ef4adbbd11f1ee17fa4d76
              name: 'Interface {#IFNAME}: Speed'
              key: 'vfs.file.contents["/sys/class/net/{#IFNAME}/speed"]'
              delay: 5m
              trends: '0'
              units: bps
              description: |
                It indicates the latest or current speed value of the interface. The value is an integer representing the link speed expressed in bits/sec.
                This attribute is only valid for the interfaces that implement the ethtool `get_link_ksettings` method (mostly Ethernet).
                
                Reference: https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net
              preprocessing:
                - type: MULTIPLIER
                  parameters:
                    - '1000000'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1h
              tags:
                - tag: component
                  value: network
                - tag: interface
                  value: '{#IFNAME}'
            - uuid: d537e74070c74e4385ad241e8514dd3a
              name: 'Interface {#IFNAME}: Interface type'
              key: 'vfs.file.contents["/sys/class/net/{#IFNAME}/type"]'
              delay: 1h
              trends: '0'
              description: |
                It indicates the interface protocol type as a decimal value.
                See `include/uapi/linux/if_arp.h` for all possible values.
                Reference: https://www.kernel.org/doc/Documentation/ABI/testing/sysfs-class-net
              valuemap:
                name: 'Linux::Interface protocol types'
              preprocessing:
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 1d
              tags:
                - tag: component
                  value: network
                - tag: interface
                  value: '{#IFNAME}'
          trigger_prototypes:
            - uuid: 2ffdc1d5a318492bb497facd263843bd
              expression: |
                change(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"])<0 and last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"])>0
                and
                (last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/type"])=6 or last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/type"])=1)
                and
                (last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])<>2)
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: |
                (change(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"])>0 and last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"],#2)>0) or
                (last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])=2)
              name: 'Linux: Interface {#IFNAME}: Ethernet has changed to lower speed than it was before'
              opdata: 'Current reported speed: {ITEM.LASTVALUE1}'
              priority: INFO
              description: 'This Ethernet connection has transitioned down from its known maximum speed. This might be a sign of autonegotiation issues. Acknowledge to close the problem manually.'
              manual_close: 'YES'
              dependencies:
                - name: 'Linux: Interface {#IFNAME}: Link down'
                  expression: '{$IFCONTROL:"{#IFNAME}"}=1 and last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])=2 and (last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#1)<>last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#2))'
                  recovery_expression: 'last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])<>2 or {$IFCONTROL:"{#IFNAME}"}=0'
              tags:
                - tag: scope
                  value: performance
            - uuid: f64186d30b4e4c4281fce84349cbd646
              expression: |
                (avg(/Linux by Zabbix agent/net.if.in["{#IFNAME}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"]) or
                avg(/Linux by Zabbix agent/net.if.out["{#IFNAME}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"])) and
                last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"])>0
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: |
                avg(/Linux by Zabbix agent/net.if.in["{#IFNAME}"],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"]) and
                avg(/Linux by Zabbix agent/net.if.out["{#IFNAME}"],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/speed"])
              name: 'Linux: Interface {#IFNAME}: High bandwidth usage'
              event_name: 'Linux: Interface {#IFNAME}: High bandwidth usage (>{$IF.UTIL.MAX:"{#IFNAME}"}%)'
              opdata: 'In: {ITEM.LASTVALUE1}, out: {ITEM.LASTVALUE3}, speed: {ITEM.LASTVALUE2}'
              priority: WARNING
              description: 'The utilization of the network interface is close to its estimated maximum bandwidth.'
              manual_close: 'YES'
              dependencies:
                - name: 'Linux: Interface {#IFNAME}: Link down'
                  expression: '{$IFCONTROL:"{#IFNAME}"}=1 and last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])=2 and (last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#1)<>last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#2))'
                  recovery_expression: 'last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])<>2 or {$IFCONTROL:"{#IFNAME}"}=0'
              tags:
                - tag: scope
                  value: performance
            - uuid: ad50aecf8e7746b2a85f24507f1d511d
              expression: |
                min(/Linux by Zabbix agent/net.if.in["{#IFNAME}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"}
                or min(/Linux by Zabbix agent/net.if.out["{#IFNAME}",errors],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"}
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: |
                max(/Linux by Zabbix agent/net.if.in["{#IFNAME}",errors],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8
                and max(/Linux by Zabbix agent/net.if.out["{#IFNAME}",errors],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8
              name: 'Linux: Interface {#IFNAME}: High error rate'
              event_name: 'Linux: Interface {#IFNAME}: High error rate (>{$IF.ERRORS.WARN:"{#IFNAME}"} for 5m)'
              opdata: 'errors in: {ITEM.LASTVALUE1}, errors out: {ITEM.LASTVALUE2}'
              priority: WARNING
              description: 'It recovers when it is below 80% of the `{$IF.ERRORS.WARN:"{#IFNAME}"}` threshold.'
              manual_close: 'YES'
              dependencies:
                - name: 'Linux: Interface {#IFNAME}: Link down'
                  expression: '{$IFCONTROL:"{#IFNAME}"}=1 and last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])=2 and (last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#1)<>last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"],#2))'
                  recovery_expression: 'last(/Linux by Zabbix agent/vfs.file.contents["/sys/class/net/{#IFNAME}/operstate"])<>2 or {$IFCONTROL:"{#IFNAME}"}=0'
              tags:
                - tag: scope
                  value: availability
                - tag: scope
                  value: performance
          graph_prototypes:
            - uuid: 50ced0f22d9d478eb4b639ef64e242ab
              name: 'Interface {#IFNAME}: Network traffic'
              graph_items:
                - drawtype: GRADIENT_LINE
                  color: 199C0D
                  item:
                    host: 'Linux by Zabbix agent'
                    key: 'net.if.in["{#IFNAME}"]'
                - sortorder: '1'
                  drawtype: BOLD_LINE
                  color: F63100
                  item:
                    host: 'Linux by Zabbix agent'
                    key: 'net.if.out["{#IFNAME}"]'
                - sortorder: '2'
                  color: 00611C
                  yaxisside: RIGHT
                  item:
                    host: 'Linux by Zabbix agent'
                    key: 'net.if.out["{#IFNAME}",errors]'
                - sortorder: '3'
                  color: F7941D
                  yaxisside: RIGHT
                  item:
                    host: 'Linux by Zabbix agent'
                    key: 'net.if.in["{#IFNAME}",errors]'
                - sortorder: '4'
                  color: FC6EA3
                  yaxisside: RIGHT
                  item:
                    host: 'Linux by Zabbix agent'
                    key: 'net.if.out["{#IFNAME}",dropped]'
                - sortorder: '5'
                  color: 6C59DC
                  yaxisside: RIGHT
                  item:
                    host: 'Linux by Zabbix agent'
                    key: 'net.if.in["{#IFNAME}",dropped]'
        - uuid: 2bbdc79f082d4c618e01bec625e9c90a
          name: 'Block devices discovery'
          key: vfs.dev.discovery
          delay: 1h
          filter:
            evaltype: AND
            conditions:
              - macro: '{#DEVNAME}'
                value: '{$VFS.DEV.DEVNAME.MATCHES}'
              - macro: '{#DEVNAME}'
                value: '{$VFS.DEV.DEVNAME.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#DEVTYPE}'
                value: disk
          item_prototypes:
            - uuid: 5e29abb8d56044f69426ed3594f8ac9f
              name: '{#DEVNAME}: Disk average queue size (avgqu-sz)'
              type: DEPENDENT
              key: 'vfs.dev.queue_size[{#DEVNAME}]'
              value_type: FLOAT
              description: 'The current average disk queue; the number of requests outstanding on the disk while the performance data is being collected.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$[10]'
                - type: CHANGE_PER_SECOND
                - type: MULTIPLIER
                  parameters:
                    - '0.001'
              master_item:
                key: 'vfs.file.contents[/sys/block/{#DEVNAME}/stat]'
              tags:
                - tag: component
                  value: storage
                - tag: disk
                  value: '{#DEVNAME}'
            - uuid: 9600208af80e4a6abe55bb5a2240ea8e
              name: '{#DEVNAME}: Disk read request avg waiting time (r_await)'
              type: CALCULATED
              key: 'vfs.dev.read.await[{#DEVNAME}]'
              value_type: FLOAT
              units: '!ms'
              params: '(last(//vfs.dev.read.time.rate[{#DEVNAME}])/(last(//vfs.dev.read.rate[{#DEVNAME}])+(last(//vfs.dev.read.rate[{#DEVNAME}])=0)))*1000*(last(//vfs.dev.read.rate[{#DEVNAME}]) > 0)'
              description: 'This formula contains two Boolean expressions that evaluate to 1 or 0 in order to set the calculated metric to zero and to avoid the exception - division by zero.'
              tags:
                - tag: component
                  value: storage
                - tag: disk
                  value: '{#DEVNAME}'
            - uuid: f4b982d8e7ee47adb34d74d817db43a6
              name: '{#DEVNAME}: Disk read rate'
              type: DEPENDENT
              key: 'vfs.dev.read.rate[{#DEVNAME}]'
              value_type: FLOAT
              units: '!r/s'
              description: 'r/s (read operations per second) - the number (after merges) of read requests completed per second for the device.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$[0]'
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'vfs.file.contents[/sys/block/{#DEVNAME}/stat]'
              tags:
                - tag: component
                  value: storage
                - tag: disk
                  value: '{#DEVNAME}'
            - uuid: 877a3e892d9e489f98f2f16ea05bfdc2
              name: '{#DEVNAME}: Disk read time (rate)'
              type: DEPENDENT
              key: 'vfs.dev.read.time.rate[{#DEVNAME}]'
              value_type: FLOAT
              description: 'The rate of total read time counter; used in `r_await` calculation.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$[3]'
                - type: CHANGE_PER_SECOND
                - type: MULTIPLIER
                  parameters:
                    - '0.001'
              master_item:
                key: 'vfs.file.contents[/sys/block/{#DEVNAME}/stat]'
              tags:
                - tag: component
                  value: storage
                - tag: disk
                  value: '{#DEVNAME}'
            - uuid: 4a3ee3166ee748e1855a2b02d44e9d62
              name: '{#DEVNAME}: Disk utilization'
              type: DEPENDENT
              key: 'vfs.dev.util[{#DEVNAME}]'
              value_type: FLOAT
              units: '%'
              description: 'The percentage of elapsed time during which the selected disk drive was busy while servicing read or write requests.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$[9]'
                - type: CHANGE_PER_SECOND
                - type: MULTIPLIER
                  parameters:
                    - '0.1'
              master_item:
                key: 'vfs.file.contents[/sys/block/{#DEVNAME}/stat]'
              tags:
                - tag: component
                  value: storage
                - tag: disk
                  value: '{#DEVNAME}'
            - uuid: 5907708cf4854d48ae3ebf8f0bc41eef
              name: '{#DEVNAME}: Disk write request avg waiting time (w_await)'
              type: CALCULATED
              key: 'vfs.dev.write.await[{#DEVNAME}]'
              value_type: FLOAT
              units: '!ms'
              params: '(last(//vfs.dev.write.time.rate[{#DEVNAME}])/(last(//vfs.dev.write.rate[{#DEVNAME}])+(last(//vfs.dev.write.rate[{#DEVNAME}])=0)))*1000*(last(//vfs.dev.write.rate[{#DEVNAME}]) > 0)'
              description: 'This formula contains two Boolean expressions that evaluate to 1 or 0 in order to set the calculated metric to zero and to avoid the exception - division by zero.'
              tags:
                - tag: component
                  value: storage
                - tag: disk
                  value: '{#DEVNAME}'
            - uuid: c4eb904dfddd4b0f8cdee4b2c477e213
              name: '{#DEVNAME}: Disk write rate'
              type: DEPENDENT
              key: 'vfs.dev.write.rate[{#DEVNAME}]'
              value_type: FLOAT
              units: '!w/s'
              description: 'w/s (write operations per second) - the number (after merges) of write requests completed per second for the device.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$[4]'
                - type: CHANGE_PER_SECOND
              master_item:
                key: 'vfs.file.contents[/sys/block/{#DEVNAME}/stat]'
              tags:
                - tag: component
                  value: storage
                - tag: disk
                  value: '{#DEVNAME}'
            - uuid: e828495863304b219e24965f7b91e963
              name: '{#DEVNAME}: Disk write time (rate)'
              type: DEPENDENT
              key: 'vfs.dev.write.time.rate[{#DEVNAME}]'
              value_type: FLOAT
              description: 'The rate of total write time counter; used in `w_await` calculation.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$[7]'
                - type: CHANGE_PER_SECOND
                - type: MULTIPLIER
                  parameters:
                    - '0.001'
              master_item:
                key: 'vfs.file.contents[/sys/block/{#DEVNAME}/stat]'
              tags:
                - tag: component
                  value: storage
                - tag: disk
                  value: '{#DEVNAME}'
            - uuid: 8309fd01a5864ad68866717d0fe67080
              name: '{#DEVNAME}: Get stats'
              key: 'vfs.file.contents[/sys/block/{#DEVNAME}/stat]'
              history: '0'
              value_type: TEXT
              description: 'The contents of get `/sys/block/{#DEVNAME}/stat` to get the disk statistics.'
              preprocessing:
                - type: JAVASCRIPT
                  parameters:
                    - 'return JSON.stringify(value.trim().split(/ +/));'
              tags:
                - tag: component
                  value: raw
          trigger_prototypes:
            - uuid: eb6230f786d04b658ce62c30a9309a34
              expression: 'min(/Linux by Zabbix agent/vfs.dev.read.await[{#DEVNAME}],15m) > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} or min(/Linux by Zabbix agent/vfs.dev.write.await[{#DEVNAME}],15m) > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"}'
              name: 'Linux: {#DEVNAME}: Disk read/write request responses are too high'
              event_name: 'Linux: {#DEVNAME}: Disk read/write request responses are too high (read > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} ms for 15m or write > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"} ms for 15m)'
              priority: WARNING
              description: 'This trigger might indicate the disk `{#DEVNAME}` saturation.'
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: performance
          graph_prototypes:
            - uuid: 5e9b35b27b90489390d397758fbfdf64
              name: '{#DEVNAME}: Disk average waiting time'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'Linux by Zabbix agent'
                    key: 'vfs.dev.read.await[{#DEVNAME}]'
                - sortorder: '1'
                  drawtype: GRADIENT_LINE
                  color: F63100
                  item:
                    host: 'Linux by Zabbix agent'
                    key: 'vfs.dev.write.await[{#DEVNAME}]'
            - uuid: d436d6d5456c44f0a534bf1f681d5039
              name: '{#DEVNAME}: Disk read/write rates'
              graph_items:
                - color: 199C0D
                  item:
                    host: 'Linux by Zabbix agent'
                    key: 'vfs.dev.read.rate[{#DEVNAME}]'
                - sortorder: '1'
                  drawtype: GRADIENT_LINE
                  color: F63100
                  item:
                    host: 'Linux by Zabbix agent'
                    key: 'vfs.dev.write.rate[{#DEVNAME}]'
            - uuid: c42e4045e0974e89a306c57fb188c4fa
              name: '{#DEVNAME}: Disk utilization and queue'
              graph_items:
                - color: 199C0D
                  yaxisside: RIGHT
                  item:
                    host: 'Linux by Zabbix agent'
                    key: 'vfs.dev.queue_size[{#DEVNAME}]'
                - sortorder: '1'
                  drawtype: GRADIENT_LINE
                  color: F63100
                  item:
                    host: 'Linux by Zabbix agent'
                    key: 'vfs.dev.util[{#DEVNAME}]'
        - uuid: 7d090603037e4defb34ef74021d3adcd
          name: 'Mounted filesystem discovery'
          type: DEPENDENT
          key: vfs.fs.dependent.discovery
          filter:
            evaltype: AND
            conditions:
              - macro: '{#FSNAME}'
                value: '{$VFS.FS.FSNAME.MATCHES}'
              - macro: '{#FSNAME}'
                value: '{$VFS.FS.FSNAME.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
              - macro: '{#FSTYPE}'
                value: '{$VFS.FS.FSTYPE.MATCHES}'
              - macro: '{#FSTYPE}'
                value: '{$VFS.FS.FSTYPE.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
          description: 'The discovery of mounted filesystems with different types.'
          item_prototypes:
            - uuid: 4da7f08a979a46df8b8aeebb42a46207
              name: 'FS [{#FSNAME}]: Inodes: Free, in %'
              type: DEPENDENT
              key: 'vfs.fs.dependent.inode[{#FSNAME},pfree]'
              value_type: FLOAT
              units: '%'
              description: 'Free metadata space expressed in %.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.inodes.pfree
              master_item:
                key: 'vfs.fs.dependent[{#FSNAME},data]'
              tags:
                - tag: component
                  value: storage
                - tag: filesystem
                  value: '{#FSNAME}'
                - tag: fstype
                  value: '{#FSTYPE}'
              trigger_prototypes:
                - uuid: 115b2d37807f476faf6d02ef406acabd
                  expression: 'min(/Linux by Zabbix agent/vfs.fs.dependent.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}'
                  name: 'Linux: FS [{#FSNAME}]: Running out of free inodes'
                  event_name: 'Linux: {#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}%)'
                  opdata: 'Free inodes: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'Disk writing may fail if index nodes are exhausted, leading to error messages like "No space left on device" or "Disk is full", despite available free space.'
                  tags:
                    - tag: scope
                      value: capacity
                    - tag: scope
                      value: performance
                - uuid: ea012c7295344ffe8c66f7ea54d81042
                  expression: 'min(/Linux by Zabbix agent/vfs.fs.dependent.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"}'
                  name: 'Linux: FS [{#FSNAME}]: Running out of free inodes'
                  event_name: 'Linux: FS [{#FSNAME}]: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"}%)'
                  opdata: 'Free inodes: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'Disk writing may fail if index nodes are exhausted, leading to error messages like "No space left on device" or "Disk is full", despite available free space.'
                  dependencies:
                    - name: 'Linux: FS [{#FSNAME}]: Running out of free inodes'
                      expression: 'min(/Linux by Zabbix agent/vfs.fs.dependent.inode[{#FSNAME},pfree],5m)<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}'
                  tags:
                    - tag: scope
                      value: capacity
                    - tag: scope
                      value: performance
            - uuid: d53e00855fb349e29bd74146e55265ae
              name: 'FS [{#FSNAME}]: Space: Available'
              type: DEPENDENT
              key: 'vfs.fs.dependent.size[{#FSNAME},free]'
              units: B
              description: 'Available storage space expressed in bytes.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.bytes.free
              master_item:
                key: 'vfs.fs.dependent[{#FSNAME},data]'
              tags:
                - tag: component
                  value: storage
                - tag: filesystem
                  value: '{#FSNAME}'
                - tag: fstype
                  value: '{#FSTYPE}'
            - uuid: 61ffe6fcb9d94199aaeb5d568ab74a27
              name: 'FS [{#FSNAME}]: Space: Used, in %'
              type: DEPENDENT
              key: 'vfs.fs.dependent.size[{#FSNAME},pused]'
              value_type: FLOAT
              units: '%'
              description: 'Calculated as the percentage of currently used space compared to the maximum available space.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.bytes.pused
              master_item:
                key: 'vfs.fs.dependent[{#FSNAME},data]'
              tags:
                - tag: component
                  value: storage
                - tag: filesystem
                  value: '{#FSNAME}'
                - tag: fstype
                  value: '{#FSTYPE}'
              trigger_prototypes:
                - uuid: 9abccdfff8be4e14967ac917ca09afe1
                  expression: 'min(/Linux by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}'
                  name: 'Linux: FS [{#FSNAME}]: Space is critically low'
                  event_name: 'Linux: FS [{#FSNAME}]: Space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%, total {{?last(//vfs.fs.dependent.size[{#FSNAME},total])/1024/1024/1024}.fmtnum(1)}GB)'
                  opdata: 'Space used: {{ITEM.LASTVALUE1}.fmtnum(1)}%'
                  priority: AVERAGE
                  description: |
                    The volume's space usage exceeds the `{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%` limit.
                    The trigger expression is based on the current used and maximum available spaces.
                    Event name represents the total volume space, which can differ from the maximum available space, depending on the filesystem type.
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: availability
                    - tag: scope
                      value: capacity
                - uuid: d6d348ea500c428da6ba718816c4b048
                  expression: 'min(/Linux by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}'
                  name: 'Linux: FS [{#FSNAME}]: Space is low'
                  event_name: 'Linux: FS [{#FSNAME}]: Space is low (used > {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%, total {{?last(//vfs.fs.dependent.size[{#FSNAME},total])/1024/1024/1024}.fmtnum(1)}GB)'
                  opdata: 'Space used: {{ITEM.LASTVALUE1}.fmtnum(1)}%'
                  priority: WARNING
                  description: |
                    The volume's space usage exceeds the `{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%` limit.
                    The trigger expression is based on the current used and maximum available spaces.
                    Event name represents the total volume space, which can differ from the maximum available space, depending on the filesystem type.
                  manual_close: 'YES'
                  dependencies:
                    - name: 'Linux: FS [{#FSNAME}]: Space is critically low'
                      expression: 'min(/Linux by Zabbix agent/vfs.fs.dependent.size[{#FSNAME},pused],5m)>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}'
                  tags:
                    - tag: scope
                      value: availability
                    - tag: scope
                      value: capacity
            - uuid: a6d90e0bc5ef4fb7acee8682687c485f
              name: 'FS [{#FSNAME}]: Space: Total'
              type: DEPENDENT
              key: 'vfs.fs.dependent.size[{#FSNAME},total]'
              units: B
              description: 'Total space expressed in bytes.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.bytes.total
              master_item:
                key: 'vfs.fs.dependent[{#FSNAME},data]'
              tags:
                - tag: component
                  value: storage
                - tag: filesystem
                  value: '{#FSNAME}'
                - tag: fstype
                  value: '{#FSTYPE}'
            - uuid: efee06a191aa4e5c8faa2762988b6955
              name: 'FS [{#FSNAME}]: Space: Used'
              type: DEPENDENT
              key: 'vfs.fs.dependent.size[{#FSNAME},used]'
              units: B
              description: 'Used storage expressed in bytes.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.bytes.used
              master_item:
                key: 'vfs.fs.dependent[{#FSNAME},data]'
              tags:
                - tag: component
                  value: storage
                - tag: filesystem
                  value: '{#FSNAME}'
                - tag: fstype
                  value: '{#FSTYPE}'
            - uuid: 686df59ab1e64b228a1efc20561cf520
              name: 'FS [{#FSNAME}]: Get data'
              type: DEPENDENT
              key: 'vfs.fs.dependent[{#FSNAME},data]'
              history: 1h
              value_type: TEXT
              description: 'Intermediate data of `{#FSNAME}` filesystem.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[?(@.fsname==''{#FSNAME}'')].first()'
              master_item:
                key: vfs.fs.get
              tags:
                - tag: component
                  value: raw
                - tag: component
                  value: storage
                - tag: filesystem
                  value: '{#FSNAME}'
                - tag: fstype
                  value: '{#FSTYPE}'
            - uuid: c4bfc3639837451bb1fcf98ea654c939
              name: 'FS [{#FSNAME}]: Option: Read-only'
              type: DEPENDENT
              key: 'vfs.fs.dependent[{#FSNAME},readonly]'
              description: 'The filesystem is mounted as read-only. It is available only for Zabbix agents 6.4 and higher.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.options
                  error_handler: DISCARD_VALUE
                - type: REGEX
                  parameters:
                    - '(?:^|,)ro\b'
                    - '1'
                  error_handler: CUSTOM_VALUE
                  error_handler_params: '0'
              master_item:
                key: 'vfs.fs.dependent[{#FSNAME},data]'
              tags:
                - tag: component
                  value: storage
                - tag: filesystem
                  value: '{#FSNAME}'
                - tag: fstype
                  value: '{#FSTYPE}'
              trigger_prototypes:
                - uuid: c8e2f67378d84b3ba687467bc6daf63a
                  expression: 'last(/Linux by Zabbix agent/vfs.fs.dependent[{#FSNAME},readonly],#2)=0 and last(/Linux by Zabbix agent/vfs.fs.dependent[{#FSNAME},readonly])=1'
                  recovery_mode: RECOVERY_EXPRESSION
                  recovery_expression: 'last(/Linux by Zabbix agent/vfs.fs.dependent[{#FSNAME},readonly])=0'
                  name: 'Linux: FS [{#FSNAME}]: Filesystem has become read-only'
                  priority: AVERAGE
                  description: 'The filesystem has become read-only, possibly due to an I/O error. Available only for Zabbix agents 6.4 and higher.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: availability
                    - tag: scope
                      value: performance
          graph_prototypes:
            - uuid: c2a31e9370b342b1942cc5308fd63a2c
              name: 'FS [{#FSTYPE}({#FSNAME})]: Space usage graph, in % (relative to max available)'
              width: '600'
              height: '340'
              ymin_type_1: FIXED
              ymax_type_1: FIXED
              graph_items:
                - drawtype: FILLED_REGION
                  color: F63100
                  calc_fnc: ALL
                  item:
                    host: 'Linux by Zabbix agent'
                    key: 'vfs.fs.dependent.size[{#FSNAME},pused]'
            - uuid: bb209e7862ad4f8f8f7efcd003146e97
              name: 'FS [{#FSTYPE}({#FSNAME})]: Space utilization chart (relative to total)'
              width: '600'
              height: '340'
              type: PIE
              show_3d: 'YES'
              graph_items:
                - color: '787878'
                  calc_fnc: LAST
                  type: GRAPH_SUM
                  item:
                    host: 'Linux by Zabbix agent'
                    key: 'vfs.fs.dependent.size[{#FSNAME},total]'
                - sortorder: '1'
                  color: F63100
                  calc_fnc: LAST
                  item:
                    host: 'Linux by Zabbix agent'
                    key: 'vfs.fs.dependent.size[{#FSNAME},used]'
                - sortorder: '2'
                  color: 199C09
                  calc_fnc: LAST
                  item:
                    host: 'Linux by Zabbix agent'
                    key: 'vfs.fs.dependent.size[{#FSNAME},free]'
          master_item:
            key: vfs.fs.get
          lld_macro_paths:
            - lld_macro: '{#FSNAME}'
              path: $.fsname
            - lld_macro: '{#FSTYPE}'
              path: $.fstype
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  var filesystems = JSON.parse(value);
                  
                  result = filesystems.map(function (filesystem) {
                  	return {
                  		'fsname': filesystem.fsname,
                  		'fstype': filesystem.fstype
                  	};
                  });
                  
                  return JSON.stringify(result);
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
          overrides:
            - name: 'Skip metadata collection for dynamic FS'
              step: '1'
              filter:
                conditions:
                  - macro: '{#FSTYPE}'
                    value: ^(btrfs|zfs)$
              operations:
                - operator: LIKE
                  value: Inodes
                  discover: NO_DISCOVER
      tags:
        - tag: class
          value: os
        - tag: target
          value: linux
      macros:
        - macro: '{$AGENT.TIMEOUT}'
          value: 3m
          description: 'Timeout after which agent is considered unavailable. Works only for agents reachable from Zabbix server/proxy (passive mode).'
          config:
            type: TEXT
            priority: '1'
            label: 'Seconds since the last Zabbix agent seen'
            description: 'Timeout after which agent is considered unavailable.'
        - macro: '{$CPU.UTIL.CRIT}'
          value: '90'
          description: 'Critical threshold of CPU utilization expressed in %.'
          config:
            type: TEXT
            priority: '2'
            section_name: Thresholds
            label: 'Threshold of CPU utilization expressed'
            description: 'Critical threshold of CPU utilization expressed in %. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$IF.ERRORS.WARN}'
          value: '2'
          description: 'Warning threshold of error packet rate. Can be used with interface name as context.'
          config:
            type: TEXT
            priority: '21'
            section_name: Thresholds
            label: 'Threshold of error packet rate'
            description: 'Warning threshold of error packet rate. No less than 0.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$IF.UTIL.MAX}'
          value: '90'
          description: 'Used as a threshold in the interface utilization trigger.'
          config:
            type: TEXT
            priority: '20'
            section_name: Thresholds
            label: 'The threshold in the interface utilization'
            description: 'Used as a threshold in the interface utilization trigger. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$IFCONTROL}'
          value: '1'
          description: 'Link status trigger will be fired only for interfaces where the context macro equals "1".'
          config:
            type: CHECKBOX
            priority: '19'
            label: 'Interfaces control'
            description: 'Fire a trigger when the interface operational status changes to "Link down".'
            options:
              - checked: '1'
                unchecked: '0'
        - macro: '{$KERNEL.MAXFILES.MIN}'
          value: '256'
          config:
            type: TEXT
            priority: '25'
            section_name: Thresholds
            label: 'Number of open filedescriptors'
            description: 'Configured max number of open filedescriptors. No less than 0.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$KERNEL.MAXPROC.MIN}'
          value: '1024'
          config:
            type: TEXT
            priority: '24'
            section_name: Thresholds
            label: 'Number of processes'
            description: 'Configured max number of processes. No less than 0.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$LOAD_AVG_PER_CPU.MAX.WARN}'
          value: '1.5'
          description: 'The CPU load per core is considered sustainable. If necessary, it can be tuned.'
          config:
            type: TEXT
            priority: '3'
            section_name: Thresholds
            label: 'The CPU load per core'
            description: 'CPU load per core is considered sustainable. No less than 0.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$MEMORY.AVAILABLE.MIN}'
          value: 20M
          description: 'Used as a threshold in the available memory trigger.'
          config:
            type: TEXT
            priority: '13'
            section_name: Thresholds
            label: 'Threshold in the available memory'
            description: 'Used as a threshold in the available memory trigger.'
        - macro: '{$MEMORY.UTIL.MAX}'
          value: '90'
          description: 'Used as a threshold in the memory utilization trigger.'
          config:
            type: TEXT
            priority: '12'
            section_name: Thresholds
            label: 'Threshold in the memory utilization'
            description: 'Used as a threshold in the memory utilization trigger. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$NET.IF.IFNAME.MATCHES}'
          value: '^.*$'
          description: 'Used for network interface discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '22'
            section_name: Filters
            label: 'Network interface discovery'
            description: 'Network interface discovery.'
        - macro: '{$NET.IF.IFNAME.NOT_MATCHES}'
          value: '(^Software Loopback Interface|^NULL[0-9.]*$|^[Ll]o[0-9.]*$|^[Ss]ystem$|^Nu[0-9.]*$|^veth[0-9A-z]+$|docker[0-9]+|br-[a-z0-9]{12})'
          description: 'Filters out `loopbacks`, `nulls`, docker `veth` links and `docker0` bridge by default.'
          config:
            type: TEXT
            priority: '23'
            section_name: Filters
            label: 'Filter for network interface by name'
            description: 'Filters out `loopbacks`, `nulls`, docker `veth` links and `docker0` bridge by default.'
        - macro: '{$SWAP.PFREE.MIN.WARN}'
          value: '50'
          description: 'The warning threshold of the minimum free swap.'
          config:
            type: TEXT
            priority: '14'
            section_name: Thresholds
            label: 'Threshold of the minimum free swap'
            description: 'Warning threshold of the minimum free swap. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$SYSTEM.FUZZYTIME.MAX}'
          value: 60s
          description: 'The upper threshold for difference of system time.'
          config:
            type: TEXT
            priority: '27'
            section_name: Thresholds
            label: 'The upper threshold for difference of system time'
            description: 'Upper threshold for difference of system time.'
        - macro: '{$SYSTEM.FUZZYTIME.MIN}'
          value: 10s
          description: 'The lower threshold for difference of system time. Used in recovery expression to avoid trigger flapping.'
          config:
            type: TEXT
            priority: '26'
            section_name: Thresholds
            label: 'The lower threshold for difference of system time'
            description: 'Lower threshold for difference of system time.'
        - macro: '{$VFS.DEV.DEVNAME.MATCHES}'
          value: .+
          description: 'Used for block device discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '17'
            section_name: Filters
            label: 'Filter for block device discovery'
            description: 'Regex string to include discovered block device.'
        - macro: '{$VFS.DEV.DEVNAME.NOT_MATCHES}'
          value: '^(loop[0-9]*|sd[a-z][0-9]+|nbd[0-9]+|sr[0-9]+|fd[0-9]+|dm-[0-9]+|ram[0-9]+|ploop[a-z0-9]+|md[0-9]*|hcp[0-9]*|zram[0-9]*)'
          description: 'Used for block device discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '18'
            section_name: Filters
            label: 'Filter for block device discovery (exclude)'
            description: 'Regex string to exclude discovered block device.'
        - macro: '{$VFS.DEV.READ.AWAIT.WARN}'
          value: '20'
          description: 'The average response time (in ms) of disk read before the trigger fires.'
          config:
            type: TEXT
            priority: '15'
            section_name: Thresholds
            label: 'The average read time (in ms)'
            description: 'Average response time (in ms) of disk read before the trigger fires. No less than 0.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$VFS.DEV.WRITE.AWAIT.WARN}'
          value: '20'
          description: 'The average response time (in ms) of disk write before the trigger fires.'
          config:
            type: TEXT
            priority: '16'
            section_name: Thresholds
            label: 'The average write time (in ms)'
            description: 'Average response time (in ms) of disk write before the trigger fires. No less than 0.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$VFS.FS.FSNAME.MATCHES}'
          value: .+
          description: 'Used for filesystem discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '8'
            section_name: Filters
            label: 'Filter filesystem by name'
            description: 'Regex string to include discovered filesystem by name.'
        - macro: '{$VFS.FS.FSNAME.NOT_MATCHES}'
          value: ^(/dev|/sys|/run|/proc|.+/shm$)
          description: 'Used for filesystem discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '9'
            section_name: Filters
            label: 'Filter filesystem by name (exclude)'
            description: 'Regex string to exclude discovered filesystem by name.'
        - macro: '{$VFS.FS.FSTYPE.MATCHES}'
          value: ^(btrfs|ext2|ext3|ext4|reiser|xfs|ffs|ufs|jfs|jfs2|vxfs|hfs|apfs|refs|ntfs|fat32|zfs)$
          description: 'Used for filesystem discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '10'
            section_name: Filters
            label: 'Filter filesystem by type'
            description: 'Regex string to include discovered filesystem by type.'
        - macro: '{$VFS.FS.FSTYPE.NOT_MATCHES}'
          value: ^\s$
          description: 'Used for filesystem discovery. Can be overridden on the host or linked template level.'
          config:
            type: TEXT
            priority: '11'
            section_name: Filters
            label: 'Filter filesystem by name (exclude)'
            description: 'Regex string to exclude discovered filesystem by type.'
        - macro: '{$VFS.FS.INODE.PFREE.MIN.CRIT}'
          value: '10'
          description: 'The critical threshold of the filesystem metadata utilization.'
          config:
            type: TEXT
            priority: '7'
            section_name: Thresholds
            label: 'Threshold of the filesystem metadata utilization (critical)'
            description: 'Critical threshold of the filesystem metadata utilization. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$VFS.FS.INODE.PFREE.MIN.WARN}'
          value: '20'
          description: 'The warning threshold of the filesystem metadata utilization.'
          config:
            type: TEXT
            priority: '6'
            section_name: Thresholds
            label: 'Threshold of the filesystem metadata utilization'
            description: 'Warning threshold of the filesystem metadata utilization. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$VFS.FS.PUSED.MAX.CRIT}'
          value: '90'
          description: 'The critical threshold of the filesystem utilization.'
          config:
            type: TEXT
            priority: '5'
            section_name: Thresholds
            label: 'Threshold of the filesystem utilization (critical)'
            description: 'Critical threshold of the filesystem utilization. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$VFS.FS.PUSED.MAX.WARN}'
          value: '80'
          description: 'The warning threshold of the filesystem utilization.'
          config:
            type: TEXT
            priority: '4'
            section_name: Thresholds
            label: 'Threshold of the filesystem utilization'
            description: 'Warning threshold of the filesystem utilization. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
      dashboards:
        - uuid: c689ad3115fd46a4b927d1f70ee2e5a4
          name: Filesystems
          pages:
            - name: Overview
              widgets:
                - type: graphprototype
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '3'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'Linux by Zabbix agent'
                        name: 'FS [{#FSTYPE}({#FSNAME})]: Space utilization chart (relative to total)'
                    - type: STRING
                      name: reference
                      value: AAAEB
                - type: graphprototype
                  'y': '5'
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'Linux by Zabbix agent'
                        name: 'FS [{#FSTYPE}({#FSNAME})]: Space usage graph, in % (relative to max available)'
                    - type: STRING
                      name: reference
                      value: AAAEC
        - uuid: 14aa11c326a54ec390d4c209d30cc741
          name: 'Network interfaces'
          pages:
            - name: Overview
              widgets:
                - type: graphprototype
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'Linux by Zabbix agent'
                        name: 'Interface {#IFNAME}: Network traffic'
                    - type: STRING
                      name: reference
                      value: AAAAJ
        - uuid: e9ca2f8e715f428b8edc0129aa0c79de
          name: 'System performance'
          pages:
            - widgets:
                - type: graph
                  width: '36'
                  height: '5'
                  fields:
                    - type: GRAPH
                      name: graphid.0
                      value:
                        host: 'Linux by Zabbix agent'
                        name: 'Linux: System load'
                    - type: STRING
                      name: reference
                      value: AAAAA
                - type: graph
                  'y': '5'
                  width: '36'
                  height: '5'
                  fields:
                    - type: GRAPH
                      name: graphid.0
                      value:
                        host: 'Linux by Zabbix agent'
                        name: 'Linux: Memory usage'
                    - type: STRING
                      name: reference
                      value: AAAAC
                - type: graphprototype
                  'y': '10'
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '3'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'Linux by Zabbix agent'
                        name: 'FS [{#FSTYPE}({#FSNAME})]: Space utilization chart (relative to total)'
                    - type: STRING
                      name: reference
                      value: AAAEA
                - type: graphprototype
                  'y': '15'
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'Linux by Zabbix agent'
                        name: '{#DEVNAME}: Disk read/write rates'
                    - type: STRING
                      name: reference
                      value: AAAAF
                - type: graphprototype
                  'y': '20'
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'Linux by Zabbix agent'
                        name: '{#DEVNAME}: Disk average waiting time'
                    - type: STRING
                      name: reference
                      value: AAAAG
                - type: graphprototype
                  'y': '25'
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'Linux by Zabbix agent'
                        name: '{#DEVNAME}: Disk utilization and queue'
                    - type: STRING
                      name: reference
                      value: AAAAH
                - type: graphprototype
                  'y': '30'
                  width: '72'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: columns
                      value: '1'
                    - type: GRAPH_PROTOTYPE
                      name: graphid.0
                      value:
                        host: 'Linux by Zabbix agent'
                        name: 'Interface {#IFNAME}: Network traffic'
                    - type: STRING
                      name: reference
                      value: AAAAI
                - type: graph
                  x: '36'
                  width: '36'
                  height: '5'
                  fields:
                    - type: GRAPH
                      name: graphid.0
                      value:
                        host: 'Linux by Zabbix agent'
                        name: 'Linux: CPU usage'
                    - type: STRING
                      name: reference
                      value: AAAAB
                - type: graph
                  x: '36'
                  'y': '5'
                  width: '36'
                  height: '5'
                  fields:
                    - type: GRAPH
                      name: graphid.0
                      value:
                        host: 'Linux by Zabbix agent'
                        name: 'Linux: Swap usage'
                    - type: STRING
                      name: reference
                      value: AAAAD
      valuemaps:
        - uuid: 8c048c6cca8248f2860c208e8db0f59e
          name: ifOperStatus
          mappings:
            - value: '0'
              newvalue: unknown
            - value: '1'
              newvalue: notpresent
            - value: '2'
              newvalue: down
            - value: '3'
              newvalue: lowerlayerdown
            - value: '4'
              newvalue: testing
            - value: '5'
              newvalue: dormant
            - value: '6'
              newvalue: up
        - uuid: 044df261808442a8af9e5cda0acaa6a5
          name: 'Linux::Interface protocol types'
          mappings:
            - value: '0'
              newvalue: 'from KA9Q: NET/ROM pseudo'
            - value: '1'
              newvalue: Ethernet
            - value: '2'
              newvalue: 'Experimental Ethernet'
            - value: '3'
              newvalue: 'AX.25 Level 2'
            - value: '4'
              newvalue: 'PROnet token ring'
            - value: '5'
              newvalue: Chaosnet
            - value: '6'
              newvalue: 'IEEE 802.2 Ethernet/TR/TB'
            - value: '7'
              newvalue: ARCnet
            - value: '8'
              newvalue: APPLEtalk
            - value: '15'
              newvalue: 'Frame Relay DLCI'
            - value: '19'
              newvalue: ATM
            - value: '23'
              newvalue: 'Metricom STRIP (new IANA id)'
            - value: '24'
              newvalue: 'IEEE 1394 IPv4 - RFC 2734'
            - value: '27'
              newvalue: EUI-64
            - value: '32'
              newvalue: InfiniBand
            - value: '256'
              newvalue: ARPHRD_SLIP
            - value: '257'
              newvalue: ARPHRD_CSLIP
            - value: '258'
              newvalue: ARPHRD_SLIP6
            - value: '259'
              newvalue: ARPHRD_CSLIP6
            - value: '260'
              newvalue: 'Notional KISS type'
            - value: '264'
              newvalue: ARPHRD_ADAPT
            - value: '270'
              newvalue: ARPHRD_ROSE
            - value: '271'
              newvalue: 'CCITT X.25'
            - value: '272'
              newvalue: 'Boards with X.25 in firmware'
            - value: '280'
              newvalue: 'Controller Area Network'
            - value: '512'
              newvalue: ARPHRD_PPP
            - value: '513'
              newvalue: 'Cisco HDLC'
            - value: '516'
              newvalue: LAPB
            - value: '517'
              newvalue: 'Digital''s DDCMP protocol'
            - value: '518'
              newvalue: 'Raw HDLC'
            - value: '519'
              newvalue: 'Raw IP'
            - value: '768'
              newvalue: 'IPIP tunnel'
            - value: '769'
              newvalue: 'IP6IP6 tunnel'
            - value: '770'
              newvalue: 'Frame Relay Access Device'
            - value: '771'
              newvalue: 'SKIP vif'
            - value: '772'
              newvalue: 'Loopback device'
            - value: '773'
              newvalue: 'Localtalk device'
            - value: '774'
              newvalue: 'Fiber Distributed Data Interface'
            - value: '775'
              newvalue: 'AP1000 BIF'
            - value: '776'
              newvalue: 'sit0 device - IPv6-in-IPv4'
            - value: '777'
              newvalue: 'IP over DDP tunneller'
            - value: '778'
              newvalue: 'GRE over IP'
            - value: '779'
              newvalue: 'PIMSM register interface'
            - value: '780'
              newvalue: 'High Performance Parallel Interface'
            - value: '781'
              newvalue: 'Nexus 64Mbps Ash'
            - value: '782'
              newvalue: 'Acorn Econet'
            - value: '783'
              newvalue: Linux-IrDA
            - value: '784'
              newvalue: 'Point to point fibrechannel'
            - value: '785'
              newvalue: 'Fibrechannel arbitrated loop'
            - value: '786'
              newvalue: 'Fibrechannel public loop'
            - value: '787'
              newvalue: 'Fibrechannel fabric'
            - value: '800'
              newvalue: 'Magic type ident for TR'
            - value: '801'
              newvalue: 'IEEE 802.11'
            - value: '802'
              newvalue: 'IEEE 802.11 + Prism2 header'
            - value: '803'
              newvalue: 'IEEE 802.11 + radiotap header'
            - value: '804'
              newvalue: ARPHRD_IEEE802154
            - value: '805'
              newvalue: 'IEEE 802.15.4 network monitor'
            - value: '820'
              newvalue: 'PhoNet media type'
            - value: '821'
              newvalue: 'PhoNet pipe header'
            - value: '822'
              newvalue: 'CAIF media type'
            - value: '823'
              newvalue: 'GRE over IPv6'
            - value: '824'
              newvalue: 'Netlink header'
            - value: '825'
              newvalue: 'IPv6 over LoWPAN'
            - value: '826'
              newvalue: 'Vsock monitor header'
        - uuid: 5488e5d78d704b78aee60c60414ce0c3
          name: zabbix.host.available
          mappings:
            - value: '0'
              newvalue: 'not available'
            - value: '1'
              newvalue: available
            - value: '2'
              newvalue: unknown
        - uuid: 64faba3a883241a88da8833970ac3ab0
          name: 'Zabbix agent ping status'
          mappings:
            - value: '1'
              newvalue: Up
    - uuid: 79b16cbbe593444eae3de66de0cb566b
      template: 'Remote Zabbix server health'
      name: 'Remote Zabbix server health'
      description: |
        This template is designed to monitor internal Zabbix metrics on the remote Zabbix server.
        
        Specify the address of the remote Zabbix server by changing the {$ZABBIX.SERVER.ADDRESS} and {$ZABBIX.SERVER.PORT} macros. Don't forget to adjust the "StatsAllowedIP" parameter in the remote server's configuration file to allow the collection of statistics.
        
        Generated by official Zabbix template tool "Templator"
      wizard_ready: 'YES'
      readme: |
        ## Overview
        
        This template is designed to monitor internal Zabbix metrics on the remote Zabbix server.
        
        ## Setup
        
        Specify the address of the remote Zabbix server as the values for the `Zabbix server Address` and `Zabbix server Port` configuration fields. Don't forget to adjust the `StatsAllowedIP` parameter in the remote server's configuration file to allow the collection of statistics.
      vendor:
        name: Zabbix
        version: 8.0-2
      groups:
        - name: Templates/Applications
      items:
        - uuid: 94235a52be114cb6a99cfc90834144e7
          name: 'Connector queue'
          type: DEPENDENT
          key: connector_queue
          description: 'The count of values enqueued in the connector queue.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.connector_queue
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "connector" processes started. Please check "StartConnectors" parameter in the server configuration file.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: system
        - uuid: c417ffdf78144a01811935d31e02af69
          name: 'Discovery queue'
          type: DEPENDENT
          key: discovery_queue
          description: 'The count of values enqueued in the discovery queue.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.discovery_queue
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "discoverer" processes started. Please check "StartDiscoverers" parameter in the server configuration file.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: system
        - uuid: adcf44e5179644b0bee34103d3d3688e
          name: 'LLD queue'
          type: DEPENDENT
          key: lld_queue
          description: 'The number of values enqueued in the low-level discovery processing queue.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.lld_queue
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: system
        - uuid: 9881f258f69d459195b5a19c56c523a8
          name: 'Preprocessing queue'
          type: DEPENDENT
          key: preprocessing_queue
          description: 'The number of values enqueued in the preprocessing queue.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.preprocessing.queue
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: system
        - uuid: 68411db7353c44e2baed0b9def5f9ac5
          name: 'Preprocessing direct throughput'
          type: DEPENDENT
          key: preprocessing_throughput_direct
          value_type: FLOAT
          units: Bps
          description: 'Reflects the direct throughput of the preprocessing.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.preprocessing.direct.size
              error_handler: DISCARD_VALUE
            - type: CHANGE_PER_SECOND
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: system
        - uuid: 2f59c93854b746229eea6362c45d2a59
          name: 'Preprocessing queued throughput'
          type: DEPENDENT
          key: preprocessing_throughput_queued
          value_type: FLOAT
          units: Bps
          description: 'Reflects the queued throughput of the preprocessing.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.preprocessing.queued.size
              error_handler: DISCARD_VALUE
            - type: CHANGE_PER_SECOND
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: system
        - uuid: 8bcb650b956542b698b5a6cc9bb18e14
          name: 'Preprocessing direct VPS'
          type: DEPENDENT
          key: preprocessing_vps_direct
          value_type: FLOAT
          units: '!vps'
          description: 'Reflects the count of direct preprocessing values per second.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.preprocessing.direct.count
              error_handler: DISCARD_VALUE
            - type: CHANGE_PER_SECOND
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: system
        - uuid: 394df7f1611949bba82b22416cf06f3e
          name: 'Preprocessing queued VPS'
          type: DEPENDENT
          key: preprocessing_vps_queued
          value_type: FLOAT
          units: '!vps'
          description: 'Reflects the count of queued preprocessing values per second.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.preprocessing.queued.count
              error_handler: DISCARD_VALUE
            - type: CHANGE_PER_SECOND
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: system
        - uuid: f9ce1b8b5b384a7ebbf0a1c6d19948b1
          name: 'Utilization of agent poller data collector processes, in %'
          type: DEPENDENT
          key: process.agent_poller.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the agent poller processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''agent poller''].busy.avg'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "agent poller" processes started.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: f47c5db67da54295950939e7f18ed062
              expression: 'avg(/Remote Zabbix server health/process.agent_poller.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"agent poller"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.agent_poller.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"agent poller"}'
              name: 'Zabbix server: Utilization of agent poller processes is high'
              event_name: 'Zabbix server: Utilization of agent poller processes over {$ZABBIX.SERVER.UTIL.MAX:"agent poller"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the agent poller, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: d8071d9c280c468cb70b19be50c756a5
          name: 'Utilization of alerter internal processes, in %'
          type: DEPENDENT
          key: process.alerter.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the alerter processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''alerter''].busy.avg'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "alerter" processes started.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: d4aae59fe9294da5b1c724b051af1683
              expression: 'avg(/Remote Zabbix server health/process.alerter.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"alerter"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.alerter.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"alerter"}'
              name: 'Zabbix server: Utilization of alerter processes is high'
              event_name: 'Zabbix server: Utilization of alerter processes over {$ZABBIX.SERVER.UTIL.MAX:"alerter"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the alerter, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 14347f8309934849a2ac13974e4b66d1
          name: 'Utilization of alert manager internal processes, in %'
          type: DEPENDENT
          key: process.alert_manager.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the alert manager processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''alert manager''].busy.avg'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "alert manager" processes started.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: 310f33d488ae4f5faa245c96f8dc583c
              expression: 'avg(/Remote Zabbix server health/process.alert_manager.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"alert manager"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.alert_manager.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"alert manager"}'
              name: 'Zabbix server: Utilization of alert manager processes is high'
              event_name: 'Zabbix server: Utilization of alert manager processes over {$ZABBIX.SERVER.UTIL.MAX:"alert manager"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the alert manager, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 236699e6400c4ae3a20868c79fd35027
          name: 'Utilization of alert syncer internal processes, in %'
          type: DEPENDENT
          key: process.alert_syncer.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the alert syncer processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''alert syncer''].busy.avg'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "alert syncer" processes started.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: 0eb23de05fac4aeab4ee4aa337545b16
              expression: 'avg(/Remote Zabbix server health/process.alert_syncer.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"alert syncer"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.alert_syncer.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"alert syncer"}'
              name: 'Zabbix server: Utilization of alert syncer processes is high'
              event_name: 'Zabbix server: Utilization of alert syncer processes over {$ZABBIX.SERVER.UTIL.MAX:"alert syncer"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the alert syncer, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 44ae7bbbca5346a4926bf1208e00deb8
          name: 'Utilization of availability manager internal processes, in %'
          type: DEPENDENT
          key: process.availability_manager.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the availability manager processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''availability manager''].busy.avg'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "availability manager" processes started.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: ae06acfebdb3452b88359f1634c53876
              expression: 'avg(/Remote Zabbix server health/process.availability_manager.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"availability manager"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.availability_manager.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"availability manager"}'
              name: 'Zabbix server: Utilization of availability manager processes is high'
              event_name: 'Zabbix server: Utilization of availability manager processes over {$ZABBIX.SERVER.UTIL.MAX:"availability manager"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the availability manager, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 2270009e1b4c4cbb9cce4001b46df2ce
          name: 'Utilization of browser poller data collector processes, in %'
          type: DEPENDENT
          key: process.browser_poller.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the browser poller processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''browser poller''].busy.avg'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "browser poller" processes started.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: 5c41e353d4a4442d992240214443ee4d
              expression: 'avg(/Remote Zabbix server health/process.browser_poller.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"browser poller"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.browser_poller.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"browser poller"}'
              name: 'Zabbix server: Utilization of browser poller processes is high'
              event_name: 'Zabbix server: Utilization of browser poller processes over {$ZABBIX.SERVER.UTIL.MAX:"browser poller"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the browser poller, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 439e81aed41e4fd7ba7f2e4a97ca1a91
          name: 'Utilization of configuration syncer internal processes, in %'
          type: DEPENDENT
          key: process.configuration_syncer.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the configuration syncer processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''configuration syncer''].busy.avg'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "configuration syncer" processes started.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: f1caa410beea429eb91daaec8f027eb3
              expression: 'avg(/Remote Zabbix server health/process.configuration_syncer.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"configuration syncer"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.configuration_syncer.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"configuration syncer"}'
              name: 'Zabbix server: Utilization of configuration syncer processes is high'
              event_name: 'Zabbix server: Utilization of configuration syncer processes over {$ZABBIX.SERVER.UTIL.MAX:"configuration syncer"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the configuration syncer, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: f8946a8a36774b00a01645ae77228a55
          name: 'Utilization of configuration syncer worker internal processes, in %'
          type: DEPENDENT
          key: process.configuration_syncer_worker.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the configuration syncer worker processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''configuration syncer worker''].busy.avg'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: 4b33128b800f4d1384127b61a7dd7492
              expression: 'avg(/Remote Zabbix server health/process.configuration_syncer_worker.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"configuration syncer worker"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.configuration_syncer_worker.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"configuration syncer worker"}'
              name: 'Zabbix server: Utilization of configuration syncer worker processes is high'
              event_name: 'Zabbix server: Utilization of configuration syncer worker processes over {$ZABBIX.SERVER.UTIL.MAX:"configuration syncer worker"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the configuration syncer worker, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: b7564d4eb40848dbb299e74cd525a07d
          name: 'Utilization of connector manager internal processes, in %'
          type: DEPENDENT
          key: process.connector_manager.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the connector manager processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''connector manager''].busy.avg'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "connector manager" processes started.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: abe4c864b41a4a43b2ce963ed55a3f17
              expression: 'avg(/Remote Zabbix server health/process.connector_manager.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"connector manager"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.connector_manager.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"connector manager"}'
              name: 'Zabbix server: Utilization of connector manager processes is high'
              event_name: 'Zabbix server: Utilization of connector manager processes over {$ZABBIX.SERVER.UTIL.MAX:"connector manager"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the connector manager, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 9a75eee4853a44b1b5087e0fea6c5bcb
          name: 'Utilization of connector worker internal processes, in %'
          type: DEPENDENT
          key: process.connector_worker.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the connector worker processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''connector worker''].busy.avg'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "connector worker" processes started.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: ba984299c08f44b2a99c6fee187bcf01
              expression: 'avg(/Remote Zabbix server health/process.connector_worker.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"connector worker"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.connector_worker.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"connector worker"}'
              name: 'Zabbix server: Utilization of connector worker processes is high'
              event_name: 'Zabbix server: Utilization of connector worker processes over {$ZABBIX.SERVER.UTIL.MAX:"connector worker"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the connector worker, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 09c61eeecc354f2da1a8efcc100d5f5c
          name: 'Utilization of discovery manager internal processes, in %'
          type: DEPENDENT
          key: process.discovery_manager.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the discovery manager processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''discovery manager''].busy.avg'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "discovery manager" processes started.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: 96418e054e834497baffbd9ed0a4f6bf
              expression: 'avg(/Remote Zabbix server health/process.discovery_manager.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"discovery manager"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.discovery_manager.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"discovery manager"}'
              name: 'Zabbix server: Utilization of discovery manager processes is high'
              event_name: 'Zabbix server: Utilization of discovery manager processes over {$ZABBIX.SERVER.UTIL.MAX:"discovery manager"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the discovery manager, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 6bfbac5f75c54f2c87a35f1786ed73e8
          name: 'Utilization of discovery worker internal processes, in %'
          type: DEPENDENT
          key: process.discovery_worker.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the discovery worker processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''discovery worker''].busy.avg'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "discovery worker" processes started.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: fd92a81e2c614aa8826f7ff92fad801a
              expression: 'avg(/Remote Zabbix server health/process.discovery_worker.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"discovery worker"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.discovery_worker.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"discovery worker"}'
              name: 'Zabbix server: Utilization of discovery worker processes is high'
              event_name: 'Zabbix server: Utilization of discovery worker processes over {$ZABBIX.SERVER.UTIL.MAX:"discovery worker"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the discovery worker, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: d8110a23217142b9b10f2eda00a96f39
          name: 'Utilization of escalator internal processes, in %'
          type: DEPENDENT
          key: process.escalator.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the escalator processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''escalator''].busy.avg'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "escalator" processes started.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: de07be1b10d9446abed4a387dd4980dd
              expression: 'avg(/Remote Zabbix server health/process.escalator.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"escalator"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.escalator.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"escalator"}'
              name: 'Zabbix server: Utilization of escalator processes is high'
              event_name: 'Zabbix server: Utilization of escalator processes over {$ZABBIX.SERVER.UTIL.MAX:"escalator"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the escalator, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: edefe2732df14bc3933b8e1ff65fbd21
          name: 'Utilization of history poller internal processes, in %'
          type: DEPENDENT
          key: process.history_poller.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the history poller processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''history poller''].busy.avg'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "history poller" processes started.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: 655c59a6151d4ce985a833d9f91efc2a
              expression: 'avg(/Remote Zabbix server health/process.history_poller.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"history poller"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.history_poller.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"history poller"}'
              name: 'Zabbix server: Utilization of history poller processes is high'
              event_name: 'Zabbix server: Utilization of history poller processes over {$ZABBIX.SERVER.UTIL.MAX:"history poller"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the history poller, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 2b651866c6f04880888a770e9a08a167
          name: 'Utilization of history syncer internal processes, in %'
          type: DEPENDENT
          key: process.history_syncer.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the history syncer processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''history syncer''].busy.avg'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "history syncer" processes started.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: b8e6a6ce3667459bad05afa850e99bc0
              expression: 'avg(/Remote Zabbix server health/process.history_syncer.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"history syncer"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.history_syncer.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"history syncer"}'
              name: 'Zabbix server: Utilization of history syncer processes is high'
              event_name: 'Zabbix server: Utilization of history syncer processes over {$ZABBIX.SERVER.UTIL.MAX:"history syncer"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the history syncer, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 8eb5b40740a349fbb14ed39dd840fc85
          name: 'Utilization of housekeeper internal processes, in %'
          type: DEPENDENT
          key: process.housekeeper.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the housekeeper processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''housekeeper''].busy.avg'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "housekeeper" processes started.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: b879623a755e4b79972c2ad3189886a2
              expression: 'avg(/Remote Zabbix server health/process.housekeeper.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"housekeeper"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.housekeeper.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"housekeeper"}'
              name: 'Zabbix server: Utilization of housekeeper processes is high'
              event_name: 'Zabbix server: Utilization of housekeeper processes over {$ZABBIX.SERVER.UTIL.MAX:"housekeeper"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the housekeeper, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 1d0a012bf32d43e2b7af6307dd0bf39f
          name: 'Utilization of http agent poller data collector processes, in %'
          type: DEPENDENT
          key: process.http_agent_poller.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the http agent poller processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''http agent poller''].busy.avg'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "http agent poller" processes started.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: 79604a0e6fe040b391f00d97ad11f56c
              expression: 'avg(/Remote Zabbix server health/process.http_agent_poller.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"http agent poller"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.http_agent_poller.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"http agent poller"}'
              name: 'Zabbix server: Utilization of http agent poller processes is high'
              event_name: 'Zabbix server: Utilization of http agent poller processes over {$ZABBIX.SERVER.UTIL.MAX:"http agent poller"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the http agent poller, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 02371dc53214403dbf34ff9e970408ef
          name: 'Utilization of http poller data collector processes, in %'
          type: DEPENDENT
          key: process.http_poller.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the http poller processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''http poller''].busy.avg'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "http poller" processes started.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: f7b4217cdd4b46b1949a5e6ac5fc3d02
              expression: 'avg(/Remote Zabbix server health/process.http_poller.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"http poller"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.http_poller.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"http poller"}'
              name: 'Zabbix server: Utilization of http poller processes is high'
              event_name: 'Zabbix server: Utilization of http poller processes over {$ZABBIX.SERVER.UTIL.MAX:"http poller"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the http poller, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 3a2dfedfac164b69a01105137eefd5e9
          name: 'Utilization of icmp pinger data collector processes, in %'
          type: DEPENDENT
          key: process.icmp_pinger.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the icmp pinger processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''icmp pinger''].busy.avg'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "icmp pinger" processes started.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: 312d404ff20740f38385ebe7c3e36d8f
              expression: 'avg(/Remote Zabbix server health/process.icmp_pinger.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"icmp pinger"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.icmp_pinger.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"icmp pinger"}'
              name: 'Zabbix server: Utilization of icmp pinger processes is high'
              event_name: 'Zabbix server: Utilization of icmp pinger processes over {$ZABBIX.SERVER.UTIL.MAX:"icmp pinger"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the icmp pinger, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: c8257547b30e424b9b6893896b2d8dd7
          name: 'Utilization of internal poller data collector processes, in %'
          type: DEPENDENT
          key: process.internal_poller.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the internal poller processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''internal poller''].busy.avg'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "internal poller" processes started.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: a84501d9e5b74b4990a896f8719b980d
              expression: 'avg(/Remote Zabbix server health/process.internal_poller.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"internal poller"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.internal_poller.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"internal poller"}'
              name: 'Zabbix server: Utilization of internal poller processes is high'
              event_name: 'Zabbix server: Utilization of internal poller processes over {$ZABBIX.SERVER.UTIL.MAX:"internal poller"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the internal poller, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 52a05106bc5e4e05b04142827f394662
          name: 'Utilization of ipmi manager internal processes, in %'
          type: DEPENDENT
          key: process.ipmi_manager.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the ipmi manager processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''ipmi manager''].busy.avg'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "ipmi manager" processes started.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: 3fe728ab8de9447c899b2a919b885cec
              expression: 'avg(/Remote Zabbix server health/process.ipmi_manager.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"ipmi manager"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.ipmi_manager.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"ipmi manager"}'
              name: 'Zabbix server: Utilization of ipmi manager processes is high'
              event_name: 'Zabbix server: Utilization of ipmi manager processes over {$ZABBIX.SERVER.UTIL.MAX:"ipmi manager"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the ipmi manager, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 849f8b11cc984c758c4947fe256e3310
          name: 'Utilization of ipmi poller data collector processes, in %'
          type: DEPENDENT
          key: process.ipmi_poller.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the ipmi poller processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''ipmi poller''].busy.avg'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "ipmi poller" processes started.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: dbf27d6a629a4a2cb75e04849b93ac0f
              expression: 'avg(/Remote Zabbix server health/process.ipmi_poller.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"ipmi poller"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.ipmi_poller.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"ipmi poller"}'
              name: 'Zabbix server: Utilization of ipmi poller processes is high'
              event_name: 'Zabbix server: Utilization of ipmi poller processes over {$ZABBIX.SERVER.UTIL.MAX:"ipmi poller"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the ipmi poller, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: e55654715f8143c597c858d7eb522e31
          name: 'Utilization of java poller data collector processes, in %'
          type: DEPENDENT
          key: process.java_poller.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the java poller processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''java poller''].busy.avg'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "java poller" processes started.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: 304a2dcf77c8494fb18f52cc6bae73a9
              expression: 'avg(/Remote Zabbix server health/process.java_poller.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"java poller"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.java_poller.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"java poller"}'
              name: 'Zabbix server: Utilization of java poller processes is high'
              event_name: 'Zabbix server: Utilization of java poller processes over {$ZABBIX.SERVER.UTIL.MAX:"java poller"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the java poller, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: b8504e03317649399dabfffc2758d77c
          name: 'Utilization of LLD manager internal processes, in %'
          type: DEPENDENT
          key: process.lld_manager.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the LLD manager processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''lld manager''].busy.avg'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "LLD manager" processes started.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: 4027f813da2549cfb99e1bb5e04e1d28
              expression: 'avg(/Remote Zabbix server health/process.lld_manager.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"LLD manager"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.lld_manager.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"LLD manager"}'
              name: 'Zabbix server: Utilization of LLD manager processes is high'
              event_name: 'Zabbix server: Utilization of LLD manager processes over {$ZABBIX.SERVER.UTIL.MAX:"LLD manager"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the LLD manager, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: c4d708a59d314de6814f4936ec6b0a99
          name: 'Utilization of LLD worker internal processes, in %'
          type: DEPENDENT
          key: process.lld_worker.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the LLD worker processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''lld worker''].busy.avg'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "LLD worker" processes started.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: ef1e836e906e4cf79b9fc8a11818c0a6
              expression: 'avg(/Remote Zabbix server health/process.lld_worker.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"LLD worker"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.lld_worker.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"LLD worker"}'
              name: 'Zabbix server: Utilization of LLD worker processes is high'
              event_name: 'Zabbix server: Utilization of LLD worker processes over {$ZABBIX.SERVER.UTIL.MAX:"LLD worker"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the LLD worker, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 8a21a0281ae24e0788edc8c9b875a421
          name: 'Utilization of ODBC poller data collector processes, in %'
          type: DEPENDENT
          key: process.odbc_poller.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the ODBC poller processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''odbc poller''].busy.avg'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'Processes odbc poller not started'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: eadd70080005430c8b11666d7e93a095
              expression: 'avg(/Remote Zabbix server health/process.odbc_poller.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"ODBC poller"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.odbc_poller.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"ODBC poller"}'
              name: 'Zabbix server: Utilization of ODBC poller processes is high'
              event_name: 'Zabbix server: Utilization of ODBC poller processes over {$ZABBIX.SERVER.UTIL.MAX:"ODBC poller"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the ODBC poller, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 61df12fa054b46f4b50596807dbc90c3
          name: 'Utilization of poller data collector processes, in %'
          type: DEPENDENT
          key: process.poller.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the poller processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''poller''].busy.avg'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "poller" processes started.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: 689ed5dd9bbd4873a825dfa675378d50
              expression: 'avg(/Remote Zabbix server health/process.poller.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"poller"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.poller.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"poller"}'
              name: 'Zabbix server: Utilization of poller processes is high'
              event_name: 'Zabbix server: Utilization of poller processes over {$ZABBIX.SERVER.UTIL.MAX:"poller"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the poller, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 42e9efb8e5e54b26b84372dc53e823b3
          name: 'Utilization of preprocessing manager internal processes, in %'
          type: DEPENDENT
          key: process.preprocessing_manager.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the preprocessing manager processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''preprocessing manager''].busy.avg'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "preprocessing manager" processes started.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: b43f04a35e17415bb81bfb59357d45ac
              expression: 'avg(/Remote Zabbix server health/process.preprocessing_manager.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"preprocessing manager"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.preprocessing_manager.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"preprocessing manager"}'
              name: 'Zabbix server: Utilization of preprocessing manager processes is high'
              event_name: 'Zabbix server: Utilization of preprocessing manager processes over {$ZABBIX.SERVER.UTIL.MAX:"preprocessing manager"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the preprocessing manager, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 90bd4b46d63845b98a2c430aac157ea5
          name: 'Utilization of preprocessing worker internal processes, in %'
          type: DEPENDENT
          key: process.preprocessing_worker.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the preprocessing worker processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''preprocessing worker''].busy.avg'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "preprocessing worker" processes started.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: 1c28310eb72047449437ee94854029fa
              expression: 'avg(/Remote Zabbix server health/process.preprocessing_worker.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"preprocessing worker"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.preprocessing_worker.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"preprocessing worker"}'
              name: 'Zabbix server: Utilization of preprocessing worker processes is high'
              event_name: 'Zabbix server: Utilization of preprocessing worker processes over {$ZABBIX.SERVER.UTIL.MAX:"preprocessing worker"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the preprocessing worker, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: c75afd4bc7794328a96ac261dc4776aa
          name: 'Utilization of proxy group manager internal processes, in %'
          type: DEPENDENT
          key: process.proxy_group_manager.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the proxy group manager processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''proxy group manager''].busy.avg'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: 06bdef8b23c3459c99e180afdb1a8b2c
              expression: 'avg(/Remote Zabbix server health/process.proxy_group_manager.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"proxy group manager"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.proxy_group_manager.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"proxy group manager"}'
              name: 'Zabbix server: Utilization of proxy group manager processes is high'
              event_name: 'Zabbix server: Utilization of proxy group manager processes over {$ZABBIX.SERVER.UTIL.MAX:"proxy group manager"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the proxy group manager, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 4c5eb5acc8a447afa47d732988dafbd9
          name: 'Utilization of proxy poller data collector processes, in %'
          type: DEPENDENT
          key: process.proxy_poller.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the proxy poller processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''proxy poller''].busy.avg'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "proxy poller" processes started.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: c0d2c7c008cb45ee8b032b7c83018ae1
              expression: 'avg(/Remote Zabbix server health/process.proxy_poller.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"proxy poller"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.proxy_poller.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"proxy poller"}'
              name: 'Zabbix server: Utilization of proxy poller processes is high'
              event_name: 'Zabbix server: Utilization of proxy poller processes over {$ZABBIX.SERVER.UTIL.MAX:"proxy poller"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the proxy poller, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 032c86725d7d479e8e0a8cf0ea14b349
          name: 'Utilization of report manager internal processes, in %'
          type: DEPENDENT
          key: process.report_manager.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the report manager processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''report manager''].busy.avg'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "report manager" processes started.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: 32d6f18edd5a45e1999f294f227c600f
              expression: 'avg(/Remote Zabbix server health/process.report_manager.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"report manager"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.report_manager.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"report manager"}'
              name: 'Zabbix server: Utilization of report manager processes is high'
              event_name: 'Zabbix server: Utilization of report manager processes over {$ZABBIX.SERVER.UTIL.MAX:"report manager"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the report manager, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 0a91377a6d5a460aa716164b201db6c0
          name: 'Utilization of report writer internal processes, in %'
          type: DEPENDENT
          key: process.report_writer.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the report writer processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''report writer''].busy.avg'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "report writer" processes started.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: 83fa871d54f74c89a7c85d429d40da53
              expression: 'avg(/Remote Zabbix server health/process.report_writer.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"report writer"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.report_writer.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"report writer"}'
              name: 'Zabbix server: Utilization of report writer processes is high'
              event_name: 'Zabbix server: Utilization of report writer processes over {$ZABBIX.SERVER.UTIL.MAX:"report writer"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the report writer, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 044bb995bcae42568979fd958383fc60
          name: 'Utilization of self-monitoring internal processes, in %'
          type: DEPENDENT
          key: process.self-monitoring.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the self-monitoring processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''self-monitoring''].busy.avg'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "self-monitoring" processes started.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: 0d9b8d1f2d7d454ab472320ac172252c
              expression: 'avg(/Remote Zabbix server health/process.self-monitoring.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"self-monitoring"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.self-monitoring.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"self-monitoring"}'
              name: 'Zabbix server: Utilization of self-monitoring processes is high'
              event_name: 'Zabbix server: Utilization of self-monitoring processes over {$ZABBIX.SERVER.UTIL.MAX:"self-monitoring"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the self-monitoring, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 99da1d8bd47447d282542d40c1edea00
          name: 'Utilization of service manager internal processes, in %'
          type: DEPENDENT
          key: process.service_manager.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the service manager processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''service manager''].busy.avg'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "service manager" processes started.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: 001c9e2027ca4e7c8f5dc5b78681c573
              expression: 'avg(/Remote Zabbix server health/process.service_manager.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"service manager"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.service_manager.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"service manager"}'
              name: 'Zabbix server: Utilization of service manager processes is high'
              event_name: 'Zabbix server: Utilization of service manager processes over {$ZABBIX.SERVER.UTIL.MAX:"service manager"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the service manager, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: faec2628848140549aa8cb1cb247b4ea
          name: 'Utilization of snmp poller data collector processes, in %'
          type: DEPENDENT
          key: process.snmp_poller.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the snmp poller processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''snmp poller''].busy.avg'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "snmp poller" processes started.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: 18407657b6a647e292a3625180ccb313
              expression: 'avg(/Remote Zabbix server health/process.snmp_poller.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"snmp poller"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.snmp_poller.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"snmp poller"}'
              name: 'Zabbix server: Utilization of snmp poller processes is high'
              event_name: 'Zabbix server: Utilization of snmp poller processes over {$ZABBIX.SERVER.UTIL.MAX:"snmp poller"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the snmp poller, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 643036d74a10414f94dc357efbbd42b2
          name: 'Utilization of snmp trapper data collector processes, in %'
          type: DEPENDENT
          key: process.snmp_trapper.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the snmp trapper processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''snmp trapper''].busy.avg'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "snmp trapper" processes started.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: 4726331c52284261aa3f347448c1c3c5
              expression: 'avg(/Remote Zabbix server health/process.snmp_trapper.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"snmp trapper"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.snmp_trapper.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"snmp trapper"}'
              name: 'Zabbix server: Utilization of snmp trapper processes is high'
              event_name: 'Zabbix server: Utilization of snmp trapper processes over {$ZABBIX.SERVER.UTIL.MAX:"snmp trapper"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the snmp trapper, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 7fad0515db154228b5baabb51d647a9f
          name: 'Utilization of task manager internal processes, in %'
          type: DEPENDENT
          key: process.task_manager.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the task manager processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''task manager''].busy.avg'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "task manager" processes started.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: 07d29e82b74a4cc5b0d701458af302b7
              expression: 'avg(/Remote Zabbix server health/process.task_manager.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"task manager"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.task_manager.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"task manager"}'
              name: 'Zabbix server: Utilization of task manager processes is high'
              event_name: 'Zabbix server: Utilization of task manager processes over {$ZABBIX.SERVER.UTIL.MAX:"task manager"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the task manager, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 105eae2d56d34d91b540f93009a575aa
          name: 'Utilization of timer internal processes, in %'
          type: DEPENDENT
          key: process.timer.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the timer processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''timer''].busy.avg'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "timer" processes started.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: 72f3b3f143a94f5a9b4b2c509425954e
              expression: 'avg(/Remote Zabbix server health/process.timer.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"timer"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.timer.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"timer"}'
              name: 'Zabbix server: Utilization of timer processes is high'
              event_name: 'Zabbix server: Utilization of timer processes over {$ZABBIX.SERVER.UTIL.MAX:"timer"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the timer, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 9c90b3a087e1495caa17a00bebb70145
          name: 'Utilization of trapper data collector processes, in %'
          type: DEPENDENT
          key: process.trapper.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the trapper processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''trapper''].busy.avg'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "trapper" processes started.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: d31285f177224c4cb570373f6a730019
              expression: 'avg(/Remote Zabbix server health/process.trapper.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"trapper"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.trapper.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"trapper"}'
              name: 'Zabbix server: Utilization of trapper processes is high'
              event_name: 'Zabbix server: Utilization of trapper processes over {$ZABBIX.SERVER.UTIL.MAX:"trapper"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the trapper, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 56dca0db33264d4b9c8fd769fbdff7b5
          name: 'Utilization of trigger housekeeper internal processes, in %'
          type: DEPENDENT
          key: process.trigger_housekeeper.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the trigger housekeeper processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''trigger housekeeper''].busy.avg'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "trigger housekeeper" processes started.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: 9c0daf6e85884122aa8c5b8432709c92
              expression: 'avg(/Remote Zabbix server health/process.trigger_housekeeper.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"trigger housekeeper"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.trigger_housekeeper.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"trigger housekeeper"}'
              name: 'Zabbix server: Utilization of trigger housekeeper processes is high'
              event_name: 'Zabbix server: Utilization of trigger housekeeper processes over {$ZABBIX.SERVER.UTIL.MAX:"trigger housekeeper"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the trigger housekeeper, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 8d43954f6b9843009353c560a4f84157
          name: 'Utilization of unreachable poller data collector processes, in %'
          type: DEPENDENT
          key: process.unreachable_poller.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the unreachable poller processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''unreachable poller''].busy.avg'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "unreachable poller" processes started.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: d254ccddc7dd4e1ebf1eaa5113270e85
              expression: 'avg(/Remote Zabbix server health/process.unreachable_poller.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"unreachable poller"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.unreachable_poller.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"unreachable poller"}'
              name: 'Zabbix server: Utilization of unreachable poller processes is high'
              event_name: 'Zabbix server: Utilization of unreachable poller processes over {$ZABBIX.SERVER.UTIL.MAX:"unreachable poller"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the unreachable poller, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 9f02a181362b42b882d869353fae93ce
          name: 'Utilization of vmware collector data collector processes, in %'
          type: DEPENDENT
          key: process.vmware_collector.avg.busy
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the vmware collector processes have been busy for the last minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.process[''vmware collector''].busy.avg'
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "vmware collector" processes started.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: 5929cfbe23494a41a20a4c05854f9578
              expression: 'avg(/Remote Zabbix server health/process.vmware_collector.avg.busy,10m)>{$ZABBIX.SERVER.UTIL.MAX:"vmware collector"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Remote Zabbix server health/process.vmware_collector.avg.busy,10m)<{$ZABBIX.SERVER.UTIL.MIN:"vmware collector"}'
              name: 'Zabbix server: Utilization of vmware collector processes is high'
              event_name: 'Zabbix server: Utilization of vmware collector processes over {$ZABBIX.SERVER.UTIL.MAX:"vmware collector"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the vmware collector, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 750964513e1d44d7b138980d6cac2188
          name: 'Configuration cache, % used'
          type: DEPENDENT
          key: rcache.buffer.pused
          value_type: FLOAT
          units: '%'
          description: 'The availability statistics of Zabbix configuration cache. The percentage of used data buffer.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.rcache.pused
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: 9d5f36b486ab4781a5f58210143785e9
              expression: 'max(/Remote Zabbix server health/rcache.buffer.pused,10m)>{$ZABBIX.SERVER.UTIL.MAX:"configuration cache"}'
              name: 'Zabbix server: Excessive configuration cache usage'
              event_name: 'Zabbix server: More than {$ZABBIX.SERVER.UTIL.MAX:"configuration cache"}% used in the configuration cache'
              priority: AVERAGE
              description: 'Consider increasing `CacheSize` in the `zabbix_server.conf` configuration file.'
              tags:
                - tag: scope
                  value: capacity
                - tag: scope
                  value: performance
            - uuid: 07fbcbe743f84727838c982a51d36441
              expression: 'nodata(/Remote Zabbix server health/rcache.buffer.pused,{$ZABBIX.SERVER.NODATA_TIMEOUT})=1'
              name: 'Zabbix server: Failed to fetch stats data'
              event_name: 'Zabbix server: Failed to fetch stats data (or no data for {$ZABBIX.SERVER.NODATA_TIMEOUT})'
              priority: WARNING
              description: 'Zabbix has not received statistics data for `{$ZABBIX.SERVER.NODATA_TIMEOUT}`.'
              tags:
                - tag: scope
                  value: availability
        - uuid: b6f47aa7b1b7407da7acd634a9859038
          name: 'Zabbix server check'
          type: DEPENDENT
          key: server_check
          trends: '0'
          description: 'Flag indicating whether it is a server or not.'
          valuemap:
            name: 'Zabbix server check'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.triggers
              error_handler: CUSTOM_VALUE
              error_handler_params: '0'
            - type: IN_RANGE
              parameters:
                - ''
                - '0'
              error_handler: CUSTOM_VALUE
              error_handler_params: '1'
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: 49e7153a96e74b60aad73cd91a792098
              expression: 'last(/Remote Zabbix server health/server_check)=0'
              name: 'Zabbix server: Wrong template assigned'
              event_name: 'Zabbix server: Zabbix server template is assigned to Zabbix proxy'
              priority: DISASTER
              description: 'Check that the template has been selected correctly.'
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: notice
        - uuid: 1625b3470fbf4bd7aa5b7051e328b37c
          name: 'Trend function cache, % of unique requests'
          type: DEPENDENT
          key: tcache.pitems
          value_type: FLOAT
          units: '%'
          description: |
            The effectiveness statistics of the Zabbix trend function cache. The percentage of cached items calculated from the sum of the cached items plus requests.
            A low percentage most likely means that the cache size can be reduced.
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.tcache.pitems
              error_handler: CUSTOM_ERROR
              error_handler_params: 'Not supported in this version.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: system
        - uuid: 2c8bf95e97dd48679e34591c72626c90
          name: 'Trend function cache, % of misses'
          type: DEPENDENT
          key: tcache.pmisses
          value_type: FLOAT
          units: '%'
          description: 'The effectiveness statistics of the Zabbix trend function cache. The percentage of cache misses.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.tcache.pmisses
              error_handler: CUSTOM_ERROR
              error_handler_params: 'Not supported in this version.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: system
        - uuid: 9f9d8d1fcd08498698e37b5889502b47
          name: 'Value cache, % used'
          type: DEPENDENT
          key: vcache.buffer.pused
          value_type: FLOAT
          units: '%'
          description: 'The availability statistics of Zabbix value cache. The percentage of used data buffer.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.vcache.buffer.pused
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: d35671cd02034aeba3c7c71ed618f4ee
              expression: 'max(/Remote Zabbix server health/vcache.buffer.pused,10m)>{$ZABBIX.SERVER.UTIL.MAX:"value cache"}'
              name: 'Zabbix server: Excessive value cache usage'
              event_name: 'Zabbix server: More than {$ZABBIX.SERVER.UTIL.MAX:"value cache"}% used in the value cache'
              priority: AVERAGE
              description: 'Consider increasing `ValueCacheSize` in the `zabbix_server.conf` configuration file.'
              tags:
                - tag: scope
                  value: capacity
                - tag: scope
                  value: performance
        - uuid: 9bd0079126974bf2a61f552de2cdf880
          name: 'Value cache hits'
          type: DEPENDENT
          key: vcache.cache.hits
          value_type: FLOAT
          units: '!vps'
          description: 'The effectiveness statistics of Zabbix value cache. The number of cache hits (history values taken from the cache).'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.vcache.cache.hits
            - type: CHANGE_PER_SECOND
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: system
        - uuid: e8c372778d4e434e98d3fba5ea603a50
          name: 'Value cache misses'
          type: DEPENDENT
          key: vcache.cache.misses
          value_type: FLOAT
          units: '!vps'
          description: 'The effectiveness statistics of Zabbix value cache. The number of cache misses (history values taken from the database).'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.vcache.cache.misses
            - type: CHANGE_PER_SECOND
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: system
        - uuid: 1a1daeb7267f4ed4bf75c70699d487b6
          name: 'Value cache operating mode'
          type: DEPENDENT
          key: vcache.cache.mode
          units: '!vps'
          description: 'The operating mode of the value cache.'
          valuemap:
            name: 'Value cache operating mode'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.vcache.cache.mode
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: 95e8823159fc4baeb13d656be176ac16
              expression: 'last(/Remote Zabbix server health/vcache.cache.mode)=1'
              name: 'Zabbix server: Zabbix value cache working in low-memory mode'
              priority: HIGH
              description: 'Once low-memory mode has been switched on, the value cache will remain in this state for 24 hours, even if the problem that triggered this mode is resolved sooner.'
              tags:
                - tag: scope
                  value: capacity
                - tag: scope
                  value: performance
        - uuid: f0eab81aaf464b809ea4d487548e57c6
          name: Version
          type: DEPENDENT
          key: version
          value_type: CHAR
          description: 'The version of Zabbix server.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.version
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: 93a52f22c79b40539fcd3a26183daad9
              expression: 'last(/Remote Zabbix server health/version,#1)<>last(/Remote Zabbix server health/version,#2) and length(last(/Remote Zabbix server health/version))>0'
              name: 'Zabbix server: Version has changed'
              event_name: 'Zabbix server: Version has changed (new version: {ITEM.VALUE})'
              priority: INFO
              description: 'Zabbix server version has changed. Acknowledge to close the problem manually.'
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: notice
        - uuid: 9e2b2133916e4ce29ed4e9ca07c74123
          name: 'VMware cache, % used'
          type: DEPENDENT
          key: vmware.buffer.pused
          value_type: FLOAT
          units: '%'
          description: 'The availability statistics of Zabbix vmware cache. The percentage of used data buffer.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.vmware.pused
              error_handler: CUSTOM_ERROR
              error_handler_params: 'No "vmware collector" processes started.'
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: 08e6c62dd52b4a0694be910c4f4fa997
              expression: 'max(/Remote Zabbix server health/vmware.buffer.pused,10m)>{$ZABBIX.SERVER.UTIL.MAX:"vmware cache"}'
              name: 'Zabbix server: Excessive vmware cache usage'
              event_name: 'Zabbix server: More than {$ZABBIX.SERVER.UTIL.MAX:"vmware cache"}% used in the vmware cache'
              priority: AVERAGE
              description: 'Consider increasing `VMwareCacheSize` in the `zabbix_server.conf` configuration file.'
              tags:
                - tag: scope
                  value: capacity
                - tag: scope
                  value: performance
        - uuid: 850743f411d9458cbf5d6de410d15edc
          name: 'Number of values synchronized with the database per second'
          type: DEPENDENT
          key: vps.written
          value_type: FLOAT
          units: '!vps'
          description: 'Average quantity of values written to the database, recalculated once per minute.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.vps.written_total
            - type: CHANGE_PER_SECOND
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: nvps
            - tag: component
              value: system
        - uuid: 98f47a07e2ba4294a9eb2aa1df2ba9f3
          name: 'History write cache, % used'
          type: DEPENDENT
          key: wcache.history.pused
          value_type: FLOAT
          units: '%'
          description: |
            The statistics and availability of Zabbix write cache. The percentage of used history buffer.
            The history cache is used to store item values. A high number indicates database performance problems.
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.wcache.history.pused
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: a66914bd7f2e4442a8b555deacebb4c9
              expression: 'max(/Remote Zabbix server health/wcache.history.pused,10m)>{$ZABBIX.SERVER.UTIL.MAX:"history cache"}'
              name: 'Zabbix server: Excessive history cache usage'
              event_name: 'Zabbix server: More than {$ZABBIX.SERVER.UTIL.MAX:"history cache"}% used in the history cache'
              priority: AVERAGE
              description: 'Consider increasing `HistoryCacheSize` in the `zabbix_server.conf` configuration file.'
              tags:
                - tag: scope
                  value: capacity
                - tag: scope
                  value: performance
        - uuid: b1add70210a44b668f06cc3e062173ad
          name: 'History index cache, % used'
          type: DEPENDENT
          key: wcache.index.pused
          value_type: FLOAT
          units: '%'
          description: |
            The statistics and availability of Zabbix write cache. The percentage of used history index buffer.
            The history index cache is used to index values stored in the history cache.
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.wcache.index.pused
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: 6aedbc1768ed4f949890248af98fdaa2
              expression: 'max(/Remote Zabbix server health/wcache.index.pused,10m)>{$ZABBIX.SERVER.UTIL.MAX:"index cache"}'
              name: 'Zabbix server: Excessive history index cache usage'
              event_name: 'Zabbix server: More than {$ZABBIX.SERVER.UTIL.MAX:"index cache"}% used in the history index cache'
              priority: AVERAGE
              description: 'Consider increasing `HistoryIndexCacheSize` in the `zabbix_server.conf` configuration file.'
              tags:
                - tag: scope
                  value: capacity
                - tag: scope
                  value: performance
        - uuid: 1f79208bb2ec4e4eb26e6e1b95c3635e
          name: 'Trend write cache, % used'
          type: DEPENDENT
          key: wcache.trend.pused
          value_type: FLOAT
          units: '%'
          description: |
            The statistics and availability of Zabbix write cache. The percentage of used trend buffer.
            The trend cache stores the aggregate of all items that have received data for the current hour.
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.wcache.trend.pused
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: 742a4938fdd24026921b375a67cea921
              expression: 'max(/Remote Zabbix server health/wcache.trend.pused,10m)>{$ZABBIX.SERVER.UTIL.MAX:"trend cache"}'
              name: 'Zabbix server: Excessive trends cache usage'
              event_name: 'Zabbix server: More than {$ZABBIX.SERVER.UTIL.MAX:"trend cache"}% used in the trends cache'
              priority: AVERAGE
              description: 'Consider increasing `TrendCacheSize` in the `zabbix_server.conf` configuration file.'
              tags:
                - tag: scope
                  value: capacity
                - tag: scope
                  value: performance
        - uuid: 34fe014843974248a98a45596ce43e1a
          name: 'Number of processed values per second'
          type: DEPENDENT
          key: wcache.values
          value_type: FLOAT
          units: '!vps'
          description: |
            The statistics and availability of Zabbix write cache.
            The total number of values processed by Zabbix server or Zabbix proxy, except unsupported items.
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.wcache.values.all
            - type: CHANGE_PER_SECOND
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: nvps
            - tag: component
              value: system
        - uuid: 206f4fcb1e6d4e468a172e330f56b8aa
          name: 'Number of processed numeric (float) values per second'
          type: DEPENDENT
          key: wcache.values.float
          value_type: FLOAT
          units: '!vps'
          description: |
            The statistics and availability of Zabbix write cache.
            The number of processed numeric (float) values.
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.wcache.values.float
            - type: CHANGE_PER_SECOND
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: nvps
            - tag: component
              value: system
        - uuid: e2f3dc320d54446b80862eabe6fa0be5
          name: 'Number of processed log values per second'
          type: DEPENDENT
          key: wcache.values.log
          value_type: FLOAT
          units: '!vps'
          description: |
            The statistics and availability of Zabbix write cache.
            The number of processed log values.
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.wcache.values.log
            - type: CHANGE_PER_SECOND
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: nvps
            - tag: component
              value: system
        - uuid: 82e088caf6e14c1cab700ad7fcc96263
          name: 'Number of processed not supported values per second'
          type: DEPENDENT
          key: wcache.values.not_supported
          value_type: FLOAT
          units: '!vps'
          description: |
            The statistics and availability of Zabbix write cache.
            The number of times the item processing resulted in an item becoming unsupported or remaining in that state.
          preprocessing:
            - type: JSONPATH
              parameters:
                - '$.data.wcache.values[''not supported'']'
            - type: CHANGE_PER_SECOND
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: nvps
            - tag: component
              value: system
        - uuid: 99415cd1920a4e7f8b99f3c71e7eba97
          name: 'Number of processed character values per second'
          type: DEPENDENT
          key: wcache.values.str
          value_type: FLOAT
          units: '!vps'
          description: |
            The statistics and availability of Zabbix write cache.
            The number of processed character values.
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.wcache.values.str
            - type: CHANGE_PER_SECOND
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: nvps
            - tag: component
              value: system
        - uuid: 7172378f31a44a36a095a2c2afed763b
          name: 'Number of processed text values per second'
          type: DEPENDENT
          key: wcache.values.text
          value_type: FLOAT
          units: '!vps'
          description: |
            The statistics and availability of Zabbix write cache.
            The number of processed text values.
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.wcache.values.text
            - type: CHANGE_PER_SECOND
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: nvps
            - tag: component
              value: system
        - uuid: 7865ba7a928945f4a148acf623b72537
          name: 'Number of processed numeric (unsigned) values per second'
          type: DEPENDENT
          key: wcache.values.uint
          value_type: FLOAT
          units: '!vps'
          description: |
            The statistics and availability of Zabbix write cache.
            The number of processed numeric (unsigned) values.
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.wcache.values.uint
            - type: CHANGE_PER_SECOND
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: nvps
            - tag: component
              value: system
        - uuid: 1e6a7ebfc0de47fd823ff59458317172
          name: 'Zabbix proxies stats'
          type: DEPENDENT
          key: zabbix.proxies.stats
          history: '0'
          value_type: TEXT
          description: 'The master item of Zabbix proxies'' statistics.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.proxy
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          tags:
            - tag: component
              value: raw
        - uuid: 95c8bab7640a4227b8ce6cac06e1a08b
          name: 'Queue over 10 minutes'
          type: INTERNAL
          key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT},queue,10m]'
          description: 'The number of monitored items in the queue that are delayed by at least 10 minutes.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.queue
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: c8eddec1bb9740bb8ca05f74bd023fcc
              expression: 'min(/Remote Zabbix server health/zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT},queue,10m],10m)>100'
              name: 'Zabbix server: More than 100 items have been missing data for over 10 minutes'
              priority: WARNING
              description: 'Indicates potential issues with network connectivity, agent failures, or unresponsive monitored resources that require attention.'
              tags:
                - tag: scope
                  value: performance
        - uuid: c140ebe6c0404ee6b17b5ada2de09f28
          name: Queue
          type: INTERNAL
          key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT},queue]'
          description: 'The number of monitored items in the queue that are delayed by at least 6 seconds.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.queue
          tags:
            - tag: component
              value: system
        - uuid: b9a588fee45047b6b991015e7e83f3f2
          name: 'Zabbix stats'
          type: INTERNAL
          key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          history: '0'
          value_type: TEXT
          description: 'The master item of Zabbix server statistics.'
          tags:
            - tag: component
              value: raw
      discovery_rules:
        - uuid: 0557f879881a4d558410444737ae3738
          name: 'High availability cluster node discovery'
          type: DEPENDENT
          key: zabbix.nodes.discovery
          description: 'LLD rule with item and trigger prototypes for node discovery.'
          item_prototypes:
            - uuid: caca3ccdcec141a3a9c3233ba72b8d0d
              name: 'Cluster node [{#NODE.NAME}]: Address'
              type: DEPENDENT
              key: 'zabbix.node.address[{#NODE.ID}]'
              value_type: CHAR
              description: 'The IPv4 address of a node.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.address
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: 'zabbix.node.stats[{#NODE.ID}]'
              tags:
                - tag: component
                  value: cluster
                - tag: node-id
                  value: '{#NODE.ID}'
                - tag: node-name
                  value: '{#NODE.NAME}'
            - uuid: a9ded61c4dba4abb9213aec9af00a604
              name: 'Cluster node [{#NODE.NAME}]: Last access age'
              type: DEPENDENT
              key: 'zabbix.node.lastaccess.age[{#NODE.ID}]'
              units: uptime
              description: 'The time between the database''s `unix_timestamp()` and the last access time.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.lastaccess_age
              master_item:
                key: 'zabbix.node.stats[{#NODE.ID}]'
              tags:
                - tag: component
                  value: cluster
                - tag: node-id
                  value: '{#NODE.ID}'
                - tag: node-name
                  value: '{#NODE.NAME}'
            - uuid: 0968e4fe51eb4c2b98a508090014aba0
              name: 'Cluster node [{#NODE.NAME}]: Last access time'
              type: DEPENDENT
              key: 'zabbix.node.lastaccess.time[{#NODE.ID}]'
              units: unixtime
              description: 'Last access time.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.lastaccess
              master_item:
                key: 'zabbix.node.stats[{#NODE.ID}]'
              tags:
                - tag: component
                  value: cluster
                - tag: node-id
                  value: '{#NODE.ID}'
                - tag: node-name
                  value: '{#NODE.NAME}'
            - uuid: 525b8142186b488eacb5db7a6044b3c4
              name: 'Cluster node [{#NODE.NAME}]: Stats'
              type: DEPENDENT
              key: 'zabbix.node.stats[{#NODE.ID}]'
              history: '0'
              value_type: TEXT
              description: 'Provides the statistics of a node.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.data.ha[?(@.id=="{#NODE.ID}")].first()'
              master_item:
                key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
              tags:
                - tag: component
                  value: cluster
                - tag: component
                  value: raw
                - tag: node-id
                  value: '{#NODE.ID}'
                - tag: node-name
                  value: '{#NODE.NAME}'
            - uuid: 2b629362886546cab34396352b93835a
              name: 'Cluster node [{#NODE.NAME}]: Status'
              type: DEPENDENT
              key: 'zabbix.nodes.status[{#NODE.ID}]'
              description: 'The status of a node.'
              valuemap:
                name: 'Cluster node status'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.status
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: 'zabbix.node.stats[{#NODE.ID}]'
              tags:
                - tag: component
                  value: cluster
                - tag: node-id
                  value: '{#NODE.ID}'
                - tag: node-name
                  value: '{#NODE.NAME}'
              trigger_prototypes:
                - uuid: 5d68b55175924cb4adde600a019496c4
                  expression: 'last(/Remote Zabbix server health/zabbix.nodes.status[{#NODE.ID}],#1)<>last(/Remote Zabbix server health/zabbix.nodes.status[{#NODE.ID}],#2)'
                  name: 'Zabbix server: Cluster node [{#NODE.NAME}]: Status changed'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: INFO
                  description: 'The state of the node has changed. Acknowledge to close the problem manually.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: availability
          master_item:
            key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT}]'
          lld_macro_paths:
            - lld_macro: '{#NODE.ID}'
              path: $.id
            - lld_macro: '{#NODE.NAME}'
              path: $.name
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.ha
            - type: JAVASCRIPT
              parameters:
                - |
                  var hacluster = JSON.parse(value);
                  
                  result = hacluster.map(function (hanode) {
                  	return {
                  		'id': hanode.id,
                  		'name': hanode.name
                  	};
                  });
                  
                  return JSON.stringify(result);
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
        - uuid: db52e7ced392405184955a884ad9dd00
          name: 'Zabbix proxy discovery'
          type: DEPENDENT
          key: zabbix.proxy.discovery
          description: 'LLD rule with item and trigger prototypes for proxy discovery.'
          item_prototypes:
            - uuid: b1fe4bb454a543a78cfa84810e320b46
              name: 'Proxy [{#PROXY.NAME}]: Certificate'
              type: DEPENDENT
              key: 'zabbix.proxy.cert[{#PROXY.NAME}]'
              description: 'The encryption status for connections from a proxy.'
              valuemap:
                name: 'Service state'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.cert
                - type: JAVASCRIPT
                  parameters:
                    - 'return value === ''false'' ? 0 : 1'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: 'zabbix.proxy.stats[{#PROXY.NAME}]'
              tags:
                - tag: component
                  value: proxy
                - tag: proxy-name
                  value: '{#PROXY.NAME}'
            - uuid: fb38b7fa4daa4ab28338f96d9f903ff8
              name: 'Proxy [{#PROXY.NAME}]: Compatibility'
              type: DEPENDENT
              key: 'zabbix.proxy.compatibility[{#PROXY.NAME}]'
              description: |
                Version of proxy compared to Zabbix server version.
                
                Possible values:
                0 - Undefined;
                1 - Current version (proxy and server have the same major version);
                2 - Outdated version (proxy version is older than server version, but is partially supported);
                3 - Unsupported version (proxy version is older than server previous LTS release version or server major version is older than proxy major version).
              valuemap:
                name: Compatibility
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.compatibility
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: 'zabbix.proxy.stats[{#PROXY.NAME}]'
              tags:
                - tag: component
                  value: proxy
                - tag: proxy-name
                  value: '{#PROXY.NAME}'
              trigger_prototypes:
                - uuid: 84365975ffa5450db47edd42adbae719
                  expression: 'last(/Remote Zabbix server health/zabbix.proxy.compatibility[{#PROXY.NAME}],#1)=3'
                  name: 'Zabbix server: Proxy [{#PROXY.NAME}]: Zabbix proxy is not supported'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: HIGH
                  description: 'Zabbix proxy version is older than server previous LTS release version or server major version is older than proxy major version.'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: 53dbaf21b8934ea9bada97431d4b3e23
                  expression: 'last(/Remote Zabbix server health/zabbix.proxy.compatibility[{#PROXY.NAME}],#1)=2'
                  name: 'Zabbix server: Proxy [{#PROXY.NAME}]: Zabbix proxy is outdated'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'Zabbix proxy version is older than server version, but is partially supported. Only data collection and remote execution is available.'
                  tags:
                    - tag: scope
                      value: availability
            - uuid: 7c5a679fd7a34abca9d70e87150bb682
              name: 'Proxy [{#PROXY.NAME}]: Compression'
              type: DEPENDENT
              key: 'zabbix.proxy.compression[{#PROXY.NAME}]'
              description: 'The compression status of a proxy.'
              valuemap:
                name: 'Service state'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.compression
                - type: JAVASCRIPT
                  parameters:
                    - 'return value === ''false'' ? 0 : 1'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: 'zabbix.proxy.stats[{#PROXY.NAME}]'
              tags:
                - tag: component
                  value: proxy
                - tag: proxy-name
                  value: '{#PROXY.NAME}'
            - uuid: 5db51524aa24458eaa1fa318adc77430
              name: 'Proxy [{#PROXY.NAME}]: Host count'
              type: DEPENDENT
              key: 'zabbix.proxy.hosts[{#PROXY.NAME}]'
              description: 'The number of enabled hosts assigned to a proxy.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.hosts
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: 'zabbix.proxy.stats[{#PROXY.NAME}]'
              tags:
                - tag: component
                  value: proxy
                - tag: proxy-name
                  value: '{#PROXY.NAME}'
            - uuid: 84c3d0ad89574545b0756a6385c09961
              name: 'Proxy [{#PROXY.NAME}]: Item count'
              type: DEPENDENT
              key: 'zabbix.proxy.items[{#PROXY.NAME}]'
              description: 'The number of enabled items on enabled hosts assigned to a proxy.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.items
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: 'zabbix.proxy.stats[{#PROXY.NAME}]'
              tags:
                - tag: component
                  value: proxy
                - tag: proxy-name
                  value: '{#PROXY.NAME}'
            - uuid: 41f1158a246942379cd425bb9293636f
              name: 'Proxy [{#PROXY.NAME}]: Last seen, in seconds'
              type: DEPENDENT
              key: 'zabbix.proxy.last_seen[{#PROXY.NAME}]'
              value_type: FLOAT
              description: 'The time when a proxy was last seen by a server.'
              valuemap:
                name: 'Last seen'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.last_seen
              master_item:
                key: 'zabbix.proxy.stats[{#PROXY.NAME}]'
              tags:
                - tag: component
                  value: proxy
                - tag: proxy-name
                  value: '{#PROXY.NAME}'
              trigger_prototypes:
                - uuid: 21bf9805e0de4e3ba674de388834958e
                  expression: 'last(/Remote Zabbix server health/zabbix.proxy.last_seen[{#PROXY.NAME}],#1)>{$ZABBIX.PROXY.LAST_SEEN.MAX}'
                  name: 'Zabbix server: Proxy [{#PROXY.NAME}]: Zabbix proxy last seen'
                  event_name: 'Zabbix server: Proxy [{#PROXY.NAME}]: Zabbix proxy last seen more than {$ZABBIX.PROXY.LAST_SEEN.MAX} seconds ago'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'Zabbix proxy is not updating the configuration data.'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: d58a33ae396943009d359bb0cae9baba
                  expression: 'last(/Remote Zabbix server health/zabbix.proxy.last_seen[{#PROXY.NAME}],#1)=-1'
                  name: 'Zabbix server: Proxy [{#PROXY.NAME}]: Zabbix proxy never seen'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'Zabbix proxy is not updating the configuration data.'
                  tags:
                    - tag: scope
                      value: availability
            - uuid: 56c5b47e6fa444a596db755d60b0cbaa
              name: 'Proxy [{#PROXY.NAME}]: Mode'
              type: DEPENDENT
              key: 'zabbix.proxy.mode[{#PROXY.NAME}]'
              description: 'The mode of Zabbix proxy.'
              valuemap:
                name: 'Proxy mode'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.passive
                - type: JAVASCRIPT
                  parameters:
                    - 'return value === ''false'' ? 0 : 1'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: 'zabbix.proxy.stats[{#PROXY.NAME}]'
              tags:
                - tag: component
                  value: proxy
                - tag: proxy-name
                  value: '{#PROXY.NAME}'
            - uuid: a3b5f778c9b2450aad72ec97b6a52d50
              name: 'Proxy [{#PROXY.NAME}]: PSK'
              type: DEPENDENT
              key: 'zabbix.proxy.psk[{#PROXY.NAME}]'
              description: 'The encryption status for connections from a proxy.'
              valuemap:
                name: 'Service state'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.psk
                - type: JAVASCRIPT
                  parameters:
                    - 'return value === ''false'' ? 0 : 1'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: 'zabbix.proxy.stats[{#PROXY.NAME}]'
              tags:
                - tag: component
                  value: proxy
                - tag: proxy-name
                  value: '{#PROXY.NAME}'
            - uuid: 8f93b4b7a5bc4c8a9a2a0fefdb0d8274
              name: 'Proxy [{#PROXY.NAME}]: Required VPS'
              type: DEPENDENT
              key: 'zabbix.proxy.requiredperformance[{#PROXY.NAME}]'
              value_type: FLOAT
              units: '!vps'
              description: 'The required performance of a proxy (the number of values that need to be collected per second).'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.requiredperformance
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: 'zabbix.proxy.stats[{#PROXY.NAME}]'
              tags:
                - tag: component
                  value: proxy
                - tag: proxy-name
                  value: '{#PROXY.NAME}'
            - uuid: 285d4a878d3e43cc930d5a82bb103f13
              name: 'Proxy [{#PROXY.NAME}]: Stats'
              type: DEPENDENT
              key: 'zabbix.proxy.stats[{#PROXY.NAME}]'
              history: '0'
              value_type: TEXT
              description: 'The statistics for the discovered proxy.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[?(@.name=="{#PROXY.NAME}")].first()'
              master_item:
                key: zabbix.proxies.stats
              tags:
                - tag: component
                  value: proxy
                - tag: component
                  value: raw
                - tag: proxy-name
                  value: '{#PROXY.NAME}'
            - uuid: c3b50d734d944d0fbb59b29324e28554
              name: 'Proxy [{#PROXY.NAME}]: Unencrypted'
              type: DEPENDENT
              key: 'zabbix.proxy.unencrypted[{#PROXY.NAME}]'
              description: 'The encryption status for connections from a proxy.'
              valuemap:
                name: 'Service state'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.unencrypted
                - type: JAVASCRIPT
                  parameters:
                    - 'return value === ''false'' ? 0 : 1'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: 'zabbix.proxy.stats[{#PROXY.NAME}]'
              tags:
                - tag: component
                  value: proxy
                - tag: proxy-name
                  value: '{#PROXY.NAME}'
            - uuid: 6486e23a16ba495d9fc40305425e8010
              name: 'Proxy [{#PROXY.NAME}]: Version'
              type: DEPENDENT
              key: 'zabbix.proxy.version[{#PROXY.NAME}]'
              value_type: CHAR
              description: 'A version of Zabbix proxy.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.version
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: 'zabbix.proxy.stats[{#PROXY.NAME}]'
              tags:
                - tag: component
                  value: proxy
                - tag: proxy-name
                  value: '{#PROXY.NAME}'
          master_item:
            key: zabbix.proxies.stats
          lld_macro_paths:
            - lld_macro: '{#PROXY.GROUP}'
              path: $.proxy_group
            - lld_macro: '{#PROXY.NAME}'
              path: $.name
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  var proxies = JSON.parse(value);
                  
                  result = proxies.map(function (proxy) {
                  	return {
                  		'name': proxy.name,
                  		'proxy_group': proxy.proxy_group
                  	};
                  });
                  
                  return JSON.stringify(result);
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
          overrides:
            - name: 'Tag proxy-group if exists'
              step: '1'
              filter:
                conditions:
                  - macro: '{#PROXY.GROUP}'
                    operator: EXISTS
              operations:
                - operator: REGEXP
                  tags:
                    - tag: proxy-group
                      value: '{#PROXY.GROUP}'
      tags:
        - tag: class
          value: software
        - tag: subclass
          value: logging
        - tag: subclass
          value: monitoring
        - tag: target
          value: server
        - tag: target
          value: zabbix
      macros:
        - macro: '{$ZABBIX.PROXY.LAST_SEEN.MAX}'
          value: '600'
          description: 'The maximum number of seconds that Zabbix proxy has not been seen.'
          config:
            type: TEXT
            priority: '3'
            section_name: Thresholds
            label: 'Seconds since the last Zabbix proxy seen'
            description: 'Threshold value of time since the last Zabbix proxy seen for triggers. No less than 0.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$ZABBIX.SERVER.ADDRESS}'
          description: 'IP/DNS of the remote Zabbix server (default is 127.0.0.1).'
          config:
            type: TEXT
            priority: '1'
            label: 'Zabbix server Address'
            description: 'IP or DNS of the remote Zabbix server from which data should be collected.'
            required: 'YES'
        - macro: '{$ZABBIX.SERVER.NODATA_TIMEOUT}'
          value: 5m
          description: 'The time threshold after which statistics are considered unavailable. Used in trigger expressions.'
          config:
            type: TEXT
            priority: '4'
            section_name: Thresholds
            label: 'Time since the last statistic was received'
            description: 'Threshold value of time since the last statistic was received from the remote server.'
        - macro: '{$ZABBIX.SERVER.PORT}'
          description: 'Port of the remote Zabbix server (default is 10051).'
          config:
            type: TEXT
            priority: '2'
            label: 'Zabbix server Port'
            description: 'Port of the remote Zabbix server from which data should be collected. In the range from 1 to 65535 inclusive.'
            required: 'YES'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$ZABBIX.SERVER.UTIL.MAX}'
          value: '75'
          description: 'Default maximum threshold for percentage utilization triggers (use macro context for specification).'
          config:
            type: TEXT
            priority: '6'
            section_name: Thresholds
            label: 'Maximum process utilization percentage'
            description: 'Default maximum threshold for process utilization triggers. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$ZABBIX.SERVER.UTIL.MAX:"value cache"}'
          value: '95'
          description: 'Maximum threshold for value cache utilization triggers.'
          config:
            type: TEXT
            priority: '7'
            section_name: Thresholds
            label: 'Maximum value cache utilization percentage'
            description: 'Threshold for the value cache utilization trigger. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$ZABBIX.SERVER.UTIL.MIN}'
          value: '65'
          description: 'Default minimum threshold for percentage utilization triggers (use macro context for specification).'
          config:
            type: TEXT
            priority: '5'
            section_name: Thresholds
            label: 'Minimum process utilization percentage'
            description: 'Default minimum threshold for process utilization triggers. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
      dashboards:
        - uuid: 6a654650e39d4968918df85f9be47584
          name: 'Remote Zabbix server health'
          auto_start: 'NO'
          pages:
            - name: Performance
              widgets:
                - type: svggraph
                  name: 'Cache usage, in %'
                  width: '36'
                  height: '6'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: 1f78b4
                    - type: STRING
                      name: ds.0.color.1
                      value: 33a02c
                    - type: STRING
                      name: ds.0.color.2
                      value: e31a1c
                    - type: STRING
                      name: ds.0.color.3
                      value: ff7f00
                    - type: STRING
                      name: ds.0.color.4
                      value: 6a3d9a
                    - type: STRING
                      name: ds.0.color.5
                      value: b15928
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Remote Zabbix server health'
                        key: wcache.trend.pused
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Remote Zabbix server health'
                        key: rcache.buffer.pused
                    - type: ITEM
                      name: ds.0.itemids.2
                      value:
                        host: 'Remote Zabbix server health'
                        key: wcache.index.pused
                    - type: ITEM
                      name: ds.0.itemids.3
                      value:
                        host: 'Remote Zabbix server health'
                        key: wcache.history.pused
                    - type: ITEM
                      name: ds.0.itemids.4
                      value:
                        host: 'Remote Zabbix server health'
                        key: vcache.buffer.pused
                    - type: ITEM
                      name: ds.0.itemids.5
                      value:
                        host: 'Remote Zabbix server health'
                        key: vmware.buffer.pused
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAACA
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Server performance'
                  'y': '6'
                  width: '72'
                  height: '5'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: 33a02c
                    - type: STRING
                      name: ds.0.color.1
                      value: 1f78b4
                    - type: STRING
                      name: ds.0.color.2
                      value: e31a1c
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Remote Zabbix server health'
                        key: wcache.values
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Remote Zabbix server health'
                        key: vps.written
                    - type: ITEM
                      name: ds.0.itemids.2
                      value:
                        host: 'Remote Zabbix server health'
                        key: 'zabbix[stats,{$ZABBIX.SERVER.ADDRESS},{$ZABBIX.SERVER.PORT},queue]'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAACC
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Values processed'
                  'y': '11'
                  width: '72'
                  height: '5'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: 1f78b4
                    - type: STRING
                      name: ds.0.color.1
                      value: 33a02c
                    - type: STRING
                      name: ds.0.color.2
                      value: e31a1c
                    - type: STRING
                      name: ds.0.color.3
                      value: ff7f00
                    - type: STRING
                      name: ds.0.color.4
                      value: 6a3d9a
                    - type: STRING
                      name: ds.0.color.5
                      value: b15928
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Remote Zabbix server health'
                        key: wcache.values.uint
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Remote Zabbix server health'
                        key: wcache.values.float
                    - type: ITEM
                      name: ds.0.itemids.2
                      value:
                        host: 'Remote Zabbix server health'
                        key: wcache.values.not_supported
                    - type: ITEM
                      name: ds.0.itemids.3
                      value:
                        host: 'Remote Zabbix server health'
                        key: wcache.values.str
                    - type: ITEM
                      name: ds.0.itemids.4
                      value:
                        host: 'Remote Zabbix server health'
                        key: wcache.values.log
                    - type: ITEM
                      name: ds.0.itemids.5
                      value:
                        host: 'Remote Zabbix server health'
                        key: wcache.values.text
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAACD
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Value cache effectiveness'
                  'y': '16'
                  width: '36'
                  height: '5'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: 33a02c
                    - type: STRING
                      name: ds.0.color.1
                      value: e31a1c
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Remote Zabbix server health'
                        key: vcache.cache.hits
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Remote Zabbix server health'
                        key: vcache.cache.misses
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAACE
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Preprocessing throughput'
                  'y': '21'
                  width: '36'
                  height: '5'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: ff465c
                    - type: STRING
                      name: ds.0.color.1
                      value: ffdf00
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Remote Zabbix server health'
                        key: preprocessing_throughput_queued
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Remote Zabbix server health'
                        key: preprocessing_throughput_direct
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '2'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAABV
                - type: svggraph
                  name: 'Internal queues'
                  x: '36'
                  width: '36'
                  height: '6'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: ffca58
                    - type: STRING
                      name: ds.0.color.1
                      value: 1f78b4
                    - type: STRING
                      name: ds.0.color.2
                      value: 6a3d9a
                    - type: STRING
                      name: ds.0.color.3
                      value: d62728
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Remote Zabbix server health'
                        key: preprocessing_queue
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Remote Zabbix server health'
                        key: lld_queue
                    - type: ITEM
                      name: ds.0.itemids.2
                      value:
                        host: 'Remote Zabbix server health'
                        key: discovery_queue
                    - type: ITEM
                      name: ds.0.itemids.3
                      value:
                        host: 'Remote Zabbix server health'
                        key: connector_queue
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAACB
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Trend cache effectiveness, in %'
                  x: '36'
                  'y': '16'
                  width: '36'
                  height: '5'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: ffca58
                    - type: STRING
                      name: ds.0.color.1
                      value: e31a1c
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Remote Zabbix server health'
                        key: tcache.pitems
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Remote Zabbix server health'
                        key: tcache.pmisses
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAACF
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Preprocessing VPS'
                  x: '36'
                  'y': '21'
                  width: '36'
                  height: '5'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: ff465c
                    - type: STRING
                      name: ds.0.color.1
                      value: ffdf00
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Remote Zabbix server health'
                        key: preprocessing_vps_queued
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Remote Zabbix server health'
                        key: preprocessing_vps_direct
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '2'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAABW
            - name: Processes
              widgets:
                - type: svggraph
                  name: 'Utilization: LLD processes'
                  width: '36'
                  height: '6'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: ffca58
                    - type: STRING
                      name: ds.0.color.1
                      value: 7e57c2
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.lld_manager.avg.busy
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.lld_worker.avg.busy
                    - type: INTEGER
                      name: ds.1.axisy
                      value: '1'
                    - type: STRING
                      name: ds.1.color.0
                      value: ff465c
                    - type: INTEGER
                      name: ds.1.dataset_type
                      value: '0'
                    - type: INTEGER
                      name: ds.1.fill
                      value: '2'
                    - type: ITEM
                      name: ds.1.itemids.0
                      value:
                        host: 'Remote Zabbix server health'
                        key: lld_queue
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '3'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAABI
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Utilization: Preprocessing processes'
                  'y': '6'
                  width: '36'
                  height: '6'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: ffca58
                    - type: STRING
                      name: ds.0.color.1
                      value: 7e57c2
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.preprocessing_manager.avg.busy
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.preprocessing_worker.avg.busy
                    - type: INTEGER
                      name: ds.1.axisy
                      value: '1'
                    - type: STRING
                      name: ds.1.color.0
                      value: ff465c
                    - type: INTEGER
                      name: ds.1.dataset_type
                      value: '0'
                    - type: INTEGER
                      name: ds.1.fill
                      value: '2'
                    - type: ITEM
                      name: ds.1.itemids.0
                      value:
                        host: 'Remote Zabbix server health'
                        key: preprocessing_queue
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '3'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAABK
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Utilization: Synchronous gathering processes'
                  'y': '12'
                  width: '72'
                  height: '7'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: 1f78b4
                    - type: STRING
                      name: ds.0.color.1
                      value: ff7f00
                    - type: STRING
                      name: ds.0.color.2
                      value: 6a3d9a
                    - type: STRING
                      name: ds.0.color.3
                      value: b15928
                    - type: STRING
                      name: ds.0.color.4
                      value: 17becf
                    - type: STRING
                      name: ds.0.color.5
                      value: a6cee3
                    - type: STRING
                      name: ds.0.color.6
                      value: fb9a99
                    - type: STRING
                      name: ds.0.color.7
                      value: bcbd22
                    - type: STRING
                      name: ds.0.color.8
                      value: ffca58
                    - type: STRING
                      name: ds.0.color.9
                      value: e31a1c
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.poller.avg.busy
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.internal_poller.avg.busy
                    - type: ITEM
                      name: ds.0.itemids.2
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.ipmi_poller.avg.busy
                    - type: ITEM
                      name: ds.0.itemids.3
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.ipmi_manager.avg.busy
                    - type: ITEM
                      name: ds.0.itemids.4
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.http_poller.avg.busy
                    - type: ITEM
                      name: ds.0.itemids.5
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.java_poller.avg.busy
                    - type: ITEM
                      name: ds.0.itemids.6
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.vmware_collector.avg.busy
                    - type: ITEM
                      name: ds.0.itemids.7
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.browser_poller.avg.busy
                    - type: ITEM
                      name: ds.0.itemids.8
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.odbc_poller.avg.busy
                    - type: ITEM
                      name: ds.0.itemids.9
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.icmp_pinger.avg.busy
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAABM
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Utilization: Asynchronous gathering processes'
                  'y': '19'
                  width: '72'
                  height: '6'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: 1f78b4
                    - type: STRING
                      name: ds.0.color.1
                      value: bcbd22
                    - type: STRING
                      name: ds.0.color.2
                      value: 6a3d9a
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.agent_poller.avg.busy
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.http_agent_poller.avg.busy
                    - type: ITEM
                      name: ds.0.itemids.2
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.snmp_poller.avg.busy
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '3'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAABN
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Utilization: Internal processes: Core'
                  'y': '25'
                  width: '36'
                  height: '6'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: 1f78b4
                    - type: STRING
                      name: ds.0.color.1
                      value: 33a02c
                    - type: STRING
                      name: ds.0.color.2
                      value: e31a1c
                    - type: STRING
                      name: ds.0.color.3
                      value: ff7f00
                    - type: STRING
                      name: ds.0.color.4
                      value: 6a3d9a
                    - type: STRING
                      name: ds.0.color.5
                      value: b15928
                    - type: STRING
                      name: ds.0.color.6
                      value: a6cee3
                    - type: STRING
                      name: ds.0.color.7
                      value: ff465c
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.configuration_syncer.avg.busy
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.configuration_syncer_worker.avg.busy
                    - type: ITEM
                      name: ds.0.itemids.2
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.history_syncer.avg.busy
                    - type: ITEM
                      name: ds.0.itemids.3
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.self-monitoring.avg.busy
                    - type: ITEM
                      name: ds.0.itemids.4
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.service_manager.avg.busy
                    - type: ITEM
                      name: ds.0.itemids.5
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.task_manager.avg.busy
                    - type: ITEM
                      name: ds.0.itemids.6
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.timer.avg.busy
                    - type: ITEM
                      name: ds.0.itemids.7
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.history_poller.avg.busy
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '8'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAABO
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Utilization: Gathering processes: Trappers'
                  'y': '31'
                  width: '36'
                  height: '5'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: cab2d6
                    - type: STRING
                      name: ds.0.color.1
                      value: ffca58
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.trapper.avg.busy
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.snmp_trapper.avg.busy
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '2'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAABQ
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Utilization: Alerting processes'
                  'y': '36'
                  width: '36'
                  height: '5'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: 17becf
                    - type: STRING
                      name: ds.0.color.1
                      value: bcbd22
                    - type: STRING
                      name: ds.0.color.2
                      value: d62728
                    - type: STRING
                      name: ds.0.color.3
                      value: ff7f00
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.alert_manager.avg.busy
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.alert_syncer.avg.busy
                    - type: ITEM
                      name: ds.0.itemids.2
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.alerter.avg.busy
                    - type: ITEM
                      name: ds.0.itemids.3
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.escalator.avg.busy
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '4'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAABS
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Utilization: Proxy management and data exchange'
                  'y': '41'
                  width: '72'
                  height: '5'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: cab2d6
                    - type: STRING
                      name: ds.0.color.1
                      value: '000080'
                    - type: STRING
                      name: ds.0.color.2
                      value: '808000'
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.trapper.avg.busy
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.proxy_poller.avg.busy
                    - type: ITEM
                      name: ds.0.itemids.2
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.proxy_group_manager.avg.busy
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '3'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAABU
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Utilization: Discovery processes'
                  x: '36'
                  width: '36'
                  height: '6'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: 7e57c2
                    - type: STRING
                      name: ds.0.color.1
                      value: 1f78b4
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.discovery_manager.avg.busy
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.discovery_worker.avg.busy
                    - type: INTEGER
                      name: ds.1.axisy
                      value: '1'
                    - type: STRING
                      name: ds.1.color.0
                      value: ff465c
                    - type: INTEGER
                      name: ds.1.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.1.itemids.0
                      value:
                        host: 'Remote Zabbix server health'
                        key: discovery_queue
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '3'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAABJ
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Utilization: Connector processes'
                  x: '36'
                  'y': '6'
                  width: '36'
                  height: '6'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: b2df8a
                    - type: STRING
                      name: ds.0.color.1
                      value: ffca58
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.connector_manager.avg.busy
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.connector_worker.avg.busy
                    - type: INTEGER
                      name: ds.1.axisy
                      value: '1'
                    - type: STRING
                      name: ds.1.color.0
                      value: ff465c
                    - type: INTEGER
                      name: ds.1.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.1.itemids.0
                      value:
                        host: 'Remote Zabbix server health'
                        key: connector_queue
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '3'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAABL
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Utilization: Internal processes: Housekeeping'
                  x: '36'
                  'y': '25'
                  width: '36'
                  height: '6'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: ffca58
                    - type: STRING
                      name: ds.0.color.1
                      value: cab2d6
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.housekeeper.avg.busy
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.trigger_housekeeper.avg.busy
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '2'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAABP
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Utilization: Availability processes'
                  x: '36'
                  'y': '31'
                  width: '36'
                  height: '5'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: 6a3d9a
                    - type: STRING
                      name: ds.0.color.1
                      value: b15928
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.unreachable_poller.avg.busy
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.availability_manager.avg.busy
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '2'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAABR
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Utilization: Reporting processes'
                  x: '36'
                  'y': '36'
                  width: '36'
                  height: '5'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: e377c2
                    - type: STRING
                      name: ds.0.color.1
                      value: ffdf00
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.report_manager.avg.busy
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Remote Zabbix server health'
                        key: process.report_writer.avg.busy
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '2'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAABT
                    - type: INTEGER
                      name: show_problems
                      value: '1'
            - name: Statuses
              widgets:
                - type: item
                  name: 'Zabbix server version'
                  width: '16'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: decimal_places
                      value: '0'
                    - type: ITEM
                      name: itemid.0
                      value:
                        host: 'Remote Zabbix server health'
                        key: version
                    - type: INTEGER
                      name: show.0
                      value: '2'
                    - type: INTEGER
                      name: show.1
                      value: '3'
                    - type: INTEGER
                      name: show.2
                      value: '4'
                    - type: INTEGER
                      name: time_h_pos
                      value: '2'
                    - type: INTEGER
                      name: time_size
                      value: '9'
                    - type: INTEGER
                      name: time_v_pos
                      value: '2'
                    - type: INTEGER
                      name: value_size
                      value: '25'
                - type: honeycomb
                  name: 'High availability: Node state'
                  x: '16'
                  width: '56'
                  height: '5'
                  fields:
                    - type: STRING
                      name: items.0
                      value: 'Cluster node [*]: Status'
                    - type: STRING
                      name: primary_label
                      value: '{{ITEM.NAME}.regsub("Cluster node \[(.*)]: Status","\1")}'
                    - type: STRING
                      name: reference
                      value: BAAAA
                    - type: INTEGER
                      name: secondary_label_decimal_places
                      value: '0'
                    - type: STRING
                      name: thresholds.0.color
                      value: b2df8a
                    - type: STRING
                      name: thresholds.0.threshold
                      value: '0'
                    - type: STRING
                      name: thresholds.1.color
                      value: '878787'
                    - type: STRING
                      name: thresholds.1.threshold
                      value: '1'
                    - type: STRING
                      name: thresholds.2.color
                      value: e31a1c
                    - type: STRING
                      name: thresholds.2.threshold
                      value: '2'
                    - type: STRING
                      name: thresholds.3.color
                      value: 33a02c
                    - type: STRING
                      name: thresholds.3.threshold
                      value: '3'
      valuemaps:
        - uuid: 25ab0f5c570b4a7e9d15bd41db79fe25
          name: 'Cluster node status'
          mappings:
            - value: '0'
              newvalue: Standby
            - value: '1'
              newvalue: Stopped
            - value: '2'
              newvalue: Unavailable
            - value: '3'
              newvalue: Active
        - uuid: 2498ad0b91d742888acccd435ba52962
          name: Compatibility
          mappings:
            - value: '0'
              newvalue: Undefined
            - value: '1'
              newvalue: Current
            - value: '2'
              newvalue: Outdated
            - value: '3'
              newvalue: Unsupported
        - uuid: 53d1560f612540d98a2983516b4b9f8c
          name: 'Last seen'
          mappings:
            - value: '-1'
              newvalue: Never
        - uuid: cdbd6c1bc69b4dcf925a1048a970139b
          name: 'Proxy mode'
          mappings:
            - value: '0'
              newvalue: Active
            - value: '1'
              newvalue: Passive
        - uuid: 7a5e7def958c4f16b9380d4b81f609c9
          name: 'Service state'
          mappings:
            - value: '0'
              newvalue: 'Off'
            - value: '1'
              newvalue: 'On'
        - uuid: 5dff563dde3c45d8b6d92525111384c6
          name: 'Value cache operating mode'
          mappings:
            - value: '0'
              newvalue: Normal
            - value: '1'
              newvalue: 'Low memory'
        - uuid: 4eaa5f12801d43d9a5cfa2bca736ccc3
          name: 'Zabbix server check'
          mappings:
            - value: '0'
              newvalue: 'False'
            - value: '1'
              newvalue: 'True'
    - uuid: e2d2b4e4ac28483996cc11fe42823d57
      template: 'Zabbix server health'
      name: 'Zabbix server health'
      description: |
        This template is designed to monitor internal Zabbix metrics on the local Zabbix server.
        
        Link this template to the local Zabbix server host.
        
        Generated by official Zabbix template tool "Templator"
      wizard_ready: 'YES'
      readme: |
        ## Overview
        
        This template is designed to monitor internal Zabbix metrics on the local Zabbix server.
        
        ## Setup
        
        Link this template to the local Zabbix server host.
      vendor:
        name: Zabbix
        version: 8.0-1
      groups:
        - name: Templates/Applications
      items:
        - uuid: f9d60d6dcbe14cd4aaec08aec6ca1856
          name: 'Zabbix stats cluster'
          type: INTERNAL
          key: 'zabbix[cluster,discovery,nodes]'
          history: '0'
          value_type: TEXT
          description: 'The master item of Zabbix cluster statistics.'
          tags:
            - tag: component
              value: raw
        - uuid: 1a185ce77d4e4dd49be5b9ded51c1460
          name: 'Connector queue'
          type: INTERNAL
          key: 'zabbix[connector_queue]'
          description: 'The count of values enqueued in the connector queue.'
          tags:
            - tag: component
              value: system
        - uuid: 8e02b4a9afbb4ae994f2210aac8aab83
          name: 'Discovery queue'
          type: INTERNAL
          key: 'zabbix[discovery_queue]'
          description: 'The count of values enqueued in the discovery queue.'
          tags:
            - tag: component
              value: system
        - uuid: d596a84dece14aa59ca53e9f53b21edb
          name: 'LLD queue'
          type: INTERNAL
          key: 'zabbix[lld_queue]'
          description: 'The number of values enqueued in the low-level discovery processing queue.'
          tags:
            - tag: component
              value: system
        - uuid: 5d253eac13394305a85d6c01a4a0774e
          name: 'Zabbix preprocessing'
          type: INTERNAL
          key: 'zabbix[preprocessing]'
          history: '0'
          value_type: TEXT
          description: 'The master item of Zabbix server''s preprocessing statistics.'
          tags:
            - tag: component
              value: raw
        - uuid: 97485f6c9efb443caa54b44c15fdbfeb
          name: 'Preprocessing queue'
          type: DEPENDENT
          key: 'zabbix[preprocessing_queue]'
          description: 'The number of values enqueued in the preprocessing queue.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.queue
          master_item:
            key: 'zabbix[preprocessing]'
          tags:
            - tag: component
              value: system
        - uuid: 3f584bc48eac4e64ae605334230c1107
          name: 'Preprocessing direct throughput'
          type: DEPENDENT
          key: 'zabbix[preprocessing_throughput_direct]'
          value_type: FLOAT
          units: Bps
          description: 'Reflects the direct throughput of the preprocessing.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.direct.size
            - type: CHANGE_PER_SECOND
          master_item:
            key: 'zabbix[preprocessing]'
          tags:
            - tag: component
              value: system
        - uuid: 4476af46c9114bec80cbc555cd81ee69
          name: 'Preprocessing queued throughput'
          type: DEPENDENT
          key: 'zabbix[preprocessing_throughput_queued]'
          value_type: FLOAT
          units: Bps
          description: 'Reflects the queued throughput of the preprocessing.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.queued.size
            - type: CHANGE_PER_SECOND
          master_item:
            key: 'zabbix[preprocessing]'
          tags:
            - tag: component
              value: system
        - uuid: 98117bb63066414b85281a39cd0482ac
          name: 'Preprocessing direct VPS'
          type: DEPENDENT
          key: 'zabbix[preprocessing_vps_direct]'
          value_type: FLOAT
          units: '!vps'
          description: 'Reflects the count of direct preprocessing values per second.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.direct.count
            - type: CHANGE_PER_SECOND
          master_item:
            key: 'zabbix[preprocessing]'
          tags:
            - tag: component
              value: system
        - uuid: 7b0dce0a5b0e4271940945d4d65bfd9c
          name: 'Preprocessing queued VPS'
          type: DEPENDENT
          key: 'zabbix[preprocessing_vps_queued]'
          value_type: FLOAT
          units: '!vps'
          description: 'Reflects the count of queued preprocessing values per second.'
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data.queued.count
            - type: CHANGE_PER_SECOND
          master_item:
            key: 'zabbix[preprocessing]'
          tags:
            - tag: component
              value: system
        - uuid: 47f983079b064558976fb3cf5d50d742
          name: 'Utilization of agent poller data collector processes, in %'
          type: INTERNAL
          key: 'zabbix[process,agent poller,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the agent poller processes have been busy for the last minute.'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: 01c490b526144241930b908b64c92c97
              expression: 'avg(/Zabbix server health/zabbix[process,agent poller,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"agent poller"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,agent poller,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"agent poller"}'
              name: 'Zabbix server: Utilization of agent poller processes is high'
              event_name: 'Zabbix server: Utilization of agent poller processes over {$ZABBIX.SERVER.UTIL.MAX:"agent poller"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the agent poller, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: cac7bb12993945fe848df86f7c4502ed
          name: 'Utilization of alerter internal processes, in %'
          type: INTERNAL
          key: 'zabbix[process,alerter,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the alerter processes have been busy for the last minute.'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: 20963ffd33864196ab909b60d7acdc0a
              expression: 'avg(/Zabbix server health/zabbix[process,alerter,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"alerter"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,alerter,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"alerter"}'
              name: 'Zabbix server: Utilization of alerter processes is high'
              event_name: 'Zabbix server: Utilization of alerter processes over {$ZABBIX.SERVER.UTIL.MAX:"alerter"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the alerter, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: d098ea71dd22428a8a8a42cf299699b7
          name: 'Utilization of alert manager internal processes, in %'
          type: INTERNAL
          key: 'zabbix[process,alert manager,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the alert manager processes have been busy for the last minute.'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: c7f8ac54e4d3409788b8a456046ee461
              expression: 'avg(/Zabbix server health/zabbix[process,alert manager,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"alert manager"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,alert manager,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"alert manager"}'
              name: 'Zabbix server: Utilization of alert manager processes is high'
              event_name: 'Zabbix server: Utilization of alert manager processes over {$ZABBIX.SERVER.UTIL.MAX:"alert manager"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the alert manager, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: eea69b4541844ebbbbf634594c14a8f2
          name: 'Utilization of alert syncer internal processes, in %'
          type: INTERNAL
          key: 'zabbix[process,alert syncer,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the alert syncer processes have been busy for the last minute.'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: e2a487335f2748a6b26d867290c9cfe4
              expression: 'avg(/Zabbix server health/zabbix[process,alert syncer,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"alert syncer"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,alert syncer,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"alert syncer"}'
              name: 'Zabbix server: Utilization of alert syncer processes is high'
              event_name: 'Zabbix server: Utilization of alert syncer processes over {$ZABBIX.SERVER.UTIL.MAX:"alert syncer"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the alert syncer, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 8677812221994919a46f6cbba16ad447
          name: 'Utilization of availability manager internal processes, in %'
          type: INTERNAL
          key: 'zabbix[process,availability manager,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the availability manager processes have been busy for the last minute.'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: 048c947b3b0a440b80ad6ebfc1a43f10
              expression: 'avg(/Zabbix server health/zabbix[process,availability manager,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"availability manager"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,availability manager,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"availability manager"}'
              name: 'Zabbix server: Utilization of availability manager processes is high'
              event_name: 'Zabbix server: Utilization of availability manager processes over {$ZABBIX.SERVER.UTIL.MAX:"availability manager"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the availability manager, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: dd20332db0c64a63a82378c1e8b2685c
          name: 'Utilization of browser poller data collector processes, in %'
          type: INTERNAL
          key: 'zabbix[process,browser poller,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the browser poller processes have been busy for the last minute.'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: c260a09bb64c438bb4d3b720ecf51bc6
              expression: 'avg(/Zabbix server health/zabbix[process,browser poller,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"browser poller"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,browser poller,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"browser poller"}'
              name: 'Zabbix server: Utilization of browser poller processes is high'
              event_name: 'Zabbix server: Utilization of browser poller processes over {$ZABBIX.SERVER.UTIL.MAX:"browser poller"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the browser poller, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 301e7fe93a024444b19766e665e9d156
          name: 'Utilization of configuration syncer internal processes, in %'
          type: INTERNAL
          key: 'zabbix[process,configuration syncer,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the configuration syncer processes have been busy for the last minute.'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: 63d681dba0b94487886a1d9b3360d1d1
              expression: 'avg(/Zabbix server health/zabbix[process,configuration syncer,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"configuration syncer"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,configuration syncer,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"configuration syncer"}'
              name: 'Zabbix server: Utilization of configuration syncer processes is high'
              event_name: 'Zabbix server: Utilization of configuration syncer processes over {$ZABBIX.SERVER.UTIL.MAX:"configuration syncer"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the configuration syncer, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: dfb04028770e4e3e8a154304b82284ba
          name: 'Utilization of configuration syncer worker internal processes, in %'
          type: INTERNAL
          key: 'zabbix[process,configuration syncer worker,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the configuration syncer worker processes have been busy for the last minute.'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: c5fe6915d3a34e13b7a2fd1326e3781a
              expression: 'avg(/Zabbix server health/zabbix[process,configuration syncer worker,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"configuration syncer worker"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,configuration syncer worker,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"configuration syncer worker"}'
              name: 'Zabbix server: Utilization of configuration syncer worker processes is high'
              event_name: 'Zabbix server: Utilization of configuration syncer worker processes over {$ZABBIX.SERVER.UTIL.MAX:"configuration syncer worker"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the configuration syncer worker, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 2fcfd911ae8647149bad91c883abf41d
          name: 'Utilization of connector manager internal processes, in %'
          type: INTERNAL
          key: 'zabbix[process,connector manager,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the connector manager processes have been busy for the last minute.'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: 5d72f9b951144e6797e19315b3a2da2b
              expression: 'avg(/Zabbix server health/zabbix[process,connector manager,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"connector manager"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,connector manager,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"connector manager"}'
              name: 'Zabbix server: Utilization of connector manager processes is high'
              event_name: 'Zabbix server: Utilization of connector manager processes over {$ZABBIX.SERVER.UTIL.MAX:"connector manager"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the connector manager, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 1c8c3b3045384a39af8baa9e40f2b487
          name: 'Utilization of connector worker internal processes, in %'
          type: INTERNAL
          key: 'zabbix[process,connector worker,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the connector worker processes have been busy for the last minute.'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: c6322f7a90d847b5a630bc9c64ce3c1b
              expression: 'avg(/Zabbix server health/zabbix[process,connector worker,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"connector worker"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,connector worker,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"connector worker"}'
              name: 'Zabbix server: Utilization of connector worker processes is high'
              event_name: 'Zabbix server: Utilization of connector worker processes over {$ZABBIX.SERVER.UTIL.MAX:"connector worker"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the connector worker, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 0a06a1b172c14e068cfc4ecee1511ffc
          name: 'Utilization of discovery manager internal processes, in %'
          type: INTERNAL
          key: 'zabbix[process,discovery manager,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the discovery manager processes have been busy for the last minute.'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: 5af0558db3264b43981aafa8969ce433
              expression: 'avg(/Zabbix server health/zabbix[process,discovery manager,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"discovery manager"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,discovery manager,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"discovery manager"}'
              name: 'Zabbix server: Utilization of discovery manager processes is high'
              event_name: 'Zabbix server: Utilization of discovery manager processes over {$ZABBIX.SERVER.UTIL.MAX:"discovery manager"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the discovery manager, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: a88bad7225d3417da697220615252226
          name: 'Utilization of discovery worker internal processes, in %'
          type: INTERNAL
          key: 'zabbix[process,discovery worker,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the discovery worker processes have been busy for the last minute.'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: 8dc524466ce04c0e97b613305fee0153
              expression: 'avg(/Zabbix server health/zabbix[process,discovery worker,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"discovery worker"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,discovery worker,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"discovery worker"}'
              name: 'Zabbix server: Utilization of discovery worker processes is high'
              event_name: 'Zabbix server: Utilization of discovery worker processes over {$ZABBIX.SERVER.UTIL.MAX:"discovery worker"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the discovery worker, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: d12ce718fad34644b92d98cf2096e7df
          name: 'Utilization of escalator internal processes, in %'
          type: INTERNAL
          key: 'zabbix[process,escalator,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the escalator processes have been busy for the last minute.'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: 9895b4318f50487d9c7f25abd48bb1a1
              expression: 'avg(/Zabbix server health/zabbix[process,escalator,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"escalator"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,escalator,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"escalator"}'
              name: 'Zabbix server: Utilization of escalator processes is high'
              event_name: 'Zabbix server: Utilization of escalator processes over {$ZABBIX.SERVER.UTIL.MAX:"escalator"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the escalator, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 8de74bea977141469cf2d594bc907968
          name: 'Utilization of history poller internal processes, in %'
          type: INTERNAL
          key: 'zabbix[process,history poller,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the history poller processes have been busy for the last minute.'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: 9a76cde4aaea4e8eb48f725e9653037b
              expression: 'avg(/Zabbix server health/zabbix[process,history poller,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"history poller"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,history poller,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"history poller"}'
              name: 'Zabbix server: Utilization of history poller processes is high'
              event_name: 'Zabbix server: Utilization of history poller processes over {$ZABBIX.SERVER.UTIL.MAX:"history poller"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the history poller, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 4d92eb7b411345cfbd6e2ea2ff5c1788
          name: 'Utilization of history syncer internal processes, in %'
          type: INTERNAL
          key: 'zabbix[process,history syncer,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the history syncer processes have been busy for the last minute.'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: a99ffd43a05e40f7abee83aa8c6c3ce5
              expression: 'avg(/Zabbix server health/zabbix[process,history syncer,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"history syncer"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,history syncer,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"history syncer"}'
              name: 'Zabbix server: Utilization of history syncer processes is high'
              event_name: 'Zabbix server: Utilization of history syncer processes over {$ZABBIX.SERVER.UTIL.MAX:"history syncer"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the history syncer, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 23f448b5acba472881857647ca1bb614
          name: 'Utilization of housekeeper internal processes, in %'
          type: INTERNAL
          key: 'zabbix[process,housekeeper,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the housekeeper processes have been busy for the last minute.'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: faa349f84dc043658fe51294ad87f766
              expression: 'avg(/Zabbix server health/zabbix[process,housekeeper,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"housekeeper"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,housekeeper,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"housekeeper"}'
              name: 'Zabbix server: Utilization of housekeeper processes is high'
              event_name: 'Zabbix server: Utilization of housekeeper processes over {$ZABBIX.SERVER.UTIL.MAX:"housekeeper"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the housekeeper, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 71934ae835034df5b9ce97eeb859b96b
          name: 'Utilization of http agent poller data collector processes, in %'
          type: INTERNAL
          key: 'zabbix[process,http agent poller,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the http agent poller processes have been busy for the last minute.'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: 3ba6561155df4cebb1111a6f229c483a
              expression: 'avg(/Zabbix server health/zabbix[process,http agent poller,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"http agent poller"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,http agent poller,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"http agent poller"}'
              name: 'Zabbix server: Utilization of http agent poller processes is high'
              event_name: 'Zabbix server: Utilization of http agent poller processes over {$ZABBIX.SERVER.UTIL.MAX:"http agent poller"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the http agent poller, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 419e937c4a1d4fa09c4b50ca88cbe3e2
          name: 'Utilization of http poller data collector processes, in %'
          type: INTERNAL
          key: 'zabbix[process,http poller,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the http poller processes have been busy for the last minute.'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: c296c1ecdba44bd5b826ab4a86bbc300
              expression: 'avg(/Zabbix server health/zabbix[process,http poller,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"http poller"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,http poller,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"http poller"}'
              name: 'Zabbix server: Utilization of http poller processes is high'
              event_name: 'Zabbix server: Utilization of http poller processes over {$ZABBIX.SERVER.UTIL.MAX:"http poller"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the http poller, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: d5d469d5eb2e4e0ca0afc89b603d4065
          name: 'Utilization of icmp pinger data collector processes, in %'
          type: INTERNAL
          key: 'zabbix[process,icmp pinger,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the icmp pinger processes have been busy for the last minute.'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: d5c6ea5711594a9587ab8d7094f1f481
              expression: 'avg(/Zabbix server health/zabbix[process,icmp pinger,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"icmp pinger"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,icmp pinger,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"icmp pinger"}'
              name: 'Zabbix server: Utilization of icmp pinger processes is high'
              event_name: 'Zabbix server: Utilization of icmp pinger processes over {$ZABBIX.SERVER.UTIL.MAX:"icmp pinger"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the icmp pinger, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 912dd7b55d244aa9bbc3af17ba168b13
          name: 'Utilization of internal poller data collector processes, in %'
          type: INTERNAL
          key: 'zabbix[process,internal poller,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the internal poller processes have been busy for the last minute.'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: 9bf9a345764740b79eb7e36398992593
              expression: 'avg(/Zabbix server health/zabbix[process,internal poller,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"internal poller"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,internal poller,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"internal poller"}'
              name: 'Zabbix server: Utilization of internal poller processes is high'
              event_name: 'Zabbix server: Utilization of internal poller processes over {$ZABBIX.SERVER.UTIL.MAX:"internal poller"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the internal poller, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 24b6b466929347f0a8164c89ba5624fe
          name: 'Utilization of ipmi manager internal processes, in %'
          type: INTERNAL
          key: 'zabbix[process,ipmi manager,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the ipmi manager processes have been busy for the last minute.'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: 9ce0c874e5924b308827e8be5a9bf0eb
              expression: 'avg(/Zabbix server health/zabbix[process,ipmi manager,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"ipmi manager"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,ipmi manager,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"ipmi manager"}'
              name: 'Zabbix server: Utilization of ipmi manager processes is high'
              event_name: 'Zabbix server: Utilization of ipmi manager processes over {$ZABBIX.SERVER.UTIL.MAX:"ipmi manager"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the ipmi manager, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: c11d415de9c64fd6911f82d49db140d3
          name: 'Utilization of ipmi poller data collector processes, in %'
          type: INTERNAL
          key: 'zabbix[process,ipmi poller,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the ipmi poller processes have been busy for the last minute.'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: 5a4f841292fd4bb5bec2e28340c9e4c2
              expression: 'avg(/Zabbix server health/zabbix[process,ipmi poller,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"ipmi poller"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,ipmi poller,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"ipmi poller"}'
              name: 'Zabbix server: Utilization of ipmi poller processes is high'
              event_name: 'Zabbix server: Utilization of ipmi poller processes over {$ZABBIX.SERVER.UTIL.MAX:"ipmi poller"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the ipmi poller, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: a8168691df3d43f1a1e106062f18ee06
          name: 'Utilization of java poller data collector processes, in %'
          type: INTERNAL
          key: 'zabbix[process,java poller,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the java poller processes have been busy for the last minute.'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: d7705ba9c3f74554ac21c59c9a0dcc11
              expression: 'avg(/Zabbix server health/zabbix[process,java poller,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"java poller"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,java poller,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"java poller"}'
              name: 'Zabbix server: Utilization of java poller processes is high'
              event_name: 'Zabbix server: Utilization of java poller processes over {$ZABBIX.SERVER.UTIL.MAX:"java poller"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the java poller, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 5e0ffccdaa51459c90d4868e61b1c6a8
          name: 'Utilization of LLD manager internal processes, in %'
          type: INTERNAL
          key: 'zabbix[process,lld manager,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the LLD manager processes have been busy for the last minute.'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: 39109dabd9454844996864834292c0c4
              expression: 'avg(/Zabbix server health/zabbix[process,lld manager,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"LLD manager"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,lld manager,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"LLD manager"}'
              name: 'Zabbix server: Utilization of LLD manager processes is high'
              event_name: 'Zabbix server: Utilization of LLD manager processes over {$ZABBIX.SERVER.UTIL.MAX:"LLD manager"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the LLD manager, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 0b7b36eea80448ac8d11f7f30fb355da
          name: 'Utilization of LLD worker internal processes, in %'
          type: INTERNAL
          key: 'zabbix[process,lld worker,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the LLD worker processes have been busy for the last minute.'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: 8eca01d6e0e64f5795d3a5b5e4aa593d
              expression: 'avg(/Zabbix server health/zabbix[process,lld worker,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"LLD worker"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,lld worker,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"LLD worker"}'
              name: 'Zabbix server: Utilization of LLD worker processes is high'
              event_name: 'Zabbix server: Utilization of LLD worker processes over {$ZABBIX.SERVER.UTIL.MAX:"LLD worker"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the LLD worker, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: f8d593ff5690419f8679a5b8303f3a66
          name: 'Utilization of ODBC poller data collector processes, in %'
          type: INTERNAL
          key: 'zabbix[process,odbc poller,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the ODBC poller processes have been busy for the last minute.'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: f536b921e9444c6eb0ac805ab9302af9
              expression: 'avg(/Zabbix server health/zabbix[process,odbc poller,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"ODBC poller"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,odbc poller,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"ODBC poller"}'
              name: 'Zabbix server: Utilization of ODBC poller processes is high'
              event_name: 'Zabbix server: Utilization of ODBC poller processes over {$ZABBIX.SERVER.UTIL.MAX:"ODBC poller"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the ODBC poller, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: cbec202e15be49de93dc0c5f58824ae3
          name: 'Utilization of poller data collector processes, in %'
          type: INTERNAL
          key: 'zabbix[process,poller,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the poller processes have been busy for the last minute.'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: bb50da4052134ef1a478bface291b50a
              expression: 'avg(/Zabbix server health/zabbix[process,poller,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"poller"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,poller,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"poller"}'
              name: 'Zabbix server: Utilization of poller processes is high'
              event_name: 'Zabbix server: Utilization of poller processes over {$ZABBIX.SERVER.UTIL.MAX:"poller"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the poller, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: fc7999dd8d2d41a5a80eeb4b6c4c9b13
          name: 'Utilization of preprocessing manager internal processes, in %'
          type: INTERNAL
          key: 'zabbix[process,preprocessing manager,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the preprocessing manager processes have been busy for the last minute.'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: 6e7a117afa7e41e2a783f8afc42434fa
              expression: 'avg(/Zabbix server health/zabbix[process,preprocessing manager,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"preprocessing manager"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,preprocessing manager,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"preprocessing manager"}'
              name: 'Zabbix server: Utilization of preprocessing manager processes is high'
              event_name: 'Zabbix server: Utilization of preprocessing manager processes over {$ZABBIX.SERVER.UTIL.MAX:"preprocessing manager"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the preprocessing manager, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 6af695693d41434a96c0c6a020580828
          name: 'Utilization of preprocessing worker internal processes, in %'
          type: INTERNAL
          key: 'zabbix[process,preprocessing worker,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the preprocessing worker processes have been busy for the last minute.'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: e2cbdcc8b4844943a67d1f51587e599c
              expression: 'avg(/Zabbix server health/zabbix[process,preprocessing worker,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"preprocessing worker"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,preprocessing worker,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"preprocessing worker"}'
              name: 'Zabbix server: Utilization of preprocessing worker processes is high'
              event_name: 'Zabbix server: Utilization of preprocessing worker processes over {$ZABBIX.SERVER.UTIL.MAX:"preprocessing worker"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the preprocessing worker, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 306334d48ce6427d93ca8fbe292b8a11
          name: 'Utilization of proxy group manager internal processes, in %'
          type: INTERNAL
          key: 'zabbix[process,proxy group manager,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the proxy group manager processes have been busy for the last minute.'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: 67db7f858e0348feb7cfe26f2afa1bd6
              expression: 'avg(/Zabbix server health/zabbix[process,proxy group manager,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"proxy group manager"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,proxy group manager,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"proxy group manager"}'
              name: 'Zabbix server: Utilization of proxy group manager processes is high'
              event_name: 'Zabbix server: Utilization of proxy group manager processes over {$ZABBIX.SERVER.UTIL.MAX:"proxy group manager"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the proxy group manager, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: baf22e095078435d978a6c4374500db4
          name: 'Utilization of proxy poller data collector processes, in %'
          type: INTERNAL
          key: 'zabbix[process,proxy poller,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the proxy poller processes have been busy for the last minute.'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: 6a884c1fbf254637bb74b68571ee2ffa
              expression: 'avg(/Zabbix server health/zabbix[process,proxy poller,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"proxy poller"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,proxy poller,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"proxy poller"}'
              name: 'Zabbix server: Utilization of proxy poller processes is high'
              event_name: 'Zabbix server: Utilization of proxy poller processes over {$ZABBIX.SERVER.UTIL.MAX:"proxy poller"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the proxy poller, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 3db38f5d250741fd833aec23e09bc52e
          name: 'Utilization of report manager internal processes, in %'
          type: INTERNAL
          key: 'zabbix[process,report manager,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the report manager processes have been busy for the last minute.'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: 82f774b4a47247f49db1ab0480a69eae
              expression: 'avg(/Zabbix server health/zabbix[process,report manager,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"report manager"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,report manager,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"report manager"}'
              name: 'Zabbix server: Utilization of report manager processes is high'
              event_name: 'Zabbix server: Utilization of report manager processes over {$ZABBIX.SERVER.UTIL.MAX:"report manager"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the report manager, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 9c74858428cb4578b8a9095140b64d52
          name: 'Utilization of report writer internal processes, in %'
          type: INTERNAL
          key: 'zabbix[process,report writer,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the report writer processes have been busy for the last minute.'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: 03158d902b854b3495aa76042f361bea
              expression: 'avg(/Zabbix server health/zabbix[process,report writer,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"report writer"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,report writer,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"report writer"}'
              name: 'Zabbix server: Utilization of report writer processes is high'
              event_name: 'Zabbix server: Utilization of report writer processes over {$ZABBIX.SERVER.UTIL.MAX:"report writer"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the report writer, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 6fc9c055d4894c19b3b1075db106d995
          name: 'Utilization of self-monitoring internal processes, in %'
          type: INTERNAL
          key: 'zabbix[process,self-monitoring,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the self-monitoring processes have been busy for the last minute.'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: bf730ed3313f45248f483289c704f5e9
              expression: 'avg(/Zabbix server health/zabbix[process,self-monitoring,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"self-monitoring"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,self-monitoring,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"self-monitoring"}'
              name: 'Zabbix server: Utilization of self-monitoring processes is high'
              event_name: 'Zabbix server: Utilization of self-monitoring processes over {$ZABBIX.SERVER.UTIL.MAX:"self-monitoring"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the self-monitoring, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 4f6c2b59437c4345b348d78b5d2242db
          name: 'Utilization of service manager internal processes, in %'
          type: INTERNAL
          key: 'zabbix[process,service manager,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the service manager processes have been busy for the last minute.'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: c4cdbce205e843d6b882503961a15376
              expression: 'avg(/Zabbix server health/zabbix[process,service manager,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"service manager"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,service manager,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"service manager"}'
              name: 'Zabbix server: Utilization of service manager processes is high'
              event_name: 'Zabbix server: Utilization of service manager processes over {$ZABBIX.SERVER.UTIL.MAX:"service manager"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the service manager, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: aa5db45e74834355a80566316017d6d4
          name: 'Utilization of snmp poller data collector processes, in %'
          type: INTERNAL
          key: 'zabbix[process,snmp poller,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the snmp poller processes have been busy for the last minute.'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: 3fab1765b54b4036a03ca1fb69763e81
              expression: 'avg(/Zabbix server health/zabbix[process,snmp poller,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"snmp poller"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,snmp poller,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"snmp poller"}'
              name: 'Zabbix server: Utilization of snmp poller processes is high'
              event_name: 'Zabbix server: Utilization of snmp poller processes over {$ZABBIX.SERVER.UTIL.MAX:"snmp poller"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the snmp poller, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: cb9a7c4f3373496da97f3e0b8c978366
          name: 'Utilization of snmp trapper data collector processes, in %'
          type: INTERNAL
          key: 'zabbix[process,snmp trapper,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the snmp trapper processes have been busy for the last minute.'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: 821611786e5e49bf941cbca370d6ed6b
              expression: 'avg(/Zabbix server health/zabbix[process,snmp trapper,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"snmp trapper"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,snmp trapper,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"snmp trapper"}'
              name: 'Zabbix server: Utilization of snmp trapper processes is high'
              event_name: 'Zabbix server: Utilization of snmp trapper processes over {$ZABBIX.SERVER.UTIL.MAX:"snmp trapper"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the snmp trapper, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: caeb7ecc88cc4c14bb80f901284be9a5
          name: 'Utilization of task manager internal processes, in %'
          type: INTERNAL
          key: 'zabbix[process,task manager,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the task manager processes have been busy for the last minute.'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: 37c1c6ec07474a8a95b06c3c28e4bf96
              expression: 'avg(/Zabbix server health/zabbix[process,task manager,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"task manager"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,task manager,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"task manager"}'
              name: 'Zabbix server: Utilization of task manager processes is high'
              event_name: 'Zabbix server: Utilization of task manager processes over {$ZABBIX.SERVER.UTIL.MAX:"task manager"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the task manager, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 3af0ec03af6542e18aaff505e3806089
          name: 'Utilization of timer internal processes, in %'
          type: INTERNAL
          key: 'zabbix[process,timer,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the timer processes have been busy for the last minute.'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: 0c7715df608f4736a7077ff2f6098adc
              expression: 'avg(/Zabbix server health/zabbix[process,timer,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"timer"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,timer,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"timer"}'
              name: 'Zabbix server: Utilization of timer processes is high'
              event_name: 'Zabbix server: Utilization of timer processes over {$ZABBIX.SERVER.UTIL.MAX:"timer"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the timer, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 0dd727eddfaf45a9a819a9d64c5b72c7
          name: 'Utilization of trapper data collector processes, in %'
          type: INTERNAL
          key: 'zabbix[process,trapper,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the trapper processes have been busy for the last minute.'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: 197c04bbf5204ce7ac80630f2948b6b0
              expression: 'avg(/Zabbix server health/zabbix[process,trapper,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"trapper"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,trapper,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"trapper"}'
              name: 'Zabbix server: Utilization of trapper processes is high'
              event_name: 'Zabbix server: Utilization of trapper processes over {$ZABBIX.SERVER.UTIL.MAX:"trapper"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the trapper, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: ad2199d0152d4deb8259699ebd1f3da5
          name: 'Utilization of trigger housekeeper internal processes, in %'
          type: INTERNAL
          key: 'zabbix[process,trigger housekeeper,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the trigger housekeeper processes have been busy for the last minute.'
          tags:
            - tag: component
              value: internal-process
          triggers:
            - uuid: 5ffa02f393d34c49bcb9eed2b2b89704
              expression: 'avg(/Zabbix server health/zabbix[process,trigger housekeeper,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"trigger housekeeper"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,trigger housekeeper,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"trigger housekeeper"}'
              name: 'Zabbix server: Utilization of trigger housekeeper processes is high'
              event_name: 'Zabbix server: Utilization of trigger housekeeper processes over {$ZABBIX.SERVER.UTIL.MAX:"trigger housekeeper"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the trigger housekeeper, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 4fd24bdb8935435e8617c9607b9c6ca1
          name: 'Utilization of unreachable poller data collector processes, in %'
          type: INTERNAL
          key: 'zabbix[process,unreachable poller,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the unreachable poller processes have been busy for the last minute.'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: b0168864ef6849f185deb6ef22a056fa
              expression: 'avg(/Zabbix server health/zabbix[process,unreachable poller,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"unreachable poller"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,unreachable poller,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"unreachable poller"}'
              name: 'Zabbix server: Utilization of unreachable poller processes is high'
              event_name: 'Zabbix server: Utilization of unreachable poller processes over {$ZABBIX.SERVER.UTIL.MAX:"unreachable poller"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the unreachable poller, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: bad00e43cd064a0fb3a4b65b71bea926
          name: 'Utilization of vmware collector data collector processes, in %'
          type: INTERNAL
          key: 'zabbix[process,vmware collector,avg,busy]'
          value_type: FLOAT
          units: '%'
          description: 'The average percentage of the time during which the vmware collector processes have been busy for the last minute.'
          tags:
            - tag: component
              value: gathering-process
          triggers:
            - uuid: 7e0881bb1b384deba18439ae098a7fbd
              expression: 'avg(/Zabbix server health/zabbix[process,vmware collector,avg,busy],10m)>{$ZABBIX.SERVER.UTIL.MAX:"vmware collector"}'
              recovery_mode: RECOVERY_EXPRESSION
              recovery_expression: 'avg(/Zabbix server health/zabbix[process,vmware collector,avg,busy],10m)<{$ZABBIX.SERVER.UTIL.MIN:"vmware collector"}'
              name: 'Zabbix server: Utilization of vmware collector processes is high'
              event_name: 'Zabbix server: Utilization of vmware collector processes over {$ZABBIX.SERVER.UTIL.MAX:"vmware collector"}%'
              priority: AVERAGE
              description: 'Indicates potential performance issues with the vmware collector, which may affect monitoring efficiency and response times.'
              tags:
                - tag: scope
                  value: performance
        - uuid: 6fb9d6a8d3f84c679e7af4b9ef437239
          name: 'Zabbix proxies stats'
          type: INTERNAL
          key: 'zabbix[proxy,discovery]'
          history: '0'
          value_type: TEXT
          description: 'The master item of Zabbix proxies'' statistics.'
          tags:
            - tag: component
              value: raw
        - uuid: efba7193b9aa48c385e98c9babfaa689
          name: 'Zabbix proxy groups stats'
          type: INTERNAL
          key: 'zabbix[proxy group,discovery]'
          history: '0'
          value_type: TEXT
          description: 'The master item of Zabbix proxy groups'' statistics.'
          tags:
            - tag: component
              value: raw
        - uuid: 2b2f695ed1ef4a7a871c80df9c911e90
          name: 'Queue over 10 minutes'
          type: INTERNAL
          key: 'zabbix[queue,10m]'
          description: 'The number of monitored items in the queue that are delayed by at least 10 minutes.'
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: 53883a57e663421ca5fa794067a267b4
              expression: 'min(/Zabbix server health/zabbix[queue,10m],10m)>100'
              name: 'Zabbix server: More than 100 items have been missing data for over 10 minutes'
              priority: WARNING
              description: 'Indicates potential issues with network connectivity, agent failures, or unresponsive monitored resources that require attention.'
              tags:
                - tag: scope
                  value: performance
        - uuid: aaf58555c0774e848f51a351b6ae8462
          name: Queue
          type: INTERNAL
          key: 'zabbix[queue]'
          description: 'The number of monitored items in the queue that are delayed by at least 6 seconds.'
          tags:
            - tag: component
              value: system
        - uuid: ac2aebc15b084d049538b12e9513c08d
          name: 'Configuration cache, % used'
          type: INTERNAL
          key: 'zabbix[rcache,buffer,pused]'
          value_type: FLOAT
          units: '%'
          description: 'The availability statistics of Zabbix configuration cache. The percentage of used data buffer.'
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: 088a0e0ac64442a29de4d86f11c87438
              expression: 'max(/Zabbix server health/zabbix[rcache,buffer,pused],10m)>{$ZABBIX.SERVER.UTIL.MAX:"configuration cache"}'
              name: 'Zabbix server: Excessive configuration cache usage'
              event_name: 'Zabbix server: More than {$ZABBIX.SERVER.UTIL.MAX:"configuration cache"}% used in the configuration cache'
              priority: AVERAGE
              description: 'Consider increasing `CacheSize` in the `zabbix_server.conf` configuration file.'
              tags:
                - tag: scope
                  value: capacity
                - tag: scope
                  value: performance
        - uuid: b14a5ba6c93f4d6c9dfd820640d34e9b
          name: 'Trend function cache, % of unique requests'
          type: INTERNAL
          key: 'zabbix[tcache,cache,pitems]'
          value_type: FLOAT
          units: '%'
          description: |
            The effectiveness statistics of the Zabbix trend function cache. The percentage of cached items calculated from the sum of the cached items plus requests.
            A low percentage most likely means that the cache size can be reduced.
          tags:
            - tag: component
              value: system
        - uuid: 6db1280cb0134e81af8e070ae2356e7b
          name: 'Trend function cache, % of misses'
          type: INTERNAL
          key: 'zabbix[tcache,cache,pmisses]'
          value_type: FLOAT
          units: '%'
          description: 'The effectiveness statistics of the Zabbix trend function cache. The percentage of cache misses.'
          tags:
            - tag: component
              value: system
        - uuid: 9a2d6f239ea642b9b231801db68638b5
          name: 'Zabbix server check'
          type: INTERNAL
          key: 'zabbix[triggers]'
          trends: '0'
          description: 'Flag indicating whether it is a server or not.'
          valuemap:
            name: 'Zabbix server check'
          preprocessing:
            - type: CHECK_NOT_SUPPORTED
              parameters:
                - '-1'
              error_handler: CUSTOM_VALUE
              error_handler_params: '0'
            - type: IN_RANGE
              parameters:
                - ''
                - '0'
              error_handler: CUSTOM_VALUE
              error_handler_params: '1'
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: 3b0969d950ac4f9e878d0f7d72d83af2
              expression: 'last(/Zabbix server health/zabbix[triggers])=0'
              name: 'Zabbix server: Wrong template assigned'
              event_name: 'Zabbix server: Zabbix server template is assigned to Zabbix proxy'
              priority: DISASTER
              description: 'Check that the template has been selected correctly.'
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: notice
        - uuid: 559ca5966e404c948f99cabf7a9077e8
          name: 'Value cache, % used'
          type: INTERNAL
          key: 'zabbix[vcache,buffer,pused]'
          value_type: FLOAT
          units: '%'
          description: 'The availability statistics of Zabbix value cache. The percentage of used data buffer.'
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: cdca16919f6648ebbe6119e7c23a98c7
              expression: 'max(/Zabbix server health/zabbix[vcache,buffer,pused],10m)>{$ZABBIX.SERVER.UTIL.MAX:"value cache"}'
              name: 'Zabbix server: Excessive value cache usage'
              event_name: 'Zabbix server: More than {$ZABBIX.SERVER.UTIL.MAX:"value cache"}% used in the value cache'
              priority: AVERAGE
              description: 'Consider increasing `ValueCacheSize` in the `zabbix_server.conf` configuration file.'
              tags:
                - tag: scope
                  value: capacity
                - tag: scope
                  value: performance
        - uuid: 69b14487a9744dbb866f2e6ee131d0e5
          name: 'Value cache hits'
          type: INTERNAL
          key: 'zabbix[vcache,cache,hits]'
          value_type: FLOAT
          units: '!vps'
          description: 'The effectiveness statistics of Zabbix value cache. The number of cache hits (history values taken from the cache).'
          preprocessing:
            - type: CHANGE_PER_SECOND
          tags:
            - tag: component
              value: system
        - uuid: c78439859fd248cdb15e1eee37be2220
          name: 'Value cache misses'
          type: INTERNAL
          key: 'zabbix[vcache,cache,misses]'
          value_type: FLOAT
          units: '!vps'
          description: 'The effectiveness statistics of Zabbix value cache. The number of cache misses (history values taken from the database).'
          preprocessing:
            - type: CHANGE_PER_SECOND
          tags:
            - tag: component
              value: system
        - uuid: 07379df0114445b7b06818736f011ca6
          name: 'Value cache operating mode'
          type: INTERNAL
          key: 'zabbix[vcache,cache,mode]'
          units: '!vps'
          description: 'The operating mode of the value cache.'
          valuemap:
            name: 'Value cache operating mode'
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: ee3db7e7bc104f1598ca36e735bce53f
              expression: 'last(/Zabbix server health/zabbix[vcache,cache,mode])=1'
              name: 'Zabbix server: Zabbix value cache working in low-memory mode'
              priority: HIGH
              description: 'Once low-memory mode has been switched on, the value cache will remain in this state for 24 hours, even if the problem that triggered this mode is resolved sooner.'
              tags:
                - tag: scope
                  value: capacity
                - tag: scope
                  value: performance
        - uuid: 140cf84640564a60bcd107bebf9ac2e3
          name: Version
          type: INTERNAL
          key: 'zabbix[version]'
          value_type: CHAR
          description: 'The version of Zabbix server.'
          preprocessing:
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1d
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: 456403a2063c4e2298f9e3f60a7a3180
              expression: 'last(/Zabbix server health/zabbix[version],#1)<>last(/Zabbix server health/zabbix[version],#2) and length(last(/Zabbix server health/zabbix[version]))>0'
              name: 'Zabbix server: Version has changed'
              event_name: 'Zabbix server: Version has changed (new version: {ITEM.VALUE})'
              priority: INFO
              description: 'Zabbix server version has changed. Acknowledge to close the problem manually.'
              manual_close: 'YES'
              tags:
                - tag: scope
                  value: notice
        - uuid: d273413004094604ad247c0ff9695879
          name: 'VMware cache, % used'
          type: INTERNAL
          key: 'zabbix[vmware,buffer,pused]'
          value_type: FLOAT
          units: '%'
          description: 'The availability statistics of Zabbix vmware cache. The percentage of used data buffer.'
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: 2df2ed6520c44ee880f35912f869583e
              expression: 'max(/Zabbix server health/zabbix[vmware,buffer,pused],10m)>{$ZABBIX.SERVER.UTIL.MAX:"vmware cache"}'
              name: 'Zabbix server: Excessive vmware cache usage'
              event_name: 'Zabbix server: More than {$ZABBIX.SERVER.UTIL.MAX:"vmware cache"}% used in the vmware cache'
              priority: AVERAGE
              description: 'Consider increasing `VMwareCacheSize` in the `zabbix_server.conf` configuration file.'
              tags:
                - tag: scope
                  value: capacity
                - tag: scope
                  value: performance
        - uuid: 0f61de4dcc1b469a94dd024e1b932936
          name: 'Number of values synchronized with the database per second'
          type: INTERNAL
          key: 'zabbix[vps,written]'
          value_type: FLOAT
          units: '!vps'
          description: 'Average quantity of values written to the database, recalculated once per minute.'
          preprocessing:
            - type: CHANGE_PER_SECOND
          tags:
            - tag: component
              value: nvps
            - tag: component
              value: system
        - uuid: 1ae8253bb4da434da3ea6bcb0352115d
          name: 'History write cache, % used'
          type: INTERNAL
          key: 'zabbix[wcache,history,pused]'
          value_type: FLOAT
          units: '%'
          description: |
            The statistics and availability of Zabbix write cache. The percentage of used history buffer.
            The history cache is used to store item values. A high number indicates database performance problems.
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: 5d63483588964e49b1f870dfb770bf04
              expression: 'max(/Zabbix server health/zabbix[wcache,history,pused],10m)>{$ZABBIX.SERVER.UTIL.MAX:"history cache"}'
              name: 'Zabbix server: Excessive history cache usage'
              event_name: 'Zabbix server: More than {$ZABBIX.SERVER.UTIL.MAX:"history cache"}% used in the history cache'
              priority: AVERAGE
              description: 'Consider increasing `HistoryCacheSize` in the `zabbix_server.conf` configuration file.'
              tags:
                - tag: scope
                  value: capacity
                - tag: scope
                  value: performance
        - uuid: 9fc7faf5455e4e78bdb1406f947bfa08
          name: 'History index cache, % used'
          type: INTERNAL
          key: 'zabbix[wcache,index,pused]'
          value_type: FLOAT
          units: '%'
          description: |
            The statistics and availability of Zabbix write cache. The percentage of used history index buffer.
            The history index cache is used to index values stored in the history cache.
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: 24245fbc55b743319162dd1edb37c5a0
              expression: 'max(/Zabbix server health/zabbix[wcache,index,pused],10m)>{$ZABBIX.SERVER.UTIL.MAX:"index cache"}'
              name: 'Zabbix server: Excessive history index cache usage'
              event_name: 'Zabbix server: More than {$ZABBIX.SERVER.UTIL.MAX:"index cache"}% used in the history index cache'
              priority: AVERAGE
              description: 'Consider increasing `HistoryIndexCacheSize` in the `zabbix_server.conf` configuration file.'
              tags:
                - tag: scope
                  value: capacity
                - tag: scope
                  value: performance
        - uuid: 5cca0fc9878d4e068467d5a3b8558ed5
          name: 'Trend write cache, % used'
          type: INTERNAL
          key: 'zabbix[wcache,trend,pused]'
          value_type: FLOAT
          units: '%'
          description: |
            The statistics and availability of Zabbix write cache. The percentage of used trend buffer.
            The trend cache stores the aggregate of all items that have received data for the current hour.
          tags:
            - tag: component
              value: system
          triggers:
            - uuid: 34426156de6b4690918117a23ccc1138
              expression: 'max(/Zabbix server health/zabbix[wcache,trend,pused],10m)>{$ZABBIX.SERVER.UTIL.MAX:"trend cache"}'
              name: 'Zabbix server: Excessive trends cache usage'
              event_name: 'Zabbix server: More than {$ZABBIX.SERVER.UTIL.MAX:"trend cache"}% used in the trends cache'
              priority: AVERAGE
              description: 'Consider increasing `TrendCacheSize` in the `zabbix_server.conf` configuration file.'
              tags:
                - tag: scope
                  value: capacity
                - tag: scope
                  value: performance
        - uuid: de63f78f36e74361b6c9993d12d8b7c8
          name: 'Number of processed numeric (float) values per second'
          type: INTERNAL
          key: 'zabbix[wcache,values,float]'
          value_type: FLOAT
          units: '!vps'
          description: |
            The statistics and availability of Zabbix write cache.
            The number of processed numeric (float) values.
          preprocessing:
            - type: CHANGE_PER_SECOND
          tags:
            - tag: component
              value: nvps
            - tag: component
              value: system
        - uuid: dae76dc6c4ce4707be7cf9534efc0233
          name: 'Number of processed log values per second'
          type: INTERNAL
          key: 'zabbix[wcache,values,log]'
          value_type: FLOAT
          units: '!vps'
          description: |
            The statistics and availability of Zabbix write cache.
            The number of processed log values.
          preprocessing:
            - type: CHANGE_PER_SECOND
          tags:
            - tag: component
              value: nvps
            - tag: component
              value: system
        - uuid: c99a99cf7e1e44918736ab860694d3a4
          name: 'Number of processed not supported values per second'
          type: INTERNAL
          key: 'zabbix[wcache,values,not supported]'
          value_type: FLOAT
          units: '!vps'
          description: |
            The statistics and availability of Zabbix write cache.
            The number of times the item processing resulted in an item becoming unsupported or remaining in that state.
          preprocessing:
            - type: CHANGE_PER_SECOND
          tags:
            - tag: component
              value: nvps
            - tag: component
              value: system
        - uuid: b58fdd85cd6a48489d0b983ee8ebe97b
          name: 'Number of processed character values per second'
          type: INTERNAL
          key: 'zabbix[wcache,values,str]'
          value_type: FLOAT
          units: '!vps'
          description: |
            The statistics and availability of Zabbix write cache.
            The number of processed character values.
          preprocessing:
            - type: CHANGE_PER_SECOND
          tags:
            - tag: component
              value: nvps
            - tag: component
              value: system
        - uuid: 5397d6d4dedc44c29ff25b8fd5611003
          name: 'Number of processed text values per second'
          type: INTERNAL
          key: 'zabbix[wcache,values,text]'
          value_type: FLOAT
          units: '!vps'
          description: |
            The statistics and availability of Zabbix write cache.
            The number of processed text values.
          preprocessing:
            - type: CHANGE_PER_SECOND
          tags:
            - tag: component
              value: nvps
            - tag: component
              value: system
        - uuid: 47132a8565c943c0abbd4918d6af9339
          name: 'Number of processed numeric (unsigned) values per second'
          type: INTERNAL
          key: 'zabbix[wcache,values,uint]'
          value_type: FLOAT
          units: '!vps'
          description: |
            The statistics and availability of Zabbix write cache.
            The number of processed numeric (unsigned) values.
          preprocessing:
            - type: CHANGE_PER_SECOND
          tags:
            - tag: component
              value: nvps
            - tag: component
              value: system
        - uuid: db364af6bcb24881850f3979933fccb0
          name: 'Number of processed values per second'
          type: INTERNAL
          key: 'zabbix[wcache,values]'
          value_type: FLOAT
          units: '!vps'
          description: |
            The statistics and availability of Zabbix write cache.
            The total number of values processed by Zabbix server or Zabbix proxy, except unsupported items.
          preprocessing:
            - type: CHANGE_PER_SECOND
          tags:
            - tag: component
              value: nvps
            - tag: component
              value: system
      discovery_rules:
        - uuid: 32bf5c3b8f1f4d10b26806ae0d2adb25
          name: 'High availability cluster node discovery'
          type: DEPENDENT
          key: zabbix.nodes.discovery
          description: 'LLD rule with item and trigger prototypes for node discovery.'
          item_prototypes:
            - uuid: c5cb7ffbd314494cb1801ae804e9c76e
              name: 'Cluster node [{#NODE.NAME}]: Address'
              type: DEPENDENT
              key: 'zabbix.node.address[{#NODE.ID}]'
              value_type: CHAR
              description: 'The IPv4 address of a node.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.address
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: 'zabbix.node.stats[{#NODE.ID}]'
              tags:
                - tag: component
                  value: cluster
                - tag: node-id
                  value: '{#NODE.ID}'
                - tag: node-name
                  value: '{#NODE.NAME}'
            - uuid: f444de7cdd7a4f3bb7f4b1f2e86e16d7
              name: 'Cluster node [{#NODE.NAME}]: Last access age'
              type: DEPENDENT
              key: 'zabbix.node.lastaccess.age[{#NODE.ID}]'
              units: uptime
              description: 'The time between the database''s `unix_timestamp()` and the last access time.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.lastaccess_age
              master_item:
                key: 'zabbix.node.stats[{#NODE.ID}]'
              tags:
                - tag: component
                  value: cluster
                - tag: node-id
                  value: '{#NODE.ID}'
                - tag: node-name
                  value: '{#NODE.NAME}'
            - uuid: 2e33f747803b45d7a9b94c171bf36f61
              name: 'Cluster node [{#NODE.NAME}]: Last access time'
              type: DEPENDENT
              key: 'zabbix.node.lastaccess.time[{#NODE.ID}]'
              units: unixtime
              description: 'Last access time.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.lastaccess
              master_item:
                key: 'zabbix.node.stats[{#NODE.ID}]'
              tags:
                - tag: component
                  value: cluster
                - tag: node-id
                  value: '{#NODE.ID}'
                - tag: node-name
                  value: '{#NODE.NAME}'
            - uuid: 4cf654a5bbb74ad69847b4ff15d0b623
              name: 'Cluster node [{#NODE.NAME}]: Stats'
              type: DEPENDENT
              key: 'zabbix.node.stats[{#NODE.ID}]'
              history: '0'
              value_type: TEXT
              description: 'Provides the statistics of a node.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[?(@.id=="{#NODE.ID}")].first()'
              master_item:
                key: 'zabbix[cluster,discovery,nodes]'
              tags:
                - tag: component
                  value: cluster
                - tag: component
                  value: raw
                - tag: node-id
                  value: '{#NODE.ID}'
                - tag: node-name
                  value: '{#NODE.NAME}'
            - uuid: 1e4de6a913764a22862c0265d329b592
              name: 'Cluster node [{#NODE.NAME}]: Status'
              type: DEPENDENT
              key: 'zabbix.node.status[{#NODE.ID}]'
              description: 'The status of a node.'
              valuemap:
                name: 'Cluster node status'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.status
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: 'zabbix.node.stats[{#NODE.ID}]'
              tags:
                - tag: component
                  value: cluster
                - tag: node-id
                  value: '{#NODE.ID}'
                - tag: node-name
                  value: '{#NODE.NAME}'
              trigger_prototypes:
                - uuid: 8d48978fb5724d19a950aa6eb8a3dd75
                  expression: 'last(/Zabbix server health/zabbix.node.status[{#NODE.ID}],#1)<>last(/Zabbix server health/zabbix.node.status[{#NODE.ID}],#2)'
                  name: 'Zabbix server: Cluster node [{#NODE.NAME}]: Status changed'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: INFO
                  description: 'The state of the node has changed. Acknowledge to close the problem manually.'
                  manual_close: 'YES'
                  tags:
                    - tag: scope
                      value: availability
          master_item:
            key: 'zabbix[cluster,discovery,nodes]'
          lld_macro_paths:
            - lld_macro: '{#NODE.ID}'
              path: $.id
            - lld_macro: '{#NODE.NAME}'
              path: $.name
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  var hacluster = JSON.parse(value);
                  
                  result = hacluster.map(function (hanode) {
                  	return {
                  		'id': hanode.id,
                  		'name': hanode.name
                  	};
                  });
                  
                  return JSON.stringify(result);
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
        - uuid: d6e3db2614914c1b977c7eb1b748bda6
          name: 'Zabbix proxy discovery'
          type: DEPENDENT
          key: zabbix.proxy.discovery
          description: 'LLD rule with item and trigger prototypes for proxy discovery.'
          item_prototypes:
            - uuid: 5cf1d8eae42740c88e2700ec619fc0e7
              name: 'Proxy [{#PROXY.NAME}]: Certificate'
              type: DEPENDENT
              key: 'zabbix.proxy.cert[{#PROXY.NAME}]'
              description: 'The encryption status for connections from a proxy.'
              valuemap:
                name: 'Service state'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.cert
                - type: JAVASCRIPT
                  parameters:
                    - 'return value === ''false'' ? 0 : 1'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: 'zabbix.proxy.stats[{#PROXY.NAME}]'
              tags:
                - tag: component
                  value: proxy
                - tag: proxy-name
                  value: '{#PROXY.NAME}'
            - uuid: 38498bb9fc884b2082ff5ecf76cc401e
              name: 'Proxy [{#PROXY.NAME}]: Compatibility'
              type: DEPENDENT
              key: 'zabbix.proxy.compatibility[{#PROXY.NAME}]'
              description: |
                Version of proxy compared to Zabbix server version.
                
                Possible values:
                0 - Undefined;
                1 - Current version (proxy and server have the same major version);
                2 - Outdated version (proxy version is older than server version, but is partially supported);
                3 - Unsupported version (proxy version is older than server previous LTS release version or server major version is older than proxy major version).
              valuemap:
                name: Compatibility
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.compatibility
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: 'zabbix.proxy.stats[{#PROXY.NAME}]'
              tags:
                - tag: component
                  value: proxy
                - tag: proxy-name
                  value: '{#PROXY.NAME}'
              trigger_prototypes:
                - uuid: d3b969b57fc74a2e96b8cf90f3159847
                  expression: 'last(/Zabbix server health/zabbix.proxy.compatibility[{#PROXY.NAME}],#1)=3'
                  name: 'Zabbix server: Proxy [{#PROXY.NAME}]: Zabbix proxy is not supported'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: HIGH
                  description: 'Zabbix proxy version is older than server previous LTS release version or server major version is older than proxy major version.'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: 519cd429ab184d9ba08a50968dc3e1e6
                  expression: 'last(/Zabbix server health/zabbix.proxy.compatibility[{#PROXY.NAME}],#1)=2'
                  name: 'Zabbix server: Proxy [{#PROXY.NAME}]: Zabbix proxy is outdated'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'Zabbix proxy version is older than server version, but is partially supported. Only data collection and remote execution is available.'
                  tags:
                    - tag: scope
                      value: availability
            - uuid: 5983273711b64a93bd30c7ba983f2b35
              name: 'Proxy [{#PROXY.NAME}]: Compression'
              type: DEPENDENT
              key: 'zabbix.proxy.compression[{#PROXY.NAME}]'
              description: 'The compression status of a proxy.'
              valuemap:
                name: 'Service state'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.compression
                - type: JAVASCRIPT
                  parameters:
                    - 'return value === ''false'' ? 0 : 1'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: 'zabbix.proxy.stats[{#PROXY.NAME}]'
              tags:
                - tag: component
                  value: proxy
                - tag: proxy-name
                  value: '{#PROXY.NAME}'
            - uuid: 01c4a2f48dce46e0a931fc7ab906800d
              name: 'Proxy [{#PROXY.NAME}]: Host count'
              type: DEPENDENT
              key: 'zabbix.proxy.hosts[{#PROXY.NAME}]'
              description: 'The number of enabled hosts assigned to a proxy.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.hosts
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: 'zabbix.proxy.stats[{#PROXY.NAME}]'
              tags:
                - tag: component
                  value: proxy
                - tag: proxy-name
                  value: '{#PROXY.NAME}'
            - uuid: 187a005cd52c4ed69919b0356c1ccd39
              name: 'Proxy [{#PROXY.NAME}]: Item count'
              type: DEPENDENT
              key: 'zabbix.proxy.items[{#PROXY.NAME}]'
              description: 'The number of enabled items on enabled hosts assigned to a proxy.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.items
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: 'zabbix.proxy.stats[{#PROXY.NAME}]'
              tags:
                - tag: component
                  value: proxy
                - tag: proxy-name
                  value: '{#PROXY.NAME}'
            - uuid: f8c915861df843bc9c95ec8034d66fb7
              name: 'Proxy [{#PROXY.NAME}]: Last seen, in seconds'
              type: DEPENDENT
              key: 'zabbix.proxy.last_seen[{#PROXY.NAME}]'
              value_type: FLOAT
              description: 'The time when a proxy was last seen by a server.'
              valuemap:
                name: 'Last seen'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.last_seen
              master_item:
                key: 'zabbix.proxy.stats[{#PROXY.NAME}]'
              tags:
                - tag: component
                  value: proxy
                - tag: proxy-name
                  value: '{#PROXY.NAME}'
              trigger_prototypes:
                - uuid: ee5eb0e4962b4bb59ac316a4110c86e3
                  expression: 'last(/Zabbix server health/zabbix.proxy.last_seen[{#PROXY.NAME}],#1)>{$ZABBIX.PROXY.LAST_SEEN.MAX}'
                  name: 'Zabbix server: Proxy [{#PROXY.NAME}]: Zabbix proxy last seen'
                  event_name: 'Zabbix server: Proxy [{#PROXY.NAME}]: Zabbix proxy last seen more than {$ZABBIX.PROXY.LAST_SEEN.MAX} seconds ago'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'Zabbix proxy is not updating the configuration data.'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: 541732183fa747d6b7a05351172720bc
                  expression: 'last(/Zabbix server health/zabbix.proxy.last_seen[{#PROXY.NAME}],#1)=-1'
                  name: 'Zabbix server: Proxy [{#PROXY.NAME}]: Zabbix proxy never seen'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'Zabbix proxy is not updating the configuration data.'
                  tags:
                    - tag: scope
                      value: availability
            - uuid: 357461ce5cd24632a1359c8ab31e0422
              name: 'Proxy [{#PROXY.NAME}]: Mode'
              type: DEPENDENT
              key: 'zabbix.proxy.mode[{#PROXY.NAME}]'
              description: 'The mode of Zabbix proxy.'
              valuemap:
                name: 'Proxy mode'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.passive
                - type: JAVASCRIPT
                  parameters:
                    - 'return value === ''false'' ? 0 : 1'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: 'zabbix.proxy.stats[{#PROXY.NAME}]'
              tags:
                - tag: component
                  value: proxy
                - tag: proxy-name
                  value: '{#PROXY.NAME}'
            - uuid: a68564ff50284903bdc38432638a653b
              name: 'Proxy [{#PROXY.NAME}]: PSK'
              type: DEPENDENT
              key: 'zabbix.proxy.psk[{#PROXY.NAME}]'
              description: 'The encryption status for connections from a proxy.'
              valuemap:
                name: 'Service state'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.psk
                - type: JAVASCRIPT
                  parameters:
                    - 'return value === ''false'' ? 0 : 1'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: 'zabbix.proxy.stats[{#PROXY.NAME}]'
              tags:
                - tag: component
                  value: proxy
                - tag: proxy-name
                  value: '{#PROXY.NAME}'
            - uuid: 3e45db48df464b91a4951f13dd298cd5
              name: 'Proxy [{#PROXY.NAME}]: Required VPS'
              type: DEPENDENT
              key: 'zabbix.proxy.requiredperformance[{#PROXY.NAME}]'
              value_type: FLOAT
              units: '!vps'
              description: 'The required performance of a proxy (the number of values that need to be collected per second).'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.requiredperformance
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: 'zabbix.proxy.stats[{#PROXY.NAME}]'
              tags:
                - tag: component
                  value: proxy
                - tag: proxy-name
                  value: '{#PROXY.NAME}'
            - uuid: 76b3dc42b38b4f4a9d6979a64e8f6a4b
              name: 'Proxy [{#PROXY.NAME}]: Stats'
              type: DEPENDENT
              key: 'zabbix.proxy.stats[{#PROXY.NAME}]'
              history: '0'
              value_type: TEXT
              description: 'The statistics for the discovered proxy.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.[?(@.name=="{#PROXY.NAME}")].first()'
              master_item:
                key: 'zabbix[proxy,discovery]'
              tags:
                - tag: component
                  value: proxy
                - tag: component
                  value: raw
                - tag: proxy-name
                  value: '{#PROXY.NAME}'
            - uuid: 8986a7d452c448de88dcb054541064e4
              name: 'Proxy [{#PROXY.NAME}]: Unencrypted'
              type: DEPENDENT
              key: 'zabbix.proxy.unencrypted[{#PROXY.NAME}]'
              description: 'The encryption status for connections from a proxy.'
              valuemap:
                name: 'Service state'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.unencrypted
                - type: JAVASCRIPT
                  parameters:
                    - 'return value === ''false'' ? 0 : 1'
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: 'zabbix.proxy.stats[{#PROXY.NAME}]'
              tags:
                - tag: component
                  value: proxy
                - tag: proxy-name
                  value: '{#PROXY.NAME}'
            - uuid: 22da7ee85c044e128ceb47225ce7aaba
              name: 'Proxy [{#PROXY.NAME}]: Version'
              type: DEPENDENT
              key: 'zabbix.proxy.version[{#PROXY.NAME}]'
              value_type: CHAR
              description: 'A version of Zabbix proxy.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.version
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: 'zabbix.proxy.stats[{#PROXY.NAME}]'
              tags:
                - tag: component
                  value: proxy
                - tag: proxy-name
                  value: '{#PROXY.NAME}'
          master_item:
            key: 'zabbix[proxy,discovery]'
          lld_macro_paths:
            - lld_macro: '{#PROXY.GROUP}'
              path: $.proxy_group
            - lld_macro: '{#PROXY.NAME}'
              path: $.name
          preprocessing:
            - type: JAVASCRIPT
              parameters:
                - |
                  var proxies = JSON.parse(value);
                  
                  result = proxies.map(function (proxy) {
                  	return {
                  		'name': proxy.name,
                  		'proxy_group': proxy.proxy_group
                  	};
                  });
                  
                  return JSON.stringify(result);
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
          overrides:
            - name: 'Tag proxy-group if exists'
              step: '1'
              filter:
                conditions:
                  - macro: '{#PROXY.GROUP}'
                    operator: EXISTS
              operations:
                - operator: REGEXP
                  tags:
                    - tag: proxy-group
                      value: '{#PROXY.GROUP}'
        - uuid: 60eaeee3a90542aeae9762d36c804cce
          name: 'Zabbix proxy groups discovery'
          type: DEPENDENT
          key: zabbix.proxy.groups.discovery
          filter:
            evaltype: AND
            conditions:
              - macro: '{#PROXY.GROUP.NAME}'
                value: '{$PROXY.GROUP.DISCOVERY.NAME.MATCHES}'
              - macro: '{#PROXY.GROUP.NAME}'
                value: '{$PROXY.GROUP.DISCOVERY.NAME.NOT_MATCHES}'
                operator: NOT_MATCHES_REGEX
          description: 'LLD rule with item and trigger prototypes for proxy groups discovery.'
          item_prototypes:
            - uuid: f48cf3314ff6460596468e7e6b8525de
              name: 'Proxy group [{#PROXY.GROUP.NAME}]: Available proxies, in %'
              type: DEPENDENT
              key: 'zabbix.proxy.group.avail.proxies.percent[{#PROXY.GROUP.NAME}]'
              units: '%'
              description: 'Percentage of available proxies in the Zabbix proxy group.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.pavailable
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: 'zabbix.proxy.group.stats[{#PROXY.GROUP.NAME}]'
              tags:
                - tag: component
                  value: proxy-group
                - tag: proxy-group-name
                  value: '{#PROXY.GROUP.NAME}'
              trigger_prototypes:
                - uuid: bbbaf1aaa1a64e57bad2ec53cc0e96f6
                  expression: 'max(/Zabbix server health/zabbix.proxy.group.avail.proxies.percent[{#PROXY.GROUP.NAME}],3m)<{$PROXY.GROUP.AVAIL.PERCENT.MIN}'
                  name: 'Zabbix server: Proxy group [{#PROXY.GROUP.NAME}]: Availability too low'
                  event_name: 'Zabbix server: Proxy group [{#PROXY.GROUP.NAME}]: Availability below {$PROXY.GROUP.AVAIL.PERCENT.MIN}%'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'The availability of proxies in a proxy group is below {$PROXY.GROUP.AVAIL.PERCENT.MIN}% for at least 3 minutes.'
                  tags:
                    - tag: scope
                      value: availability
            - uuid: 848a42e7022f4cfab65044e710859f80
              name: 'Proxy group [{#PROXY.GROUP.NAME}]: Available proxies'
              type: DEPENDENT
              key: 'zabbix.proxy.group.avail.proxies[{#PROXY.GROUP.NAME}]'
              description: 'Count of available proxies in the Zabbix proxy group.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.available
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: 'zabbix.proxy.group.stats[{#PROXY.GROUP.NAME}]'
              tags:
                - tag: component
                  value: proxy-group
                - tag: proxy-group-name
                  value: '{#PROXY.GROUP.NAME}'
            - uuid: 7fa43a19cb4a448bbf7b1bc3ddf17594
              name: 'Proxy group [{#PROXY.GROUP.NAME}]: Failover period'
              type: DEPENDENT
              key: 'zabbix.proxy.group.failover[{#PROXY.GROUP.NAME}]'
              value_type: FLOAT
              units: s
              description: 'Failover period in the Zabbix proxy group.'
              valuemap:
                name: 'Proxy group invalid value'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.failover_delay
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: 'zabbix.proxy.group.settings[{#PROXY.GROUP.NAME}]'
              tags:
                - tag: component
                  value: proxy-group
                - tag: proxy-group-name
                  value: '{#PROXY.GROUP.NAME}'
              trigger_prototypes:
                - uuid: 9d38306e2e1741eba5a910ccf380c484
                  expression: 'last(/Zabbix server health/zabbix.proxy.group.failover[{#PROXY.GROUP.NAME}],#1)=-1'
                  name: 'Zabbix server: Proxy group [{#PROXY.GROUP.NAME}]: Failover invalid value'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'Proxy group failover has an invalid value.'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: 150df878b45d4a259131f8bdf9e89fc1
              name: 'Proxy group [{#PROXY.GROUP.NAME}]: Minimum number of proxies'
              type: DEPENDENT
              key: 'zabbix.proxy.group.online.min[{#PROXY.GROUP.NAME}]'
              value_type: FLOAT
              description: 'Minimum number of proxies online in the Zabbix proxy group.'
              valuemap:
                name: 'Proxy group invalid value'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.min_online
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: 'zabbix.proxy.group.settings[{#PROXY.GROUP.NAME}]'
              tags:
                - tag: component
                  value: proxy-group
                - tag: proxy-group-name
                  value: '{#PROXY.GROUP.NAME}'
              trigger_prototypes:
                - uuid: ba1aa13dc8204c76be4fa85a6411de4d
                  expression: 'last(/Zabbix server health/zabbix.proxy.group.online.min[{#PROXY.GROUP.NAME}],#1)=-1'
                  name: 'Zabbix server: Proxy group [{#PROXY.GROUP.NAME}]: Minimum number of proxies invalid value'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: WARNING
                  description: 'Proxy group minimum number of proxies has an invalid value.'
                  tags:
                    - tag: scope
                      value: notice
            - uuid: b493eccc24ea4343ae3caf0651d46b6c
              name: 'Proxy group [{#PROXY.GROUP.NAME}]: Settings'
              type: DEPENDENT
              key: 'zabbix.proxy.group.settings[{#PROXY.GROUP.NAME}]'
              history: '0'
              value_type: TEXT
              description: 'The settings for the discovered proxy group.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.data[?(@.name=="{#PROXY.GROUP.NAME}")].first()'
              master_item:
                key: 'zabbix[proxy group,discovery]'
              tags:
                - tag: component
                  value: proxy-group
                - tag: component
                  value: raw
                - tag: proxy-group-name
                  value: '{#PROXY.GROUP.NAME}'
            - uuid: 8a2d84926a4b4e9a810dfac576dd8451
              name: 'Proxy group [{#PROXY.GROUP.NAME}]: State'
              type: DEPENDENT
              key: 'zabbix.proxy.group.state[{#PROXY.GROUP.NAME}]'
              description: |
                State of the Zabbix proxy group.
                
                Possible values:
                0 - unknown;
                1 - offline;
                2 - recovering;
                3 - online;
                4 - degrading.
              valuemap:
                name: 'Proxy group state'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - $.state
                - type: DISCARD_UNCHANGED_HEARTBEAT
                  parameters:
                    - 12h
              master_item:
                key: 'zabbix.proxy.group.stats[{#PROXY.GROUP.NAME}]'
              tags:
                - tag: component
                  value: proxy-group
                - tag: proxy-group-name
                  value: '{#PROXY.GROUP.NAME}'
              trigger_prototypes:
                - uuid: 770cb8447a26472c9d825c874fccc030
                  expression: 'last(/Zabbix server health/zabbix.proxy.group.state[{#PROXY.GROUP.NAME}],#1)=4'
                  name: 'Zabbix server: Proxy group [{#PROXY.GROUP.NAME}]: Status "degrading"'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: AVERAGE
                  description: 'The state of the Zabbix proxy group is "degrading".'
                  dependencies:
                    - name: 'Zabbix server: Proxy group [{#PROXY.GROUP.NAME}]: Status "offline"'
                      expression: 'last(/Zabbix server health/zabbix.proxy.group.state[{#PROXY.GROUP.NAME}],#1)=1'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: ecd98a89c19045dea28c2c635f3b5db9
                  expression: 'last(/Zabbix server health/zabbix.proxy.group.state[{#PROXY.GROUP.NAME}],#1)=1'
                  name: 'Zabbix server: Proxy group [{#PROXY.GROUP.NAME}]: Status "offline"'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: HIGH
                  description: 'The state of the Zabbix proxy group is "offline".'
                  tags:
                    - tag: scope
                      value: availability
                - uuid: e0c6041d678b46df8f633bda8ab24a1a
                  expression: 'last(/Zabbix server health/zabbix.proxy.group.state[{#PROXY.GROUP.NAME}],#1)<>last(/Zabbix server health/zabbix.proxy.group.state[{#PROXY.GROUP.NAME}],#2) and length(last(/Zabbix server health/zabbix.proxy.group.state[{#PROXY.GROUP.NAME}]))>0'
                  name: 'Zabbix server: Proxy group [{#PROXY.GROUP.NAME}]: Status changed'
                  opdata: 'Current value: {ITEM.LASTVALUE1}'
                  priority: INFO
                  description: 'The state of the Zabbix proxy group has changed. Acknowledge to close the problem manually.'
                  manual_close: 'YES'
                  dependencies:
                    - name: 'Zabbix server: Proxy group [{#PROXY.GROUP.NAME}]: Status "degrading"'
                      expression: 'last(/Zabbix server health/zabbix.proxy.group.state[{#PROXY.GROUP.NAME}],#1)=4'
                  tags:
                    - tag: scope
                      value: availability
            - uuid: aab08b95d317451089604077e6d8543c
              name: 'Proxy group [{#PROXY.GROUP.NAME}]: Stats'
              type: DEPENDENT
              key: 'zabbix.proxy.group.stats[{#PROXY.GROUP.NAME}]'
              history: '0'
              value_type: TEXT
              description: 'The statistics for the discovered proxy group.'
              preprocessing:
                - type: JSONPATH
                  parameters:
                    - '$.rtdata["{#PROXY.GROUP.NAME}"]'
              master_item:
                key: 'zabbix[proxy group,discovery]'
              tags:
                - tag: component
                  value: proxy-group
                - tag: component
                  value: raw
                - tag: proxy-group-name
                  value: '{#PROXY.GROUP.NAME}'
          master_item:
            key: 'zabbix[proxy group,discovery]'
          lld_macro_paths:
            - lld_macro: '{#PROXY.GROUP.NAME}'
              path: $.name
          preprocessing:
            - type: JSONPATH
              parameters:
                - $.data
            - type: DISCARD_UNCHANGED_HEARTBEAT
              parameters:
                - 1h
      tags:
        - tag: class
          value: software
        - tag: subclass
          value: logging
        - tag: subclass
          value: monitoring
        - tag: target
          value: server
        - tag: target
          value: zabbix
      macros:
        - macro: '{$PROXY.GROUP.AVAIL.PERCENT.MIN}'
          value: '75'
          description: 'Minimum threshold for the proxy group availability percentage triggers.'
          config:
            type: TEXT
            priority: '4'
            section_name: Thresholds
            label: 'Proxy group availability percentage'
            description: 'Threshold for the proxy group availability percentage triggers. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$PROXY.GROUP.DISCOVERY.NAME.MATCHES}'
          value: '.*'
          description: 'Filter to include discovered proxy groups by their name.'
          config:
            type: TEXT
            priority: '6'
            section_name: Filters
            label: 'Include proxy group name filter'
            description: 'Filter to include discovered proxy groups by their name.'
        - macro: '{$PROXY.GROUP.DISCOVERY.NAME.NOT_MATCHES}'
          value: CHANGE_IF_NEEDED
          description: 'Filter to exclude discovered proxy groups by their name.'
          config:
            type: TEXT
            priority: '7'
            section_name: Filters
            label: 'Exclude proxy group name filter'
            description: 'Filter to exclude discovered proxy groups by their name.'
        - macro: '{$ZABBIX.PROXY.LAST_SEEN.MAX}'
          value: '600'
          description: 'The maximum number of seconds that Zabbix proxy has not been seen.'
          config:
            type: TEXT
            priority: '5'
            section_name: Thresholds
            label: 'Seconds since the last Zabbix proxy seen'
            description: 'Threshold value of time since the last Zabbix proxy seen for triggers. No less than 0.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$ZABBIX.SERVER.UTIL.MAX}'
          value: '75'
          description: 'Default maximum threshold for percentage utilization triggers (use macro context for specification).'
          config:
            type: TEXT
            priority: '2'
            section_name: Thresholds
            label: 'Maximum process utilization percentage'
            description: 'Default maximum threshold for process utilization triggers. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$ZABBIX.SERVER.UTIL.MAX:"value cache"}'
          value: '95'
          description: 'Default minimum threshold for the value cache utilization trigger.'
          config:
            type: TEXT
            priority: '3'
            section_name: Thresholds
            label: 'Maximum value cache utilization percentage'
            description: 'Threshold for the value cache utilization trigger. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
        - macro: '{$ZABBIX.SERVER.UTIL.MIN}'
          value: '65'
          description: 'Default minimum threshold for percentage utilization triggers (use macro context for specification).'
          config:
            type: TEXT
            priority: '1'
            section_name: Thresholds
            label: 'Minimum process utilization percentage'
            description: 'Default minimum threshold for process utilization triggers. In the range from 0 to 100 inclusive.'
            regex: '^-?([0-9]+|(([0-9]+)\.([0-9]+)))$'
      dashboards:
        - uuid: 6815a90fb9b745fd8f1b1f47697893d6
          name: 'Zabbix server health'
          auto_start: 'NO'
          pages:
            - name: Performance
              widgets:
                - type: svggraph
                  name: 'Cache usage, in %'
                  width: '36'
                  height: '6'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: 1f78b4
                    - type: STRING
                      name: ds.0.color.1
                      value: 33a02c
                    - type: STRING
                      name: ds.0.color.2
                      value: e31a1c
                    - type: STRING
                      name: ds.0.color.3
                      value: ff7f00
                    - type: STRING
                      name: ds.0.color.4
                      value: 6a3d9a
                    - type: STRING
                      name: ds.0.color.5
                      value: b15928
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[wcache,trend,pused]'
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[rcache,buffer,pused]'
                    - type: ITEM
                      name: ds.0.itemids.2
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[wcache,index,pused]'
                    - type: ITEM
                      name: ds.0.itemids.3
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[wcache,history,pused]'
                    - type: ITEM
                      name: ds.0.itemids.4
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[vcache,buffer,pused]'
                    - type: ITEM
                      name: ds.0.itemids.5
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[vmware,buffer,pused]'
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAACA
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Server performance'
                  'y': '6'
                  width: '72'
                  height: '5'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: 33a02c
                    - type: STRING
                      name: ds.0.color.1
                      value: 1f78b4
                    - type: STRING
                      name: ds.0.color.2
                      value: e31a1c
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[wcache,values]'
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[vps,written]'
                    - type: ITEM
                      name: ds.0.itemids.2
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[queue]'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAACC
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Values processed'
                  'y': '11'
                  width: '72'
                  height: '5'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: 1f78b4
                    - type: STRING
                      name: ds.0.color.1
                      value: 33a02c
                    - type: STRING
                      name: ds.0.color.2
                      value: e31a1c
                    - type: STRING
                      name: ds.0.color.3
                      value: ff7f00
                    - type: STRING
                      name: ds.0.color.4
                      value: 6a3d9a
                    - type: STRING
                      name: ds.0.color.5
                      value: b15928
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[wcache,values,uint]'
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[wcache,values,float]'
                    - type: ITEM
                      name: ds.0.itemids.2
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[wcache,values,not supported]'
                    - type: ITEM
                      name: ds.0.itemids.3
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[wcache,values,str]'
                    - type: ITEM
                      name: ds.0.itemids.4
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[wcache,values,log]'
                    - type: ITEM
                      name: ds.0.itemids.5
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[wcache,values,text]'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAACD
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Value cache effectiveness'
                  'y': '16'
                  width: '36'
                  height: '5'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: 33a02c
                    - type: STRING
                      name: ds.0.color.1
                      value: e31a1c
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[vcache,cache,hits]'
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[vcache,cache,misses]'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAACE
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Preprocessing throughput'
                  'y': '21'
                  width: '36'
                  height: '5'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: ff465c
                    - type: STRING
                      name: ds.0.color.1
                      value: ffdf00
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[preprocessing_throughput_queued]'
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[preprocessing_throughput_direct]'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '2'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAABV
                - type: svggraph
                  name: 'Internal queues'
                  x: '36'
                  width: '36'
                  height: '6'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: ffca58
                    - type: STRING
                      name: ds.0.color.1
                      value: 1f78b4
                    - type: STRING
                      name: ds.0.color.2
                      value: 6a3d9a
                    - type: STRING
                      name: ds.0.color.3
                      value: d62728
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[preprocessing_queue]'
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[lld_queue]'
                    - type: ITEM
                      name: ds.0.itemids.2
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[discovery_queue]'
                    - type: ITEM
                      name: ds.0.itemids.3
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[connector_queue]'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAACB
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Trend cache effectiveness, in %'
                  x: '36'
                  'y': '16'
                  width: '36'
                  height: '5'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: ffca58
                    - type: STRING
                      name: ds.0.color.1
                      value: e31a1c
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[tcache,cache,pitems]'
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[tcache,cache,pmisses]'
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_lines_mode
                      value: '1'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAACF
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Preprocessing VPS'
                  x: '36'
                  'y': '21'
                  width: '36'
                  height: '5'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: ff465c
                    - type: STRING
                      name: ds.0.color.1
                      value: ffdf00
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[preprocessing_vps_queued]'
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[preprocessing_vps_direct]'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '2'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAABW
            - name: Processes
              widgets:
                - type: svggraph
                  name: 'Utilization: LLD processes'
                  width: '36'
                  height: '6'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: ffca58
                    - type: STRING
                      name: ds.0.color.1
                      value: 7e57c2
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,lld manager,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,lld worker,avg,busy]'
                    - type: INTEGER
                      name: ds.1.axisy
                      value: '1'
                    - type: STRING
                      name: ds.1.color.0
                      value: ff465c
                    - type: INTEGER
                      name: ds.1.dataset_type
                      value: '0'
                    - type: INTEGER
                      name: ds.1.fill
                      value: '2'
                    - type: ITEM
                      name: ds.1.itemids.0
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[lld_queue]'
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '3'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAABI
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Utilization: Preprocessing processes'
                  'y': '6'
                  width: '36'
                  height: '6'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: ffca58
                    - type: STRING
                      name: ds.0.color.1
                      value: 7e57c2
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,preprocessing manager,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,preprocessing worker,avg,busy]'
                    - type: INTEGER
                      name: ds.1.axisy
                      value: '1'
                    - type: STRING
                      name: ds.1.color.0
                      value: ff465c
                    - type: INTEGER
                      name: ds.1.dataset_type
                      value: '0'
                    - type: INTEGER
                      name: ds.1.fill
                      value: '2'
                    - type: ITEM
                      name: ds.1.itemids.0
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[preprocessing_queue]'
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '3'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAABK
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Utilization: Synchronous gathering processes'
                  'y': '12'
                  width: '72'
                  height: '7'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: 1f78b4
                    - type: STRING
                      name: ds.0.color.1
                      value: ff7f00
                    - type: STRING
                      name: ds.0.color.2
                      value: 6a3d9a
                    - type: STRING
                      name: ds.0.color.3
                      value: b15928
                    - type: STRING
                      name: ds.0.color.4
                      value: 17becf
                    - type: STRING
                      name: ds.0.color.5
                      value: a6cee3
                    - type: STRING
                      name: ds.0.color.6
                      value: fb9a99
                    - type: STRING
                      name: ds.0.color.7
                      value: bcbd22
                    - type: STRING
                      name: ds.0.color.8
                      value: ffca58
                    - type: STRING
                      name: ds.0.color.9
                      value: e31a1c
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,poller,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,internal poller,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.2
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,ipmi poller,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.3
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,ipmi manager,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.4
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,http poller,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.5
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,java poller,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.6
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,vmware collector,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.7
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,browser poller,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.8
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,odbc poller,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.9
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,icmp pinger,avg,busy]'
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '10'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAABM
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Utilization: Asynchronous gathering processes'
                  'y': '19'
                  width: '72'
                  height: '6'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: 1f78b4
                    - type: STRING
                      name: ds.0.color.1
                      value: bcbd22
                    - type: STRING
                      name: ds.0.color.2
                      value: 6a3d9a
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,agent poller,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,http agent poller,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.2
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,snmp poller,avg,busy]'
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '3'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAABN
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Utilization: Internal processes: Core'
                  'y': '25'
                  width: '36'
                  height: '6'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: 1f78b4
                    - type: STRING
                      name: ds.0.color.1
                      value: 33a02c
                    - type: STRING
                      name: ds.0.color.2
                      value: e31a1c
                    - type: STRING
                      name: ds.0.color.3
                      value: ff7f00
                    - type: STRING
                      name: ds.0.color.4
                      value: 6a3d9a
                    - type: STRING
                      name: ds.0.color.5
                      value: b15928
                    - type: STRING
                      name: ds.0.color.6
                      value: a6cee3
                    - type: STRING
                      name: ds.0.color.7
                      value: ff465c
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,configuration syncer,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,configuration syncer worker,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.2
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,history syncer,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.3
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,self-monitoring,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.4
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,service manager,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.5
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,task manager,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.6
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,timer,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.7
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,history poller,avg,busy]'
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '8'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAABO
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Utilization: Gathering processes: Trappers'
                  'y': '31'
                  width: '36'
                  height: '5'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: cab2d6
                    - type: STRING
                      name: ds.0.color.1
                      value: ffca58
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,trapper,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,snmp trapper,avg,busy]'
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '2'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAABQ
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Utilization: Alerting processes'
                  'y': '36'
                  width: '36'
                  height: '5'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: 17becf
                    - type: STRING
                      name: ds.0.color.1
                      value: bcbd22
                    - type: STRING
                      name: ds.0.color.2
                      value: d62728
                    - type: STRING
                      name: ds.0.color.3
                      value: ff7f00
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,alert manager,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,alert syncer,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.2
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,alerter,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.3
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,escalator,avg,busy]'
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '4'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAABS
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Utilization: Proxy management and data exchange'
                  'y': '41'
                  width: '72'
                  height: '5'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: cab2d6
                    - type: STRING
                      name: ds.0.color.1
                      value: '000080'
                    - type: STRING
                      name: ds.0.color.2
                      value: '808000'
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,trapper,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,proxy poller,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.2
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,proxy group manager,avg,busy]'
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '3'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAABU
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Utilization: Discovery processes'
                  x: '36'
                  width: '36'
                  height: '6'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: 7e57c2
                    - type: STRING
                      name: ds.0.color.1
                      value: 1f78b4
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,discovery manager,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,discovery worker,avg,busy]'
                    - type: INTEGER
                      name: ds.1.axisy
                      value: '1'
                    - type: STRING
                      name: ds.1.color.0
                      value: ff465c
                    - type: INTEGER
                      name: ds.1.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.1.itemids.0
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[discovery_queue]'
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '3'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAABJ
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Utilization: Connector processes'
                  x: '36'
                  'y': '6'
                  width: '36'
                  height: '6'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: b2df8a
                    - type: STRING
                      name: ds.0.color.1
                      value: ffca58
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,connector manager,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,connector worker,avg,busy]'
                    - type: INTEGER
                      name: ds.1.axisy
                      value: '1'
                    - type: STRING
                      name: ds.1.color.0
                      value: ff465c
                    - type: INTEGER
                      name: ds.1.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.1.itemids.0
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[connector_queue]'
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '3'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAABL
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Utilization: Internal processes: Housekeeping'
                  x: '36'
                  'y': '25'
                  width: '36'
                  height: '6'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: ffca58
                    - type: STRING
                      name: ds.0.color.1
                      value: cab2d6
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,housekeeper,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,trigger housekeeper,avg,busy]'
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '2'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAABP
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Utilization: Availability processes'
                  x: '36'
                  'y': '31'
                  width: '36'
                  height: '5'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: 6a3d9a
                    - type: STRING
                      name: ds.0.color.1
                      value: b15928
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,unreachable poller,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,availability manager,avg,busy]'
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '2'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAABR
                    - type: INTEGER
                      name: show_problems
                      value: '1'
                - type: svggraph
                  name: 'Utilization: Reporting processes'
                  x: '36'
                  'y': '36'
                  width: '36'
                  height: '5'
                  fields:
                    - type: STRING
                      name: ds.0.color.0
                      value: e377c2
                    - type: STRING
                      name: ds.0.color.1
                      value: ffdf00
                    - type: INTEGER
                      name: ds.0.dataset_type
                      value: '0'
                    - type: ITEM
                      name: ds.0.itemids.0
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,report manager,avg,busy]'
                    - type: ITEM
                      name: ds.0.itemids.1
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[process,report writer,avg,busy]'
                    - type: STRING
                      name: lefty_max
                      value: '100'
                    - type: STRING
                      name: lefty_min
                      value: '0'
                    - type: INTEGER
                      name: legend_lines
                      value: '2'
                    - type: INTEGER
                      name: legend_statistic
                      value: '1'
                    - type: STRING
                      name: reference
                      value: AAABT
                    - type: INTEGER
                      name: show_problems
                      value: '1'
            - name: Statuses
              widgets:
                - type: item
                  name: 'Zabbix server version'
                  width: '16'
                  height: '5'
                  fields:
                    - type: INTEGER
                      name: decimal_places
                      value: '0'
                    - type: ITEM
                      name: itemid.0
                      value:
                        host: 'Zabbix server health'
                        key: 'zabbix[version]'
                    - type: INTEGER
                      name: show.0
                      value: '2'
                    - type: INTEGER
                      name: show.1
                      value: '3'
                    - type: INTEGER
                      name: show.2
                      value: '4'
                    - type: INTEGER
                      name: time_h_pos
                      value: '2'
                    - type: INTEGER
                      name: time_size
                      value: '9'
                    - type: INTEGER
                      name: time_v_pos
                      value: '2'
                    - type: INTEGER
                      name: value_size
                      value: '25'
                - type: honeycomb
                  name: 'High availability: Node state'
                  x: '16'
                  width: '56'
                  height: '5'
                  fields:
                    - type: STRING
                      name: items.0
                      value: 'Cluster node [*]: Status'
                    - type: STRING
                      name: primary_label
                      value: '{{ITEM.NAME}.regsub("Cluster node \[(.*)]: Status","\1")}'
                    - type: STRING
                      name: reference
                      value: BAAAA
                    - type: INTEGER
                      name: secondary_label_decimal_places
                      value: '0'
                    - type: STRING
                      name: thresholds.0.color
                      value: b2df8a
                    - type: STRING
                      name: thresholds.0.threshold
                      value: '0'
                    - type: STRING
                      name: thresholds.1.color
                      value: '878787'
                    - type: STRING
                      name: thresholds.1.threshold
                      value: '1'
                    - type: STRING
                      name: thresholds.2.color
                      value: e31a1c
                    - type: STRING
                      name: thresholds.2.threshold
                      value: '2'
                    - type: STRING
                      name: thresholds.3.color
                      value: 33a02c
                    - type: STRING
                      name: thresholds.3.threshold
                      value: '3'
      valuemaps:
        - uuid: cee1681b12ff49b6b7d442a851e870b4
          name: 'Cluster node status'
          mappings:
            - value: '0'
              newvalue: Standby
            - value: '1'
              newvalue: Stopped
            - value: '2'
              newvalue: Unavailable
            - value: '3'
              newvalue: Active
        - uuid: b985f0f026be4889923f5d16393e5383
          name: Compatibility
          mappings:
            - value: '0'
              newvalue: Undefined
            - value: '1'
              newvalue: Current
            - value: '2'
              newvalue: Outdated
            - value: '3'
              newvalue: Unsupported
        - uuid: 3b60aa68965f47baba665e354e0e79de
          name: 'Last seen'
          mappings:
            - value: '-1'
              newvalue: Never
        - uuid: 8c23fc3b231b439a8eec4d0d60859c90
          name: 'Proxy group invalid value'
          mappings:
            - value: '-1'
              newvalue: 'Invalid value'
        - uuid: acd6475b06334535be452cd984a11f6b
          name: 'Proxy group state'
          mappings:
            - value: '0'
              newvalue: Unknown
            - value: '1'
              newvalue: Offline
            - value: '2'
              newvalue: Recovering
            - value: '3'
              newvalue: Online
            - value: '4'
              newvalue: Degrading
        - uuid: 7c52b5e2d2434edeba089e136a7eb845
          name: 'Proxy mode'
          mappings:
            - value: '0'
              newvalue: Active
            - value: '1'
              newvalue: Passive
        - uuid: 0d2da53a4e404248b9d156b5a7342002
          name: 'Service state'
          mappings:
            - value: '0'
              newvalue: 'Off'
            - value: '1'
              newvalue: 'On'
        - uuid: 97bbea700550483bbd8405b4dd9d8005
          name: 'Value cache operating mode'
          mappings:
            - value: '0'
              newvalue: Normal
            - value: '1'
              newvalue: 'Low memory'
        - uuid: 9b8fe61b528547f49598075e79fb6623
          name: 'Zabbix server check'
          mappings:
            - value: '0'
              newvalue: 'False'
            - value: '1'
              newvalue: 'True'
  triggers:
    - uuid: 4882bb9496ac40bc97c3c5278c0181c8
      expression: '(last(/Juniper MX by SNMP/juniper.mx.system.hw.uptime[hrSystemUptime.0])>0 and last(/Juniper MX by SNMP/juniper.mx.system.hw.uptime[hrSystemUptime.0])<10m) or (last(/Juniper MX by SNMP/juniper.mx.system.hw.uptime[hrSystemUptime.0])=0 and last(/Juniper MX by SNMP/juniper.mx.system.net.uptime[sysUpTime.0])<10m)'
      name: 'Juniper MX: Host has been restarted'
      event_name: 'Juniper MX: {HOST.NAME} has been restarted (uptime < 10m)'
      priority: WARNING
      description: 'Uptime is less than 10 minutes.'
      manual_close: 'YES'
      dependencies:
        - name: 'Juniper MX: No SNMP data collection'
          expression: 'max(/Juniper MX by SNMP/zabbix[host,snmp,available],{$JUNIPER.MX.SNMP.TIMEOUT})=0'
      tags:
        - tag: scope
          value: notice
    - uuid: ae5269e17d434927bfd6edc09a9a1f4d
      expression: 'last(/Linux by Zabbix agent/proc.num)/last(/Linux by Zabbix agent/kernel.maxproc)*100>80'
      name: 'Linux: Getting closer to process limit'
      event_name: 'Linux: Getting closer to process limit (over 80% used)'
      opdata: '{ITEM.LASTVALUE1} active, {ITEM.LASTVALUE2} limit.'
      priority: WARNING
      tags:
        - tag: scope
          value: performance
    - uuid: f49fc01c5ac945d59455563bdbcc6469
      expression: 'max(/Linux by Zabbix agent/system.swap.size[,pfree],5m)<{$SWAP.PFREE.MIN.WARN} and last(/Linux by Zabbix agent/system.swap.size[,total])>0'
      name: 'Linux: High swap space usage'
      event_name: 'Linux: High swap space usage (less than {$SWAP.PFREE.MIN.WARN}% free)'
      opdata: 'Free: {ITEM.LASTVALUE1}, total: {ITEM.LASTVALUE2}'
      priority: WARNING
      description: 'If there is no swap configured, this trigger is ignored.'
      dependencies:
        - name: 'Linux: High memory utilization'
          expression: 'min(/Linux by Zabbix agent/vm.memory.utilization,5m)>{$MEMORY.UTIL.MAX}'
        - name: 'Linux: Lack of available memory'
          expression: 'max(/Linux by Zabbix agent/vm.memory.size[available],5m)<{$MEMORY.AVAILABLE.MIN} and last(/Linux by Zabbix agent/vm.memory.size[total])>0'
      tags:
        - tag: scope
          value: capacity
    - uuid: 686470cef97f48f6b017e9fc7a078afe
      expression: 'max(/Linux by Zabbix agent/vm.memory.size[available],5m)<{$MEMORY.AVAILABLE.MIN} and last(/Linux by Zabbix agent/vm.memory.size[total])>0'
      name: 'Linux: Lack of available memory'
      event_name: 'Linux: Lack of available memory (<{$MEMORY.AVAILABLE.MIN} of {ITEM.VALUE2})'
      opdata: 'Available: {ITEM.LASTVALUE1}, total: {ITEM.LASTVALUE2}'
      priority: AVERAGE
      description: 'The system is running out of memory.'
      tags:
        - tag: scope
          value: capacity
        - tag: scope
          value: performance
    - uuid: 695f0c352377409d95aca3fe76d1cae2
      expression: |
        min(/Linux by Zabbix agent/system.cpu.load[all,avg1],5m)/last(/Linux by Zabbix agent/system.cpu.num)>{$LOAD_AVG_PER_CPU.MAX.WARN}
        and last(/Linux by Zabbix agent/system.cpu.load[all,avg5])>0
        and last(/Linux by Zabbix agent/system.cpu.load[all,avg15])>0
      name: 'Linux: Load average is too high'
      event_name: 'Linux: Load average is too high (per CPU load over {$LOAD_AVG_PER_CPU.MAX.WARN} for 5m)'
      opdata: 'Load averages(1m 5m 15m): ({ITEM.LASTVALUE1} {ITEM.LASTVALUE3} {ITEM.LASTVALUE4}), # of CPUs: {ITEM.LASTVALUE2}'
      priority: AVERAGE
      description: 'The load average per CPU is too high. The system may be slow to respond.'
      tags:
        - tag: scope
          value: capacity
        - tag: scope
          value: performance
  graphs:
    - uuid: 4a72646168d545c398c92e09c975a966
      name: 'Linux: CPU jumps'
      graph_items:
        - color: 199C0D
          item:
            host: 'Linux by Zabbix agent'
            key: system.cpu.switches
        - sortorder: '1'
          color: F63100
          item:
            host: 'Linux by Zabbix agent'
            key: system.cpu.intr
    - uuid: f217c30162b24c9190785fad1ec83b73
      name: 'Linux: CPU usage'
      type: STACKED
      ymin_type_1: FIXED
      ymax_type_1: FIXED
      graph_items:
        - color: 199C0D
          item:
            host: 'Linux by Zabbix agent'
            key: 'system.cpu.util[,system]'
        - sortorder: '1'
          color: F63100
          item:
            host: 'Linux by Zabbix agent'
            key: 'system.cpu.util[,user]'
        - sortorder: '2'
          color: 00611C
          item:
            host: 'Linux by Zabbix agent'
            key: 'system.cpu.util[,nice]'
        - sortorder: '3'
          color: F7941D
          item:
            host: 'Linux by Zabbix agent'
            key: 'system.cpu.util[,iowait]'
        - sortorder: '4'
          color: FC6EA3
          item:
            host: 'Linux by Zabbix agent'
            key: 'system.cpu.util[,steal]'
        - sortorder: '5'
          color: 6C59DC
          item:
            host: 'Linux by Zabbix agent'
            key: 'system.cpu.util[,interrupt]'
        - sortorder: '6'
          color: C7A72D
          item:
            host: 'Linux by Zabbix agent'
            key: 'system.cpu.util[,softirq]'
        - sortorder: '7'
          color: BA2A5D
          item:
            host: 'Linux by Zabbix agent'
            key: 'system.cpu.util[,guest]'
        - sortorder: '8'
          color: F230E0
          item:
            host: 'Linux by Zabbix agent'
            key: 'system.cpu.util[,guest_nice]'
    - uuid: 668ae470ea33444bb40e3b83b97659c3
      name: 'Linux: CPU utilization'
      ymin_type_1: FIXED
      ymax_type_1: FIXED
      graph_items:
        - drawtype: GRADIENT_LINE
          color: 199C0D
          item:
            host: 'Linux by Zabbix agent'
            key: system.cpu.util
    - uuid: f260a63bc3b04c3b80b47f83bb05ed9c
      name: 'Linux: Memory usage'
      ymin_type_1: FIXED
      graph_items:
        - drawtype: BOLD_LINE
          color: 199C0D
          item:
            host: 'Linux by Zabbix agent'
            key: 'vm.memory.size[total]'
        - sortorder: '1'
          drawtype: GRADIENT_LINE
          color: F63100
          item:
            host: 'Linux by Zabbix agent'
            key: 'vm.memory.size[available]'
    - uuid: bac7a8fb7e014696b54d262bf40e5b12
      name: 'Linux: Memory utilization'
      ymin_type_1: FIXED
      ymax_type_1: FIXED
      graph_items:
        - drawtype: GRADIENT_LINE
          color: 199C0D
          item:
            host: 'Linux by Zabbix agent'
            key: vm.memory.utilization
    - uuid: fa49531c9c3d4087b2205bed6ed0469f
      name: 'Linux: Processes'
      graph_items:
        - color: 199C0D
          item:
            host: 'Linux by Zabbix agent'
            key: proc.num
        - sortorder: '1'
          color: F63100
          item:
            host: 'Linux by Zabbix agent'
            key: 'proc.num[,,run]'
    - uuid: 1ca6e2d883114853bd402110c3fd211e
      name: 'Linux: Swap usage'
      graph_items:
        - color: 199C0D
          item:
            host: 'Linux by Zabbix agent'
            key: 'system.swap.size[,free]'
        - sortorder: '1'
          color: F63100
          item:
            host: 'Linux by Zabbix agent'
            key: 'system.swap.size[,total]'
    - uuid: 1b8cc9470a5040d79090a3e5dfcb0a76
      name: 'Linux: System load'
      ymin_type_1: FIXED
      graph_items:
        - color: 199C0D
          item:
            host: 'Linux by Zabbix agent'
            key: 'system.cpu.load[all,avg1]'
        - sortorder: '1'
          color: F63100
          item:
            host: 'Linux by Zabbix agent'
            key: 'system.cpu.load[all,avg5]'
        - sortorder: '2'
          color: 00611C
          item:
            host: 'Linux by Zabbix agent'
            key: 'system.cpu.load[all,avg15]'
        - sortorder: '3'
          color: F7941D
          yaxisside: RIGHT
          item:
            host: 'Linux by Zabbix agent'
            key: system.cpu.num
