diff --git a/etc/transfer.yml b/etc/transfer.yml index 7cc1732b..b048ba90 100644 --- a/etc/transfer.yml +++ b/etc/transfer.yml @@ -2,6 +2,7 @@ backend: datasource: "tsdb" m3db: enabled: false + maxSeriesPoints: 720 # default 720 name: "m3db" namespace: "default" seriesLimit: 0 diff --git a/src/modules/transfer/backend/m3db/convert.go b/src/modules/transfer/backend/m3db/convert.go index 80090b2a..8fa7e197 100644 --- a/src/modules/transfer/backend/m3db/convert.go +++ b/src/modules/transfer/backend/m3db/convert.go @@ -121,7 +121,7 @@ func xcludeResp(iter ident.TagIterator) *dataobj.XcludeResp { func resampleResp(data []*dataobj.TsdbQueryResponse, opts dataobj.QueryDataForUI) []*dataobj.TsdbQueryResponse { for _, v := range data { - if len(v.Values) <= MAX_PONINTS { + if len(v.Values) <= maxSeriesPoints { continue } v.Values = resample(v.Values, opts.Start, opts.End, int64(opts.Step), opts.ConsolFunc) diff --git a/src/modules/transfer/backend/m3db/m3db.go b/src/modules/transfer/backend/m3db/m3db.go index e4467c74..fc5b0775 100644 --- a/src/modules/transfer/backend/m3db/m3db.go +++ b/src/modules/transfer/backend/m3db/m3db.go @@ -28,16 +28,21 @@ const ( MAX_PONINTS = 720 ) +var ( + maxSeriesPoints = 720 +) + type M3dbSection struct { - Name string `yaml:"name"` - Enabled bool `yaml:"enabled"` - Namespace string `yaml:"namespace"` - DaysLimit int `yaml:"daysLimit"` - SeriesLimit int `yaml:"seriesLimit"` - DocsLimit int `yaml:"docsLimit"` - MinStep int `yaml:"minStep"` - Config client.Configuration `yaml:",inline"` - timeLimit int64 `yaml:"-"` + Name string `yaml:"name"` + Enabled bool `yaml:"enabled"` + Namespace string `yaml:"namespace"` + DaysLimit int `yaml:"daysLimit"` + SeriesLimit int `yaml:"seriesLimit"` + DocsLimit int `yaml:"docsLimit"` + MinStep int `yaml:"minStep"` + MaxSeriesPoints int `yaml:"maxSeriesPoints"` + Config client.Configuration `yaml:",inline"` + timeLimit int64 `yaml:"-"` } type Client struct { @@ -67,6 +72,10 @@ func NewClient(cfg M3dbSection) (*Client, error) { cfg.MinStep = 1 } + if cfg.MaxSeriesPoints > 0 { + maxSeriesPoints = cfg.MaxSeriesPoints + } + cfg.timeLimit = int64(86400 * cfg.DaysLimit) ret := &Client{ @@ -516,13 +525,13 @@ func (cfg M3dbSection) validateQueryDataForUI(in *dataobj.QueryDataForUI) (err e } if in.Step > 0 { - if n := (in.End - in.Start) / int64(in.Step); n > MAX_PONINTS { + if n := int(in.End-in.Start) / in.Step; n > maxSeriesPoints { in.Step = 0 } } if in.Step <= 0 { - in.Step = int((in.End - in.Start) / MAX_PONINTS) + in.Step = int(in.End-in.Start) / maxSeriesPoints } if in.Step < cfg.MinStep {