statictimeseries

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 19, 2020 License: MIT Imports: 15 Imported by: 0

Documentation

Overview

statictimeseriesdata provides tools for adding and formatting static time series data for reporting purposes.

statictimeseriesdata provides tools for adding and formatting static time series data for reporting purposes.

statictimeseriesdata provides tools for adding and formatting static time series data for reporting purposes.

statictimeseriesdata provides tools for adding and formatting static time series data for reporting purposes.

statictimeseriesdata provides tools for adding and formatting static time series data for reporting purposes.

statictimeseriesdata provides tools for adding and formatting static time series data for reporting purposes.

statictimeseriesdata provides tools for adding and formatting static time series data for reporting purposes.

statictimeseriesdata provides tools for adding and formatting static time series data for reporting purposes.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AggregatePriorMonths added in v1.0.0

func AggregatePriorMonths(ds DataSeries, start time.Time, months uint) int64

func DS3ToTable

func DS3ToTable(ds3 DataSeriesSetSimple, fmtTime func(time.Time) string) (table.TableData, error)

DS3ToTable returns a `DataSeriesSetSimple` as a `table.TableData`.

func DataSeriesItemTimes

func DataSeriesItemTimes(series *DataSeries) []time.Time

func DataSeriesMapMinMaxTimes

func DataSeriesMapMinMaxTimes(dsm map[string]DataSeries) (time.Time, time.Time, error)

func DataSeriesMapMinMaxValues

func DataSeriesMapMinMaxValues(dsm map[string]DataSeries) (int64, int64, error)

func DataSeriesMinMaxTimes

func DataSeriesMinMaxTimes(series *DataSeries) (time.Time, time.Time)

func DataSeriesSliceNames

func DataSeriesSliceNames(dsSlice []DataSeries) []string

func DataSeriesSliceTable

func DataSeriesSliceTable(dsSlice []DataSeries) table.TableData

func DataSeriesSliceTimes

func DataSeriesSliceTimes(dsSlice []DataSeries) []string

func DataSeriesSliceWriteXLSX

func DataSeriesSliceWriteXLSX(filename string, dsSlice []DataSeries) error

DataSeriesSliceWriteXLSX writes a slice of DataSeries to an Excel XLSX file for easy consumption.

func DataSeriesTimeSeries

func DataSeriesTimeSeries(series *DataSeries, interval timeutil.Interval) []time.Time

func DataSeriesToTable

func DataSeriesToTable(ds DataSeries, interval timeutil.Interval, col2 string) table.TableData

DataSeriesToTable generates a `table.TableData` given a `DataSeries`.

func DataSeriesWriteXLSX

func DataSeriesWriteXLSX(filename string, ds DataSeries, interval timeutil.Interval, col2 string) error

DataSeriesWriteXLSX writes an XSLX file given a `DataSeries`

func MSS2MS

func MSS2MS(in map[string]map[string]int) map[string]int

func ReportAxisX

func ReportAxisX(dss DataSeriesSetSimple, cols int, conv func(time.Time) string) []string

ReportAxisX generates data for use with `C3Chart.C3Axis.C3AxisX.Categories`.

func WriteXLSX

func WriteXLSX(filename string, ds3 DataSeriesSetSimple, fmtTime func(time.Time) string) error

Types

type DataItem

type DataItem struct {
	SeriesName string
	Time       time.Time
	IsFloat    bool
	Value      int64
	ValueFloat float64
}

type DataSeries

type DataSeries struct {
	SeriesName string
	ItemMap    map[string]DataItem
	IsFloat    bool
	Interval   timeutil.Interval // Informational
}

func AggregateSeries

func AggregateSeries(s1 DataSeries) DataSeries

func DataSeriesDivide

func DataSeriesDivide(numer, denom DataSeries) (DataSeries, error)

func NewDataSeries

func NewDataSeries() DataSeries

func (*DataSeries) AddItem

func (series *DataSeries) AddItem(item DataItem)

AddItem adds data item. It will sum values when existing time unit is encountered.

func (*DataSeries) ItemsSorted

func (series *DataSeries) ItemsSorted() []DataItem

func (*DataSeries) Keys

func (series *DataSeries) Keys() []string

func (*DataSeries) Last

func (series *DataSeries) Last() (DataItem, error)

func (*DataSeries) MaxValue

func (series *DataSeries) MaxValue() int64

func (*DataSeries) MinMaxTimes

func (series *DataSeries) MinMaxTimes() (time.Time, time.Time)

func (*DataSeries) MinMaxValues

