func Init()

in syncer/metrics/metrics.go [42:101]


func Init() error {
	if !config.GetBool("metrics.enable", false) {
		return nil
	}

	Instance = net.JoinHostPort(config.GetString("server.host", "", config.WithStandby("httpaddr")),
		config.GetString("server.port", "", config.WithStandby("httpport")))

	metricsvc.CollectFamily(FamilyName)
	//TODO should call metrics.Init()

	if err := metrics.CreateGauge(metrics.GaugeOpts{
		Key:    KeyPendingEvent,
		Help:   "The number of events pending to send",
		Labels: []string{"instance"},
	}); err != nil {
		return err
	}

	if err := metrics.CreateCounter(metrics.CounterOpts{
		Key:    KeyAbandonEvent,
		Help:   "The number of abandon events",
		Labels: []string{"instance"},
	}); err != nil {
		return err
	}

	if err := metrics.CreateGauge(metrics.GaugeOpts{
		Key:    KeyPendingTask,
		Help:   "The number of tasks pending to dispatch",
		Labels: []string{"instance"},
	}); err != nil {
		return err
	}

	if err := metrics.CreateGauge(metrics.GaugeOpts{
		Key:    KeyConnectedPeers,
		Help:   "The number of connected peers",
		Labels: []string{"instance"},
	}); err != nil {
		return err
	}

	if err := metrics.CreateGauge(metrics.GaugeOpts{
		Key:    KeyPeersTotal,
		Help:   "The number of peers",
		Labels: []string{"instance"},
	}); err != nil {
		return err
	}

	if err := metrics.CreateGauge(metrics.GaugeOpts{
		Key:    KeyPeersClockDiff,
		Help:   "The diff milliseconds of peers",
		Labels: []string{"instance", "peer"},
	}); err != nil {
		return err
	}
	return nil
}