Служебные эндпоинты
Аутентификации не требуют: их вызывают оркестратор и система мониторинга.
/healthz
GET /healthzКонтроллер app/КонтролСлужебный.os. Показатели считаются обращением к хранилищу, поэтому эндпоинт заодно проверяет, что база жива.
Ответ 200
{"status":"ok","flags":12,"environments":3,"subscribers":4}Ответ 503
{"status":"error","error":"Не удалось открыть базу данных"}Используется как healthcheck контейнера через healthcheck.os.
/metrics
GET /metricsМетрики в формате Prometheus. Эндпоинт не написан в проекте: он встроен из пакета prometheus-metrics командой prometheus-metrics embed ./app, а сервис только регистрирует свои метрики в реестре prometheus.
| Метрика | Тип | Смысл |
|---|---|---|
oneflag_flags | gauge | Флагов в хранилище |
oneflag_environments | gauge | Окружений |
oneflag_stream_subscribers | gauge | Открытых подписок на поток изменений |
oneflag_audit_records | gauge | Записей в журнале аудита |
oneflag_flag_changes_total | counter | Изменения флагов, лейблы environment и event |
oneflag_flag_evaluations_total | counter | Оценки флагов, лейблы environment и reason |
Показатели состояния считаются в момент сбора, а не хранятся копией: расхождение с хранилищем было бы незаметным и вводило бы в заблуждение. Недоступное хранилище даёт -1 - значение, отличимое от честного нуля.
Счётчик оценок разложен по причинам решения, поэтому по нему видно, чем вызвано значение флага: правилом таргетинга, процентной выкаткой или откатом к умолчанию.
/stream/info
GET /stream/infoДиагностика подписок на поток изменений.
Ответ 200
{"topic":"/stream","subscribers":4}