示例#1
0
文件: sink.go 项目: grepory/awsthingy
func (s *Sink) EmitEvent(job string, event string, kvs map[string]string) {
	var counter *prometheus.CounterVec
	if c, ok := s.Config.CounterVecs[job]; ok {
		counter = c
	} else {
		labels := labelsFromMap(kvs)

		counter = prometheus.NewCounterVec(prometheus.CounterOpts{
			Namespace: s.Config.Job,
			Subsystem: "indexer",
			Name:      job,
			Help:      "Automaticaly created event",
		}, labels)

		s.Config.CounterVecs[job] = counter
		prometheus.Register(counter)
	}

	kvs["event"] = event

	if m, err := counter.GetMetricWith(kvs); err == nil {
		m.Inc()
	}
}