کارشناس زن کنار نمونهٔ آموزشی برچسب‌ها و سری‌های زمانی

WIUNIX ACADEMY

کاردینالیتی بالای Prometheus؛ یافتن برچسب مسئله‌ساز و آزمایش Recording Rule

تعداد سری‌ها و نرخ ایجاد آن‌ها را بررسی کنید، برچسبی با تعداد مقادیر نامحدود را در مبدأ اصلاح کنید و قاعدهٔ تجمیع را پیش از فعال‌سازی با promtool بسنجید.

پیشرفته40 دقیقه مطالعهبه‌روزرسانی
محیطت را انتخاب کن

آموزش متناسب با محیط تو

کجا اجرا می‌کنی؟

سیستم‌عامل و نسخه را انتخاب کن تا مراحل، دستورها و راه‌حل‌ها برای همان محیط نمایش داده شوند.

Ubuntu 26.04 LTSبررسی‌شده با مستندات رسمی ·

آموزش متناسب با مقادیر تو

تنظیمات این آموزش

مقادیر نمونه را برای محیط خودت تنظیم کن؛ متن و دستورهای مرتبط با هم تغییر می‌کنند. رمز، کلید خصوصی و توکن وارد نکن. مقادیر فقط در همین زبانه نگهداری می‌شوند و به سرور یا لینک اشتراک‌گذاری فرستاده نمی‌شوند. پیش از اجرا، DNS، گواهی‌ها و سیاست شبکهٔ واقعی را بررسی کن.

آی‌پی، دامنه یا پورت مثال‌ها با محیط تو فرق دارد؟ دکمهٔ زیر را باز کن، مقادیر را تغییر بده و «اعمال در آموزش» را بزن؛ سپس دستورهای به‌روز‌شده را کپی کن.

تنظیم مقادیر برای محیط من4 مقدار قابل‌تغییر

از اینجا شروع کن

در پایان چه چیزی خواهی داشت؟

منشأ رشد سری‌های زمانی را از هزینهٔ پرس‌وجو جدا کنید و یک Recording Rule با معنای روشن، برچسب‌های محدود و آزمون محاسباتی قابل بازبینی بسازید.

سیستم‌عامل‌ها و نسخه‌های پوشش‌داده‌شده

فرمان‌ها و تفاوت‌های محیط‌های منتخب با مستندات رسمی بررسی شده‌اند؛ این بررسی به معنای اجرای عملی روی همهٔ سیستم‌ها یا سرویس شما نیست.

قبل از شروع

  • Prometheus موجود با نشانی مدیریتی محافظت‌شده و دسترسی مجاز برای بررسی آمار و قواعد.
  • نسخهٔ سازگار promtool و شناخت مسیر rule_files و روش بارگذاری تنظیمات در نصب فعلی.
  • متریک و برچسب‌های واقعی برنامه و مسئول مشخص برای اصلاح ابزار اندازه‌گیری و داشبوردهای وابسته.
01

قدم بعدی

ابزار میزبان انتخاب‌شده را آماده کنید

ابزارهای لازم را روی کامپیوتر یا سروری آماده کنید که فرمان‌های مدیریتی را از آن اجرا می‌کنید. پیش از تأیید، فهرست تغییر بسته‌ها را بخوانید؛ داخل کانتینر برنامه ابزار نصب نکنید. کلاستر، سرویس و باینری‌های اصلی باید از قبل با نسخهٔ مورد تأیید موجود باشند. پنل‌های بعد را در Bash اجرا کنید. نصب بسته روی همین میزبان تغییر ایجاد می‌کند، اما سرور برنامهٔ تازه‌ای راه نمی‌اندازد.

از Prometheus موجود و promtool سازگار استفاده کنید. این مسیر هیچ‌یک را نصب نمی‌کند و مسیر قواعد و روش بارگذاری نصب فعلی را حفظ می‌کند.

bash

میزبان انتخاب‌شده؛ نصب بسته فقط با مجوز تغییر همین میزبان

sudo apt-get update
sudo apt-get install --no-install-recommends ca-certificates curl bash coreutils
cat /etc/os-release
command -v bash curl timeout
'/usr/local/bin/promtool' --version
از کجا بدانم درست انجام شد؟

نسخهٔ سیستم با انتخاب شما یکسان باشد، ابزارها پیدا شوند و نسخهٔ کلاینت و سرویس با شرایط بالا سازگار باشند. اگر باینری موجود نیست یا سازگار نیست، ادامه ندهید.

حفاظت میزبان و مسیرهای نصب موجود را حفظ کنید

در Ubuntu و Debian ممکن است AppArmor و قواعد دیوارهٔ آتش میزبان فعال باشند. این روند پورت ورودی باز نمی‌کند و پروفایل امنیتی را تغییر نمی‌دهد. اگر دسترسی فایل یا شبکه رد شد، لاگ و سیاست سرویس را با مسئول آن بررسی کنید. مسیر نصب واقعی را حفظ کنید؛ مسیرهای نمونهٔ فرم، کشف خودکار محل نصب نیستند.

تعداد سری، تغییر مداوم سری‌ها و هزینهٔ پرس‌وجو یکی نیستند

