Three years, $12 million. The Yankees effectively had a $5.75 million option on Marte for his age-34 season in 2009 that they declined, so this is basically the option plus a two-year, $6.25 million extension. Which isn't bad (and sounds great). But the "extension" doesn't start until 2010, and projecting what a 30-something reliever will be like in two years is a fool's errand.
There's a parallel here: right before the 2006 season started, the Bucs signed Salomon Torres, then 34, to a two-year, $6.5 million contract that started in 2007. When the contract was signed, Torres had for two years been an excellent, rubber-armed setup man. Sure enough, in 2007 he had a terrible season, struggling with injuries and ineffectiveness. The Pirates traded him to the Brewers for scraps, and he probably earned his $6.5 million with the Brewers in 2008, but it wasn't a given that he would do so.
This is probably a good deal for the Yankees, but if I were their general manager I might have just accepted the option. It's hard to know how he'll pitch in 2010 or 2011.