Documentation
¶
Overview ¶
Package metrics provides the lightweight Prometheus text-format metrics types and the Store that aggregates them for the registry server.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var DefaultDurationBuckets = []float64{
0.0001, 0.00025, 0.0005, 0.001, 0.0025, 0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1.0,
}
DefaultDurationBuckets are the default histogram buckets for request duration (seconds).
Functions ¶
func FormatFloat ¶
FormatFloat formats a float64 for Prometheus output. Integers are printed without decimal point for cleaner output.
Types ¶
type Counter ¶
type Counter struct {
// contains filtered or unexported fields
}
Counter is a monotonically increasing atomic counter.
type CounterVec ¶
type CounterVec struct {
// contains filtered or unexported fields
}
CounterVec is a set of Counters keyed by a single label value.
func NewCounterVec ¶
func NewCounterVec() *CounterVec
func (*CounterVec) Snapshot ¶
func (cv *CounterVec) Snapshot() []LabelValue
func (*CounterVec) WithLabel ¶
func (cv *CounterVec) WithLabel(val string) *Counter
type Gauge ¶
type Gauge struct {
// contains filtered or unexported fields
}
Gauge is a numeric value that can go up and down.
type Histogram ¶
type Histogram struct {
// contains filtered or unexported fields
}
Histogram tracks the distribution of observed values in predefined buckets.
func NewHistogram ¶
type HistogramVec ¶
type HistogramVec struct {
// contains filtered or unexported fields
}
HistogramVec is a set of Histograms keyed by a single label value.
func NewHistogramVec ¶
func NewHistogramVec(buckets []float64) *HistogramVec
func (*HistogramVec) Snapshot ¶
func (hv *HistogramVec) Snapshot() []LabelHistogram
func (*HistogramVec) WithLabel ¶
func (hv *HistogramVec) WithLabel(val string) *Histogram
type LabelHistogram ¶
type LabelValue ¶
type NetworkMetricSnapshot ¶
type NetworkMetricSnapshot struct {
Name string
Members int
Owners int
Admins int
Enterprise bool
PolicySet bool
}
NetworkMetricSnapshot holds per-network metrics computed on each scrape.
type Store ¶
type Store struct {
// Request metrics (labeled by message type)
RequestsTotal *CounterVec // pilot_requests_total{type="..."}
RequestDuration *HistogramVec // pilot_request_duration_seconds{type="..."}
ErrorsTotal *CounterVec // pilot_errors_total{type="..."}
// Gauge metrics (updated on each scrape)
NodesOnline Gauge // pilot_nodes_online
NodesTotal Gauge // pilot_nodes_total
TrustLinks Gauge // pilot_trust_links
TaskExecutors Gauge // pilot_task_executors
UptimeSeconds Gauge // pilot_uptime_seconds
// Lifecycle counters
Registrations Counter // pilot_registrations_total
Deregistrations Counter // pilot_deregistrations_total
TrustReports Counter // pilot_trust_reports_total
TrustRevocations Counter // pilot_trust_revocations_total
HandshakeRequests Counter // pilot_handshake_requests_total
// Network gauges (updated on each scrape)
NetworksTotal Gauge // pilot_networks_total
NetworksEnterprise Gauge // pilot_networks_enterprise
InvitesPending Gauge // pilot_invites_pending
// Enterprise counters
AuditEventsTotal Counter // pilot_audit_events_total
InvitesSent Counter // pilot_invites_sent_total
InvitesAccepted Counter // pilot_invites_accepted_total
InvitesRejected Counter // pilot_invites_rejected_total
RbacOps *CounterVec // pilot_rbac_operations_total{op="..."}
PolicyChanges Counter // pilot_policy_changes_total
KeyRotations Counter // pilot_key_rotations_total
// Provisioning counters
ProvisionsTotal Counter // pilot_provisions_total
AuditExportsTotal Counter // pilot_audit_exports_total
AuditExportErrors Counter // pilot_audit_export_errors_total
IdpVerifications Counter // pilot_idp_verifications_total
RbacPreAssignments Counter // pilot_rbac_pre_assignments_total
// Reliability counters (Phase 3 wiring)
WalFull Counter // pilot_wal_full_total
WalErrors Counter // pilot_wal_errors_total
SaveFailures Counter // pilot_save_failures_total
NetworkMetrics []NetworkMetricSnapshot
// Enterprise status gauges
IdpConfigured Gauge // pilot_idp_configured (0 or 1)
WebhookConfigured Gauge // pilot_webhook_configured (0 or 1)
AuditExportActive Gauge // pilot_audit_export_active (0 or 1)
DirectorySynced Gauge // pilot_directory_synced_networks
// Runtime / saturation observability
RuntimeGoroutines Gauge // pilot_runtime_goroutines
RuntimeConnectionsTCP Gauge // pilot_registry_tcp_connections
HandshakeInboxSize Gauge // pilot_handshake_inbox_size
HandshakeRespSize Gauge // pilot_handshake_responses_size
// list_nodes cache observability
ListNodesCacheHits Gauge // pilot_list_nodes_cache_hits
ListNodesCacheWaits Gauge // pilot_list_nodes_cache_waits
ListNodesCacheRebuilds Gauge // pilot_list_nodes_cache_rebuilds
// PanicCountFn returns the total recovered-panic count since process start.
// Injected at construction so WriteTo can surface it without importing server.
PanicCountFn func() uint64
// contains filtered or unexported fields
}
Store aggregates all Prometheus metrics for the registry server. It is intentionally zero-external-dependency.
func (*Store) GetNetworkMetrics ¶
func (st *Store) GetNetworkMetrics() []NetworkMetricSnapshot
GetNetworkMetrics returns a copy of the per-network snapshot slice (thread-safe).
func (*Store) SetNetworkMetrics ¶
func (st *Store) SetNetworkMetrics(snaps []NetworkMetricSnapshot)
SetNetworkMetrics replaces the per-network snapshot slice (thread-safe).