Open Source Observability

Open Source Observability: Choose the Stack, Then Decide Who Runs It

Last reviewed by Tyler Eastridge

AceMQ designs and supports open source observability stacks built on OpenTelemetry, Prometheus, Grafana, Loki, Tempo and OpenSearch, for teams that run their own messaging and data platforms. It covers logs, metrics and traces, and the choice of a stack without vendor lock-in on the collection layer. We help you pick the parts, set cardinality and retention limits, bring RabbitMQ, Kafka and PostgreSQL signals into the same view, and then support or operate the stack on the four-tier ladder.

min emergency SLA on a support plan
15
hour to answer a quote request
1
tiers of cover after the design
4

Is This You?

You probably need this if…

  1. 01

    Metrics, logs and traces live in three tools, and nobody can follow one request across them

  2. 02

    The monitoring bill grows with every new label, and no one owns the limit

  3. 03

    A single Prometheus server holds the only copy of the metrics, and its disk is the retention policy

  4. 04

    Alerts fire in dozens for one failed node, and the on-call engineer has learned to ignore them

  5. 05

    A Thanos, Mimir or Loki rollout was started, never finished, and two paths are now half-live

  6. 06

    The broker and database metrics sit in a separate dashboard that no one checks before an incident

  7. 07

    Nobody can say which licence each part of the stack is under, or who patches it

Outcomes

Where you are now, and where you end up

Concrete state changes, not deliverable counts. This is what actually differs about your Infrastructure estate when the engagement closes.

  1. Before

    The stack grew one tool at a time, and each team picked its own.

    After

    A written decision on collection, metrics storage, logs, traces and dashboards, with the reasons and the parts you chose not to run.

  2. Before

    Cardinality is discovered when the server runs out of memory.

    After

    A label policy, series limits and a retention plan sized from the sample rate, written down before the next service ships.

  3. Before

    Messaging and database health is checked by hand.

    After

    RabbitMQ, Kafka and PostgreSQL metrics collected in the same stack, with alerts routed to the team that owns each platform.

  4. Before

    When the monitoring stack fails, no one is on call for it.

    After

    An agreed tier of cover for the stack itself, from escalation to AceMQ operating it, so the thing that watches production is also watched.

Recognise your estate here? Get a quote for Infrastructure open source observability from a senior engineer.

Contact Us

Scope

What's covered

  • 01

    Stack Review

    What you collect today, what it costs, which labels and log fields drive volume, and which parts have no owner. The output is a written review, not a product pitch.

  • 02

    Stack Design

    Collection, metrics storage, logs, traces and dashboards chosen against your sources, retention and team size, with a plain statement of what you operate in each layer.

  • 03

    Messaging and Data Signals

    RabbitMQ, Kafka and PostgreSQL metrics wired into the stack, with the alerts that predict incidents rather than describe them afterwards.

  • 04

    Alert Design

    Grouping, inhibition and ownership routes so one failure sends one notification to one team, and rules that never led to action are removed.

  • 05

    Retention and Storage

    Local retention, object storage, downsampling and index lifecycle sized from your ingest rate, with a restore or query test before you rely on it.

  • 06

    Cover for the Stack

    Support or managed operation for Prometheus, Grafana and OpenSearch, so someone answers when the monitoring is the thing that is down.

Want a senior Infrastructure engineer to scope this with you? Get a quote or send us a message.

Contact Us

The Engagement

How it actually runs