هر سری زمانی از نام متریک و مجموعهٔ کامل برچسب‌هایش ساخته می‌شود. شناسهٔ درخواست، کاربر یا URL خام می‌تواند تعداد ترکیب‌ها را بی‌حد افزایش دهد. کاردینالیتی تعداد ترکیب‌های فعال است؛ churn سرعت ایجاد و ناپدیدشدن آن‌ها را نشان می‌دهد. پرس‌وجوی کند ممکن است از بازهٔ طولانی یا عبارت پرهزینه ناشی شود، حتی وقتی تعداد سری‌ها ثابت است.

Recording Rule نتیجهٔ محاسبه را به‌صورت سری تازه ذخیره می‌کند. این کار هزینهٔ محاسبهٔ تکراری را کم می‌کند، اما سری ذخیره‌شده هم اضافه می‌کند و ورودی اصلی را حذف نمی‌کند. پیش از معرفی تجمیع به‌عنوان درمان فضای ذخیره‌سازی، منشأ برچسبی با تعداد مقادیر نامحدود را اصلاح کنید. این راهنما برای Prometheus موجود است، نه نصب سامانهٔ مانیتورینگ تازه.

02

قدم بعدی

نسخهٔ سرور و مسیر قواعد فعال را مشخص کنید

از نشانی loopback محافظت‌شده روی میزبان Prometheus استفاده کنید. اگر مسیر شما احراز هویت یا پراکسی TLS دارد، تنظیم کلاینت مصوب را به کار ببرید و اطلاعات محرمانه را در فرم عمومی نگذارید. promtool باید با سرور سازگار باشد. rule_files فعلی و روش reload را خصوصی ثبت کنید؛ وجود فایل نمونه به معنای فعال‌بودن آن نیست.

bash

خط فرمان؛ فقط در محیطی که مجوز بررسی آن را دارید

'/usr/local/bin/promtool' --version
curl --noproxy '*' --fail --silent --show-error --max-time 5 'http://127.0.0.1:9090/api/v1/status/buildinfo'
curl --noproxy '*' --fail --silent --show-error --max-time 5 'http://127.0.0.1:9090/api/v1/status/flags'
از کجا بدانم درست انجام شد؟

نسخهٔ سرور و ابزار، فایل‌های قواعد فعال و روش بارگذاری مجدد معلوم باشند.

03

قدم بعدی

بررسی را با آمار محدود TSDB شروع کنید

API وضعیت TSDB تعداد سری‌های بخش head، متریک‌های پرشمار و آمار مقادیر برچسب را نشان می‌دهد. این اطلاعات حساب دقیق حافظهٔ هر متریک یا مصرف دیسک کل دورهٔ نگه‌داری نیست. نمونه‌ها را در زمان‌های قابل مقایسه بگیرید و با تغییرهای انتشار تطبیق دهید. خود پایانهٔ تشخیصی هم منابع مصرف می‌کند؛ هنگام حادثه پی‌درپی و بدون فاصله آن را نخوانید.

bash

خط فرمان؛ فقط در محیطی که مجوز بررسی آن را دارید

curl --noproxy '*' --fail --silent --show-error --max-time 10 'http://127.0.0.1:9090/api/v1/status/tsdb?limit=10'
curl --noproxy '*' --fail --silent --show-error --get --max-time 10 'http://127.0.0.1:9090/api/v1/query' --data-urlencode 'query=prometheus_tsdb_head_series'
از کجا بدانم درست انجام شد؟

آمار head و متریک‌ها و برچسب‌های پرشمار ثبت شده باشند، بدون ادعای اندازه‌گیری دقیق حافظهٔ هر متریک.

04

قدم بعدی

دامنهٔ پرس‌وجو را به یک job و یک متریک محدود کنید

نمونه فرض می‌کند برنامهٔ شما شمارندهٔ HTTP نمایش‌داده‌شده را واقعاً ارائه می‌کند. اگر قرارداد متریک متفاوت است، با مسئول برنامه تطبیق دهید؛ نبود داده معادل ترافیک صفر نیست. روی سرور درگیر، از خروجی نامحدود series یا شمارش سراسری پرهیز کنید. topk تعداد سطرهای خروجی را محدود می‌کند، نه لزوماً کاری را که موتور برای محاسبه انجام می‌دهد.

شمارندهٔ ایجاد سری در عبارت پایانی، نرخ ایجاد سری در کل Prometheus را نشان می‌دهد. برچسب job یا instance آن به هدف پایش خود Prometheus اشاره دارد، نه برنامهٔ مسئله‌ساز. از آن برای نسبت‌دادن رشد سری به job منتخب استفاده نکنید.

bash

خط فرمان؛ فقط در محیطی که مجوز بررسی آن را دارید

curl --noproxy '*' --fail --silent --show-error --get --max-time 10 'http://127.0.0.1:9090/api/v1/query' --data-urlencode 'query=count(http_requests_total{job="api"})'
curl --noproxy '*' --fail --silent --show-error --get --max-time 10 'http://127.0.0.1:9090/api/v1/query' --data-urlencode 'query=topk(10,count by (route) (http_requests_total{job="api"}))'
curl --noproxy '*' --fail --silent --show-error --get --max-time 10 'http://127.0.0.1:9090/api/v1/query' --data-urlencode 'query=rate(prometheus_tsdb_head_series_created_total[5m])'
از کجا بدانم درست انجام شد؟

شواهد متریک و job منتخب از روند سراسری ایجاد سری تفکیک شده باشند و پرس‌وجوی نامحدود اجرا نشده باشد.

همهٔ آموزش‌های آکادمی ↗