Authentication attempts by result (closed enum: success, failure, denied) and protocol (closed enum: bolt, http, grpc). No user/user_id/email/ip labels — Phase 3 D-03a forbidden-label panic is the registration-time gate. Per-protocol observation site lives in the protocol adapter
nornicdb_attempts_total
counter
-
Authentication attempts by result (closed enum: success, failure, denied) and protocol (closed enum: bolt, http, grpc). No user/user_id/email/ip labels — Phase 3 D-03a forbidden-label panic is the registration-time gate. Per-protocol observation site lives in the protocol adapter
Embedding cache hits (in-process LRU keyed by FNV-1a hash of input text). Bridges into the cross-cutting Cache bag at the call site.
nornicdb_embed_cache_misses_total
counter
-
Embedding cache misses (compute-and-store path). Bridges into the cross-cutting Cache bag.
nornicdb_embed_ffi_panics_total
counter
-
Recovered CGo / purego panics from local llama.cpp FFI call sites. mode = build-tag-derived backend at panic time (closed enum: gpu, cpu, cuda, metal, vulkan). Per D-09: server stays up — counter increments and panic converts to error.
nornicdb_embed_processed_total
counter
-
Embedding processing outcomes by provider (closed enum: ollama, openai, local, other), model (open-ish; ceiling 250), result (closed enum: success, failure, cached), and mode (closed enum: gpu, cpu, cuda, metal, vulkan). Cardinality bounded by RESEARCH §Q11.
nornicdb_embed_worker_running
gauge
-
Embedding worker lifecycle indicator (1 = running, 0 = stopped). Set at StartWorkers/Stop hook sites per D-15b binary-state distinction; NOT a GaugeFunc.
nornicdb_queue_depth
gauge
-
Embedding queue depth (nodes pending embedding) at scrape time. GaugeFunc — reads EmbedProbe.QueueLen() on every scrape; returns 0 on probe panic (RISK-8 mitigation).
nornicdb_queue_depth
gauge
-
Embedding queue depth (nodes pending embedding) at scrape time. GaugeFunc — reads EmbedProbe.QueueLen() on every scrape; returns 0 on probe panic (RISK-8 mitigation).
Last applied log index. Set at apply-advance log sites (D-15a). Per-cluster — no labels.
nornicdb_replication_commit_index
gauge
-
Last committed log index. Set at commit-advance log sites (D-15a). Per-cluster — no labels.
nornicdb_replication_lag_bytes
gauge
-
Per-peer replication lag in bytes. peer label sources from PeerConfig.ID (RISK-3 fix); fallback to PeerConfig.Addr. Mode-aware cardinality ceiling: ha_standby=8, raft=16, multi_region=64 (D-05a). Stale peers GC'd by peer_metrics_gc lifecycle.Component (D-05b).
nornicdb_replication_lag_entries
gauge
-
Per-peer replication lag in log entries. Same peer-label discipline as lag_bytes. Mode-aware ceiling per D-05a.
nornicdb_replication_last_contact_seconds
gauge
-
GAP-1 keystone — wall-clock seconds since the last successful AppendEntries with each peer. Operators alert on time() - nornicdb_replication_last_contact_seconds{...} > N per Phase 9 Helm/Grafana plan. Per-peer; mode-aware ceiling per D-05a.
nornicdb_replication_leader_changes_total
counter
-
Total leader-boundary transitions (non-leader→leader OR leader→non-leader). Keystone alert metric for cluster instability. Increments at lifecycle log sites (D-15a).
nornicdb_replication_term
gauge
-
Current Raft term. Set at term-change log sites (D-15a). Per-cluster — no labels.
nornicdb_role
gauge
-
Current replication role as numeric enum (-1=unknown, 0=follower, 1=candidate, 2=leader, 3=standby). Set at the same lifecycle log sites that emit 'became leader' etc. (D-15a). Per-cluster — no labels.
nornicdb_role
gauge
-
Current replication role as numeric enum (-1=unknown, 0=follower, 1=candidate, 2=leader, 3=standby). Set at the same lifecycle log sites that emit 'became leader' etc. (D-15a). Per-cluster — no labels.
Search requests by [database], mode (closed enum: vector, bm25, hybrid), and result (closed enum: success, no_results, error). database label gated by tenant flag (D-08).
nornicdb_search_index_size_bytes
gauge
-
Search index size in bytes by kind (closed enum: hnsw, bm25). Populated by Set() at index-build/load events; GaugeFunc fallback reads SearchProbe.IndexSizeBytes(kind) on every scrape (D-15b; defer-recover returns 0 on panic per RISK-8 mitigation).
nornicdb_search_index_size_bytes
gauge
-
Search index size in bytes by kind (closed enum: hnsw, bm25). Populated by Set() at index-build/load events; GaugeFunc fallback reads SearchProbe.IndexSizeBytes(kind) on every scrape (D-15b; defer-recover returns 0 on panic per RISK-8 mitigation).
Total node count in storage. GaugeFunc — reads StorageProbe.NodeCount() on every scrape; returns 0 on probe panic (RISK-8 mitigation).
nornicdb_storage_bytes
gauge
-
Storage size in bytes by kind (closed enum: nodes, edges, index, wal, search). Populated every 30s by the bytes_metrics_sweeper lifecycle.Component (D-07).
nornicdb_storage_compactions_total
counter
-
BadgerDB compactions by level and result. Bounded by BadgerDB's compaction-level surface — no user input flows to label values.
nornicdb_storage_edges_total
gauge
-
Total edge count in storage. GaugeFunc — reads StorageProbe.EdgeCount() on every scrape; returns 0 on probe panic (RISK-8 mitigation).
nornicdb_storage_index_rebuild_total
counter
-
Index-rebuild events by [database], index (closed enum: label, edge_between, temporal, embedding, user_created), and result (success, failure, aborted). D-13c: arbitrary user index names bucket to user_created — closed-enum discipline prevents cardinality bombs.
nornicdb_storage_wal_lag_bytes
gauge
-
Heuristic estimate of WAL backlog (vlog size minus LSM size from badger.DB.Size()). Best-effort; alerting should use 5-minute trends, not single scrapes (RISK-6).