Хотя этому вопросу около трех месяцев, я надеюсь, что мой ответ все еще кому-то поможет.
Кажется, конвейерная обработка Ceilometer никогда не работала правильно. Как было замечено в оригинальном постере, команда разработчиков Ceilometer предприняла несколько решительные меры, чтобы отказаться от этой функции, а затем устареть. Следовательно, единственный измеритель ЦП, который остается в арсенале Ceilometer. — это накопленное процессорное время экземпляра, выраженное в наносекундах.
Чтобы рассчитать загрузку ЦП одного экземпляра на основе этого счетчика, вы можете использовать агрегацию скорости Gnocchi. Если rate:mean является одним из методов агрегирования в вашей политике архивирования, вы можете сделать следующее:
gnocchi measures show --resource-id <uuid> --aggregation rate:mean cpu
Или используйте функцию динамического агрегирования для того же результата:
gnocchi aggregates '(metric cpu rate:mean)' id=<uuid>
Первый параметр команды aggregates — это операция, определяющая, какие цифры вам нужны. Операции объясняются в документации Gnocchi API, особенно в разделе, в котором перечислены поддерживаемые операции и раздел примеров. Второй параметр — это выражение поиска, которое ограничивает вычисление экземплярами с этим конкретным UUID (конечно, такой экземпляр только один).
Пока что команда просто извлекает данные из базы данных Gnocchi. Однако вы можете извлекать данные из базы данных, затем объединять их на лету. Этот метод называется (или раньше назывался) повторным агрегированием. Таким образом, вам не нужно включать rate:mean в политику архивирования:
gnocchi aggregates '(aggregate rate:mean (metric cpu mean))' id=<uuid>
Числа выражены в наносекундах, что немного громоздко. Хорошие новости: агрегатные операции Gnocchi также поддерживают арифметику. Чтобы преобразовать наносекунды в секунды, разделите их на один миллиард:
gnocchi aggregates '(/ (aggregate rate:mean (metric cpu mean)) 1000000000)' id=<uuid>
И чтобы преобразовать их в проценты, разделите их на (степень детализации, умноженную на один миллиард), а затем умножьте результат на 100. Предположим, что степень детализации равна 60:
gnocchi aggregates '(* (/ (aggregate rate:mean (metric cpu mean)) 60000000000) 100)' id=<uuid>
person
berndbausch
schedule
07.08.2019