Every phase has a defined duration and a concrete artifact handed over at the end of it. You always know what stage you're in and what you've received.

  1. Phase 1Scoped per estate

    Review

    We read the current collection, storage, alerting and dashboards, measure series and log volume by source, and list who owns each part and what each costs to run.

    You receive

    • Inventory of sources, tools and owners
    • Volume and cardinality findings
    • Gaps against the platforms you need to watch
  2. Phase 2After the review

    Design

    The stack decision: collection and sampling, metrics storage from single server to Thanos or Mimir, logs and traces, dashboards, licences, and the operating model for each part.

    You receive

    • Reference architecture and decision record
    • Label, retention and alert policies
    • Migration order that keeps dashboards working
  3. Phase 3Scoped per engagement

    Build and Dual-Run

    We stand the new parts up with your engineers and run them next to the old ones, comparing query results and alert behaviour before anything is switched off.

    You receive

    • Working stack in your environment
    • Side-by-side comparison of results
    • Rollback steps for each cutover
  4. Phase 4Ongoing

    Handover and Cover

    Runbooks for storage failures, WAL replay, index recovery and upgrades, a handover session, then the support tier you choose.

    You receive

    • Runbooks
    • Agreed support tier and escalation path
    • Handover session with your engineers

What an open source observability stack is made of

There is no single open source observability platform. A stack is a set of projects, each covering one signal, held together by shared labels and a collection layer. Open-source observability usually means logs, metrics and traces, with distributed tracing as the newest layer for many teams. Grafana Labs calls Loki, Grafana, Tempo and Mimir the LGTM stack, and Prometheus, Thanos, OpenSearch and Jaeger fit the same pattern. The useful decisions are which project covers each layer, what that choice makes you operate, and where it usually goes wrong.

The layers of an open source observability stack, with what each one asks of you
LayerCommon choiceGovernance or licenceWhat you operateWhere it goes wrong
CollectionOpenTelemetry SDKs and CollectorCNCF graduated project. The Collector's overall status is mixed, and each component's README states its own stability.Collector fleet, pipelines, sampling and batching.An experimental component in a production pipeline, or sampling decided after the volume has grown.
MetricsPrometheus and AlertmanagerPrometheus is CNCF graduated. Prometheus and Alertmanager are Apache 2.0.Scrape configuration, rules, the local time series database and its disk, Alertmanager routing.Unbounded labels, memory growth and long WAL replay after a restart.
Long-term metricsThanos, Mimir or CortexThanos and Cortex are CNCF incubating and Apache 2.0. Mimir is Grafana Labs' AGPL v3 project.Object storage, compactor, store gateway and queriers, or ingesters and distributors.A rollout that stops half way, or a compactor that falls behind.
LogsLoki or OpenSearchLoki is AGPL v3. OpenSearch is Apache 2.0 under the OpenSearch Software Foundation.Index or label design, shard count, retention, snapshots.Too many small shards, or log labels with unbounded values.
TracesTempo or JaegerTempo is AGPL v3. Jaeger is CNCF graduated, and Jaeger v2 is built on the OpenTelemetry Collector framework.Trace storage, retention and the sampling policy.Keeping every trace, or sampling so hard that the slow one is gone.
Dashboards and alertsGrafanaAGPL v3 since the 2021 relicensing. Grafana is on 13.x.Data sources, dashboards as code, alert rules and contact points.Dashboard sprawl, and alert rules duplicated in two places.

Versions as of 4 November 2026: Prometheus 3.15.1, Grafana 13.3, OpenSearch 3.9.0. Sources are listed at the end of this page and the licence rows are the projects' own statements.

Metrics storage: when one Prometheus is enough, and when it is not

Prometheus stores samples on local disk. Its documentation says plainly that local storage is not clustered or replicated, so it should be run like a single-node database. Retention defaults to 15 days unless you set a time or size flag, and when both are set, whichever triggers first applies.

Sizing is arithmetic, and it is worth doing before the incident. The documentation gives the formula: retention time in seconds, times ingested samples per second, times bytes per sample, and it puts the average at 1 to 2 bytes per sample. It also advises setting the size limit to 80 to 85 percent of the disk, to leave room for compaction.

  • One server is enough — When the series count and retention fit one machine, and losing a few weeks of history to a disk failure is acceptable.
  • Thanos — When you run a Prometheus per cluster and want one query view with data kept in object storage.
  • Mimir or Cortex — When write volume is high enough that you want it centralised, with multi-tenancy. Mimir 3.x offers an ingest storage architecture that uses Kafka, besides the classic ingesters.
  • A cloud managed service — When you want storage and query off your on-call and accept billing by what you ingest. The Prometheus side, the scraping and rules, stays yours.

