Carbon Storageschema - does this make sense

… or am I overly ambitious?

Im planning to aggregate the data series of some checks regarding it’s intervall in several different ways to ensure best Graphite-Graphs in icingaweb2.

So here’s what my mind came up with:

I’ll define those services with names that contain information about the planned intervall, for example “HTTP5min” or “VPNTunnel1hour” or “NumberOfUsers90sec” or “Updates1day”.

Then I’ll define my retentions in the storage-schemas configuration as follows:

pattern = ^carbon\.
retentions = 60:90d

pattern = ^icinga2\..*\.(max_check_attempts|reachable|current_attempt|execution_time|latency|s tate|state_type)
retentions = 5m:7d

pattern = ^icinga2.*90sec.*
retentions = 90s:2d,6m:10d,30m:90d,360m:4y

pattern = ^icinga2.*120sec.*
retentions = 120s:2d,10m:10d,60m:90d,360m:4y

pattern = ^icinga2.*5min.*
retentions = 5m:2d,30m:90d,360m:4y

pattern = ^icinga2.*10min.*
retentions = 10m:2d,60m:90d,360m:4y

pattern = ^icinga2.*15min.*
retentions = 15m:90d,360m:4y

pattern = ^icinga2.*30min.*
retentions = 30m:90d,360m:4y

pattern = ^icinga2.*1hour.*
retentions = 60m:90d,360m:4y

pattern = ^icinga2.*6hours.*
retentions = 360m:4y

pattern = ^icinga2.*12hours.*
retentions = 720m:4y

pattern = ^icinga2.*1day.*
retentions = 1440m:4y

pattern = ^icinga2\.
retentions = 1m:2d,5m:10d,30m:90d,360m:4y

pattern = .*
retentions = 60s:1d

For each intervall a seperate section with the matching pattern and retention.

Does this make any sense at all, or would you say “Hey geek what the heck are you doing there?”

Wide open for enlightment,

It absolutely makes sense, but instead of naming your checks in this way, you can also change the template defining how Icinga 2 writes to Graphite. When you add $service.check_interval$ somewhere in it you prevent a mismatch between name and interval, but of course with an additional layer in the template visualization has to be adjusted.