Таки да, на уровне визуализации графика это можно сделать.
Емнип, выглядит это примерно так:
- Строите исходные графики и делаете их невидимыми;
- Создаете новый запрос, где указываете только арифметическую функцию графаны и имена графиков, к которым применить;
Как я понял, в одном таком "запросе" реализовать сложную арифметку не удастся, то есть, согласно пожеланию в Вашем вопросе, service.total.a = service.type.host.a / service.group.c * service.group.d будет содержать пачку запросов:
- Запрос A: получение service.type.host.a
- Запрос B: получение service.group.c
- Запрос C: получение ervice.group.d
- Запрос D: умножение B, C
- Запрос E: деление A, D
Только этот "запрос" делать видимым.
Но по моему опыту grafana не заменит полностью мониторинг, если только у Вас нет потребности в алерт-системе, поскольку graphite - система визуализации статистики.
При не высоких потребностях в алерт-системе можно использовать
collectd-threshold, если Вы собираете статистику демоном collectd;
При более высоких потребностях можно использовать
Seyren;
Если совсем уж, то есть
Cabot;
И хорошая статья на эту тему
на Хабре.