Rolling bearing faults are among the primary causes of breakdown in mechanical equipment. Aiming at the vibration signals of rolling bearing which are non-stationary and easy to be disturbed by noise, a novel fault diagnosis method based on curvelet transform and metric learning is proposed. This method consists of 3 parts. The first one is feature engineering which includes reshaping the original timing features of rolling bearings, employing curvelet transform to transform reshaped features and making its coefficients as the new features. Curvelet transform can analyse the original signal from many angles. The second one is employing metric learning to map these new features into special embedding space. The last one is applying KNN classifier to detect the rolling bearing faults. Metric learning can effectively improve the performance of KNN by learning a mapping matrix to modify the distribution of samples. The proposed method overcomes the problems such as the subjectivity and blindness of manual feature extraction, poor coupling in each stage and sensitive to the effect of noise. Extensive simulations based on several data-sets show that the our method has better performance on bearing fault diagnosis than traditional methods.