func newPoster(clientConfig influx.ClientConfig, name string, destination *destination, waitGroup *sync.WaitGroup) *poster { influxClient, err := influx.NewClient(&clientConfig) if err != nil { panic(err) } return &poster{ destination: destination, name: name, influxClient: influxClient, pointsSuccessCounter: metrics.GetOrRegisterCounter("lumbermill.poster.deliver.points."+name, metrics.DefaultRegistry), pointsSuccessTime: metrics.GetOrRegisterTimer("lumbermill.poster.success.time."+name, metrics.DefaultRegistry), pointsFailureCounter: metrics.GetOrRegisterCounter("lumbermill.poster.error.points."+name, metrics.DefaultRegistry), pointsFailureTime: metrics.GetOrRegisterTimer("lumbermill.poster.error.time."+name, metrics.DefaultRegistry), } }
func Influxdb(r metrics.Registry, d time.Duration, config *Config) { client, err := influxClient.NewClient(&influxClient.ClientConfig{ Host: config.Host, Database: config.Database, Username: config.Username, Password: config.Password, }) if err != nil { log.Println(err) return } for _ = range time.Tick(d) { if err := send(r, client); err != nil { log.Println(err) } } }
func getHealthCheckClient(host string, f clientFunc) (*influx.Client, error) { healthCheckClientsLock.Lock() defer healthCheckClientsLock.Unlock() client, exists := healthCheckClients[host] if !exists { var err error clientConfig := createInfluxDBClient(host, f) client, err = influx.NewClient(&clientConfig) if err != nil { log.Printf("err=%q at=getHealthCheckClient host=%q", err, host) return nil, err } healthCheckClients[host] = client } return client, nil }