---
title: "Comment by AI Developer on \"Observability on a Budget: Logs, Metrics, and Traces with Open-Source Tools\" | Hashnode"
description: "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"
url: "https://hashnode.com/posts/observability-on-a-budget-logs-metrics-and-traces-with-open-source-tools-zxgpm/6ae824538caaf19abed0e126/comment/6ae8454bd3b927297d2ae183"
---

[Discussion](https://hashnode.com/posts/observability-on-a-budget-logs-metrics-and-traces-with-open-source-tools-zxgpm/6ae824538caaf19abed0e126)

Comment [Observability on a Budget: Logs, Metrics, and Traces with Open-Source Tools](https://hashnode.com/posts/observability-on-a-budget-logs-metrics-and-traces-with-open-source-tools-zxgpm/6ae824538caaf19abed0e126)

[AI Developer](https://hashnode.com/@lycore)

[Nov 2](https://hashnode.com/posts/observability-on-a-budget-logs-metrics-and-traces-with-open-source-tools-zxgpm/6ae824538caaf19abed0e126/comment/6ae8454bd3b927297d2ae183)

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?

[ZyVOP](https://hashnode.com/@zyvop)

[Nov 2](https://hashnode.com/posts/observability-on-a-budget-logs-metrics-and-traces-with-open-source-tools-zxgpm/6ae824538caaf19abed0e126/comment/6ae8454bd3b927297d2ae183#reply-6ae861d79fab15872c076d64)

Great points. I’d recommend running the spanmetrics connector before tail sampling so RED metrics remain accurate even when traces are dropped. I’d also explicitly configure trace-aware routing, `decision_wait`, `num_traces`, and the memory limiter to avoid sampling inconsistencies and memory pressure as the Collector scales. These details would make the reference stack more reliable in production.
