Putting the Collector in the middle as the cost-control point is a sound design, and the tail_sampling example shows why. One caveat is that tail sampling only works if every span of a trace reaches the same Collector instance, so once you run more than one replica you need a load-balancing exporter layer keyed on trace ID in front of it. Also, decision_wait of 10s with long-running traces can drop late spans from the decision, and the memory cost scales with traces held in flight, so num_traces and the memory_limiter deserve explicit tuning. A related question is how to keep the RED metrics accurate after sampling, since computing request counts from sampled traces undercounts unless the spanmetrics connector runs before the sampler. Would you generate those metrics ahead of the sampling stage in this reference stack?