If you do not supply a render function to check_levels, then it displays the values as a float with 2 digits precision (%.2f) by default.
In the module ~/lib/python3/cmk/base/api/agent_based/render.py are various render functions defined, e.g. render.bytes (which adds the unit B/kB/GB etc.) or render.percent etc.
There is no render function for simple integers, but you can supply your own:
# renders a given number as a string with thousands separator:
def my_render_func(value) -> str:
return f"{value:,d}"
yield from check_levels(
events_failure,
levels_upper = (events_failed_level),
label = "events failure",
render_func = my_render_func
)
# or with a lambda function instead of an explicit function:
yield from check_levels(
events_failure,
levels_upper = (events_failed_level),
label = "events failure",
render_func = lambda value: f"{value:,d}"
)
If you want to use any of the predefined render functions, you can do it like so:
from cmk.base.plugins.agent_based.agent_based_api.v1 import render
yield from check_levels(
...
render_func = render.filesize
)