def _vs_limits(resource, default_limit, vs_limit_cls=None): # type: (Text, int, Optional[Type[Filesize]]) -> Alternative if vs_limit_cls is None: vs_limit = Integer( unit=_("%s" % resource), minvalue=1, default_value=default_limit, ) else: vs_limit = vs_limit_cls( minvalue=1, default_value=default_limit, ) if resource: title = _("Set limit and levels for %s" % resource) # type: Optional[Text] else: title = None return Alternative(title=title, style="dropdown", elements=[ Tuple(title=_("Set levels"), elements=[ Alternative(elements=[ FixedValue( None, totext=_("Limit from AWS API"), ), vs_limit ]), Percentage(title=_("Warning at"), default_value=80.0), Percentage(title=_("Critical at"), default_value=90.0), ]), Tuple(title=_("No levels"), elements=[ FixedValue(None, totext=""), FixedValue(None, totext=""), FixedValue(None, totext=""), ]), ])
def get_free_used_dynamic_valuespec(what, name, default_value=(80.0, 90.0)): if what == "used": title = _("used space") course = _("above") else: title = _("free space") course = _("below") vs_subgroup = [ Tuple(title=_("Percentage %s") % title, elements=[ Percentage(title=_("Warning if %s") % course, unit="%", minvalue=0.0), Percentage(title=_("Critical if %s") % course, unit="%", minvalue=0.0), ]), Tuple(title=_("Absolute %s") % title, elements=[ Integer(title=_("Warning if %s") % course, unit=_("MB"), minvalue=0), Integer(title=_("Critical if %s") % course, unit=_("MB"), minvalue=0), ]) ] def validate_dynamic_levels(value, varprefix): if [v for v in value if v[0] < 0]: raise MKUserError(varprefix, _("You need to specify levels " "of at least 0 bytes.")) return Alternative( title=_("Levels for %s %s") % (name, title), style="dropdown", show_alternative_title=True, default_value=default_value, elements=vs_subgroup + [ ListOf( Tuple(orientation="horizontal", elements=[ Filesize(title=_("%s larger than") % name.title()), Alternative(elements=vs_subgroup) ]), title=_('Dynamic levels'), allow_empty=False, validate=validate_dynamic_levels, ) ], )
def _parameter_valuespec_elasticsearch_indices(): return Dictionary( elements=[ ( "elasticsearch_count_rate", Tuple( title=_("Document count delta"), help=_( "If this parameter is set, the document count delta of the " "last minute will be compared to the delta of the average X " "minutes. You can set WARN or CRIT levels to check if the last " "minute's delta is X percent higher than the average delta." ), elements=[ Percentage(title=_("Warning at"), unit=_("percent higher than average")), Percentage(title=_("Critical at"), unit=_("percent higher than average")), Integer( title=_("Averaging"), unit=_("minutes"), minvalue=1, default_value=30 ), ], ), ), ( "elasticsearch_size_rate", Tuple( title=_("Size delta"), help=_( "If this parameter is set, the size delta of the last minute " "will be compared to the delta of the average X minutes. " "You can set WARN or CRIT levels to check if the last minute's " "delta is X percent higher than the average delta." ), elements=[ Percentage(title=_("Warning at"), unit=_("percent higher than average")), Percentage(title=_("Critical at"), unit=_("percent higher than average")), Integer( title=_("Averaging"), unit=_("minutes"), minvalue=1, default_value=30 ), ], ), ), ], )
def _parameter_valuespec_k8s_pods_cpu(): return Dictionary(elements=[ ("system", Tuple( title=_("System CPU usage"), elements=[ Percentage(title=_("Warning at")), Percentage(title=_("Critical at")) ], )), ("user", Tuple( title=_("User CPU usage"), elements=[ Percentage(title=_("Warning at")), Percentage(title=_("Critical at")) ], )), ], )
def _parameter_valuespec_hw_fans_perc(): return Dictionary(elements=[ ("levels", Tuple( title=_("Upper fan speed levels"), elements=[ Percentage(title=_("warning if at")), Percentage(title=_("critical if at")), ], )), ("levels_lower", Tuple( title=_("Lower fan speed levels"), elements=[ Percentage(title=_("warning if below")), Percentage(title=_("critical if below")), ], )), ],)
def _parameter_valuespec_cpu_utilization(): return Transform( Dictionary(elements=[ ("util", Tuple( elements=[ Percentage(title=_("Warning at a utilization of")), Percentage(title=_("Critical at a utilization of")) ], title=_("Alert on too high CPU utilization"), help= _("The CPU utilization sums up the percentages of CPU time that is used " "for user processes and kernel routines over all available cores within " "the last check interval. The possible range is from 0% to 100%" ), default_value=(90.0, 95.0))), ]), forth=_transform_cpu_utilization, )
def _parameter_valuespec_smoke(): return Transform( Dictionary( help=_("For devices that measure smoke in percent"), elements=[ ( "levels", Tuple( title=_("Upper limits in percent"), elements=[ Percentage(title=_("Warning at"), allow_int=True, default_value=1), Percentage(title=_("Critical at"), allow_int=True, default_value=5), ], ), ), ], ), forth=_transform_smoke_detection_params, )
def _parameter_valuespec_juniper_cpu_util(): return Transform( Dictionary( optional_keys=[], elements=[ ( "levels", Tuple( title=_("Upper levels"), elements=[ Percentage(title=_("Warning at"), default_value=80.0), Percentage(title=_("Critical at"), default_value=90.0), ], ), ), ], ), forth=lambda old: not old and {'levels': (80.0, 90.0)} or old, )
def vs_abs_perc(): return CascadingDropdown(orientation="horizontal", choices=[("perc", _("Percentual levels (in relation to port speed)"), Tuple(orientation="float", show_titles=False, elements=[ Percentage(label=_("Warning at")), Percentage(label=_("Critical at")), ])), ("abs", _("Absolute levels in bits or bytes per second"), Tuple(orientation="float", show_titles=False, elements=[ Integer(label=_("Warning at")), Integer(label=_("Critical at")), ])), ("predictive", _("Predictive Levels (only on CMC)"), PredictiveLevels())])
def _parameter_valuespec_mssql_file_sizes(): return Dictionary( title=_("File Size Levels"), elements=[ ("data_files", Tuple( title=_("Total data file size: Absolute upper levels"), elements=[ Filesize(title=_("Warning at")), Filesize(title=_("Critical at")), ], )), ("log_files", Tuple( title=_("Total log file size: Absolute upper levels"), elements=[ Filesize(title=_("Warning at")), Filesize(title=_("Critical at")) ], )), ("log_files_used", Alternative( title=_("Used log files: Absolute or relative upper levels"), elements=[ Tuple( title=_("Upper absolute levels"), elements=[ Filesize(title=_("Warning at")), Filesize(title=_("Critical at")) ], ), Tuple( title=_("Upper percentage levels"), elements=[ Percentage(title=_("Warning at")), Percentage(title=_("Critical at")) ], ), ], )), ], )
def _parameter_valuespec_kube_pod_resources(help_text: str): return Dictionary( elements=[ ( "pending", valuespec_age(title=_("Define levels for pending pods")), ), ( "free", CascadingDropdown( title= _("Define lower levels for free pods (clusters and nodes only)" ), choices=[ ("no_levels", _("No Levels")), ( "levels_perc", _("Percentual levels"), Tuple(elements=[ Percentage(title=_("Warning below"), default_value=10.0), Percentage(title=_("Critical below"), default_value=5.0), ]), ), ( "levels_abs", _("Absolute levels"), Tuple(elements=[ Integer(title=_("Warning below"), default_value=10), Integer(title=_("Critical below"), default_value=5), ]), ), ], default_value="levels_perc", ), ), ], help=help_text, )
def _parameter_valuespec_oracle_processes(): return Dictionary( help= _("Here you can override the default levels for the ORACLE Processes check. The levels " "are applied on the number of used processes in percentage of the configured limit." ), elements=[ ("levels", Tuple( title=_("Levels for used processes"), elements=[ Percentage(title=_("Warning if more than"), default_value=70.0), Percentage(title=_("Critical if more than"), default_value=90.0) ], )), ], optional_keys=False, )
def _parameter_valuespec_couchbase_cache(): return Dictionary(title=_('Couchbase: Cache'), elements=[ ("cache_misses", Tuple( title="Levels on cache misses per second", elements=[ Float(title="warn", ), Float(title="crit", ), ], )), ('cache_hits', Tuple( title='Nodes only: Lower levels for hits in %', elements=[ Percentage(title='warn', ), Percentage(title='crit', ), ], )), ])
def _parameter_valuespec_juniper_mem(): return Tuple( title=_("Specify levels in percentage of total memory usage"), elements=[ Percentage( title=_("Warning at a usage of"), # xgettext: no-python-format unit=_("% of RAM"), default_value=80.0, maxvalue=100.0, ), Percentage( title=_("Critical at a usage of"), # xgettext: no-python-format unit=_("% of RAM"), default_value=90.0, maxvalue=100.0, ), ], )
def _parameter_valuespec_fpga_utilization(): return Dictionary( help= _("Give FPGA utilization levels in percent. The possible range is from 0% to 100%." ), elements=[ ( "levels", Tuple( title=_("Alert on too high FPGA utilization"), elements=[ Percentage(title=_("Warning at a utilization of"), default_value=80.0), Percentage(title=_("Critical at a utilization of"), default_value=90.0) ], ), ), ], )
def _parameter_valuespec_mem_cluster(): return ListOf( valuespec=Tuple(elements=[ Integer(title=_("Equal or more than"), unit=_("nodes")), Tuple( title=_("Percentage of total RAM"), elements=[ Percentage(title=_("Warning at a RAM usage of"), default_value=80.0), Percentage(title=_("Critical at a RAM usage of"), default_value=90.0), ], ), ]), help= _("Here you can specify the total memory usage levels for clustered hosts." ), title=_("Memory Usage"), add_label=_("Add limits"), )
def _parameter_valuespec_juniper_cpu_util(): return Transform( Dictionary( help=_("CPU utilization of routing engine."), optional_keys=[], elements=[ ( "levels", Tuple( title=_("Specify levels in percentage of processor routing engine usage"), elements=[ Percentage(title=_("Warning at"), default_value=80.0), Percentage(title=_("Critical at"), default_value=90.0), ], ), ), ], ), forth=lambda old: not old and {'levels': (80.0, 90.0)} or old, )
def _parameter_valuespec_overall_utilization_multiitem(): return Dictionary( help=_( "The overall utilization as aggregation of various utilizatons" "(cpu, memory, etc.) of components of a device (e.g. rack units" "as components of a rack server as device) in the last check interval." "The possible range is from 0% to 100%"), elements=[ ( "upper_levels", Tuple( title=_("Alert on too high overall utilization"), elements=[ Percentage(title=_("Warning at"), default_value=90.0), Percentage(title=_("Critical at"), default_value=95.0), ], ), ), ], )
def _parameter_valuespec_ibm_svc_mdiskgrp(): return Dictionary( elements=filesystem_elements + [ ("provisioning_levels", Tuple( title=_("Provisioning Levels"), help=_( "A provisioning of over 100% means over provisioning."), elements=[ Percentage(title=_("Warning at a provisioning of"), default_value=110.0, maxvalue=None), Percentage(title=_("Critical at a provisioning of"), default_value=120.0, maxvalue=None), ], )), ], hidden_keys=["flex_levels"], )
def _parameter_valuespec_memory_percentage_levels(): return Dictionary( elements=[ ("levels", Tuple( title=_("Levels"), elements=[ Percentage( title=_("Warning at"), default_value=70.0, ), Percentage( title=_("Critical at"), default_value=80.0, ), ], )), ], required_keys=['levels'], # There is only one value, so its required )
def parameter_valuespec(self): return Dictionary( help=_( "This rule allows to set the warn and crit levels of the memory " "metrics of the DotNet (.Net) Runtime"), elements=[ ("upper", Tuple( title=_("Percent time spent in garbage collection"), elements=[ Percentage(title=_("Warning at"), label=_("% time"), default_value=10.0), Percentage(title=_("Critical at"), label=_("% time"), default_value=15.0), ], )), ], )
def UsedPercentage(default_percents=None, of_what=None): if of_what: unit = _("%% of %s") % of_what maxvalue = None else: unit = "%" maxvalue = 101.0 return Tuple(elements=[ Percentage( title=_("Warning at"), default_value=default_percents and default_percents[0] or 80.0, unit=unit, maxvalue=maxvalue, ), Percentage( title=_("Critical at"), default_value=default_percents and default_percents[1] or 90.0, unit=unit, maxvalue=maxvalue), ])
def _parameter_valuespec_cpu_utilization_cluster(): return ListOf( Tuple(elements=[ Integer(title=_("Equal or more than"), unit=_("nodes")), Tuple( elements=[ Percentage(title=_("Warning at a utilization of"), default_value=90.0), Percentage(title=_("Critical at a utilization of"), default_value=95.0) ], title=_("Alert on too high CPU utilization"), ) ]), help=_( "Configure levels for averaged CPU utilization depending on number of cluster nodes. " "The CPU utilization sums up the percentages of CPU time that is used " "for user processes and kernel routines over all available cores within " "the last check interval. The possible range is from 0% to 100%"), title=_("Memory Usage"), add_label=_("Add limits"), )
def _parameter_valuespec_win_dhcp_pools(): return Transform( Dictionary(elements=[ ("free_leases", Alternative(title=_("Free leases levels"), elements=[ Tuple(title=_("Free leases levels in percent"), elements=[ Percentage(title=_("Warning if below"), default_value=10.0), Percentage(title=_("Critical if below"), default_value=5.0) ]), Tuple(title=_("Absolute free leases levels"), elements=[ Integer(title=_("Warning if below"), unit=_("free leases")), Integer(title=_("Critical if below"), unit=_("free leases")) ]) ])), ("used_leases", Alternative(title=_("Used leases levels"), elements=[ Tuple(title=_("Used leases levels in percent"), elements=[ Percentage(title=_("Warning if below")), Percentage(title=_("Critical if below")) ]), Tuple(title=_("Absolute used leases levels"), elements=[ Integer(title=_("Warning if below"), unit=_("used leases")), Integer(title=_("Critical if below"), unit=_("used leases")) ]) ])), ]), forth=lambda params: isinstance(params, tuple) and {"free_leases": (float(params[0], ), float(params[1], ))} or params, )
def _vs_elements_http_errors(): return [ ('levels_http_4xx_perc', Tuple( title=_("Upper percentual levels for HTTP 400 errors"), help=_("Specify levels for HTTP 400 errors in percentage " "which refer to the total number of requests"), elements=[ Percentage(title=_("Warning at")), Percentage(title=_("Critical at")), ], )), ('levels_http_5xx_perc', Tuple(title=_("Upper percentual levels for HTTP 500 errors"), help=_("Specify levels for HTTP 500 errors in percentage " "which refer to the total number of requests"), elements=[ Percentage(title=_("Warning at")), Percentage(title=_("Critical at")), ])), ]
def parameter_valuespec(self): return Dictionary( help= _("The memory utilization of components of a device (e.g. memory utilization" "of the rack units as components of a rack server as device) in the last" "check interval. The possible range is from 0% to 100%"), elements=[ ( "upper_levels", Tuple( title=_("Alert on too high memory utilization"), elements=[ Percentage(title=_("Warning at"), default_value=90.0), Percentage(title=_("Critical at"), default_value=95.0) ], ), ), ], )
def _parameter_valuespec_netapp_snapshots(): return Dictionary(elements=[ ( "levels", Tuple( title=_("Levels for used configured reserve"), elements=[ Percentage(title=_("Warning at or above"), unit="%", default_value=85.0), Percentage(title=_("Critical at or above"), unit="%", default_value=90.0), ], ), ), ( "state_noreserve", MonitoringState(title=_("State if no reserve is configured"), ), ), ], )
def _parameter_valuespec_cooling_pos(): return Dictionary( elements=[("min_capacity", Tuple( title=_("Minimal free cooling positions"), elements=[ Percentage(title=_("Warning if below")), Percentage(title=_("Critical if below")), ], )), ("max_capacity", Tuple( title=_("Maximal free cooling positions"), elements=[ Percentage(title=_("Warning if above")), Percentage(title=_("Critical if above")), ], ))], help=_("Here you can set different warn/crit levels regarding the free cooling " " positions."), )
def _parameter_valuespec_lvm_lvs_pools(): return Dictionary(elements=[ ( "levels_meta", Tuple(title=_("Levels for Meta"), default_value=(80.0, 90.0), elements=[ Percentage(title=_("Warning at"), unit=_("%")), Percentage(title=_("Critical at"), unit=_("%")) ]), ), ( "levels_data", Tuple(title=_("Levels for Data"), default_value=(80.0, 90.0), elements=[ Percentage(title=_("Warning at"), unit=_("%")), Percentage(title=_("Critical at"), unit=_("%")) ]), ), ])
def _parameter_valuespec_statgrab_mem(): return Alternative(elements=[ Tuple( title=_("Specify levels in percentage of total RAM"), elements=[ Percentage(title=_("Warning at a usage of"), unit=_("% of RAM"), maxvalue=None), Percentage(title=_("Critical at a usage of"), unit=_("% of RAM"), maxvalue=None) ], ), Tuple( title=_("Specify levels in absolute usage values"), elements=[ Integer(title=_("Warning at"), unit=_("MB")), Integer(title=_("Critical at"), unit=_("MB")) ], ), ], )