Prometheus monitoring and alerting
Prometheus collects the metrics that make a system explainable. It scrapes rather than waits, stores time series efficiently, and its query language is what turns raw numbers into an answer.
Where we use Prometheus
Prometheus is part of the stack on these 2 services. Each page covers how we work, what you get and what it costs to start.
Prometheus in practice
Prometheus scrapes metrics from targets on a schedule rather than waiting for them to report. That pull model is the important design choice: a service that has stopped responding is visible as a failed scrape, whereas a push-based system just sees silence and cannot distinguish it from idleness.
PromQL is where the diagnostic value lives. Rates, percentiles and aggregations are computed at query time, so you can ask a question you had not anticipated when the metric was defined. Instrumentation is usually already there — most infrastructure exposes Prometheus metrics natively.
What we build with Prometheus
Application and infrastructure metrics scraped on a schedule, with retention sized to what you actually query.
Rules written against symptoms — error rate, saturation, queue depth — rather than against every available counter.
Cluster, node and workload metrics, which is the environment Prometheus was effectively designed for.
Is Prometheus right for you?
Ask usA good fit when
- Kubernetes and container environments — effectively the native case
- Infrastructure and application metrics at any scale
- Alerting on symptoms rather than raw counters
- Teams wanting no per-metric billing
Probably not when
- Long-term historical storage without adding remote storage
- High-cardinality data such as per-user metrics
- Teams without capacity to run and maintain it
What we run alongside Prometheus
The rest of the setup, and why each piece is there. We keep this list short on purpose — every dependency is something someone has to maintain.
- Grafana
- Visualisation. Prometheus collects; Grafana is where people look.
- Alertmanager
- Routing, grouping and silencing alerts.
- node_exporter
- Host-level metrics: CPU, memory, disk, network.
- Thanos or Mimir
- Long-term storage and global query across clusters.
- Client libraries
- Application instrumentation: request rates, latency histograms, error counters.
Why Prometheus
Let’s talkPull model
Prometheus finds targets rather than depending on every service to report correctly, so a silent service is visible.
PromQL
Rates, percentiles and aggregations computed at query time, which is where most of the diagnostic value lives.
The de facto standard
Most infrastructure exposes Prometheus metrics natively, so instrumentation is often already there.
What we get called in to fix
Get a second opinionCardinality explosions
Labels containing user or request identifiers, which can overwhelm the server quickly.
Alerts on causes
Paging on CPU rather than on user-visible latency or errors.
Retention misunderstood
Teams assuming a year of history from local storage sized for two weeks.
Missing application metrics
Excellent infrastructure visibility and nothing about what the application is actually doing.
Prometheus or the alternative
The comparisons we are actually asked to make, answered the way we would answer them on a call.
Prometheus for control and no per-metric cost. Hosted when you would rather not run the storage layer.
Not competitors. OpenTelemetry is instrumentation; Prometheus can be where those metrics land.
Prometheus and Grafana for cost control and ownership. Datadog for integrated traces, logs and metrics without assembly.
Prometheus works well with:
Got an idea? Let’s make it real.
Tell us the short version
This could be the first step towards a new and successful collaboration. A one-line idea and a finished spec are both fine — tell us the problem, the deadline you’re working to and what’s in your way.
Keep looking
Frequently asked questions
Prometheus when you want control and no per-metric billing. Hosted services when you would rather not run the storage.
Local retention is usually weeks. For longer history we add remote storage rather than growing the local disk.
Yes — request rates, latency histograms, error counters and the domain metrics that reflect the business.
Local retention is typically weeks. For longer history we add Thanos or remote storage rather than growing local disk.
Symptoms users would notice — error rate, latency, saturation, queue depth. Alerting on every metric is how teams learn to ignore alerts.