func Init(metrics met.Backend, t string, addr string, enabled bool) { if !enabled { return } topic = t cfg := nsq.NewConfig() cfg.UserAgent = fmt.Sprintf("raintank-apps-server") var err error globalProducer, err = nsq.NewProducer(addr, cfg) if err != nil { log.Fatal(4, "failed to initialize nsq producer for events. %s", err) } err = globalProducer.Ping() if err != nil { log.Fatal(4, "can't connect to nsqd: %s", err) } eventsPublished = metrics.NewCount("eventpublisher.events-published") messagesSize = metrics.NewMeter("eventpublisher.message_size", 0) publishDuration = metrics.NewTimer("eventpublisher.publish_duration", 0) }