func (self *PointRange) UpdateRange(point *protocol.Point) { timestamp := *point.GetTimestampInMicroseconds() if timestamp < self.startTime { self.startTime = timestamp } if timestamp > self.endTime { self.endTime = timestamp } }
func (self *TimestampAggregator) AggregatePoint(series string, group interface{}, p *protocol.Point) error { timestamps := self.timestamps[series] if timestamps == nil { timestamps = make(map[interface{}]int64) self.timestamps[series] = timestamps } if self.duration != nil { timestamps[group] = *p.GetTimestampInMicroseconds() / *self.duration * *self.duration } else { timestamps[group] = *p.GetTimestampInMicroseconds() } return nil }
// set the fields of the other time series to null making sure that // the order of the null values match the order of the field // definitions, i.e. left timeseries first followed by values from the // right timeseries func (self *mergeState) getPoint(fields []string, p *protocol.Point) *protocol.Point { if !self.modifyValues { return p } newValues := make([]*protocol.FieldValue, len(self.fields)) oldValues := p.Values for idx, f := range fields { newIdx := self.fields[f] newValues[newIdx] = oldValues[idx] } p.Values = newValues return p }
func (self *CoordinatorImpl) normalizePointAndAppend(fieldNames map[string]int, result *protocol.Series, fields []string, point *protocol.Point) { oldValues := point.Values point.Values = make([]*protocol.FieldValue, len(fieldNames), len(fieldNames)) for index, field := range fields { indexForField, ok := fieldNames[field] // drop this point on the floor if the unexpected happens if !ok { log.Error("Couldn't lookup field: ", field, fields, fieldNames) return } point.Values[indexForField] = oldValues[index] } result.Points = append(result.Points, point) }
func filterColumns(columns map[string]bool, fields []string, point *protocol.Point) { if columns["*"] { return } newValues := []*protocol.FieldValue{} newFields := []string{} for idx, f := range fields { if _, ok := columns[f]; !ok { continue } newValues = append(newValues, point.Values[idx]) newFields = append(newFields, f) } point.Values = newValues }
func (self *QueryEngine) getTimestampFromPoint(point *protocol.Point) int64 { return self.getTimestampBucket(uint64(*point.GetTimestampInMicroseconds())) }
func getTimestampFromPoint(window time.Duration, point *protocol.Point) int64 { multiplier := int64(window / time.Microsecond) return *point.GetTimestampInMicroseconds() / int64(multiplier) * int64(multiplier) }
func (self *QueryEngine) getTimestampFromPoint(point *protocol.Point) int64 { multiplier := uint64(*self.duration) timestampNanoseconds := uint64(*point.GetTimestampInMicroseconds() * 1000) return int64(timestampNanoseconds / multiplier * multiplier / 1000) }