Heat a large pot over medium-low heat and add 1 tablespoon of butter. Add the onions with a pinch of salt and stir. Cook, stirring often, until the onions begin to caramelize, about 30 to 40 minutes. Keep an eye on them so they don't burn! Stir in the sage.
Transfer the onions to a bowl. Add the remaining butter and heat over medium heat. Stir in the spinach and cook, stirring occasionally, until it wilts. Stir in the garlic and cook for 30 seconds.
Preheat the oven to 450 degrees F. Line a roasting pan or baking sheet with aluminum foil and spray it with nonstick spray.
Place the pork on a cutting board and get a sharp knife. This is a great tutorial. I like to slice it twice to open it up so I have a lot of space to work with. I start at the bottom of the pork (about 1/4 inch from the bottom) and slice it lengthwise, then continue to cut again and open up the pork. You want to have a flat surface to work on. Season the inside with salt and pepper.
Spread the cranberry sauce on top of the pork, leaving an inch or two around the edges so you can roll it up. Add the spinach, followed by the caramelized onions. Crumble the goat cheese on top.
Tightly roll up the tenderloin and tie it together with kitchen twine. Season the entire outside with the salt and pepper.
Place the pork on the roasting pan or baking sheet and roast for 30 to 35 minutes, or until the inside is cooked and reads about 140 to 145 degrees F. Let the pork rest for 20 minutes before slicing. Slice and serve with extra cranberry sauce, gravy or your choice of side!