Prometheus چیست؟
سیستم متنباز جمعآوری و ذخیره Metrics بر پایه مدل Pull، با پایگاه داده سریزمانی (Time-Series) و زبان پرسوجوی اختصاصی PromQL.
چرا مهم است؟
Prometheus استاندارد Metrics در اکوسیستم Kubernetes و CNCF است؛ اکثر ابزارهای مدرن (از جمله خود Kubernetes) بهصورت پیشفرض خروجی سازگار با Prometheus دارند.
تعریف
برخلاف بسیاری از سیستمهای Log که داده به آنها Push میشود، Prometheus بهصورت دورهای خودش به سراغ سرویسها میرود (Pull Model) و از یک مسیر HTTP مثل /metrics مقدار فعلی متریکها را میخواند.
نمونه خروجی /metrics
http_requests_total{method="GET",status="200"} 1024
http_request_duration_seconds_sum{method="GET"} 45.2
http_request_duration_seconds_count{method="GET"} 1024
پیکربندی ساده Scrape
scrape_configs:
- job_name: "api"
scrape_interval: 15s
static_configs:
- targets: ["api-service:80"]
PromQL — نمونه Query
sum(rate(http_requests_total[5m])) by (status)
نرخ درخواستها در ۵ دقیقه اخیر را بر اساس کد وضعیت HTTP جمع میزند.
اشتباه رایج
❌ استفاده از Prometheus برای ذخیرهسازی طولانیمدت (چند سال) دادههای خام بدون راهحل جانبی — Prometheus برای نگهداری کوتاه/میانمدت طراحی شده؛ برای Retention بلندمدت باید از ابزارهایی مثل Thanos یا Mimir در کنار آن استفاده کرد.
منبع و مطالعه بیشتر
خلاصه
Prometheus با مدل Pull بهصورت دورهای متریکها را از مسیر /metrics هر سرویس جمعآوری و در پایگاه سریزمانی خودش ذخیره میکند. برای Retention بلندمدت به تنهایی کافی نیست و به ابزار مکملی مثل Thanos نیاز دارد. مرجع کامل: مستندات رسمی Prometheus.
