NORA публикует Prometheus-совместимые метрики на эндпоинте /metrics. Аутентификация не требуется.
curl http://localhost:4000/metrics
Метрика Тип Метки Описание nora_http_requests_totalCounter registry, method, statusВсего обработано HTTP-запросов nora_http_request_duration_secondsHistogram registry, methodЗадержка запроса (корзины: от 1 мс до 10 с)
Метка registry определяется по пути запроса:
Префикс пути Метка /v2*docker/npm*npm/simple*, /packages*pypi/maven2*maven/cargo*cargo/go/*go/raw/*raw/gems/*gems/terraform/*terraform/ansible/*ansible/nuget/*nuget/pub/*pub/conan/*conan/ui*ui(прочие пути) other
Метрика Тип Метки Описание nora_cache_requests_totalCounter registry, resultОбращения к кэшу (hit или miss)
Метрика Тип Метки Описание nora_storage_operations_totalCounter operation, statusОперации хранилища (get, put, delete, list) со статусом ok или error nora_artifacts_totalGauge registryКоличество артефактов, хранящихся в данный момент по каждому реестру (растёт и уменьшается вместе с GC) nora_storage_bytesGauge registryОбъём хранимых артефактов в байтах по каждому реестру (метка total = полный объём, включая метаданные) nora_storage_get_bytesHistogram registryРазмер тела буферизованных чтений Storage::get() (корзины: от 1 КБ до 512 МБ) nora_storage_verify_duration_secondsHistogram registryВремя проверки целостности SHA-256 по «настенным» часам на каждое буферизованное чтение, включая время ожидания в очереди блокирующего пула
Доступны при NORA_CB_ENABLED=true.
Метрика Тип Метки Описание nora_circuit_breaker_stateGauge registryТекущее состояние: 0 = closed, 1 = open, 2 = half-open nora_circuit_breaker_rejections_totalCounter registryЗапросы, отклонённые открытым предохранителем
Метрика Тип Описание nora_gc_blobs_removed_totalCounter Осиротевшие blob-объекты, удалённые сборкой мусора nora_gc_bytes_freed_totalCounter Байты, освобождённые сборкой мусора nora_gc_duration_secondsHistogram Длительность запусков GC (корзины: от 0.1 с до 300 с) nora_gc_last_run_timestampGauge Unix-метка времени последнего запуска GC nora_gc_metadata_phantoms_totalCounter Фантомные записи версий, очищенные из метаданных nora_gc_stat_failures_totalCounter Осиротевшие объекты, для которых GC не смог выполнить stat (сохранены, возраст неизвестен) — ненулевое значение означает, что GC, возможно, не может освободить место; настройте на это алерт
Метрика Тип Описание nora_retention_versions_deleted_totalCounter Версии, удалённые политиками хранения nora_retention_bytes_freed_totalCounter Байты, освобождённые политиками хранения nora_retention_duration_secondsHistogram Длительность запусков политик хранения (корзины: от 0.1 с до 300 с) nora_retention_last_run_timestampGauge Unix-метка времени последнего запуска политик хранения
Метрика Тип Метки Описание nora_downloads_totalCounter registryВсего скачиваний артефактов nora_uploads_totalCounter registryВсего загрузок артефактов
Публикуются на пути прокси, когда NORA обращается к настроенному вышестоящему источнику.
Метрика Тип Метки Описание nora_upstream_request_duration_secondsHistogram registry, statusЗадержка запроса к вышестоящему прокси (корзины: от 1 мс до 30 с) nora_proxy_active_downloadsGauge (нет) Загрузки blob-объектов Docker, передаваемые потоком в данный момент nora_proxy_download_bytes_totalCounter (нет) Всего байт, скачанных из вышестоящих реестров Docker (только проверенные скачивания)
Ревалидация по условным запросам (304) и коалесцирование запросов по схеме single-flight на пути прокси.
Метрика Тип Метки Описание nora_proxy_upstream_304_totalCounter registryОтветы 304 Not Modified от вышестоящего источника при ревалидации nora_proxy_revalidation_bytes_saved_totalCounter registryБайты тела, которые не пришлось скачивать заново благодаря ревалидации 304 nora_proxy_revalidation_errors_totalCounter registryПопытки ревалидации, завершившиеся откатом к полной загрузке nora_proxy_coalesced_totalCounter registryЗапросы-последователи, обслуженные от лидера single-flight без обращения к вышестоящему источнику nora_proxy_inflightGauge registryРазличные ключи, скачиваемые в данный момент в рамках коалесцирования single-flight nora_proxy_coalesce_fallthrough_totalCounter registry, reasonПоследователи, которые вместо коалесцирования выполнили собственную загрузку (reason ∈ leader, budget)
Метрика Тип Метки Описание nora_curation_decisions_totalCounter decisionРешения курирования по фактическому результату (allow, block, audit, skip) nora_quarantine_holds_totalCounter registry, outcomeАртефакты, задержанные карантином по дайджесту (outcome ∈ blocked, observed)
Метрика Тип Метки Описание nora_auth_namespace_scope_totalCounter provider, decisionРешения об энфорсменте OIDC namespace_scope (allow, deny, would_deny) nora_response_upstream_url_leak_totalCounter registryИмя хоста вышестоящего источника обнаружено в теле исходящего ответа nora_leak_detection_skipped_totalCounter reasonПропущенные проверки на утечки (тело слишком велико или размер неизвестен)
Метрика Тип Метки Описание nora_cache_write_errors_totalCounter registry, operationОшибки записи в кэш в фоновых задачах кэширования nora_metadata_corrupt_totalCounter registryПовреждённые метаданные, обнаруженные при публикации (ошибка разбора существующих данных)
Метрика Тип Метки Описание nora_uptime_secondsGauge (нет) Время работы процесса в секундах
# Request rate by registry (5m window)
sum by (registry) (rate(nora_http_requests_total[5m]))
sum(rate(nora_cache_requests_total{result="hit"}[5m]))
sum(rate(nora_cache_requests_total[5m]))
# p99 latency per registry
histogram_quantile(0.99, sum by (le, registry) (rate(nora_http_request_duration_seconds_bucket[5m])))
# Circuit breaker alerts (open state)
nora_circuit_breaker_state == 1
# GC bytes freed per hour
increase(nora_gc_bytes_freed_total[1h])