Вам нужно захватить внутреннее выражение (скорость использования процессора контейнером) как правило записи :
- record: container_cpu_usage_seconds_total:rate5m
expr: rate(container_cpu_usage_seconds_total[5m])
, а затем использовать эту новую серию времени для вычисления max_over_time:
max (
max_over_time(container_cpu_usage_seconds_total:rate5m[30d])
) by (pod_name)
Это необходимо только в версиях Prometheus старше 2.7, так как подзапросы могут быть рассчитаны на лету , для получения более подробной информации см. этот пост .
Примите во внимание, что , если вы планируете использовать этот составной запрос (не более max_per_time данных, собранных за последние 30 дней) для оповещения или визуализации (а не разового запроса),тогда вы бы по-прежнему хотели бы использовать правило записи для повышения производительности запроса. Это классический компромисс между вычислительной сложностью CS (память / пространство памяти, необходимое для хранения правила записи в виде отдельных временных рядов, по сравнению с вычислительными ресурсами, необходимыми для обработки данных в течение 30 дней!)