Auto-create UDP service database
All other services operate like this, so make UDP service consistent.pull/4379/head
parent
b88dd21581
commit
f298e88b39
|
@ -292,6 +292,7 @@ func (s *Server) appendUDPService(c udp.Config) {
|
|||
}
|
||||
srv := udp.NewService(c)
|
||||
srv.PointsWriter = s.PointsWriter
|
||||
srv.MetaStore = s.MetaStore
|
||||
s.Services = append(s.Services, srv)
|
||||
}
|
||||
|
||||
|
|
|
@ -235,7 +235,7 @@ reporting-disabled = false
|
|||
[[udp]]
|
||||
enabled = false
|
||||
# bind-address = ""
|
||||
# database = ""
|
||||
# database = "udp"
|
||||
# retention-policy = ""
|
||||
|
||||
# These next lines control how batching works. You should have this enabled
|
||||
|
|
|
@ -7,6 +7,9 @@ import (
|
|||
)
|
||||
|
||||
const (
|
||||
// DefaultDatabase is the default database for UDP traffic.
|
||||
DefaultDatabase = "udp"
|
||||
|
||||
// DefaultBatchSize is the default UDP batch size.
|
||||
DefaultBatchSize = 1000
|
||||
|
||||
|
@ -32,6 +35,9 @@ type Config struct {
|
|||
// default values set.
|
||||
func (c *Config) WithDefaults() *Config {
|
||||
d := *c
|
||||
if d.Database == "" {
|
||||
d.Database = DefaultDatabase
|
||||
}
|
||||
if d.BatchSize == 0 {
|
||||
d.BatchSize = DefaultBatchSize
|
||||
}
|
||||
|
|
|
@ -12,6 +12,7 @@ import (
|
|||
|
||||
"github.com/influxdb/influxdb"
|
||||
"github.com/influxdb/influxdb/cluster"
|
||||
"github.com/influxdb/influxdb/meta"
|
||||
"github.com/influxdb/influxdb/models"
|
||||
"github.com/influxdb/influxdb/tsdb"
|
||||
)
|
||||
|
@ -49,6 +50,10 @@ type Service struct {
|
|||
WritePoints(p *cluster.WritePointsRequest) error
|
||||
}
|
||||
|
||||
MetaStore interface {
|
||||
CreateDatabaseIfNotExists(name string) (*meta.DatabaseInfo, error)
|
||||
}
|
||||
|
||||
Logger *log.Logger
|
||||
statMap *expvar.Map
|
||||
}
|
||||
|
@ -77,6 +82,10 @@ func (s *Service) Open() (err error) {
|
|||
return errors.New("database has to be specified in config")
|
||||
}
|
||||
|
||||
if _, err := s.MetaStore.CreateDatabaseIfNotExists(s.config.Database); err != nil {
|
||||
return errors.New("Failed to ensure target database exists")
|
||||
}
|
||||
|
||||
s.addr, err = net.ResolveUDPAddr("udp", s.config.BindAddress)
|
||||
if err != nil {
|
||||
s.Logger.Printf("Failed to resolve UDP address %s: %s", s.config.BindAddress, err)
|
||||
|
|
Loading…
Reference in New Issue