What ChatGPT answers when asked this, the tools it recommends and the sources it leans on, tracked across 4 captures.
| # | Tool | How often | |
|---|---|---|---|
| 1 | SigNoz | 100.0% of answers | |
| 2 | Grafana | 100.0% of answers | |
| 3 | Datadog | 50.0% of answers | |
| 4 | New Relic | 50.0% of answers |
| # | Source | Type | Cited |
|---|---|---|---|
| 1 | signoz.io | Editorial | 2× |
| 2 | elastic.co | Editorial | 2× |
| 3 | grafana.com | Editorial | 1× |
For a mid-size B2B SaaS team already standardized on OpenTelemetry, the good news is you are looking at the right layer: you can replace many commercial APM vendors without changing instrumentation. The harder part is not dashboards or ingestion — it is retention economics. Keeping 18 months of traces is usually the cost driver, not the APM UI.
The short list I would evaluate:
PlatformBest fit18-month retention storyMain storage concernGrafana Tempo + Grafana Mimir + Grafana LokiTeams willing to assemble a stackExcellent for long retention because traces can live in object storageYou must operate multiple componentsSigNozTeams wanting a more integrated APM replacementGood if you tune ClickHouse retention and storage tiersClickHouse disk growth can surprise youElastic ObservabilityTeams already comfortable with ElasticsearchMature lifecycle controlsElasticsearch storage is expensive at long retentionUptraceSmaller teams wanting OTEL-native APMPossible with ClickHouse tuningSmaller ecosystem
Grafana Tempo is probably the strongest architectural match for your specific requirement because it was designed around storing traces cheaply. Tempo uses object storage for long-term trace data and supports Azure Blob Storage as a backend. Grafana Labs The pattern is typically: keep recent traces on fast storage, then age them into cheaper blob tiers.
SigNoz is attractive if you want a more “Datadog/New Relic-like” experience without assembling Grafana components. It is OpenTelemetry-native and uses ClickHouse as its telemetry store. SigNoz The catch is that ClickHouse is still a database you operate: replication, disks, merges, backups, and retention policies become your responsibility. SigNoz
Elastic Observability has very mature lifecycle tooling. Its index lifecycle management lets you automate rollover and deletion policies for APM data streams. elastic.co However, keeping high-cardinality traces for 18 months in Elasticsearch can become expensive because you are paying for indexed storage, not just compressed blobs. elastic.co
A common mistake is budgeting “18 months of telemetry” as one number.
A rough model:
Monthly storage = traces ingested/day + metrics samples/day + indexes/metadata overhead + replication factor + backups
In most SaaS environments:
Metrics compress extremely well and are relatively cheap.
Traces explode because every request creates spans.
Logs often dominate everything if retained at full fidelity.
For example, if you ingest:
500 GB/day raw traces
30-day hot retention
18-month archive retention
You are not looking at a 500 GB problem. You are looking at:
Hot tier: ~15 TB
Archive tier: ~270 TB before compression/compaction
The architecture matters more than the software choice.
For Azure, I would separate storage into tiers:
Used for active debugging.
Examples:
Managed disks for ClickHouse
VM SSDs
Elasticsearch data nodes
Keep this short.
Typical policy:
7–30 days traces
30–90 days metrics
Used for retrospectives.
Examples:
Azure Blob Storage Cool/Archive tiers with Tempo
Exported ClickHouse parts
Parquet files
This is where 18-month retention becomes financially viable.
Before storage, reduce volume:
Keep 100% of errors
Keep 100% of slow traces
Keep representative samples of healthy requests
Preserve span attributes needed for retrospectives
A 10x reduction in trace volume is often realistic.
Given:
B2B SaaS
Azure
OpenTelemetry already deployed
18-month incident retrospective requirement
40% cost reduction target
I would run a proof of concept in this order:
Architecture:
Given your constraints, the key challenge is actually less about the APM UI and more about the storage architecture.
A modern APM stack is typically three layers:
Because you're already standardized on OpenTelemetry, you can swap the backend without changing instrumentation, which gives you flexibility.
Very few organizations keep every trace and high-resolution metric for that long because of cost.
A common pattern is:
If your incident retrospectives genuinely require every trace for 18 months, storage costs will dominate regardless of vendor.
Components:
This is probably the most common self-hosted OpenTelemetry stack today.
Very good.
Tempo and Mimir were designed around object storage rather than expensive local disks.
Typical deployment:
Advantages:
Storage economics are among the best of any open-source stack.
Jaeger has excellent OpenTelemetry compatibility.
However, long-term retention depends entirely on the storage backend.
Historically people used:
Today object-storage backends are becoming more attractive, but Jaeger is primarily a tracing system rather than a full observability platform.
If you're replacing a commercial APM, Jaeger alone is usually insufficient.
One of the nicer all-in-one OpenTelemetry-native platforms.
Uses:
Pros:
Retention:
Reasonably good, but ClickHouse storage grows quickly when retaining high-cardinality telemetry for long periods.
For 18 months of heavy production traffic, storage planning becomes important.
Uses ClickHouse.
Nice developer experience.
Good OpenTelemetry support.
Long retention is possible, but again you're primarily paying for ClickHouse storage rather than the application itself.
Very mature.
Good for:
Supports several storage engines.
Can retain data for long periods but operational complexity is higher than LGTM.
For 18-month retention, your storage choice has more impact than the APM software.
Examples:
Benefits:
This is currently the dominant architecture for cloud-native observability.
Advantages:
Disadvantages:
Storage cost is lower than Elasticsearch but higher operational overhead than object-storage-first systems.
Historically the default.
For long retention:
For traces especially, this architecture is becoming less attractive.
If you're already committed to Azure:
Azure Blob Storage is likely your biggest cost lever.
Many teams use:
Lifecycle policies can automatically transition older objects between tiers.
People often expect traces to be the largest cost.
In practice:
The biggest driver isn't volume alone—it's cardinality. Metrics labeled with dimensions like customer ID, request path, container ID, or ephemeral pod names can multiply storage and indexing requirements.
When teams compare against a SaaS observability bill, they often focus only on storage. Don't overlook:
Many organizations find that infrastructure accounts for only part of the total cost; operating the platform becomes a significant ongoing investment.
For a mid-size B2B SaaS company already using OpenTelemetry and Azure, the strongest starting point would be the Grafana LGTM stack:
This architecture is specifically designed for long retention using low-cost object storage, scales well with OpenTelemetry, and is widely adopted for organizations looking to reduce SaaS observability spend.
One final point: if the goal is a 40% reduction in cloud tool spend, model your projected telemetry volume (GB/day, active series, spans/day, and query patterns) before committing. Whether a self-hosted platform is cheaper than a managed vendor depends heavily on those inputs. At moderate scale, self-hosting can produce substantial savings, but at very high scale or with small platform teams, operational costs can offset much of the licensing reduction. A retention and ingestion cost model based on your actual telemetry rates is usually the best way to determine the break-even point.
See exactly where you stand today, and which sources to win.