Перейти к содержимому

Observability — read-модель движка о самом себе

Observability (modules/observability) — один из 32 модулей; подобно live-ingest, он выполняет архитектурную роль, а не занимает слот возможности. Это read-модель движка о самом себе: три read-only поверхности под /v1/m/observability/, отвечающие на вопросы, которые раздел System в админ-консоли отображает, без владения хотя бы одной сущностью хранилища.

Маршрут На что отвечает
GET /ingestion-health что втекает в движок и вытекает из него по каждому стандарту взаимодействия — стандарты, которые движок закрепляет (OTel GenAI semconv, OCSF, ASIM, унифицированные форматы SIEM, push в реестр, Prometheus text, W3C Trace Context), каждый с подтверждённой версией
GET /traces, GET /traces/{id} что W3C-коррелированный audit ledger сообщает о трассировке — аудиторский взгляд на распределённую трассировку, соединённый по Trace Context
GET /attestation что доказуемо верно относительно цепочки поставок работающего бинарника — поверхность аттестации, которую питает цепочка проверки релиза

Все три — это чтения с правами, ограниченными модулем; ничто здесь ничего не изменяет.

Админ-консоли нужен авторитетный ответ на вопрос «что этот движок на самом деле поддерживает и на какой закреплённой версии?» — и честный способ его отдавать исходит из самого движка, а не из документации, которая может расходиться с реальностью. Таблица ingestion-health генерируется из тех же закреплений, под которые компилируются коннекторы и экспортёры, поэтому при сдвиге закрепления поверхность сдвигается вместе с ним.

Ограниченный контекст, сформулированный прямо

Заголовок раздела «Ограниченный контекст, сформулированный прямо»
  • Она не владеет сущностями хранилища и ничего не хранит — это чистая read-модель поверх субстратов, которые уже существуют (закрепления, audit ledger, свидетельства аттестации).
  • Это не модуль XXII (health/SLA), который ограничен надёжностью агентов и MCP-серверов estate. Этот модуль — про сам движок.
  • Это не эндпоинт метрик: операционные временные ряды живут на /metrics; этот модуль отдаёт структурированные ответы, а не ряды.

На свежей одноразовой установке Enterprise SQLite Compose запустите scripts/qualify-observability.py с Python 3.11 или новее. Передайте установленный бинарный файл, HTTPS-адрес, имя контейнера, полный коммит исходного кода и новый каталог свидетельств:

Окно терминала
python3 scripts/qualify-observability.py /path/to/olivares \
https://127.0.0.1:8443 olivares <source-sha> /path/to/new-evidence

Проба использует управление организациями Enterprise, чтобы создать второго тенанта для проверок изоляции. Поверхности ingestion-health, read-model трассировок и аттестации остаются доступными в Community.

Проба создаёт через API тестовые учётные записи и агентов, включает существующие модули observability и security и физически перезапускает контейнер. Она сравнивает SHA-256 запущенного исполняемого файла с переданным бинарным файлом, проверяет ingestion по находке первой стороны (first-party), проверяет отказы по тенантам и проверяет сохранение детализации и экспорта трассировок ledger при перезапуске и при выключении и повторном включении модуля. Она также проверяет, что счётчики ingestion сбрасываются и что аттестация отделяет измеренную идентичность бинарного файла от заявленного конвейера и неопубликованного состояния релиза. Проверки CLI используют вывод JSON. Учётные данные остаются в памяти или в окружении дочерних процессов; сохранённые журналы движка скрывают токены установки.

Используйте шаги установки из README с явно выбранным образом-кандидатом. Никогда не запускайте пробу на существующей установке. Оптимизация Python отклоняется, потому что она отключает assert. Удалите одноразовый стек Compose и его тома после запуска. Эту очистку проба оставляет вызывающему; свой результат и журнал движка она записывает в каталог свидетельств. Она не выполняет действия консоли и не затрагивает PostgreSQL, коллекторы поставщиков и проверку подписи релиза.