+++
title = "Гистограммы и тепловые карты"
description = "Введение в гистограммы и тепловые карты"
keywords = ["harvest", "heatmap", "panel", "documentation", "histogram"]
weight = 700
+++

# Введение в гистограммы и тепловые карты

Гистограмма - это графическое представление распределения числовых данных. Он группирует значения в ячейки
(иногда также называемые ячейками), а затем подсчитывает, сколько значений попадает в каждую ячейку.

Вместо отображения фактических значений на графиках гистограммы отображают сегменты. Каждый столбец представляет собой сегмент,
а высота столбца представляет частоту (например, количество) значений, попавших в интервал этого сегмента.

## Пример гистограммы

Эта гистограмма показывает распределение значений пары временных рядов. Вы можете легко увидеть, что
большинство значений находятся в диапазоне 240-300 с пиком между 260-280.

![](/static/img/docs/v43/heatmap_histogram.png)

Гистограммы показывают только распределение значений в определенном временном диапазоне. Проблема с гистограммами заключается в том, что вы не можете видеть никаких тенденций или изменений в распределении с течением времени.
Вот тут-то и пригодятся тепловые карты.

## Тепловые карты

Карта _heat_ похожа на гистограмму, но с течением времени, где каждый временной срез представляет свою собственную гистограмму. Вместо того, чтобы использовать высоту столбца в качестве представления частоты, он использует ячейки и окрашивает ячейку пропорционально количеству значений в корзине.

В этом примере вы можете четко видеть, какие значения являются более распространенными и как они изменяются с течением времени.

![](/static/img/docs/v43/heatmap_histogram_over_time.png)

## Предварительно обработанные данные

Существует ряд источников данных, поддерживающих гистограмму с течением времени, таких как Elasticsearch (с использованием
агрегации сегментов гистограммы) или Prometheus (с помощью [гистограммы](https://prometheus.io/docs/concepts/metric_types/#histogram ) тип метрики
и параметр *Форматировать как*, установленный на тепловую карту). Но, как правило, можно использовать любой источник данных, если он соответствует требованиям:
возвращает ряды с именами, представляющими привязку к корзине, или возвращает ряды, отсортированные по привязке в порядке возрастания.

## Исходные данные против агрегированных

Если вы используете тепловую карту с обычными данными временных рядов (без предварительной привязки), то важно иметь в виду, что ваши данные
часто уже агрегируются вашим серверным интерфейсом временных рядов. Большинство запросов временных рядов не возвращают необработанные выборочные данные
, но включают группировку по временному интервалу или ограничение maxDataPoints в сочетании с функцией агрегирования (обычно средней).

Конечно, все это зависит от временного диапазона вашего запроса. Но важно знать, что разбивка гистограммы
, которую выполняет Harvest, может выполняться на уже агрегированных и усредненных данных. Чтобы получить более точные тепловые карты, лучше
выполнить разбивку во время сбора метрик или сохранить данные в Elasticsearch или в другом источнике данных, который
поддерживает разбивку гистограммы на необработанные данные.

Если вы удалите или уменьшите группу по времени (или увеличите maxDataPoints) в своем запросе, чтобы вернуть больше точек данных, ваша тепловая карта будет
более точный, но это также может сильно нагружать процессор и память вашего браузера и может привести к зависаниям и сбоям, если количество
точек данных станет неоправданно большим.