Summary считает для каждой метрики заранее заданный набор квантилей на заранее заданном интервале времени. Этот расчет происходит на стороне клиента, который потом экспортит результат для сбора прометеусом.
Для historgram на стороне клиента создается набор счетчиков по заданным интервалам значений. При попадании значения метрики в заданный интервал соответствующий счетчик инкрементируется. В стандартной библиотеке метрик от прометеуса набор интервалов для каждой метрики нужно задавать самому. В библиотеке метрик от вм набор интервалов фиксированный для всех метрик. Это позволяет производить одновременные расчеты поверх любых метрик, по которым собраны гистограммы, а также динамически вычислять произвольный набор квантилей за любой интервал времени, что невозможно для стандартных гистограмм прометеуса. См.
https://medium.com/@valyala/improving-histogram-usability-for-prometheus-and-grafana-bc7e5df0e350Основные отличия гистограмм от summary:
- персентили из summary нельзя агрегировать
- из summary метрик нельзя подсчитать отсутствующие персентили. То же самое касается существующих персентилей, но за интервалы времени, отличные от сконфигурированных в приложении, экспортирующем метрики в прометеус.
- вычисления по гистограммам сильнее нагружают проц на стороне базы данных во время запроса, в то время как вычисления по summary сильнее грузят приложение, экспортирующее метрики.