func (d *DenormalizationRule) Translate(dp *opentsdb.DataPoint) error { tagString := "__" for i, tagName := range d.TagNames { val, ok := dp.Tags[tagName] if !ok { return fmt.Errorf("tag %s not present in data point for %s.", tagName, dp.Metric) } if i > 0 { tagString += "." } tagString += val } dp.Metric = tagString + "." + dp.Metric return nil }