Ready to talk Infrastructure? Get a quote or send us a message.

Contact Us

OpenTelemetry in the middle: what it replaces and what it does not

OpenTelemetry does not replace Prometheus or Grafana. The Collector receives, processes and exports telemetry to open source or commercial backends, so it is the layer that lets you change a backend without re-instrumenting every service.

The details decide how smooth that is. Prometheus accepts OTLP metrics over HTTP, but the receiver is off by default and has to be switched on with a flag. Delta temporality is still experimental in Prometheus, behind a feature flag, and the project describes delta ingestion as at a very early stage. Resource attributes arrive as a target_info series unless you promote the ones you need to labels, and every promoted attribute is a new dimension of cardinality.

The Collector's own status is mixed, and the project asks you to read the stability level on each component. That is a reason to pin Collector versions, test pipelines in a staging environment and treat an upgrade as a change with a rollback, not a package update.

Cardinality sets the bill, whichever tool you choose

Open source does not remove the cost of cardinality. It moves it from an invoice to your memory, disk and on-call hours. Prometheus's own guidance is to keep the cardinality of a metric below 10, to look for alternatives above 100, and to start with no labels if unsure. Its worked example shows why: 10,000 nodes produce about 100,000 filesystem series, which is fine, while a per-user label across 10,000 users pushes the total into double-digit millions.

The same pattern shows up in logs, where a label or index field with unbounded values multiplies streams or shards, and in traces, where sampling is the lever. So the first design artefact is a label policy: which labels are allowed, who may add one, and where the limit is enforced.

Recognise your estate here? Get a quote for Infrastructure open source observability from a senior engineer.

Contact Us

Watching RabbitMQ, Kafka and PostgreSQL in the same stack

Most observability pages stop at application traces. Most production incidents on a messaging or data platform are visible earlier in the platform's own metrics. This is the part AceMQ adds, because messaging and data platforms are what AceMQ supports.

  • RabbitMQ — The rabbitmq_prometheus plugin ships with RabbitMQ and is switched on with rabbitmq-plugins enable. It serves metrics on port 15692. Aggregated metrics keep the output size constant as queues and connections grow, while per-object metrics produce one series per object and metric, so a broker with many queues can generate very large scrapes. Choosing between them is a cardinality decision.
  • Kafka — Kafka exposes metrics through JMX. The ones that predict trouble include UnderReplicatedPartitions and UnderMinIsrPartitionCount, which should be 0, and ActiveControllerCount, where only one broker in the cluster should report 1.
  • PostgreSQL — Replication lag, replication slot retention and WAL volume growth belong beside the application dashboards, because an unattended slot fills a disk and a lagging replica turns a failover into data loss.

Licences and ownership: read them before you standardise

The projects in the stack do not share a licence. Grafana, Loki and Tempo moved from Apache 2.0 to AGPL v3 in 2021, and Mimir is AGPL v3 too. Prometheus, Alertmanager, Thanos and Cortex are Apache 2.0, and so is OpenSearch. Elasticsearch's repository carries a triple licence, AGPL v3, the Server Side Public License and the Elastic License 2.0, after Elastic announced in August 2024 that it would add AGPL as an option.

What those licences mean for your deployment is a question for your counsel, and AceMQ gives no licensing advice. What we can do is the engineering side: list what you run, in which version, under which licence, so the conversation starts from facts. AceMQ is an independent provider: it is not a reseller and sells no Grafana Labs or Elastic subscription.

Want a senior Infrastructure engineer to scope this with you? Get a quote or send us a message.

Contact Us

Who carries the pager for the monitoring stack

The stack that tells you production is down needs its own cover. The question is how much of it you want to hold.

  • Tier 1: reactive support — Your team runs Prometheus, Grafana or OpenSearch. AceMQ engineers answer within 15 minutes, around the clock, when it is down, stuck in WAL replay or no longer alerting.
  • Tier 2: proactive monitoring — Tier 1 plus monitoring of the platforms themselves, so trouble is noticed before your customers notice it.
  • Tier 3: managed on your infrastructure — AceMQ operates the stack inside your cloud account, cluster or data centre.
  • Tier 4: managed on AceMQ's infrastructure — AceMQ hosts and operates it. Managed tiers are quoted per engagement and offered for every technology on this page.

