// newServer creates and returns a server struct. func newServer( ambient log.AmbientContext, nodeID *base.NodeIDContainer, stopper *stop.Stopper, registry *metric.Registry, ) *server { s := &server{ AmbientContext: ambient, NodeID: nodeID, stopper: stopper, tighten: make(chan struct{}, 1), nodeMetrics: makeMetrics(), serverMetrics: makeMetrics(), } s.mu.is = newInfoStore(s.AmbientContext, nodeID, util.UnresolvedAddr{}, stopper) s.mu.incoming = makeNodeSet(minPeers, metric.NewGauge(MetaConnectionsIncomingGauge)) s.mu.nodeMap = make(map[util.UnresolvedAddr]serverInfo) s.mu.ready = make(chan struct{}) registry.AddMetric(s.mu.incoming.gauge) registry.AddMetricStruct(s.nodeMetrics) return s }
func makeNodeMetrics(reg *metric.Registry, sampleInterval time.Duration) nodeMetrics { nm := nodeMetrics{ Latency: metric.NewLatency(metaExecLatency, sampleInterval), Success: metric.NewCounter(metaExecSuccess), Err: metric.NewCounter(metaExecError), } reg.AddMetricStruct(nm) return nm }