code: func SerializeValue(c types.Cell, now time.Time) *pb.MetricsData {
  	d := pb.MetricsData{}
  	d.Field = field.Serialize(c.Fields, c.FieldVals)
  
  	if c.ValueType.IsCumulative() {
  		d.StartTimestamp = toTimestamp(c.ResetTime)
  	} else {
  		d.StartTimestamp = toTimestamp(now)
  	}
  	d.EndTimestamp = toTimestamp(now)
  
  	switch c.ValueType {
  	case types.NonCumulativeIntType, types.CumulativeIntType:
  		d.Value = &pb.MetricsData_Int64Value{c.Value.(int64)}
  	case types.NonCumulativeFloatType, types.CumulativeFloatType:
  		d.Value = &pb.MetricsData_DoubleValue{c.Value.(float64)}
  	case types.CumulativeDistributionType, types.NonCumulativeDistributionType:
  		d.Value = &pb.MetricsData_DistributionValue{serializeDistribution(c.Value.(*distribution.Distribution))}
  	case types.StringType:
  		d.Value = &pb.MetricsData_StringValue{c.Value.(string)}
  	case types.BoolType:
  		d.Value = &pb.MetricsData_BoolValue{c.Value.(bool)}
  	}
  	return &d
  }
docs: // SerializeValue creates a new MetricsData representing this cell's value.