Hi, I wrote a plugin for PTP (linuxptp) time synchronisation to read and display the offset from the master clock.
The offset is displayed in Nanoseconds by the ptp4l client in linux. I convert the values to seconds and use the checkmk render.timespan() function that will give me the correct representation of the time unit in my check summary (see first image).
If the Offset is less than 1 microseconds the performeter and metric graphs show only 0.00s instead of the actual time in nanoseconds.
However, the render.timespan() function renders correctly nanoseconds in the summary message.
local/share/check_mk/web/plugins/metrics/ptp_metric.py
#!/usr/bin/env python3
from cmk.gui.i18n import _
from cmk.gui.plugins.metrics import (
metric_info,
graph_info,
)
metric_info["master_offset"] = {
"title": _("Master Offset"),
"unit": "s",
"color": "#ff8020",
}
local/share/check_mk/web/plugins/perfometer/ptp_perometer.y
#!/usr/bin/env python3
from cmk.gui.plugins.metrics import perfometer_info
perfometer_info.append(
{
"type": "logarithmic",
"metric": "master_offset",
"half_value": 0.000001,
"exponent": 2,
},)
Any ideas on how to solve that problem?
Could that be related to the RRD storage since the stored value is something like 1e-9.