Files
healthlog/docs/tasks/items/read-api-points-bucket.md
T
av 3d24248075 docs: документация приведена к канону av-dev-pm 4
- каждая запись каталога задач получила тип вместо тега kind: и префикса
  заголовка; секция роадмапа «Разработка» стала «Сопровождением», порядок
  секций канонический
- поправлены протухшие факты: нереализованные маршруты Read API, MCP и
  `healthlog import`, словарь слоёв в инварианте, семантика гейта по покрытию
  диффа, периметр перестал дублировать security.md
- замер слияния переведён с находки 49 на находку 54, заполнены Purpose спек
  storage и parsing
2026-08-05 19:09:35 +03:00

3.0 KiB

Сворачивать точки по заданной сетке

  • Тип: feature
  • Категория: Ядро
  • Зачем: «Шаги за неделю по дням» — базовый запрос трекера и игры, и сегодня его нечем задать
  • Теги: goal:read-api, sprint:2026-08-04

«Шаги за неделю по дням» отвечаются одним запросом ?from&to&bucket, и род свёртки берётся измеренным, а не угаданным.

Род агрегации измерен каталогом (change 2026-08-02-katalog-i-rod-agregacii): сверка минутного слоя с часовым разложила метрики живого корпуса на накопительные и мгновенные, не сойдясь ни на одной. Свёртка в ответе опирается на это измерение и только на него: род неизвестен — свёртки нет.

Инвариант, который здесь легче всего нарушить: нижний слой HAE не суммируется ни при какой сетке. Это интерполяция, а не сэмплы, и суммирование завышает втрое.

Порог неполного ведра и предел размера ответа — соседние задачи; здесь они берутся в том виде, в каком есть на момент вливания, и не проектируются.

Двигает строку «Завершения» цели: «Точки сворачиваются по заданной сетке измеренным родом агрегации».

Затрагивает

Маршрут GET /api/v1/metrics/{name} — параметр запроса bucket, поля bucket и aggregation в конверте ответа, код отказа на метрике с неизвестным родом. Схемы и формата на диске не трогает.

Критерии приёмки

  • «шаги за неделю по дням» отвечаются одним запросом, и в ответе названы фактические bucket и aggregation — оракул: запрос к поднятому сервису на живом архиве
  • нижний слой HAE не суммируется ни при какой сетке — оракул: тест на накопительной метрике, у которой есть и нижний, и часовой слой
  • метрика с неизвестным родом не сворачивается вовсе и отвечает отказом с названной причиной, а не значением — оракул: тест

Рамки

Схема не трогается, данные только читаются. Берётся после точек за период.