Skip to content

Служебные эндпоинты

Аутентификации не требуют: их вызывают оркестратор и система мониторинга.

/healthz

GET /healthz

Контроллер app/КонтролСлужебный.os. Показатели считаются обращением к хранилищу, поэтому эндпоинт заодно проверяет, что база жива.

Ответ 200

json
{"status":"ok","flags":12,"environments":3,"subscribers":4}

Ответ 503

json
{"status":"error","error":"Не удалось открыть базу данных"}

Используется как healthcheck контейнера через healthcheck.os.

/metrics

GET /metrics

Метрики в формате Prometheus. Эндпоинт не написан в проекте: он встроен из пакета prometheus-metrics командой prometheus-metrics embed ./app, а сервис только регистрирует свои метрики в реестре prometheus.

МетрикаТипСмысл
oneflag_flagsgaugeФлагов в хранилище
oneflag_environmentsgaugeОкружений
oneflag_stream_subscribersgaugeОткрытых подписок на поток изменений
oneflag_audit_recordsgaugeЗаписей в журнале аудита
oneflag_flag_changes_totalcounterИзменения флагов, лейблы environment и event
oneflag_flag_evaluations_totalcounterОценки флагов, лейблы environment и reason

Показатели состояния считаются в момент сбора, а не хранятся копией: расхождение с хранилищем было бы незаметным и вводило бы в заблуждение. Недоступное хранилище даёт -1 - значение, отличимое от честного нуля.

Счётчик оценок разложен по причинам решения, поэтому по нему видно, чем вызвано значение флага: правилом таргетинга, процентной выкаткой или откатом к умолчанию.

/stream/info

GET /stream/info

Диагностика подписок на поток изменений.

Ответ 200

json
{"topic":"/stream","subscribers":4}