func (sink *influxdbSink) createDatabase() error { if sink.client == nil { client, err := influxdb_common.NewClient(sink.c) if err != nil { return err } sink.client = client } if sink.dbExists { return nil } q := influxdb.Query{ Command: fmt.Sprintf("CREATE DATABASE %s", sink.c.DbName), } if resp, err := sink.client.Query(q); err != nil { // We want to return error only if it is not "already exists" error. if !(resp != nil && resp.Err != nil && strings.Contains(resp.Err.Error(), "already exists")) { return fmt.Errorf("Database creation failed: %v", err) } } sink.dbExists = true glog.Infof("Created database %q on influxDB server at %q", sink.c.DbName, sink.c.Host) return nil }
func (sink *influxdbSink) createDatabase() error { if sink.client == nil { client, err := influxdb_common.NewClient(sink.c) if err != nil { return err } sink.client = client } if sink.dbExists { return nil } q := influxdb.Query{ Command: fmt.Sprintf(`CREATE DATABASE %s WITH NAME "default"`, sink.c.DbName), } if resp, err := sink.client.Query(q); err != nil { // We want to return error only if it is not "already exists" error. if !(resp != nil && resp.Err != nil && strings.Contains(resp.Err.Error(), "existing policy")) { err := sink.createRetentionPolicy() if err != nil { return err } } } sink.dbExists = true glog.Infof("Created database %q on influxDB server at %q", sink.c.DbName, sink.c.Host) return nil }
// Returns a thread-compatible implementation of influxdb interactions. func new(c influxdb_common.InfluxdbConfig) core.DataSink { client, err := influxdb_common.NewClient(c) if err != nil { glog.Errorf("issues while creating an InfluxDB sink: %v, will retry on use", err) } return &influxdbSink{ client: client, // can be nil c: c, } }
func (sink *influxdbSink) ensureClient() error { if sink.client == nil { client, err := influxdb_common.NewClient(sink.c) if err != nil { return err } sink.client = client } return nil }