Who this is not for, and what we do not promise

  • Happy on a commercial platform — If Datadog, New Relic or Splunk meets your needs and your budget, stay. AceMQ supports those platforms too, and the review says so.
  • No time to run anything — An open source stack trades licence fees for engineering time and a learning curve. If you want a hosted product with a contract and no pager, a vendor service fits better, and the managed tiers are the middle path.
  • A cost figure in advance — Cost depends on volume, retention and who operates it. We do not quote savings before reading your data.
  • A monitoring operations centre — We do not offer a 24/7 operations centre watching your applications. The cover is for the stack and the platforms it watches.
  • Application instrumentation — Your developers add the spans, metrics and log fields. We design the conventions and review them with you.

Sources, all checked on 4 November 2026: prometheus.io release cycle, storage, instrumentation and OpenTelemetry guide pages; cncf.io project list; opentelemetry.io Collector documentation; jaegertracing.io; grafana.com Mimir documentation and the 2021 AGPL relicensing post; the projects' GitHub licences; opensearch.org releases; Elastic's August 2024 licensing post; rabbitmq.com Prometheus documentation; kafka.apache.org monitoring documentation.

Ready to talk Infrastructure? Get a quote or send us a message.

Contact Us

Customer Success

Real Infrastructure Results

See how enterprises trust AceMQ for their most critical Infrastructure workloads.

1 / 8 case studies

All use cases

FAQ

Questions about Infrastructure open source observability

What is an open source observability stack?

It is a set of open source projects that together collect, store and display metrics, logs and traces. A common set is OpenTelemetry for collection, Prometheus for metrics, Loki or OpenSearch for logs, Tempo or Jaeger for traces and Grafana for dashboards and alerts. You choose each layer, and you run each one unless you buy a managed service for it.

Is open source observability cheaper than a commercial platform?

Compared with a platform such as Datadog or Splunk, it removes licence and ingest fees and adds engineering time, storage and on-call. Which is smaller depends on your volume, retention and team, so we do not quote a saving before reviewing your data. Cardinality is the main driver on both sides.

Does OpenTelemetry replace Prometheus?

No. OpenTelemetry standardises how telemetry is collected and exported. Prometheus stores and queries metrics, and it can receive OTLP metrics over HTTP once the receiver is enabled. Many stacks use both: OpenTelemetry in the services, Prometheus or a long-term store behind them.

How do we control Prometheus cardinality and retention?

Set a label policy, drop or relabel the offenders at scrape time, and size retention from the sample rate: retention seconds, times samples per second, times 1 to 2 bytes per sample. Keep the size limit near 80 to 85 percent of the disk. Add Thanos or Mimir when local disk cannot hold the history you need.

Who runs and supports the stack once it is built?

You choose. At Tier 1 your team runs it and AceMQ responds to incidents within 15 minutes, 24/7. At Tier 2 AceMQ also monitors the platforms. At Tier 3 AceMQ operates it in your environment, and at Tier 4 on infrastructure AceMQ runs. Managed tiers are quoted per engagement.

Let's talk

Talk to an Engineer About Your Observability Stack

Tell us what you collect today, what it costs and what has gone wrong. We will scope a stack review and reply to your quote request within 1 hour.

Email Us

Get in Touch

Talk to an AceMQ Expert

Send us a message and we'll follow up within 1 hour — or book a free 30-min consultation directly.

305-204-2607
info@acemq.com
66 W. Flagler St. 9th Floor
Miami, FL 33130

Prefer to talk now? Call us directly or use the consultation tab to find a time that works.

We respond within 1 hour.

Pick a time that works — no pressure, no pitch. Just 30 minutes with an expert.

We respond within 1 hour.