func (series *DataSeries) MinMaxValues() (int64, int64)

func (*DataSeries) MinMaxValuesFloat64

func (series *DataSeries) MinMaxValuesFloat64() (float64, float64)

func (*DataSeries) MinValue

func (series *DataSeries) MinValue() int64

func (*DataSeries) Pop

func (series *DataSeries) Pop() (DataItem, error)

func (*DataSeries) SetSeriesName

func (series *DataSeries) SetSeriesName(seriesName string)

func (*DataSeries) SortedItems added in v1.0.0

func (series *DataSeries) SortedItems() []DataItem

SortedItems returns sorted DataItems. This currently uses a simple string sort on RFC3339 times. For dates that are not handled properly this way, this can be enhanced to use more proper comparison

type DataSeriesSet

type DataSeriesSet struct {
	SourceSeriesMap          map[string]DataSeries
	OutputSeriesMap          map[string]DataSeries
	OutputAggregateSeriesMap map[string]DataSeries
	SeriesIntervals          SeriesIntervals
	AllSeriesName            string
}

DataSeriesSet is used to prepare histogram data for static timeseries charts, adding zero values for time slots as necessary. Usage is to create to call: NewDataSeriesSet("quarter"), AddItem() and then Inflate()

func EsAggsToDataSeriesSet added in v1.0.0

func EsAggsToDataSeriesSet(aggs []v5.AggregationResRad, interval timeutil.Interval, weekStart time.Weekday) DataSeriesSet

func NewDataSeriesSet

func NewDataSeriesSet(interval timeutil.Interval, weekStart time.Weekday) DataSeriesSet

func (*DataSeriesSet) AddItem

func (set *DataSeriesSet) AddItem(item DataItem)

func (*DataSeriesSet) BuildOutputSeries added in v1.0.0

func (set *DataSeriesSet) BuildOutputSeries(source DataSeries) (DataSeries, error)

func (*DataSeriesSet) FlattenData added in v1.0.0

func (set *DataSeriesSet) FlattenData() map[string][]time.Time

func (*DataSeriesSet) GetDataSeries added in v1.0.0

func (set *DataSeriesSet) GetDataSeries(seriesName string, seriesType SeriesType) (DataSeries, error)

func (*DataSeriesSet) Inflate

func (set *DataSeriesSet) Inflate() error

func (*DataSeriesSet) SeriesNamesSorted added in v1.0.0

func (set *DataSeriesSet) SeriesNamesSorted() []string

type DataSeriesSetSimple added in v1.0.0

type DataSeriesSetSimple struct {
	Name   string
	Series map[string]DataSeries
	Times  []time.Time
	Order  []string
}

func NewDataSeriesSetSimple added in v1.0.0

func NewDataSeriesSetSimple() DataSeriesSetSimple

func (*DataSeriesSetSimple) AddDataSeries added in v1.0.0

func (set *DataSeriesSetSimple) AddDataSeries(ds DataSeries)

func (*DataSeriesSetSimple) AddItem added in v1.0.0

func (set *DataSeriesSetSimple) AddItem(item DataItem)

func (*DataSeriesSetSimple) AddItems added in v1.0.0

func (set *DataSeriesSetSimple) AddItems(items ...DataItem)

func (*DataSeriesSetSimple) GetItem added in v1.0.0

func (set *DataSeriesSetSimple) GetItem(seriesName, rfc3339 string) (DataItem, error)

func (*DataSeriesSetSimple) Inflate added in v1.0.0

func (set *DataSeriesSetSimple) Inflate()

func (*DataSeriesSetSimple) SeriesNames added in v1.0.0

func (set *DataSeriesSetSimple) SeriesNames() []string

func (*DataSeriesSetSimple) TimeStrings added in v1.0.0

func (set *DataSeriesSetSimple) TimeStrings() []string

type DataSeriesSetSimpleSet

type DataSeriesSetSimpleSet struct {
	Name    string
	SetsMap map[string]DataSeriesSetSimple
}

func NewDataSeriesSetSimpleSet

func NewDataSeriesSetSimpleSet(name string) DataSeriesSetSimpleSet

func (*DataSeriesSetSimpleSet) AddItem

func (ds3set *DataSeriesSetSimpleSet) AddItem(setName string, item DataItem)

func (*DataSeriesSetSimpleSet) SetNamesSorted

func (ds3set *DataSeriesSetSimpleSet) SetNamesSorted() []string

type RowFloat64

type RowFloat64 struct {
	Name   string
	Values []float64
}

