The post has been translated automatically. Original language: Russian
Monitoring is one of the fundamentals of stable operation of any IT system. Whether it's cloud services, containers, or client servers, it's important not only to detect failures, but also to understand why they occurred.
In this post, we will share our experience using three popular monitoring tools that complement each other perfectly: Prometheus, Grafana and Uptime Kuma.
Prometheus is a SoundCloud monitoring and alerting tool that has become the standard in the Kubernetes ecosystem.
What Prometheus does:
- collects numerical metrics from services and infrastructure;
- stores data in time series;
- supports the powerful PromQL query language;
- generates alerts via the Alertmanager.
We use it for:
- monitoring CPU, RAM, and I/O load;
- tracking the status of microservices;
- collecting custom metrics from our apps.
Advantages:
- ideal for high detail and custom metrics.
- easily integrates with Kubernetes, Node Exporter, Blackbox, etc.
- scalable and flexible.
Cons:
- it does not monitor the "liveliness" of the site directly (in the style of "is it falling" — Uptime Kuma is better for this)
Grafana is a dashboard that speaks to you in a human language. This is a frontend over Prometheus (and more) that turns raw data into beautiful graphs.
What we visualize through Grafana:
- metrics from Prometheus (load, errors, uptime, latency);
- business metrics: number of orders, user logins, API responses;
- logs and traces (via Loki and Tempo).
Advantages:
- flexible system of graphs and panels;
- notifications in Telegram, Slack, Email;
- support for plugins, dark mode, variables, and drill-down.
Cons:
- It takes time for a well-thought-out dashboard structure.;
- it can slow down with large amounts of data without optimization.
Uptime Kuma is a self-hosted alternative to UptimeRobot, with a simple web interface and the ability to monitor whether your website, API or domain is "alive".
What we like about Uptime Kuma:
- It can do HTTP, HTTPS, ping, DNS, TCP, Docker and push monitoring.;
- notifies in case of a fall via Telegram, Discord, Email;
- a simple interface for quick diagnostics: when, by how much, and why the site crashed.
Advantages:
- fast deployable tool (in one line via Docker);
- visual uptime tracker (days, weeks, months).
Cons:
- does not store complex metrics;
- it will not replace Prometheus + Grafana.
We build our monitoring system based on the principle:
Prometheus — collects metrics
Grafana — shows metrics
Uptime Kuma — checks availability from outside
This combination allows us to:
- see the internal status of services;
- track external availability;
- respond to incidents faster and more accurately.
The tool | Appointment | Level | Suitable for |
Prometheus | Collecting metrics and alerts | DevOps | System and custom metrics |
Grafana | Dashboards, visualization | Analytics | Analysis and reporting |
Uptime Kuma | Uptime monitoring | Support | Web projects, API |
All three tools are open source, easy to configure and scale.
Are you already using these tools?
Мониторинг — одна из основ стабильной работы любой IT-системы. Будь то облачные сервисы, контейнеры или серверы клиента — важно не просто обнаруживать сбои, но и понимать, почему они произошли.
В этом посте поделимся нашим опытом использования трёх популярных инструментов мониторинга, которые отлично дополняют друг друга: Prometheus, Grafana и Uptime Kuma.
Prometheus — это инструмент мониторинга и алертинга от SoundCloud, который стал стандартом в экосистеме Kubernetes.
Что делает Prometheus:
- собирает числовые метрики с сервисов и инфраструктуры;
- хранит данные во временных рядах;
- поддерживает мощный язык запросов PromQL;
- генерирует алерты (предупреждения) через Alertmanager.
Мы используем его для:
- мониторинга нагрузки на CPU, RAM, I/O;
- отслеживания состояния микросервисов;
- сбора кастомных метрик с наших приложений.
Плюсы:
- идеален для высокой детализации и кастомных метрик
- легко интегрируется с Kubernetes, Node Exporter, Blackbox и др.
- масштабируем и гибок.
Минусы:
- не следит за "живостью" сайта напрямую (в стиле "падает ли он" — для этого лучше Uptime Kuma)
Grafana — это дашборды, которые говорят с вами на человеческом языке. Это frontend над Prometheus (и не только), превращающий сырые данные в красивые графики.
Что мы визуализируем через Grafana:
- метрики из Prometheus (нагрузка, ошибки, uptime, latency);
- бизнес-метрики: количество заказов, логины пользователей, отклики API;
- логи и трассировки (через Loki и Tempo).
Плюсы:
- гибкая система графиков и панелей;
- оповещения в Telegram, Slack, Email;
- поддержка plugins, dark mode, переменных и drill-down.
Минусы:
- требует времени на продуманную структуру дашбордов;
- может тормозить при больших объемах данных без оптимизации.
Uptime Kuma — это self-hosted альтернатива UptimeRobot, с простым веб-интерфейсом и возможностью мониторить, "жив" ли ваш сайт, API или домен.
Что нам нравится в Uptime Kuma:
- умеет делать HTTP, HTTPS, ping, DNS, TCP, Docker и push-мониторинг;
- уведомляет при падении через Telegram, Discord, Email;
- простой интерфейс для быстрой диагностики: когда, на сколько и почему упал сайт.
Плюсы:
- быстрый развёртываемый инструмент (одной строкой через Docker);
- визуальный трекер аптайма (дни, недели, месяцы).
Минусы:
- не хранит сложные метрики;
- не заменит собой Prometheus + Grafana.
Мы строим свою систему мониторинга по принципу:
Prometheus — собирает метрики
Grafana — показывает метрики
Uptime Kuma — проверяет доступность снаружи
Такая комбинация позволяет нам:
- видеть внутреннее состояние сервисов;
- отслеживать внешнюю доступность;
- реагировать на инциденты быстрее и точнее.
Инструмент | Назначение | Уровень | Подходит для |
Prometheus | Сбор метрик, алерты | DevOps | Системные и кастомные метрики |
Grafana | Дашборды, визуализация | Аналитика | Анализ и отчётность |
Uptime Kuma | Аптайм мониторинг | Поддержка | Веб-проекты, API |
Все три инструмента — open source, легко настраиваются и масштабируются.
А вы уже используете эти инструменты?