In an 8-inch ovenproof nonstick skillet or cast-iron pan, melt butter over medium heat.
Add onion and cook, stirring occasionally, until translucent, about 4 minutes.
Add asparagus, sprinkle with salt and pepper and cook, stirring occasionally, until just tender, about 6 minutes longer.
Preheat broiler to high. In a medium bowl, whisk together eggs; season with additional salt and pepper.
Pour eggs over onion-asparagus mixture, stir to combine, then dot surface with goat cheese. Cook, without stirring, until eggs are set on bottom and beginning to set on top, about 5 minutes.
Transfer skillet to oven and broil, 4 to 5 inches from heating element, until eggs are completely set and beginning to brown, 2 to 3 minutes.
Cut into wedges and serve hot or at room temperature.