func ReportFunnelPct

func ReportFunnelPct(rows []RowInt64) []RowFloat64

func ReportGrowthPct

func ReportGrowthPct(rows []RowInt64) []RowFloat64

func (*RowFloat64) Flatten

func (row *RowFloat64) Flatten(conv func(v float64) string) []string

type RowInt64

type RowInt64 struct {
	Name         string
	DisplayName  string
	HavePlusOne  bool
	ValuePlusOne int64
	Values       []int64
}

func Report

func Report(dss DataSeriesSetSimple, cols int, lowFirst bool) []RowInt64

Report generates data for use with `C3Chart.C3ChartData.Columns`.

func (*RowInt64) Flatten

func (row *RowInt64) Flatten(conv func(v int64) string) []string

type SeriesIntervals added in v1.0.0

type SeriesIntervals struct {
	Interval        timeutil.Interval
	WeekStart       time.Weekday
	Max             time.Time
	Min             time.Time
	CanonicalSeries []time.Time
}

func (*SeriesIntervals) Inflate added in v1.0.0

func (ival *SeriesIntervals) Inflate() error

func (*SeriesIntervals) ProcItemsMap added in v1.0.0

func (ival *SeriesIntervals) ProcItemsMap(itemMap map[string]DataItem)

type SeriesType added in v1.0.0

type SeriesType int
const (
	Source SeriesType = iota
	Output
	OutputAggregate
)

type TimeSeriesFunnel

type TimeSeriesFunnel struct {
	Series map[string]TimeSeriesSimple
	Order  []string
}

func (*TimeSeriesFunnel) DataSeriesSetByQuarter

func (tsf *TimeSeriesFunnel) DataSeriesSetByQuarter() (DataSeriesSetSimple, error)

func (*TimeSeriesFunnel) Times

func (tsf *TimeSeriesFunnel) Times() []time.Time

func (*TimeSeriesFunnel) TimesSorted

func (tsf *TimeSeriesFunnel) TimesSorted() []time.Time

type TimeSeriesSimple

type TimeSeriesSimple struct {
	Name        string
	DisplayName string
	Times       []time.Time
}

func NewTimeSeriesSimple

func NewTimeSeriesSimple(name, displayName string) TimeSeriesSimple

func (*TimeSeriesSimple) ToDataSeriesQuarter

func (tss *TimeSeriesSimple) ToDataSeriesQuarter() DataSeries

type TimeStats

type TimeStats struct {
	Items []DataItem
}

DataItemsStats is used to generate unique counts stats for an array of with time ane names.

func (*TimeStats) UniqueCountsByMonth

func (ts *TimeStats) UniqueCountsByMonth() map[string]int

func (*TimeStats) UniqueCountsByQuarter

func (ts *TimeStats) UniqueCountsByQuarter() map[string]int

type XoXGrowth added in v1.0.0

type XoXGrowth struct {
	DateMap map[string]XoxPoint
	YTD     int64
	QTD     int64
}

func NewXoXDataSeries added in v1.0.0

func NewXoXDataSeries(ds DataSeries) (XoXGrowth, error)

func (*XoXGrowth) Last added in v1.0.0

func (xg *XoXGrowth) Last() XoxPoint

type XoxPoint added in v1.0.0

type XoxPoint struct {
	Time           time.Time
	TimeMonthAgo   time.Time
	TimeQuarterAgo time.Time
	TimeYearAgo    time.Time
	Value          int64
	YOldValue      int64
	QOldValue      int64
	MOldValue      int64
	YNowValue      int64
	QNowValue      int64
	MNowValue      int64
	MYAgoValue     int64
	MQAgoValue     int64
	MMAgoValue     int64
	AggregateValue int64
	YoY            float64
	QoQ            float64
	MoM            float64
	YoYAggregate   float64
	QoQAggregate   float64
	MoMAggregate   float64
}

type YoYQoQGrowth added in v1.0.0

type YoYQoQGrowth struct {
	DateMap map[string]XoxPoint
	YTD     int64
	QTD     int64
}

func AddYtdAndQtd added in v1.0.0

func AddYtdAndQtd(yoy YoYQoQGrowth) YoYQoQGrowth

func NewYoYQoQGrowth added in v1.0.0

func NewYoYQoQGrowth(set DataSeriesSet) (YoYQoQGrowth, error)

func (*YoYQoQGrowth) ItemsSorted added in v1.0.0

func (yoy *YoYQoQGrowth) ItemsSorted() []XoxPoint

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL