# Properties > Alerts: performance alarms of a VM, server or storage (XAPI perfmon, other_config "perfmon"), e-mail of the pool (src/Form/AlertsForm.php)form: title: 'Alerts' dialog: true width: 600 fontSize: 13 accent: '#0078d7' layout: column padding: 20 gap: 10 children: - type: row gap: 12 children: - {class: App\Gui\IconBox, id: icon, kind: vm, width: 32, height: 32} - type: column gap: 0 children: - {type: label, id: heading, text: 'Alerts', style: subtitle} - {type: label, id: where, text: '', style: muted, size: 12} - {type: label, id: intro, text: 'An alert is raised when a figure stays past its level for the time given.', wrap: true, style: muted} - type: row id: cpuRow gap: 8 children: - {type: checkbox, id: cpuOn, text: 'CPU usage above', width: 210} - {type: textbox, id: cpuLevel, text: '90', width: 100} - {type: label, text: '% for', width: 50} - {type: textbox, id: cpuMinutes, text: '5', width: 50} - {type: label, text: 'minutes'} - type: row id: memRow gap: 8 children: - {type: checkbox, id: memOn, text: 'Free memory below', width: 210} - {type: textbox, id: memLevel, text: '1024', width: 100} - {type: label, text: 'MB for', width: 50} - {type: textbox, id: memMinutes, text: '5', width: 50} - {type: label, text: 'minutes'} - type: row id: netRow gap: 8 children: - {type: checkbox, id: netOn, text: 'Network usage above', width: 210} - {type: textbox, id: netLevel, text: '10240', width: 100} - {type: label, text: 'KB/s for', width: 50} - {type: textbox, id: netMinutes, text: '5', width: 50} - {type: label, text: 'minutes'} - type: row id: diskRow gap: 8 children: - {type: checkbox, id: diskOn, text: 'Disk usage above', width: 210} - {type: textbox, id: diskLevel, text: '10240', width: 100} - {type: label, text: 'KB/s for', width: 50} - {type: textbox, id: diskMinutes, text: '5', width: 50} - {type: label, text: 'minutes'} - type: row id: srUseRow gap: 8 children: - {type: checkbox, id: srUseOn, text: 'Storage used above', width: 210} - {type: textbox, id: srUseLevel, text: '90', width: 100} - {type: label, text: '% for', width: 50} - {type: textbox, id: srUseMinutes, text: '5', width: 50} - {type: label, text: 'minutes'} - type: row id: srIoRow gap: 8 children: - {type: checkbox, id: srIoOn, text: 'Storage throughput above', width: 210} - {type: textbox, id: srIoLevel, text: '100', width: 100} - {type: label, text: 'MB/s for', width: 50} - {type: textbox, id: srIoMinutes, text: '5', width: 50} - {type: label, text: 'minutes'} - type: row id: inhibitRow gap: 8 children: - {type: label, text: 'Then no new alert for', width: 210} - {type: textbox, id: inhibit, text: '60', width: 100} - {type: label, text: 'minutes'} - type: panel id: mailPanel title: 'E-mail alert notifications' padding: 10 gap: 8 children: - {type: checkbox, id: mailOn, text: 'Send e-mail alert notifications (the pool master mails every alert)'} - type: row gap: 8 children: - {type: label, text: 'Send to:', width: 110} - {type: textbox, id: mailTo, placeholder: '[email protected]', grow: 1} - type: row gap: 8 children: - {type: label, text: 'SMTP server:', width: 110} - {type: textbox, id: mailHub, placeholder: 'smtp.example.com', grow: 1} - {type: label, text: 'Port:', width: 40} - {type: textbox, id: mailPort, text: '25', width: 60} - {type: label, id: error, text: '', color: '#d1242f', wrap: true} - type: row gap: 8 children: - {type: spacer} - {type: button, id: ok, text: OK, style: primary, default: true, events: {click: onOkClick}} - {type: button, id: cancel, text: Cancel, cancel: true, events: {click: onCancelClick}}