In traditional grammar, "upstairs" in your example would be analysed as an adverbial complement. But some modern grammars have sensibly reanalysed it as a preposition on the basis that it cannot reasonably be said to be 'modifying' the verb "be"; instead it is seen as denoting the location of the subject. So, "upstairs" can be analysed as a preposition phrase functioning as a locative complement relating to the subject John.
New words, one handy idiom, and a 2-minute quiz — delivered to your inbox to keep your streak alive.