Icinga 2 to Graphite 'None' value because of check duration

I think that everything is working as expected. But maybe there’s a nice solution arround.

The problem:
Assume a service with check_interval = 1m. The service takes about 3-6 seconds to get back results. Performance data is written to graphite with schema definitions for whisper with retentions = 60s:90d. Icinga schedules the next check 60 seconds after the last has finished.

Therefore the check is not executed every 60 seconds and get some ‘None’ values in whisper if we have a jump in the minutes:

debug.log:

[2018-11-05 13:50:50 +0100] debug/GraphiteWriter: Add to metric list:'icinga2.*_jobsPerMinute.by_ssh.perfdata.jobs.value 12 1541422250'.
[2018-11-05 13:51:54 +0100] debug/GraphiteWriter: Add to metric list:'icinga2.*_jobsPerMinute.by_ssh.perfdata.jobs.value 30 1541422314'.
[2018-11-05 13:52:57 +0100] debug/GraphiteWriter: Add to metric list:'icinga2.*_jobsPerMinute.by_ssh.perfdata.jobs.value 26 1541422377'.
...
[2018-11-05 13:54:00 +0100] debug/GraphiteWriter: Add to metric list:'icinga2.*_jobsPerMinute.by_ssh.perfdata.jobs.value 11 1541422440'.
[2018-11-05 13:55:06 +0100] debug/GraphiteWriter: Add to metric list:'icinga2.*_jobsPerMinute.by_ssh.perfdata.jobs.value 21 1541422506'.
[2018-11-05 13:56:09 +0100] debug/GraphiteWriter: Add to metric list:'icinga2.*_jobsPerMinute.by_ssh.perfdata.jobs.value 13 1541422569'.

whisper-fetch.py […].wsp:

1541422200	12.000000
1541422260	30.000000
1541422320	26.000000
1541422380	None
1541422440	11.000000
1541422500	21.000000
1541422560	13.000000

Grafana is displaying holes in graphs. The problem is also occurring with the normal host-alive check.

What is best practice to avoid this behavior? Should I just set the check_interval to 60s minus average check duration?

Thanks for any ideas.

(icinga2 version: r2.9.2-1)

I solved the “problem” by lowering the check_interval to less than 1 minute.