// Add adds a new log record to the series. It assumes that records are added // in increasing chronological order func (x *SeriesSweeper) Add(r *dccp.LogRecord) { if !r.IsHighlighted() { return } // Check that the argument is a sample m_, ok := r.Args[dccp.SampleType] if !ok { return } // Read sample data m := m_.(map[string]interface{}) value := m["Value"].(float64) series := r.LabelString() + m["Series"].(string) for _, u := range x.series { if u == series { goto __SeriesSaved } } x.series = append(x.series, series) __SeriesSaved: // Remember the sample u := &sample{ Series: series, Time: float64(r.Time) / 1e6, // Time, X-coordinate, always in milliseconds Value: value, } x.chrono.PushBack(u) }