Esempio n. 1
0
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=""),
                                 ]),
                       ])
Esempio n. 2
0
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,
            )
        ],
    )
Esempio n. 3
0
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
                        ),
                    ],
                ),
            ),
        ],
    )
Esempio n. 4
0
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"))
             ],
         )),
    ], )
Esempio n. 5
0
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")),
             ],
         )),
    ],)
Esempio n. 6
0
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,
    )
Esempio n. 7
0
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,
    )
Esempio n. 8
0
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,
    )
Esempio n. 9
0
 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())])
Esempio n. 10
0
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"))
                         ],
                     ),
                 ],
             )),
        ],
    )
Esempio n. 11
0
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,
    )
Esempio n. 12
0
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,
    )
Esempio n. 13
0
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', ),
                               ],
                           )),
                      ])
Esempio n. 14
0
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,
            ),
        ],
    )
Esempio n. 15
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)
                    ],
                ),
            ),
        ],
    )
Esempio n. 16
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"),
    )
Esempio n. 17
0
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,
    )
Esempio n. 18
0
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),
                    ],
                ),
            ),
        ],
    )
Esempio n. 19
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"],
    )
Esempio n. 20
0
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
    )
Esempio n. 21
0
 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),
                  ],
              )),
         ],
     )
Esempio n. 22
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"),
    )
Esempio n. 24
0
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,
    )
Esempio n. 25
0
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")),
               ])),
    ]
Esempio n. 26
0
 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)
                     ],
                 ),
             ),
         ],
     )
Esempio n. 27
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"), ),
        ),
    ], )
Esempio n. 28
0
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."),
    )
Esempio n. 29
0
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=_("%"))
                  ]),
        ),
    ])
Esempio n. 30
0
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"))
            ],
        ),
    ], )