Окно времени

У каждой страницы с графиком — Производительность и страница эндпойнта, Web Vitals, Метрики, Профили, график задержек монитора и график частоты проблемы — общий контрол окна времени, которое покрывают график и его числа. Он стоит в ряду фильтров и обычно подписан «Период». У списка проблем — тот же контрол, включая произвольные диапазоны, плюс вариант «за всё время» (см. Проблемы).

Окно «липкое» при навигации: выбранный пресет запоминается в cookie и становится дефолтом на остальных страницах с этим контролом — переход между разделами больше не сбрасывает окно молча. Явный query в адресе всегда важнее. Произвольные диапазоны и «за всё время» осознанно не запоминаются: произвольный диапазон слишком специфичен, чтобы навязывать его другим страницам, а у «за всё время» нет оси, по которой рисовать график.

Всё время — в UTC

Время в gotcha везде в UTC: и оси графиков, и метки событий, и контрол диапазона. Когда вы выбираете 21 июля 00:00 — это 21 июля 00:00 UTC, а не 00:00 в вашем часовом поясе, поэтому окно всегда совпадает с подписями на графике, который вы смотрите. Именно поэтому контрол и подпись активного диапазона помечены UTC: если на вашей машине UTC+3, то окно, выглядящее как «полночь», начинается в 03:00 по местному — и при разборе инцидента эта разница существенна.

Пресеты и произвольный диапазон

Контрол предлагает четыре быстрых пресета — 1ч / 24ч / 7д / 30д — и произвольный диапазон для всего остального. Пресет отсчитывается от «сейчас»; произвольный диапазон — это две фиксированные точки во времени. Применение окна пересобирает всю страницу под него и сохраняет прочие фильтры страницы (окружение, сортировку и т.д.).

Как выбрать произвольный диапазон

С JavaScript контрол — это одна кнопка с текущим окном. Клик по ней открывает попап: быстрые пресеты слева и календарь на два месяца справа. Клик по первому дню задаёт начало, клик по второму — конец; выбранный диапазон подсвечивается полосой через оба месяца, а «Применить» его загружает. Дни в будущем недоступны, а произвольный диапазон шире окна хранения обрезается до него (запрос за пределы хранения всё равно вернул бы пусто).

Без JavaScript (или если скрипт заблокирован) контрол откатывается к списку пресетов и раскрывающемуся блоку «Задать даты» с двумя нативными полями даты — заполните оба и примените, и произвольный диапазон выберется так же. Всё работает без JavaScript; попап-календарь — удобство поверх.

Графики покрывают всё выбранное окно

Ось графика идёт по выбранному окну, а не только по диапазону, где случайно есть данные. Окно в 30 дней рисует все 30 дней, с пустыми разрывами там, где данных не было, — поэтому всплеск активности в самом конце окна не растягивается на весь график. Подписи времени прореживаются автоматически, поэтому длинное окно остаётся читаемым, а не сваливается в сплошную полосу.

Если данных в окне нет вовсе, график показывает «нет данных за период», а не пустую рамку.