Middle
Шумо кадом намудҳои метрик дар Prometheus медонед?
sobes.tech AI
Ҷавоб аз AI
Prometheus podporує чотири основні типи метрик:
- Лічильник (Counter): Монотонно зростаюче значення, яке може лише збільшуватися (або скинутися до нуля при перезапуску процесу). Використовується для підрахунку інкрементальних подій, таких як кількість запитів, помилок або завершених задач.
// Приклад у Go var requestsTotal = prometheus.NewCounter( prometheus.CounterOpts{ Name: "http_requests_total", Help: "Загальна кількість HTTP-запитів.", }, ) - Датчик (Gauge): Будь-яке числове значення, яке може як збільшуватися, так і зменшуватися. Використовується для вимірювання поточного стану чогось, наприклад, навантаження ЦПУ, використання пам’яті, кількості активних користувачів або розміру черги.
# Приклад у Python from prometheus_client import Gauge cpu_usage = Gauge('cpu_usage_percent', 'Поточне використання ЦП у відсотках') cpu_usage.set(55.5) - Гістограма (Histogram): Вимірює розподіл вибірок (наприклад, час відповіді запитів) і групує їх за налаштовуваними кошиками (buckets). Дозволяє отримати дані про кількість вибірок у кожному кошику та їх суму. Використовується для аналізу затримок.
// Приклад у Java import io.prometheus.client.Histogram; static final Histogram requestLatencies = Histogram.build() .name("http_request_duration_seconds") .help("Тривалість запиту в секундах.") .buckets(0.1, 0.5, 1.0, 2.5, 5.0, 10.0) // Кошики .register(); - Зведення (Summary): Подібна гістограмі, але на стороні клієнта обчислює налаштовувані квантили розподілу вибірок у ковзному часовому вікні. Також надає загальну кількість вибірок та їх суму. Підходить для вимірювання затримок, коли важливі квантили, але слід враховувати, що обчислення на клієнті вимагає більшої обчислювальної потужності і може призвести до менш точних квантилів при агрегації.
# Приклад у Ruby require 'prometheus/client' requests_summary = Prometheus::Client::Summary.new(:request_duration_seconds, 'Тривалість запиту в секундах.')
Вибір типу метрики залежить від характеру даних, які потрібно відстежувати.