@CarlG, this is something very common, not only with metals, but also in other materials like plastic, glass, etc. Normally you’ll see it better when the light that’s shinning is very strong. The great problem for making this material is that it lies between a very localized anisotropy and a simple gloss with roughness. Statistically (because cycles loves statistics!) It looks as a gloss from the distance, and if you look very close you can define that each scratch can be represented with an anisotropic model. But in the middle you get the image ShacharHarshuv posted, and there’s no mathematical model to represent that. (that i know, at least).
About the shader i’ve posted,
The small nodegroup, is just a 2d vector creator, using a sine and a cosine of an angle to make the coordinates.
The cross product, between two vectors returns a vector perpendicular to both of the vectors. If one of the vectors is the surface normal, than the result is a tangent vector, but rotated around the normal, to be perpendicular to the other given vector.
This resulted tangent is what i use as the main ‘tangent’ for the anisotropic node, and as the coordinate system for the noise node which gives me those streched lines.
What i tried to simplify a bit, was to group every scratch with the same direction in just one anisotropic node, instead of calculating each scratch on its own. (that is what the noise texture is doing)
But this is still a lot for cycles, as we need different directions, and therefore, lots of anisotropic shaders. 
One idea that I came to mind, to simplify things even further, was to make each anisotropic shader to represent more than just one direction, so that we need a smaller number of them… But i haven’t spent any time testing this… It might work, but for now it’s just theory.