Hi Kina,
I would say that all three terms are similar, but the sources, and your knowledge of the new derivative, of the three make the largest difference. Perhaps your start with a drug or compound you want to analyze that degrades in UV light-- there are many compounds and drugs like this. Obviously, they can both be measured within a sample in which your pure drug or analyte can be quantified and with a depredation product they generally know the mechanism, or it is repeatable and is somewhat understood as a phenomena of the particular analyte. A metabolite on the other hand is what I generally think of with drugs or compounds administered into the body of an animal human that is biologically changed from the pure drug substance into an active form or derivative by in-vivo biological means (ie enzymes, pH, etc.). I would simply call an impurity any unexpected material within your analyte's matrix or mixture. So this would exclude metabolites as they are directly related to your starting analyte, while an impurity could be remaining starting material (in the case of an organic chemist), introduced impurities like dust, carry-over, or simply an unclean sample. It's also important to understand that while you generally may not know what an impurity is, the degradation product and metabolite are directly related to your analyte and (if the analyte is well studied) probably have some literature revolving their creation or identification, while finding the source of an impurity that can come from a massive range of places, could be extremely difficult. This isn't to say that a metabolite or degradation product cannot start off as impurities, but they should be easily discernable and come from your analyte.
I hope this helps a little,
Tyler.