zabbix_export: version: '7.0' template_groups: - uuid: 846977d1dfed4968bc5f8bdb363285bc name: 'Templates/Operating systems' templates: - uuid: 2506b0ca01884903b547b1e19b76ce6d template: 'Linux by Prom' name: 'Linux by Prom' description: | Official Linux template using node exporter. Known Issues: Description: node_exporter v0.16.0 renamed many metrics. CPU utilization for 'guest' and 'guest_nice' metrics are not supported in this template with node_exporter < 0.16. Disk IO metrics are not supported. Other metrics provided as 'best effort'. See https://github.com/prometheus/node_exporter/releases/tag/v0.16.0 for details. Version: below 0.16.0 Description: metric node_network_info with label 'device' cannot be found, so network discovery is not possible. Version: below 0.18 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" 2.0.0 vendor: name: Zabbix version: 7.0-0 groups: - name: 'Templates/Operating systems' items: - uuid: 9a60d1e53caa4049a33aa52f3f55ad75 name: 'Linux: Version of node_exporter running' type: DEPENDENT key: 'agent.version[node_exporter]' delay: '0' history: 7d trends: '0' value_type: CHAR preprocessing: - type: PROMETHEUS_PATTERN parameters: - node_exporter_build_info - label - version - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1d master_item: key: node_exporter.get tags: - tag: component value: application - uuid: d3631bd7effc4cd1bc45c991b3c3038f name: 'Linux: Number of open file descriptors' type: DEPENDENT key: 'fd.open[node_exporter]' delay: '0' history: 7d value_type: FLOAT preprocessing: - type: PROMETHEUS_PATTERN parameters: - node_filefd_allocated - value - '' master_item: key: node_exporter.get tags: - tag: component value: system - uuid: a8b78e776e1d4011bbcb6dd54e32b40b name: 'Linux: Maximum number of open file descriptors' type: DEPENDENT key: 'kernel.maxfiles[node_exporter]' delay: '0' history: 7d value_type: FLOAT description: 'It could be increased by using `sysctl` utility or modifying the file `/etc/sysctl.conf`.' preprocessing: - type: PROMETHEUS_PATTERN parameters: - node_filefd_maximum - value - '' - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1d master_item: key: node_exporter.get tags: - tag: component value: system triggers: - uuid: c0002ad071d7497ab32633c93624e0c2 expression: 'last(/Linux by Prom/kernel.maxfiles[node_exporter])<{$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 dependencies: - name: 'Linux: Running out of file descriptors' expression: 'last(/Linux by Prom/fd.open[node_exporter])/last(/Linux by Prom/kernel.maxfiles[node_exporter])*100>80' tags: - tag: scope value: performance - uuid: 8b2fffcba0b24ca8a687361645ffaa1d name: 'Linux: Get node_exporter metrics' type: HTTP_AGENT key: node_exporter.get history: 1h trends: '0' value_type: TEXT url: 'http://{HOST.CONN}:{$NODE_EXPORTER_PORT}/metrics' tags: - tag: component value: raw triggers: - uuid: e33fafc8476e404aa4150d0d491f4c83 expression: 'nodata(/Linux by Prom/node_exporter.get,30m)=1' name: 'Linux: node_exporter is not available' event_name: 'node_exporter is not available (or no data for 30m)' priority: WARNING description: 'Failed to fetch system metrics from node_exporter in time.' manual_close: 'YES' tags: - tag: scope value: availability - uuid: 75afcb39d2d7496e9490cd14f1431600 name: 'Linux: System boot time' type: DEPENDENT key: 'system.boottime[node_exporter]' delay: '0' history: 7d value_type: FLOAT units: unixtime preprocessing: - type: PROMETHEUS_PATTERN parameters: - '{__name__=~"^node_boot_time(?:_seconds)?$"}' - value - '' master_item: key: node_exporter.get tags: - tag: component value: system - uuid: a732c4df8af047fbb874e1fb363b5e9e name: 'Linux: CPU guest time' type: DEPENDENT key: 'system.cpu.guest[node_exporter]' delay: '0' history: 7d value_type: FLOAT units: '%' description: 'Guest time - the time spent on running a virtual CPU for a guest operating system.' preprocessing: - type: PROMETHEUS_TO_JSON parameters: - '{__name__=~"^node_cpu(?:_guest_seconds_total)?$",cpu=~".+",mode=~"^(?:user|guest)$"}' - type: JAVASCRIPT parameters: - | //calculates average, all cpu utilization var valueArr = JSON.parse(value); return valueArr.reduce(function(acc,obj){ return acc + parseFloat(obj['value']) },0)/valueArr.length; - type: CHANGE_PER_SECOND parameters: - '' - type: MULTIPLIER parameters: - '100' master_item: key: node_exporter.get tags: - tag: component value: cpu - uuid: 759809ee6c9e43cf8ff44f987221a90e name: 'Linux: CPU guest nice time' type: DEPENDENT key: 'system.cpu.guest_nice[node_exporter]' delay: '0' history: 7d value_type: FLOAT units: '%' description: 'The time spent on running a niced guest (a virtual CPU for guest operating systems under the control of the Linux kernel).' preprocessing: - type: PROMETHEUS_TO_JSON parameters: - '{__name__=~"^node_cpu(?:_guest_seconds_total)?$",cpu=~".+",mode=~"^(?:nice|guest_nice)$"}' - type: JAVASCRIPT parameters: - | //calculates average, all cpu utilization var valueArr = JSON.parse(value); return valueArr.reduce(function(acc,obj){ return acc + parseFloat(obj['value']) },0)/valueArr.length; - type: CHANGE_PER_SECOND parameters: - '' - type: MULTIPLIER parameters: - '100' master_item: key: node_exporter.get tags: - tag: component value: cpu - uuid: 7bb99c606c6b497aaef279663b60829b name: 'Linux: CPU idle time' type: DEPENDENT key: 'system.cpu.idle[node_exporter]' delay: '0' history: 7d value_type: FLOAT units: '%' description: 'The time the CPU has spent doing nothing.' preprocessing: - type: PROMETHEUS_TO_JSON parameters: - '{__name__=~"^node_cpu(?:_seconds_total)?$",cpu=~".+",mode="idle"}' - type: JAVASCRIPT parameters: - | //calculates average, all cpu utilization var valueArr = JSON.parse(value); return valueArr.reduce(function(acc,obj){ return acc + parseFloat(obj['value']) },0)/valueArr.length; - type: CHANGE_PER_SECOND parameters: - '' - type: MULTIPLIER parameters: - '100' master_item: key: node_exporter.get tags: - tag: component value: cpu - uuid: 4d3f64c79c684d55bcde14ca5bf3022a name: 'Linux: CPU interrupt time' type: DEPENDENT key: 'system.cpu.interrupt[node_exporter]' delay: '0' history: 7d value_type: FLOAT units: '%' description: 'The amount of time the CPU has been servicing hardware interrupts.' preprocessing: - type: PROMETHEUS_TO_JSON parameters: - '{__name__=~"^node_cpu(?:_seconds_total)?$",cpu=~".+",mode="irq"}' - type: JAVASCRIPT parameters: - | //calculates average, all cpu utilization var valueArr = JSON.parse(value); return valueArr.reduce(function(acc,obj){ return acc + parseFloat(obj['value']) },0)/valueArr.length; - type: CHANGE_PER_SECOND parameters: - '' - type: MULTIPLIER parameters: - '100' master_item: key: node_exporter.get tags: - tag: component value: cpu - uuid: 76206cf435fd4a979dbbf74807b532de name: 'Linux: Interrupts per second' type: DEPENDENT key: 'system.cpu.intr[node_exporter]' delay: '0' history: 7d value_type: FLOAT preprocessing: - type: PROMETHEUS_PATTERN parameters: - '{__name__=~"node_intr"}' - value - '' - type: CHANGE_PER_SECOND parameters: - '' master_item: key: node_exporter.get tags: - tag: component value: cpu - uuid: 6a727e148a2c4956bcfb6de0a3486c2d name: 'Linux: CPU iowait time' type: DEPENDENT key: 'system.cpu.iowait[node_exporter]' delay: '0' history: 7d value_type: FLOAT units: '%' description: 'The amount of time the CPU has been waiting for I/O to complete.' preprocessing: - type: PROMETHEUS_TO_JSON parameters: - '{__name__=~"^node_cpu(?:_seconds_total)?$",cpu=~".+",mode="iowait"}' - type: JAVASCRIPT parameters: - | //calculates average, all cpu utilization var valueArr = JSON.parse(value); return valueArr.reduce(function(acc,obj){ return acc + parseFloat(obj['value']) },0)/valueArr.length; - type: CHANGE_PER_SECOND parameters: - '' - type: MULTIPLIER parameters: - '100' master_item: key: node_exporter.get tags: - tag: component value: cpu - uuid: 78fb393fe3d64cd7bf79be5427715add name: 'Linux: Load average (1m avg)' type: DEPENDENT key: 'system.cpu.load.avg1[node_exporter]' delay: '0' history: 7d value_type: FLOAT preprocessing: - type: PROMETHEUS_PATTERN parameters: - node_load1 - value - '' master_item: key: node_exporter.get tags: - tag: component value: cpu - uuid: 7fc62b26b9ff43429632f1985dc07851 name: 'Linux: Load average (5m avg)' type: DEPENDENT key: 'system.cpu.load.avg5[node_exporter]' delay: '0' history: 7d value_type: FLOAT preprocessing: - type: PROMETHEUS_PATTERN parameters: - node_load5 - value - '' master_item: key: node_exporter.get tags: - tag: component value: cpu - uuid: 35fb0319c599403bbea0e616c9066e27 name: 'Linux: Load average (15m avg)' type: DEPENDENT key: 'system.cpu.load.avg15[node_exporter]' delay: '0' history: 7d value_type: FLOAT preprocessing: - type: PROMETHEUS_PATTERN parameters: - node_load15 - value - '' master_item: key: node_exporter.get tags: - tag: component value: cpu - uuid: 86de794832794f57ba428cca31031005 name: 'Linux: CPU nice time' type: DEPENDENT key: 'system.cpu.nice[node_exporter]' delay: '0' history: 7d value_type: FLOAT units: '%' description: 'The time the CPU has spent running users'' processes that have been niced.' preprocessing: - type: PROMETHEUS_TO_JSON parameters: - '{__name__=~"^node_cpu(?:_seconds_total)?$",cpu=~".+",mode="nice"}' - type: JAVASCRIPT parameters: - | //calculates average, all cpu utilization var valueArr = JSON.parse(value); return valueArr.reduce(function(acc,obj){ return acc + parseFloat(obj['value']) },0)/valueArr.length; - type: CHANGE_PER_SECOND parameters: - '' - type: MULTIPLIER parameters: - '100' master_item: key: node_exporter.get tags: - tag: component value: cpu - uuid: d7db65cfeaac4541bd98d06dc35f89e2 name: 'Linux: Number of CPUs' type: DEPENDENT key: 'system.cpu.num[node_exporter]' delay: '0' history: 7d preprocessing: - type: PROMETHEUS_TO_JSON parameters: - '{__name__=~"^node_cpu(?:_seconds_total)?$",cpu=~".+",mode="idle"}' - type: JAVASCRIPT parameters: - | //count the number of cores return JSON.parse(value).length master_item: key: node_exporter.get tags: - tag: component value: cpu - uuid: cf3cd5840b91477d8e9254820896b978 name: 'Linux: CPU softirq time' type: DEPENDENT key: 'system.cpu.softirq[node_exporter]' delay: '0' history: 7d value_type: FLOAT units: '%' description: 'The amount of time the CPU has been servicing software interrupts.' preprocessing: - type: PROMETHEUS_TO_JSON parameters: - '{__name__=~"^node_cpu(?:_seconds_total)?$",cpu=~".+",mode="softirq"}' - type: JAVASCRIPT parameters: - | //calculates average, all cpu utilization var valueArr = JSON.parse(value); return valueArr.reduce(function(acc,obj){ return acc + parseFloat(obj['value']) },0)/valueArr.length; - type: CHANGE_PER_SECOND parameters: - '' - type: MULTIPLIER parameters: - '100' master_item: key: node_exporter.get tags: - tag: component value: cpu - uuid: 2ee5885c4de646c0926f0c1a48890e68 name: 'Linux: CPU steal time' type: DEPENDENT key: 'system.cpu.steal[node_exporter]' delay: '0' history: 7d 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.' preprocessing: - type: PROMETHEUS_TO_JSON parameters: - '{__name__=~"^node_cpu(?:_seconds_total)?$",cpu=~".+",mode="steal"}' - type: JAVASCRIPT parameters: - | //calculates average, all cpu utilization var valueArr = JSON.parse(value); return valueArr.reduce(function(acc,obj){ return acc + parseFloat(obj['value']) },0)/valueArr.length; - type: CHANGE_PER_SECOND parameters: - '' - type: MULTIPLIER parameters: - '100' master_item: key: node_exporter.get tags: - tag: component value: cpu - uuid: b873e0d178d144fca3597d617fc119e7 name: 'Linux: Context switches per second' type: DEPENDENT key: 'system.cpu.switches[node_exporter]' delay: '0' history: 7d value_type: FLOAT preprocessing: - type: PROMETHEUS_PATTERN parameters: - '{__name__=~"node_context_switches"}' - value - '' - type: CHANGE_PER_SECOND parameters: - '' master_item: key: node_exporter.get tags: - tag: component value: cpu - uuid: e296be976c5944b19a7178304ed6140c name: 'Linux: CPU system time' type: DEPENDENT key: 'system.cpu.system[node_exporter]' delay: '0' history: 7d value_type: FLOAT units: '%' description: 'The time the CPU has spent running the kernel and its processes.' preprocessing: - type: PROMETHEUS_TO_JSON parameters: - '{__name__=~"^node_cpu(?:_seconds_total)?$",cpu=~".+",mode="system"}' - type: JAVASCRIPT parameters: - | //calculates average, all cpu utilization var valueArr = JSON.parse(value); return valueArr.reduce(function(acc,obj){ return acc + parseFloat(obj['value']) },0)/valueArr.length; - type: CHANGE_PER_SECOND parameters: - '' - type: MULTIPLIER parameters: - '100' master_item: key: node_exporter.get tags: - tag: component value: cpu - uuid: 832698e707d14bad8171ca71a2533350 name: 'Linux: CPU user time' type: DEPENDENT key: 'system.cpu.user[node_exporter]' delay: '0' history: 7d value_type: FLOAT units: '%' description: 'The time the CPU has spent running users'' processes that are not niced.' preprocessing: - type: PROMETHEUS_TO_JSON parameters: - '{__name__=~"^node_cpu(?:_seconds_total)?$",cpu=~".+",mode="user"}' - type: JAVASCRIPT parameters: - | //calculates average, all cpu utilization var valueArr = JSON.parse(value); return valueArr.reduce(function(acc,obj){ return acc + parseFloat(obj['value']) },0)/valueArr.length; - type: CHANGE_PER_SECOND parameters: - '' - type: MULTIPLIER parameters: - '100' master_item: key: node_exporter.get tags: - tag: component value: cpu - uuid: 76f60c7e4f1a482198ff4f101020bbcc name: 'Linux: CPU utilization' type: DEPENDENT key: 'system.cpu.util[node_exporter]' delay: '0' history: 7d value_type: FLOAT units: '%' description: 'The CPU utilization expressed in %.' preprocessing: - type: JAVASCRIPT parameters: - | //Calculate utilization return (100 - value) master_item: key: 'system.cpu.idle[node_exporter]' tags: - tag: component value: cpu triggers: - uuid: 4c924f8243a7431886a2d69368cb7142 expression: 'min(/Linux by Prom/system.cpu.util[node_exporter],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: 'The CPU utilization is too high. The system might be slow to respond.' dependencies: - name: 'Linux: Load average is too high' expression: | min(/Linux by Prom/system.cpu.load.avg1[node_exporter],5m)/last(/Linux by Prom/system.cpu.num[node_exporter])>{$LOAD_AVG_PER_CPU.MAX.WARN} and last(/Linux by Prom/system.cpu.load.avg5[node_exporter])>0 and last(/Linux by Prom/system.cpu.load.avg15[node_exporter])>0 tags: - tag: scope value: performance - uuid: c47995760ef3458eb6237e434ef4eef8 name: 'Linux: System description' type: DEPENDENT key: 'system.descr[node_exporter]' delay: '0' history: 2w trends: '0' value_type: CHAR description: 'Labeled system information as provided by the uname system call.' preprocessing: - type: PROMETHEUS_TO_JSON parameters: - node_uname_info - type: JAVASCRIPT parameters: - | var info = JSON.parse(value)[0]; return info.labels.sysname+' version: '+info.labels.release+' '+info.labels.version - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1d master_item: key: node_exporter.get tags: - tag: component value: system - uuid: 9fcb3dd70dc244f2b2ff86560b37ec7e name: 'Linux: System local time' type: DEPENDENT key: 'system.localtime[node_exporter]' delay: '0' history: 7d value_type: FLOAT units: unixtime description: 'The local system time of the host.' preprocessing: - type: PROMETHEUS_PATTERN parameters: - '{__name__=~"^node_time(?:_seconds)?$"}' - value - '' master_item: key: node_exporter.get tags: - tag: component value: system triggers: - uuid: e91c10be1c4a4c3fadfe06aec6c1e4e4 expression: 'fuzzytime(/Linux by Prom/system.localtime[node_exporter],{$SYSTEM.FUZZYTIME.MAX})=0' name: 'Linux: System time is out of sync' event_name: 'Linux: System time is out of sync (diff with Zabbix server > {$SYSTEM.FUZZYTIME.MAX}s)' 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: c70cfa2ad5754089935883c5b3172656 name: 'Linux: System name' type: DEPENDENT key: 'system.name[node_exporter]' delay: '0' history: 2w trends: '0' value_type: CHAR description: 'The host name of the system.' inventory_link: NAME preprocessing: - type: PROMETHEUS_PATTERN parameters: - node_uname_info - label - nodename - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1d master_item: key: node_exporter.get tags: - tag: component value: system triggers: - uuid: e827e944568b46e284820630482317bd expression: 'last(/Linux by Prom/system.name[node_exporter],#1)<>last(/Linux by Prom/system.name[node_exporter],#2) and length(last(/Linux by Prom/system.name[node_exporter]))>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: ce4bb6c485cc4b739dce31b631634790 name: 'Linux: Operating system architecture' type: DEPENDENT key: 'system.sw.arch[node_exporter]' delay: '0' history: 2w trends: '0' value_type: CHAR description: 'The architecture of the operating system.' preprocessing: - type: PROMETHEUS_PATTERN parameters: - node_uname_info - label - machine - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1d master_item: key: node_exporter.get tags: - tag: component value: os - uuid: 11ff4e02245f4c2e9ce00e55c1a77b39 name: 'Linux: Operating system' type: DEPENDENT key: 'system.sw.os[node_exporter]' delay: '0' history: 2w trends: '0' value_type: CHAR inventory_link: OS preprocessing: - type: DISCARD_UNCHANGED_HEARTBEAT parameters: - 1d master_item: key: 'system.descr[node_exporter]' tags: - tag: component value: os triggers: - uuid: 00974d5b128c4b1db64ca100770fb11b expression: 'last(/Linux by Prom/system.sw.os[node_exporter],#1)<>last(/Linux by Prom/system.sw.os[node_exporter],#2) and length(last(/Linux by Prom/system.sw.os[node_exporter]))>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: 'last(/Linux by Prom/system.name[node_exporter],#1)<>last(/Linux by Prom/system.name[node_exporter],#2) and length(last(/Linux by Prom/system.name[node_exporter]))>0' tags: - tag: scope value: notice - uuid: ccc3c4d69fef412aa53c6a7320ef44fb name: 'Linux: Free swap space' type: DEPENDENT key: 'system.swap.free[node_exporter]' delay: '0' history: 7d value_type: FLOAT units: B description: 'The free space of the swap volume/file expressed in bytes.' preprocessing: - type: PROMETHEUS_PATTERN parameters: - '{__name__=~"node_memory_SwapFree"}' - value - '' master_item: key: node_exporter.get tags: - tag: component value: memory - tag: component value: storage - uuid: 99feb76b7da04b00a0d191b92bf979a1 name: 'Linux: Free swap space in %' type: CALCULATED key: 'system.swap.pfree[node_exporter]' history: 7d value_type: FLOAT units: '%' params: 'last(//system.swap.free[node_exporter])/last(//system.swap.total[node_exporter])*100' description: 'The free space of the swap volume/file expressed in %.' tags: - tag: component value: memory - tag: component value: storage - uuid: d0c1ef0a679546d780df30a02a27df44 name: 'Linux: Total swap space' type: DEPENDENT key: 'system.swap.total[node_exporter]' delay: '0' history: 7d value_type: FLOAT units: B description: 'The total space of the swap volume/file expressed in bytes.' preprocessing: - type: PROMETHEUS_PATTERN parameters: - '{__name__=~"node_memory_SwapTotal"}' - value - '' master_item: key: node_exporter.get tags: - tag: component value: memory - tag: component value: storage - uuid: 7eeabdb6bf44483bab91faaab8bb24d5 name: 'Linux: System uptime' type: DEPENDENT key: 'system.uptime[node_exporter]' delay: '0' history: 2w trends: '0' units: uptime description: 'The system uptime expressed in the following format: "N days, hh:mm:ss".' preprocessing: - type: PROMETHEUS_PATTERN parameters: - '{__name__=~"^node_boot_time(?:_seconds)?$"}' - value - '' - type: JAVASCRIPT parameters: - | //use boottime to calculate uptime return (Math.floor(Date.now()/1000)-Number(value)); master_item: key: node_exporter.get tags: - tag: component value: system triggers: - uuid: 83311a7c73c441d39d88fe0fc7b55af9 expression: 'last(/Linux by Prom/system.uptime[node_exporter])<10m' name: 'Linux: {HOST.NAME} has been restarted' event_name: 'Linux: {HOST.NAME} has been restarted (uptime < 10m)' priority: WARNING description: 'The device uptime is less than 10 minutes.' manual_close: 'YES' tags: - tag: scope value: notice - uuid: 70a75efafbc84cbebd1bb262ec797523 name: 'Linux: Available memory' type: DEPENDENT key: 'vm.memory.available[node_exporter]' delay: '0' history: 7d value_type: FLOAT units: B description: | The available memory: - in Linux - available = free + buffers + cache; - on other platforms calculation may vary. See also Appendixes in Zabbix Documentation about parameters of the `vm.memory.size` item. preprocessing: - type: PROMETHEUS_PATTERN parameters: - '{__name__=~"node_memory_MemAvailable"}' - value - '' master_item: key: node_exporter.get tags: - tag: component value: memory - uuid: e3ad296f16084e9caa923b449d8c725f name: 'Linux: Total memory' type: DEPENDENT key: 'vm.memory.total[node_exporter]' delay: '0' history: 7d value_type: FLOAT units: B description: 'The total memory expressed in bytes.' preprocessing: - type: PROMETHEUS_PATTERN parameters: - '{__name__=~"node_memory_MemTotal"}' - value - '' master_item: key: node_exporter.get tags: - tag: component value: memory - uuid: 60c716c692fb482f9abffb0fc9ce4324 name: 'Linux: Memory utilization' type: CALCULATED key: 'vm.memory.util[node_exporter]' history: 7d value_type: FLOAT units: '%' params: '(last(//vm.memory.total[node_exporter])-last(//vm.memory.available[node_exporter]))/last(//vm.memory.total[node_exporter])*100' description: 'Memory used percentage is calculated as (total-available)/total*100.' tags: - tag: component value: memory triggers: - uuid: 72304b3a167e41ccbcdb75568c65294a expression: 'min(/Linux by Prom/vm.memory.util[node_exporter],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 Prom/vm.memory.available[node_exporter],5m)<{$MEMORY.AVAILABLE.MIN} and last(/Linux by Prom/vm.memory.total[node_exporter])>0' tags: - tag: scope value: capacity - tag: scope value: performance discovery_rules: - uuid: 91531a7a68564860976096df6899fe88 name: 'Network interface discovery' type: DEPENDENT key: 'net.if.discovery[node_exporter]' delay: '0' filter: evaltype: AND conditions: - macro: '{#IFNAME}' value: '{$NET.IF.IFNAME.MATCHES}' formulaid: C - macro: '{#IFNAME}' value: '{$NET.IF.IFNAME.NOT_MATCHES}' operator: NOT_MATCHES_REGEX formulaid: D - macro: '{#IFALIAS}' value: '{$NET.IF.IFALIAS.MATCHES}' formulaid: A - macro: '{#IFALIAS}' value: '{$NET.IF.IFALIAS.NOT_MATCHES}' operator: NOT_MATCHES_REGEX formulaid: B - macro: '{#IFOPERSTATUS}' value: '{$NET.IF.IFOPERSTATUS.MATCHES}' formulaid: E - macro: '{#IFOPERSTATUS}' value: '{$NET.IF.IFOPERSTATUS.NOT_MATCHES}' operator: NOT_MATCHES_REGEX formulaid: F description: 'Discovery of network interfaces. Requires node_exporter v0.18 and up.' item_prototypes: - uuid: ee28aff27b4f40eaa8e903ce3fab8555 name: 'Interface {#IFNAME}({#IFALIAS}): Inbound packets discarded' type: DEPENDENT key: 'net.if.in.discards[node_exporter,"{#IFNAME}"]' delay: '0' history: 7d value_type: FLOAT preprocessing: - type: PROMETHEUS_PATTERN parameters: - 'node_network_receive_drop_total{device="{#IFNAME}"}' - value - '' - type: CHANGE_PER_SECOND parameters: - '' master_item: key: node_exporter.get tags: - tag: component value: network - tag: description value: '{#IFALIAS}' - tag: interface value: '{#IFNAME}' - uuid: f6b39f743bb6438d876236ae651f68ee name: 'Interface {#IFNAME}({#IFALIAS}): Inbound packets with errors' type: DEPENDENT key: 'net.if.in.errors[node_exporter,"{#IFNAME}"]' delay: '0' history: 7d value_type: FLOAT preprocessing: - type: PROMETHEUS_PATTERN parameters: - 'node_network_receive_errs_total{device="{#IFNAME}"}' - value - '' - type: CHANGE_PER_SECOND parameters: - '' master_item: key: node_exporter.get tags: - tag: component value: network - tag: description value: '{#IFALIAS}' - tag: interface value: '{#IFNAME}' - uuid: eea37c3779994ac5b35bb3b125429340 name: 'Interface {#IFNAME}({#IFALIAS}): Bits received' type: DEPENDENT key: 'net.if.in[node_exporter,"{#IFNAME}"]' delay: '0' history: 7d value_type: FLOAT units: bps preprocessing: - type: PROMETHEUS_PATTERN parameters: - 'node_network_receive_bytes_total{device="{#IFNAME}"}' - value - '' - type: CHANGE_PER_SECOND parameters: - '' - type: MULTIPLIER parameters: - '8' master_item: key: node_exporter.get tags: - tag: component value: network - tag: description value: '{#IFALIAS}' - tag: interface value: '{#IFNAME}' - uuid: aec995b7fe724823bdb41f134594b648 name: 'Interface {#IFNAME}({#IFALIAS}): Outbound packets discarded' type: DEPENDENT key: 'net.if.out.discards[node_exporter,"{#IFNAME}"]' delay: '0' history: 7d value_type: FLOAT preprocessing: - type: PROMETHEUS_PATTERN parameters: - 'node_network_transmit_drop_total{device="{#IFNAME}"}' - value - '' - type: CHANGE_PER_SECOND parameters: - '' master_item: key: node_exporter.get tags: - tag: component value: network - tag: description value: '{#IFALIAS}' - tag: interface value: '{#IFNAME}' - uuid: 4ffe74b94eb14a4ea61c0df790d0920f name: 'Interface {#IFNAME}({#IFALIAS}): Outbound packets with errors' type: DEPENDENT key: 'net.if.out.errors[node_exporter"{#IFNAME}"]' delay: '0' history: 7d value_type: FLOAT preprocessing: - type: PROMETHEUS_PATTERN parameters: - 'node_network_transmit_errs_total{device="{#IFNAME}"}' - value - '' - type: CHANGE_PER_SECOND parameters: - '' master_item: key: node_exporter.get tags: - tag: component value: network - tag: description value: '{#IFALIAS}' - tag: interface value: '{#IFNAME}' - uuid: ddc4111fefec473e8d8b079f6eb50c05 name: 'Interface {#IFNAME}({#IFALIAS}): Bits sent' type: DEPENDENT key: 'net.if.out[node_exporter,"{#IFNAME}"]' delay: '0' history: 7d value_type: FLOAT units: bps preprocessing: - type: PROMETHEUS_PATTERN parameters: - 'node_network_transmit_bytes_total{device="{#IFNAME}"}' - value - '' - type: CHANGE_PER_SECOND parameters: - '' - type: MULTIPLIER parameters: - '8' master_item: key: node_exporter.get tags: - tag: component value: network - tag: description value: '{#IFALIAS}' - tag: interface value: '{#IFNAME}' - uuid: 51f9a39ad6d940ae914cd0a350d83dab name: 'Interface {#IFNAME}({#IFALIAS}): Speed' type: DEPENDENT key: 'net.if.speed[node_exporter,"{#IFNAME}"]' delay: '0' history: 7d trends: '0' units: bps description: 'Sets value to 0 if metric is missing in node_exporter output.' preprocessing: - type: PROMETHEUS_PATTERN parameters: - 'node_network_speed_bytes{device="{#IFNAME}"}' - value - '' error_handler: CUSTOM_VALUE error_handler_params: '0' - type: MULTIPLIER parameters: - '8' master_item: key: node_exporter.get tags: - tag: component value: network - tag: description value: '{#IFALIAS}' - tag: interface value: '{#IFNAME}' - uuid: 4097f76d86cd417db586c5973e1da90b name: 'Interface {#IFNAME}({#IFALIAS}): Operational status' type: DEPENDENT key: 'net.if.status[node_exporter,"{#IFNAME}"]' delay: '0' history: 7d trends: '0' description: 'Reference: https://www.kernel.org/doc/Documentation/networking/operstates.txt' valuemap: name: ifOperStatus preprocessing: - type: PROMETHEUS_PATTERN parameters: - 'node_network_info{device="{#IFNAME}"}' - label - operstate - 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; master_item: key: node_exporter.get tags: - tag: component value: network - tag: description value: '{#IFALIAS}' - tag: interface value: '{#IFNAME}' trigger_prototypes: - uuid: e35b59dc09754451a721793831edc3d4 expression: '{$IFCONTROL:"{#IFNAME}"}=1 and last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])=2 and (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"],#1)<>last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"],#2))' recovery_mode: RECOVERY_EXPRESSION recovery_expression: 'last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])<>2 or {$IFCONTROL:"{#IFNAME}"}=0' name: 'Interface {#IFNAME}({#IFALIAS}): Link down' opdata: 'Current state: {ITEM.LASTVALUE1}' priority: AVERAGE description: | This trigger expression works as follows: 1. It can be triggered if the operations status is down. 2. `{$IFCONTROL:"{#IFNAME}"}=1` - a user can redefine context macro to value - 0. That marks this interface as not important. No new trigger will be fired if this interface is down. 3. `{TEMPLATE_NAME:METRIC.diff()}=1` - the trigger fires only if the operational status was up to (1) sometime before (so, do not fire for the 'eternal off' interfaces.) WARNING: if closed manually - it will not fire again on the next poll, because of .diff. manual_close: 'YES' tags: - tag: scope value: availability - uuid: ce9cfd9880c44aaea18cfa2ab2fdf0e1 name: 'Interface {#IFNAME}({#IFALIAS}): Interface type' type: DEPENDENT key: 'net.if.type[node_exporter,"{#IFNAME}"]' delay: '0' history: 7d trends: '0' description: 'node_network_protocol_type protocol_type value of /sys/class/net/.' valuemap: name: 'Linux::Interface protocol types' preprocessing: - type: PROMETHEUS_PATTERN parameters: - 'node_network_protocol_type{device="{#IFNAME}"}' - value - '' master_item: key: node_exporter.get tags: - tag: component value: network - tag: description value: '{#IFALIAS}' - tag: interface value: '{#IFNAME}' trigger_prototypes: - uuid: 96bbb9726ef149a5b97f96d54502593a expression: | change(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"])<0 and last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"])>0 and ( last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=6 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=7 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=11 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=62 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=69 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=117 ) and (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])<>2) recovery_mode: RECOVERY_EXPRESSION recovery_expression: | (change(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"])>0 and last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"],#2)>0) or (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])=2) name: '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: 'Interface {#IFNAME}({#IFALIAS}): Link down' expression: '{$IFCONTROL:"{#IFNAME}"}=1 and last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])=2 and (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"],#1)<>last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"],#2))' recovery_expression: 'last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])<>2 or {$IFCONTROL:"{#IFNAME}"}=0' tags: - tag: scope value: performance - uuid: 08d5857e474042b5906288156c8c5d52 expression: | change(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])<0 and last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])>0 and (last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=6 or last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])=1) and (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])<>2) recovery_mode: RECOVERY_EXPRESSION recovery_expression: | (change(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"])>0 and last(/Linux by Prom/net.if.type[node_exporter,"{#IFNAME}"],#2)>0) or (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])=2) name: '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: 'Interface {#IFNAME}({#IFALIAS}): Link down' expression: '{$IFCONTROL:"{#IFNAME}"}=1 and last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])=2 and (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"],#1)<>last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"],#2))' recovery_expression: 'last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])<>2 or {$IFCONTROL:"{#IFNAME}"}=0' tags: - tag: scope value: performance - uuid: 11e2c8023463482da878cdad5bb7de76 expression: | (avg(/Linux by Prom/net.if.in[node_exporter,"{#IFNAME}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"]) or avg(/Linux by Prom/net.if.out[node_exporter,"{#IFNAME}"],15m)>({$IF.UTIL.MAX:"{#IFNAME}"}/100)*last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"])) and last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"])>0 recovery_mode: RECOVERY_EXPRESSION recovery_expression: | avg(/Linux by Prom/net.if.in[node_exporter,"{#IFNAME}"],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"]) and avg(/Linux by Prom/net.if.out[node_exporter,"{#IFNAME}"],15m)<(({$IF.UTIL.MAX:"{#IFNAME}"}-3)/100)*last(/Linux by Prom/net.if.speed[node_exporter,"{#IFNAME}"]) name: 'Interface {#IFNAME}({#IFALIAS}): High bandwidth usage' event_name: 'Interface {#IFNAME}({#IFALIAS}): High bandwidth usage (>{$IF.UTIL.MAX:"{#IFNAME}"}%)' opdata: 'In: {ITEM.LASTVALUE1}, out: {ITEM.LASTVALUE3}, speed: {ITEM.LASTVALUE2}' priority: WARNING description: 'The utilization of the network interface is close to its estimated maximum bandwidth.' manual_close: 'YES' dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' expression: '{$IFCONTROL:"{#IFNAME}"}=1 and last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])=2 and (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"],#1)<>last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"],#2))' recovery_expression: 'last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])<>2 or {$IFCONTROL:"{#IFNAME}"}=0' tags: - tag: scope value: performance - uuid: 6e8269b2260e42de97aec08043a768df expression: | min(/Linux by Prom/net.if.in.errors[node_exporter,"{#IFNAME}"],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} or min(/Linux by Prom/net.if.out.errors[node_exporter"{#IFNAME}"],5m)>{$IF.ERRORS.WARN:"{#IFNAME}"} recovery_mode: RECOVERY_EXPRESSION recovery_expression: | max(/Linux by Prom/net.if.in.errors[node_exporter,"{#IFNAME}"],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 and max(/Linux by Prom/net.if.out.errors[node_exporter"{#IFNAME}"],5m)<{$IF.ERRORS.WARN:"{#IFNAME}"}*0.8 name: 'Interface {#IFNAME}({#IFALIAS}): High error rate' event_name: 'Interface {#IFNAME}({#IFALIAS}): High error rate (>{$IF.ERRORS.WARN:"{#IFNAME}"} for 5m)' opdata: 'errors in: {ITEM.LASTVALUE1}, errors out: {ITEM.LASTVALUE2}' priority: WARNING description: 'It recovers when it is below 80% of the `{$IF.ERRORS.WARN:"{#IFNAME}"}` threshold.' manual_close: 'YES' dependencies: - name: 'Interface {#IFNAME}({#IFALIAS}): Link down' expression: '{$IFCONTROL:"{#IFNAME}"}=1 and last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])=2 and (last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"],#1)<>last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"],#2))' recovery_expression: 'last(/Linux by Prom/net.if.status[node_exporter,"{#IFNAME}"])<>2 or {$IFCONTROL:"{#IFNAME}"}=0' tags: - tag: scope value: availability - tag: scope value: performance graph_prototypes: - uuid: cf143a7bb6d548fc9d3b089dcbb47ccf name: 'Interface {#IFNAME}({#IFALIAS}): Network traffic' graph_items: - drawtype: GRADIENT_LINE color: 199C0D item: host: 'Linux by Prom' key: 'net.if.in[node_exporter,"{#IFNAME}"]' - sortorder: '1' drawtype: BOLD_LINE color: F63100 item: host: 'Linux by Prom' key: 'net.if.out[node_exporter,"{#IFNAME}"]' - sortorder: '2' color: 00611C yaxisside: RIGHT item: host: 'Linux by Prom' key: 'net.if.out.errors[node_exporter"{#IFNAME}"]' - sortorder: '3' color: F7941D yaxisside: RIGHT item: host: 'Linux by Prom' key: 'net.if.in.errors[node_exporter,"{#IFNAME}"]' - sortorder: '4' color: FC6EA3 yaxisside: RIGHT item: host: 'Linux by Prom' key: 'net.if.out.discards[node_exporter,"{#IFNAME}"]' - sortorder: '5' color: 6C59DC yaxisside: RIGHT item: host: 'Linux by Prom' key: 'net.if.in.discards[node_exporter,"{#IFNAME}"]' master_item: key: node_exporter.get lld_macro_paths: - lld_macro: '{#IFNAME}' path: $.labels.device - lld_macro: '{#HELP}' path: $.help - lld_macro: '{#IFALIAS}' path: $.labels.ifalias - lld_macro: '{#IFOPERSTATUS}' path: $.labels.operstate preprocessing: - type: PROMETHEUS_TO_JSON parameters: - '{__name__=~"^node_network_info$"}' - uuid: 920f367e232945b8992d0f32e6f9324d name: 'Block devices discovery' type: DEPENDENT key: 'vfs.dev.discovery[node_exporter]' delay: '0' filter: evaltype: AND conditions: - macro: '{#DEVNAME}' value: '{$VFS.DEV.DEVNAME.MATCHES}' formulaid: A - macro: '{#DEVNAME}' value: '{$VFS.DEV.DEVNAME.NOT_MATCHES}' operator: NOT_MATCHES_REGEX formulaid: B item_prototypes: - uuid: 0a0949bcdf754fbe82e772ffbd69b5ba name: '{#DEVNAME}: Disk average queue size (avgqu-sz)' type: DEPENDENT key: 'vfs.dev.queue_size[node_exporter,"{#DEVNAME}"]' delay: '0' history: 7d 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: PROMETHEUS_PATTERN parameters: - 'node_disk_io_time_weighted_seconds_total{device="{#DEVNAME}"}' - value - '' - type: CHANGE_PER_SECOND parameters: - '' master_item: key: node_exporter.get tags: - tag: component value: storage - tag: disk value: '{#DEVNAME}' - uuid: 9d158ecffdaa43f6bd0ab867ca68620b name: '{#DEVNAME}: Disk read request avg waiting time (r_await)' type: CALCULATED key: 'vfs.dev.read.await[node_exporter,"{#DEVNAME}"]' history: 7d value_type: FLOAT units: '!ms' params: '(last(//vfs.dev.read.time.rate[node_exporter,"{#DEVNAME}"])/(last(//vfs.dev.read.rate[node_exporter,"{#DEVNAME}"])+(last(//vfs.dev.read.rate[node_exporter,"{#DEVNAME}"])=0)))*1000*(last(//vfs.dev.read.rate[node_exporter,"{#DEVNAME}"]) > 0)' description: 'This formula contains two Boolean expressions that evaluates to 1 or 0 in order to set calculated metric to zero and to avoid division by zero exception.' tags: - tag: component value: storage - tag: disk value: '{#DEVNAME}' - uuid: dcd6f61ffb2f491ba78845514654a8cf name: '{#DEVNAME}: Disk read rate' type: DEPENDENT key: 'vfs.dev.read.rate[node_exporter,"{#DEVNAME}"]' delay: '0' history: 7d value_type: FLOAT units: '!r/s' description: 'r/s. The number (after merges) of read requests completed per second for the device.' preprocessing: - type: PROMETHEUS_PATTERN parameters: - 'node_disk_reads_completed_total{device="{#DEVNAME}"}' - value - '' - type: CHANGE_PER_SECOND parameters: - '' master_item: key: node_exporter.get tags: - tag: component value: storage - tag: disk value: '{#DEVNAME}' - uuid: 73940f30ea2b4b88b0047e54b773b747 name: '{#DEVNAME}: Disk read time (rate)' type: DEPENDENT key: 'vfs.dev.read.time.rate[node_exporter,"{#DEVNAME}"]' delay: '0' history: 7d value_type: FLOAT description: 'Rate of total read time counter. Used in `r_await` calculation.' preprocessing: - type: PROMETHEUS_PATTERN parameters: - 'node_disk_read_time_seconds_total{device="{#DEVNAME}"}' - value - '' - type: CHANGE_PER_SECOND parameters: - '' master_item: key: node_exporter.get tags: - tag: component value: storage - tag: disk value: '{#DEVNAME}' - uuid: d087a0525500450c9a307ff21f58482a name: '{#DEVNAME}: Disk utilization' type: DEPENDENT key: 'vfs.dev.util[node_exporter,"{#DEVNAME}"]' delay: '0' history: 7d value_type: FLOAT units: '%' description: 'This item is the percentage of elapsed time during which the selected disk drive was busy while servicing read or write requests.' preprocessing: - type: PROMETHEUS_PATTERN parameters: - 'node_disk_io_time_seconds_total{device="{#DEVNAME}"}' - value - '' - type: CHANGE_PER_SECOND parameters: - '' - type: MULTIPLIER parameters: - '100' master_item: key: node_exporter.get tags: - tag: component value: storage - tag: disk value: '{#DEVNAME}' - uuid: 94203a49081047b6bc76cd66aecd55ce name: '{#DEVNAME}: Disk write request avg waiting time (w_await)' type: CALCULATED key: 'vfs.dev.write.await[node_exporter,"{#DEVNAME}"]' history: 7d value_type: FLOAT units: '!ms' params: '(last(//vfs.dev.write.time.rate[node_exporter,"{#DEVNAME}"])/(last(//vfs.dev.write.rate[node_exporter,"{#DEVNAME}"])+(last(//vfs.dev.write.rate[node_exporter,"{#DEVNAME}"])=0)))*1000*(last(//vfs.dev.write.rate[node_exporter,"{#DEVNAME}"]) > 0)' description: 'This formula contains two Boolean expressions that evaluates to 1 or 0 in order to set calculated metric to zero and to avoid division by zero exception.' tags: - tag: component value: storage - tag: disk value: '{#DEVNAME}' - uuid: 806ba0a56fab4b5094008c98bb817e2b name: '{#DEVNAME}: Disk write rate' type: DEPENDENT key: 'vfs.dev.write.rate[node_exporter,"{#DEVNAME}"]' delay: '0' history: 7d value_type: FLOAT units: '!w/s' description: 'w/s. The number (after merges) of write requests completed per second for the device.' preprocessing: - type: PROMETHEUS_PATTERN parameters: - 'node_disk_writes_completed_total{device="{#DEVNAME}"}' - value - '' - type: CHANGE_PER_SECOND parameters: - '' master_item: key: node_exporter.get tags: - tag: component value: storage - tag: disk value: '{#DEVNAME}' - uuid: 601cc30457934b7f8f050b2cea13ccea name: '{#DEVNAME}: Disk write time (rate)' type: DEPENDENT key: 'vfs.dev.write.time.rate[node_exporter,"{#DEVNAME}"]' delay: '0' history: 7d value_type: FLOAT description: 'Rate of total write time counter. Used in `w_await` calculation.' preprocessing: - type: PROMETHEUS_PATTERN parameters: - 'node_disk_write_time_seconds_total{device="{#DEVNAME}"}' - value - '' - type: CHANGE_PER_SECOND parameters: - '' master_item: key: node_exporter.get tags: - tag: component value: storage - tag: disk value: '{#DEVNAME}' trigger_prototypes: - uuid: 412381f71bba441b955898839f81d51c expression: 'min(/Linux by Prom/vfs.dev.read.await[node_exporter,"{#DEVNAME}"],15m) > {$VFS.DEV.READ.AWAIT.WARN:"{#DEVNAME}"} or min(/Linux by Prom/vfs.dev.write.await[node_exporter,"{#DEVNAME}"],15m) > {$VFS.DEV.WRITE.AWAIT.WARN:"{#DEVNAME}"}' name: '{#DEVNAME}: Disk read/write request responses are too high' event_name: '{#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: 13a5a74a99734449b08075bbb25bb498 name: '{#DEVNAME}: Disk average waiting time' graph_items: - color: 199C0D item: host: 'Linux by Prom' key: 'vfs.dev.read.await[node_exporter,"{#DEVNAME}"]' - sortorder: '1' drawtype: GRADIENT_LINE color: F63100 item: host: 'Linux by Prom' key: 'vfs.dev.write.await[node_exporter,"{#DEVNAME}"]' - uuid: bad3d3ba32534ef194a4837d666ddccb name: '{#DEVNAME}: Disk read/write rates' graph_items: - color: 199C0D item: host: 'Linux by Prom' key: 'vfs.dev.read.rate[node_exporter,"{#DEVNAME}"]' - sortorder: '1' drawtype: GRADIENT_LINE color: F63100 item: host: 'Linux by Prom' key: 'vfs.dev.write.rate[node_exporter,"{#DEVNAME}"]' - uuid: aa53b66adaac4e62863ea2dd59ba3ea1 name: '{#DEVNAME}: Disk utilization and queue' graph_items: - color: 199C0D yaxisside: RIGHT item: host: 'Linux by Prom' key: 'vfs.dev.queue_size[node_exporter,"{#DEVNAME}"]' - sortorder: '1' drawtype: GRADIENT_LINE color: F63100 item: host: 'Linux by Prom' key: 'vfs.dev.util[node_exporter,"{#DEVNAME}"]' master_item: key: node_exporter.get lld_macro_paths: - lld_macro: '{#DEVNAME}' path: $.labels.device - lld_macro: '{#HELP}' path: $.help preprocessing: - type: PROMETHEUS_TO_JSON parameters: - 'node_disk_io_now{device=~".+"}' - uuid: 85d047920c1342b992fa1905eb489a44 name: 'Mounted filesystem discovery' type: DEPENDENT key: 'vfs.fs.discovery[node_exporter]' delay: '0' filter: evaltype: AND conditions: - macro: '{#FSTYPE}' value: '{$VFS.FS.FSTYPE.MATCHES}' formulaid: E - macro: '{#FSTYPE}' value: '{$VFS.FS.FSTYPE.NOT_MATCHES}' operator: NOT_MATCHES_REGEX formulaid: F - macro: '{#FSNAME}' value: '{$VFS.FS.FSNAME.MATCHES}' formulaid: B - macro: '{#FSNAME}' value: '{$VFS.FS.FSNAME.NOT_MATCHES}' operator: NOT_MATCHES_REGEX formulaid: C - macro: '{#FSNAME}' value: '{$VFS.FS.FSDEVICE.MATCHES}' formulaid: D - macro: '{#FSDEVICE}' value: '{$VFS.FS.FSDEVICE.NOT_MATCHES}' operator: NOT_MATCHES_REGEX formulaid: A description: 'Discovery of file systems of different types.' item_prototypes: - uuid: 3a3edb8bf5a74a63baa27c64d1a44493 name: '{#FSNAME}: Free space' type: DEPENDENT key: 'vfs.fs.free[node_exporter,"{#FSNAME}"]' delay: '0' history: 7d value_type: FLOAT units: B preprocessing: - type: PROMETHEUS_PATTERN parameters: - '{__name__=~"^node_filesystem_avail(?:_bytes)?$", mountpoint="{#FSNAME}"}' - value - '' master_item: key: node_exporter.get tags: - tag: component value: storage - tag: filesystem value: '{#FSNAME}' - uuid: ee1dad3677214561baafa6d930358ee0 name: '{#FSNAME}: Free inodes in %' type: DEPENDENT key: 'vfs.fs.inode.pfree[node_exporter,"{#FSNAME}"]' delay: '0' history: 7d value_type: FLOAT units: '%' preprocessing: - type: PROMETHEUS_TO_JSON parameters: - '{__name__=~"node_filesystem_files.*",mountpoint="{#FSNAME}"}' - type: JAVASCRIPT parameters: - | //count vfs.fs.inode.pfree var inode_free; var inode_total; JSON.parse(value).forEach(function(metric) { if (metric['name'] == 'node_filesystem_files'){ inode_total = metric['value']; } else if (metric['name'] == 'node_filesystem_files_free'){ inode_free = metric['value']; } }); return (inode_free/inode_total)*100; master_item: key: node_exporter.get tags: - tag: component value: storage - tag: filesystem value: '{#FSNAME}' trigger_prototypes: - uuid: 27cabcc9d9644ba6b7bd8c92a740e3cc expression: 'min(/Linux by Prom/vfs.fs.inode.pfree[node_exporter,"{#FSNAME}"],5m)<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}' name: '{#FSNAME}: Running out of free inodes' event_name: '{#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}%)' opdata: 'Free inodes: {ITEM.LASTVALUE1}' priority: AVERAGE description: | It may become impossible to write to a disk if there are no index nodes left. The following error messages may be returned as symptoms, even though the free space is available: - 'No space left on device'; - 'Disk is full'. tags: - tag: scope value: capacity - tag: scope value: performance - uuid: c639215f6dd94c71aebf97265a282a0d expression: 'min(/Linux by Prom/vfs.fs.inode.pfree[node_exporter,"{#FSNAME}"],5m)<{$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"}' name: '{#FSNAME}: Running out of free inodes' event_name: '{#FSNAME}: Running out of free inodes (free < {$VFS.FS.INODE.PFREE.MIN.WARN:"{#FSNAME}"}%)' opdata: 'Free inodes: {ITEM.LASTVALUE1}' priority: WARNING description: | It may become impossible to write to a disk if there are no index nodes left. The following error messages may be returned as symptoms, even though the free space is available: - 'No space left on device'; - 'Disk is full'. dependencies: - name: '{#FSNAME}: Running out of free inodes' expression: 'min(/Linux by Prom/vfs.fs.inode.pfree[node_exporter,"{#FSNAME}"],5m)<{$VFS.FS.INODE.PFREE.MIN.CRIT:"{#FSNAME}"}' tags: - tag: scope value: capacity - tag: scope value: performance - uuid: 89afe41bb0d74c579a9cff8b036d30dc name: '{#FSNAME}: Space utilization' type: CALCULATED key: 'vfs.fs.pused[node_exporter,"{#FSNAME}"]' history: 7d value_type: FLOAT units: '%' params: '(last(//vfs.fs.used[node_exporter,"{#FSNAME}"])/last(//vfs.fs.total[node_exporter,"{#FSNAME}"]))*100' description: 'The space utilization expressed in % for {#FSNAME}.' tags: - tag: component value: storage - tag: filesystem value: '{#FSNAME}' - uuid: acb3d42ae23b48cbacd0e99c27697798 name: '{#FSNAME}: Total space' type: DEPENDENT key: 'vfs.fs.total[node_exporter,"{#FSNAME}"]' delay: '0' history: 7d value_type: FLOAT units: B description: 'Total space in bytes' preprocessing: - type: PROMETHEUS_PATTERN parameters: - '{__name__=~"^node_filesystem_size(?:_bytes)?$", mountpoint="{#FSNAME}"}' - value - '' master_item: key: node_exporter.get tags: - tag: component value: storage - tag: filesystem value: '{#FSNAME}' - uuid: 89e559a7ff364dd78b638454896692c5 name: '{#FSNAME}: Used space' type: CALCULATED key: 'vfs.fs.used[node_exporter,"{#FSNAME}"]' history: 7d value_type: FLOAT units: B params: '(last(//vfs.fs.total[node_exporter,"{#FSNAME}"])-last(//vfs.fs.free[node_exporter,"{#FSNAME}"]))' description: 'Used storage in bytes' tags: - tag: component value: storage - tag: filesystem value: '{#FSNAME}' trigger_prototypes: - uuid: d5687d7aa0484b389f0bd168d50ee1e6 expression: | last(/Linux by Prom/vfs.fs.pused[node_exporter,"{#FSNAME}"])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and ((last(/Linux by Prom/vfs.fs.total[node_exporter,"{#FSNAME}"])-last(/Linux by Prom/vfs.fs.used[node_exporter,"{#FSNAME}"]))<{$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"} or timeleft(/Linux by Prom/vfs.fs.pused[node_exporter,"{#FSNAME}"],1h,100)<1d) name: '{#FSNAME}: Disk space is critically low' event_name: '{#FSNAME}: Disk space is critically low (used > {$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}%)' opdata: 'Space used: {ITEM.LASTVALUE3} of {ITEM.LASTVALUE2} ({ITEM.LASTVALUE1})' priority: AVERAGE description: | Two conditions should match: 1. The first condition - utilization of the space should be above `{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"}`. 2. The second condition should be one of the following: - the disk free space is less than `{$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"}`; - the disk will be full in less than 24 hours. manual_close: 'YES' tags: - tag: scope value: availability - tag: scope value: capacity - uuid: 8f765148cfd64d5ebda93f39d0b20e36 expression: | last(/Linux by Prom/vfs.fs.pused[node_exporter,"{#FSNAME}"])>{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"} and ((last(/Linux by Prom/vfs.fs.total[node_exporter,"{#FSNAME}"])-last(/Linux by Prom/vfs.fs.used[node_exporter,"{#FSNAME}"]))<{$VFS.FS.FREE.MIN.WARN:"{#FSNAME}"} or timeleft(/Linux by Prom/vfs.fs.pused[node_exporter,"{#FSNAME}"],1h,100)<1d) name: '{#FSNAME}: Disk space is low' event_name: '{#FSNAME}: Disk space is low (used > {$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}%)' opdata: 'Space used: {ITEM.LASTVALUE3} of {ITEM.LASTVALUE2} ({ITEM.LASTVALUE1})' priority: WARNING description: | Two conditions should match: 1. The first condition - utilization of the space should be above `{$VFS.FS.PUSED.MAX.WARN:"{#FSNAME}"}`. 2. The second condition should be one of the following: - the disk free space is less than `{$VFS.FS.FREE.MIN.WARN:"{#FSNAME}"}`; - the disk will be full in less than 24 hours. manual_close: 'YES' dependencies: - name: '{#FSNAME}: Disk space is critically low' expression: | last(/Linux by Prom/vfs.fs.pused[node_exporter,"{#FSNAME}"])>{$VFS.FS.PUSED.MAX.CRIT:"{#FSNAME}"} and ((last(/Linux by Prom/vfs.fs.total[node_exporter,"{#FSNAME}"])-last(/Linux by Prom/vfs.fs.used[node_exporter,"{#FSNAME}"]))<{$VFS.FS.FREE.MIN.CRIT:"{#FSNAME}"} or timeleft(/Linux by Prom/vfs.fs.pused[node_exporter,"{#FSNAME}"],1h,100)<1d) tags: - tag: scope value: availability - tag: scope value: capacity graph_prototypes: - uuid: aa350a426fcd40af96cd15f778cdf62d name: '{#FSNAME}: Disk space usage' width: '600' height: '340' type: PIE show_3d: 'YES' graph_items: - color: '969696' calc_fnc: LAST type: GRAPH_SUM item: host: 'Linux by Prom' key: 'vfs.fs.total[node_exporter,"{#FSNAME}"]' - sortorder: '1' color: C80000 calc_fnc: LAST item: host: 'Linux by Prom' key: 'vfs.fs.used[node_exporter,"{#FSNAME}"]' master_item: key: node_exporter.get lld_macro_paths: - lld_macro: '{#FSTYPE}' path: $.labels.fstype - lld_macro: '{#FSNAME}' path: $.labels.mountpoint - lld_macro: '{#FSDEVICE}' path: $.labels.device - lld_macro: '{#HELP}' path: $.help preprocessing: - type: PROMETHEUS_TO_JSON parameters: - '{__name__=~"^node_filesystem_size(?:_bytes)?$", mountpoint=~".+"}' tags: - tag: class value: os - tag: target value: linux macros: - macro: '{$CPU.UTIL.CRIT}' value: '90' - macro: '{$IF.ERRORS.WARN}' value: '2' - macro: '{$IF.UTIL.MAX}' value: '90' - macro: '{$IFCONTROL}' value: '1' - macro: '{$KERNEL.MAXFILES.MIN}' value: '256' - macro: '{$LOAD_AVG_PER_CPU.MAX.WARN}' value: '1.5' description: 'Load per CPU considered sustainable. Tune if needed.' - macro: '{$MEMORY.AVAILABLE.MIN}' value: 20M - macro: '{$MEMORY.UTIL.MAX}' value: '90' - macro: '{$NET.IF.IFALIAS.MATCHES}' value: '^.*$' - macro: '{$NET.IF.IFALIAS.NOT_MATCHES}' value: CHANGE_IF_NEEDED - macro: '{$NET.IF.IFNAME.MATCHES}' value: '^.*$' - macro: '{$NET.IF.IFNAME.NOT_MATCHES}' value: '(^Software Loopback Interface|^NULL[0-9.]*$|^[Ll]o[0-9.]*$|^[Ss]ystem$|^Nu[0-9.]*$|^veth[0-9A-z]+$|docker[0-9]+|br-[a-z0-9]{12})' description: 'Filter out loopbacks, nulls, docker veth links and docker0 bridge by default.' - macro: '{$NET.IF.IFOPERSTATUS.MATCHES}' value: '^.*$' - macro: '{$NET.IF.IFOPERSTATUS.NOT_MATCHES}' value: ^7$ description: 'Ignore notPresent(7).' - macro: '{$NODE_EXPORTER_PORT}' value: '9100' description: 'TCP Port node_exporter is listening on.' - macro: '{$SWAP.PFREE.MIN.WARN}' value: '50' - macro: '{$SYSTEM.FUZZYTIME.MAX}' value: '60' - macro: '{$VFS.DEV.DEVNAME.MATCHES}' value: .+ description: 'This macro is used in block devices discovery. Can be overridden on the host or linked template level.' - 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: 'This macro is used in block devices discovery. Can be overridden on the host or linked template level.' - macro: '{$VFS.DEV.READ.AWAIT.WARN}' value: '20' description: 'Disk read average response time (in ms) before the trigger would fire.' - macro: '{$VFS.DEV.WRITE.AWAIT.WARN}' value: '20' description: 'Disk write average response time (in ms) before the trigger would fire.' - macro: '{$VFS.FS.FREE.MIN.CRIT}' value: 5G description: 'The critical threshold of the filesystem utilization.' - macro: '{$VFS.FS.FREE.MIN.WARN}' value: 10G description: 'The warning threshold of the filesystem utilization.' - macro: '{$VFS.FS.FSDEVICE.MATCHES}' value: ^.+$ description: 'This macro is used in filesystems discovery. Can be overridden on the host or linked template level.' - macro: '{$VFS.FS.FSDEVICE.NOT_MATCHES}' value: ^\s$ description: 'This macro is used in filesystems discovery. Can be overridden on the host or linked template level.' - macro: '{$VFS.FS.FSNAME.MATCHES}' value: .+ description: 'This macro is used in filesystems discovery. Can be overridden on the host or linked template level.' - macro: '{$VFS.FS.FSNAME.NOT_MATCHES}' value: ^(/dev|/sys|/run|/proc|.+/shm$) description: 'This macro is used in filesystems discovery. Can be overridden on the host or linked template level.' - macro: '{$VFS.FS.FSTYPE.MATCHES}' value: ^(btrfs|ext2|ext3|ext4|reiser|xfs|ffs|ufs|jfs|jfs2|vxfs|hfs|apfs|refs|ntfs|fat32|zfs)$ 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: ^\s$ description: 'This macro is used in filesystems discovery. Can be overridden on the host or linked template level.' - macro: '{$VFS.FS.INODE.PFREE.MIN.CRIT}' value: '10' - macro: '{$VFS.FS.INODE.PFREE.MIN.WARN}' value: '20' - macro: '{$VFS.FS.PUSED.MAX.CRIT}' value: '90' - macro: '{$VFS.FS.PUSED.MAX.WARN}' value: '80' dashboards: - uuid: 19dac6b780aa49558bf4a3782ba4b3b6 name: 'Network interfaces' pages: - widgets: - type: graphprototype width: '24' height: '5' fields: - type: INTEGER name: columns value: '1' - type: INTEGER name: rows value: '1' - type: GRAPH_PROTOTYPE name: graphid value: host: 'Linux by Prom' name: 'Interface {#IFNAME}({#IFALIAS}): Network traffic' - uuid: 558606056f464970a7c544ba75d544f2 name: 'System performance' pages: - widgets: - type: graph width: '12' height: '5' fields: - type: GRAPH name: graphid value: host: 'Linux by Prom' name: 'Linux: System load' - type: graph x: '12' width: '12' height: '5' fields: - type: GRAPH name: graphid value: host: 'Linux by Prom' name: 'Linux: CPU usage' - type: graph 'y': '5' width: '12' height: '5' fields: - type: GRAPH name: graphid value: host: 'Linux by Prom' name: 'Linux: Memory usage' - type: graph x: '12' 'y': '5' width: '12' height: '5' fields: - type: GRAPH name: graphid value: host: 'Linux by Prom' name: 'Linux: Swap usage' - type: graphprototype 'y': '10' width: '24' height: '5' fields: - type: INTEGER name: columns value: '1' - type: INTEGER name: rows value: '1' - type: GRAPH_PROTOTYPE name: graphid value: host: 'Linux by Prom' name: '{#FSNAME}: Disk space usage' - type: graphprototype 'y': '15' width: '24' height: '5' fields: - type: INTEGER name: columns value: '1' - type: INTEGER name: rows value: '1' - type: GRAPH_PROTOTYPE name: graphid value: host: 'Linux by Prom' name: '{#DEVNAME}: Disk read/write rates' - type: graphprototype 'y': '20' width: '24' height: '5' fields: - type: INTEGER name: columns value: '1' - type: INTEGER name: rows value: '1' - type: GRAPH_PROTOTYPE name: graphid value: host: 'Linux by Prom' name: '{#DEVNAME}: Disk average waiting time' - type: graphprototype 'y': '25' width: '24' height: '5' fields: - type: INTEGER name: columns value: '1' - type: INTEGER name: rows value: '1' - type: GRAPH_PROTOTYPE name: graphid value: host: 'Linux by Prom' name: '{#DEVNAME}: Disk utilization and queue' - type: graphprototype 'y': '30' width: '24' height: '5' fields: - type: INTEGER name: columns value: '1' - type: INTEGER name: rows value: '1' - type: GRAPH_PROTOTYPE name: graphid value: host: 'Linux by Prom' name: 'Interface {#IFNAME}({#IFALIAS}): Network traffic' valuemaps: - uuid: 4827063819f14d539f509552c84f5f94 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: 4d912f1ee95942038f306ddefb3a57b3 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' triggers: - uuid: 16e6a4d340164dee9379a3fc0aac0576 expression: 'max(/Linux by Prom/system.swap.pfree[node_exporter],5m)<{$SWAP.PFREE.MIN.WARN} and last(/Linux by Prom/system.swap.total[node_exporter])>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 Prom/vm.memory.util[node_exporter],5m)>{$MEMORY.UTIL.MAX}' - name: 'Linux: Lack of available memory' expression: 'max(/Linux by Prom/vm.memory.available[node_exporter],5m)<{$MEMORY.AVAILABLE.MIN} and last(/Linux by Prom/vm.memory.total[node_exporter])>0' tags: - tag: scope value: capacity - uuid: f78ed17586964a46a9de0c4f183984f6 expression: 'max(/Linux by Prom/vm.memory.available[node_exporter],5m)<{$MEMORY.AVAILABLE.MIN} and last(/Linux by Prom/vm.memory.total[node_exporter])>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 tags: - tag: scope value: capacity - tag: scope value: performance - uuid: e5897641e5594bf6b7b18ae4e107bd50 expression: | min(/Linux by Prom/system.cpu.load.avg1[node_exporter],5m)/last(/Linux by Prom/system.cpu.num[node_exporter])>{$LOAD_AVG_PER_CPU.MAX.WARN} and last(/Linux by Prom/system.cpu.load.avg5[node_exporter])>0 and last(/Linux by Prom/system.cpu.load.avg15[node_exporter])>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 - uuid: 7effa63c9c994a6786279802aa7328ad expression: 'last(/Linux by Prom/fd.open[node_exporter])/last(/Linux by Prom/kernel.maxfiles[node_exporter])*100>80' name: 'Linux: Running out of file descriptors' event_name: 'Linux: Running out of file descriptors (less than < 20% free)' opdata: '{ITEM.LASTVALUE1} of {ITEM.LASTVALUE2} file descriptors are in use.' priority: WARNING tags: - tag: scope value: performance graphs: - uuid: bb8bb267b32b46bfa2a6277b65730396 name: 'Linux: CPU jumps' graph_items: - color: 199C0D item: host: 'Linux by Prom' key: 'system.cpu.switches[node_exporter]' - sortorder: '1' color: F63100 item: host: 'Linux by Prom' key: 'system.cpu.intr[node_exporter]' - uuid: 09ebf28dc8504ab2bfd07130d1f6ca91 name: 'Linux: CPU usage' type: STACKED ymin_type_1: FIXED ymax_type_1: FIXED graph_items: - color: 199C0D item: host: 'Linux by Prom' key: 'system.cpu.system[node_exporter]' - sortorder: '1' color: F63100 item: host: 'Linux by Prom' key: 'system.cpu.user[node_exporter]' - sortorder: '2' color: 00611C item: host: 'Linux by Prom' key: 'system.cpu.nice[node_exporter]' - sortorder: '3' color: F7941D item: host: 'Linux by Prom' key: 'system.cpu.iowait[node_exporter]' - sortorder: '4' color: FC6EA3 item: host: 'Linux by Prom' key: 'system.cpu.steal[node_exporter]' - sortorder: '5' color: 6C59DC item: host: 'Linux by Prom' key: 'system.cpu.interrupt[node_exporter]' - sortorder: '6' color: C7A72D item: host: 'Linux by Prom' key: 'system.cpu.softirq[node_exporter]' - sortorder: '7' color: BA2A5D item: host: 'Linux by Prom' key: 'system.cpu.guest[node_exporter]' - sortorder: '8' color: F230E0 item: host: 'Linux by Prom' key: 'system.cpu.guest_nice[node_exporter]' - uuid: 9cd184535b6b4fd5978a302bdedeac0b name: 'Linux: CPU utilization' ymin_type_1: FIXED ymax_type_1: FIXED graph_items: - drawtype: GRADIENT_LINE color: 199C0D item: host: 'Linux by Prom' key: 'system.cpu.util[node_exporter]' - uuid: 1383a8b57e6743de946c8a43016ee2f7 name: 'Linux: Memory usage' ymin_type_1: FIXED graph_items: - drawtype: BOLD_LINE color: 199C0D item: host: 'Linux by Prom' key: 'vm.memory.total[node_exporter]' - sortorder: '1' drawtype: GRADIENT_LINE color: F63100 item: host: 'Linux by Prom' key: 'vm.memory.available[node_exporter]' - uuid: 81e79ef1219a4c48af1f740017bbde6a name: 'Linux: Memory utilization' ymin_type_1: FIXED ymax_type_1: FIXED graph_items: - drawtype: GRADIENT_LINE color: 199C0D item: host: 'Linux by Prom' key: 'vm.memory.util[node_exporter]' - uuid: 567684533d2442b286119c7d392e2bb7 name: 'Linux: Swap usage' graph_items: - color: 199C0D item: host: 'Linux by Prom' key: 'system.swap.free[node_exporter]' - sortorder: '1' color: F63100 item: host: 'Linux by Prom' key: 'system.swap.total[node_exporter]' - uuid: f9cbf136d01040ffa18753fb40d55f79 name: 'Linux: System load' ymin_type_1: FIXED graph_items: - color: 199C0D item: host: 'Linux by Prom' key: 'system.cpu.load.avg1[node_exporter]' - sortorder: '1' color: F63100 item: host: 'Linux by Prom' key: 'system.cpu.load.avg5[node_exporter]' - sortorder: '2' color: 00611C item: host: 'Linux by Prom' key: 'system.cpu.load.avg15[node_exporter]' - sortorder: '3' color: F7941D yaxisside: RIGHT item: host: 'Linux by Prom' key: 'system.cpu.num[node_exporter]'